Bug #195375 - Make dblink.treewalk() read inforoot/SLOT since
authorZac Medico <zmedico@gentoo.org>
Thu, 18 Oct 2007 19:33:04 +0000 (19:33 -0000)
committerZac Medico <zmedico@gentoo.org>
Thu, 18 Oct 2007 19:33:04 +0000 (19:33 -0000)
it differs from the expected SLOT value when when USE=multislot
is enabled. A warning message will be shown if the slot differs
and --quiet mode is not enabled. (trunk r8172)

svn path=/main/branches/2.1.2/; revision=8173

pym/portage.py

index cb8ac6aa1ed9d1117e127c14d3df68ed58bdcc51..932d7c4b8bfc9fc1967bedcdb26027f959d9a24c 100644 (file)
@@ -7877,6 +7877,22 @@ class dblink:
                        noiselevel=-1)
                        return 1
 
+               inforoot_slot_file = os.path.join(inforoot, "SLOT")
+               try:
+                       f = open(inforoot_slot_file)
+                       try:
+                               slot = f.read().strip()
+                       finally:
+                               f.close()
+               except OSError, e:
+                       writemsg("!!! Error reading '%s': %s\n" % (inforoot_slot_file, e),
+                               noiselevel=-1)
+                       return 1
+
+               if slot != self.settings["SLOT"]:
+                       writemsg("!!! WARNING: Expected SLOT='%s', got '%s'\n" % \
+                               (self.settings["SLOT"], slot))
+
                if not os.path.exists(self.dbcatdir):
                        os.makedirs(self.dbcatdir)
 
@@ -7885,7 +7901,7 @@ class dblink:
                        otherversions.append(v.split("/")[1])
 
                slot_matches = self.vartree.dbapi.match(
-                       "%s:%s" % (self.mysplit[0], self.settings["SLOT"]))
+                       "%s:%s" % (self.mysplit[0], slot))
                if self.mycpv not in slot_matches and \
                        self.vartree.dbapi.cpv_exists(self.mycpv):
                        # handle multislot or unapplied slotmove