RPM Community Forums

Mailing List Message of <rpm-devel>

Re: again: strange rpm version conflicts

From: Jeff Johnson <n3npq@mac.com>
Date: Sun 23 Mar 2008 - 22:26:00 CET
Message-Id: <EE30094C-1EAE-4433-BA22-BD50228EB996@mac.com>

On Mar 23, 2008, at 5:08 PM, devzero2000 wrote:

> Hi,
>
> In rpm 5.0.3 I have this situation on FC8.
>
> I have the package  buggy-nevra-0.99.8.1-17.fc8.noarch.rpm and i  
> want to upgrade
> to buggy-nevra-0.99.8.1-17.1.fc8.noarch.rpm.
>
> Now the questions is:
>
> Is it  buggy-nevra-0.99.8.1-17.1.fc8 newer of buggy- 
> nevra-0.99.8.1-17.fc8 for the rpm rules ?
>
> (for example as in http://people.redhat.com/laroche/pyrpm/pyrpm- 
> devel.html)
>
>
> But rpm 5.0.3 says:
>
>
> su -c "rpm -Uvh /home/machbuild/rpmbuild/RPMS/buggy- 
> nevra-0.99.8.1-17.1.fc8.noarch.rpm
> "
> Parola d'ordine:
> Preparing...                 
> ########################################### [100%]
> error: Install/Erase problems:
>         package buggy-nevra-0.99.8.1-17.fc8.noarch (which is newer  
> than buggy-nevra-0.99.8.1-17.1.fc8.noarch) is already installed
>

The comparison is between a digit string (the "1" in ...-17.1) and an  
alpha string (the "fc8" in ... -17.fc8").

For hysterical reasons digit <-> alpha comparisons are arbitrarily  
defined in rpm.

This patch likely "fixes" (by inverting the order of digit <-> alpha  
string comparisons).

Index: lib/rpmevr.c
===================================================================
RCS file: /v/rpm/cvs/rpm/lib/rpmevr.c,v
retrieving revision 1.3
diff -u -b -B -w -p -r1.3 rpmevr.c
--- lib/rpmevr.c        30 Sep 2007 20:38:25 -0000      1.3
+++ lib/rpmevr.c        23 Mar 2008 21:21:40 -0000
@@ -19,7 +19,7 @@ int _rpmevr_debug = 0;

  /* XXX Force digits to beat alphas. See bugzilla #50977. */
  /*@unchecked@*/
-static int _invert_digits_alphas_comparison = -1;
+static int _invert_digits_alphas_comparison = 1;

  /* XXX Punctuation characters that are not treated as alphas */
  /*@unchecked@*/ /*@observer@*/

>
> In rpm 4.4.2.1.2.3.4.5.6.7.9.10 it work, perhaps it is wrong it or  
> i have done some error: i don't know.
>

All rpm versions are equally broken in the sense that digit <-> alpha  
comparisons
are arbitrarily (and unnaturally wrto ASCII collate sequences) defined.

hth

73 de Jeff
Received on Sun Mar 23 22:26:20 2008
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.