I noticed a bug in the remove behaviour:
yum is happy to remove kmod-nvidia-96xx while leaving
xorg-x11-drv-nvidia-96xx which depends on nvidia-96xx-kmod >=
1.0.9631.

It turns out the code responsible for this is inPrcoRange in
packages.py which contains the following code:
               if f != 'EQ':
                   # isn't this odd, it's not 'EQ' - it really should be

The fact that flags != 'EQ' is odd only holds for provides not for the
other prco's.
So I added an extra constraint here:
               if f != 'EQ' and prcotype == 'provides':

Now you correctly removes xorg-x11-drv-nvidia-96xx as well in the test case.

Greets,
 Gijs
Index: packages.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/packages.py,v
retrieving revision 1.100
diff -u -r1.100 packages.py
--- packages.py	13 Apr 2007 09:43:53 -0000	1.100
+++ packages.py	25 Apr 2007 18:13:05 -0000
@@ -263,8 +263,9 @@
                 # found it
                 if f is None:
                     return 1
-                if f != 'EQ':
-                    # isn't this odd, it's not 'EQ' - it really should be
+                if f != 'EQ' and prcotype == 'provides':                
+                    # isn't this odd, it's not 'EQ' and it is a provides
+                    # - it really should be EQ
                     # use the pkgobj's evr for the comparison
                     if e is None:
                         e = self.epoch
_______________________________________________
Yum-devel mailing list
[email protected]
https://lists.dulug.duke.edu/mailman/listinfo/yum-devel

Reply via email to