[oe] [PATCH 40/70] package_rpm.bbclass: Improve handling of '-' characters in Requires and Recommends fields (from Poky)

Marcin Juszkiewicz openembedded at haerwu.biz
Wed Mar 4 15:52:55 UTC 2009


From: Richard Purdie <richard at openedhand.com>

git-svn-id: https://svn.o-hand.com/repos/poky@5390 311d38ba-8fff-0310-9ca6-ca027cbcb966
---
 classes/package_rpm.bbclass |   46 +++++++++++++++++++-----------------------
 1 files changed, 21 insertions(+), 25 deletions(-)

diff --git a/classes/package_rpm.bbclass b/classes/package_rpm.bbclass
index 47fbb38..084d8de 100644
--- a/classes/package_rpm.bbclass
+++ b/classes/package_rpm.bbclass
@@ -24,8 +24,6 @@ python write_specfile() {
 		"ROOT": "BuildRoot",
 		"LICENSE": "License",
 		"SECTION": "Group",
-		"pkg_postinst": "%post",
-		"pkg_preinst": "%pre",
 	}
 
 	root = bb.data.getVar('ROOT', d)
@@ -69,29 +67,29 @@ python write_specfile() {
 		if out_vartranslate[var][0] == "%":
 			continue
 		val = bb.data.getVar(var, d, 1)
-		if val:
-			fd.write("%s\t: %s\n" % (out_vartranslate[var], val))
+		fd.write("%s\t: %s\n" % (out_vartranslate[var], val))
 
 	fd.write("AutoReqProv: no\n")
 
 	bb.build.exec_func("mapping_rename_hook", d)
-	rdepends = bb.utils.explode_dep_versions(bb.data.getVar('RDEPENDS', d, True) or "")
-	for dep in rdepends:
-		ver = rdepends[dep]
-		if dep and ver:
-			ver = ver.replace('-', '+')
-			fd.write("Requires: %s %s\n" % (dep, ver))
-		elif dep:
-			fd.write("Requires: %s\n" % (dep))
-
-	rdepends = bb.utils.explode_dep_versions(bb.data.getVar('RRECOMMENDS', d, True) or "")
-	for dep in rdepends:
-		ver = rdepends[dep]
-		if dep and ver:
-			ver = ver.replace('-', '+')
-			fd.write("Recommends: %s %s\n" % (dep, ver))
-		elif dep:
-			fd.write("Recommends: %s\n" % (dep))
+
+	def write_dep_field(varname, outstring):
+		depends = bb.utils.explode_dep_versions(bb.data.getVar(varname, d, True) or "")
+		for dep in depends:
+			ver = depends[dep]
+			if dep and ver:
+				if '-' in ver:
+					subd = read_subpkgdata_dict(dep, d)
+					pv = subd['PV']
+					reppv = pv.replace('-', '+')
+					ver = ver.replace(pv, reppv)
+				fd.write("%s: %s %s\n" % (outstring, dep, ver))
+			elif dep:
+				fd.write("%s: %s\n" % (outstring, dep))
+
+
+	write_dep_field('RDEPENDS', 'Requires')
+	write_dep_field('RRECOMMENDS', 'Recommends')
 
         fd.write("Release\t: %s\n" % bb.data.expand('${PR}${DISTRO_PR}', d, True)
 	fd.write("Summary\t: .\n")
@@ -99,10 +97,8 @@ python write_specfile() {
 	for var in out_vartranslate.keys():
 		if out_vartranslate[var][0] != "%":
 			continue
-		val = bb.data.getVar(var, d)
-		if val:
-			fd.write(out_vartranslate[var] + "\n")
-			fd.write(val + "\n\n")
+		fd.write(out_vartranslate[var] + "\n")
+		fd.write(bb.data.getVar(var, d) + "\n\n")
 
 	fd.write("%files\n")
 	for file in files:
-- 
1.6.1.3







More information about the Openembedded-devel mailing list