From ee72bf14ea642df6077db3a1fa78c449909a12e6 Mon Sep 17 00:00:00 2001 From: Marius Mauch Date: Tue, 4 Dec 2007 09:28:00 +0000 Subject: make sure we only remove files that were previously preserved svn path=/main/trunk/; revision=8837 --- pym/portage/dbapi/vartree.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'pym') diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py index 8162b9d11..ee71bb855 100644 --- a/pym/portage/dbapi/vartree.py +++ b/pym/portage/dbapi/vartree.py @@ -1159,7 +1159,11 @@ class dblink(object): break else: unlink_list.append(f) - f = os.readlink(f) + # only follow symlinks if the target is also a preserved lib object + if os.readlink(f) in plib_dict[cpv]: + f = os.readlink(f) + else: + break if not os.path.islink(f) and not os.path.basename(f) in self.vartree.dbapi.libmap.get(): unlink_list.append(f) for obj in unlink_list: @@ -1168,8 +1172,8 @@ class dblink(object): obj_type = "sym" else: obj_type = "obj" - writemsg_stdout("<<< !needed %s %s\n" % (obj_type, obj)) os.unlink(obj) + writemsg_stdout("<<< !needed %s %s\n" % (obj_type, obj)) except OSError, e: if e.errno == errno.ENOENT: pass -- cgit v1.2.3-1-g7c22