From 0098a7246df5421243e99b3aedd225cdf38d6779 Mon Sep 17 00:00:00 2001 From: Fabian Groffen Date: Sat, 22 Nov 2008 11:36:32 +0000 Subject: [PATCH] Merged from trunk -r12020:12033 | 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 for reporting. | | 12026 | Add missing '%' symbol (for binary package moves) to the key | | zmedico | that's displayed by _global_updates(). Thanks to Andrew | | | Gaffney 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 | 3 +++ pym/_emerge/__init__.py | 9 +++++++++ pym/portage/__init__.py | 7 +++++-- pym/portage/cache/metadata.py | 3 +++ 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/man/emerge.1 b/man/emerge.1 index e79dd1e08..66390fb4f 100644 --- a/man/emerge.1 +++ b/man/emerge.1 @@ -672,6 +672,9 @@ Nicholas Jones Phil Bordelon Mike Frysinger Marius Mauch +Jason Stubbs +Brian Harring +Zac Medico .fi .SH "FILES" Here is a common list of files you will probably be interested in. For a diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index 52b25d710..e758e8b35 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -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(): diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py index 6162ffe27..a5bfd78b3 100644 --- a/pym/portage/__init__.py +++ b/pym/portage/__init__.py @@ -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") diff --git a/pym/portage/cache/metadata.py b/pym/portage/cache/metadata.py index c3c83a019..164761adb 100644 --- a/pym/portage/cache/metadata.py +++ b/pym/portage/cache/metadata.py @@ -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 -- 2.26.2