[Distutils] [zc.buildout] buildout to .deb package

Tarek Ziadé ziade.tarek at gmail.com
Wed Feb 18 01:46:34 CET 2009

2009/2/18 zooko <zooko at zooko.com>:
> 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.


More information about the Distutils-SIG mailing list