[Distutils] SOLVED: bdist_rpm and pre-release python packages / eggs (was: pre-release versioning problems with sdist, bdist_rpm, bdist_debian)

Gerry Reno greno at verizon.net
Thu Mar 12 23:48:24 CET 2009

Manuel Amador (Rudd-O) wrote:
> El Miércoles 11 Marzo 2009, Gerry Reno escribió:
> > Ok, Mandriva comes to mind. It's policy is different and allows more
> > flexibility than Fedora's.
> Well, would you be so kind to link the Mandriva policy for us to read 
> about it?
Mandriva link:  http://wiki.mandriva.com/en/Policies/RpmSpecProposal

You're failing to keep in mind that Fedora is not the only distro out 
there that is RPM-based.
Mandriva is just one of many other RPM-based distros that have packaging 
policies different from Fedora. 

Again, the core software should not enforce one distros packaging 
policies.   If you want to perform some type of check for a particular 
distro then that should be done through an extension module and there 
should be a special command line option to trigger it   

> >
> > Besides, policies are meant for humans. And policies change. We don't
> > need distro policies hard-coded into Distutils. That makes for brittle
> > code.
> So what you're saying, in effect, translates to "sorry, man, you 
> cannot build your Plone packages for RPM distributions, nor can 
> anybody else build any sort of pre-release eggs either". Well, sorry, 
> man, that's not acceptable.
Why do you keep saying this?    What is preventing you (the human) from 
filling in the version and release fields with "fedora-compliant 
strings"?   The core software does not have to know anything about 
fedora.  But you do.

> > Why? A distro's policy is defined for 'human' behavior for users of
> > that distro. Users of distro X should not be hostage to policies of
> > distro Y. 'version' and 'release' should be formatted by humans for
> > whatever distro is the target. There should be no enforcement of any
> > distro's 'packaging policy' over the fields.
> Policy schmolicy, the current distutils behavior builds pre-release 
> RPMs that UPGRADE final release packages, which is broken and stupid 
> because distutils ought to be taking care of the impedance mismatch 
> between python-style versioning and RPM-style lexicographical 
> versioning, but it doesn't. 
That's a lexical ordering problem.  That should be fixed by the human 
making sure that he declares the version and release with proper strings.

> I have a solution that works in fedora, rhel and centos, and likely 
> works just as well on other RPM distros including Mandriva and SUSE. 
Your solution LIMITS the version and release strings to ONLY fedora 
packaging style.    Mandriva users don't want that.  They want to build 
RPM according to their own packaging policy for Mandriva but your patch 
will not let them because it enforces fedora policy.    THAT'S WRONG.

> Do you have an alternative solution? 
Yes, I do.   Remove all artificial restriction on formatting on the 
'version' and 'release' strings.   All that's necessary is for both the 
'version' and 'release' strings to be available to all the distribution 
command which it is not at the moment.  That's it.   Nothing else is 
necessary.     If you want to do some policy enforcing thing, then put 
it in some type of optional extension called from a special command line 


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20090312/eae90780/attachment.htm>

More information about the Distutils-SIG mailing list