summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-01-16 19:27:20 +0000
committerZac Medico <zmedico@gentoo.org>2009-01-16 19:27:20 +0000
commit24fc384e03cabc48c72699435a5837b4f64053e9 (patch)
tree3be87c0396d05e183812fc8bcfaed05374d2d77c
parenta98e5767f3fad6162f9b01e3974ccaf211703c89 (diff)
downloadportage-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.py27
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)