[oe-commits] org.oe.dev merge of '32fb34a3d6b83b091f671bba6f6fb90146a59544'

rpurdie commit openembedded-commits at lists.openembedded.org
Mon Nov 5 20:21:53 UTC 2007


merge of '32fb34a3d6b83b091f671bba6f6fb90146a59544'
     and 'aa0124fac8e1daf7beff69f5b6b4921d8ffcf7b3'

Author: rpurdie at openembedded.org
Branch: org.openembedded.dev
Revision: 9e767242291c0f1534ab63b7bf677ad18679e8ca
ViewMTN: http://monotone.openembedded.org/revision/info/9e767242291c0f1534ab63b7bf677ad18679e8ca
Files:
1
conf/distro/include/insane-srcrevs.inc
conf/distro/include/sane-srcrevs.inc
packages/eds/eds-dbus_svn.bb
classes/package.bbclass
Diffs:

#
# mt diff -r32fb34a3d6b83b091f671bba6f6fb90146a59544 -r9e767242291c0f1534ab63b7bf677ad18679e8ca
#
# 
# 
# patch "conf/distro/include/insane-srcrevs.inc"
#  from [b56561548f3fa0b2770ea3d6ea341aea39ced051]
#    to [34775d1ce4bbde6c4b6737f60c88db04c730486a]
# 
# patch "conf/distro/include/sane-srcrevs.inc"
#  from [acd4cf865a0bf7717d60bf0047218e18b3549257]
#    to [aba02b4341afbe8e50d5993e64a67d6d7d800d09]
# 
# patch "packages/eds/eds-dbus_svn.bb"
#  from [b3aebc974d37ac917a96f3942fee385049c61d38]
#    to [8a86f6fbd6b6db637d98ac1c7a87a33eebd8e4bf]
# 
============================================================
--- conf/distro/include/insane-srcrevs.inc	b56561548f3fa0b2770ea3d6ea341aea39ced051
+++ conf/distro/include/insane-srcrevs.inc	34775d1ce4bbde6c4b6737f60c88db04c730486a
@@ -1,6 +1,7 @@ SRCREV_pn-dfu-util-native ?= "${AUTOREV}
 SRCREV_pn-aircrack-ng ?= "${AUTOREV}"
 SRCREV_pn-dfu-util ?= "${AUTOREV}"
 SRCREV_pn-dfu-util-native ?= "${AUTOREV}"
+SRCREV_pn-eds-dbus ?= "${AUTOREV}"
 SRCREV_pn-eglibc ?= "${AUTOREV}"
 SRCREV_pn-eglibc-initial ?= "${AUTOREV}"
 SRCREV_pn-eglibc-intermediate ?= "${AUTOREV}"
============================================================
--- conf/distro/include/sane-srcrevs.inc	acd4cf865a0bf7717d60bf0047218e18b3549257
+++ conf/distro/include/sane-srcrevs.inc	aba02b4341afbe8e50d5993e64a67d6d7d800d09
@@ -13,6 +13,7 @@ SRCREV_pn-dfu-util-native ?= "2866"
 SRCREV_pn-dbus-c++ ?= "13131"
 SRCREV_pn-dfu-util ?= "2866"
 SRCREV_pn-dfu-util-native ?= "2866"
+SRCREV_pn-eds-dbus ?= "628"
 SRCREV_pn-eglibc ?= "3531"
 SRCREV_pn-eglibc-initial ?= "3531"
 SRCREV_pn-eglibc-intermediate ?= "3531"
============================================================
--- packages/eds/eds-dbus_svn.bb	b3aebc974d37ac917a96f3942fee385049c61d38
+++ packages/eds/eds-dbus_svn.bb	8a86f6fbd6b6db637d98ac1c7a87a33eebd8e4bf
@@ -1,9 +1,9 @@ DEPENDS = "intltool-native libglade glib
 DESCRIPTION = "Evolution database backend server"
 HOMEPAGE = "http://projects.o-hand.com/eds"
 LICENSE = "LGPL"
 DEPENDS = "intltool-native libglade glib-2.0 gtk+ gconf dbus db gnome-common virtual/libiconv zlib intltool"
 
-PV = "1.4.0+svn${SRCDATE}"
+PV = "1.4.0+svnr${SRCREV}"
 PR = "r6"
 
 SRC_URI = "svn://svn.o-hand.com/repos/${PN};module=trunk;proto=http \


#
# mt diff -raa0124fac8e1daf7beff69f5b6b4921d8ffcf7b3 -r9e767242291c0f1534ab63b7bf677ad18679e8ca
#
# 
# 
# patch "classes/package.bbclass"
#  from [c40a90879037567f4894a6044537289dc71ffe3c]
#    to [1713a1d39b0249350a2277e9d734d92d920aaf16]
# 
============================================================
--- classes/package.bbclass	c40a90879037567f4894a6044537289dc71ffe3c
+++ classes/package.bbclass	1713a1d39b0249350a2277e9d734d92d920aaf16
@@ -318,6 +318,76 @@ python package_do_split_locales() {
 	#bb.data.setVar('RDEPENDS_%s' % mainpkg, ' '.join(rdep), d)
 }
 
+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, commands
+
+    #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=commands.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
+
 python populate_packages () {
 	import glob, stat, errno, re
 
@@ -380,6 +450,8 @@ python populate_packages () {
 	pkgdest = bb.data.getVar('PKGDEST', d, 1)
 	os.system('rm -rf %s' % pkgdest)
 
+	seen = []
+
 	for pkg in package_list:
 		localdata = bb.data.createCopy(d)
 		root = os.path.join(pkgdest, pkg)
@@ -410,11 +482,17 @@ python populate_packages () {
 					continue
 			if (not os.path.islink(file)) and (not os.path.exists(file)):
 				continue
+			if file in seen:
+				continue
+			seen.append(file)
+			if os.path.isdir(file):
+				bb.mkdirhier(os.path.join(root,file))
+				continue
 			fpath = os.path.join(root,file)
 			dpath = os.path.dirname(fpath)
 			bb.mkdirhier(dpath)
-			ret = bb.movefile(file,fpath)
-			if ret is None or ret == 0:
+			ret = copyfile(file, fpath)
+			if ret is False or ret == 0:
 				raise bb.build.FuncFailed("File population failed")
 		del localdata
 	os.chdir(workdir)
@@ -423,7 +501,8 @@ python populate_packages () {
 	for root, dirs, files in os.walk(dvar):
 		for f in files:
 			path = os.path.join(root[len(dvar):], f)
-			unshipped.append(path)
+			if ('.' + path) not in seen:
+				unshipped.append(path)
 
 	if unshipped != []:
 		bb.note("the following files were installed but not shipped in any package:")






More information about the Openembedded-commits mailing list