[yum-cvs] yum/yum rpmsack.py,1.3,1.4

Seth Vidal skvidal at linux.duke.edu
Wed Jun 28 05:19:23 UTC 2006


Update of /home/groups/yum/cvs/yum/yum
In directory login1.linux.duke.edu:/tmp/cvs-serv32477/yum

Modified Files:
	rpmsack.py 
Log Message:

make the code, you know, work.


Index: rpmsack.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/rpmsack.py,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- rpmsack.py	28 Jun 2006 05:07:34 -0000	1.3
+++ rpmsack.py	28 Jun 2006 05:19:21 -0000	1.4
@@ -202,19 +202,37 @@
             indexes = self.header_indexes[(n,a,e,v,r)]
             return self.indexes2list(indexes)
         
-        mi = self.ts.dbMatch()
-        if name:
-            mi.pattern(rpm.RPMTAG_NAME, rpm.RPMMIRE_STRCMP, name)
-        if epoch:
-            mi.pattern(rpm.RPMTAG_EPOCH, rpm.RPMMIRE_STRCMP, epoch)
-        if ver:
-            mi.pattern(rpm.RPMTAG_VERSION, rpm.RPMMIRE_STRCMP, ver)
-        if rel:
-            mi.pattern(rpm.RPMTAG_RELEASE, rpm.RPMMIRE_STRCMP, rel)
-        if arch:
-            mi.pattern(rpm.RPMTAG_ARCH, rpm.RPMMIRE_STRCMP, arch)
-
-        return self.mi2list(mi)
+        removedict = {}
+        indexes = []
+        
+        for pkgtup in self.simplePkgList():
+            (n, a, e, v, r) = pkgtup
+            if name is not None:
+                if name != n:
+                    removedict[pkgtup] = 1
+                    continue
+            if arch is not None:
+                if arch != a:
+                    removedict[pkgtup] = 1
+                    continue
+            if epoch is not None:
+                if epoch != e:
+                    removedict[pkgtup] = 1
+                    continue
+            if ver is not None:
+                if ver != v:
+                    removedict[pkgtup] = 1
+                    continue
+            if rel is not None:
+                if rel != r:
+                    removedict[pkgtup] = 1
+                    continue
+                    
+        for pkgtup in self.simplePkgList():
+            if not removedict.has_key(pkgtup):
+                indexes.extend(self.header_indexes[pkgtup])
+        
+        return self.indexes2list(indexes)
 
     def packagesByTuple(self, pkgtup):
         """return a list of package objects by (n,a,e,v,r) tuple"""
@@ -223,11 +241,11 @@
 
     def excludeArchs(self, archlist):
         pass
-#        for arch in archlist:
-#            mi = self.ts.dbMatch()
-#            mi.pattern(rpm.RPMTAG_ARCH, rpm.RPMMIRE_STRCMP, arch)
-#            for hdr in mi:
-#                self.delPackageById(hdr[rpm.RPMTAG_SHA1HEADER])
+        #for arch in archlist:
+        #    mi = self.ts.dbMatch()
+        #    mi.pattern(rpm.RPMTAG_ARCH, rpm.RPMMIRE_STRCMP, arch)
+        #    for hdr in mi:
+        #        self.delPackageById(hdr[rpm.RPMTAG_SHA1HEADER])
 
 
 




More information about the Yum-cvs-commits mailing list