diff options
author | Zac Medico <zmedico@gentoo.org> | 2007-09-25 05:29:32 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2007-09-25 05:29:32 +0000 |
commit | 3a453007c572d4048c8eea7475e6a4c35b6de281 (patch) | |
tree | 31be76d35f04ab1ca57a20821897866b68ee1f88 | |
parent | e251578f3a9020c4bd4f916f0570e6b7caa7a95c (diff) | |
download | portage-3a453007c572d4048c8eea7475e6a4c35b6de281.tar.gz portage-3a453007c572d4048c8eea7475e6a4c35b6de281.tar.bz2 portage-3a453007c572d4048c8eea7475e6a4c35b6de281.zip |
In movefile() FreeBSD chflags handling, use chflags instead of
lchflags when temporarily adjusting the flags on the parent
directory since we want to follow any symlinks to the real
parent directory.
svn path=/main/trunk/; revision=7806
-rw-r--r-- | pym/portage/__init__.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py index d4411a7fc..f9ef92c12 100644 --- a/pym/portage/__init__.py +++ b/pym/portage/__init__.py @@ -4188,9 +4188,11 @@ def movefile(src,dest,newmtime=None,sstat=None,mysettings=None): if bsd_chflags: if destexists and dstat.st_flags != 0: bsd_chflags.lchflags(dest, 0) + # Use normal stat/chflags for the parent since we want to + # follow any symlinks to the real parent directory. pflags = os.stat(os.path.dirname(dest)).st_flags if pflags != 0: - bsd_chflags.lchflags(os.path.dirname(dest), 0) + bsd_chflags.chflags(os.path.dirname(dest), 0) if destexists: if stat.S_ISLNK(dstat[stat.ST_MODE]): @@ -4297,7 +4299,7 @@ def movefile(src,dest,newmtime=None,sstat=None,mysettings=None): if bsd_chflags: # Restore the flags we saved before moving if pflags: - bsd_chflags.lchflags(os.path.dirname(dest), pflags) + bsd_chflags.chflags(os.path.dirname(dest), pflags) return newmtime |