commit 896ad22cefe26f38df2b39600cd83b788c7aa7c3 Author: Christian Burger Date: Fri Nov 9 13:39:39 2012 +0100 Preventing self-blockers, if a package is moved and the package maintainer decided to block the old package name. (see #367215) diff --git a/pym/portage/tests/update/test_update_dbentry.py b/pym/portage/tests/update/test_update_dbentry.py index 0d4c5a0..9b639c3 100644 --- a/pym/portage/tests/update/test_update_dbentry.py +++ b/pym/portage/tests/update/test_update_dbentry.py @@ -24,6 +24,18 @@ class UpdateDbentryTestCase(TestCase): (("move", Atom("dev-libs/A"), Atom("dev-libs/B")), "1", " >=dev-libs/A-1:0 ", " >=dev-libs/B-1:0 "), + (("move", Atom("dev-libs/A"), Atom("dev-libs/B")), "1", + " !dev-libs/A ", " !dev-libs/A "), + + (("move", Atom("dev-libs/A"), Atom("dev-libs/B")), "1", + " !dev-libs/A:0 ", " !dev-libs/B:0 "), + + (("move", Atom("dev-libs/A"), Atom("dev-libs/B")), "1", + " !>=dev-libs/A-1:0 ", " !>=dev-libs/B-1:0 "), + + (("move", Atom("dev-libs/A"), Atom("dev-libs/B")), "1", + " !>=dev-libs/A-1 ", " !>=dev-libs/B-1 "), + (("move", Atom("dev-libs/A"), Atom("dev-libs/B")), "2", " dev-libs/A[foo] ", " dev-libs/B[foo] "), diff --git a/pym/portage/update.py b/pym/portage/update.py index d7ae34a..e13428d 100644 --- a/pym/portage/update.py +++ b/pym/portage/update.py @@ -53,6 +53,9 @@ def update_dbentry(update_cmd, mycontent, eapi=None): continue if atom.cp != old_value: continue + # prevent self-blockers + if atom.blocker and atom.slot is None and atom.operator is None and atom.version is None: + continue split_content[i] = token.replace(old_value, new_value, 1) modified = True