[OE-core] [PATCH] base.bbclass: Fix PACKAGECONFIG issues with native and nativesdk BBCLASSEXTEND recipes (and multilib)
Martin Jansa
martin.jansa at gmail.com
Fri Apr 13 12:43:54 UTC 2012
On Thu, Apr 12, 2012 at 02:04:18PM +0100, Richard Purdie wrote:
> This patch fixes up the issues that were being seen where BBCLASSEXTEND and
> PACKAGECONFIG were interacting badly. It also ensures PACKAGECONFIG interacts
> properly with multilib builds.
>
> Ideally some of this code will be abstracted into lib/oe/classextend.py but
> at this point in release more invasive changes like this are inappropriate.
>
> This patch also removed empty strings from expressions rather than
> passing them around as this was complicating the additional code
> unnecessarily.
>
> The patch was verified against the OE-Core metadata where the return values of
> expandFilter() were sanity checked by hand for native/nativesdk and
> multilib combinations.
I can confirm it also fixes gtk+-native depends, cannot do more tests
now.
meta-oe people could be interested in this patch
http://git.openembedded.org/meta-openembedded-contrib/commit/?h=jansa/xorg&id=1ab99af784f5f1564f28f6afc4718d630b42a606
when this change hits oe-core
> [YOCTO #2225]
>
> Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
> ---
> diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
> index 2e8a0b0..3c9d76c 100644
> --- a/meta/classes/base.bbclass
> +++ b/meta/classes/base.bbclass
> @@ -305,9 +305,32 @@ python () {
> pkgconfigflags = d.getVarFlags("PACKAGECONFIG") or {}
> if pkgconfigflags:
> pkgconfig = (d.getVar('PACKAGECONFIG', True) or "").split()
> + pn = d.getVar("PN", True)
> + mlprefix = d.getVar("MLPREFIX", True)
> +
> + def expandFilter(appends, extension, prefix):
> + appends = bb.utils.explode_deps(d.expand(" ".join(appends)))
> + newappends = []
> + for a in appends:
> + if a.endswith("-native") or a.endswith("-cross"):
> + newappends.append(a)
> + elif a.startswith("virtual/"):
> + subs = a.split("/", 1)[1]
> + newappends.append("virtual/" + prefix + subs + extension)
> + else:
> + newappends.append(prefix + a + extension)
> + return newappends
> +
> def appendVar(varname, appends):
> if not appends:
> return
> + if varname.find("DEPENDS") != -1:
> + if pn.endswith("-nativesdk"):
> + appends = expandFilter(appends, "-nativesdk", "")
> + if pn.endswith("-native"):
> + appends = expandFilter(appends, "-native", "")
> + if mlprefix:
> + appends = expandFilter(appends, "", mlprefix)
> varname = d.expand(varname)
> d.appendVar(varname, " " + " ".join(appends))
>
> @@ -324,11 +347,14 @@ python () {
> elif len(items) == 4:
> enable, disable, depend, rdepend = items
> if flag in pkgconfig:
> - extradeps.append(depend)
> - extrardeps.append(rdepend)
> - extraconf.append(enable)
> - else:
> - extraconf.append(disable)
> + if depend:
> + extradeps.append(depend)
> + if rdepend:
> + extrardeps.append(rdepend)
> + if enable:
> + extraconf.append(enable)
> + elif disable:
> + extraconf.append(disable)
> appendVar('DEPENDS', extradeps)
> appendVar('RDEPENDS_${PN}', extrardeps)
> appendVar('EXTRA_OECONF', extraconf)
>
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
--
Martin 'JaMa' Jansa jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20120413/86660c3a/attachment-0002.sig>
More information about the Openembedded-core
mailing list