FS#69572 - [fakeroot] fails to build: _STAT_VER undeclared

Attached to Project: Arch Linux
Opened by vicencb (vicencb) - Saturday, 06 February 2021, 22:51 GMT
Last edited by Allan McRae (Allan) - Monday, 15 February 2021, 12:32 GMT
Task Type Bug Report
Category Packages: Core
Status Closed
Assigned To Allan McRae (Allan)
Christian Hesse (eworm)
Architecture x86_64
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 5
Private No

Details

Description:
The released version of fakeroot 1.25.3-1 fails to build from source.

Additional info:
* package version(s) of base and base-devel:
autoconf 2.71-1
automake 1.16.3-1
bash 5.1.004-1
binutils 2.36-3
bison 3.7.3-1
bzip2 1.0.8-4
coreutils 8.32-1
fakeroot 1.25.3-1
file 5.39-1
filesystem 2021.01.19-1
findutils 4.8.0-1
flex 2.6.4-3
gawk 5.1.0-1
gcc 10.2.0-6
gcc-libs 10.2.0-6
gettext 0.21-1
glibc 2.33-3
grep 3.6-1
groff 1.22.4-4
gzip 1.10-3
iproute2 5.10.0-2
iputils 20200821-1
libtool 2.4.6+42+gb88cebd5-14
licenses 20200427-1
linux 5.10.13.arch1-2
m4 1.4.18-3
make 4.3-3
pacman 5.2.2-1
patch 2.7.6-8
pciutils 3.7.0-1
pkgconf 1.7.3-1
procps-ng 3.3.16-3
psmisc 23.3-4
sed 4.8-1
shadow 4.8.1-4
sudo 1.9.5.p2-1
systemd 247.3-1
systemd-sysvcompat 247.3-1
tar 1.33-1
texinfo 6.7-3
util-linux 2.36.1-4
which 2.21-5
xz 5.2.5-1

* config and/or log files etc.
==> Starting prepare()...
libtoolize: putting auxiliary files in '.'.
libtoolize: linking file './config.guess'
libtoolize: linking file './config.sub'
libtoolize: linking file './install-sh'
libtoolize: linking file './ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'build-aux'.
libtoolize: linking file 'build-aux/libtool.m4'
libtoolize: linking file 'build-aux/ltoptions.m4'
libtoolize: linking file 'build-aux/ltsugar.m4'
libtoolize: linking file 'build-aux/ltversion.m4'
libtoolize: linking file 'build-aux/lt~obsolete.m4'
autoreconf: export WARNINGS=
autoreconf: Entering directory '.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force -I build-aux
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --copy --force
libtoolize: putting auxiliary files in '.'.
libtoolize: copying file './ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'build-aux'.
libtoolize: copying file 'build-aux/libtool.m4'
libtoolize: copying file 'build-aux/ltoptions.m4'
libtoolize: copying file 'build-aux/ltsugar.m4'
libtoolize: copying file 'build-aux/ltversion.m4'
libtoolize: copying file 'build-aux/lt~obsolete.m4'
autoreconf: configure.ac: not using Intltool
autoreconf: configure.ac: not using Gtkdoc
autoreconf: running: aclocal --force -I build-aux
autoreconf: running: /usr/bin/autoconf --force
configure.ac:32: warning: The macro `AC_TRY_RUN' is obsolete.
configure.ac:32: You should run autoupdate.
./lib/autoconf/general.m4:2997: AC_TRY_RUN is expanded from...
configure.ac:32: the top level
configure.ac:98: warning: The macro `AC_HEADER_STDC' is obsolete.
configure.ac:98: You should run autoupdate.
./lib/autoconf/headers.m4:704: AC_HEADER_STDC is expanded from...
configure.ac:98: the top level
configure.ac:355: warning: AC_CHECK_FUNCS($WRAPPED): you should use literals
./lib/autoconf/functions.m4:117: AC_CHECK_FUNCS is expanded from...
configure.ac:355: the top level
autoreconf: running: /usr/bin/autoheader --force
autoreconf: running: automake --add-missing --copy --force-missing
configure.ac:11: installing './compile'
configure.ac:7: installing './missing'
Makefile.am: installing './depcomp'
parallel-tests: installing './test-driver'
autoreconf: './config.sub' is updated
autoreconf: './config.guess' is updated
autoreconf: Leaving directory '.'
==> Starting build()...
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking whether make sets $(MAKE)... (cached) yes
checking how to print strings... printf
checking whether make supports the include directive... yes (GNU style)
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... no
checking if : is a manifest tool... no
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking which IPC method to use... (cached) sysv
checking whether SysV IPC message queues are actually working on the host... Yes
checking which database format to use... (cached) inode
checking for dlopen in -ldl... yes
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking for egrep... (cached) /usr/bin/grep -E
checking for fcntl.h... yes
checking for unistd.h... (cached) yes
checking for features.h... yes
checking for sys/feature_tests.h... no
checking for pthread.h... yes
checking for stdint.h... (cached) yes
checking for inttypes.h... (cached) yes
checking for grp.h... yes
checking for endian.h... yes
checking for sys/sysmacros.h... yes
checking for sys/socket.h... yes
checking for sys/acl.h... yes
checking for sys/capability.h... yes
checking for sys/xattr.h... yes
checking for fts.h... yes
checking for an ANSI C-conforming const... yes
checking for mode_t... yes
checking for off_t... yes
checking for size_t... yes
checking for return value and second and third argument of readlink... ssize_t, char, size_t
checking for first argument of setgroups... size_t
checking for union semun... no
checking for type of arg of __xmknod... no extra *
checking for type of arg of __xmknodat... no extra *
checking for type of arg of initgroups... gid_t
checking for type of arg of setreuid... gid_t
checking for type of arg of setregid... gid_t
checking for type of second arg to stat... struct stat *
checking for d_off in struct dirent... yes
checking for d_type in struct dirent... yes
checking for acl_t struct... yes
checking for fchmodat... yes
checking for fchownat... yes
checking for fstatat... yes
checking for mkdirat... yes
checking for mknodat... yes
checking for openat... yes
checking for renameat... yes
checking for unlinkat... yes
checking for lchmod... yes
checking for fgetattrlist... no
checking for library containing acl_get_fd... -lacl
checking for acl_get_fd... yes
checking for library containing acl_trivial... no
checking for acl_trivial... no
checking for capset... yes
checking for listxattr... yes
checking for llistxattr... yes
checking for flistxattr... yes
checking for getxattr... yes
checking for lgetxattr... yes
checking for fgetxattr... yes
checking for setxattr... yes
checking for lsetxattr... yes
checking for fsetxattr... yes
checking for removexattr... yes
checking for lremovexattr... yes
checking for fremovexattr... yes
checking for statx... yes
checking for __xstat... yes
checking for __fxstat... yes
checking for __lxstat... yes
checking for __fxstatat... yes
checking for __xstat64... yes
checking for __fxstat64... yes
checking for __lxstat64... yes
checking for __fxstatat64... yes
checking for __xmknod... yes
checking for __xmknodat... yes
created fakerootconfig.h
checking for strdup... yes
checking for strstr... yes
checking for getresuid... yes
checking for setresuid... yes
checking for getresgid... yes
checking for setresgid... yes
checking for setfsuid... yes
checking for setfsgid... yes
checking for fts_read... yes
checking for fts_children... yes
checking for gcc options needed to detect all undeclared functions... none needed
checking whether setenv is declared... yes
checking whether unsetenv is declared... yes
checking for setenv... yes
checking for MacOS X/Darwin... no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating scripts/Makefile
config.status: creating doc/Makefile
config.status: creating doc/de/Makefile
config.status: creating doc/es/Makefile
config.status: creating doc/fr/Makefile
config.status: creating doc/nl/Makefile
config.status: creating doc/pt/Makefile
config.status: creating doc/sv/Makefile
config.status: creating test/Makefile
config.status: creating test/defs
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
make all-recursive
make[1]: Entering directory '/tmp/makepkg/fakeroot/src/fakeroot-1.25.3'
Making all in doc
make[2]: Entering directory '/tmp/makepkg/fakeroot/src/fakeroot-1.25.3/doc'
Making all in de
make[3]: Entering directory '/tmp/makepkg/fakeroot/src/fakeroot-1.25.3/doc/de'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/tmp/makepkg/fakeroot/src/fakeroot-1.25.3/doc/de'
Making all in es
make[3]: Entering directory '/tmp/makepkg/fakeroot/src/fakeroot-1.25.3/doc/es'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/tmp/makepkg/fakeroot/src/fakeroot-1.25.3/doc/es'
Making all in fr
make[3]: Entering directory '/tmp/makepkg/fakeroot/src/fakeroot-1.25.3/doc/fr'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/tmp/makepkg/fakeroot/src/fakeroot-1.25.3/doc/fr'
Making all in nl
make[3]: Entering directory '/tmp/makepkg/fakeroot/src/fakeroot-1.25.3/doc/nl'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/tmp/makepkg/fakeroot/src/fakeroot-1.25.3/doc/nl'
Making all in pt
make[3]: Entering directory '/tmp/makepkg/fakeroot/src/fakeroot-1.25.3/doc/pt'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/tmp/makepkg/fakeroot/src/fakeroot-1.25.3/doc/pt'
Making all in sv
make[3]: Entering directory '/tmp/makepkg/fakeroot/src/fakeroot-1.25.3/doc/sv'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/tmp/makepkg/fakeroot/src/fakeroot-1.25.3/doc/sv'
make[3]: Entering directory '/tmp/makepkg/fakeroot/src/fakeroot-1.25.3/doc'
make[3]: Nothing to be done for 'all-am'.
make[3]: Leaving directory '/tmp/makepkg/fakeroot/src/fakeroot-1.25.3/doc'
make[2]: Leaving directory '/tmp/makepkg/fakeroot/src/fakeroot-1.25.3/doc'
Making all in scripts
make[2]: Entering directory '/tmp/makepkg/fakeroot/src/fakeroot-1.25.3/scripts'
sed -e 's,[@]prefix[@],/usr,g' -e 's,[@]bindir[@],/usr/bin,g' -e 's,[@]libdir[@],/usr/lib/libfakeroot,g' -e 's,[@]fakeroot_transformed[@],'`echo fakeroot | sed -e 's,x,x,'`',g' -e 's,[@]faked_transformed[@],'`echo faked | sed -e 's,x,x,'`',g' -e 's,[@]signal[@],TERM,g' -e 's,[@]SHELL[@],/bin/sh,g' -e 's,[@]VERSION[@],1.25.3,g' -e 's,[@]DLSUFFIX[@],.so,g' -e 's,[@]LDLIBPATHVAR[@],LD_LIBRARY_PATH,g' -e 's,[@]LDPRELOADVAR[@],LD_PRELOAD,g' -e 's,[@]LDPRELOADABS[@],0,g' -e 's,[@]LDEXTRAVAR[@],,g' -e 's,[@]MACOSX_FALSE[@],,g' -e 's,[@]MACOSX_TRUE[@],#,g' < ./fakeroot.in > fakeroot
chmod +x fakeroot
make[2]: Leaving directory '/tmp/makepkg/fakeroot/src/fakeroot-1.25.3/scripts'
Making all in test
make[2]: Entering directory '/tmp/makepkg/fakeroot/src/fakeroot-1.25.3/test'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/tmp/makepkg/fakeroot/src/fakeroot-1.25.3/test'
make[2]: Entering directory '/tmp/makepkg/fakeroot/src/fakeroot-1.25.3'
gcc -DHAVE_CONFIG_H -I. -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=native -Os -pipe -fno-plt -MT faked.o -MD -MP -MF .deps/faked.Tpo -c -o faked.o faked.c
/bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=native -Os -pipe -fno-plt -MT communicate.lo -MD -MP -MF .deps/communicate.Tpo -c -o communicate.lo communicate.c
gcc -DHAVE_CONFIG_H -I. -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=native -Os -pipe -fno-plt -MT simple.o -MD -MP -MF .deps/simple.Tpo -c -o simple.o simple.c
awk -f ./wrapawk < ./wrapfunc.inp
awk: ./wrapawk:27: warning: regexp escape sequence `\#' is not a known regexp operator
awk -f ./wrapawk < ./wrapfunc.inp
mv -f .deps/simple.Tpo .deps/simple.Po
/bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=native -Os -pipe -fno-plt -MT libfakeroot_inode64.lo -MD -MP -MF .deps/libfakeroot_inode64.Tpo -c -o libfakeroot_inode64.lo libfakeroot_inode64.c
awk: ./wrapawk:27: warning: regexp escape sequence `\#' is not a known regexp operator
/bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=native -Os -pipe -fno-plt -MT libfakeroot_unix2003.lo -MD -MP -MF .deps/libfakeroot_unix2003.Tpo -c -o libfakeroot_unix2003.lo libfakeroot_unix2003.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=native -Os -pipe -fno-plt -MT communicate.lo -MD -MP -MF .deps/communicate.Tpo -c communicate.c -fPIC -DPIC -o .libs/communicate.o
libtool: compile: gcc -DHAVE_CONFIG_H -I. -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=native -Os -pipe -fno-plt -MT libfakeroot_inode64.lo -MD -MP -MF .deps/libfakeroot_inode64.Tpo -c libfakeroot_inode64.c -fPIC -DPIC -o .libs/libfakeroot_inode64.o
libtool: compile: gcc -DHAVE_CONFIG_H -I. -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=native -Os -pipe -fno-plt -MT libfakeroot_unix2003.lo -MD -MP -MF .deps/libfakeroot_unix2003.Tpo -c libfakeroot_unix2003.c -fPIC -DPIC -o .libs/libfakeroot_unix2003.o
mv -f .deps/libfakeroot_inode64.Tpo .deps/libfakeroot_inode64.Plo
mv -f .deps/libfakeroot_unix2003.Tpo .deps/libfakeroot_unix2003.Plo
/bin/sh ./libtool --tag=CC --mode=link gcc -march=x86-64 -mtune=native -Os -pipe -fno-plt -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -o simple simple.o -ldl
/bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=native -Os -pipe -fno-plt -MT libfakeroot.lo -MD -MP -MF .deps/libfakeroot.Tpo -c -o libfakeroot.lo libfakeroot.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=native -Os -pipe -fno-plt -MT libfakeroot.lo -MD -MP -MF .deps/libfakeroot.Tpo -c libfakeroot.c -fPIC -DPIC -o .libs/libfakeroot.o
libtool: link: gcc -march=x86-64 -mtune=native -Os -pipe -fno-plt -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z -Wl,relro -Wl,-z -Wl,now -o simple simple.o -ldl
mv -f .deps/communicate.Tpo .deps/communicate.Plo
/bin/sh ./libtool --tag=CC --mode=link gcc -march=x86-64 -mtune=native -Os -pipe -fno-plt -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -o libmacosx.la libfakeroot_inode64.lo libfakeroot_unix2003.lo -ldl
/bin/sh ./libtool --tag=CC --mode=link gcc -march=x86-64 -mtune=native -Os -pipe -fno-plt -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -o libcommunicate.la communicate.lo -ldl
In file included from communicate.h:20,
from libfakeroot.c:60:
libfakeroot.c: In function ‘chown’:
libfakeroot.c:99:40: error: ‘_STAT_VER’ undeclared (first use in this function)
99 | #define INT_NEXT_STAT(a,b) NEXT_STAT64(_STAT_VER,a,b)
| ^~~~~~~~~

* link to upstream bug report, if any
none found

Steps to reproduce:
build released fakeroot from source with makepkg
PKGBUILD for version 1.25.3-1 retrieved from:
https://github.com/archlinux/svntogit-packages/tree/packages/fakeroot/trunk
This task depends upon

Closed by  Allan McRae (Allan)
Monday, 15 February 2021, 12:32 GMT
Reason for closing:  Fixed
Additional comments about closing:  fakeroot-1.25.3-2
Comment by loqs (loqs) - Sunday, 07 February 2021, 00:57 GMT
Possibly related https://github.com/bminor/glibc/commit/8ed005daf0ab03e142500324a34087ce179ae78e
Edit:
Attached patch defining _STAT_VER if it is not already defined. Package builds with patch applied. Not sure if this is the correct approach.
Comment by John (graysky) - Monday, 08 February 2021, 08:03 GMT
@vicencb - Have you reported upstream?
Comment by vicencb (vicencb) - Monday, 08 February 2021, 10:15 GMT
No. The package broke just by upgrading other packages in the system, so, i assumed the issue could be fakeroot itself or some other package.
As pointed out by @loqs, glibc is suspicious.
Comment by John (graysky) - Monday, 08 February 2021, 11:57 GMT
Agreed, just thought their upstream would want to have eyes on this as well.
Comment by loqs (loqs) - Monday, 08 February 2021, 21:53 GMT
How to contact upstream? I can only see how to file a pull request on [1], [2] looks to be for the Debian package or should I email Clint Adams?

[1] https://salsa.debian.org/clint/fakeroot
[2] https://tracker.debian.org/pkg/fakeroot

Edit:

Seems my patch worked for one person [3].

[3] https://forum.openwrt.org/t/unable-to-build-toolchain-fakeroot-fails-perhaps-others-after-it/87966
Comment by vicencb (vicencb) - Monday, 08 February 2021, 22:02 GMT
I've sent an email to fakeroot@packages.debian.org about 2 hours ago. No answer so far.

Edit:

@loqs your patch also works for me in buildroot. Thanks!
Comment by Bud (budrz89) - Tuesday, 09 February 2021, 05:57 GMT
The patch allowed the build for fakeroot to complete for me. However, when I try building and installing a test package, the files are owned by the user building it instead of root.

I'm not sure if it's glibc-2.33 or the patch used on the fakeroot build or both but after downgrading to glibc-2.32 and rebuilding and installing fakeroot (the patch wasn't needed this time), the files after building and installing the same test package were correctly owned by root.
Comment by loqs (loqs) - Tuesday, 09 February 2021, 18:23 GMT
@budrz89 I think that is another issue introduced by glibc 2.33 [1].

[1] https://sourceware.org/pipermail/binutils/2021-February/115252.html
Comment by Tomasz M. Nowak (tmn505) - Wednesday, 10 February 2021, 21:23 GMT
Well, Debian is the upstream, so to report:
https://www.debian.org/Bugs/Reporting.en.html
to view bugs:
https://bugs.debian.org/fakeroot
or contact authors directly, addresses at the bottom:
https://man.archlinux.org/man/core/fakeroot/fakeroot.1.en
Comment by loqs (loqs) - Wednesday, 10 February 2021, 23:33 GMT
Fedora encountered the issue in December [1] [2] and have not been able to fix it yet.

[1] https://bugzilla.redhat.com/show_bug.cgi?id=1889862#c13
[2] https://lists.fedoraproject.org/archives/list/devel%40lists.fedoraproject.org/message/SMQ3RYXEYTVZH6PLQMKNB3NM4XLPMNZO/
Edit:
fakechroot also FTBFS with glibc 2.33 due to the same issue.
Comment by Ilya Lipnitskiy (lipnitsk) - Thursday, 11 February 2021, 03:30 GMT
fakeroot builds (with a couple of warnings) and all unit tests pass on my machine after setting _STAT_VER to 0 or 1. fakechroot may be harder to fix, but can we fix fakeroot at least?

The patch based on this suggestion seems to apply to aarch64, x86, and x86_64:
https://lists.fedoraproject.org/archives/list/devel%40lists.fedoraproject.org/message/SMQ3RYXEYTVZH6PLQMKNB3NM4XLPMNZO/
Comment by Allan McRae (Allan) - Thursday, 11 February 2021, 11:23 GMT
That build gets fakeroot to build, but it is still horribly broken with the new system calls in glibc-2.33. Upstream unlikely to have a fix any time soon.
Comment by Ilya Lipnitskiy (lipnitsk) - Friday, 12 February 2021, 05:08 GMT
You are right. I have made some more changes to wrap the newly exported symbols. Seems a lot happier now. See attached.
Comment by Allan McRae (Allan) - Friday, 12 February 2021, 06:29 GMT
Thanks - I have made a merge request upstream. Hopefully they can verify these are good to go (they look fine to me, but I am not too familiar with the codebase).
Comment by Ilya Lipnitskiy (lipnitsk) - Sunday, 14 February 2021, 04:17 GMT
@Allan, FYI, I have made a new set of patches, styling my changes a bit differently, fixing a few more compiler warnings that may potentially affect functionality, and hoping to upstream an OpenWrt Mac OS portability patch. You may want to refresh the merge request with these. Or, I could register and open one myself.. I'll email these to Clint also.
Comment by Allan McRae (Allan) - Sunday, 14 February 2021, 04:33 GMT
@Ilya: probably better if you just register and make a merge request. That way you can change with any comments upstream. Thanks!
Comment by Ilya Lipnitskiy (lipnitsk) - Sunday, 14 February 2021, 04:56 GMT Comment by Allan McRae (Allan) - Monday, 15 February 2021, 12:32 GMT
fakeroot-1.25.3-2 in [testing] has the relevant patches applied.

Loading...