From fa30c973cc72f69f469bfcffb210069ee443351b Mon Sep 17 00:00:00 2001 From: Marcin Juszkiewicz Date: Thu, 29 Mar 2007 12:50:18 +0000 Subject: package.bbclass: added support for private libraries (used only in package) - if package contain libraries which are not used outside then add PRIVATE_LIBS variable with names of them to not generate shlibs for them. --- classes/package.bbclass | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'classes/package.bbclass') diff --git a/classes/package.bbclass b/classes/package.bbclass index 07fdb7f890..19c206ae5e 100644 --- a/classes/package.bbclass +++ b/classes/package.bbclass @@ -573,6 +573,7 @@ python package_do_shlibs() { bb.mkdirhier(shlibs_dir) needed = {} + private_libs = bb.data.getVar('PRIVATE_LIBS', d, 1) for pkg in packages.split(): needs_ldconfig = False bb.debug(2, "calculating shlib provides for %s" % pkg) @@ -596,7 +597,9 @@ python package_do_shlibs() { needed[pkg].append(m.group(1)) m = re.match("\s+SONAME\s+([^\s]*)", l) if m and not m.group(1) in sonames: - sonames.append(m.group(1)) + # if library is private (only used by package) then do not build shlib for it + if private_libs == '' or -1 == private_libs.find(m.group(1)): + sonames.append(m.group(1)) if m and libdir_re.match(root): needs_ldconfig = True shlibs_file = os.path.join(shlibs_dir, pkg + ".list") -- cgit v1.2.3 From 5c164a27251aa8be7cbb8916a13919052387c3bd Mon Sep 17 00:00:00 2001 From: Marcin Juszkiewicz Date: Thu, 29 Mar 2007 13:25:19 +0000 Subject: package.bbclass: fix build problem related to private libs --- classes/package.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'classes/package.bbclass') diff --git a/classes/package.bbclass b/classes/package.bbclass index 19c206ae5e..3e80b2b31c 100644 --- a/classes/package.bbclass +++ b/classes/package.bbclass @@ -598,7 +598,7 @@ python package_do_shlibs() { m = re.match("\s+SONAME\s+([^\s]*)", l) if m and not m.group(1) in sonames: # if library is private (only used by package) then do not build shlib for it - if private_libs == '' or -1 == private_libs.find(m.group(1)): + if not private_libs or -1 == private_libs.find(m.group(1)): sonames.append(m.group(1)) if m and libdir_re.match(root): needs_ldconfig = True -- cgit v1.2.3 From 1a7cff6077b770083062952ef6f6f7517bfd2c07 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 18 Apr 2007 21:22:03 +0000 Subject: classes: Add support for intertask dependencies to be specified, needed for correct operation with bitbake 1.8.x. Old behaviour is maintained in a special legacy anonymous function in base.bbclass. The patch is an improved version of the one discussed on the mailing list. --- classes/package.bbclass | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'classes/package.bbclass') diff --git a/classes/package.bbclass b/classes/package.bbclass index 3e80b2b31c..e044395347 100644 --- a/classes/package.bbclass +++ b/classes/package.bbclass @@ -116,8 +116,23 @@ def do_split_packages(d, root, file_regex, output_pattern, description, postinst bb.data.setVar('PACKAGES', ' '.join(packages), d) -PACKAGE_DEPENDS ?= "file-native fakeroot-native" -DEPENDS_prepend =+ "${PACKAGE_DEPENDS} " +PACKAGE_DEPENDS += "file-native" + +python () { + import bb + + if bb.data.getVar('PACKAGES', d, True) != '': + deps = bb.data.getVarFlag('do_package', 'depends', d) or "" + for dep in (bb.data.getVar('PACKAGE_DEPENDS', d, True) or "").split(): + deps += " %s:do_populate_staging" % dep + bb.data.setVarFlag('do_package', 'depends', deps, d) + + deps = bb.data.getVarFlag('do_package_write', 'depends', d) or "" + for dep in (bb.data.getVar('PACKAGE_EXTRA_DEPENDS', d, True) or "").split(): + deps += " %s:do_populate_staging" % dep + bb.data.setVarFlag('do_package_write', 'depends', deps, d) +} + # file(1) output to match to consider a file an unstripped executable FILE_UNSTRIPPED_MATCH ?= "not stripped" #FIXME: this should be "" when any errors are gone! @@ -126,7 +141,7 @@ IGNORE_STRIP_ERRORS ?= "1" runstrip() { # Function to strip a single file, called from RUNSTRIP in populate_packages below # A working 'file' (one which works on the target architecture) - # is necessary for this stuff to work, hence the addition to PACKAGES_DEPENDS + # is necessary for this stuff to work, hence the addition to do_package[depends] local ro st -- cgit v1.2.3