* Enable the recursive option in profile package.use parsing.
authorZac Medico <zmedico@gentoo.org>
Sat, 10 Jan 2009 07:24:46 +0000 (07:24 -0000)
committerZac Medico <zmedico@gentoo.org>
Sat, 10 Jan 2009 07:24:46 +0000 (07:24 -0000)
* Enable package.umask in all the same locations as package.mask.

svn path=/main/trunk/; revision=12409

man/portage.5
pym/portage/__init__.py

index d95d28d83bd9c8439b8f0e20a00cbc42d8912cce..3e8eb7afcf87ff6dc6b2c01289f32e989c6c5014 100644 (file)
@@ -31,6 +31,7 @@ packages
 packages.build
 package.mask
 package.provided
+package.unmask
 package.use
 package.use.force
 package.use.mask
index f5207b8b2850377e5e626dcf4fa271251e30c69b..bd5425d463daf3dc081146eaf566eff1d3f24278 100644 (file)
@@ -1282,9 +1282,8 @@ class config(object):
                        del rawpusemask
 
                        self.pkgprofileuse = []
-                       rawprofileuse = [grabdict_package(
-                               os.path.join(x, "package.use"), juststrings=True) \
-                               for x in self.profiles]
+                       rawprofileuse = [grabdict_package(os.path.join(x, "package.use"),
+                               juststrings=True, recursive=1) for x in self.profiles]
                        for i in xrange(len(self.profiles)):
                                cpdict = {}
                                for k, v in rawprofileuse[i].iteritems():
@@ -1516,17 +1515,6 @@ class config(object):
                                                self._plicensedict[cp] = cp_dict
                                        cp_dict[k] = self.expandLicenseTokens(v)
 
-                               #package.unmask
-                               pkgunmasklines = grabfile_package(
-                                       os.path.join(abs_user_config, "package.unmask"),
-                                       recursive=1)
-                               for x in pkgunmasklines:
-                                       mycatpkg=dep_getkey(x)
-                                       if mycatpkg in self.punmaskdict:
-                                               self.punmaskdict[mycatpkg].append(x)
-                                       else:
-                                               self.punmaskdict[mycatpkg]=[x]
-
                        #getting categories from an external file now
                        categories = [grabfile(os.path.join(x, "categories")) for x in locations]
                        self.categories = stack_lists(categories, incremental=1)
@@ -1536,12 +1524,16 @@ class config(object):
                        archlist = stack_lists(archlist, incremental=1)
                        self.configdict["conf"]["PORTAGE_ARCHLIST"] = " ".join(archlist)
 
-                       #package.mask
+                       # package.mask and package.unmask
                        pkgmasklines = []
+                       pkgunmasklines = []
                        for x in pmask_locations:
                                pkgmasklines.append(grabfile_package(
                                        os.path.join(x, "package.mask"), recursive=1))
+                               pkgunmasklines.append(grabfile_package(
+                                       os.path.join(x, "package.unmask"), recursive=1))
                        pkgmasklines = stack_lists(pkgmasklines, incremental=1)
+                       pkgunmasklines = stack_lists(pkgunmasklines, incremental=1)
 
                        self.pmaskdict = {}
                        for x in pkgmasklines:
@@ -1551,6 +1543,13 @@ class config(object):
                                else:
                                        self.pmaskdict[mycatpkg]=[x]
 
+                       for x in pkgunmasklines:
+                               mycatpkg=dep_getkey(x)
+                               if mycatpkg in self.punmaskdict:
+                                       self.punmaskdict[mycatpkg].append(x)
+                               else:
+                                       self.punmaskdict[mycatpkg]=[x]
+
                        pkgprovidedlines = [grabfile(os.path.join(x, "package.provided")) for x in self.profiles]
                        pkgprovidedlines = stack_lists(pkgprovidedlines, incremental=1)
                        has_invalid_data = False