From d4521fb132266fd6c94796e19d3d1e925847338d Mon Sep 17 00:00:00 2001
From: Jo-Philipp Wich <jo@mein.io>
Date: Mon, 9 Nov 2020 21:46:01 +0100
Subject: [PATCH] tools: fakeroot: rework relocatable patch to avoid
 LD_LIBRARY_PATH usage
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit

Due to the use of LD_LIBRARY_PATH, the programs running in the fakeroot
environment may end up loading bundled SDK libraries using the system
ld.so.

Rework the relocatability patch to avoid meddling with LD_LIBRARY_PATH
and construct the paths to faked and libfakeroot.so directly.

Fixes: f93cb5c2c8 ("fakeroot: make fakeroot script relocatable")
Reviewed-by: Petr Å tetiar <ynezz@true.cz>
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
---
 tools/fakeroot/patches/000-relocatable.patch | 24 ++++++++++++--------
 1 file changed, 14 insertions(+), 10 deletions(-)

diff --git a/tools/fakeroot/patches/000-relocatable.patch b/tools/fakeroot/patches/000-relocatable.patch
index 9f6915bfe8..0408acfa25 100644
--- a/tools/fakeroot/patches/000-relocatable.patch
+++ b/tools/fakeroot/patches/000-relocatable.patch
@@ -1,25 +1,29 @@
 --- a/scripts/fakeroot.in
 +++ b/scripts/fakeroot.in
-@@ -30,12 +30,19 @@ fatal ()
+@@ -30,13 +30,20 @@ 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"
++    USEABSLIBPATH=1
++    LIB=${STAGING_DIR_HOST}/lib/lib@fakeroot_transformed@@DLSUFFIX@
++    FAKED=${STAGING_DIR_HOST}/bin/faked
++    PATHS=
 +else
 +    FAKEROOT_PREFIX=@prefix@
 +    FAKEROOT_BINDIR=@bindir@
-+    FAKEROOT_LIBDIR=@libdir@
-+fi
  
- USEABSLIBPATH=@LDPRELOADABS@
- LIB=lib@fakeroot_transformed@@DLSUFFIX@
+-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=${FAKEROOT_BINDIR}/@faked_transformed@
++    USEABSLIBPATH=@LDPRELOADABS@
++    LIB=lib@fakeroot_transformed@@DLSUFFIX@
++    PATHS=@libdir@:${FAKEROOT_PREFIX}/lib64/libfakeroot:${FAKEROOT_PREFIX}/lib32/libfakeroot
++    FAKED=${FAKEROOT_BINDIR}/@faked_transformed@
++fi
  
  FAKED_MODE="unknown-is-root"
+ export FAKED_MODE
-- 
2.30.2