fakeroot: make fakeroot script relocatable
authorJo-Philipp Wich <jo@mein.io>
Thu, 10 Sep 2020 12:52:31 +0000 (14:52 +0200)
committerDaniel Golle <daniel@makrotopia.org>
Fri, 30 Oct 2020 00:39:09 +0000 (00:39 +0000)
Patch the fakeroot script template to discover faked and libfakeroot.so
relative to the STAGING_DIR_HOST environment variable, similar to how it
is done for automake, libtool, quilt and autoconf already.

This avoids the need for passing the paths to faked and libfakeroot.so
manually every time we invoke fakeroot and subsequently allows us to
drop OS X specific logic.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
tools/fakeroot/patches/000-relocatable.patch [new file with mode: 0644]

diff --git a/tools/fakeroot/patches/000-relocatable.patch b/tools/fakeroot/patches/000-relocatable.patch
new file mode 100644 (file)
index 0000000..9f6915b
--- /dev/null
@@ -0,0 +1,25 @@
+--- a/scripts/fakeroot.in
++++ b/scripts/fakeroot.in
+@@ -30,12 +30,19 @@ fatal ()
+ }
+ # strip /bin/fakeroot to find install prefix
+-FAKEROOT_PREFIX=@prefix@
+-FAKEROOT_BINDIR=@bindir@
++if [ -n "$STAGING_DIR_HOST" ]; then
++    FAKEROOT_PREFIX="${STAGING_DIR_HOST}"
++    FAKEROOT_BINDIR="${STAGING_DIR_HOST}/bin"
++    FAKEROOT_LIBDIR="${STAGING_DIR_HOST}/lib"
++else
++    FAKEROOT_PREFIX=@prefix@
++    FAKEROOT_BINDIR=@bindir@
++    FAKEROOT_LIBDIR=@libdir@
++fi
+ USEABSLIBPATH=@LDPRELOADABS@
+ LIB=lib@fakeroot_transformed@@DLSUFFIX@
+-PATHS=@libdir@:${FAKEROOT_PREFIX}/lib64/libfakeroot:${FAKEROOT_PREFIX}/lib32/libfakeroot
++PATHS=${FAKEROOT_LIBDIR}:${FAKEROOT_PREFIX}/lib64/libfakeroot:${FAKEROOT_PREFIX}/lib32/libfakeroot
+ FAKED=${FAKEROOT_BINDIR}/@faked_transformed@
+ FAKED_MODE="unknown-is-root"