On Mon, Jul 27, 2020 at 8:36 AM Andrey Konovalov <[email protected]> wrote: > > Hi Khem, > > On 27.07.2020 18:28, Khem Raj wrote: > > On Mon, Jul 27, 2020 at 2:21 AM Andrey Konovalov > > <[email protected]> wrote: > >> > >> libcamera checks if RPATH or RUNPATH dynamic tag is present in > >> libcamera.so. If it does, it assumes that libcamera binaries are > >> run directly from the build directory without installing them, and > >> tries to use resorces like IPA modules from the build directory. > >> Mainline meson strips RPATH/RUNPATH out at install time (for > >> meson versions up to 0.54; the things are somewhat changed in 0.55). > >> But openembedded-core patches meson to disable RPATH/RUNPATH removal. > >> That's why we need to remove this tag manually in do_install_append(). > >> > >> IPA module is signed (with openssl dgst) after it is built. But > >> during packaging the OE build system 1) splits out debugging info, > >> and 2) strips the binaries. So the IPA module *.so file installed > >> isn't the one which the signature was calculated against. Then > >> the signature check fails, and libcamera tries to run the IPA > >> module isolated (in a sandbox), which doesn't work if the IPA > >> module wasn't designed to run isolated. The easiest way to fix that > >> is to disable splitting out debug information and stripping the binaries > >> during packaging with INHIBIT_PACKAGE_DEBUG_SPLIT and > >> INHIBIT_PACKAGE_STRIP. > >> > >> Signed-off-by: Andrey Konovalov <[email protected]> > >> --- > >> .../recipes-multimedia/libcamera/libcamera.bb | 9 ++++++++- > >> 1 file changed, 8 insertions(+), 1 deletion(-) > >> > >> diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb > >> b/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb > >> index 00a5c480d..573366f08 100644 > >> --- a/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb > >> +++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb > >> @@ -18,13 +18,20 @@ PV = "202006+git${SRCPV}" > >> > >> S = "${WORKDIR}/git" > >> > >> -DEPENDS = "python3-pyyaml-native udev gnutls boost" > >> +DEPENDS = "python3-pyyaml-native udev gnutls boost chrpath-native" > >> DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'qt', 'qtbase > >> qtbase-native', '', d)}" > >> > >> RDEPENDS_${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland qt', > >> 'qtwayland', '', d)}" > >> > >> inherit meson pkgconfig python3native > >> > >> +do_install_append() { > >> + chrpath -d ${D}${libdir}/libcamera.so > >> +} > >> + > >> FILES_${PN}-dev = "${includedir} ${libdir}/pkgconfig" > >> FILES_${PN} += " ${libdir}/libcamera.so" > >> > >> +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" > >> +INHIBIT_PACKAGE_STRIP = "1" > > > > I think this is sub-optimal, it means we can not have stripped > > binaries and it will increase the size unnecessarily > > Indeed. > > But the alternative is to recalculate the signature on the stripped binary in > do_install_append(), > and the drawback of this is moving part of the module signature > implementation into the recipe. > > Or the libcamera implementation is to be changed to handle stripped binaries. >
either of these solutions will be better perhaps. > Thanks, > Andrey > > >> + > >> -- > >> 2.17.1 > >>
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#85986): https://lists.openembedded.org/g/openembedded-devel/message/85986 Mute This Topic: https://lists.openembedded.org/mt/75819049/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
