From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id E5D66138A1F for ; Sat, 26 Apr 2014 19:44:50 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 847FAE095A; Sat, 26 Apr 2014 19:44:47 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id F1A06E095A for ; Sat, 26 Apr 2014 19:44:46 +0000 (UTC) Received: from spoonbill.gentoo.org (spoonbill.gentoo.org [81.93.255.5]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id B919233FE9E for ; Sat, 26 Apr 2014 19:44:45 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by spoonbill.gentoo.org (Postfix) with ESMTP id 4A02E1818D for ; Sat, 26 Apr 2014 19:44:42 +0000 (UTC) From: "Sebastian Luther" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Sebastian Luther" Message-ID: <1398541436.de71f70eac5f8f82d739c2d6e5da8e7680e89efe.few@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_slot_conflict_rebuild.py X-VCS-Directories: pym/portage/tests/resolver/ pym/_emerge/ X-VCS-Committer: few X-VCS-Committer-Name: Sebastian Luther X-VCS-Revision: de71f70eac5f8f82d739c2d6e5da8e7680e89efe X-VCS-Branch: master Date: Sat, 26 Apr 2014 19:44:42 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 38833f10-b9c6-4039-b06c-d849304e4c2f X-Archives-Hash: fbceea52e7bcfaf5d55f3a391b93f1cd commit: de71f70eac5f8f82d739c2d6e5da8e7680e89efe Author: Sebastian Luther gmx de> AuthorDate: Sat Apr 26 19:21:04 2014 +0000 Commit: Sebastian Luther gmx de > CommitDate: Sat Apr 26 19:43:56 2014 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=de71f70e Prevent rebuild code from performing unwanted repo changes --- pym/_emerge/depgraph.py | 2 ++ .../tests/resolver/test_slot_conflict_rebuild.py | 41 ++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index 737ed66..28d4026 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -1631,6 +1631,8 @@ class depgraph(object): # different slot_operator is an older version if not want_downgrade: continue + if pkg.version == dep.child.version and not dep.child.built: + continue insignificant = False if not slot_conflict and \ diff --git a/pym/portage/tests/resolver/test_slot_conflict_rebuild.py b/pym/portage/tests/resolver/test_slot_conflict_rebuild.py index 17737cf..b39eaf0 100644 --- a/pym/portage/tests/resolver/test_slot_conflict_rebuild.py +++ b/pym/portage/tests/resolver/test_slot_conflict_rebuild.py @@ -406,3 +406,44 @@ class SlotConflictRebuildTestCase(TestCase): self.assertEqual(test_case.test_success, True, test_case.fail_msg) finally: playground.cleanup() + + def testSlotConflictMultiRepoUpdates(self): + """ + Bug 508236 (similar to testSlotConflictMultiRepo) + Different repositories contain the same cpv with different sub-slots for + a slot operator child. For both the installed version and an updated version. + + """ + ebuilds = { + "net-firewall/iptables-1.4.21::overlay" : { "EAPI": "5", "SLOT": "0/10" }, + "net-firewall/iptables-1.4.21-r1::overlay" : { "EAPI": "5", "SLOT": "0/10" }, + "sys-apps/iproute2-3.11.0::overlay" : { "EAPI": "5", "RDEPEND": "net-firewall/iptables:=" }, + + "net-firewall/iptables-1.4.21" : { "EAPI": "5", "SLOT": "0" }, + "net-firewall/iptables-1.4.21-r1" : { "EAPI": "5", "SLOT": "0" }, + "sys-apps/iproute2-3.12.0": { "EAPI": "5", "RDEPEND": "net-firewall/iptables:=" }, + } + + installed = { + "net-firewall/iptables-1.4.21::overlay" : { "EAPI": "5", "SLOT": "0/10" }, + "sys-apps/iproute2-3.12.0": { "EAPI": "5", "RDEPEND": "net-firewall/iptables:0/10=" }, + } + + world = ["sys-apps/iproute2"] + + test_cases = ( + ResolverPlaygroundTestCase( + ["@world"], + options = {"--deep": True, "--update": True, "--verbose": True}, + success = True, + mergelist = ["net-firewall/iptables-1.4.21-r1::overlay"]), + ) + + playground = ResolverPlayground(ebuilds=ebuilds, + installed=installed, world=world, debug=False) + try: + for test_case in test_cases: + playground.run_TestCase(test_case) + self.assertEqual(test_case.test_success, True, test_case.fail_msg) + finally: + playground.cleanup()