extras-buildsys/utils/pushscript MultiLib.py,1.17,1.18

Michael Schwendt mschwendt at fedoraproject.org
Wed Nov 12 16:13:23 UTC 2008


Author: mschwendt

Update of /cvs/fedora/extras-buildsys/utils/pushscript
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv25074

Modified Files:
	MultiLib.py 
Log Message:
add some Yum version checks, so system Yum may be used in some environments


Index: MultiLib.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/utils/pushscript/MultiLib.py,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- MultiLib.py	6 Nov 2008 12:25:23 -0000	1.17
+++ MultiLib.py	12 Nov 2008 16:13:23 -0000	1.18
@@ -22,11 +22,13 @@
 import Utils, RepoSupport
 
 import yum, yum.Errors
+# This function is not available in Yum 2.?.x
+yumver = tuple([ int(num) for num in yum.__version__.split('.')])
 from yum.packages import YumLocalPackage
-try:
-    from yum.packageSack import ListPackageSack
-except: # yum < 2.9
+if yumver[0]<=2 and yumver[1]<9:  # yum < 2.9
     from repomd.packageSack import ListPackageSack
+else:
+    from yum.packageSack import ListPackageSack
 
 # The following dict can be generated with rpmUtils.arch functions.
 # target arch -> compatible archs
@@ -79,7 +81,10 @@
 
         pkg = YumLocalPackage(ts=ts,filename=fname)
         srcrpm = pkg.tagByName('sourcerpm')
-        (n,a,e,v,r) = pkg.returnPackageTuple()
+        if yumver[0]>=3 and yumver[1]>=2 and len(yumver)>=3 and yumver[2]>=17:  # yum > 3.2.17
+            (n,a,e,v,r) = pkg.pkgtup
+        else:
+            (n,a,e,v,r) = pkg.returnPackageTuple()
         (sn,sv,sr,se,sa) = rpmUtils.miscutils.splitFilename(srcrpm)
         debugrpm = '%s-debuginfo-%s-%s.%s.rpm' % (sn,sv,sr,a)
 
@@ -178,14 +183,20 @@
         self.doRepoSetup()
         self.doSackSetup( self.arch )
         for repo in self.repos.listEnabled():
-            self.repos.populateSack(which=[repo.id], with='filelists')
+            if yumver[0]>=3 and yumver[1]>=1 and len(yumver)>=3 and yumver[2]>=1:  # yum > 3.1.1
+                self.repos.populateSack(which=[repo.id], mdtype='filelists')  # since 3.1.1
+            else:
+                self.repos.populateSack(which=[repo.id], with='filelists')
 
     def addNeededPkg(self,pkg):
         self.needed.setdefault(pkg.repoid,{})
         self.needed[pkg.repoid].setdefault('rpms',[])
         self.needed[pkg.repoid].setdefault('debug',[])
         
-        (n,a,e,v,r) = pkg.returnPackageTuple()
+        if yumver[0]>=3 and yumver[1]>=2 and len(yumver)>=3 and yumver[2]>=17:  # yum > 3.2.17
+            (n,a,e,v,r) = pkg.pkgtup
+        else:
+            (n,a,e,v,r) = pkg.returnPackageTuple()
         file = '%s-%s-%s.%s.rpm' % (n,v,r,a)
         if file not in self.needed[pkg.repoid]['rpms']:
             self.needed[pkg.repoid]['rpms'].append(file)
@@ -200,10 +211,10 @@
                 print ' +', debugrpm
 
     def resolveRequires(self,pkg):
-        if pkg.returnNevraPrintable() in self.seenbefore:
+        if pkg.__str__() in self.seenbefore:
             #print " ! SEEN BEFORE"
             return
-        self.seenbefore.append( pkg.returnNevraPrintable() )
+        self.seenbefore.append( pkg.__str__() )
 
         # yum-2.6.0-1
         #    for (req,flags,(reqe,reqv,reqr)) in pkg.returnPrco('requires'):




More information about the scm-commits mailing list