self._failed_pkgs_all.extend(failed_pkgs)
del failed_pkgs[:]
+ printer = portage.output.EOutput()
background = self._background
failure_log_shown = False
if background and len(self._failed_pkgs_all) == 1:
self._failed_pkgs_die_msgs and \
not mod_echo_output:
- printer = portage.output.EOutput()
for mysettings, key, logentries in self._failed_pkgs_die_msgs:
root_msg = ""
if mysettings["ROOT"] != "/":
else:
msg = "The following package has " + \
"failed to build or install:"
- prefix = bad(" * ")
- writemsg(prefix + "\n", noiselevel=-1)
- from textwrap import wrap
- for line in wrap(msg, 72):
- writemsg("%s%s\n" % (prefix, line), noiselevel=-1)
- writemsg(prefix + "\n", noiselevel=-1)
+
+ printer.eerror("")
+ for line in textwrap.wrap(msg, 72):
+ printer.eerror(line)
+ printer.eerror("")
for failed_pkg in self._failed_pkgs_all:
- writemsg("%s\t%s\n" % (prefix,
- colorize("INFORM", str(failed_pkg.pkg))),
- noiselevel=-1)
- writemsg(prefix + "\n", noiselevel=-1)
+ msg = " %s" % (colorize('INFORM', failed_pkg.pkg.__str__()),)
+ log_path = self._locate_failure_log(failed_pkg)
+ if log_path is not None:
+ msg += ", Log file:"
+ printer.eerror(msg)
+ if log_path is not None:
+ printer.eerror(" '%s'" % colorize('INFORM', log_path))
+ printer.eerror("")
if self._failed_pkgs_all:
return 1
metadata, mreasons = get_mask_info(root_config, cpv,
pkgsettings, db, pkg_type, built, installed, db_keys)
if metadata is not None:
- pkg = Package(built=built, cpv=cpv,
- installed=installed, metadata=metadata,
- root_config=root_config)
+ pkg = self._pkg(cpv, pkg_type, root_config,
+ installed=installed)
if pkg.cp != atom.cp:
# A cpv can be returned from dbapi.match() as an
# old-style virtual match even in cases when the
# Filter out any such false matches here.
if not atom_set.findAtomForPackage(pkg):
continue
+ if pkg in self._dynamic_config._runtime_pkg_mask:
+ backtrack_reasons = \
+ self._dynamic_config._runtime_pkg_mask[pkg]
+ mreasons.append('backtracking: %s' % \
+ ', '.join(sorted(backtrack_reasons)))
if mreasons:
masked_pkg_instances.add(pkg)
if atom.use: