[OE-core] [PATCH] package.bbclass: allow using EXCLUDE_FROM_SHLIBS for subpackages

Andrii Bordunov aborduno at cisco.com
Mon Oct 10 17:02:35 UTC 2016


Some packages containing shared libraries might be registered
as shlib providers when they shouldn't (for example, the lib is for
their private use and must not generate any dependency).

EXCLUDE_FROM_SHLIBS is targeted at that, but it could be set
for entire recipe only.

This patch expands EXCLUDE_FROM_SHLIBS usage, so now it's possible
to set it in a style similar with RDEPENDS. For example:
 EXCLUDE_FROM_SHLIBS_${PN}-ptest = "1"

Signed-off-by: Andrii Bordunov <aborduno at cisco.com>
---
 meta/classes/package.bbclass | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index a6f0a7a..9bf43dc 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -1499,6 +1499,14 @@ python package_do_shlibs() {
     libdir_re = re.compile(".*/%s$" % d.getVar('baselib', True))
 
     packages = d.getVar('PACKAGES', True)
+
+    shlib_pkgs = []
+    for pkg in packages.split():
+        if d.getVar('EXCLUDE_FROM_SHLIBS_' + pkg, 0):
+            bb.note("not generating shlibs for %s" % pkg)
+        else:
+            shlib_pkgs.append(pkg)
+
     targetos = d.getVar('TARGET_OS', True)
 
     workdir = d.getVar('WORKDIR', True)
@@ -1614,7 +1622,7 @@ python package_do_shlibs() {
     needed = {}
     shlib_provider = oe.package.read_shlib_providers(d)
 
-    for pkg in packages.split():
+    for pkg in shlib_pkgs:
         private_libs = d.getVar('PRIVATE_LIBS_' + pkg, True) or d.getVar('PRIVATE_LIBS', True) or ""
         private_libs = private_libs.split()
         needs_ldconfig = False
@@ -1684,7 +1692,7 @@ python package_do_shlibs() {
 
     libsearchpath = [d.getVar('libdir', True), d.getVar('base_libdir', True)]
 
-    for pkg in packages.split():
+    for pkg in shlib_pkgs:
         bb.debug(2, "calculating shlib requirements for %s" % pkg)
 
         deps = list()
-- 
2.7.4




More information about the Openembedded-core mailing list