diff options
Diffstat (limited to 'meta')
-rw-r--r-- | meta/classes/package.bbclass | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass index 7dcec5ebf4..9b511a6bc9 100644 --- a/meta/classes/package.bbclass +++ b/meta/classes/package.bbclass | |||
@@ -1356,6 +1356,7 @@ python package_do_shlibs() { | |||
1356 | list_re = re.compile('^(.*)\.list$') | 1356 | list_re = re.compile('^(.*)\.list$') |
1357 | # Go from least to most specific since the last one found wins | 1357 | # Go from least to most specific since the last one found wins |
1358 | for dir in reversed(shlibs_dirs): | 1358 | for dir in reversed(shlibs_dirs): |
1359 | bb.debug(2, "Reading shlib providers in %s" % (dir)) | ||
1359 | if not os.path.exists(dir): | 1360 | if not os.path.exists(dir): |
1360 | continue | 1361 | continue |
1361 | for file in os.listdir(dir): | 1362 | for file in os.listdir(dir): |
@@ -1471,6 +1472,8 @@ python package_do_shlibs() { | |||
1471 | 1472 | ||
1472 | needed = {} | 1473 | needed = {} |
1473 | shlib_provider = {} | 1474 | shlib_provider = {} |
1475 | read_shlib_providers() | ||
1476 | |||
1474 | for pkg in packages.split(): | 1477 | for pkg in packages.split(): |
1475 | private_libs = d.getVar('PRIVATE_LIBS_' + pkg, True) or d.getVar('PRIVATE_LIBS', True) | 1478 | private_libs = d.getVar('PRIVATE_LIBS_' + pkg, True) or d.getVar('PRIVATE_LIBS', True) |
1476 | needs_ldconfig = False | 1479 | needs_ldconfig = False |
@@ -1504,6 +1507,11 @@ python package_do_shlibs() { | |||
1504 | if len(sonames): | 1507 | if len(sonames): |
1505 | fd = open(shlibs_file, 'w') | 1508 | fd = open(shlibs_file, 'w') |
1506 | for s in sonames: | 1509 | for s in sonames: |
1510 | if s in shlib_provider: | ||
1511 | (old_pkg, old_pkgver) = shlib_provider[s] | ||
1512 | if old_pkg != pkg: | ||
1513 | bb.warn('%s-%s was registered as shlib provider for %s, changing it to %s-%s because it was built later' % (old_pkg, old_pkgver, s, pkg, pkgver)) | ||
1514 | bb.debug(1, 'registering %s-%s as shlib provider for %s' % (pkg, pkgver, s)) | ||
1507 | fd.write(s + '\n') | 1515 | fd.write(s + '\n') |
1508 | shlib_provider[s] = (pkg, pkgver) | 1516 | shlib_provider[s] = (pkg, pkgver) |
1509 | fd.close() | 1517 | fd.close() |
@@ -1517,8 +1525,7 @@ python package_do_shlibs() { | |||
1517 | postinst = '#!/bin/sh\n' | 1525 | postinst = '#!/bin/sh\n' |
1518 | postinst += d.getVar('ldconfig_postinst_fragment', True) | 1526 | postinst += d.getVar('ldconfig_postinst_fragment', True) |
1519 | d.setVar('pkg_postinst_%s' % pkg, postinst) | 1527 | d.setVar('pkg_postinst_%s' % pkg, postinst) |
1520 | 1528 | bb.debug(1, 'LIBNAMES: pkg %s sonames %s' % (pkg, sonames)) | |
1521 | read_shlib_providers() | ||
1522 | 1529 | ||
1523 | bb.utils.unlockfile(lf) | 1530 | bb.utils.unlockfile(lf) |
1524 | 1531 | ||