]> code.ossystems Code Review - openembedded-core.git/commitdiff
pseudo: Ensure we use our own libsqlite
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 30 Mar 2020 15:31:52 +0000 (16:31 +0100)
committerArmin Kuster <akuster808@gmail.com>
Mon, 20 Apr 2020 00:15:38 +0000 (17:15 -0700)
pseudo-native is special in that bitbake ends up executing it from the
sysroot-components directory before we have any workdirs for the bitbake
fakeroot worker. Since we switched to dynamically linking sqlite, it
means sqlite from the host system may be found, we really want the version
in sysroot-components. Trying to run tasks to create some special environment
for pseudo is hard and error prone. The simplest fix is to add an RPATH to
the binary so that it can correctly find the sqlite we want.

Unfortunately passing $ORIGIN into make doesn't work so well with shell
quoting so we have to fix that during do_install.

[YOCTO #13814]

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3937ca9e2dfabb1ce9bce1d536b60b1e2a43739b)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
meta/recipes-devtools/pseudo/pseudo.inc

index 7ff8e449e9a0827c305eb4049c22e1fc10c27575..50e30064bdeb0b557963f9d410658c5e546bd91b 100644 (file)
@@ -16,6 +16,7 @@ INSANE_SKIP_${PN}-dbg += "libdir"
 PROVIDES += "virtual/fakeroot"
 
 MAKEOPTS = ""
+MAKEOPTS_class-native = "'RPATH=-Wl,--rpath=XORIGIN/../../../sqlite3-native/usr/lib/'"
 
 inherit siteinfo pkgconfig
 
@@ -115,6 +116,7 @@ do_install () {
 }
 
 do_install_append_class-native () {
+       chrpath ${D}${bindir}/pseudo -r `chrpath ${D}${bindir}/pseudo | cut -d = -f 2 | sed s/XORIGIN/\\$ORIGIN/`
        install -d ${D}${sysconfdir}
        # The fallback files should never be modified
        install -m 444 ${WORKDIR}/fallback-passwd ${D}${sysconfdir}/passwd