From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1Pm4SQ-0007Xf-2B for garchives@archives.gentoo.org; Sun, 06 Feb 2011 13:15:14 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 2CCE3E0BB0; Sun, 6 Feb 2011 13:10:02 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id D8D03E0B91 for ; Sun, 6 Feb 2011 13:10:01 +0000 (UTC) Received: from pelican.gentoo.org (unknown [66.219.59.40]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 691531B42DE for ; Sun, 6 Feb 2011 13:10:01 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by pelican.gentoo.org (Postfix) with ESMTP id D25D680072 for ; Sun, 6 Feb 2011 13:10:00 +0000 (UTC) From: "Thomas Sachau" To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Thomas Sachau" Message-ID: Subject: [gentoo-commits] proj/portage:multilib commit in: pym/_emerge/ X-VCS-Repository: proj/portage X-VCS-Files: pym/_emerge/depgraph.py X-VCS-Directories: pym/_emerge/ X-VCS-Committer: tommy X-VCS-Committer-Name: Thomas Sachau X-VCS-Revision: dd5175a7e851a12f5740c2481c96b32e5db1f4eb Date: Sun, 6 Feb 2011 13:10:00 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: X-Archives-Hash: 9c0250bcd8f2f0625bbd665b4003fa1a commit: dd5175a7e851a12f5740c2481c96b32e5db1f4eb Author: Zac Medico gentoo org> AuthorDate: Wed Feb 2 04:09:50 2011 +0000 Commit: Thomas Sachau gentoo org> CommitDate: Wed Feb 2 04:09:50 2011 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/portage.git;a= =3Dcommit;h=3Ddd5175a7 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 =3D [] self._highest_pkg_cache =3D {} =20 + self._unsat_req_use =3D {} + self._pkg_config_issues =3D {} + self._needed_unstable_keywords =3D backtrack_parameters.needed_unstabl= e_keywords self._needed_license_changes =3D backtrack_parameters.needed_license_c= hanges self._needed_use_config_changes =3D backtrack_parameters.needed_use_co= nfig_changes @@ -350,15 +353,12 @@ class depgraph(object): =20 def _show_missed_update(self): =20 - 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 =3D {} 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)) =20 + 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 =3D 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")) =20 @@ -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 =3D self._dynamic_config._unsat_req_use.get((myroot, atom)) + if pkg is not None: + config_issues =3D \ + self._dynamic_config._pkg_config_issues.setdefault(pkg, {}) + parent_atoms =3D 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 !=3D 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=3D-1) msg =3D [] - 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 =3D self._get_dep_chain(myparent, atom) @@ -3031,6 +3050,7 @@ class depgraph(object): # represented by the found_available_arg flag. found_available_arg =3D False packages_with_invalid_use_config =3D [] + pkgs_with_unsat_req_use =3D [] 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 =20 if pkg.cp =3D=3D atom_cp: @@ -3329,6 +3350,9 @@ class depgraph(object): break =20 if not matched_packages: + if pkgs_with_unsat_req_use: + self._dynamic_config._unsat_req_use[(root, atom)] =3D \ + pkgs_with_unsat_req_use[0] return None, None =20 if "--debug" in self._frozen_config.myopts: