[lug] rpm version comparison

Hugh Brown hugh at vecna.com
Thu Jun 6 12:27:04 MDT 2002


I sit reproved.  I had tried digging through some of the rpm source and
wasn't coming up with much.  I'll try not to be so lazy next time. 
Thanks for the help.

Hugh


On Thu, 2002-06-06 at 13:33, John Hernandez wrote:
> I pasted your subject line into google and look what surfaced ;)
> 
>  > On Tue, Nov 13, 2001 at 03:41:38PM -0200, Andreas Hasenack wrote:
>  > The algorithm that RPM uses to determine the version ordering of
>  > packages is simple and developers are encouraged not to rely on the
>  > details of its working.  Developers should keep their numbering scheme
>  > simple so any reasonable ordering algorithm would work.  The version
>  > comparison algorithm is in the routine rpmvercmp() and it is just a 
> segmented
>  > strcmp(3).  First, the boundaries of the segments are found using
>  > isdigit(3)/isalpha(3).  Each segment is then compared in order with the
>  > right most segment being the least significant.  The alphabetical
>  > portions are compared using a lexical graphical ascii ordering, the
>  > digit segments strip leading zeroes's and compare the strlen before
>  > doing a strcmp. If both numerical strings are equal, the longer string
>  > is larger.  Notice that the algorithm has no knowledge of decimal 
> fractions,
>  > and perl-5.6 is "older" than perl-5.00503 because the number 6 si 
> less than
>  > the number 503.
> 
> The way I read it, the answer would be that gdb-5.0rh-5 is newer version.
> 
> Hugh Brown wrote:
> > How does rpm do version comparison when doing a -F?
> > 
> > e.g.
> > 
> > gdb-5.0rh-5
> > gdb-5.0-7.71
> > 
> > 
> > Which package would be more recent?
> > 
> > Hugh
> > 
> > _______________________________________________
> > Web Page:  http://lug.boulder.co.us
> > Mailing List: http://lists.lug.boulder.co.us/mailman/listinfo/lug
> > Join us on IRC: lug.boulder.co.us port=6667 channel=#colug
> 
> 
> -- 
> 
>    - John Hernandez - Network Engineer - 303-497-6392 -
>   |  National Oceanic and Atmospheric Administration   |
>   |  Mailstop R/OM12. 325 Broadway, Boulder, CO 80305  |
>    ----------------------------------------------------
> 
> _______________________________________________
> Web Page:  http://lug.boulder.co.us
> Mailing List: http://lists.lug.boulder.co.us/mailman/listinfo/lug
> Join us on IRC: lug.boulder.co.us port=6667 channel=#colug





More information about the LUG mailing list