On Sun, Jul 07, 2013 at 01:13:04AM +0200, Martin Jansa wrote: > * prepare for reading shlibs providers only from dependency tree of > current recipe > > [YOCTO #4628]
Any comment on this patchset? I'm using first 3 commits for some time in world builds and they helped me to discover some unexpected shlib providers (and fix them by setting PRIVATE_LIBS). > > Signed-off-by: Martin Jansa <martin.ja...@gmail.com> > --- > meta/classes/package.bbclass | 43 +++++++++++++++++++++++-------------------- > 1 file changed, 23 insertions(+), 20 deletions(-) > > diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass > index 5c2d1c6..d80535d 100644 > --- a/meta/classes/package.bbclass > +++ b/meta/classes/package.bbclass > @@ -1337,6 +1337,28 @@ python package_do_shlibs() { > # Take shared lock since we're only reading, not writing > lf = bb.utils.lockfile(d.expand("${PACKAGELOCK}")) > > + def read_shlib_providers: > + list_re = re.compile('^(.*)\.list$') > + # Go from least to most specific since the last one found wins > + for dir in reversed(shlibs_dirs): > + if not os.path.exists(dir): > + continue > + for file in os.listdir(dir): > + m = list_re.match(file) > + if m: > + dep_pkg = m.group(1) > + fd = open(os.path.join(dir, file)) > + lines = fd.readlines() > + fd.close() > + ver_file = os.path.join(dir, dep_pkg + '.ver') > + lib_ver = None > + if os.path.exists(ver_file): > + fd = open(ver_file) > + lib_ver = fd.readline().rstrip() > + fd.close() > + for l in lines: > + shlib_provider[l.rstrip()] = (dep_pkg, lib_ver) > + > def linux_so(file): > needs_ldconfig = False > cmd = d.getVar('OBJDUMP', True) + " -p " + pipes.quote(file) + " > 2>/dev/null" > @@ -1479,26 +1501,7 @@ python package_do_shlibs() { > postinst += d.getVar('ldconfig_postinst_fragment', True) > d.setVar('pkg_postinst_%s' % pkg, postinst) > > - list_re = re.compile('^(.*)\.list$') > - # Go from least to most specific since the last one found wins > - for dir in reversed(shlibs_dirs): > - if not os.path.exists(dir): > - continue > - for file in os.listdir(dir): > - m = list_re.match(file) > - if m: > - dep_pkg = m.group(1) > - fd = open(os.path.join(dir, file)) > - lines = fd.readlines() > - fd.close() > - ver_file = os.path.join(dir, dep_pkg + '.ver') > - lib_ver = None > - if os.path.exists(ver_file): > - fd = open(ver_file) > - lib_ver = fd.readline().rstrip() > - fd.close() > - for l in lines: > - shlib_provider[l.rstrip()] = (dep_pkg, lib_ver) > + read_shlib_providers() > > bb.utils.unlockfile(lf) > > -- > 1.8.2.1 > -- Martin 'JaMa' Jansa jabber: martin.ja...@gmail.com
signature.asc
Description: Digital signature
_______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core