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

Xu, Dongxiao dongxiao.xu at intel.com
Thu Aug 4 00:59:47 UTC 2011


Hi Mark,

> -----Original Message-----
> From: openembedded-core-bounces at lists.openembedded.org
> [mailto:openembedded-core-bounces at lists.openembedded.org] On Behalf Of
> Mark Hatle
> Sent: Wednesday, August 03, 2011 11:32 PM
> To: openembedded-core at lists.openembedded.org
> Subject: Re: [OE-core] [PATCH 5/7] multilib: remove
> MULTILIB_PACKAGE_ARCHS variable
> 
> 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.)

Yes, ipk package name is different between normal package and multilib package (tagged with MLPREFIX), so even they are put in the same deploy folder, there should be no problem.

However for currently for rpm multilib, the normal package and multilib package are in the same folder with same name, thus one will override the other.

Take "initscript" as an example, the normal rpm package name is: "initscripts-1.0-r127.x86_64.rpm". However the lib32 version of initscript's rpm package is also named as 
"initscripts-1.0-r127.x86_64.rpm", putting in the same deploy folder: "tmp/deploy/rpm/x86_64".

I think this should be an issue to fix, also we need to think about how to co-work with ipk side.

Thanks,
Dongxiao

> 
> (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)
> >  }
> 
> 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core




More information about the Openembedded-core mailing list