[OE-core] [PATCH 6/7] package_rpm: fix strip_multilib function
Xu, Dongxiao
dongxiao.xu at intel.com
Thu Aug 4 01:44:58 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:39 PM
> To: openembedded-core at lists.openembedded.org
> Subject: Re: [OE-core] [PATCH 6/7] package_rpm: fix strip_multilib function
>
> On 8/3/11 10:19 AM, Dongxiao Xu wrote:
> > The previous logic could only strip MLPREFIX from the first element in
> > an array, take an example, strip_multilib the [lib32-a lib32-b
> > lib32-c] will result in [a lib32-b lib32-c]. This commit change it to
> > strip all elements' multilib prefix.
> >
> > CC: Mark Hatle <mark.hatle at windriver.com>
> > Signed-off-by: Dongxiao Xu <dongxiao.xu at intel.com>
> > ---
> > meta/classes/package_rpm.bbclass | 4 ++--
> > 1 files changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/meta/classes/package_rpm.bbclass
> > b/meta/classes/package_rpm.bbclass
> > index 9d0eeba..a29ce9d 100644
> > --- a/meta/classes/package_rpm.bbclass
> > +++ b/meta/classes/package_rpm.bbclass
> > @@ -326,7 +326,7 @@ python write_specfile () {
> > for ext in multilibs.split():
> > eext = ext.split(':')
> > if len(eext) > 1 and eext[0] == 'multilib' and name and
> name.find(eext[1] + '-') == 0:
> > - name = (eext[1] + '-').join(name.split(eext[1] + '-', 1)[1:])
> > + name = " ".join(name.split(eext[1] + '-')[1:])
>
> This looks incorrect to me, with the " ".join, it's going to join multiple elements
> with a whitespace between them. The original code was written to work on
> one item at a time within the list of multilibs.
>
> How well has this been tested? Since I don't have all of the context this very
> well might be correct within the current scope of the multilib implementation.
The original usage for this strip_multilib() is in translate_vers() function, which strip the MLPREFIX one by one and then write the value back into variable "d".
As in the last patch (PATCH 7/7), we move strip_multilib() out of translate_vers() to fix the package rename issue we met in multilib.
Therefore for our new usage, we need it to remove MLPREFIX for all elements in a list at one time, thus I changed its working style.
Thanks,
Dongxiao
>
> > return name
> >
> > # ml = bb.data.getVar("MLPREFIX", d, True)
> > @@ -720,7 +720,7 @@ python do_package_rpm () {
> > def strip_multilib(name, d):
> > ml = bb.data.getVar("MLPREFIX", d, True)
> > if ml and name and len(ml) != 0 and name.find(ml) == 0:
> > - return ml.join(name.split(ml, 1)[1:])
> > + return " ".join(name.split(ml)[1:])
> > return name
> >
> > workdir = bb.data.getVar('WORKDIR', d, True)
>
>
> _______________________________________________
> 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