[OE-core] [PATCH] package bbclass: allow per package PRIVATE_LIBS

Richard Purdie richard.purdie at linuxfoundation.org
Thu Jan 26 20:51:11 UTC 2012


On Thu, 2012-01-26 at 18:03 +0100, Koen Kooi wrote:
> If a recipe packages multiple versions of shlib (e.g. powervr drivers) we only want the shlib code to pickup $PN, not $PN-foo subpackages.
> This keeps backward compatibility with the global PRIVATE_LIBS usage if no per package PRIVATE_LIBS are set for a given package. In other words: this doesn't break the firefox recipe.
> 
> Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
> ---
>  meta/classes/package.bbclass |    5 ++++-
>  1 files changed, 4 insertions(+), 1 deletions(-)
> 
> diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
> index 45447e3..22a76cf 100644
> --- a/meta/classes/package.bbclass
> +++ b/meta/classes/package.bbclass
> @@ -1246,7 +1246,8 @@ python package_do_shlibs() {
>  				if not this_soname in sonames:
>  					# if library is private (only used by package) then do not build shlib for it
>  					if not private_libs or -1 == private_libs.find(this_soname):
> -						sonames.append(this_soname)
> +						if not private_libs_pkg or -1 == private_libs_pkg.find(this_soname):
> +							sonames.append(this_soname)
>  				if libdir_re.match(root):
>  					needs_ldconfig = True
>  				if snap_symlinks and (file != this_soname):
> @@ -1328,6 +1329,8 @@ python package_do_shlibs() {
>  	shlib_provider = {}
>  	private_libs = d.getVar('PRIVATE_LIBS', True)
>  	for pkg in packages.split():
> +		if not private_libs:
> +			private_libs_pkg = d.getVar('PRIVATE_LIBS_' + pkg, True)

You might as well just put:

                         private_libs = d.getVar('PRIVATE_LIBS_' + pkg, True)

and drop the first bit of the patch.

Cheers,

Richard





More information about the Openembedded-core mailing list