In config.setcpv() and load_infodir(), always set known good values
authorZac Medico <zmedico@gentoo.org>
Fri, 11 Apr 2008 18:48:33 +0000 (18:48 -0000)
committerZac Medico <zmedico@gentoo.org>
Fri, 11 Apr 2008 18:48:33 +0000 (18:48 -0000)
for CATEGORY and PF, since corruption of these can cause problems.
(trunk r9832)

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

pym/portage.py

index 94309a7c92806a0226b5a1ba924612824d1c45ca..0826559309d2b67bd5e5905147278eb1c383098e 100644 (file)
@@ -1879,6 +1879,13 @@ class config:
                                os.path.join(infodir, "CATEGORY"), noiselevel=-1)
                        self.configdict["pkg"].update(backup_pkg_metadata)
                        retval = 0
+
+               # Always set known good values for these variables, since
+               # corruption of these can cause problems:
+               cat, pf = catsplit(self.mycpv)
+               self.configdict["pkg"]["CATEGORY"] = cat
+               self.configdict["pkg"]["PF"] = pf
+
                return retval
 
        def setcpv(self, mycpv, use_cache=1, mydb=None):
@@ -2016,8 +2023,13 @@ class config:
                                # Without this conditional, regenerate() would be called
                                # *every* time.
                                has_changed = True
-               # CATEGORY is essential for doebuild calls
-               self.configdict["pkg"]["CATEGORY"] = mycpv.split("/")[0]
+
+               # Always set known good values for these variables, since
+               # corruption of these can cause problems:
+               cat, pf = catsplit(self.mycpv)
+               self.configdict["pkg"]["CATEGORY"] = cat
+               self.configdict["pkg"]["PF"] = pf
+
                if has_changed:
                        self.reset(keeping_pkg=1,use_cache=use_cache)