diff options
author | Zac Medico <zmedico@gentoo.org> | 2009-01-16 19:27:20 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2009-01-16 19:27:20 +0000 |
commit | 24fc384e03cabc48c72699435a5837b4f64053e9 (patch) | |
tree | 3be87c0396d05e183812fc8bcfaed05374d2d77c | |
parent | a98e5767f3fad6162f9b01e3974ccaf211703c89 (diff) | |
download | portage-24fc384e03cabc48c72699435a5837b4f64053e9.tar.gz portage-24fc384e03cabc48c72699435a5837b4f64053e9.tar.bz2 portage-24fc384e03cabc48c72699435a5837b4f64053e9.zip |
Revert chown behavior change from the previous commit, so that chown will
not be called on a pre-existing file.
svn path=/main/trunk/; revision=12522
-rw-r--r-- | pym/portage/locks.py | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/pym/portage/locks.py b/pym/portage/locks.py index be7cdf07d..50fe317bf 100644 --- a/pym/portage/locks.py +++ b/pym/portage/locks.py @@ -55,6 +55,7 @@ def lockfile(mypath, wantnewlockfile=0, unlinkfile=0, if type(mypath) == types.StringType: if not os.path.exists(os.path.dirname(mypath)): raise DirectoryNotFound(os.path.dirname(mypath)) + preexisting = os.path.exists(lockfilename) old_mask = os.umask(000) try: try: @@ -67,17 +68,21 @@ def lockfile(mypath, wantnewlockfile=0, unlinkfile=0, raise PermissionDenied(func_call) else: raise - try: - if os.stat(lockfilename).st_gid != portage_gid: - os.chown(lockfilename, os.getuid(), portage_gid) - except OSError, e: - if e.errno == errno.ENOENT: # No such file or directory - return lockfile(mypath, wantnewlockfile=wantnewlockfile, - unlinkfile=unlinkfile, waiting_msg=waiting_msg, - flags=flags) - else: - writemsg("Cannot chown a lockfile. This could " + \ - "cause inconvenience later.\n") + + if not preexisting: + try: + if os.stat(lockfilename).st_gid != portage_gid: + os.chown(lockfilename, -1, portage_gid) + except OSError, e: + if e.errno == errno.ENOENT: # No such file or directory + return lockfile(mypath, + wantnewlockfile=wantnewlockfile, + unlinkfile=unlinkfile, waiting_msg=waiting_msg, + flags=flags) + else: + writemsg("Cannot chown a lockfile. This could " + \ + "cause inconvenience later.\n") + finally: os.umask(old_mask) |