From 6797ab6f78db028d72394d528bb0dc458c54066e Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sun, 8 Oct 2006 22:23:20 +0000 Subject: Make the .installed invalidation conditional on srcroot and destroot being located on the same filesystem (st_dev). svn path=/main/trunk/; revision=4623 --- pym/portage.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'pym/portage.py') diff --git a/pym/portage.py b/pym/portage.py index 3fd1dc337..1a6aa256d 100644 --- a/pym/portage.py +++ b/pym/portage.py @@ -6029,15 +6029,16 @@ class dblink: # This blocks until we can get the dirs to ourselves. self.lockdb() - try: + if os.stat(srcroot).st_dev == os.stat(destroot).st_dev: """ The merge process may move files out of the image directory, which causes invalidation of the .installed flag.""" - os.unlink(os.path.join( - os.path.dirname(normalize_path(srcroot)), ".installed")) - except OSError, e: - if e.errno != errno.ENOENT: - raise - del e + try: + os.unlink(os.path.join( + os.path.dirname(normalize_path(srcroot)), ".installed")) + except OSError, e: + if e.errno != errno.ENOENT: + raise + del e otherversions=[] for v in self.vartree.dbapi.cp_list(self.mysplit[0]): -- cgit v1.2.3-1-g7c22