]> code.ossystems Code Review - openembedded-core.git/commitdiff
package_rpm/update-alternatives: fix package's provides
authorChen Qi <Qi.Chen@windriver.com>
Fri, 20 Aug 2021 06:59:31 +0000 (23:59 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sun, 22 Aug 2021 21:21:12 +0000 (22:21 +0100)
Currently we have:
  $ rpm -qp --provides tmp/deploy/rpm/core2_64/bash-5.1.8-r0.core2_64.rpm
  bash = 5.1.8-r0

This is incorrect as bash provides /bin/bash and /bin/sh. This is caused by
incomplete conversion of new override syntax, which breaks the per-file
parsing of package_rpm.

With this patch, we have:
  $ rpm -qp --provides tmp/deploy/rpm/core2_64/bash-5.1.8-r0.core2_64.rpm
  /bin/bash
  /bin/sh
  bash = 5.1.8-r0

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/package_rpm.bbclass
meta/classes/update-alternatives.bbclass

index aebeaf6932c2b4900a890e12c01e52a7a1262783..88d861c0e75cf59ef1cd902aa9e0c5a1e77b20f8 100644 (file)
@@ -40,10 +40,10 @@ def write_rpm_perfiledata(srcname, d):
         outfile.write("# Dependency table\n")
         outfile.write('deps = {\n')
         for pkg in packages.split():
-            dependsflist_key = 'FILE' + varname + 'FLIST' + "_" + pkg
+            dependsflist_key = 'FILE' + varname + 'FLIST' + ":" + pkg
             dependsflist = (d.getVar(dependsflist_key) or "")
             for dfile in dependsflist.split():
-                key = "FILE" + varname + "_" + dfile + "_" + pkg
+                key = "FILE" + varname + ":" + dfile + ":" + pkg
                 deps = filter_nativesdk_deps(srcname, d.getVar(key) or "")
                 depends_dict = bb.utils.explode_dep_versions(deps)
                 file = dfile.replace("@underscore@", "_")
@@ -249,10 +249,10 @@ python write_specfile () {
 
     def get_perfile(varname, pkg, d):
         deps = []
-        dependsflist_key = 'FILE' + varname + 'FLIST' + "_" + pkg
+        dependsflist_key = 'FILE' + varname + 'FLIST' + ":" + pkg
         dependsflist = (d.getVar(dependsflist_key) or "")
         for dfile in dependsflist.split():
-            key = "FILE" + varname + "_" + dfile + "_" + pkg
+            key = "FILE" + varname + ":" + dfile + ":" + pkg
             depends = d.getVar(key)
             if depends:
                 deps.append(depends)
index 81ca05de0e56d89edd6a75d6559f8a95ef16047a..fc1ffd828cf2bac3ead3acca79c6cbea2ab6785d 100644 (file)
@@ -321,7 +321,7 @@ def apply_update_alternative_provides(d):
 
             # Add file provide
             trans_target = oe.package.file_translate(alt_target)
-            d.appendVar('FILERPROVIDES_%s_%s' % (trans_target, pkg), " " + alt_link)
-            if not trans_target in (d.getVar('FILERPROVIDESFLIST_%s' % pkg) or ""):
-                d.appendVar('FILERPROVIDESFLIST_%s' % pkg, " " + trans_target)
+            d.appendVar('FILERPROVIDES:%s:%s' % (trans_target, pkg), " " + alt_link)
+            if not trans_target in (d.getVar('FILERPROVIDESFLIST:%s' % pkg) or ""):
+                d.appendVar('FILERPROVIDESFLIST:%s' % pkg, " " + trans_target)