Support building glibc in a mock chroot using older systemd-nspawn (#1869030).
Resolves: #1869030
This commit is contained in:
parent
b1869f947a
commit
b8f476de79
25
glibc-rhbz1869030-faccessat2-eperm.patch
Normal file
25
glibc-rhbz1869030-faccessat2-eperm.patch
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
With older systemd-nspawn the faccessat2 syscall was denied but
|
||||||
|
instead of returning ENOSYS it returned EPERM. This has since
|
||||||
|
been corrected in upstream systemd-nsapwn, but with older builders
|
||||||
|
that may have older nspawn the Fedora Rawhide glibc should fall
|
||||||
|
back to faccessat when it sees ENOSYS *or* EPERM. This is a
|
||||||
|
Fedora Rawhide-only patch that should be removed before the next
|
||||||
|
release.
|
||||||
|
|
||||||
|
diff --git a/sysdeps/unix/sysv/linux/faccessat.c b/sysdeps/unix/sysv/linux/faccessat.c
|
||||||
|
index 56cb6dcc8b4d58d3..5de75032bbc93a2c 100644
|
||||||
|
--- a/sysdeps/unix/sysv/linux/faccessat.c
|
||||||
|
+++ b/sysdeps/unix/sysv/linux/faccessat.c
|
||||||
|
@@ -34,7 +34,11 @@ faccessat (int fd, const char *file, int mode, int flag)
|
||||||
|
#if __ASSUME_FACCESSAT2
|
||||||
|
return ret;
|
||||||
|
#else
|
||||||
|
- if (ret == 0 || errno != ENOSYS)
|
||||||
|
+ /* Fedora-specific workaround:
|
||||||
|
+ As a workround for a broken systemd-nspawn that returns
|
||||||
|
+ EPERM when a syscall is not allowed instead of ENOSYS
|
||||||
|
+ we must check for EPERM here and fall back to faccessat. */
|
||||||
|
+ if (ret == 0 || !(errno == ENOSYS || errno == EPERM))
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
if (flag & ~(AT_SYMLINK_NOFOLLOW | AT_EACCESS))
|
@ -96,7 +96,7 @@
|
|||||||
Summary: The GNU libc libraries
|
Summary: The GNU libc libraries
|
||||||
Name: glibc
|
Name: glibc
|
||||||
Version: %{glibcversion}
|
Version: %{glibcversion}
|
||||||
Release: 3%{?dist}
|
Release: 4%{?dist}
|
||||||
|
|
||||||
# In general, GPLv2+ is used by programs, LGPLv2+ is used for
|
# In general, GPLv2+ is used by programs, LGPLv2+ is used for
|
||||||
# libraries.
|
# libraries.
|
||||||
@ -169,6 +169,7 @@ Patch23: glibc-python3.patch
|
|||||||
Patch29: glibc-fedora-nsswitch.patch
|
Patch29: glibc-fedora-nsswitch.patch
|
||||||
Patch30: glibc-deprecated-selinux-makedb.patch
|
Patch30: glibc-deprecated-selinux-makedb.patch
|
||||||
Patch31: glibc-deprecated-selinux-nscd.patch
|
Patch31: glibc-deprecated-selinux-nscd.patch
|
||||||
|
Patch32: glibc-rhbz1869030-faccessat2-eperm.patch
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
# Continued list of core "glibc" package information:
|
# Continued list of core "glibc" package information:
|
||||||
@ -2019,6 +2020,9 @@ fi
|
|||||||
%files -f compat-libpthread-nonshared.filelist -n compat-libpthread-nonshared
|
%files -f compat-libpthread-nonshared.filelist -n compat-libpthread-nonshared
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Aug 20 2020 Carlos O'Donell <carlos@redhat.com> - 2.32.9000-4
|
||||||
|
- Support building glibc in a mock chroot using older systemd-nspawn (#1869030).
|
||||||
|
|
||||||
* Tue Aug 18 2020 Carlos O'Donell <carlos@redhat.com> - 2.32.9000-3
|
* Tue Aug 18 2020 Carlos O'Donell <carlos@redhat.com> - 2.32.9000-3
|
||||||
- Suggest installing minimal localization e.g. C, POSIX, C.UTF-8.
|
- Suggest installing minimal localization e.g. C, POSIX, C.UTF-8.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user