[oe-commits] Richard Purdie : package.bbclass: Change to operate on a copy of the install directory instead of directly. Also take the opportunity to rename the temp directories so their function is clear (from Poky)

git version control git at git.openembedded.org
Mon Nov 9 22:16:05 UTC 2009


Module: openembedded.git
Branch: shr/merge
Commit: 29c7d3351f43678c6e93b707b301832009f64b31
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=29c7d3351f43678c6e93b707b301832009f64b31

Author: Richard Purdie <rpurdie at linux.intel.com>
Date:   Fri Oct 30 00:08:19 2009 +0000

package.bbclass: Change to operate on a copy of the install directory instead of directly. Also take the opportunity to rename the temp directories so their function is clear (from Poky)

Signed-off-by: Richard Purdie <rpurdie at linux.intel.com>

---

 classes/package.bbclass |   35 ++++++++++++++++++++++++-----------
 1 files changed, 24 insertions(+), 11 deletions(-)

diff --git a/classes/package.bbclass b/classes/package.bbclass
index 2c085be..03618ba 100644
--- a/classes/package.bbclass
+++ b/classes/package.bbclass
@@ -2,7 +2,8 @@
 # General packaging help functions
 #
 
-PKGDEST = "${WORKDIR}/install"
+PKGD    = "${WORKDIR}/package"
+PKGDEST = "${WORKDIR}/packages-split"
 
 def legitimize_package_name(s):
 	"""
@@ -28,7 +29,7 @@ def do_split_packages(d, root, file_regex, output_pattern, description, postinst
 	"""
 	import os, os.path, bb
 
-	dvar = bb.data.getVar('D', d, True)
+	dvar = bb.data.getVar('PKGD', d, True)
 
 	packages = bb.data.getVar('PACKAGES', d, True).split()
 
@@ -299,7 +300,7 @@ python package_do_split_locales() {
 		bb.note("datadir not defined")
 		return
 
-	dvar = bb.data.getVar('D', d, True)
+	dvar = bb.data.getVar('PKGD', d, True)
 	pn = bb.data.getVar('PN', d, True)
 
 	if pn + '-locale' in packages:
@@ -333,19 +334,29 @@ python package_do_split_locales() {
 	bb.data.setVar('PACKAGES', ' '.join(packages), d)
 }
 
+python perform_packagecopy () {
+	import os
+
+	dest = bb.data.getVar('D', d, True)
+	dvar = bb.data.getVar('PKGD', d, True)
+
+	bb.mkdirhier(dvar)
+
+	# Start by package population by taking a copy of the installed 
+	# files to operate on
+	os.system('cp -pPR %s/* %s/' % (dest, dvar))
+}
+
 python populate_packages () {
 	import os, glob, stat, errno, re
 
 	workdir = bb.data.getVar('WORKDIR', d, True)
 	outdir = bb.data.getVar('DEPLOY_DIR', d, True)
-	dvar = bb.data.getVar('D', d, True)
+	dvar = bb.data.getVar('PKGD', d, True)
 	packages = bb.data.getVar('PACKAGES', d, True)
 	pn = bb.data.getVar('PN', d, True)
 
 	bb.mkdirhier(outdir)
-	bb.mkdirhier(dvar)
-
-
 	os.chdir(dvar)
 
 	def isexec(path):
@@ -981,7 +992,8 @@ python package_depchains() {
 }
 
 
-PACKAGEFUNCS ?= "package_do_split_locales \
+PACKAGEFUNCS ?= "perform_packagecopy \
+		package_do_split_locales \
 		populate_packages \
 		package_do_shlibs \
 		package_do_pkgconfig \
@@ -1029,11 +1041,12 @@ python package_do_package () {
 
 	workdir = bb.data.getVar('WORKDIR', d, True)
 	outdir = bb.data.getVar('DEPLOY_DIR', d, True)
-	dvar = bb.data.getVar('D', d, True)
+	dest = bb.data.getVar('D', d, True)
+	dvar = bb.data.getVar('PKGD', d, True)
 	pn = bb.data.getVar('PN', d, True)
 
-	if not workdir or not outdir or not dvar or not pn or not packages:
-		bb.error("WORKDIR, DEPLOY_DIR, D, and PN all must be defined, unable to package")
+	if not workdir or not outdir or not dest or not dvar or not pn or not packages:
+		bb.error("WORKDIR, DEPLOY_DIR, D, PN and PKGD all must be defined, unable to package")
 		return
 
 	for f in (bb.data.getVar('PACKAGEFUNCS', d, True) or '').split():





More information about the Openembedded-commits mailing list