[Fedora-packaging] How can packages require a pre-release version?

Christopher Aillon caillon at redhat.com
Thu Feb 10 02:46:57 UTC 2011


http://fedoraproject.org/wiki/Packaging:NamingGuidelines#Non-Numeric_Version_in_Release

So, this has been a problem for a while for me, but I'm just now getting 
to bring it up...

Basically, packages need to be able to require "xulrunner 2.0 beta 11" 
but that's impossible with the current guidelines...

Essentially, the number that gets incremented is _before_ the 
pre-release, and unfortunately there's no time machine available to 
determine how many increments will occur before the next tarball update, 
so packages can't do
   Require: xulrunner > 2.0-0.19.beta11.fc15
   Require: xulrunner < 2.0-0.22.beta12.fc15

since we might just go straight to 2.0-0.20.beta12.fc15 or we might need 
20 rebuilds of beta 11.  And depending on the specific NVR is suboptimal 
too.

What I want to do for the XULRunner case specifically is change it to:
   xulrunner-2.0-0.0.beta11_1.fc15 // first instance of beta 11
   xulrunner-2.0-0.0.beta11_2.fc15 // rebuild of beta 11
   xulrunner-2.0-0.0.beta11_3.fc15 // another rebuild
   xulrunner-2.0-0.0.beta12_1.fc15 // first instance of beta 12
   xulrunner-2.0-0.0.scm20110209_1.fc15 // scm snap from Feb 9 2011
   xulrunner-2.0-0.1.beta13_1.fc15 // first instance of beta 13

So, the first 0 would signify a pre-release, the second 0 would be used 
as sort of a "prerelease epoch" if needed as shown above, and it would 
be followed by the pre-name, and then a release.  Normally, a hyphen 
would precede the rpm release of a tarball, but we can't have that here 
due to the fact that we're putting some of the version information in 
the release, so I think underscore works just as well here, and is 
better than a dot.

This would allow packages to do things like
   Require: xulrunner >= 2.0-0.0.beta11
   Require: xulrunner <= 2.0-0.0.beta12

Thoughts?


(Note: since we're currently at -0.19... in rawhide, I'd of course start 
with 0.20 for this round of pre-releases, but would start with 0.0 for 
the next set of pre-releases)


More information about the packaging mailing list