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
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:
if "--quiet" not in myopts:
portage.deprecated_profile_check()
repo_name_check(trees)
+ config_protect_check(trees)
eclasses_overridden = {}
for mytrees in trees.itervalues():
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)
# 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
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")
# because it calls reconstruct_eclasses() internally.
d["_eclasses_"] = reconstruct_eclasses(None, d["_eclasses_"])
+ for x in self._known_keys:
+ d.setdefault(x, '')
+
return d