From e86152986c6e6c563ced037c91403318d5a8b447 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sat, 5 Aug 2023 21:40:29 +0200 Subject: [PATCH 01/12] glibc: 2.37-39 -> 2.38-0 Announcement: https://sourceware.org/pipermail/libc-alpha/2023-July/150524.html So far this looks surprisingly good, I managed to build the stdenv on `aarch64-linux` and got up to building `zfs` and `nix` on `x86_64-linux`. The patchset is still empty because the latest commit on the release branch is the one the 2.38 tag points to. I added an empty file though to keep things consistent. Also applied the new version of the DT_HASH fix from ArchLinux[1]. This one's a way easier version than before because it doesn't contain the autoconf changes, but only hardcodes the desired ld flags. It was already confirmed that this patch is sufficient to fix the underlying problem[2]. [1] https://gitlab.archlinux.org/archlinux/packaging/packages/glibc/-/commit/e54d98e2d1aae4930ecad9404ef12234922d9dfd#7b1bfda0391ff4c2662e04a5e193c37e233a0738 [2] https://github.com/ValveSoftware/Proton/issues/6051#issuecomment-1666055553 --- .../libraries/glibc/2.37-master.patch.gz | Bin 54452 -> 0 bytes .../libraries/glibc/2.38-master.patch.gz | Bin 0 -> 20 bytes pkgs/development/libraries/glibc/common.nix | 26 +-- .../libraries/glibc/reenable_DT_HASH.patch | 149 ++---------------- 4 files changed, 30 insertions(+), 145 deletions(-) delete mode 100644 pkgs/development/libraries/glibc/2.37-master.patch.gz create mode 100644 pkgs/development/libraries/glibc/2.38-master.patch.gz diff --git a/pkgs/development/libraries/glibc/2.37-master.patch.gz b/pkgs/development/libraries/glibc/2.37-master.patch.gz deleted file mode 100644 index 16a52753cbdfbd086a92236239ff257b7dff41ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54452 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 linuxHeaders != null; @@ -59,14 +59,14 @@ stdenv.mkDerivation ({ patches = [ /* No tarballs for stable upstream branch, only https://sourceware.org/git/glibc.git and using git would complicate bootstrapping. - $ git fetch --all -p && git checkout origin/release/2.37/master && git describe - glibc-2.37-39-g6529a7466c - $ git show --minimal --reverse glibc-2.37.. | gzip -9n --rsyncable - > 2.37-master.patch.gz + $ git fetch --all -p && git checkout origin/release/2.38/master && git describe + glibc-2.38 + $ git show --minimal --reverse glibc-2.38.. | gzip -9n --rsyncable - > 2.38-master.patch.gz To compare the archive contents zdiff can be used. - $ zdiff -u 2.37-master.patch.gz ../nixpkgs/pkgs/development/libraries/glibc/2.37-master.patch.gz + $ zdiff -u 2.38-master.patch.gz ../nixpkgs/pkgs/development/libraries/glibc/2.38-master.patch.gz */ - ./2.37-master.patch.gz + ./2.38-master.patch.gz /* Allow NixOS and Nix to handle the locale-archive. */ ./nix-locale-archive.patch @@ -89,10 +89,11 @@ stdenv.mkDerivation ({ ./0001-Revert-Remove-all-usage-of-BASH-or-BASH-in-installed.patch - /* Patch derived from archlinux (at the time of adding they're at 2.37), - https://github.com/archlinux/svntogit-packages/blob/packages/glibc/trunk/reenable_DT_HASH.patch + /* Patch derived from archlinux, + https://gitlab.archlinux.org/archlinux/packaging/packages/glibc/-/blob/e54d98e2d1aae4930ecad9404ef12234922d9dfd/reenable_DT_HASH.patch - See https://github.com/NixOS/nixpkgs/pull/188492#issuecomment-1233802991 for context. + See also https://github.com/ValveSoftware/Proton/issues/6051 + & https://github.com/NixOS/nixpkgs/pull/188492#issuecomment-1233802991 */ ./reenable_DT_HASH.patch ] @@ -135,6 +136,7 @@ stdenv.mkDerivation ({ "--enable-bind-now" (lib.withFeatureAs withLinuxHeaders "headers" "${linuxHeaders}/include") (lib.enableFeature profilingLibraries "profile") + "--enable-fortify-source" ] ++ lib.optionals (stdenv.hostPlatform.isx86 || stdenv.hostPlatform.isAarch64) [ # This feature is currently supported on # i386, x86_64 and x32 with binutils 2.29 or later, @@ -159,7 +161,7 @@ stdenv.mkDerivation ({ "libc_cv_as_needed=no" ] ++ lib.optional withGd "--with-gd" - ++ lib.optional (!withLibcrypt) "--disable-crypt"; + ++ lib.optional withLibcrypt "--enable-crypt"; makeFlags = (args.makeFlags or []) ++ [ "OBJCOPY=${stdenv.cc.targetPrefix}objcopy" diff --git a/pkgs/development/libraries/glibc/reenable_DT_HASH.patch b/pkgs/development/libraries/glibc/reenable_DT_HASH.patch index f828b011bd9f..87a2329d8240 100644 --- a/pkgs/development/libraries/glibc/reenable_DT_HASH.patch +++ b/pkgs/development/libraries/glibc/reenable_DT_HASH.patch @@ -1,145 +1,28 @@ -From e47de5cb2d4dbecb58f569ed241e8e95c568f03c Mon Sep 17 00:00:00 2001 -From: Florian Weimer -Date: Fri, 29 Apr 2022 16:37:51 +0200 -Subject: [PATCH] Do not use --hash-style=both for building glibc shared - objects +From 31915e55f9c34f6137ab1c5ac002375a2d5d4589 Mon Sep 17 00:00:00 2001 +From: Frederik Schwan +Date: Fri, 4 Aug 2023 15:19:57 +0200 +Subject: [PATCH] force --hash-style=both to keep compatibility with old niche + software -The comment indicates that --hash-style=both was used to maintain -compatibility with static dlopen, but we had many internal ABI -changes since then, so this compatiblity does not add value anymore. - -Reviewed-by: Carlos O'Donell --- - Makeconfig | 9 +++++++++ - Makerules | 7 +++++++ - config.make.in | 1 + - configure | 28 ++++++++++++++++++++++++++++ - configure.ac | 16 ++++++++++++++++ - 5 files changed, 61 insertions(+) + Makeconfig | 4 ++++ + 1 file changed, 4 insertions(+) -diff --git b/Makeconfig a/Makeconfig -index 760f14e92f..0aa5fb0099 100644 ---- b/Makeconfig -+++ a/Makeconfig -@@ -362,6 +362,15 @@ relro-LDFLAGS = -Wl,-z,relro +diff --git a/Makeconfig b/Makeconfig +index 77d7fd14df..2ae67c4beb 100644 +--- a/Makeconfig ++++ b/Makeconfig +@@ -378,6 +378,10 @@ relro-LDFLAGS = -Wl,-z,relro LDFLAGS.so += $(relro-LDFLAGS) LDFLAGS-rtld += $(relro-LDFLAGS) -+ifeq (yes,$(have-hash-style)) -+# For the time being we unconditionally use 'both'. At some time we -+# should declare statically linked code as 'out of luck' and compile -+# with --hash-style=gnu only. +hashstyle-LDFLAGS = -Wl,--hash-style=both +LDFLAGS.so += $(hashstyle-LDFLAGS) +LDFLAGS-rtld += $(hashstyle-LDFLAGS) -+endif + - ifeq (no,$(build-pie-default)) - pie-default = $(no-pie-ccflag) - else # build-pie-default -diff --git b/Makerules a/Makerules -index 354528b8c7..428464f092 100644 ---- b/Makerules -+++ a/Makerules -@@ -557,6 +557,13 @@ $(common-objpfx)shlib.lds: $(common-objpfx)config.make $(..)Makerules - -Wl,--verbose 2>/dev/null | \ - sed > $@T \ - -e '/^=========/,/^=========/!d;/^=========/d' \ -+ $(if $(filter yes,$(have-hash-style)), \ -+ -e 's/^.*\.gnu\.hash[ ]*:.*$$/ .note.ABI-tag : { *(.note.ABI-tag) } &/' \ -+ -e '/^[ ]*\.hash[ ]*:.*$$/{h;d;}' \ -+ -e '/DATA_SEGMENT_ALIGN/{H;g}' \ -+ , \ -+ -e 's/^.*\.hash[ ]*:.*$$/ .note.ABI-tag : { *(.note.ABI-tag) } &/' \ -+ ) \ - -e 's/^.*\*(\.dynbss).*$$/& \ - PROVIDE(__start___libc_freeres_ptrs = .); \ - *(__libc_freeres_ptrs) \ -diff --git b/config.make.in a/config.make.in -index fff4c78dd0..bf728c71c0 100644 ---- b/config.make.in -+++ a/config.make.in -@@ -70,6 +70,7 @@ have-libcap = @have_libcap@ - have-cc-with-libunwind = @libc_cv_cc_with_libunwind@ - fno-unit-at-a-time = @fno_unit_at_a_time@ - bind-now = @bindnow@ -+have-hash-style = @libc_cv_hashstyle@ - use-default-link = @use_default_link@ - have-cxx-thread_local = @libc_cv_cxx_thread_local@ - have-loop-to-function = @libc_cv_cc_loop_to_function@ -diff --git b/configure a/configure -index 716dc041b6..5a730dc5fc 100755 ---- b/configure -+++ a/configure -@@ -622,6 +622,7 @@ libc_cv_cc_nofma - libc_cv_mtls_dialect_gnu2 - fno_unit_at_a_time - libc_cv_has_glob_dat -+libc_cv_hashstyle - libc_cv_fpie - libc_cv_z_execstack - ASFLAGS_config -@@ -6193,6 +6194,33 @@ $as_echo "$libc_cv_fpie" >&6; } - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --hash-style option" >&5 -+$as_echo_n "checking for --hash-style option... " >&6; } -+if ${libc_cv_hashstyle+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat > conftest.c <&5 -+ (eval $ac_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; }; } -+then -+ libc_cv_hashstyle=yes -+else -+ libc_cv_hashstyle=no -+fi -+rm -f conftest* -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_hashstyle" >&5 -+$as_echo "$libc_cv_hashstyle" >&6; } -+ -+ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLOB_DAT reloc" >&5 - $as_echo_n "checking for GLOB_DAT reloc... " >&6; } - if ${libc_cv_has_glob_dat+:} false; then : -diff --git b/configure.ac a/configure.ac -index d08ad4d64e..a045f6608e 100644 ---- b/configure.ac -+++ a/configure.ac -@@ -1360,6 +1360,22 @@ LIBC_TRY_CC_OPTION([-fpie], [libc_cv_fpie=yes], [libc_cv_fpie=no]) - - AC_SUBST(libc_cv_fpie) - -+AC_CACHE_CHECK(for --hash-style option, -+ libc_cv_hashstyle, [dnl -+cat > conftest.c <&AS_MESSAGE_LOG_FD]) -+then -+ libc_cv_hashstyle=yes -+else -+ libc_cv_hashstyle=no -+fi -+rm -f conftest*]) -+AC_SUBST(libc_cv_hashstyle) -+ - AC_CACHE_CHECK(for GLOB_DAT reloc, - libc_cv_has_glob_dat, [dnl - cat > conftest.c < Date: Sat, 19 Aug 2023 13:32:42 +0200 Subject: [PATCH 02/12] direwolf: fix build w/ glibc-2.38 Failing Hydra build: https://hydra.nixos.org/build/230546596 --- pkgs/applications/radio/direwolf/default.nix | 2 + .../radio/direwolf/fix-strlcpy-usage.patch | 89 +++++++++++++++++++ 2 files changed, 91 insertions(+) create mode 100644 pkgs/applications/radio/direwolf/fix-strlcpy-usage.patch diff --git a/pkgs/applications/radio/direwolf/default.nix b/pkgs/applications/radio/direwolf/default.nix index d3c01aff7695..463ac0b50af9 100644 --- a/pkgs/applications/radio/direwolf/default.nix +++ b/pkgs/applications/radio/direwolf/default.nix @@ -14,6 +14,8 @@ stdenv.mkDerivation rec { sha256 = "0xmz64m02knbrpasfij4rrq53ksxna5idxwgabcw4n2b1ig7pyx5"; }; + patches = [ ./fix-strlcpy-usage.patch ]; + nativeBuildInputs = [ cmake ]; strictDeps = true; diff --git a/pkgs/applications/radio/direwolf/fix-strlcpy-usage.patch b/pkgs/applications/radio/direwolf/fix-strlcpy-usage.patch new file mode 100644 index 000000000000..9f43415114cb --- /dev/null +++ b/pkgs/applications/radio/direwolf/fix-strlcpy-usage.patch @@ -0,0 +1,89 @@ +strlcpy is now part of glibc, so there's absolutely no reason for a custom implementation, especially +one with printf debugging. Hence, removing all of that. + +See also https://hydra.nixos.org/build/230546596 +See glibc commit 454a20c8756c9c1d55419153255fc7692b3d2199 + +diff --git a/external/misc/strlcpy.c b/external/misc/strlcpy.c +index ff18800..b1cb443 100644 +--- a/external/misc/strlcpy.c ++++ b/external/misc/strlcpy.c +@@ -56,65 +56,3 @@ + + #include "textcolor.h" + +-/* +- * Copy src to string dst of size siz. At most siz-1 characters +- * will be copied. Always NUL terminates (unless siz == 0). +- * Returns strlen(src); if retval >= siz, truncation occurred. +- */ +- +-#if DEBUG_STRL +-size_t strlcpy_debug(char *__restrict__ dst, const char *__restrict__ src, size_t siz, const char *file, const char *func, int line) +-#else +-size_t strlcpy_debug(char *__restrict__ dst, const char *__restrict__ src, size_t siz) +-#endif +-{ +- char *d = dst; +- const char *s = src; +- size_t n = siz; +- size_t retval; +- +-#if DEBUG_STRL +- if (dst == NULL) { +- text_color_set (DW_COLOR_ERROR); +- dw_printf ("ERROR: strlcpy dst is NULL. (%s %s %d)\n", file, func, line); +- return (0); +- } +- if (src == NULL) { +- text_color_set (DW_COLOR_ERROR); +- dw_printf ("ERROR: strlcpy src is NULL. (%s %s %d)\n", file, func, line); +- return (0); +- } +- if (siz == 1 || siz == 4) { +- text_color_set (DW_COLOR_ERROR); +- dw_printf ("Suspicious strlcpy siz. Is it using sizeof a pointer variable? (%s %s %d)\n", file, func, line); +- } +-#endif +- +- /* Copy as many bytes as will fit */ +- if (n != 0 && --n != 0) { +- do { +- if ((*d++ = *s++) == 0) +- break; +- } while (--n != 0); +- } +- +- /* Not enough room in dst, add NUL and traverse rest of src */ +- if (n == 0) { +- if (siz != 0) +- *d = '\0'; /* NUL-terminate dst */ +- while (*s++) +- ; +- } +- +- retval = s - src - 1; /* count does not include NUL */ +- +-#if DEBUG_STRL +- if (retval >= siz) { +- text_color_set (DW_COLOR_ERROR); +- dw_printf ("WARNING: strlcpy result length %d exceeds maximum length %d. (%s %s %d)\n", +- (int)retval, (int)(siz-1), file, func, line); +- } +-#endif +- return (retval); +-} +- +diff --git a/src/direwolf.h b/src/direwolf.h +index efc329b..22eb748 100644 +--- a/src/direwolf.h ++++ b/src/direwolf.h +@@ -294,7 +294,7 @@ char *strcasestr(const char *S, const char *FIND); + #define HAVE_STRLCPY 1 + + +-#define DEBUG_STRL 1 ++#define DEBUG_STRL 0 + + #if DEBUG_STRL + From 5497c7ac5df57e4c472a307f62e0072a3ca6c3a1 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sat, 19 Aug 2023 13:41:38 +0200 Subject: [PATCH 03/12] root: fix build w/ glibc-2.38 Failing Hydra build: https://hydra.nixos.org/build/230518136 --- pkgs/applications/science/misc/root/default.nix | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pkgs/applications/science/misc/root/default.nix b/pkgs/applications/science/misc/root/default.nix index 6dc630181be2..993bc26bba28 100644 --- a/pkgs/applications/science/misc/root/default.nix +++ b/pkgs/applications/science/misc/root/default.nix @@ -2,6 +2,7 @@ , lib , callPackage , fetchurl +, fetchpatch , makeWrapper , cmake , coreutils @@ -109,6 +110,18 @@ stdenv.mkDerivation rec { patches = [ ./sw_vers.patch + # glibc >=2.38 already has strlcat implemented. + # merged upstream, remove on next package bump. + (fetchpatch { + url = "https://github.com/root-project/root/commit/8fb0e35446ed67c9d56639b4708c8f05459b7f84.patch"; + hash = "sha256-7EabmYanqlQsYSQsi+S9eWs1v1pY6MncopL420Y3D4w="; + }) + ] ++ lib.optionals (python.pkgs.pythonAtLeast "3.11") [ + # Fix build against Python 3.11 + (fetchpatch { + url = "https://github.com/root-project/root/commit/484deb056dacf768aba4954073b41105c431bffc.patch"; + hash = "sha256-4qur2e3SxMIPgOg4IjlvuULR2BObuP7xdvs+LmNT2/s="; + }) ]; preConfigure = '' From 774a808ec9336326107de4096a07c22ed9c95a8e Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sat, 19 Aug 2023 14:14:34 +0200 Subject: [PATCH 04/12] kvmtool: fix build w/ glibc-2.38 Failing Hydra build: https://hydra.nixos.org/build/230541621 --- .../virtualization/kvmtool/default.nix | 2 ++ .../kvmtool/strlcpy-glibc-2.38-fix.patch | 25 +++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 pkgs/applications/virtualization/kvmtool/strlcpy-glibc-2.38-fix.patch diff --git a/pkgs/applications/virtualization/kvmtool/default.nix b/pkgs/applications/virtualization/kvmtool/default.nix index e7429f3312da..9aeb21e3f06a 100644 --- a/pkgs/applications/virtualization/kvmtool/default.nix +++ b/pkgs/applications/virtualization/kvmtool/default.nix @@ -10,6 +10,8 @@ stdenv.mkDerivation { sha256 = "sha256-wpc5DfHnui0lBVH4uOq6a7pXVUZStjNLRvauu6QpRvE="; }; + patches = [ ./strlcpy-glibc-2.38-fix.patch ]; + buildInputs = lib.optionals stdenv.hostPlatform.isAarch64 [ dtc ]; enableParallelBuilding = true; diff --git a/pkgs/applications/virtualization/kvmtool/strlcpy-glibc-2.38-fix.patch b/pkgs/applications/virtualization/kvmtool/strlcpy-glibc-2.38-fix.patch new file mode 100644 index 000000000000..457f8e3cff58 --- /dev/null +++ b/pkgs/applications/virtualization/kvmtool/strlcpy-glibc-2.38-fix.patch @@ -0,0 +1,25 @@ +Manually tell the compiler that strlcpy exists. The `try-build` function seems +somewhat broken, i.e. any code that I try to pass to it doesn't link because of an +"undefined reference to main" error (and some more quoting issues with newlines being +swalloed). + +Because both musl and glibc seemt o support strlcpy nowadays, I decided to just skip the +possibly broken feature-check and hardcode that it exists. + +diff --git a/Makefile b/Makefile +index ed2414b..37be9cd 100644 +--- a/Makefile ++++ b/Makefile +@@ -239,10 +239,8 @@ endif + # On a given system, some libs may link statically, some may not; so, check + # both and only build those that link! + +-ifeq ($(call try-build,$(SOURCE_STRLCPY),$(CFLAGS),$(LDFLAGS)),y) +- CFLAGS_DYNOPT += -DHAVE_STRLCPY +- CFLAGS_STATOPT += -DHAVE_STRLCPY +-endif ++CFLAGS_DYNOPT += -DHAVE_STRLCPY ++CFLAGS_STATOPT += -DHAVE_STRLCPY + + ifeq ($(call try-build,$(SOURCE_BFD),$(CFLAGS),$(LDFLAGS) -lbfd -static),y) + CFLAGS_STATOPT += -DCONFIG_HAS_BFD From b6a5be45845957d766997a9cf1b18fec2b0868f1 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sat, 19 Aug 2023 14:28:10 +0200 Subject: [PATCH 05/12] brickd: fix build w/ glibc-2.38 Since glibc-2.38[1], `strcasestr(3)` is available by default, not just when using _GNU_SOURCE. This means that the check whether this function is available in `brickd`'s build is bogus now since it bases this decision on __APPLE__ and _GNU_SOURCE rather than __GLIBC__. Failing Hydra build: https://hydra.nixos.org/build/230504252 [1] upstream commit 30e3ca78f92be44f46851557f54b47e789bd3416 --- pkgs/servers/brickd/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/servers/brickd/default.nix b/pkgs/servers/brickd/default.nix index 3977521a6f52..d3cf54114c3b 100644 --- a/pkgs/servers/brickd/default.nix +++ b/pkgs/servers/brickd/default.nix @@ -30,10 +30,11 @@ stdenv.mkDerivation { ''; buildPhase = '' - export # build the brickd binary mkdir src/daemonlib cp -r ${daemonlib}/* src/daemonlib + substituteInPlace src/daemonlib/utils.{c,h} \ + --replace "_GNU_SOURCE" "__GLIBC__" cd src/brickd make From a44542f7f6d6df5968cb4291a9372808a1034995 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sat, 19 Aug 2023 14:36:18 +0200 Subject: [PATCH 06/12] mamba: mark as broken Failing Hydra build: https://hydra.nixos.org/build/230518081 So apparently `vasprintf`, `asprintf` are now available by default, not just with `_GNU_SOURCE` and now `mamba` (or to be precise, its dependency `xputty`) fails like this: ../xputty/xfilepicker.c:225:5: error: format not a string literal and no format arguments [-Werror=format-security] 225 | asprintf(&filepicker->path, path); | ^~~~~~~~ It seems as if now that these functions are available by default, the format-security check from gcc actually works. --- pkgs/applications/audio/mamba/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/applications/audio/mamba/default.nix b/pkgs/applications/audio/mamba/default.nix index 679062fccf20..fcfafbdb4bbf 100644 --- a/pkgs/applications/audio/mamba/default.nix +++ b/pkgs/applications/audio/mamba/default.nix @@ -37,5 +37,8 @@ stdenv.mkDerivation rec { license = licenses.bsd0; maintainers = with maintainers; [ magnetophon orivej ]; platforms = platforms.linux; + # 2023-08-19, `-Werror=format-security` fails for xputty + # reported as https://github.com/brummer10/libxputty/issues/12 + broken = true; }; } From 25b89fa9476a7b011ed6582d8e36d9a4fb4f8411 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sat, 19 Aug 2023 14:50:47 +0200 Subject: [PATCH 07/12] rset: mark as broken Failing Hydra build: https://hydra.nixos.org/build/230560459 Pretty outdated already and now having trouble with latest glibc. Since the patches don't apply anymore and the currently used tag is almost 2.5 years old, it's IMHO reasonable to consider it broken until somebody steps up to take care of this package. --- pkgs/tools/admin/rset/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/tools/admin/rset/default.nix b/pkgs/tools/admin/rset/default.nix index f7c00fffb1cc..5406a82f3bda 100644 --- a/pkgs/tools/admin/rset/default.nix +++ b/pkgs/tools/admin/rset/default.nix @@ -44,5 +44,10 @@ stdenv.mkDerivation rec { license = licenses.isc; platforms = platforms.unix; maintainers = with maintainers; [ cstrahan ]; + # 2023-08-19, fails to compile with glibc-2.38 because of strlcpy. + # At the time of writing, this was 4 minors behind already and + # the `paths.patch` didn't apply anymore, so this is now considered + # broken until somebody cares enough to fix and upgrade this. + broken = true; }; } From 8c66a65495aa851bfb1d5e3869f109efedf3f0ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Sun, 20 Aug 2023 09:21:21 +0200 Subject: [PATCH 08/12] rapidjson: skip a regressed test I don't think this is serious. Surely it doesn't indicate a bug in glibc. And if it indicates a non-test bug in rapidjson, it's not a new one and probably won't be worse with new glibc. --- pkgs/development/libraries/rapidjson/default.nix | 2 ++ .../libraries/rapidjson/test-skip-valgrind.diff | 7 +++++++ 2 files changed, 9 insertions(+) create mode 100644 pkgs/development/libraries/rapidjson/test-skip-valgrind.diff diff --git a/pkgs/development/libraries/rapidjson/default.nix b/pkgs/development/libraries/rapidjson/default.nix index f73e01b64764..b9a29c65eba0 100644 --- a/pkgs/development/libraries/rapidjson/default.nix +++ b/pkgs/development/libraries/rapidjson/default.nix @@ -29,6 +29,8 @@ stdenv.mkDerivation rec { url = "https://git.alpinelinux.org/aports/plain/community/rapidjson/do-not-include-gtest-src-dir.patch?id=9e5eefc7a5fcf5938a8dc8a3be8c75e9e6809909"; hash = "sha256-BjSZEwfCXA/9V+kxQ/2JPWbc26jQn35CfN8+8NW24s4="; }) + # One of these three tests reports memcpy overlap after update to glibc-2.38 + ./test-skip-valgrind.diff ]; postPatch = '' diff --git a/pkgs/development/libraries/rapidjson/test-skip-valgrind.diff b/pkgs/development/libraries/rapidjson/test-skip-valgrind.diff new file mode 100644 index 000000000000..a791d88699ff --- /dev/null +++ b/pkgs/development/libraries/rapidjson/test-skip-valgrind.diff @@ -0,0 +1,7 @@ +--- a/test/unittest/CMakeLists.txt ++++ b/test/unittest/CMakeLists.txt +@@ -82,3 +81,0 @@ +- add_test(NAME valgrind_unittest +- COMMAND valgrind --leak-check=full --error-exitcode=1 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/unittest --gtest_filter=-SIMD.* +- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/bin) + From 8348b18c096d60e5b5821157f7e8df781330fed4 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sun, 24 Sep 2023 15:13:26 +0200 Subject: [PATCH 09/12] glibc: 2.38-0 -> 2.38-23 Fixes CVE-2023-4806 & CVE-2023-4527. --- .../libraries/glibc/2.38-master.patch.gz | Bin 20 -> 32759 bytes pkgs/development/libraries/glibc/common.nix | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/glibc/2.38-master.patch.gz b/pkgs/development/libraries/glibc/2.38-master.patch.gz index d4b9926df0b7defceb6caf0b474c4a190c5ca8f0..4eb3c7b2cdb321e7b3117eb8d234a4279837e662 100644 GIT binary patch literal 32759 zcmV)3K+C@$iwFP!000021Dsh|bK5u)e%G()t*zQfmMHPi?PKhfos4UojBB0jPUVFK zf}n^AMXGq%)}->^rvXqRMUk?yE?WoC-RSe{CQPH%il^YtCX^C`ja+YPm=4p~&}9a* zruxkAbklJRHeqzgS~pqhNAVoq2T{yP2>)Yz#bUVdUgU@Cn7KYl`!rfzwQfnu<^b?H zV{nr#!2m;_o0GXQ0#i3F=<24fw^~R6N$LjNnZx~R9Y@a$(j?VlMuIg-eL!LO&K(}` zbOSFOmy#%pDFZKxQ|@t!yHO|w$(P?l_^?=j!*HL0Vf5hs@dhZWyCUCExWD6MF6@pW zFC-S5Bo!1=kdt{HT9@#@81MwbD20H;O9m{AvZW90DL9*yCBVZZWyFQZgU6fCzuF&f z{!lxez7+JHzoJkS;cOsFc(??z6)q3NowDG5VN09(ERHv@=JXqC>&4MZI79?(Wau6> zb$4Q6tV}u`O-;+4&1Ped5IPx-$7435CYy9xEth*9Xxb9F$Ur%JQ1)@3f>XcV;-Sl4 z!L!T}osGzF*za58*^p6pN<0jxJ{}HRnx-|$ZFRfdM%mZbpqazo7`pg6f$M8&@&l(V zOc;BJ=7oCEhnJbI8Y6{`zBP1nhMFnD=+=`X{qAH~Z-phP8u zt3JTlpare&KY2)l%w=#9aP(r*_pe$|ETW=3I$T5LD~l@<1Q8XB!itfO`gcc0&oIyo zc#gOWE|VnCmfz0S9XuYWPvSEuZQ$znmIj!IX%>ef-Xw;z&MGIFcFu*)p392VYIPgQ zw3B4yQ)34XPvlRmwckjbtw>0Hjvf>%{cpRKYqD}1L1HvF_4#NA68aV-UZ>-^ ztRyU6tY$0>2@P2)%OCLf=Ho2{Y)R+_=sHVEW%LxS*mg@$EgrulKtdP%&6>r}Jc;52 zeDbW&!A5TG+VD<)o#OGft{b=S6i_ilhX}s1IO-v3mY{Q!EJ#I3^AP^Rb>?bOmgcHq z$tq2sNszHzqt5~fumq@&-00~zax;o3B94v%7hcFlAjzSL1a+1YJi-GlAs*7NuxHL*&@yK; zhsT($PykZK1U_Oik@cFu#k#cIU**e1przpqVNwY>rGZpnYm>NaoeVGy25z898+hnp zu?l=?+{^)tx>e({CFnIG+!_%y%J3EGUyVaiEAp!H zUkR*kdtrW%IBIYPpCXW11;adH+Z&d4a<~Nn(`{iiT!H7uXi1p99x)@vb8ej#j3q4g!VU4$ zEBx6L@$89E^+Z?%^a>_%TH*66Ax$wGw;i!Bz5E5$%B9;CToSdPgH0X*m!*ggiHd=g z@LjzfO@l4T34YHhE56THPxXI|5c32fl{nN$(M!f`eWrHXg=>3?p(hHjAuwBKh}!xG z3N9V?z4(Yd0Y?;s^0un&(nf_2btEE;g(dgOlAEWe-xu@aq_?M%Zk_x#rFDd|7#iB> z8@Rdx)9k>%M4&yd16?rAPcm&=;-^`6618dn1hI9TxG+;#Da`YJ%DmG}JK3z0O*(2$ zW7s-ymdCVgty~p(EO`1%Vsk)P)n#iU*s1E>=!h_)CH$!bh!QTv{

}nlb|vK!jB%-2L{OxBRlXg#yi^|=niJO3 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 OLGllK*Y}m>ngIYyyS>r? literal 20 Scmb2|=3oE;CT3 2.38-master.patch.gz To compare the archive contents zdiff can be used. From e86dbb20f7a2dc7401a5a7a3db6da70ff3d0a951 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Sun, 24 Sep 2023 16:41:22 +0200 Subject: [PATCH 10/12] nixos/rl-2311: mention glibc 2.37 -> 2.38 bump --- nixos/doc/manual/release-notes/rl-2311.section.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nixos/doc/manual/release-notes/rl-2311.section.md b/nixos/doc/manual/release-notes/rl-2311.section.md index efb0f17873ea..135d4d5a6a6f 100644 --- a/nixos/doc/manual/release-notes/rl-2311.section.md +++ b/nixos/doc/manual/release-notes/rl-2311.section.md @@ -24,6 +24,8 @@ - `root` and `wheel` are not given the ability to set (or preserve) arbitrary environment variables. +- [glibc](https://www.gnu.org/software/libc/) has been updated from version 2.37 to 2.38, see [the release notes](https://sourceware.org/glibc/wiki/Release/2.38) for what was changed. + [`sudo-rs`]: https://github.com/memorysafety/sudo-rs/ ## New Services {#sec-release-23.11-new-services} From 0668ba303ad04673bf542e134c1a8740551d2c0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Wed, 27 Sep 2023 13:54:13 +0200 Subject: [PATCH 11/12] libredwg: fix missing include with glibc-2.38 https://hydra.nixos.org/build/236161770/nixlog/4/tail --- pkgs/development/libraries/libredwg/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/development/libraries/libredwg/default.nix b/pkgs/development/libraries/libredwg/default.nix index 58a701bc15cc..9f530271771a 100644 --- a/pkgs/development/libraries/libredwg/default.nix +++ b/pkgs/development/libraries/libredwg/default.nix @@ -34,6 +34,8 @@ stdenv.mkDerivation rec { in '' # avoid git dependency cp ${printVersion} build-aux/git-version-gen + # failing to build otherwise since glibc-2.38 + sed '1i#include ' -i programs/dwg2SVG.c ''; preConfigure = lib.optionalString (stdenv.isDarwin && enablePython) '' From e016224a79188a353b1ba046205906da41cce8de Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Wed, 27 Sep 2023 14:36:44 +0200 Subject: [PATCH 12/12] swiftPackages.Foundation: fix build w/ glibc-2.38 Failing Hydra build: https://hydra.nixos.org/build/236210473 --- .../development/compilers/swift/foundation/default.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkgs/development/compilers/swift/foundation/default.nix b/pkgs/development/compilers/swift/foundation/default.nix index efb35bd74c9f..b0da48c68a95 100644 --- a/pkgs/development/compilers/swift/foundation/default.nix +++ b/pkgs/development/compilers/swift/foundation/default.nix @@ -5,6 +5,7 @@ { lib , stdenv +, fetchpatch , callPackage , cmake , ninja @@ -23,6 +24,15 @@ in stdenv.mkDerivation { inherit (sources) version; src = sources.swift-corelibs-foundation; + patches = [ + # from https://github.com/apple/swift-corelibs-foundation/pull/4811 + # fix build with glibc >=2.38 + (fetchpatch { + url = "https://github.com/apple/swift-corelibs-foundation/commit/47260803a108c6e0d639adcebeed3ac6a76e8bcd.patch"; + hash = "sha256-1JUSQW86IHKkBZqxvpk0P8zcSKntzOTNlMoGBfgeT4c="; + }) + ]; + outputs = [ "out" "dev" ]; nativeBuildInputs = [ cmake ninja swift ];