[OE-core] [PATCH 1/1] package_rpm.bbclass: fix the arch (replace "-" with "_")

Mark Hatle mark.hatle at windriver.com
Thu Sep 6 16:52:35 UTC 2012


I've looked at the patch and it looks find to me.

Acked-by: Mark Hatle <mark.hatle at windriver.com>


One note, however..  Whatever arch fields we use need to also match the fields 
that get encoded into Zypper and the sat-solver stuff..  So there may be a 
second chunk of code that needs to be updated to match.

--Mark

On 8/28/12 10:45 AM, Robert Yang wrote:
> rpm can't use the "-" as the arch, which causes problem, e.g., when
> MACHINE = "beagleboard":
>
> * The arch should be armv7a-vfp-neon, but rpm only takes the armv7a,
>    this is incorrect since it is mixed with real arch armv7a.
>
> * The nativesdk's arch should be i686-nativesdk (or x86_64-nativesdk),
>    but rpm only takes the i686 (or x86_64), this in incorrect since it is
>    mixed with the arch i686 (or x86_64).
>
> Replace "-" with "_" when rpm package and the rootfs generation would
> fix the problem, I think this is fine since it doesn't change the tune's
> arch, the package manager doesn't care about the arch's name, but it
> needs a unify arch system to avoid confusing. This is similar to what we
> have done on the deb which fixed the arch i486, i586 and so on to i386.
>
> [YOCTO #2328]
>
> Signed-off-by: Robert Yang <liezhi.yang at windriver.com>
> ---
>   meta/classes/package_rpm.bbclass | 8 ++++----
>   1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass
> index 9abad5e..87dd367 100644
> --- a/meta/classes/package_rpm.bbclass
> +++ b/meta/classes/package_rpm.bbclass
> @@ -27,12 +27,12 @@ package_update_index_rpm () {
>   	fi
>
>   	# Update target packages
> -	base_archs="${PACKAGE_ARCHS}"
> -	ml_archs="${MULTILIB_PACKAGE_ARCHS}"
> +	base_archs="`echo ${PACKAGE_ARCHS} | sed 's/-/_/g'`"
> +	ml_archs="`echo ${MULTILIB_PACKAGE_ARCHS} | sed 's/-/_/g'`"
>   	package_update_index_rpm_common "${RPMCONF_TARGET_BASE}" base_archs ml_archs
>
>   	# Update SDK packages
> -	base_archs="${SDK_PACKAGE_ARCHS}"
> +	base_archs="`echo ${SDK_PACKAGE_ARCHS} | sed 's/-/_/g'`"
>   	package_update_index_rpm_common "${RPMCONF_HOST_BASE}" base_archs
>   }
>
> @@ -1118,7 +1118,7 @@ python do_package_rpm () {
>       rpmbuild = d.getVar('RPMBUILD', True)
>       targetsys = d.getVar('TARGET_SYS', True)
>       targetvendor = d.getVar('TARGET_VENDOR', True)
> -    package_arch = d.getVar('PACKAGE_ARCH', True) or ""
> +    package_arch = (d.getVar('PACKAGE_ARCH', True) or "").replace("-", "_")
>       if package_arch not in "all any noarch".split():
>           ml_prefix = (d.getVar('MLPREFIX', True) or "").replace("-", "_")
>           d.setVar('PACKAGE_ARCH_EXTEND', ml_prefix + package_arch)
>





More information about the Openembedded-core mailing list