Gentoo Archives: gentoo-commits

From: Zac Medico <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/portage:master commit in: pym/portage/dbapi/
Date: Thu, 01 Sep 2011 06:46:46
Message-Id: 0d79d130c27af4ba9676c9297639e064d18d9528.zmedico@gentoo
1 commit: 0d79d130c27af4ba9676c9297639e064d18d9528
2 Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
3 AuthorDate: Thu Sep 1 06:45:01 2011 +0000
4 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
5 CommitDate: Thu Sep 1 06:45:01 2011 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=0d79d130
7
8 unmerge: never unmerge outside of EROOT
9
10 ---
11 pym/portage/dbapi/vartree.py | 9 ++++++++-
12 1 files changed, 8 insertions(+), 1 deletions(-)
13
14 diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py
15 index 1a38d42..0c0ed6a 100644
16 --- a/pym/portage/dbapi/vartree.py
17 +++ b/pym/portage/dbapi/vartree.py
18 @@ -1980,10 +1980,11 @@ class dblink(object):
19 unmerge_desc["!mtime"] = _("!mtime")
20 unmerge_desc["!obj"] = _("!obj")
21 unmerge_desc["!sym"] = _("!sym")
22 + unmerge_desc["!prefix"] = _("!prefix")
23
24 real_root = self.settings['ROOT']
25 real_root_len = len(real_root) - 1
26 - eroot_split_len = len(self.settings["EROOT"].split(os.sep)) - 1
27 + eroot = self.settings["EROOT"]
28
29 # These files are generated by emerge, so we need to remove
30 # them when they are the only thing left in a directory.
31 @@ -2023,6 +2024,12 @@ class dblink(object):
32
33 file_data = pkgfiles[objkey]
34 file_type = file_data[0]
35 +
36 + # don't try to unmerge the prefix offset itself
37 + if len(obj) <= len(eroot) or not obj.startswith(eroot):
38 + show_unmerge("---", unmerge_desc["!prefix"], file_type, obj)
39 + continue
40 +
41 statobj = None
42 try:
43 statobj = os.stat(obj)