From: Zac Medico Date: Sun, 8 Oct 2006 22:23:20 +0000 (-0000) Subject: Make the .installed invalidation conditional on srcroot and destroot being located... X-Git-Tag: v2.1.2~682 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=6797ab6f78db028d72394d528bb0dc458c54066e;p=portage.git Make the .installed invalidation conditional on srcroot and destroot being located on the same filesystem (st_dev). svn path=/main/trunk/; revision=4623 --- 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]):