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.
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
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
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"