summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/package_rpm.bbclass23
1 files changed, 18 insertions, 5 deletions
diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass
index 9a854f3834..2cc57424c7 100644
--- a/meta/classes/package_rpm.bbclass
+++ b/meta/classes/package_rpm.bbclass
@@ -318,8 +318,20 @@ python write_specfile () {
318 import textwrap 318 import textwrap
319 import oe.packagedata 319 import oe.packagedata
320 320
321 # We need to change '-' in a version field to '+' 321 # In RPM, dependencies are of the format: pkg <>= Epoch:Version-Release
322 # This needs to be done BEFORE the mapping_rename_hook 322 # This format is similar to OE, however there are restrictions on the
323 # characters that can be in a field. In the Version field, "-"
324 # characters are not allowed. "-" is allowed in the Release field.
325 #
326 # We translate the "-" in the version to a "+", by loading the PKGV
327 # from the dependent recipe, replacing the - with a +, and then using
328 # that value to do a replace inside of this recipe's dependencies.
329 # This preserves the "-" separator between the version and release, as
330 # well as any "-" characters inside of the release field.
331 #
332 # All of this has to happen BEFORE the mapping_rename_hook as
333 # after renaming we cannot look up the dependencies in the packagedata
334 # store.
323 def translate_vers(varname, d): 335 def translate_vers(varname, d):
324 depends = bb.data.getVar(varname, d, True) 336 depends = bb.data.getVar(varname, d, True)
325 if depends: 337 if depends:
@@ -330,9 +342,10 @@ python write_specfile () {
330 if dep and ver: 342 if dep and ver:
331 if '-' in ver: 343 if '-' in ver:
332 subd = oe.packagedata.read_subpkgdata_dict(dep, d) 344 subd = oe.packagedata.read_subpkgdata_dict(dep, d)
333 pv = subd['PKGV'] 345 if 'PKGV' in subd:
334 reppv = pv.replace('-', '+') 346 pv = subd['PKGV']
335 ver = ver.replace(pv, reppv) 347 reppv = pv.replace('-', '+')
348 ver = ver.replace(pv, reppv)
336 newdeps_dict[dep] = ver 349 newdeps_dict[dep] = ver
337 depends = bb.utils.join_deps(newdeps_dict) 350 depends = bb.utils.join_deps(newdeps_dict)
338 bb.data.setVar(varname, depends.strip(), d) 351 bb.data.setVar(varname, depends.strip(), d)