On Tuesday, May 8, 2018 1:46:43 PM EDT Ricardo Salveti wrote: > On Mon, Apr 16, 2018 at 10:00 AM, Koen Kooi <[email protected]> wrote: > > The recipe wants to install libs into base_libdir, but uses "basename > > $libdir" to derive that. That breaks in a multiarch setup. Use the proper > > variable and remove the inline python usage. > > > > Signed-off-by: Koen Kooi <[email protected]> > > --- > > > > meta/recipes-support/libcap/libcap_2.25.bb | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/meta/recipes-support/libcap/libcap_2.25.bb > > b/meta/recipes-support/libcap/libcap_2.25.bb index d619a2e..47ecf34 > > 100644 > > --- a/meta/recipes-support/libcap/libcap_2.25.bb > > +++ b/meta/recipes-support/libcap/libcap_2.25.bb > > @@ -32,7 +32,7 @@ PACKAGECONFIG[pam] = "PAM_CAP=yes,PAM_CAP=no,libpam" > > > > EXTRA_OEMAKE = " \ > > > > INDENT= \ > > > > - lib=${@os.path.basename('${libdir}')} \ > > + lib='${base_libdir}' \ > > > > RAISE_SETFCAP=no \ > > DYNAMIC=yes \ > > BUILD_GPERF=yes \ > > This creates a build failure when usrmerge is used, as libcap expects > only the lib folder name and not the lib path (and when usrmerge is > enabled base_libdir gets set to /usr/lib instead of /lib). > > Since base_libdir and libdir are all based out baselib, can you > provide more details about how that broke your multiarch setup? > > The failure when usrmerge is used: > WARNING: libcap-2.25-r0 do_package: QA Issue: libcap: > Files/directories were installed but not shipped in any package: > /usr/lib > /usr/usr/lib/libcap.so > /usr/usr/lib/libcap.so.2 > /usr/usr/lib/libcap.so.2.25 > /usr/usr/lib/libcap.a > /usr/usr/lib/pkgconfig > /usr/usr/lib/pkgconfig/libcap.pc > /usr/usr/lib/security/pam_cap.so
Agreed. I just started to determine how this is breaking qemu-native (with virtfs enabled in the PACKAGECONFIG) and found that this change drops several files from being installed in the native-sysroot. Before this change: ⟫ cat .../tmp/work/x86_64-linux/qemu-native/2.11.1-r0/recipe-sysroot-native/ installeddeps/libcap-native.39df7fd64afdeb62b13bb47b7969532b recipe-sysroot-native/sysroot-providers/libcap-native recipe-sysroot-native/usr/include/sys/capability.h recipe-sysroot-native/usr/sbin/getpcaps recipe-sysroot-native/usr/sbin/capsh recipe-sysroot-native/usr/sbin/getcap recipe-sysroot-native/usr/sbin/setcap recipe-sysroot-native/usr/lib/libcap.so recipe-sysroot-native/usr/lib/libcap.so.2.25 recipe-sysroot-native/usr/lib/libcap.a recipe-sysroot-native/usr/lib/libcap.so.2 recipe-sysroot-native/usr/lib/pkgconfig/libcap.pc recipe-sysroot-native/usr/lib/pkgconfig/ recipe-sysroot-native/sysroot-providers/ recipe-sysroot-native/usr/include/sys/ recipe-sysroot-native/usr/include/ recipe-sysroot-native/usr/share/ recipe-sysroot-native/usr/sbin/ recipe-sysroot-native/usr/lib/ recipe-sysroot-native/usr/ After the change: ⟫ cat .../tmp/work/x86_64-linux/qemu-native/2.11.1-r0/recipe-sysroot-native/ installeddeps/libcap-native.2d12ea82cbd6eeaf25251caae2dce487 recipe-sysroot-native/sysroot-providers/libcap-native recipe-sysroot-native/usr/include/sys/capability.h recipe-sysroot-native/usr/sbin/getpcaps recipe-sysroot-native/usr/sbin/capsh recipe-sysroot-native/usr/sbin/getcap recipe-sysroot-native/usr/sbin/setcap recipe-sysroot-native/sysroot-providers/ recipe-sysroot-native/usr/include/sys/ recipe-sysroot-native/usr/include/ recipe-sysroot-native/usr/share/ recipe-sysroot-native/usr/sbin/ recipe-sysroot-native/usr/lib/ recipe-sysroot-native/usr/ I also believe that the old inline python was also not functioning correctly which is why it was believed that the change was non-consequential for non- multilib builds. I am looking at putting together a fix but would be more than happy if someone else came up with something first. Mark > > Thanks, -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
