The nativesdk class does not create lib<x> packages as its cross
counterpart does.

        libblkid
        libuuid
        libsmartcols
        libfdisk
        libmount...

Instead theses libraries are shipped into the nativesdk-util-linux
package.

This causes nativesdk images to fail at do_rootfs when a package depends
on util-linux-lib<x> because the nativesdk-util-linux-lib<x> is not
created.

The example below shows what the error looks like with the not created
package nativesdk-util-linux-libuuid.

        Collected errors:
         * calculate_dependencies_for: Cannot satisfy the following 
dependencies for nativesdk-packagegroup-sdk-host:
         *     nativesdk-util-linux-libuuid *
         * opkg_solver_install: Cannot install package 
nativesdk-packagegroup-sdk-host.

The reason comes from the place where the libraries are installed.

Libraries are installed under ${base_libdir} (ie. /lib) for the cross
the package; but they are installed under ${libdir} (ie. /usr/lib) for
nativesdk (and native).

        EXTRA_OECONF = "${SHARED_EXTRA_OECONF} --libdir=${base_libdir}"

        EXTRA_OECONF_class-native = "${SHARED_EXTRA_OECONF} \
                                     --disable-fallocate \
                                     --disable-use-tty-group \
        "

The populate_packages_prepend function dynamically creates lib<x>
packages that are installed under ${base_libdir} directory.

The new function populate_packages_prepend_class-nativesdk for nativesdk
mimics the behavior of the cross function.

It creates dynamically nativesdk-lib<x> packages for libraries that are
installed under the ${libdir} directory.

Improves:

        91c0f9e35d util-linux: move libraries to base_libdir
        4cff0bd254 util-linux: Fix QA warnings about ALTERNATIVES
        4571c9e963 util-linux: collect libs for related libxx-dev package
        a7572d7000 util-linux: split libraries dynamically

Signed-off-by: Gaël PORTAY <[email protected]>
---
 meta/recipes-core/util-linux/util-linux.inc | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/meta/recipes-core/util-linux/util-linux.inc 
b/meta/recipes-core/util-linux/util-linux.inc
index 5c4694b1fd..0ab05c8cdc 100644
--- a/meta/recipes-core/util-linux/util-linux.inc
+++ b/meta/recipes-core/util-linux/util-linux.inc
@@ -303,6 +303,13 @@ python populate_packages_prepend() {
                       extra_depends='', prepend=True, allow_links=True)
 }
 
+python populate_packages_prepend_class-nativesdk() {
+    do_split_packages(d, '${libdir}', '^lib(.*)\.so\..*$',
+                      output_pattern='nativesdk-util-linux-lib%s',
+                      description='nativesdk-util-linux lib%s',
+                      extra_depends='', prepend=True, allow_links=True)
+}
+
 RDEPENDS_${PN}-bash-completion += "util-linux-lsblk"
 RDEPENDS_${PN}-ptest = "bash grep coreutils"
 
-- 
2.14.2

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

Reply via email to