[oe-commits] Richard Purdie : packagedata.bbclass: Split package data handling functions out from base.bclass (from Poky)

git version control git at git.openembedded.org
Mon Nov 2 14:59:24 UTC 2009


Module: openembedded.git
Branch: rpurdie/work-in-progress
Commit: 9c74da2d0f1a7794411d9d22d326cde9c7046734
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=9c74da2d0f1a7794411d9d22d326cde9c7046734

Author: Richard Purdie <rpurdie at linux.intel.com>
Date:   Fri Oct 30 21:59:06 2009 +0000

packagedata.bbclass: Split package data handling functions out from base.bclass (from Poky)

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

---

 classes/base.bbclass        |   84 +-----------------------------------------
 classes/packagedata.bbclass |   82 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 84 insertions(+), 82 deletions(-)

diff --git a/classes/base.bbclass b/classes/base.bbclass
index 7eff89a..a3bfec8 100644
--- a/classes/base.bbclass
+++ b/classes/base.bbclass
@@ -1034,6 +1034,8 @@ addtask build after do_populate_staging
 do_build = ""
 do_build[func] = "1"
 
+INHERIT =+ "packagedata"
+
 # Functions that update metadata based on files outputted
 # during the build process.
 
@@ -1054,88 +1056,6 @@ def explode_deps(s):
 			r.append(i)
 	return r
 
-def packaged(pkg, d):
-	import os, bb
-	return os.access(get_subpkgedata_fn(pkg, d) + '.packaged', os.R_OK)
-
-def read_pkgdatafile(fn):
-	pkgdata = {}
-
-	def decode(str):
-		import codecs
-		c = codecs.getdecoder("string_escape")
-		return c(str)[0]
-
-	import os
-	if os.access(fn, os.R_OK):
-		import re
-		f = file(fn, 'r')
-		lines = f.readlines()
-		f.close()
-		r = re.compile("([^:]+):\s*(.*)")
-		for l in lines:
-			m = r.match(l)
-			if m:
-				pkgdata[m.group(1)] = decode(m.group(2))
-
-	return pkgdata
-
-def get_subpkgedata_fn(pkg, d):
-	import bb, os
-	archs = bb.data.expand("${PACKAGE_ARCHS}", d).split(" ")
-	archs.reverse()
-	pkgdata = bb.data.expand('${TMPDIR}/pkgdata/', d)
-	targetdir = bb.data.expand('${TARGET_VENDOR}-${TARGET_OS}/runtime/', d)
-	for arch in archs:
-		fn = pkgdata + arch + targetdir + pkg
-		if os.path.exists(fn):
-			return fn
-	return bb.data.expand('${PKGDATA_DIR}/runtime/%s' % pkg, d)
-
-def has_subpkgdata(pkg, d):
-	import bb, os
-	return os.access(get_subpkgedata_fn(pkg, d), os.R_OK)
-
-def read_subpkgdata(pkg, d):
-	import bb
-	return read_pkgdatafile(get_subpkgedata_fn(pkg, d))
-
-def has_pkgdata(pn, d):
-	import bb, os
-	fn = bb.data.expand('${PKGDATA_DIR}/%s' % pn, d)
-	return os.access(fn, os.R_OK)
-
-def read_pkgdata(pn, d):
-	import bb
-	fn = bb.data.expand('${PKGDATA_DIR}/%s' % pn, d)
-	return read_pkgdatafile(fn)
-
-python read_subpackage_metadata () {
-	import bb
-	data = read_pkgdata(bb.data.getVar('PN', d, 1), d)
-
-	for key in data.keys():
-		bb.data.setVar(key, data[key], d)
-
-	for pkg in bb.data.getVar('PACKAGES', d, 1).split():
-		sdata = read_subpkgdata(pkg, d)
-		for key in sdata.keys():
-			bb.data.setVar(key, sdata[key], d)
-}
-
-
-#
-# Collapse FOO_pkg variables into FOO
-#
-def read_subpkgdata_dict(pkg, d):
-	import bb
-	ret = {}
-	subd = read_pkgdatafile(get_subpkgedata_fn(pkg, d))
-	for var in subd:
-		newvar = var.replace("_" + pkg, "")
-		ret[newvar] = subd[var]
-	return ret
-
 # Make sure MACHINE isn't exported
 # (breaks binutils at least)
 MACHINE[unexport] = "1"
diff --git a/classes/packagedata.bbclass b/classes/packagedata.bbclass
new file mode 100644
index 0000000..c9d64d6
--- /dev/null
+++ b/classes/packagedata.bbclass
@@ -0,0 +1,82 @@
+def packaged(pkg, d):
+	import os, bb
+	return os.access(get_subpkgedata_fn(pkg, d) + '.packaged', os.R_OK)
+
+def read_pkgdatafile(fn):
+	pkgdata = {}
+
+	def decode(str):
+		import codecs
+		c = codecs.getdecoder("string_escape")
+		return c(str)[0]
+
+	import os
+	if os.access(fn, os.R_OK):
+		import re
+		f = file(fn, 'r')
+		lines = f.readlines()
+		f.close()
+		r = re.compile("([^:]+):\s*(.*)")
+		for l in lines:
+			m = r.match(l)
+			if m:
+				pkgdata[m.group(1)] = decode(m.group(2))
+
+	return pkgdata
+
+def get_subpkgedata_fn(pkg, d):
+	import bb, os
+	archs = bb.data.expand("${PACKAGE_ARCHS}", d).split(" ")
+	archs.reverse()
+	pkgdata = bb.data.expand('${TMPDIR}/pkgdata/', d)
+	targetdir = bb.data.expand('${TARGET_VENDOR}-${TARGET_OS}/runtime/', d)
+	for arch in archs:
+		fn = pkgdata + arch + targetdir + pkg
+		if os.path.exists(fn):
+			return fn
+	return bb.data.expand('${PKGDATA_DIR}/runtime/%s' % pkg, d)
+
+def has_subpkgdata(pkg, d):
+	import bb, os
+	return os.access(get_subpkgedata_fn(pkg, d), os.R_OK)
+
+def read_subpkgdata(pkg, d):
+	import bb
+	return read_pkgdatafile(get_subpkgedata_fn(pkg, d))
+
+def has_pkgdata(pn, d):
+	import bb, os
+	fn = bb.data.expand('${PKGDATA_DIR}/%s' % pn, d)
+	return os.access(fn, os.R_OK)
+
+def read_pkgdata(pn, d):
+	import bb
+	fn = bb.data.expand('${PKGDATA_DIR}/%s' % pn, d)
+	return read_pkgdatafile(fn)
+
+python read_subpackage_metadata () {
+	import bb
+	data = read_pkgdata(bb.data.getVar('PN', d, 1), d)
+
+	for key in data.keys():
+		bb.data.setVar(key, data[key], d)
+
+	for pkg in bb.data.getVar('PACKAGES', d, 1).split():
+		sdata = read_subpkgdata(pkg, d)
+		for key in sdata.keys():
+			bb.data.setVar(key, sdata[key], d)
+}
+
+
+#
+# Collapse FOO_pkg variables into FOO
+#
+def read_subpkgdata_dict(pkg, d):
+	import bb
+	ret = {}
+	subd = read_pkgdatafile(get_subpkgedata_fn(pkg, d))
+	for var in subd:
+		newvar = var.replace("_" + pkg, "")
+		ret[newvar] = subd[var]
+	return ret
+





More information about the Openembedded-commits mailing list