Re: RPM versioning question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Sat, 18 Oct 2003 00:30:13 -0500, Robert G. (Doc) Savage wrote:

> This is probably a question for a Red Hat insider.
> 
> I've seen many thousands of RPM packages since I first installed RH 3.03
> years ago, yet I have yet to figure out how their numbering *after the
> first three fields*.  For example, these are two RPMs recently posted to
> rawhide:
> 
> 	python-2.2.3-7.i386.rpm
> 	kernel-2.4.22-1.2093.nptl.i386.rpm
> 
> How should one interpret the numbers to the right of the second dash? 
> Specifically, "-7" and "-1.2093.nptl". Are these related in any way to
> version numbers used by upstream maintainers? How are they incremented
> and why? Is there any real pattern to this. Or is this some kind of
> random dart board exercise?

Are you asking what a package "release version" is or what Red Hat's
package release versioning scheme is?

The pattern in RPM package file names is

  Name-SoftwareVersion-PackageRelease.Architecture.rpm

When you have two packages which contain the same software version,
e.g. Linux kernel 2.4.22, there must be a way to make one package
newer than the other one, in case the newer package includes
additional fixes and should update the older one:

      older:  kernel-2.4.22-1.i386.rpm
      newer:  kernel-2.4.22-2.i386.rpm
 much newer:  kernel-2.4.22-48.i386.rpm

In your example,

> 	python-2.2.3-7.i386.rpm
> 	kernel-2.4.22-1.2093.nptl.i386.rpm

the "7" and "1.2093.nptl" are the package release version. "python"
is in the seventh package revision. Their kernel release seems to
contain some sort of "build number" and the ".nptl" postfix to
indicate it's a kernel with NPTL support.

Both software version and package release version are not limited to
digits or integer numbers, but may not include the '-' character, for
instance. They are pretty much arbitary except that they must be
increased in a way that is transitive and compatible with RPM's
version comparison algorithm. Internally, RPM compares package several
release versions using a non-trivial algorithm to decide which of
multiple packages with the same software version is the newer one. The
versioning comparison tries to deal with special cases such as whether
1.0a is newer than 1.0 or whether 2.0rc1 is older than 2.0rc3.

You can learn more about RPM at http://www.rpm.org, e.g. via online
docs or the available books.

[RPM versioning gets funny, when a kernel-2.4.18-9 package is newer
than kernel-2.4.22-1 because an internal "epoch" value has been
increased because 2.4.22-1 turned out to be way too unstable and since
2.4.18 is greater than 2.4.22, there would be no way to make the new
2.4.18-9 package upgrade the older 2.4.22-1 package release.]

- -- 
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)

iD8DBQE/kOTz0iMVcrivHFQRAk+eAJ91/EcCaNflUchiWMigySFcHAYvBgCeO2uE
zBDdcLgtszA7ox+jJfYJSd0=
=Su+P
-----END PGP SIGNATURE-----


-- 
Shrike-list mailing list
Shrike-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/shrike-list

[Index of Archives]     [Fedora Users]     [Centos Users]     [Kernel Development]     [Red Hat Install]     [Red Hat Watch]     [Red Hat Development]     [Red Hat Phoebe Beta]     [Yosemite Forum]     [Fedora Discussion]     [Gimp]     [Stuff]     [Yosemite News]

  Powered by Linux