From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Patches and discussions about the oe-core layer
<openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH] package bbclass: allow per package PRIVATE_LIBS
Date: Fri, 27 Jan 2012 13:07:55 +0000 [thread overview]
Message-ID: <1327669675.19643.454.camel@ted> (raw)
In-Reply-To: <1A3FDA4B-424A-4C09-8DC9-9663BBC92D92@dominion.thruhere.net>
On Fri, 2012-01-27 at 12:55 +0100, Koen Kooi wrote:
> Op 27 jan. 2012, om 10:50 heeft Richard Purdie het volgende geschreven:
>
> > On Fri, 2012-01-27 at 10:45 +0100, Koen Kooi wrote:
> >> Op 27 jan. 2012, om 00:52 heeft Richard Purdie het volgende geschreven:
> >>
> >>> On Fri, 2012-01-27 at 00:17 +0100, Koen Kooi wrote:
> >>>> Op 26 jan. 2012, om 21:51 heeft Richard Purdie het volgende geschreven:
> >>>>
> >>>>> 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@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.
> >>>>
> >>>> Wouldn't that kill backward compatibility?
> >>>
> >>> No, since it would only take effect if the plain PRIVATE_LIBS was not
> >>> set...
> >>
> >> The problem with the 'private_libs' var is that it's global and this needs a pkg local variable.
> >
> > I see your point. How about just doing:
> >
> > private_libs = d.getVar('PRIVATE_LIBS_' + pkg, True) or d.getVar('PRIVATE_LIBS', True)
> >
> > ?
>
> That would still set the global variable when it encounters a
> subpackage with PRIVATE_LIBS set. And that would mean it will come
> down to carefully ordering PACKAGES and hoping the class iterates them
> in the same order.
>
> > The code just looks more complex in your patch than I think it needs
> to be.
>
> I agree but I couldn't figure out a way that keeps both the old global
> syntax working and enables the per-package one to work as well. But I
> must admit that I lack the most basic python skills :)
I was meaning to do:
shlib_provider = {}
- private_libs = d.getVar('PRIVATE_LIBS', True)
for pkg in packages.split():
+ private_libs = d.getVar('PRIVATE_LIBS_' + pkg, True) or d.getVar('PRIVATE_LIBS', True)
needs_ldconfig = False
bb.debug(2, "calculating shlib provides for %s" % pkg)
so private_libs is reset each time to the correct value.
Cheers,
Richard
next prev parent reply other threads:[~2012-01-27 13:15 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-26 17:03 [PATCH] package bbclass: allow per package PRIVATE_LIBS Koen Kooi
2012-01-26 20:51 ` Richard Purdie
2012-01-26 23:17 ` Koen Kooi
2012-01-26 23:52 ` Richard Purdie
2012-01-27 9:45 ` Koen Kooi
2012-01-27 9:50 ` Richard Purdie
2012-01-27 11:55 ` Koen Kooi
2012-01-27 13:07 ` Richard Purdie [this message]
2012-01-27 14:32 ` Koen Kooi
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=1327669675.19643.454.camel@ted \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.