[oe-commits] org.oe.dev package.bbclass: Add various depchains improvements/fixes from poky. This whole functionality ideally needs rewriting but this fixes various important issues with SDK generation

rpurdie commit openembedded-commits at lists.openembedded.org
Tue Feb 19 13:11:26 UTC 2008


package.bbclass: Add various depchains improvements/fixes from poky. This whole functionality ideally needs rewriting but this fixes various important issues with SDK generation

Author: rpurdie at openembedded.org
Branch: org.openembedded.dev
Revision: ffe8d8c812114aeea7d8b10e920158c83afab4a5
ViewMTN: http://monotone.openembedded.org/revision/info/ffe8d8c812114aeea7d8b10e920158c83afab4a5
Files:
1
classes/package.bbclass
Diffs:

#
# mt diff -rf235aaab757e7ec8bf96df96c676a77814f25972 -rffe8d8c812114aeea7d8b10e920158c83afab4a5
#
# 
# 
# patch "classes/package.bbclass"
#  from [8e214768d4b5d7475123a98be2867fcb5807e8e4]
#    to [00073b159470805e555f3c2d47e3a3fe38020414]
# 
============================================================
--- classes/package.bbclass	8e214768d4b5d7475123a98be2867fcb5807e8e4
+++ classes/package.bbclass	00073b159470805e555f3c2d47e3a3fe38020414
@@ -793,14 +793,39 @@ python package_depchains() {
 	postfixes = (bb.data.getVar('DEPCHAIN_POST', d, 1) or '').split()
 	prefixes  = (bb.data.getVar('DEPCHAIN_PRE', d, 1) or '').split()
 
+	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 "")
+
+		for depend in depends:
+			if depend.find('-native') != -1 or depend.find('-cross') != -1 or depend.startswith('virtual/'):
+				#bb.note("Skipping %s" % depend)
+				continue
+			if depend.endswith('-dev'):
+				depend = depend.replace('-dev', '')
+			if depend.endswith('-dbg'):
+				depend = depend.replace('-dbg', '')
+			pkgname = getname(depend, suffix)
+			#bb.note("Adding %s for %s" % (pkgname, depend))
+			if not pkgname in rreclist:
+				rreclist.append(pkgname)
+
+		#bb.note('setting: RRECOMMENDS_%s=%s' % (pkg, ' '.join(rreclist)))
+		bb.data.setVar('RRECOMMENDS_%s' % pkg, ' '.join(rreclist), d)
+
 	def pkg_addrrecs(pkg, base, suffix, getname, rdepends, d):
-        #bb.note('rdepends for %s is %s' % (base, rdepends))
 
+		#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 "")
 
 		for depend in rdepends:
+			if depend.endswith('-dev'):
+				depend = depend.replace('-dev', '')
+			if depend.endswith('-dbg'):
+				depend = depend.replace('-dbg', '')
 			pkgname = getname(depend, suffix)
-			if not pkgname in rreclist and packaged(pkgname, d):
+			if not pkgname in rreclist:
 				rreclist.append(pkgname)
 
 		#bb.note('setting: RRECOMMENDS_%s=%s' % (pkg, ' '.join(rreclist)))
@@ -811,6 +836,10 @@ python package_depchains() {
 		if dep not in list:
 			list.append(dep)
 
+	depends = []
+	for dep in 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 ""):
 		add_dep(rdepends, dep)
@@ -843,6 +872,8 @@ python package_depchains() {
 	for suffix in pkgs:
 		for pkg in pkgs[suffix]:
 			(base, func) = pkgs[suffix][pkg]
+			if suffix == "-dev":
+				pkg_adddeprrecs(pkg, base, suffix, func, depends, d)
 			if len(pkgs[suffix]) == 1:
 				pkg_addrrecs(pkg, base, suffix, func, rdepends, d)
 			else:






More information about the Openembedded-commits mailing list