[Distutils] Changes in RPM affecting Distutils

Mark W. Alexander mwa at anonymoose.net
Mon Oct 27 22:56:41 EST 2003


On Mon, 27 Oct 2003, Fred L. Drake, Jr. wrote:

>
> I just tried building an RPM using the bdist_rpm command to setup.py,
> and the rpm process complained.  Appearantly newer versions of rpm use
> a separate build process, rpmbuild, and don't provide sufficient
> command line compatibility by default.
>
> I'm using rpm 4.2 on a RedHat 9 system.
>
> Has anyone looked into fixing this in Distutils yet?

Looked at, no. Thought about, yes. What I've been thinking about (in my
complete ignorance of the rpmlib package) is that building rpms would be
better done using the rpmlib package rather than external rpm commands.
I'd like to see equivalent packager libraries for all bdist commands,
i.e.  winlib, pkglib, dpkglib, sduxlib, etc. There's nothing real magic
about the format of binary packages that the have to be _created_ by the
native package tools. They only need to be able to be read by native
package tools.

If we can include/build such a library for each binary packager, then
binary packages can be created on one platform for another (binary
compatible) platform. If we add in cross-compiler support, then binary
packages for ALL supported platforms could be created on any platform
with the appropriate cross-toolchains. (And I recently found an
unofficial apt repository with a lot of cross toolchains.)

The idea that really intriques me is being able to upload source to a
catalog host with a full cross-compile suite and multiple python
versions. When someone requests to download a binary package for python
2.2 for a Sparc sun4u that uses pkgtool, the catalog would see if it had
one available and, if not, schedule the build and have the request try
back later. Binary packages not downloaded again within a certain period
of time could be expired and flushed to save space as necessary.

Also, cross-compiling capability would be a huge advantage for targeting
packages for embedded systems. I love having python on my Zaurus, but
building packages with C extensions for it right now means installing a
full development environment on it, or losing all the ease of Distutils.

-- 
Mark W. Alexander
slash at dotnetslash.net



More information about the Distutils-SIG mailing list