I would want to hold this until we have a reaction from upstream.

RPM_CUSTOM_* exports should go to specific tasks where they are needed.

Alex

On Tue, 25 Jul 2023 at 15:57, Zoltán Böszörményi <[email protected]> wrote:
>
> Feed platform settings to installplatform externally. Based on the patch
> submitted under https://github.com/rpm-software-management/rpm/pull/2579
>
> Signed-off-by: Zoltán Böszörményi <[email protected]>
> ---
>  ...ng-plaform-macro-settings-externally.patch | 56 +++++++++++++++++++
>  meta/recipes-devtools/rpm/rpm_4.18.1.bb       | 17 ++++++
>  2 files changed, 73 insertions(+)
>  create mode 100644 
> meta/recipes-devtools/rpm/files/0001-Allow-setting-plaform-macro-settings-externally.patch
>
> diff --git 
> a/meta/recipes-devtools/rpm/files/0001-Allow-setting-plaform-macro-settings-externally.patch
>  
> b/meta/recipes-devtools/rpm/files/0001-Allow-setting-plaform-macro-settings-externally.patch
> new file mode 100644
> index 0000000000..8b3220f114
> --- /dev/null
> +++ 
> b/meta/recipes-devtools/rpm/files/0001-Allow-setting-plaform-macro-settings-externally.patch
> @@ -0,0 +1,56 @@
> +From 320f4f3861dad70342f065004311eac143d6522d Mon Sep 17 00:00:00 2001
> +From: =?UTF-8?q?Zolt=C3=A1n=20B=C3=B6sz=C3=B6rm=C3=A9nyi?=
> + <[email protected]>
> +Date: Tue, 25 Jul 2023 10:56:44 +0200
> +Subject: [PATCH] Allow setting plaform macro settings externally
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +
> +Yocto has their own way to set the platform names via BSPs
> +(Board Support Packages). These names are more specific than
> +basic CPU architectures, and such a platform name ends up in
> +/etc/rpm/platform but the corresponding subdirectory under
> +/usr/lib/rpm/platform does not exist.
> +
> +Allow creating such custom platform subdirectory with feeding
> +the necessary data using external variables: RPM_CUSTOM_ARCH,
> +RPM_CUSTOM_ISANAME, RPM_CUSTOM_ISABITS, RPM_CUSTOM_CANONARCH
> +and RPM_CUSTOM_CANONCOLOR
> +
> +Signed-off-by: Zoltán Böszörményi <[email protected]>
> +Upstream-Status: Submitted 
> [https://github.com/rpm-software-management/rpm/pull/2579]
> +---
> + installplatform | 9 ++++++++-
> + 1 file changed, 8 insertions(+), 1 deletion(-)
> +
> +diff --git a/installplatform b/installplatform
> +index a5ad7c5b8..59f57697b 100755
> +--- a/installplatform
> ++++ b/installplatform
> +@@ -11,7 +11,7 @@ VENDOR="${4}"
> + OS="${5}"
> + RPMRC_GNU="${6}"
> +
> +-for ARCH in noarch `grep ^arch_canon $RPMRC | cut -d: -f2`; do
> ++for ARCH in noarch `grep ^arch_canon $RPMRC | cut -d: -f2` 
> ${RPM_CUSTOM_ARCH:+custom}; do
> +   RPMRC_OPTFLAGS="`sed -n 's/^optflags: '$ARCH' //p' $RPMRC`"
> +   RPMRC_OPTFLAGS="`echo $RPMRC_OPTFLAGS | sed -e 's, ,\ ,g'`"
> +   case $RPMRC_OPTFLAGS in
> +@@ -30,6 +30,13 @@ for ARCH in noarch `grep ^arch_canon $RPMRC | cut -d: 
> -f2`; do
> +   CANONCOLOR=
> +   FILTER=cat
> +   case "${ARCH}" in
> ++    custom)
> ++      ARCH=$RPM_CUSTOM_ARCH
> ++      ISANAME=$RPM_CUSTOM_ISANAME
> ++      ISABITS=$RPM_CUSTOM_ISABITS
> ++      CANONARCH=$RPM_CUSTOM_CANONARCH
> ++      CANONCOLOR=$RPM_CUSTOM_CANONCOLOR
> ++    ;;
> +     sparc64*)
> +       ISANAME=sparc
> +       ISABITS=64
> +--
> +2.41.0
> +
> diff --git a/meta/recipes-devtools/rpm/rpm_4.18.1.bb 
> b/meta/recipes-devtools/rpm/rpm_4.18.1.bb
> index 95a9e92f96..bc036fc843 100644
> --- a/meta/recipes-devtools/rpm/rpm_4.18.1.bb
> +++ b/meta/recipes-devtools/rpm/rpm_4.18.1.bb
> @@ -40,6 +40,7 @@ SRC_URI = 
> "git://github.com/rpm-software-management/rpm;branch=rpm-4.18.x;protoc
>             
> file://0001-python-Use-Py_hash_t-instead-of-long-in-hdr_hash.patch \
>             file://fix-declaration.patch \
>             file://ea3187cfcf9cac87e5bc5e7db79b0338da9e355e.patch \
> +           file://0001-Allow-setting-plaform-macro-settings-externally.patch 
> \
>             "
>
>  PE = "1"
> @@ -103,6 +104,21 @@ WRAPPER_TOOLS = " \
>     ${libdir}/rpm/rpmdeps \
>  "
>
> +def rpm_isaname(d):
> +    import re
> +    arch = d.getVar('TARGET_ARCH')
> +    if re.match("^i.86$", arch) or re.match("^x86.*64$", arch):
> +        return "x86"
> +    # Add more platform tweaks for ISANAME as needed
> +    return arch
> +
> +export RPM_CUSTOM_ARCH = "${MACHINE_ARCH}"
> +export RPM_CUSTOM_ISANAME = "${@rpm_isaname(d)}"
> +export RPM_CUSTOM_ISABITS = "${SITEINFO_BITS}"
> +export RPM_CUSTOM_CANONARCH = "${TARGET_ARCH}"
> +# CANONCOLOR determines whether /usr/lib or /usr/lib64 is used for a 64-bit 
> platform
> +export RPM_CUSTOM_CANONCOLOR = "${@bb.utils.contains('DISTRO_FEATURES', 
> 'multilib', '3', '0', d)}"
> +
>  do_configure:prepend() {
>          mkdir -p ${S}/build-aux
>  }
> @@ -132,6 +148,7 @@ do_install:append:class-nativesdk() {
>  do_install:append:class-target() {
>      rm -rf ${D}/var
>  }
> +
>  do_install:append:class-nativesdk() {
>      rm -rf ${D}${SDKPATHNATIVE}/var
>      # Ensure find-debuginfo is located correctly inside SDK
> --
> 2.41.0
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#184852): 
https://lists.openembedded.org/g/openembedded-core/message/184852
Mute This Topic: https://lists.openembedded.org/mt/100350661/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to