bitbake: Sync with upstream
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@3040 311d38ba-8fff-0310-9ca6-ca027cbcb966
This commit is contained in:
parent
03446930ef
commit
c9be325eb9
|
@ -155,8 +155,7 @@ def movefile(src,dest,newmtime=None,sstat=None):
|
||||||
if not sstat:
|
if not sstat:
|
||||||
sstat=os.lstat(src)
|
sstat=os.lstat(src)
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
print "!!! Stating source file failed... movefile()"
|
print "movefile: Stating source file failed...", e
|
||||||
print "!!!",e
|
|
||||||
return None
|
return None
|
||||||
|
|
||||||
destexists=1
|
destexists=1
|
||||||
|
@ -180,13 +179,11 @@ def movefile(src,dest,newmtime=None,sstat=None):
|
||||||
if destexists and not stat.S_ISDIR(dstat[stat.ST_MODE]):
|
if destexists and not stat.S_ISDIR(dstat[stat.ST_MODE]):
|
||||||
os.unlink(dest)
|
os.unlink(dest)
|
||||||
os.symlink(target,dest)
|
os.symlink(target,dest)
|
||||||
# os.lchown(dest,sstat[stat.ST_UID],sstat[stat.ST_GID])
|
#os.lchown(dest,sstat[stat.ST_UID],sstat[stat.ST_GID])
|
||||||
os.unlink(src)
|
os.unlink(src)
|
||||||
return os.lstat(dest)
|
return os.lstat(dest)
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
print "!!! failed to properly create symlink:"
|
print "movefile: failed to properly create symlink:", dest, "->", target, e
|
||||||
print "!!!",dest,"->",target
|
|
||||||
print "!!!",e
|
|
||||||
return None
|
return None
|
||||||
|
|
||||||
renamefailed=1
|
renamefailed=1
|
||||||
|
@ -198,8 +195,7 @@ def movefile(src,dest,newmtime=None,sstat=None):
|
||||||
import errno
|
import errno
|
||||||
if e[0]!=errno.EXDEV:
|
if e[0]!=errno.EXDEV:
|
||||||
# Some random error.
|
# Some random error.
|
||||||
print "!!! Failed to move",src,"to",dest
|
print "movefile: Failed to move", src, "to", dest, e
|
||||||
print "!!!",e
|
|
||||||
return None
|
return None
|
||||||
# Invalid cross-device-link 'bind' mounted or actually Cross-Device
|
# Invalid cross-device-link 'bind' mounted or actually Cross-Device
|
||||||
|
|
||||||
|
@ -211,16 +207,13 @@ def movefile(src,dest,newmtime=None,sstat=None):
|
||||||
os.rename(dest+"#new",dest)
|
os.rename(dest+"#new",dest)
|
||||||
didcopy=1
|
didcopy=1
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
print '!!! copy',src,'->',dest,'failed.'
|
print 'movefile: copy', src, '->', dest, 'failed.', e
|
||||||
print "!!!",e
|
|
||||||
return None
|
return None
|
||||||
else:
|
else:
|
||||||
#we don't yet handle special, so we need to fall back to /bin/mv
|
#we don't yet handle special, so we need to fall back to /bin/mv
|
||||||
a=getstatusoutput("/bin/mv -f "+"'"+src+"' '"+dest+"'")
|
a=getstatusoutput("/bin/mv -f "+"'"+src+"' '"+dest+"'")
|
||||||
if a[0]!=0:
|
if a[0]!=0:
|
||||||
print "!!! Failed to move special file:"
|
print "movefile: Failed to move special file:" + src + "' to '" + dest + "'", a
|
||||||
print "!!! '"+src+"' to '"+dest+"'"
|
|
||||||
print "!!!",a
|
|
||||||
return None # failure
|
return None # failure
|
||||||
try:
|
try:
|
||||||
if didcopy:
|
if didcopy:
|
||||||
|
@ -228,9 +221,7 @@ def movefile(src,dest,newmtime=None,sstat=None):
|
||||||
os.chmod(dest, stat.S_IMODE(sstat[stat.ST_MODE])) # Sticky is reset on chown
|
os.chmod(dest, stat.S_IMODE(sstat[stat.ST_MODE])) # Sticky is reset on chown
|
||||||
os.unlink(src)
|
os.unlink(src)
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
print "!!! Failed to chown/chmod/unlink in movefile()"
|
print "movefile: Failed to chown/chmod/unlink", dest, e
|
||||||
print "!!!",dest
|
|
||||||
print "!!!",e
|
|
||||||
return None
|
return None
|
||||||
|
|
||||||
if newmtime:
|
if newmtime:
|
||||||
|
@ -240,7 +231,75 @@ def movefile(src,dest,newmtime=None,sstat=None):
|
||||||
newmtime=sstat[stat.ST_MTIME]
|
newmtime=sstat[stat.ST_MTIME]
|
||||||
return newmtime
|
return newmtime
|
||||||
|
|
||||||
|
def copyfile(src,dest,newmtime=None,sstat=None):
|
||||||
|
"""
|
||||||
|
Copies a file from src to dest, preserving all permissions and
|
||||||
|
attributes; mtime will be preserved even when moving across
|
||||||
|
filesystems. Returns true on success and false on failure.
|
||||||
|
"""
|
||||||
|
import os, stat, shutil
|
||||||
|
|
||||||
|
#print "copyfile("+src+","+dest+","+str(newmtime)+","+str(sstat)+")"
|
||||||
|
try:
|
||||||
|
if not sstat:
|
||||||
|
sstat=os.lstat(src)
|
||||||
|
except Exception, e:
|
||||||
|
print "copyfile: Stating source file failed...", e
|
||||||
|
return False
|
||||||
|
|
||||||
|
destexists=1
|
||||||
|
try:
|
||||||
|
dstat=os.lstat(dest)
|
||||||
|
except:
|
||||||
|
dstat=os.lstat(os.path.dirname(dest))
|
||||||
|
destexists=0
|
||||||
|
|
||||||
|
if destexists:
|
||||||
|
if stat.S_ISLNK(dstat[stat.ST_MODE]):
|
||||||
|
try:
|
||||||
|
os.unlink(dest)
|
||||||
|
destexists=0
|
||||||
|
except Exception, e:
|
||||||
|
pass
|
||||||
|
|
||||||
|
if stat.S_ISLNK(sstat[stat.ST_MODE]):
|
||||||
|
try:
|
||||||
|
target=os.readlink(src)
|
||||||
|
if destexists and not stat.S_ISDIR(dstat[stat.ST_MODE]):
|
||||||
|
os.unlink(dest)
|
||||||
|
os.symlink(target,dest)
|
||||||
|
#os.lchown(dest,sstat[stat.ST_UID],sstat[stat.ST_GID])
|
||||||
|
return os.lstat(dest)
|
||||||
|
except Exception, e:
|
||||||
|
print "copyfile: failed to properly create symlink:", dest, "->", target, e
|
||||||
|
return False
|
||||||
|
|
||||||
|
if stat.S_ISREG(sstat[stat.ST_MODE]):
|
||||||
|
try: # For safety copy then move it over.
|
||||||
|
shutil.copyfile(src,dest+"#new")
|
||||||
|
os.rename(dest+"#new",dest)
|
||||||
|
except Exception, e:
|
||||||
|
print 'copyfile: copy', src, '->', dest, 'failed.', e
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
#we don't yet handle special, so we need to fall back to /bin/mv
|
||||||
|
a=getstatusoutput("/bin/cp -f "+"'"+src+"' '"+dest+"'")
|
||||||
|
if a[0]!=0:
|
||||||
|
print "copyfile: Failed to copy special file:" + src + "' to '" + dest + "'", a
|
||||||
|
return False # failure
|
||||||
|
try:
|
||||||
|
os.lchown(dest,sstat[stat.ST_UID],sstat[stat.ST_GID])
|
||||||
|
os.chmod(dest, stat.S_IMODE(sstat[stat.ST_MODE])) # Sticky is reset on chown
|
||||||
|
except Exception, e:
|
||||||
|
print "copyfile: Failed to chown/chmod/unlink", dest, e
|
||||||
|
return False
|
||||||
|
|
||||||
|
if newmtime:
|
||||||
|
os.utime(dest,(newmtime,newmtime))
|
||||||
|
else:
|
||||||
|
os.utime(dest, (sstat[stat.ST_ATIME], sstat[stat.ST_MTIME]))
|
||||||
|
newmtime=sstat[stat.ST_MTIME]
|
||||||
|
return newmtime
|
||||||
|
|
||||||
#######################################################################
|
#######################################################################
|
||||||
#######################################################################
|
#######################################################################
|
||||||
|
|
|
@ -559,7 +559,11 @@ class TaskData:
|
||||||
self.tasks_name[task],
|
self.tasks_name[task],
|
||||||
self.tasks_tdepends[task]))
|
self.tasks_tdepends[task]))
|
||||||
|
|
||||||
bb.msg.debug(3, bb.msg.domain.TaskData, "runtime ids (per fn):")
|
bb.msg.debug(3, bb.msg.domain.TaskData, "dependency ids (per fn):")
|
||||||
|
for fnid in self.depids:
|
||||||
|
bb.msg.debug(3, bb.msg.domain.TaskData, " %s %s: %s" % (fnid, self.fn_index[fnid], self.depids[fnid]))
|
||||||
|
|
||||||
|
bb.msg.debug(3, bb.msg.domain.TaskData, "runtime dependency ids (per fn):")
|
||||||
for fnid in self.rdepids:
|
for fnid in self.rdepids:
|
||||||
bb.msg.debug(3, bb.msg.domain.TaskData, " %s %s: %s" % (fnid, self.fn_index[fnid], self.rdepids[fnid]))
|
bb.msg.debug(3, bb.msg.domain.TaskData, " %s %s: %s" % (fnid, self.fn_index[fnid], self.rdepids[fnid]))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue