Merged from trunk -r11785:11791
authorFabian Groffen <grobian@gentoo.org>
Sun, 2 Nov 2008 08:01:32 +0000 (08:01 -0000)
committerFabian Groffen <grobian@gentoo.org>
Sun, 2 Nov 2008 08:01:32 +0000 (08:01 -0000)
   | 11786   | Bug #239015 - Disable unmerge operations for                 |
   | zmedico | EverythingSet/@installed.                                    |

   | 11787   | In Scheduler._calc_resume_list(), use self.pkgsettings       |
   | zmedico | instead of the the temportary depgraph's.                    |

   | 11788   | TODO: In case some elf files collide with blocked packages,  |
   | zmedico | ensure that NEEDED data from include_file overrides the      |
   |         | stale NEEDED data from the colliding files in the blocked    |
   |         | packages.                                                    |

   | 11789   | In _validate_deps(), show the ebuild version to clarify      |
   | zmedico | which ebuild the errors belong to.                           |

   | 11790   | In config.setcpv(), ensure that A and AA aren't in the env   |
   | zmedico | dict.                                                        |

   | 11791   | In SetConfig.getSetAtoms(), access self.psets directly in    |
   | zmedico | order to avoid making a copy and also to avoid potential     |
   |         | swallowing of an unexpected KeyError.                        |

svn path=/main/branches/prefix/; revision=11795

pym/_emerge/__init__.py
pym/portage/__init__.py
pym/portage/dbapi/vartree.py
pym/portage/sets/__init__.py
pym/portage/sets/dbapi.py

index 12308d8281c3fd4e1925f7c0312c9a4149155139..c7f8aa88e47d42782270b620b75f3138dd3d22ac 100644 (file)
@@ -10312,7 +10312,7 @@ class Scheduler(PollScheduler):
                        msg += " dropped due to unsatisfied dependency."
                        for line in textwrap.wrap(msg, msg_width):
                                eerror(line, phase="other", key=pkg.cpv)
-                       settings = mydepgraph.pkgsettings[pkg.root]
+                       settings = self.pkgsettings[pkg.root]
                        # Ensure that log collection from $T is disabled inside
                        # elog_process(), since any logs that might exist are
                        # not valid here.
index 76b7704dd14258aa5d9842d0663e52fea3f969d7..5f13e4217b13b0e8f6b1789bef20925e7f8a882e 100644 (file)
@@ -1965,7 +1965,7 @@ class config(object):
                env_configdict = self.configdict["env"]
                pkg_configdict = self.configdict["pkg"]
                previous_iuse = pkg_configdict.get("IUSE")
-               for k in ("CATEGORY", "PKGUSE", "PF", "PORTAGE_USE"):
+               for k in ("A", "AA", "CATEGORY", "PKGUSE", "PF", "PORTAGE_USE"):
                        env_configdict.pop(k, None)
                pkg_configdict["CATEGORY"] = cat
                pkg_configdict["PF"] = pf
@@ -5911,27 +5911,31 @@ def _validate_deps(mysettings, myroot, mydo, mydbapi):
        dep_check_trees[myroot]["porttree"] = \
                FakeTree(fakedbapi(settings=mysettings))
 
+       msgs = []
        for dep_type in dep_keys:
                mycheck = dep_check(metadata[dep_type], None, mysettings,
                        myuse="all", myroot=myroot, trees=dep_check_trees)
                if not mycheck[0]:
-                       writemsg("%s: %s\n%s\n" % (
-                               dep_type, metadata[dep_type], mycheck[1]), noiselevel=-1)
-                       if mydo not in invalid_dep_exempt_phases:
-                               return 1
+                       msgs.append("  %s: %s\n    %s\n" % (
+                               dep_type, metadata[dep_type], mycheck[1]))
 
        for k in misc_keys:
                try:
                        portage.dep.use_reduce(
                                portage.dep.paren_reduce(metadata[k]), matchall=True)
                except portage.exception.InvalidDependString, e:
-                       writemsg("%s: %s\n%s\n" % (
-                               k, metadata[k], str(e)), noiselevel=-1)
-                       if mydo not in invalid_dep_exempt_phases:
-                               return 1
+                       msgs.append("  %s: %s\n    %s\n" % (
+                               k, metadata[k], str(e)))
 
        if not metadata["SLOT"]:
-               writemsg("SLOT is undefined\n", noiselevel=-1)
+               msgs.append("  SLOT is undefined\n")
+
+       if msgs:
+               portage.util.writemsg_level("Error(s) in metadata for '%s':\n" % \
+                       (mysettings.mycpv,), level=logging.ERROR, noiselevel=-1)
+               for x in msgs:
+                       portage.util.writemsg_level(x,
+                               level=logging.ERROR, noiselevel=-1)
                if mydo not in invalid_dep_exempt_phases:
                        return 1
 
index 6827ea05370779d6d2983b1e8e58a42652f67c71..a9ece12e21d6bd7e41e97b29baf302da3a124c82 100644 (file)
@@ -3740,6 +3740,9 @@ class dblink(object):
                                gid=portage_gid, mode=02750, mask=02)
                        writedict(cfgfiledict, conf_mem_file)
 
+               # TODO: In case some elf files collide with blocked packages,
+               # ensure that NEEDED data from include_file overrides the stale
+               # NEEDED data from the colliding files in the blocked packages.
                exclude_pkgs = set(dblnk.mycpv for dblnk in others_in_slot)
                if ostype == "Darwin":
                        neededfile = "NEEDED.MACHO.3"
index a668c83246d938941e4aed7043cd547c5cd0010a..ef7c1d9381105bf5983498e3f3013174b617b9c6 100644 (file)
@@ -138,8 +138,9 @@ class SetConfig(object):
                """
                This raises PackageSetNotFound if the give setname does not exist.
                """
+               self._parse()
                try:
-                       myset = self.getSets()[setname]
+                       myset = self.psets[setname]
                except KeyError:
                        raise PackageSetNotFound(setname)
                myatoms = myset.getAtoms()
index 4ab1252d6935c69bba044a7c550524208290d4de..877c45ceeca36b2856f0bf20fe811b546208003d 100644 (file)
@@ -11,7 +11,7 @@ __all__ = ["CategorySet", "DowngradeSet",
        "EverythingSet", "OwnerSet", "VariableSet"]
 
 class EverythingSet(PackageSet):
-       _operations = ["merge", "unmerge"]
+       _operations = ["merge"]
        description = "Package set which contains SLOT " + \
                "atoms to match all installed packages"
        _filter = None