diff options
author | Jason Stubbs <jstubbs@gentoo.org> | 2005-09-01 14:42:25 +0000 |
---|---|---|
committer | Jason Stubbs <jstubbs@gentoo.org> | 2005-09-01 14:42:25 +0000 |
commit | 1b1f845635a1542fc2b7fda43d8dc44e55a8fded (patch) | |
tree | 0fecbe5b910b08edf7837a6a2be02d7af7c85bc5 /pym/portage.py | |
parent | 7a70785bb2b18b7ae415aa0382b7f8c2adfcd2a4 (diff) | |
download | portage-1b1f845635a1542fc2b7fda43d8dc44e55a8fded.tar.gz portage-1b1f845635a1542fc2b7fda43d8dc44e55a8fded.tar.bz2 portage-1b1f845635a1542fc2b7fda43d8dc44e55a8fded.zip |
68928-spawn-command-isabs-zmedico.patch (spawn included "." in PATH)
98727_sleep_locale_cleanup.patch (sleep was defined twice for "." and "," locales)
98827_lchown_normal_files.patch (lchown was being used on known-to-be-regular files)
98827_darwin_noop_lchown.patch (lchwon was aliased to chown on darwin)
99101_ccache_perms_adjust.patch (perms test and adjustment didn't match)
99120_uid_gid_mixup.patch (portage gid used in place of uid)
99418_merge_retcode_ignored.patch (dispatch-conf ignored result of merge command)
100382_incomplete_world.patch (versioned atoms were not being added to world)
broken-stat-perms.patch (result of conditional execution being unconditionally tested)
svn path=/main/branches/2.0/; revision=1960
Diffstat (limited to 'pym/portage.py')
-rw-r--r-- | pym/portage.py | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/pym/portage.py b/pym/portage.py index f986e2817..d264ef68e 100644 --- a/pym/portage.py +++ b/pym/portage.py @@ -2530,19 +2530,19 @@ def doebuild(myebuild,mydo,myroot,mysettings,debug=0,listonly=0,fetchonly=0,clea os.makedirs(mysettings["CCACHE_DIR"]) mystat = os.stat(mysettings["CCACHE_DIR"]) if ("userpriv" in features): - if mystat[stat.ST_UID] != portage_gid or ((mystat[stat.ST_MODE]&02070)!=02070): + if mystat[stat.ST_UID] != portage_uid or ((mystat[stat.ST_MODE]&02070)!=02070): writemsg("* Adjusting permissions on ccache in %s\n" % mysettings["CCACHE_DIR"]) spawn("chgrp -R "+str(portage_gid)+" "+mysettings["CCACHE_DIR"], mysettings, free=1) spawn("chown "+str(portage_uid)+":"+str(portage_gid)+" "+mysettings["CCACHE_DIR"], mysettings, free=1) spawn("chmod -R ug+rw "+mysettings["CCACHE_DIR"], mysettings, free=1) - spawn("find "+mysettings["CCACHE_DIR"]+" -type d -exec chmod g+s \{\} \;", mysettings, free=1) + spawn("find "+mysettings["CCACHE_DIR"]+" -type d -exec chmod g+xs \{\} \;", mysettings, free=1) else: if mystat[stat.ST_UID] != 0 or ((mystat[stat.ST_MODE]&02070)!=02070): writemsg("* Adjusting permissions on ccache in %s\n" % mysettings["CCACHE_DIR"]) spawn("chgrp -R "+str(portage_gid)+" "+mysettings["CCACHE_DIR"], mysettings, free=1) spawn("chown 0:"+str(portage_gid)+" "+mysettings["CCACHE_DIR"], mysettings, free=1) spawn("chmod -R ug+rw "+mysettings["CCACHE_DIR"], mysettings, free=1) - spawn("find "+mysettings["CCACHE_DIR"]+" -type d -exec chmod g+s \{\} \;", mysettings, free=1) + spawn("find "+mysettings["CCACHE_DIR"]+" -type d -exec chmod g+xs \{\} \;", mysettings, free=1) except OSError, e: print "!!! File system problem. (ReadOnly? Out of space?)" print "!!! Perhaps: rm -Rf",mysettings["BUILD_PREFIX"] @@ -2872,7 +2872,10 @@ def movefile(src,dest,newmtime=None,sstat=None,mysettings=None): return None # failure try: if didcopy: - lchown(dest,sstat[stat.ST_UID],sstat[stat.ST_GID]) + if stat.S_ISLNK(sstat[stat.ST_MODE]): + lchown(dest,sstat[stat.ST_UID],sstat[stat.ST_GID]) + else + os.chown(dest,sstat[stat.ST_UID],sstat[stat.ST_GID]) os.chmod(dest, stat.S_IMODE(sstat[stat.ST_MODE])) # Sticky is reset on chown os.unlink(src) except SystemExit, e: @@ -6745,7 +6748,7 @@ class dblink: if bsd_chflags: bsd_chflags.lchflags(mydest, dflags) os.chmod(mydest,mystat[0]) - lchown(mydest,mystat[4],mystat[5]) + os.chown(mydest,mystat[4],mystat[5]) print ">>>",mydest+"/" else: #destination doesn't exist @@ -6757,7 +6760,7 @@ class dblink: os.chmod(mydest,mystat[0]) if bsd_chflags: bsd_chflags.lchflags(mydest, bsd_chflags.lgetflags(mysrc)) - lchown(mydest,mystat[4],mystat[5]) + os.chown(mydest,mystat[4],mystat[5]) print ">>>",mydest+"/" outfile.write("dir "+myrealdest+"\n") # recurse and merge this directory |