* [PATCH 0/2] Make PNBLACKLIST work with multilibs, code cleanup
@ 2012-08-10 22:57 Peter Seebach
2012-08-10 22:57 ` [PATCH 1/2] base.bbclass: Expand PNBLACKLIST across multilibs too Peter Seebach
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Peter Seebach @ 2012-08-10 22:57 UTC (permalink / raw)
To: openembedded-core
First, make PNBLACKLIST work with multilib builds.
Second, just some quick cleanup of the multilib logic that handles
PREFERRED_PROVIDER, PREFERRED_VERSION, and now also PNBLACKLIST.
The following changes since commit 5290e82ecef08b5e573d7442627276d7b42c6b93:
Saul Wold (1):
foomatic: fix perl path for target
are available in the git repository at:
git://git.yoctoproject.org/poky-contrib seebs/blacklist
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=seebs/blacklist
Peter Seebach (2):
base.bbclass: Expand PNBLACKLIST across multilibs too
base.bbclass: Restructure multilib variable cloning
meta/classes/base.bbclass | 60 +++++++++++++++++++++++++-------------------
1 files changed, 34 insertions(+), 26 deletions(-)
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2] base.bbclass: Expand PNBLACKLIST across multilibs too
2012-08-10 22:57 [PATCH 0/2] Make PNBLACKLIST work with multilibs, code cleanup Peter Seebach
@ 2012-08-10 22:57 ` Peter Seebach
2012-08-10 23:13 ` Peter Seebach
2012-08-10 22:58 ` [PATCH 2/2] base.bbclass: Restructure multilib variable cloning Peter Seebach
2012-08-16 18:31 ` [PATCH 0/2] Make PNBLACKLIST work with multilibs, code cleanup Saul Wold
2 siblings, 1 reply; 5+ messages in thread
From: Peter Seebach @ 2012-08-10 22:57 UTC (permalink / raw)
To: openembedded-core
The PNBLACKLIST feature does not currently work with multilibs,
because they have different ${PN}. The obvious thing to do is to
do this at the same point that we do the PREFERRED_PROVIDER
and PREFERRED_VERSION fixups. (Making the PNBLACKLIST check
do the for-each-multilib check requires it to do the multilib
list generation repeatedly.)
---
meta/classes/base.bbclass | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
index e15fa26..8677a30 100644
--- a/meta/classes/base.bbclass
+++ b/meta/classes/base.bbclass
@@ -151,7 +151,8 @@ def pkgarch_mapping(d):
def preferred_ml_updates(d):
# If any PREFERRED_PROVIDER or PREFERRED_VERSIONS are set,
- # we need to mirror these variables in the multilib case
+ # we need to mirror these variables in the multilib case;
+ # likewise the PNBLACKLIST flags.
multilibs = d.getVar('MULTILIBS', True) or ""
if not multilibs:
return
@@ -164,12 +165,19 @@ def preferred_ml_updates(d):
versions = []
providers = []
+ blacklists = d.getVarFlags('PNBLACKLIST') or []
for v in d.keys():
if v.startswith("PREFERRED_VERSION_"):
versions.append(v)
if v.startswith("PREFERRED_PROVIDER_"):
providers.append(v)
+ for pkg, reason in blacklists.items():
+ for p in prefixes:
+ newpkg = p + "-" + pkg
+ if not d.getVarFlag('PNBLACKLIST', newpkg, True):
+ d.setVarFlag('PNBLACKLIST', newpkg, reason)
+
for v in versions:
val = d.getVar(v, False)
pkg = v.replace("PREFERRED_VERSION_", "")
--
1.7.0.4
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/2] base.bbclass: Restructure multilib variable cloning
2012-08-10 22:57 [PATCH 0/2] Make PNBLACKLIST work with multilibs, code cleanup Peter Seebach
2012-08-10 22:57 ` [PATCH 1/2] base.bbclass: Expand PNBLACKLIST across multilibs too Peter Seebach
@ 2012-08-10 22:58 ` Peter Seebach
2012-08-16 18:31 ` [PATCH 0/2] Make PNBLACKLIST work with multilibs, code cleanup Saul Wold
2 siblings, 0 replies; 5+ messages in thread
From: Peter Seebach @ 2012-08-10 22:58 UTC (permalink / raw)
To: openembedded-core
The checks for -native/-nativesdk packages, and the iteration over
multilibs, are shared between two (now three) blocks of code, and
nothing ever uses the bare multilib name (instead of the multilib
name plus a hyphen), so restructure this a bit. The checks for
-nativesdk/-native packages are now done before checking whether
something is a PREFERRED_* value, and the iteration over the lists
of preferred versions, preferred providers, and blacklists is done
inside a single iteration over multilibs. Out of sheer paranoia,
limit replacements to one.
---
meta/classes/base.bbclass | 58 ++++++++++++++++++++++----------------------
1 files changed, 29 insertions(+), 29 deletions(-)
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
index 8677a30..dce7427 100644
--- a/meta/classes/base.bbclass
+++ b/meta/classes/base.bbclass
@@ -167,43 +167,43 @@ def preferred_ml_updates(d):
providers = []
blacklists = d.getVarFlags('PNBLACKLIST') or []
for v in d.keys():
+ if v.endswith("-native") or v.endswith("-nativesdk"):
+ continue
if v.startswith("PREFERRED_VERSION_"):
versions.append(v)
if v.startswith("PREFERRED_PROVIDER_"):
providers.append(v)
- for pkg, reason in blacklists.items():
- for p in prefixes:
- newpkg = p + "-" + pkg
+ for p in prefixes:
+ p = p + "-"
+ # Prepend <multilib>- to everything in PNBLACKLIST:
+ for pkg, reason in blacklists.items():
+ newpkg = p + pkg
if not d.getVarFlag('PNBLACKLIST', newpkg, True):
d.setVarFlag('PNBLACKLIST', newpkg, reason)
-
- for v in versions:
- val = d.getVar(v, False)
- pkg = v.replace("PREFERRED_VERSION_", "")
- if pkg.endswith("-native") or pkg.endswith("-nativesdk"):
- continue
- 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_", "")
- if pkg.endswith("-native") or pkg.endswith("-nativesdk"):
- continue
- virt = ""
- if pkg.startswith("virtual/"):
- pkg = pkg.replace("virtual/", "")
- virt = "virtual/"
- for p in prefixes:
- newname = "PREFERRED_PROVIDER_" + virt + p + "-" + pkg
+ # Prepend <multilib>- to all PREFERRED_VERSION_ values:
+ for v in versions:
+ val = d.getVar(v, False)
+ name = v.replace("PREFERRED_VERSION_", "PREFERRED_VERSION_" + p, 1)
+ if not d.getVar(name, False):
+ d.setVar(name, val)
+ # Trickier. We don't want lib32-virtual/foo, we want
+ # virtual/lib32-foo. Also, for recipes other than the
+ # kernel, we want to change the provider. So for instance,
+ # PREFERRED_PROVIDER_virtual/xyzzy = "plugh" yields
+ # PREFERRED_PROVIDER_virtual/lib32-xyzzy = "lib32-plugh"
+ for prov in providers:
+ val = d.getVar(prov, False)
+ pkg = prov.replace("PREFERRED_PROVIDER_", "", 1)
+ virt = ""
+ if pkg.startswith("virtual/"):
+ pkg = pkg.replace("virtual/", "", 1)
+ virt = "virtual/"
if pkg != "kernel":
- val = p + "-" + val
- if not d.getVar(newname, False):
- d.setVar(newname, val)
-
+ val = p + val
+ name = "PREFERRED_PROVIDER_" + virt + p + pkg
+ if not d.getVar(name, False):
+ d.setVar(name, val)
mp = (d.getVar("MULTI_PROVIDER_WHITELIST", True) or "").split()
extramp = []
--
1.7.0.4
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] base.bbclass: Expand PNBLACKLIST across multilibs too
2012-08-10 22:57 ` [PATCH 1/2] base.bbclass: Expand PNBLACKLIST across multilibs too Peter Seebach
@ 2012-08-10 23:13 ` Peter Seebach
0 siblings, 0 replies; 5+ messages in thread
From: Peter Seebach @ 2012-08-10 23:13 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer
On Fri, 10 Aug 2012 17:57:59 -0500
Peter Seebach <peter.seebach@windriver.com> wrote:
> The PNBLACKLIST feature does not currently work with multilibs,
> because they have different ${PN}. The obvious thing to do is to
> do this at the same point that we do the PREFERRED_PROVIDER
> and PREFERRED_VERSION fixups. (Making the PNBLACKLIST check
> do the for-each-multilib check requires it to do the multilib
> list generation repeatedly.)
> ---
Oh, look, I forgot my Signed-off-by again. I've updated the
seebs/blacklist tree on contrib with fixed commits.
-s
--
Listen, get this. Nobody with a good compiler needs to be justified.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 0/2] Make PNBLACKLIST work with multilibs, code cleanup
2012-08-10 22:57 [PATCH 0/2] Make PNBLACKLIST work with multilibs, code cleanup Peter Seebach
2012-08-10 22:57 ` [PATCH 1/2] base.bbclass: Expand PNBLACKLIST across multilibs too Peter Seebach
2012-08-10 22:58 ` [PATCH 2/2] base.bbclass: Restructure multilib variable cloning Peter Seebach
@ 2012-08-16 18:31 ` Saul Wold
2 siblings, 0 replies; 5+ messages in thread
From: Saul Wold @ 2012-08-16 18:31 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer
On 08/10/2012 03:57 PM, Peter Seebach wrote:
> First, make PNBLACKLIST work with multilib builds.
>
> Second, just some quick cleanup of the multilib logic that handles
> PREFERRED_PROVIDER, PREFERRED_VERSION, and now also PNBLACKLIST.
>
> The following changes since commit 5290e82ecef08b5e573d7442627276d7b42c6b93:
> Saul Wold (1):
> foomatic: fix perl path for target
>
> are available in the git repository at:
>
> git://git.yoctoproject.org/poky-contrib seebs/blacklist
> http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=seebs/blacklist
>
> Peter Seebach (2):
> base.bbclass: Expand PNBLACKLIST across multilibs too
> base.bbclass: Restructure multilib variable cloning
>
> meta/classes/base.bbclass | 60 +++++++++++++++++++++++++-------------------
> 1 files changed, 34 insertions(+), 26 deletions(-)
>
Merged into OE-Core
Thanks
Sau!
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-08-16 18:43 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-10 22:57 [PATCH 0/2] Make PNBLACKLIST work with multilibs, code cleanup Peter Seebach
2012-08-10 22:57 ` [PATCH 1/2] base.bbclass: Expand PNBLACKLIST across multilibs too Peter Seebach
2012-08-10 23:13 ` Peter Seebach
2012-08-10 22:58 ` [PATCH 2/2] base.bbclass: Restructure multilib variable cloning Peter Seebach
2012-08-16 18:31 ` [PATCH 0/2] Make PNBLACKLIST work with multilibs, code cleanup Saul Wold
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox