summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarius Mauch <genone@gentoo.org>2008-05-02 04:57:52 +0000
committerMarius Mauch <genone@gentoo.org>2008-05-02 04:57:52 +0000
commit9a253af5afa1ee8b02095cc7d8ba0670aff72a26 (patch)
treebd7168ba9ee39d40345dff9793615400d02dac7c
parent37a999b34539547395dc86c6a6e2e3095fc4f800 (diff)
downloadportage-9a253af5afa1ee8b02095cc7d8ba0670aff72a26.tar.gz
portage-9a253af5afa1ee8b02095cc7d8ba0670aff72a26.tar.bz2
portage-9a253af5afa1ee8b02095cc7d8ba0670aff72a26.zip
properly remove sets from 'world' when unmerging
svn path=/main/trunk/; revision=10078
-rw-r--r--pym/_emerge/__init__.py2
-rw-r--r--pym/portage/sets/base.py1
2 files changed, 3 insertions, 0 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index 18ad9abd1..2148545ca 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -5991,6 +5991,8 @@ def unmerge(root_config, myopts, unmerge_action,
else:
if clean_world:
sets["world"].cleanPackage(vartree.dbapi, y)
+ for s in root_config.setconfig.active:
+ sets["world"].remove(SETPREFIX+s)
emergelog(xterm_titles, " >>> unmerge success: "+y)
return 1
diff --git a/pym/portage/sets/base.py b/pym/portage/sets/base.py
index d64b632f9..71547813e 100644
--- a/pym/portage/sets/base.py
+++ b/pym/portage/sets/base.py
@@ -183,6 +183,7 @@ class EditablePackageSet(PackageSet):
def remove(self, atom):
self._load()
self._atoms.discard(atom)
+ self._nonatoms.discard(atom)
self._updateAtomMap()
self.write()