[Rpm-maint] [RFC/PATCH] comparisons without release
Michael Schroeder
mls at suse.de
Mon Nov 29 18:51:48 UTC 2010
On Mon, Nov 29, 2010 at 07:26:49PM +0100, Michael Schroeder wrote:
> On Mon, Nov 29, 2010 at 01:10:25PM -0500, James Antill wrote:
> > ...before rpm even sees it. Does that still change?
>
> Uh, you're confusing me. "Provides: foo > 1.2, Requires foo = 1.2"
> does not match, both with and without the patch. But the patch
> makes "foo > 1.2-1" match "foo = 1.2". So you probably need to
> remove the yum workaround and rely on rpm doing the right thing.
I think you're talking about rangeCompare() in miscutils.py.
The patch would look something like (untested):
--- ./miscutils.py.orig 2010-11-29 18:39:33.000000000 +0000
+++ ./miscutils.py 2010-11-29 18:49:34.000000000 +0000
@@ -145,6 +145,8 @@ def rangeCompare(reqtuple, provtuple):
if f is None or reqf is None:
return 1
+ oldr = r
+ oldreqr = reqr
# and you thought we were done having fun
# if the requested release is left out then we have
# to remove release from the package prco to make sure the match
@@ -171,6 +173,12 @@ def rangeCompare(reqtuple, provtuple):
if f in ['LE', 10]:
return 1
if rc == 0:
+ if r is None:
+ # always match if the side with no release contains '='
+ if oldr is not None and reqf in ['GE', 'EQ', 'LE', 12, 8, 10]:
+ return 1
+ if oldreqr is not None and f in ['GE', 'EQ', 'LE', 12, 8, 10]:
+ return 1
if reqf in ['GT', 4]:
if f in ['GT', 'GE', 4, 12]:
return 1
Cheers,
Michael.
--
Michael Schroeder mls at suse.de
SUSE LINUX Products GmbH, GF Markus Rex, HRB 16746 AG Nuernberg
main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);}
More information about the Rpm-maint
mailing list