Package: fakeroot
Version: 1.27-1
Severity: important
Tags: patch

Hello,

When redirecting the xstat functions, fakeroot is passing _STAT_VER
but it assumes it should pass the Linux values, making it unusable on
non-Linux. The attached patch fixes it by checking for __linux__, and
add the GNU/Hurd case.

Samuel

-- System Information:
Debian Release: bookworm/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable-debug'), (500, 
'testing-debug'), (500, 'stable-security'), (500, 'stable-debug'), (500, 
'proposed-updates-debug'), (500, 'proposed-updates'), (500, 
'oldstable-proposed-updates-debug'), (500, 'oldstable-proposed-updates'), (500, 
'oldoldstable'), (500, 'buildd-unstable'), (500, 'unstable'), (500, 'stable'), 
(500, 'oldstable'), (1, 'experimental-debug'), (1, 'buildd-experimental'), (1, 
'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.16.0 (SMP w/8 CPU threads; PREEMPT)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages fakeroot depends on:
ii  libc6        2.33-6
ii  libfakeroot  1.27-1

fakeroot recommends no packages.

fakeroot suggests no packages.

-- no debconf information
Index: fakeroot-1.27/libfakeroot.c
===================================================================
--- fakeroot-1.27.orig/libfakeroot.c
+++ fakeroot-1.27/libfakeroot.c
@@ -96,18 +96,22 @@
 #endif
 
 #ifndef _STAT_VER
- #if defined (__aarch64__)
-  #define _STAT_VER 0
- #elif defined (__powerpc__) && __WORDSIZE == 64
-  #define _STAT_VER 1
- #elif defined (__riscv) && __riscv_xlen==64
-  #define _STAT_VER 0
- #elif defined (__s390x__)
-  #define _STAT_VER 1
- #elif defined (__x86_64__)
-  #define _STAT_VER 1
- #else
-  #define _STAT_VER 3
+ #if defined __linux__
+  #if defined (__aarch64__)
+   #define _STAT_VER 0
+  #elif defined (__powerpc__) && __WORDSIZE == 64
+   #define _STAT_VER 1
+  #elif defined (__riscv) && __riscv_xlen==64
+   #define _STAT_VER 0
+  #elif defined (__s390x__)
+   #define _STAT_VER 1
+  #elif defined (__x86_64__)
+   #define _STAT_VER 1
+  #else
+   #define _STAT_VER 3
+  #endif
+ #elif defined __GNU__
+   #define _STAT_VER 0
  #endif
 #endif
 

Reply via email to