aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/image.bbclass5
-rw-r--r--meta/classes/package.bbclass22
-rw-r--r--meta/classes/populate_sdk_base.bbclass3
3 files changed, 18 insertions, 12 deletions
diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index 3cde0b8cba..4e9c29cb8b 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -116,8 +116,9 @@ python () {
d.setVar('IMAGE_FEATURES', ' '.join(list(remain_features)))
if d.getVar('BB_WORKERCONTEXT', True) is not None:
- runtime_mapping_rename("PACKAGE_INSTALL", d)
- runtime_mapping_rename("PACKAGE_INSTALL_ATTEMPTONLY", d)
+ pn = d.getVar('PN', True)
+ runtime_mapping_rename("PACKAGE_INSTALL", pn, d)
+ runtime_mapping_rename("PACKAGE_INSTALL_ATTEMPTONLY", pn, d)
# Ensure we have the vendor list for complementary package handling
ml_vendor_list = ""
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index 826a54e572..4e9b79efe2 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -332,24 +332,27 @@ def copydebugsources(debugsrcdir, d):
# Package data handling routines
#
-def get_package_mapping (pkg, d):
+def get_package_mapping (pkg, basepkg, d):
import oe.packagedata
data = oe.packagedata.read_subpkgdata(pkg, d)
key = "PKG_%s" % pkg
if key in data:
+ # Have to avoid undoing the write_extra_pkgs(global_variants...)
+ if bb.data.inherits_class('allarch', d) and data[key] == basepkg:
+ return pkg
return data[key]
return pkg
-def runtime_mapping_rename (varname, d):
+def runtime_mapping_rename (varname, pkg, d):
#bb.note("%s before: %s" % (varname, d.getVar(varname, True)))
new_depends = {}
deps = bb.utils.explode_dep_versions2(d.getVar(varname, True) or "")
for depend in deps:
- new_depend = get_package_mapping(depend, d)
+ new_depend = get_package_mapping(depend, pkg, d)
new_depends[new_depend] = deps[depend]
d.setVar(varname, bb.utils.join_deps(new_depends, commasep=False))
@@ -1942,10 +1945,11 @@ def mapping_rename_hook(d):
Rewrite variables to account for package renaming in things
like debian.bbclass or manual PKG variable name changes
"""
- runtime_mapping_rename("RDEPENDS", d)
- runtime_mapping_rename("RRECOMMENDS", d)
- runtime_mapping_rename("RSUGGESTS", d)
- runtime_mapping_rename("RPROVIDES", d)
- runtime_mapping_rename("RREPLACES", d)
- runtime_mapping_rename("RCONFLICTS", d)
+ pkg = d.getVar("PKG", True)
+ runtime_mapping_rename("RDEPENDS", pkg, d)
+ runtime_mapping_rename("RRECOMMENDS", pkg, d)
+ runtime_mapping_rename("RSUGGESTS", pkg, d)
+ runtime_mapping_rename("RPROVIDES", pkg, d)
+ runtime_mapping_rename("RREPLACES", pkg, d)
+ runtime_mapping_rename("RCONFLICTS", pkg, d)
diff --git a/meta/classes/populate_sdk_base.bbclass b/meta/classes/populate_sdk_base.bbclass
index 6280705236..49e446986f 100644
--- a/meta/classes/populate_sdk_base.bbclass
+++ b/meta/classes/populate_sdk_base.bbclass
@@ -30,7 +30,8 @@ EXCLUDE_FROM_WORLD = "1"
SDK_PACKAGING_FUNC ?= "create_shar"
fakeroot python do_populate_sdk() {
- runtime_mapping_rename("TOOLCHAIN_TARGET_TASK", d)
+ pn = d.getVar('PN', True)
+ runtime_mapping_rename("TOOLCHAIN_TARGET_TASK", pn, d)
bb.build.exec_func("populate_sdk_image", d)