[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