[yum-cvs] yum/yum __init__.py,1.131,1.132

Seth Vidal skvidal at login.linux.duke.edu
Thu Jul 14 08:29:01 UTC 2005


Update of /home/groups/yum/cvs/yum/yum
In directory login:/tmp/cvs-serv12937/yum

Modified Files:
	__init__.py 
Log Message:

allow remove option to handle virtual provides, versioned provides,
file-deps, etc, like install can deal with.


Index: __init__.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/__init__.py,v
retrieving revision 1.131
retrieving revision 1.132
diff -u -r1.131 -r1.132
--- __init__.py	13 Jul 2005 10:29:59 -0000	1.131
+++ __init__.py	14 Jul 2005 08:28:58 -0000	1.132
@@ -1351,3 +1351,35 @@
 
         return best
 
+    def returnInstalledPackagesByDep(self, depstring):
+        """Pass in a generic [build]require string and this function will 
+           pass back the installed packages it finds providing that dep."""
+        
+        results = []
+        self.doRpmDBSetup()
+        # parse the string out
+        #  either it is 'dep (some operator) e:v-r'
+        #  or /file/dep
+        #  or packagename
+        depname = depstring
+        depflags = None
+        depver = None
+        
+        if depstring[0] != '/':
+            # not a file dep - look at it for being versioned
+            if re.search('[>=<]', depstring):  # versioned
+                try:
+                    depname, flagsymbol, depver = depstring.split()
+                except ValueError, e:
+                    raise Errors.YumBaseError, 'Invalid versioned dependency string, try quoting it.'
+                if not SYMBOLFLAGS.has_key(flagsymbol):
+                    raise Errors.YumBaseError, 'Invalid version flag'
+                depflags = SYMBOLFLAGS[flagsymbol]
+                
+        pkglist = self.rpmdb.whatProvides(depname, depflags, depver)
+        
+        for pkgtup in pkglist:
+            results.append(self.getInstalledPackageObject(pkgtup))
+        
+        return results
+




More information about the Yum-cvs-commits mailing list