public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Thomas Sachau" <tommy@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/portage:multilib commit in: pym/_emerge/
Date: Sun,  6 Feb 2011 13:10:00 +0000 (UTC)	[thread overview]
Message-ID: <dd5175a7e851a12f5740c2481c96b32e5db1f4eb.tommy@gentoo> (raw)

commit:     dd5175a7e851a12f5740c2481c96b32e5db1f4eb
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Wed Feb  2 04:09:50 2011 +0000
Commit:     Thomas Sachau <tommy <AT> gentoo <DOT> org>
CommitDate: Wed Feb  2 04:09:50 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=dd5175a7

Show "missed update" message for REQUIRED_USE.

This will fix bug #353443.

---
 pym/_emerge/depgraph.py |   38 +++++++++++++++++++++++++++++++-------
 1 files changed, 31 insertions(+), 7 deletions(-)

diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index 64e9b19..16326ee 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -198,6 +198,9 @@ class _dynamic_depgraph_config(object):
 		self._ignored_deps = []
 		self._highest_pkg_cache = {}
 
+		self._unsat_req_use = {}
+		self._pkg_config_issues = {}
+
 		self._needed_unstable_keywords = backtrack_parameters.needed_unstable_keywords
 		self._needed_license_changes = backtrack_parameters.needed_license_changes
 		self._needed_use_config_changes = backtrack_parameters.needed_use_config_changes
@@ -350,15 +353,12 @@ class depgraph(object):
 
 	def _show_missed_update(self):
 
-		if '--quiet' in self._frozen_config.myopts and \
-			'--debug' not in self._frozen_config.myopts:
-			return
-
 		# In order to minimize noise, show only the highest
 		# missed update from each SLOT.
 		missed_updates = {}
 		for pkg, mask_reasons in \
-			self._dynamic_config._runtime_pkg_mask.items():
+			chain(self._dynamic_config._runtime_pkg_mask.items(),
+			self._dynamic_config._pkg_config_issues.items()):
 			if pkg.installed:
 				# Exclude installed here since we only
 				# want to show available updates.
@@ -382,6 +382,18 @@ class depgraph(object):
 			missed_update_types.setdefault(mask_type,
 				[]).append((pkg, parent_atoms))
 
+		if '--quiet' in self._frozen_config.myopts and \
+			'--debug' not in self._frozen_config.myopts:
+			missed_update_types.pop("slot conflict", None)
+			missed_update_types.pop("missing dependency", None)
+
+		required_use = missed_update_types.pop("required use", None)
+		if required_use is not None:
+			# For display purposes, unsatisfied REQUIRED_USE
+			# can be treated like a missing dependency.
+			missed_update_types.setdefault("missing dependency",
+				[]).extend(required_use)
+
 		self._show_missed_update_slot_conflicts(
 			missed_update_types.get("slot conflict"))
 
@@ -1890,7 +1902,14 @@ class depgraph(object):
 							self._dynamic_config._unsatisfied_deps_for_display.append(
 								((myroot, atom), {"myparent" : arg}))
 							return 0, myfavorites
-						self._dynamic_config._missing_args.append((arg, atom))
+						pkg = self._dynamic_config._unsat_req_use.get((myroot, atom))
+						if pkg is not None:
+							config_issues = \
+								self._dynamic_config._pkg_config_issues.setdefault(pkg, {})
+							parent_atoms = config_issues.setdefault("required use", set())
+							parent_atoms.add((arg, myroot, atom))
+						else:
+							self._dynamic_config._missing_args.append((arg, atom))
 						continue
 					if atom.cp != pkg.cp:
 						# For old-style virtuals, we need to repeat the
@@ -2653,7 +2672,7 @@ class depgraph(object):
 					writemsg_stdout(" nothing similar found.\n"
 						, noiselevel=-1)
 		msg = []
-		if not isinstance(myparent, AtomArg):
+		if not isinstance(myparent, DependencyArg):
 			# It's redundant to show parent for AtomArg since
 			# it's the same as 'xinfo' displayed above.
 			dep_chain = self._get_dep_chain(myparent, atom)
@@ -3031,6 +3050,7 @@ class depgraph(object):
 		# represented by the found_available_arg flag.
 		found_available_arg = False
 		packages_with_invalid_use_config = []
+		pkgs_with_unsat_req_use = []
 		for find_existing_node in True, False:
 			if existing_node:
 				break
@@ -3246,6 +3266,7 @@ class depgraph(object):
 							continue
 						if not required_use_is_sat:
 							packages_with_invalid_use_config.append(pkg)
+							pkgs_with_unsat_req_use.append(pkg)
 							continue
 
 					if pkg.cp == atom_cp:
@@ -3329,6 +3350,9 @@ class depgraph(object):
 					break
 
 		if not matched_packages:
+			if pkgs_with_unsat_req_use:
+				self._dynamic_config._unsat_req_use[(root, atom)] = \
+					pkgs_with_unsat_req_use[0]
 			return None, None
 
 		if "--debug" in self._frozen_config.myopts:



             reply	other threads:[~2011-02-06 13:15 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-06 13:10 Thomas Sachau [this message]
  -- strict thread matches above, loose matches on Subject: below --
2018-05-23 12:46 [gentoo-commits] proj/portage:multilib commit in: pym/_emerge/ Thomas Sachau
2013-08-04 22:08 Thomas Sachau
2013-08-04 20:23 Thomas Sachau
2012-11-30 16:58 Thomas Sachau
2012-11-30 16:49 Thomas Sachau
2012-10-22  9:43 Thomas Sachau
2012-10-22  9:24 Thomas Sachau
2012-09-17 20:15 Thomas Sachau
2012-07-19 21:03 Zac Medico
2012-02-26 16:27 Thomas Sachau
2012-02-26 16:27 Thomas Sachau
2012-02-26 16:27 Thomas Sachau
2012-02-26 16:27 Thomas Sachau
2012-02-26 16:27 Thomas Sachau
2012-02-18 16:14 Thomas Sachau
2011-11-15 20:20 Thomas Sachau
2011-10-23 11:42 Thomas Sachau
2011-10-23 11:05 Thomas Sachau
2011-02-06 13:10 Thomas Sachau
2011-02-06 13:10 Thomas Sachau
2011-02-06 13:10 Thomas Sachau
2011-02-06 13:10 Thomas Sachau
2011-02-06 13:10 Thomas Sachau
2011-02-06 13:10 Thomas Sachau
2011-02-06 13:10 Thomas Sachau
2011-02-06 13:10 Thomas Sachau
2011-02-06 13:10 Thomas Sachau
2011-02-06 13:10 Thomas Sachau
2011-02-06 13:10 Thomas Sachau
2011-02-06 13:10 Thomas Sachau
2011-02-06 13:10 Thomas Sachau
2011-02-06 13:10 Thomas Sachau
2011-02-06 13:09 Thomas Sachau
2011-02-06 13:09 Thomas Sachau
2011-02-06 13:09 Thomas Sachau
2011-02-06 13:09 Thomas Sachau
2011-02-06 13:09 Thomas Sachau
2011-02-06 13:09 Thomas Sachau
2011-02-06 13:09 Thomas Sachau
2011-02-06 13:09 Thomas Sachau
2011-02-06 13:09 Thomas Sachau
2011-02-06 13:09 Thomas Sachau
2011-02-06 13:09 Thomas Sachau
2011-02-06 13:09 Thomas Sachau

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=dd5175a7e851a12f5740c2481c96b32e5db1f4eb.tommy@gentoo \
    --to=tommy@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox