All changes to fakechroot we carry in Debian for glibc >= 2.37
I'm creating this merge request to keep track of the patch stack we carry in Debian on top of fakechroot 2.20.1.
These are mostly the same patches that are also applied by Fedora: https://src.fedoraproject.org/rpms/fakechroot
This pull request contains commits from the following pull requests:
- https://github.com/dex4er/fakechroot/pull/70
- https://github.com/dex4er/fakechroot/pull/85
- https://github.com/dex4er/fakechroot/pull/86
- https://github.com/dex4er/fakechroot/pull/95
- https://github.com/dex4er/fakechroot/pull/98
- https://github.com/dex4er/fakechroot/pull/108
As well as the last useful commit that was pushed to master since the release of 2.20.1: b42d1fb9538f680af2f31e864c555414ccba842a
This is the current patch stack in Debian: https://sources.debian.org/src/fakechroot/unstable/debian/patches/
First commit is already in master , can you rebase with master please?
- #73 is also included
- #75 not included but just to be used in Arch Linux
- #79 is also included
- #80 is not included but it is a trivial fix (IIRC)
- #93 not included
- #96 not included but just to used in Debian
- #100 not included
as note #98 for glibc 2.32 added src/__nss_files_fopen.c and later for glibc 2.34 remove it
I added two more commits which are needed to prevent #107 under glibc 2.34.
I added two more commits which are needed to prevent #107 under glibc 2.34.
It failed to build on "../build-aux/test-driver: line 107: ./t/rm.t: Permission denied". I just hat modify the file permissions (mode) to 755 [1] to fix the build , everything else is fine .
Thank you.
[1] diff --git a/test/t/rm.t b/test/t/rm.t new file mode 100755
Thank you @sergiomb2 I added the executable flag to the test.
I also added a new commit that fixes ldd.fakechroot on mips64el, ppc64el and s390x -- see #111 for details.
I found a rather important problem with my patch stack. The fix is:
diff --git a/src/__lstat64_time64.c b/src/__lstat64_time64.c
index e3e8400..1637b9c 100644
--- a/src/__lstat64_time64.c
+++ b/src/__lstat64_time64.c
@@ -20,7 +20,7 @@
#include <config.h>
-#ifdef HAVE___lstat64_time64
+#ifdef HAVE___LSTAT64_TIME64
#define _ATFILE_SOURCE
#define _POSIX_C_SOURCE 200809L
Because of that "typo" (probably some copy-paste mess-up of mine), touch --no-dereference --reference ... would fail on 32bit arches like armel, armhf and i386 because __lstat64_time64 was not wrapped by fakechroot. I added a check to test/t/touch.t to test running touch in that way to prevent future regressions.
In the process I also observed that during a normal build, test/t/touch.t is never run because test/touch.inc.sh tries to find testtree/usr/bin/touch instead of $testtree/usr/bin/touch.
I pushed all fixes here as well as to #108.
I pushed another commit which wraps __lutimes64 which is used by glibc 2.37 and later on armel and armhf.