fakechroot icon indicating copy to clipboard operation
fakechroot copied to clipboard

All changes to fakechroot we carry in Debian for glibc >= 2.37

Open josch opened this issue 3 years ago • 11 comments

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/

josch avatar Aug 24 '22 06:08 josch

First commit is already in master , can you rebase with master please?

sergiomb2 avatar Oct 28 '22 19:10 sergiomb2

  • #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

sergiomb2 avatar Oct 29 '22 06:10 sergiomb2

I added two more commits which are needed to prevent #107 under glibc 2.34.

josch avatar Oct 31 '22 23:10 josch

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

sergiomb2 avatar Dec 25 '22 21:12 sergiomb2

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.

josch avatar Jan 31 '23 10:01 josch

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.

josch avatar Feb 06 '23 09:02 josch

I pushed another commit which wraps __lutimes64 which is used by glibc 2.37 and later on armel and armhf.

josch avatar Apr 14 '24 16:04 josch