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 <[email protected]>
> >>>> ---
> >>>> 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)

?

The code just looks more complex in your patch than I think it needs to be.

Cheers,

Richard


_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

Reply via email to