[yum-cvs] yum/yum depsolve.py,1.165,1.166

Jeremy Katz katzj at linux.duke.edu
Tue Jun 5 15:27:22 UTC 2007


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

Modified Files:
	depsolve.py 
Log Message:
* make depcheck object a bit more private; we don't really want to expose
  this
* reset dcobj.already_seen on each call to resolveDeps().  otherwise, there
  could have been changes that we don't know about


Index: depsolve.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/depsolve.py,v
retrieving revision 1.165
retrieving revision 1.166
diff -u -r1.165 -r1.166
--- depsolve.py	4 Jun 2007 20:03:49 -0000	1.165
+++ depsolve.py	5 Jun 2007 15:27:20 -0000	1.166
@@ -743,12 +743,8 @@
         return rc
 
     def _mytsCheck(self):
-        
-        # holder object for things from the check - to be handled by resolveDeps()
-        if not hasattr(self, 'dcobj'):
-            self.dcobj = DepCheck()
-        self.dcobj.requires = []
-        self.dcobj.conficts = []
+        self._dcobj.requires = []
+        self._dcobj.conficts = []
 
         # returns a list of tuples
         # ((name, version, release), (needname, needversion), flags, suggest, sense)
@@ -757,7 +753,7 @@
         ret = []
         for txmbr in self.tsInfo.getMembers():
             
-            if self.dcobj.already_seen.has_key(txmbr):
+            if self._dcobj.already_seen.has_key(txmbr):
                 continue
 
             if self.dsCallback and txmbr.ts_state:
@@ -769,7 +765,7 @@
                 ret.extend(self._checkInstall(txmbr))
             elif txmbr.output_state in TS_REMOVE_STATES:
                 ret.extend(self._checkRemove(txmbr))
-            self.dcobj.already_seen[txmbr] = 1
+            self._dcobj.already_seen[txmbr] = 1
             
         return ret
 
@@ -780,6 +776,13 @@
         depscopy = []
         unresolveableloop = 0
 
+        # holder object for things from the check
+        if not hasattr(self, '_dcobj'):
+            self._dcobj = DepCheck()
+        # reset what we've seen as things may have changed between
+        # calls to resolveDeps (rh#242368)
+        self._dcobj.already_seen = {}
+
         errors = []
         if self.dsCallback: self.dsCallback.start()
 
@@ -870,10 +873,10 @@
                     # from the already_seen cache instead of blindly 
                     # assuming that we already completely resolved their
                     # problems
-                    for curpkg in self.dcobj.already_seen.keys():
+                    for curpkg in self._dcobj.already_seen.keys():
                         if curpkg.name == needname or \
                                curpkg.po.checkPrco('provides', prcoformat_need):
-                            del(self.dcobj.already_seen[curpkg])
+                            del(self._dcobj.already_seen[curpkg])
 
                 missingdep += missing
                 conflicts += conflict
@@ -934,7 +937,7 @@
                 dep = self._provideToPkg(req)
                 if dep is None:
                     reqtuple = (req[0], version_tuple_to_string(req[2]), flags[req[1]])
-                    self.dcobj.addRequires(txmbr.po, [reqtuple])
+                    self._dcobj.addRequires(txmbr.po, [reqtuple])
                     ret.append( ((txmbr.name, txmbr.version, txmbr.release),
                                  (req[0], version_tuple_to_string(req[2])), flags[req[1]], None,
                                  rpm.RPMDEP_SENSE_REQUIRES) )
@@ -1069,7 +1072,7 @@
 
                 self._removing.append(po.pkgtup)
                 reqtuple = (r, version_tuple_to_string(v), flags[f])
-                self.dcobj.addRequires(po, [reqtuple])
+                self._dcobj.addRequires(po, [reqtuple])
                 
                 ret.append( ((po.name, po.version, po.release),
                              (r, version_tuple_to_string(v)),




More information about the Yum-cvs-commits mailing list