Merged from trunk -r12020:12033
authorFabian Groffen <grobian@gentoo.org>
Sat, 22 Nov 2008 11:36:32 +0000 (11:36 -0000)
committerFabian Groffen <grobian@gentoo.org>
Sat, 22 Nov 2008 11:36:32 +0000 (11:36 -0000)
   | 12022   | Bug #247776 - Show a warning message if CONFIG_PROTECT is    |
   | zmedico | empty.                                                       |

   | 12024   | Fix some cases in dep_zapdeps() where blocker atoms are      |
   | zmedico | inappropriately tested for availablity. Thanks to Jorge      |
   |         | Manuel B. S. Vicetto <jmbsvicetto@g.o> for reporting.        |

   | 12026   | Add missing '%' symbol (for binary package moves) to the key |
   | zmedico | that's displayed by _global_updates(). Thanks to Andrew      |
   |         | Gaffney <agaffney@g.o> for reporting.                        |

   | 12028   | Make sure the dict returned from _parse_data() contains all  |
   | zmedico | of _known_keys.                                              |

   | 12030   | Fix quoting on $CHANGELOG_REVISION.                          |
   | zmedico |                                                              |

   | 12033   | Add some people to the AUTHORS section.                      |
   | zmedico |                                                              |

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

man/emerge.1
pym/_emerge/__init__.py
pym/portage/__init__.py
pym/portage/cache/metadata.py

index e79dd1e08b2e910d74ad3e7d4148cf9b6668da1f..66390fb4f310f2fe4db06b0df68ce1b43ae4e182 100644 (file)
@@ -672,6 +672,9 @@ Nicholas Jones <carpaski@gentoo.org>
 Phil Bordelon <phil@thenexusproject.org>
 Mike Frysinger <vapier@gentoo.org>
 Marius Mauch <genone@gentoo.org>
+Jason Stubbs <jstubbs@gentoo.org>
+Brian Harring <ferringb@gmail.com>
+Zac Medico <zmedico@gentoo.org>
 .fi
 .SH "FILES"
 Here is a common list of files you will probably be interested in.  For a 
index 52b25d7104a0481e772cb65649336ebc742f0413..e758e8b352324b9ebea0e81312f83c4c85c0864f 100644 (file)
@@ -13978,6 +13978,14 @@ def repo_name_check(trees):
 
        return bool(missing_repo_names)
 
+def config_protect_check(trees):
+       for root, root_trees in trees.iteritems():
+               if not root_trees["root_config"].settings.get("CONFIG_PROTECT"):
+                       msg = "!!! CONFIG_PROTECT is empty"
+                       if root != "/":
+                               msg += " for '%s'" % root
+                       writemsg_level(msg, level=logging.WARN, noiselevel=-1)
+
 def ambiguous_package_name(arg, atoms, root_config, spinner, myopts):
 
        if "--quiet" in myopts:
@@ -14061,6 +14069,7 @@ def emerge_main():
        if "--quiet" not in myopts:
                portage.deprecated_profile_check()
                repo_name_check(trees)
+               config_protect_check(trees)
 
        eclasses_overridden = {}
        for mytrees in trees.itervalues():
index 6162ffe27e5d3108a3ebfa4a7e6e4f73b0f19174..a5bfd78b3e7b0b84ed4373ec5f56e28e29aaa109 100644 (file)
@@ -6433,6 +6433,8 @@ def dep_zapdeps(unreduced, reduced, myroot, use_binaries=0, trees=None):
                all_available = True
                versions = {}
                for atom in atoms:
+                       if atom[:1] == "!":
+                               continue
                        avail_pkg = mydbapi.match(atom)
                        if avail_pkg:
                                avail_pkg = avail_pkg[-1] # highest (ascending order)
@@ -6450,7 +6452,8 @@ def dep_zapdeps(unreduced, reduced, myroot, use_binaries=0, trees=None):
                        # If any version of a package is installed then we assume that it
                        # is preferred over other possible packages choices.
                        all_installed = True
-                       for atom in set([dep_getkey(atom) for atom in atoms]):
+                       for atom in set([dep_getkey(atom) for atom in atoms \
+                               if atom[:1] != "!"]):
                                # New-style virtuals have zero cost to install.
                                if not vardb.match(atom) and not atom.startswith("virtual/"):
                                        all_installed = False
@@ -7323,7 +7326,7 @@ def _global_updates(trees, prev_mtimes):
                        writemsg_stdout("\n\n")
                        writemsg_stdout(green("Performing Global Updates: ")+bold(mykey)+"\n")
                        writemsg_stdout("(Could take a couple of minutes if you have a lot of binary packages.)\n")
-                       writemsg_stdout("  "+bold(".")+"='update pass'  "+bold("*")+"='binary update'  "+bold("@")+"='/var/db move'\n"+"  "+bold("s")+"='/var/db SLOT move' "+bold("S")+"='binary SLOT move' "+bold("p")+"='update /etc/portage/package.*'\n")
+                       writemsg_stdout("  "+bold(".")+"='update pass'  "+bold("*")+"='binary update'  "+bold("@")+"='/var/db move'\n"+"  "+bold("s")+"='/var/db SLOT move' "+bold("%")+"='binary move' "+bold("S")+"='binary SLOT move' "+bold("p")+"='update /etc/portage/package.*'\n")
                        valid_updates, errors = parse_updates(mycontent)
                        myupd.extend(valid_updates)
                        writemsg_stdout(len(valid_updates) * "." + "\n")
index c3c83a019eebe9dec9aa802edd6bf44f25acea18..164761adbd90f09494a088917e357bed1bb0a384 100644 (file)
@@ -64,6 +64,9 @@ class database(flat_hash.database):
                        # because it calls reconstruct_eclasses() internally.
                        d["_eclasses_"] = reconstruct_eclasses(None, d["_eclasses_"])
 
+               for x in self._known_keys:
+                       d.setdefault(x, '')
+
                return d