2009/2/18 zooko firstname.lastname@example.org:
On Feb 17, 2009, at 15:27 PM, Tarek Ziadé wrote:
Same remark as bdist_deb : it looks nice to create .deb files for single packages.
The way that I currently use it is that I run stdeb on each package which is required, and make them all available in an apt repository. > This is certainly the way that Debian/Ubuntu users would expect -- they would object if I produced a single .deb package containing multiple separate Python packages.
I think this might generate another long thread ... :)
Zope (my use case with zc.buildout) runs with hundreds of packages. In fact, they all share a few namespaces (zope.*, plone.*) so Zope can be considered as a set of a few "big" packages. When I deploy a customer application, I add some specific packages with the usual set. The set of packages needed to run my customer app is built by zc.buildout, which grabs them at pypi or elswhere, and gather them under the same directory.
zc.buildout, besides Python packages, provides some features to generate console scripts and everything around the packages to make an application run. So there's some extra work in there that is not located in any python package. (well it's an application) The scripts generated by buildout hack sys.path so they use the packages gathered by zc.buildout.
This mecanism is really useful for us Zope/Plone developers. For example, some packages that are delivered in Zope 2 are now delivered as single python packages (like zope.component, zope.interface and so on). But the problem is : if you have a Zope 2 running on a system, it contains a zope.* code tree that is incompatible with the new components, and having them installed in Python itself will break everything.
So basically, one Zope instance is now a directory containing everything needed to run.
Making a .deb out of it for me means installing the different parts the buildout is composed of in the right places in the system tree, but also keep the collection of packages in a separated directory, specific to this instance and I would call this directory : my zope application.