Package: fakechroot Version: 2.19-3 Severity: wishlist Tags: patch
Dear Maintainer, As stated in the man page : "It is important to start fake environment in proper order. fakeroot should be started inside fakechroot" Indeed, we get an error if not : $ fakeroot fakechroot chroot mychroot # mknod /tmp/nullbis c 1 3 mknod: /tmp/nullbis: No such file or directory However, it may be convenient to use the other order in some circumstances (e.g., in debirf) : one may swap libfakeroot and libfakechroot in LD_PRELOAD if needed. With the patch below : $ fakeroot fakechroot chroot mychroot # mknod nullbis c 1 3 # echo $? 0 # ls -AlF nullbis crw------- 1 root root 1, 3 Feb 15 17:01 nullbis Regards, JH Chatenet --- /usr/bin/fakechroot.orig +++ /usr/bin/fakechroot @@ -155,10 +155,30 @@ fi fi +# Swap libfakechroot and libfakeroot in LD_PRELOAD if needed +# libfakeroot must come first +# an alternate fakeroot library may be given +# in the FAKEROOT_ALT_LIB environment variable +if [ -n "$FAKEROOT_ALT_LIB" ]; then + lib_libfakeroot="$FAKEROOT_ALT_LIB" +else + lib_libfakeroot="libfakeroot-sysv.so" +fi + +for preload in $(echo "$LD_PRELOAD" | tr ':' ' '); do + case "$preload" in + "$lib_libfakeroot") + lib_libfakeroot_to_preload="$preload" + ;; + *) + lib_to_preload="${lib_to_preload:+${lib_to_preload} }$preload" + ;; + esac +done # Make sure the preload is available fakechroot_paths="$fakechroot_paths${LD_LIBRARY_PATH:+${fakechroot_paths:+:}$LD_LIBRARY_PATH}" -fakechroot_lib="$fakechroot_lib${LD_PRELOAD:+ $LD_PRELOAD}" +fakechroot_lib="${lib_libfakeroot_to_preload:+${lib_libfakeroot_to_preload} }$fakechroot_lib${lib_to_preload:+ $lib_to_preload}" fakechroot_detect=`LD_LIBRARY_PATH="$fakechroot_paths" LD_PRELOAD="$fakechroot_lib" FAKECHROOT_DETECT=1 /bin/echo 2>&1` case "$fakechroot_detect" in -- System Information: Debian Release: 9.0 APT prefers unstable APT policy: (500, 'unstable') Architecture: amd64 (x86_64) Kernel: Linux 3.16.0-4-amd64 (SMP w/2 CPU cores) Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968) Shell: /bin/sh linked to /bin/dash Init: unable to detect Versions of packages fakechroot depends on: ii libfakechroot 2.19-3 fakechroot recommends no packages. fakechroot suggests no packages. -- no debconf information