Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Patches and discussions about the oe-core layer
	<openembedded-core@lists.openembedded.org>
Subject: Re: base.bbclass: Ensure PREFERRED_PROVIDER and PREFERRED_VERSION values are set for multilibs
Date: Tue, 09 Aug 2011 15:17:18 +0100	[thread overview]
Message-ID: <1312899438.14274.302.camel@rex> (raw)
In-Reply-To: <C10D3FB0CD45994C8A51FEC1227CE22F2F9115B69C@shsmsx502.ccr.corp.intel.com>

On Mon, 2011-08-08 at 16:57 +0800, Lu, Lianhao wrote:
> Richard Purdie wrote on 2011-08-05:
> > When running multilib builds its not intuitive for the specificed
> > versions/providers to be build in one case and the higher version in the other.
> > This patch mirrors the options unless they're already set.
> > 
> > There shouldn't be any effect if the MULTILIBS variable isn't set.
> > 
> > [YOCTO #1339]
> > 
> > Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> ---
> > diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index
> > ff960cd..4aee847 100644 --- a/meta/classes/base.bbclass +++
> > b/meta/classes/base.bbclass @@ -139,6 +139,46 @@ def pkgarch_mapping(d):
> >          if d.getVar("TUNE_PKGARCH", True) == "armv7a-vfp-neon":
> >              d.setVar("TUNE_PKGARCH", "armv7a")
> > +def preferred_ml_updates(d):
> > +    # If any PREFERRED_PROVIDER or PREFERRED_VERSIONS are set,
> > +    # we need to mirror these variables in the multilib case
> > +    multilibs = d.getVar('MULTILIBS', True) or ""
> > +    if not multilibs:
> > +        return
> > +
> > +    prefixes = []
> > +    for ext in multilibs.split():
> > +        eext = ext.split(':')
> > +        if len(eext) > 1 and eext[0] == 'multilib':
> > +            prefixes.append(eext[1])
> > +
> > +    versions = []
> > +    providers = []
> > +    for v in d.keys():
> > +        if v.startswith("PREFERRED_VERSION_"):
> > +            versions.append(v)
> > +        if v.startswith("PREFERRED_PROVIDER_"):
> > +            providers.append(v)
> > +
> > +    for v in versions:
> > +        val = d.getVar(v, False)
> > +        pkg = v.replace("PREFERRED_VERSION_", "")
> > +        for p in prefixes:
> > +            newname = "PREFERRED_VERSION_" + p + "-" + pkg
> > +            if not d.getVar(newname, False):
> > +                d.setVar(newname, val)
> > +
> > +    for prov in providers:
> > +        val = d.getVar(prov, False)
> > +        pkg = prov.replace("PREFERRED_PROVIDER_", "")
> > +        virt = ""
> > +        if pkg.startswith("virtual/"):
> > +             pkg = pkg.replace("virtual/", "")
> > +             virt = "virtual/"
> > +        for p in prefixes:
> > +            newname = "PREFERRED_PROVIDER_" + virt + p + "-" + pkg
> > +            if not d.getVar(newname, False):
> > +                d.setVar(newname, p + "-" + val)
> 
> How about the native and nativesdk packages? I think they should not be prefixed.

Agreed. I've merged this with a tweak to stop the preferred
version/provider code taking effect for native/nativesdk packages.

Cheers,

Richard




      reply	other threads:[~2011-08-09 14:22 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-05 15:41 base.bbclass: Ensure PREFERRED_PROVIDER and PREFERRED_VERSION values are set for multilibs Richard Purdie
2011-08-08  8:57 ` Lu, Lianhao
2011-08-09 14:17   ` Richard Purdie [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1312899438.14274.302.camel@rex \
    --to=richard.purdie@linuxfoundation.org \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox