[OE-core] [PATCH 5/7] multilib: remove MULTILIB_PACKAGE_ARCHS variable

Mark Hatle mark.hatle at windriver.com
Wed Aug 3 15:32:26 UTC 2011


On 8/3/11 10:19 AM, Dongxiao Xu wrote:
> multilib package and normal package shares the same architecture deploy
> folder, thus we do not need the ${MULTILIB_PACKAGE_ARCHS}.

This is incorrect behavior, at least for RPM.  The folder should have the
pkgarch specific to the tuning used to generate the multilib.  (Behavior may be
correct for deb/ipk.)

(If RPM sees two packages with the same .arch, it assumes that it's an upgrade
operation.  If the .arch is different then it goes into the multilib mode and
will be able to install both packages together, assuming the conflict resolution
results in a working -- non-conflicting -- install solution.)

--Mark

> CC: Mark Hatle <mark.hatle at windriver.com>
> Signed-off-by: Dongxiao Xu <dongxiao.xu at intel.com>
> ---
>  meta/classes/package_rpm.bbclass      |   13 ++-----------
>  meta/classes/populate_sdk_rpm.bbclass |    3 ---
>  meta/classes/rootfs_rpm.bbclass       |    3 ---
>  3 files changed, 2 insertions(+), 17 deletions(-)
> 
> diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass
> index abedc68..9d0eeba 100644
> --- a/meta/classes/package_rpm.bbclass
> +++ b/meta/classes/package_rpm.bbclass
> @@ -27,8 +27,7 @@ package_update_index_rpm () {
>  
>  	# Update target packages
>  	base_archs="${PACKAGE_ARCHS}"
> -	ml_archs="${MULTILIB_PACKAGE_ARCHS}"
> -	package_update_index_rpm_common "${RPMCONF_TARGET_BASE}" base_archs ml_archs
> +	package_update_index_rpm_common "${RPMCONF_TARGET_BASE}" base_archs
>  
>  	# Update SDK packages
>  	base_archs="${SDK_PACKAGE_ARCHS}"
> @@ -76,7 +75,7 @@ package_update_index_rpm_common () {
>  #
>  package_generate_rpm_conf () {
>  	# Update target packages
> -	package_generate_rpm_conf_common "${RPMCONF_TARGET_BASE}" base_archs ml_archs
> +	package_generate_rpm_conf_common "${RPMCONF_TARGET_BASE}" base_archs
>  
>  	# Update SDK packages
>  	package_generate_rpm_conf_common "${RPMCONF_HOST_BASE}" base_archs
> @@ -203,10 +202,6 @@ package_install_internal_rpm () {
>  
>  				archvar=base_archs
>  				ml_pkg=$(echo ${pkg} | sed "s,^${MLPREFIX}\(.*\),\1,")
> -				if [ "${ml_pkg}" != "${pkg}" ]; then
> -					archvar=ml_archs
> -				fi
> -
>  				pkg_name=$(resolve_package_rpm ${confbase}-${archvar}.conf ${ml_pkg})
>  				if [ -z "$pkg_name" ]; then
>  					echo "Unable to find package $pkg ($ml_pkg)!"
> @@ -223,10 +218,6 @@ package_install_internal_rpm () {
>  
>  			archvar=base_archs
>  			ml_pkg=$(echo ${pkg} | sed "s,^${MLPREFIX}\(.*\),\1,")
> -			if [ "${ml_pkg}" != "${pkg}" ]; then
> -				archvar=ml_archs
> -			fi
> -
>  			pkg_name=$(resolve_package_rpm ${confbase}-${archvar}.conf ${ml_pkg})
>  			if [ -z "$pkg_name" ]; then
>  				echo "Unable to find package $pkg ($ml_pkg)!"
> diff --git a/meta/classes/populate_sdk_rpm.bbclass b/meta/classes/populate_sdk_rpm.bbclass
> index 5fb0234..f33e4a9 100644
> --- a/meta/classes/populate_sdk_rpm.bbclass
> +++ b/meta/classes/populate_sdk_rpm.bbclass
> @@ -115,7 +115,6 @@ EOF
>  }
>  
>  python () {
> -    ml_package_archs = ""
>      multilibs = d.getVar('MULTILIBS', True) or ""
>      for ext in multilibs.split():
>          eext = ext.split(':')
> @@ -125,8 +124,6 @@ python () {
>              localdata.setVar("OVERRIDES", overrides)
>              # TEMP: OVERRIDES isn't working right
>              localdata.setVar("DEFAULTTUNE", localdata.getVar("DEFAULTTUNE_virtclass-multilib-" + eext[1], False) or "")
> -            ml_package_archs += localdata.getVar("PACKAGE_ARCHS", True) or ""
>              #bb.note("ML_PACKAGE_ARCHS %s %s %s" % (eext[1], localdata.getVar("PACKAGE_ARCHS", True) or "(none)", overrides))
> -    bb.data.setVar('MULTILIB_PACKAGE_ARCHS', ml_package_archs, d)
>  }
>  
> diff --git a/meta/classes/rootfs_rpm.bbclass b/meta/classes/rootfs_rpm.bbclass
> index 7c06064..c188d27 100644
> --- a/meta/classes/rootfs_rpm.bbclass
> +++ b/meta/classes/rootfs_rpm.bbclass
> @@ -209,7 +209,6 @@ python () {
>          bb.data.setVar('RPM_PREPROCESS_COMMANDS', '', d)
>          bb.data.setVar('RPM_POSTPROCESS_COMMANDS', '', d)
>  
> -    ml_package_archs = ""
>      multilibs = d.getVar('MULTILIBS', True) or ""
>      for ext in multilibs.split():
>          eext = ext.split(':')
> @@ -219,7 +218,5 @@ python () {
>              localdata.setVar("OVERRIDES", overrides)
>              # TEMP: OVERRIDES isn't working right
>              localdata.setVar("DEFAULTTUNE", localdata.getVar("DEFAULTTUNE_virtclass-multilib-" + eext[1], False) or "")
> -            ml_package_archs += localdata.getVar("PACKAGE_ARCHS", True) or ""
>              #bb.note("ML_PACKAGE_ARCHS %s %s %s" % (eext[1], localdata.getVar("PACKAGE_ARCHS", True) or "(none)", overrides))
> -    bb.data.setVar('MULTILIB_PACKAGE_ARCHS', ml_package_archs, d)
>  }





More information about the Openembedded-core mailing list