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 1Qft3E-0004qN-3z for garchives@archives.gentoo.org; Sun, 10 Jul 2011 12:23:56 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 4199321C02A; Sun, 10 Jul 2011 12:23:48 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 0548521C02A for ; Sun, 10 Jul 2011 12:23:47 +0000 (UTC) Received: from pelican.gentoo.org (unknown [66.219.59.40]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 70B092AC142 for ; Sun, 10 Jul 2011 12:23:47 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by pelican.gentoo.org (Postfix) with ESMTP id D52F48003F for ; Sun, 10 Jul 2011 12:23:46 +0000 (UTC) From: "Zac Medico" To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Zac Medico" Message-ID: <84d7468855226af62e7e156967b4211cc5782fd6.zmedico@gentoo> Subject: [gentoo-commits] proj/portage:master commit in: pym/_emerge/ X-VCS-Repository: proj/portage X-VCS-Files: pym/_emerge/UseFlagDisplay.py pym/_emerge/depgraph.py X-VCS-Directories: pym/_emerge/ X-VCS-Committer: zmedico X-VCS-Committer-Name: Zac Medico X-VCS-Revision: 84d7468855226af62e7e156967b4211cc5782fd6 Date: Sun, 10 Jul 2011 12:23:46 +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: a2ef598411333f4b157cb5174f0c83cd commit: 84d7468855226af62e7e156967b4211cc5782fd6 Author: Zac Medico gentoo org> AuthorDate: Sun Jul 10 12:23:24 2011 +0000 Commit: Zac Medico gentoo org> CommitDate: Sun Jul 10 12:23:24 2011 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/portage.git;a= =3Dcommit;h=3D84d74688 depgraph: more debug output for _add_pkg This should make it easier to debug cases like bug 374423, among others. --- pym/_emerge/UseFlagDisplay.py | 7 ++++- pym/_emerge/depgraph.py | 54 +++++++++++++++++++++++++++++------= ----- 2 files changed, 44 insertions(+), 17 deletions(-) diff --git a/pym/_emerge/UseFlagDisplay.py b/pym/_emerge/UseFlagDisplay.p= y index 380f86d..3daca19 100644 --- a/pym/_emerge/UseFlagDisplay.py +++ b/pym/_emerge/UseFlagDisplay.py @@ -58,14 +58,17 @@ class UseFlagDisplay(object): sort_separated =3D cmp_sort_key(_cmp_separated) del _cmp_separated =20 -def pkg_use_display(pkg, opts): +def pkg_use_display(pkg, opts, modified_use=3DNone): settings =3D pkg.root_config.settings use_expand =3D pkg.use.expand use_expand_hidden =3D pkg.use.expand_hidden alphabetical_use =3D '--alphabetical' in opts forced_flags =3D set(chain(pkg.use.force, pkg.use.mask)) - use =3D set(pkg.use.enabled) + if modified_use is None: + use =3D set(pkg.use.enabled) + else: + use =3D set(modified_use) use.discard(settings.get('ARCH')) use_expand_flags =3D set() use_enabled =3D {} diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index 2a5848c..d5971d1 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -976,6 +976,11 @@ class depgraph(object): return (existing_node, matches) =20 def _add_pkg(self, pkg, dep): + """ + Adds a package to the depgraph, queues dependencies, and handles + slot conflicts. + """ + debug =3D "--debug" in self._frozen_config.myopts myparent =3D None priority =3D None depth =3D 0 @@ -987,17 +992,28 @@ class depgraph(object): depth =3D dep.depth if priority is None: priority =3D DepPriority() - """ - Fills the digraph with nodes comprised of packages to merge. - mybigkey is the package spec of the package to merge. - myparent is the package depending on mybigkey ( or None ) - addme =3D Should we add this package to the digraph or are we just loo= king at it's deps? - Think --onlydeps, we need to ignore packages in that case. - #stuff to add: - #SLOT-aware emerge - #IUSE-aware emerge -> USE DEP aware depgraph - #"no downgrade" emerge - """ + + if debug: + writemsg_level( + "\n%s%s %s\n" % ("Child:".ljust(15), pkg, + pkg_use_display(pkg, self._frozen_config.myopts, + modified_use=3Dself._pkg_use_enabled(pkg))), + level=3Dlogging.DEBUG, noiselevel=3D-1) + if isinstance(myparent, + (PackageArg, AtomArg)): + # For PackageArg and AtomArg types, it's + # redundant to display the atom attribute. + writemsg_level( + "%s%s\n" % ("Parent Dep:".ljust(15), myparent), + level=3Dlogging.DEBUG, noiselevel=3D-1) + else: + # Display the specific atom from SetArg or + # Package types. + writemsg_level( + "%s%s required by %s\n" % + ("Parent Dep:".ljust(15), dep.atom, myparent), + level=3Dlogging.DEBUG, noiselevel=3D-1) + # Ensure that the dependencies of the same package # are never processed more than once. previously_added =3D pkg in self._dynamic_config.digraph @@ -1190,6 +1206,14 @@ class depgraph(object): self._add_slot_conflict(pkg) slot_collision =3D True =20 + if debug: + writemsg_level( + "%s%s %s\n" % ("Slot Conflict:".ljust(15), + existing_node, pkg_use_display(existing_node, + self._frozen_config.myopts, + modified_use=3Dself._pkg_use_enabled(existing_node))), + level=3Dlogging.DEBUG, noiselevel=3D-1) + if slot_collision: # Now add this node to the graph so that self.display() # can show use flags and --tree portage.output. This node is @@ -1573,7 +1597,7 @@ class depgraph(object): continue =20 if debug: - writemsg_level("Candidates: %s: %s\n" % \ + writemsg_level("\nCandidates: %s: %s\n" % \ (virt_pkg.cpv, [str(x) for x in atoms]), noiselevel=3D-1, level=3Dlogging.DEBUG) =20 @@ -1670,7 +1694,7 @@ class depgraph(object): traversed_virt_pkgs.add(dep.child) =20 if debug: - writemsg_level("Exiting... %s\n" % (pkg,), + writemsg_level("\nExiting... %s\n" % (pkg,), noiselevel=3D-1, level=3Dlogging.DEBUG) =20 return 1 @@ -2226,8 +2250,8 @@ class depgraph(object): return 0, myfavorites continue if debug: - portage.writemsg(" Arg: %s\n Atom: %s\n" % \ - (arg, atom), noiselevel=3D-1) + writemsg_level("\n Arg: %s\n Atom: %s\n" % + (arg, atom), noiselevel=3D-1, level=3Dlogging.DEBUG) pkg, existing_node =3D self._select_package( myroot, atom, onlydeps=3Donlydeps) if not pkg: