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 1QHOYv-0005xk-Kt for garchives@archives.gentoo.org; Tue, 03 May 2011 22:59:25 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 65ED7E04C2; Tue, 3 May 2011 22:59:18 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 27E15E04C2 for ; Tue, 3 May 2011 22:59:18 +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 89FE71B4028 for ; Tue, 3 May 2011 22:59:17 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by pelican.gentoo.org (Postfix) with ESMTP id E10C080505 for ; Tue, 3 May 2011 22:59:16 +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: <5d26fe64b1f8b56f1f3e588921f33bc9df4da78d.zmedico@gentoo> Subject: [gentoo-commits] proj/portage:master commit in: pym/portage/tests/resolver/, pym/_emerge/ X-VCS-Repository: proj/portage X-VCS-Files: pym/_emerge/depgraph.py pym/portage/tests/resolver/test_rebuild.py X-VCS-Directories: pym/portage/tests/resolver/ pym/_emerge/ X-VCS-Committer: zmedico X-VCS-Committer-Name: Zac Medico X-VCS-Revision: 5d26fe64b1f8b56f1f3e588921f33bc9df4da78d Date: Tue, 3 May 2011 22:59:16 +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: 36a79c8608dd131daf39f39f9ddc93cd commit: 5d26fe64b1f8b56f1f3e588921f33bc9df4da78d Author: David James chromium org> AuthorDate: Tue May 3 20:10:28 2011 +0000 Commit: Zac Medico gentoo org> CommitDate: Tue May 3 22:47:25 2011 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/portage.git;a= =3Dcommit;h=3D5d26fe64 rebuild_config: propagate runtime deps to parents Update rebuild option to propagate runtime deps to parents. Suggested by SebastianLuther gmx.de BUG=3Dchromium-os:14858 TEST=3DAdded unit test. Ran unit tests. Change-Id: I7228a8558eddd1956c590de39430172476c66228 Review URL: http://gerrit.chromium.org/gerrit/202 --- pym/_emerge/depgraph.py | 12 ++++++++---- pym/portage/tests/resolver/test_rebuild.py | 9 +++++++-- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index 8a76863..0de443b 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -267,15 +267,21 @@ class _rebuild_config(object): # Remove our leaf node from the graph, keeping track of deps. parents =3D graph.nodes[node][1].items() graph.remove(node) + node_build_deps =3D build_deps.get(node, {}) + node_runtime_deps =3D runtime_deps.get(node, {}) for parent, priorities in parents: if parent =3D=3D node: # Ignore a direct cycle. continue + parent_bdeps =3D build_deps.setdefault(parent, {}) + parent_rdeps =3D runtime_deps.setdefault(parent, {}) for priority in priorities: if priority.buildtime: - build_deps.setdefault(parent, {})[slot_atom] =3D node + parent_bdeps[slot_atom] =3D node if priority.runtime: - runtime_deps.setdefault(parent, {})[slot_atom] =3D node + parent_rdeps[slot_atom] =3D node + if slot_atom in parent_bdeps and slot_atom in parent_rdeps: + parent_rdeps.update(node_runtime_deps) if not graph.child_nodes(parent): leaf_nodes.append(parent) =20 @@ -284,8 +290,6 @@ class _rebuild_config(object): # completely filled in, and self.rebuild_list / self.reinstall_list # will tell us whether any of our children need to be rebuilt or # reinstalled. - node_build_deps =3D build_deps.get(node, {}) - node_runtime_deps =3D runtime_deps.get(node, {}) if self._trigger_rebuild(node, node_build_deps, node_runtime_deps): need_restart =3D True =20 diff --git a/pym/portage/tests/resolver/test_rebuild.py b/pym/portage/tes= ts/resolver/test_rebuild.py index 809dbed..fda289c 100644 --- a/pym/portage/tests/resolver/test_rebuild.py +++ b/pym/portage/tests/resolver/test_rebuild.py @@ -26,6 +26,8 @@ class RebuildTestCase(TestCase): "sys-apps/d-2": { "RDEPEND" : "sys-libs/x"}, "sys-apps/e-2": { "DEPEND" : "sys-libs/x", "RDEPEND" : "sys-libs/x"}= , "sys-apps/f-2": { "DEPEND" : "sys-apps/a", "RDEPEND" : "sys-apps/a"}= , + "sys-apps/g-2": { "DEPEND" : "sys-apps/b sys-libs/x", + "RDEPEND" : "sys-apps/b"}, } =20 installed =3D { @@ -36,10 +38,12 @@ class RebuildTestCase(TestCase): "sys-apps/d-1": { "RDEPEND" : "sys-libs/x"}, "sys-apps/e-1": { "DEPEND" : "sys-libs/x", "RDEPEND" : "sys-libs/x"}= , "sys-apps/f-1": { "DEPEND" : "sys-apps/a", "RDEPEND" : "sys-apps/a"}= , + "sys-apps/g-1": { "DEPEND" : "sys-apps/b sys-libs/x", + "RDEPEND" : "sys-apps/b"}, } =20 world =3D ["sys-apps/a", "sys-apps/b", "sys-apps/c", "sys-apps/d", - "sys-apps/e", "sys-apps/f"] + "sys-apps/e", "sys-apps/f", "sys-apps/g"] =20 test_cases =3D ( ResolverPlaygroundTestCase( @@ -53,7 +57,8 @@ class RebuildTestCase(TestCase): ResolverPlaygroundTestCase( ["sys-libs/x"], options =3D {"--rebuild" : True}, - mergelist =3D ['sys-libs/x-2', 'sys-apps/a-2', 'sys-apps/b-2', 'sys= -apps/e-2'], + mergelist =3D ['sys-libs/x-2', 'sys-apps/a-2', 'sys-apps/b-2', + 'sys-apps/e-2', 'sys-apps/g-2'], ignore_mergelist_order =3D True, success =3D True), )