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)