Fix PROVIDE code since the Package class automatically evaluates USE
authorZac Medico <zmedico@gentoo.org>
Fri, 26 Jun 2009 23:01:46 +0000 (23:01 -0000)
committerZac Medico <zmedico@gentoo.org>
Fri, 26 Jun 2009 23:01:46 +0000 (23:01 -0000)
conditionals now.

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

bin/repoman
pym/_emerge/Package.py

index 1ca55cd8d8454e03e39ff0c716712c14418f377d..41c811039f7e659789b35ea058d4cb00178211b3 100755 (executable)
@@ -1237,14 +1237,15 @@ for x in scanlist:
                #       if x.startswith("no"):
                #               print "Bad RESTRICT value: %s" % x
                try:
-                       myaux["PROVIDE"] = portage.dep.use_reduce(
+                       portage.dep.use_reduce(
                                portage.dep.paren_reduce(myaux["PROVIDE"]), matchall=1)
                except portage.exception.InvalidDependString, e:
                        stats["PROVIDE.syntax"] = stats["PROVIDE.syntax"] + 1
                        fails["PROVIDE.syntax"].append(mykey+".ebuild PROVIDE: "+str(e))
                        del e
                        continue
-               myaux["PROVIDE"] = " ".join(portage.flatten(myaux["PROVIDE"]))
+
+               # The Package class automatically evaluates USE conditionals.
                for myprovide in myaux["PROVIDE"].split():
                        prov_cp = portage.dep_getkey(myprovide)
                        if prov_cp != myprovide:
index 1d90975c74aa5a65dcf020b23c88e28d3580baff..938c17733393dec02a794c4260c189dbbc7ebdad 100644 (file)
@@ -185,8 +185,12 @@ class _PackageMetadataWrapper(_PackageMetadataWrapperBase):
                if k in self._use_conditional_keys:
                        if '?' in v:
                                try:
-                                       v = paren_enclose(paren_normalize(use_reduce(
-                                               paren_reduce(v), uselist=self._pkg.use.enabled)))
+                                       if self._pkg.root_config.settings.local_config:
+                                               v = paren_enclose(paren_normalize(use_reduce(
+                                                       paren_reduce(v), uselist=self._pkg.use.enabled)))
+                                       else:
+                                               v = paren_enclose(paren_normalize(use_reduce(
+                                                       paren_reduce(v), matchall=1)))
                                except portage.exception.InvalidDependString:
                                        # This error should already have been registered via
                                        # self._pkg._invalid_metadata().