[Yum-devel] [PATCH 2/2] fix in rangeCompare for where the item we're comparing it to has LESS than range for example: if e-1.0-0 in the range of E < 1.1
Seth Vidal
skvidal at fedoraproject.org
Wed Aug 12 13:24:43 UTC 2009
On Tue, 11 Aug 2009, James Antill wrote:
> On Tue, 2009-08-11 at 16:59 -0400, Seth Vidal wrote:
>> There are probably more typeso f insanity here - and some more tests to define and I commented
>> about that in the code.
>> ---
>> rpmUtils/miscutils.py | 8 +++++++-
>> 1 files changed, 7 insertions(+), 1 deletions(-)
>>
>> diff --git a/rpmUtils/miscutils.py b/rpmUtils/miscutils.py
>> index f494fc3..d76f3a8 100644
>> --- a/rpmUtils/miscutils.py
>> +++ b/rpmUtils/miscutils.py
>> @@ -173,8 +173,14 @@ def rangeCompare(reqtuple, provtuple):
>> if reqf in ['GT', 'GE', 4, 12]:
>> return 1
>> if reqf in ['EQ', 8]:
>> - if f in ['LE', 10]:
>> + if f in ['LE', 10, 'LT', 2]:
>> return 1
>> + # there is more to be done here to make sure it is right
>> + # my brain melted trying to map these- skvidal 8/11/2009
>> + if reqf in ['LT', 2]:
>> + if f in ['LT', 2]:
>> + return 1
>> +
>
>
> I'm 99% sure this should mirror the <= cases for GE/GT/etc. so where
> that is:
>
> if reqf in ['GT', 'GE', 'EQ', 4, 12, 8]:
> if f in ['GT', 'GE', 4, 12]:
> return 1
> if reqf in ['LE', 'LT', 10, 2]:
> return 1
>
> ...I think you want:
>
> if reqf in ['LE', 'LT', 'EQ', 10, 2, 8]:
> if f in ['LE', 'LT', 10, 2]:
> return 1
> if reqf in ['GT', 'GE', 4, 12]:
> return 1
>
> ...after your patch the following will fail, and should succeed:
Before my patch all of those will fail, too.
>
> rpmUtils.miscutils.rangeCompare(('E', 'LE', ('0', '1.0', '0')),
> ('E', 'LE', ('0', '1.1', '0')))
> rpmUtils.miscutils.rangeCompare(('E', 'LT', ('0', '1.0', '0')),
> ('E', 'LE', ('0', '1.1', '0')))
> rpmUtils.miscutils.rangeCompare(('E', 'LE', ('0', '1.0', '0')),
> ('E', 'LT', ('0', '1.1', '0')))
>
I've got no problem fixing more of the cases - as per my comment in the
code, I just was trying to unbreak the specific brokenness.
-sv
More information about the Yum-devel
mailing list