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 1QFBX9-0001t2-3k for garchives@archives.gentoo.org; Wed, 27 Apr 2011 20:40:27 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 03EBFE002C; Wed, 27 Apr 2011 20:40:19 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id BAFF2E002C for ; Wed, 27 Apr 2011 20:40:19 +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 2E1951B4072 for ; Wed, 27 Apr 2011 20:40:19 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by pelican.gentoo.org (Postfix) with ESMTP id 9247880505 for ; Wed, 27 Apr 2011 20:40:18 +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: <9e813764e3056fe9a376af70d9bc80749980fe5e.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/ResolverPlayground.py pym/portage/tests/resolver/test_autounmask.py X-VCS-Directories: pym/portage/tests/resolver/ pym/_emerge/ X-VCS-Committer: zmedico X-VCS-Committer-Name: Zac Medico X-VCS-Revision: 9e813764e3056fe9a376af70d9bc80749980fe5e Date: Wed, 27 Apr 2011 20:40:18 +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: f9fdff6ad79f99aa30df03b88afc08e5 commit: 9e813764e3056fe9a376af70d9bc80749980fe5e Author: Sebastian Luther gmx de> AuthorDate: Wed Apr 27 20:36:15 2011 +0000 Commit: Zac Medico gentoo org> CommitDate: Wed Apr 27 20:36:15 2011 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/portage.git;a= =3Dcommit;h=3D9e813764 --autounmask: Don't change masked/forced flags This will fix bug #364701. --- pym/_emerge/depgraph.py | 4 +++ pym/portage/tests/resolver/ResolverPlayground.py | 2 +- pym/portage/tests/resolver/test_autounmask.py | 31 ++++++++++++++++= +++++- 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index 391c845..a0a4622 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -3120,6 +3120,10 @@ class depgraph(object): not check_required_use(required_use, new_use, pkg.iuse.is_valid_flag= ): return old_use =20 + if pkg.use.mask.intersection(new_changes) or \ + pkg.use.force.intersection(new_changes): + return old_use + self._dynamic_config._needed_use_config_changes[pkg] =3D (new_use, ne= w_changes) backtrack_infos =3D self._dynamic_config._backtrack_infos backtrack_infos.setdefault("config", {}) diff --git a/pym/portage/tests/resolver/ResolverPlayground.py b/pym/porta= ge/tests/resolver/ResolverPlayground.py index eb591bb..276b193 100644 --- a/pym/portage/tests/resolver/ResolverPlayground.py +++ b/pym/portage/tests/resolver/ResolverPlayground.py @@ -32,7 +32,7 @@ class ResolverPlayground(object): """ =20 config_files =3D frozenset(("package.use", "package.mask", "package.key= words", \ - "package.unmask", "package.properties", "package.license")) + "package.unmask", "package.properties", "package.license", "use.mask",= "use.force")) =20 def __init__(self, ebuilds=3D{}, installed=3D{}, profile=3D{}, repo_con= figs=3D{}, \ user_config=3D{}, sets=3D{}, world=3D[], debug=3DFalse): diff --git a/pym/portage/tests/resolver/test_autounmask.py b/pym/portage/= tests/resolver/test_autounmask.py index 9e50be7..bd3a5f9 100644 --- a/pym/portage/tests/resolver/test_autounmask.py +++ b/pym/portage/tests/resolver/test_autounmask.py @@ -16,6 +16,12 @@ class AutounmaskTestCase(TestCase): "dev-libs/C-1": {}, "dev-libs/D-1": {}, =20 + #ebuilds to test if we allow changing of masked or forced flags + "dev-libs/E-1": { "SLOT": 1, "DEPEND": "dev-libs/F[masked-flag]", "EA= PI": 2}, + "dev-libs/E-2": { "SLOT": 2, "DEPEND": "dev-libs/G[-forced-flag]", "E= API": 2}, + "dev-libs/F-1": { "IUSE": "masked-flag"}, + "dev-libs/G-1": { "IUSE": "forced-flag"}, + #ebuilds to test keyword changes "app-misc/Z-1": { "KEYWORDS": "~x86", "DEPEND": "app-misc/Y" }, "app-misc/Y-1": { "KEYWORDS": "~x86" }, @@ -185,9 +191,32 @@ class AutounmaskTestCase(TestCase): options =3D { "--autounmask": True }, use_changes =3D None, success =3D False), + + #Make sure we don't change masked/forced flags. + ResolverPlaygroundTestCase( + ["dev-libs/E:1"], + options =3D {"--autounmask": True}, + use_changes =3D None, + success =3D False), + ResolverPlaygroundTestCase( + ["dev-libs/E:2"], + options =3D {"--autounmask": True}, + use_changes =3D None, + success =3D False), ) =20 - playground =3D ResolverPlayground(ebuilds=3Debuilds) + profile =3D { + "use.mask": + ( + "masked-flag", + ), + "use.force": + ( + "forced-flag", + ), + } + + playground =3D ResolverPlayground(ebuilds=3Debuilds, profile=3Dprofile= ) try: for test_case in test_cases: playground.run_TestCase(test_case)