Alpha/For Discussion: RPMs for around 3,000 PyPI packages.

Sean Reifschneider jafo at
Wed Apr 1 23:10:17 CEST 2009

At PyCon I got this idea in my head to try building packages for everything
in the cheeseshop.  I've had some success, getting over 3,000 packages
built on Fedora 10 (and fewer on CentOS 5 and fewer still on 4).  This is
out of 6176 packages.

I've made these initial packages, which should be considered no better than
*ALPHA* quality) available at:

If you are a package maintainer, or otherwise want to look at why a package
failed to build, you can get the build output at:

At this point I'm looking for feedback on the packages as they are built,
and looking to resolve issues found with these packages.  The future will
hopefully also include builds of Debian packages for at least Debian
and Ubuntu, probably on stable and possibly on the latest release as well.


These packages are built simply by doing "python bdist_rpm".
There are packages for both i386 and x86_64.  Dependencies are likely
incomplete if not incorrect, and we'll probably have to come up with a way
of the package maintainers specifying the build and install dependencies.
So at this point you will probably have to manually chase dependencies.
Sorry about that.


If you maintain a package on the cheeseshop (,
there are a few things you should know about this repository:

   You can see the build output of all packages at:

   Currently the builds are not automated.  This is one of the first things
   I want to fix, but I will need to set up a secure way of rebuilding
   packages (so that one package can't compromise another, for example).

   The current packages were built with a 30 or 60 second time limit on the
   build.  Some packages, if they looked like they were going well and just
   died, may have died because of the time limit.  This time limit will
   probably be extended in the future.

   The packages are built basically just by doing "python
   bdist_rpm".  There are some base set of packages installed on the
   system, but currently it doesn't do anything about installing
   dependencies that packages need which are not currently installed.  We
   will probably need a way to specify this, on a per-distribution basis
   possibly, for both building and installing.  I would like to have some
   community discussion on this.

   I rely on your source distribution being available either on the machine (via the "python upload" command), or
   that the download link in PyPI point directly at a tar or zip file
   (.tar, .tar.gz, .tar.bz2, .tgz, .zip extensions).  If your download link
   points at a generic download landing page, my programs can't find your
   code.  I'm open to discussion on this, but in discussions I've had so
   far I've had no objections to the requirement that the source be on the
   pypi server.

   I'm hoping that package maintainers and I can work together to get
   maintainers the information they need to tweak their packages so that
   the build system can do the right thing without too many special cases
   on a package-by-package basis.

I appreciate any review and thoughts you have. Feel free to either discuss
it on the python mailing list or via e-mail to jafo-community at

 "Never interrupt your enemy when he is making a mistake."
                 -- Napoleon Bonaparte
Sean Reifschneider, Member of Technical Staff <jafo at>, ltd. - Linux Consulting since 1995: Ask me about High Availability

More information about the Python-list mailing list