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 --enforce-fedora-packaging-policy.
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 option.