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

Xu, Dongxiao dongxiao.xu at intel.com
Thu Aug 11 00:44:32 UTC 2011


> -----Original Message-----
> From: openembedded-core-bounces at lists.openembedded.org
> [mailto:openembedded-core-bounces at lists.openembedded.org] On Behalf Of
> Xu, Dongxiao
> Sent: Thursday, August 04, 2011 9:00 AM
> To: Patches and discussions about the oe-core layer
> Subject: Re: [OE-core] [PATCH 5/7] multilib: remove
> MULTILIB_PACKAGE_ARCHS variable
> 
> 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".
> 

Hi Mark,

Do you have updates on the above issue?

Thanks,
Dongxiao


> 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
> 
> _______________________________________________
> 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