Alpha/For Discussion: RPMs for around 3,000 PyPI packages.
jafo at tummy.com
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 setup.py 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.
PACKAGE MAINTAINER NOTES
If you maintain a package on the cheeseshop (http://pypi.python.org/pypi),
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 setup.py
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
pypi.python.org machine (via the "python setup.py 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
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 tummy.com
"Never interrupt your enemy when he is making a mistake."
-- Napoleon Bonaparte
Sean Reifschneider, Member of Technical Staff <jafo at tummy.com>
tummy.com, ltd. - Linux Consulting since 1995: Ask me about High Availability
More information about the Python-list