]> code.ossystems Code Review - openembedded-core.git/commitdiff
package_rpm.bbclass: Improve handling of '-' characters in Requires and Recommends...
authorRichard Purdie <richard@openedhand.com>
Thu, 2 Oct 2008 19:57:34 +0000 (19:57 +0000)
committerRichard Purdie <richard@openedhand.com>
Thu, 2 Oct 2008 19:57:34 +0000 (19:57 +0000)
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@5390 311d38ba-8fff-0310-9ca6-ca027cbcb966

meta/classes/package_rpm.bbclass

index ae87bbff035757976c50b4149002c9b055128d75..c676baa1310c978ee3f186e08eeee1489aea9c5b 100644 (file)
@@ -79,23 +79,24 @@ python write_specfile() {
        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("Summary\t: .\n")