Allow renaming of packages on a global basis to work, e.g.: PACKAGE_GLOBAL_RENAMES[bash] = "busybox"
Note this happens at package creation time and build time dependencies remain as written. This does have the potential to replace the horrific VIRTUAL-RUNTIME* variables, see the follow up patch. Signed-off-by: Richard Purdie <[email protected]> --- meta/classes/image.bbclass | 7 ++++--- meta/classes/package.bbclass | 16 ++++++++++------ meta/classes/populate_sdk_base.bbclass | 9 +++++---- 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index 2fa69a40d10..b3f5421697d 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -236,9 +236,10 @@ fakeroot python do_rootfs () { # otherwise, the multilib renaming could step in and squash any fixups that # may have occurred. pn = d.getVar('PN') - runtime_mapping_rename("PACKAGE_INSTALL", pn, d) - runtime_mapping_rename("PACKAGE_INSTALL_ATTEMPTONLY", pn, d) - runtime_mapping_rename("BAD_RECOMMENDATIONS", pn, d) + remaps = d.getVarFlags("PACKAGE_GLOBAL_RENAMES") + runtime_mapping_rename("PACKAGE_INSTALL", pn, remaps, d) + runtime_mapping_rename("PACKAGE_INSTALL_ATTEMPTONLY", pn, remaps, d) + runtime_mapping_rename("BAD_RECOMMENDATIONS", pn, remaps, d) # Generate the initial manifest create_manifest(d) diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass index 92eba988929..aad58ead977 100644 --- a/meta/classes/package.bbclass +++ b/meta/classes/package.bbclass @@ -612,9 +612,12 @@ def copydebugsources(debugsrcdir, sources, d): # Package data handling routines # -def get_package_mapping (pkg, basepkg, d, depversions=None): +def get_package_mapping(pkg, basepkg, remaps, d, depversions=None): import oe.packagedata + if pkg in remaps: + pkg = remaps[pkg] + data = oe.packagedata.read_subpkgdata(pkg, d) key = "PKG:%s" % pkg @@ -646,13 +649,13 @@ def get_package_additional_metadata (pkg_type, d): metadata_fields = [field.strip() for field in oe.data.typed_value(key, d)] return "\n".join(metadata_fields).strip() -def runtime_mapping_rename (varname, pkg, d): +def runtime_mapping_rename(varname, pkg, remaps, d): #bb.note("%s before: %s" % (varname, d.getVar(varname))) new_depends = {} deps = bb.utils.explode_dep_versions2(d.getVar(varname) or "") for depend, depversions in deps.items(): - new_depend = get_package_mapping(depend, pkg, d, depversions) + new_depend = get_package_mapping(depend, pkg, remaps, d, depversions) if depend != new_depend: bb.note("package name mapping done: %s -> %s" % (depend, new_depend)) new_depends[new_depend] = deps[depend] @@ -2512,6 +2515,7 @@ def mapping_rename_hook(d): like debian.bbclass or manual PKG variable name changes """ pkg = d.getVar("PKG") - runtime_mapping_rename("RDEPENDS", pkg, d) - runtime_mapping_rename("RRECOMMENDS", pkg, d) - runtime_mapping_rename("RSUGGESTS", pkg, d) + remaps = d.getVarFlags("PACKAGE_GLOBAL_RENAMES") + runtime_mapping_rename("RDEPENDS", pkg, remaps, d) + runtime_mapping_rename("RRECOMMENDS", pkg, remaps, d) + runtime_mapping_rename("RSUGGESTS", pkg, remaps, d) diff --git a/meta/classes/populate_sdk_base.bbclass b/meta/classes/populate_sdk_base.bbclass index fafdd96749c..55c36e1108d 100644 --- a/meta/classes/populate_sdk_base.bbclass +++ b/meta/classes/populate_sdk_base.bbclass @@ -152,13 +152,14 @@ def populate_sdk_common(d): d.setVar("PACKAGE_INSTALL_ATTEMPTONLY", ' '.join(inst_attempt_pkgs)) pn = d.getVar('PN') - runtime_mapping_rename("TOOLCHAIN_TARGET_TASK", pn, d) - runtime_mapping_rename("TOOLCHAIN_TARGET_TASK_ATTEMPTONLY", pn, d) + remaps = d.getVarFlags("PACKAGE_GLOBAL_RENAMES") + runtime_mapping_rename("TOOLCHAIN_TARGET_TASK", pn, remaps, d) + runtime_mapping_rename("TOOLCHAIN_TARGET_TASK_ATTEMPTONLY", pn, remaps, d) ld = bb.data.createCopy(d) ld.setVar("PKGDATA_DIR", "${STAGING_DIR}/${SDK_ARCH}-${SDKPKGSUFFIX}${SDK_VENDOR}-${SDK_OS}/pkgdata") - runtime_mapping_rename("TOOLCHAIN_HOST_TASK", pn, ld) - runtime_mapping_rename("TOOLCHAIN_HOST_TASK_ATTEMPTONLY", pn, ld) + runtime_mapping_rename("TOOLCHAIN_HOST_TASK", pn, remaps, ld) + runtime_mapping_rename("TOOLCHAIN_HOST_TASK_ATTEMPTONLY", pn, remaps, ld) d.setVar("TOOLCHAIN_HOST_TASK", ld.getVar("TOOLCHAIN_HOST_TASK")) d.setVar("TOOLCHAIN_HOST_TASK_ATTEMPTONLY", ld.getVar("TOOLCHAIN_HOST_TASK_ATTEMPTONLY")) -- 2.32.0
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#157840): https://lists.openembedded.org/g/openembedded-core/message/157840 Mute This Topic: https://lists.openembedded.org/mt/86813103/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
