summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-05-29 05:23:18 +0000
committerZac Medico <zmedico@gentoo.org>2008-05-29 05:23:18 +0000
commit58b45681cb6bc0a1dd2064f9d44bcab1e32b7278 (patch)
treeeda75e63faf2fb55eaaabe506cbea8ec3b561032
parent62922180cd7add6eda865aa331e471cef978b740 (diff)
downloadportage-58b45681cb6bc0a1dd2064f9d44bcab1e32b7278.tar.gz
portage-58b45681cb6bc0a1dd2064f9d44bcab1e32b7278.tar.bz2
portage-58b45681cb6bc0a1dd2064f9d44bcab1e32b7278.zip
Save the content of CONFIG_MEMORY_FILE in dblink.treewalk() _before_
unmerging other instances, in order to avoid overwritting/undoing the pruning that's done during unmerge. svn path=/main/trunk/; revision=10476
-rw-r--r--pym/portage/dbapi/vartree.py16
1 files changed, 6 insertions, 10 deletions
diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py
index ed61bcd7c..8f8926231 100644
--- a/pym/portage/dbapi/vartree.py
+++ b/pym/portage/dbapi/vartree.py
@@ -2323,6 +2323,12 @@ class dblink(object):
outfile.flush()
outfile.close()
+ # write out our collection of md5sums
+ cfgfiledict.pop("IGNORE", None)
+ ensure_dirs(os.path.dirname(conf_mem_file),
+ gid=portage_gid, mode=02750, mask=02)
+ writedict(cfgfiledict, conf_mem_file)
+
# These caches are populated during collision-protect and the data
# they contain is now invalid. It's very important to invalidate
# the contents_inodes cache so that FEATURES=unmerge-orphans
@@ -2410,16 +2416,6 @@ class dblink(object):
self.vartree.dbapi.cpcache.pop(self.mysplit[0], None)
contents = self.getcontents()
- #write out our collection of md5sums
- if cfgfiledict.has_key("IGNORE"):
- del cfgfiledict["IGNORE"]
-
- my_private_path = os.path.join(destroot, PRIVATE_PATH)
- ensure_dirs(my_private_path, gid=portage_gid, mode=02750, mask=02)
-
- writedict(cfgfiledict, conf_mem_file)
- del conf_mem_file
-
# regenerate reverse NEEDED map
self.vartree.dbapi.linkmap.rebuild()