diff options
| -rw-r--r-- | meta/classes/base.bbclass | 102 | ||||
| -rw-r--r-- | meta/classes/insane.bbclass | 2 | ||||
| -rw-r--r-- | meta/classes/package.bbclass | 20 | ||||
| -rw-r--r-- | meta/classes/package_deb.bbclass | 4 | ||||
| -rw-r--r-- | meta/classes/package_ipk.bbclass | 4 | ||||
| -rw-r--r-- | meta/classes/packagedata.bbclass | 82 | ||||
| -rw-r--r-- | meta/packages/libidl/libidl-native_0.8.12.bb (renamed from meta/packages/libidl/libidl-native_0.8.3.bb) | 0 | ||||
| -rw-r--r-- | meta/packages/libidl/libidl_0.8.12.bb (renamed from meta/packages/libidl/libidl_0.8.3.bb) | 0 | 
8 files changed, 98 insertions, 116 deletions
| diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index 5f83af1fa3..1f280a0dc5 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass @@ -935,108 +935,6 @@ addtask build after do_populate_staging  do_build = ""  do_build[func] = "1" -# Functions that update metadata based on files outputted -# during the build process. - -def explode_deps(s): -	r = [] -	l = s.split() -	flag = False -	for i in l: -		if i[0] == '(': -			flag = True -			j = [] -		if flag: -			j.append(i) -			if i.endswith(')'): -				flag = False -				r[-1] += ' ' + ' '.join(j) -		else: -			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/meta/classes/insane.bbclass b/meta/classes/insane.bbclass index 1f136d78ce..2b0c284775 100644 --- a/meta/classes/insane.bbclass +++ b/meta/classes/insane.bbclass @@ -439,7 +439,7 @@ def package_qa_check_rdepends(pkg, workdir, d):          bb.data.update_data(localdata)          # Now check the RDEPENDS -        rdepends = explode_deps(bb.data.getVar('RDEPENDS', localdata, True) or "") +        rdepends = bb.utils.explode_deps(bb.data.getVar('RDEPENDS', localdata, True) or "")          # Now do the sanity check!!! diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass index a714b08225..fa53b1358c 100644 --- a/meta/classes/package.bbclass +++ b/meta/classes/package.bbclass @@ -2,6 +2,8 @@  # General packaging help functions  # +inherit packagedata +  PKGDEST = "${WORKDIR}/install"  def legitimize_package_name(s): @@ -208,7 +210,7 @@ def runtime_mapping_rename (varname, d):  	#bb.note("%s before: %s" % (varname, bb.data.getVar(varname, d, 1)))	  	new_depends = [] -	for depend in explode_deps(bb.data.getVar(varname, d, 1) or ""): +	for depend in bb.utils.explode_deps(bb.data.getVar(varname, d, 1) or ""):  		# Have to be careful with any version component of the depend  		split_depend = depend.split(' (')  		new_depend = get_package_mapping(split_depend[0].strip(), d) @@ -438,7 +440,7 @@ python populate_packages () {  					dangling_links[pkg].append(os.path.normpath(target))  	for pkg in package_list: -		rdepends = explode_deps(bb.data.getVar('RDEPENDS_' + pkg, d, 1) or bb.data.getVar('RDEPENDS', d, 1) or "") +		rdepends = bb.utils.explode_deps(bb.data.getVar('RDEPENDS_' + pkg, d, 1) or bb.data.getVar('RDEPENDS', d, 1) or "")  		for l in dangling_links[pkg]:  			found = False  			bb.debug(1, "%s contains dangling link %s" % (pkg, l)) @@ -868,7 +870,7 @@ python package_do_pkgconfig () {  python read_shlibdeps () {  	packages = bb.data.getVar('PACKAGES', d, 1).split()  	for pkg in packages: -		rdepends = explode_deps(bb.data.getVar('RDEPENDS_' + pkg, d, 0) or bb.data.getVar('RDEPENDS', d, 0) or "") +		rdepends = bb.utils.explode_deps(bb.data.getVar('RDEPENDS_' + pkg, d, 0) or bb.data.getVar('RDEPENDS', d, 0) or "")  		for extension in ".shlibdeps", ".pcdeps", ".clilibdeps":  			depsfile = bb.data.expand("${PKGDEST}/" + pkg + extension, d)  			if os.access(depsfile, os.R_OK): @@ -901,7 +903,7 @@ python package_depchains() {  	def pkg_adddeprrecs(pkg, base, suffix, getname, depends, d):  		#bb.note('depends for %s is %s' % (base, depends)) -		rreclist = explode_deps(bb.data.getVar('RRECOMMENDS_' + pkg, d, 1) or bb.data.getVar('RRECOMMENDS', d, 1) or "") +		rreclist = bb.utils.explode_deps(bb.data.getVar('RRECOMMENDS_' + pkg, d, 1) or bb.data.getVar('RRECOMMENDS', d, 1) or "")  		for depend in depends:  			if depend.find('-native') != -1 or depend.find('-cross') != -1 or depend.startswith('virtual/'): @@ -922,7 +924,7 @@ python package_depchains() {  	def pkg_addrrecs(pkg, base, suffix, getname, rdepends, d):  		#bb.note('rdepends for %s is %s' % (base, rdepends)) -		rreclist = explode_deps(bb.data.getVar('RRECOMMENDS_' + pkg, d, 1) or bb.data.getVar('RRECOMMENDS', d, 1) or "") +		rreclist = bb.utils.explode_deps(bb.data.getVar('RRECOMMENDS_' + pkg, d, 1) or bb.data.getVar('RRECOMMENDS', d, 1) or "")  		for depend in rdepends:  			if depend.find('virtual-locale-') != -1: @@ -946,15 +948,15 @@ python package_depchains() {  			list.append(dep)  	depends = [] -	for dep in explode_deps(bb.data.getVar('DEPENDS', d, 1) or ""): +	for dep in bb.utils.explode_deps(bb.data.getVar('DEPENDS', d, 1) or ""):  		add_dep(depends, dep)  	rdepends = [] -	for dep in explode_deps(bb.data.getVar('RDEPENDS', d, 1) or ""): +	for dep in bb.utils.explode_deps(bb.data.getVar('RDEPENDS', d, 1) or ""):  		add_dep(rdepends, dep)  	for pkg in packages.split(): -		for dep in explode_deps(bb.data.getVar('RDEPENDS_' + pkg, d, 1) or ""): +		for dep in bb.utils.explode_deps(bb.data.getVar('RDEPENDS_' + pkg, d, 1) or ""):  			add_dep(rdepends, dep)  	#bb.note('rdepends is %s' % rdepends) @@ -987,7 +989,7 @@ python package_depchains() {  				pkg_addrrecs(pkg, base, suffix, func, rdepends, d)  			else:  				rdeps = [] -				for dep in explode_deps(bb.data.getVar('RDEPENDS_' + base, d, 1) or bb.data.getVar('RDEPENDS', d, 1) or ""): +				for dep in bb.utils.explode_deps(bb.data.getVar('RDEPENDS_' + base, d, 1) or bb.data.getVar('RDEPENDS', d, 1) or ""):  					add_dep(rdeps, dep)  				pkg_addrrecs(pkg, base, suffix, func, rdeps, d)  } diff --git a/meta/classes/package_deb.bbclass b/meta/classes/package_deb.bbclass index 28e67fcc9b..d90939fdb6 100644 --- a/meta/classes/package_deb.bbclass +++ b/meta/classes/package_deb.bbclass @@ -194,9 +194,9 @@ python do_package_deb () {          bb.build.exec_func("mapping_rename_hook", localdata) -        rdepends = explode_deps(unicode(bb.data.getVar("RDEPENDS", localdata, 1) or "")) +        rdepends = bb.utils.explode_deps(unicode(bb.data.getVar("RDEPENDS", localdata, 1) or ""))          rdepends = [dep for dep in rdepends if not '*' in dep] -        rrecommends = explode_deps(unicode(bb.data.getVar("RRECOMMENDS", localdata, 1) or "")) +        rrecommends = bb.utils.explode_deps(unicode(bb.data.getVar("RRECOMMENDS", localdata, 1) or ""))          rrecommends = [rec for rec in rrecommends if not '*' in rec]          rsuggests = (unicode(bb.data.getVar("RSUGGESTS", localdata, 1) or "")).split()          rprovides = (unicode(bb.data.getVar("RPROVIDES", localdata, 1) or "")).split() diff --git a/meta/classes/package_ipk.bbclass b/meta/classes/package_ipk.bbclass index c4f53046f5..1aa2c814bb 100644 --- a/meta/classes/package_ipk.bbclass +++ b/meta/classes/package_ipk.bbclass @@ -235,8 +235,8 @@ python do_package_ipk () {  		bb.build.exec_func("mapping_rename_hook", localdata) -		rdepends = explode_deps(bb.data.getVar("RDEPENDS", localdata, 1) or "") -		rrecommends = explode_deps(bb.data.getVar("RRECOMMENDS", localdata, 1) or "") +		rdepends = bb.utils.explode_deps(bb.data.getVar("RDEPENDS", localdata, 1) or "") +		rrecommends = bb.utils.explode_deps(bb.data.getVar("RRECOMMENDS", localdata, 1) or "")  		rsuggests = (bb.data.getVar("RSUGGESTS", localdata, 1) or "").split()  		rprovides = (bb.data.getVar("RPROVIDES", localdata, 1) or "").split()  		rreplaces = (bb.data.getVar("RREPLACES", localdata, 1) or "").split() diff --git a/meta/classes/packagedata.bbclass b/meta/classes/packagedata.bbclass new file mode 100644 index 0000000000..c9d64d6da2 --- /dev/null +++ b/meta/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 + diff --git a/meta/packages/libidl/libidl-native_0.8.3.bb b/meta/packages/libidl/libidl-native_0.8.12.bb index ce59fd4b86..ce59fd4b86 100644 --- a/meta/packages/libidl/libidl-native_0.8.3.bb +++ b/meta/packages/libidl/libidl-native_0.8.12.bb diff --git a/meta/packages/libidl/libidl_0.8.3.bb b/meta/packages/libidl/libidl_0.8.12.bb index ac10a2422f..ac10a2422f 100644 --- a/meta/packages/libidl/libidl_0.8.3.bb +++ b/meta/packages/libidl/libidl_0.8.12.bb | 
