From 2070808c4bfcd8c73e57530d78441bb4cc1c3a8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Xaver=20H=C3=B6rl?= Date: Wed, 23 Dec 2020 15:52:33 +0100 Subject: [PATCH 01/58] linux/kernel/manual-config: prevent chmod errors when there is no arch specific Makefile In such cases the glob pattern might not match anything and chmod will complain about the missing argument. --- pkgs/os-specific/linux/kernel/manual-config.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix index 3bdb8c4f2973..c5ab3e413791 100644 --- a/pkgs/os-specific/linux/kernel/manual-config.nix +++ b/pkgs/os-specific/linux/kernel/manual-config.nix @@ -249,8 +249,7 @@ let find . -type f -name '*.lds' -print0 | xargs -0 -r chmod u-w # Keep root and arch-specific Makefiles - chmod u-w Makefile - chmod u-w arch/$arch/Makefile* + chmod u-w Makefile arch/"$arch"/Makefile* # Keep whole scripts dir chmod u-w -R scripts From 098c63da60289e136e73b27856680ec90506cbac Mon Sep 17 00:00:00 2001 From: Bruce Toll <4109762+tollb@users.noreply.github.com> Date: Thu, 24 Jun 2021 11:16:04 -0400 Subject: [PATCH 02/58] valgrind: 3.16.1 -> 3.17.0 Version 3.17.0 contains support for sched_getattr and sched_setattr. This fixes an issue where the following messages can be logged: WARNING: unhandled amd64-linux syscall 315 See: https://bugs.kde.org/show_bug.cgi?id=369029 In addition to the version bump, this commit enables doCheck (as the tests now pass) and provides a separate pname and version. The upstream 3.17.0 also reorganized the output, placing the default.supp file in libexec rather than lib. The postInstall hook was adjusted accordingly. A patch file which has not been used since upgrade to 3.15.0 in 2019 was also removed. --- .../valgrind/coregrind-makefile-race.patch | 41 ------------------- .../tools/analysis/valgrind/default.nix | 8 ++-- 2 files changed, 4 insertions(+), 45 deletions(-) delete mode 100644 pkgs/development/tools/analysis/valgrind/coregrind-makefile-race.patch diff --git a/pkgs/development/tools/analysis/valgrind/coregrind-makefile-race.patch b/pkgs/development/tools/analysis/valgrind/coregrind-makefile-race.patch deleted file mode 100644 index cd09f0edff37..000000000000 --- a/pkgs/development/tools/analysis/valgrind/coregrind-makefile-race.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 7820fc268fae4353118b6355f1d4b9e1b7eeebec Mon Sep 17 00:00:00 2001 -From: Philippe Waroquiers -Date: Sun, 28 Oct 2018 18:35:11 +0100 -Subject: [PATCH 1/1] Fix dependencies between libcoregrind*.a and - *m_main.o/*m_libcsetjmp.o - -The primary and secondary coregrind libraries must be updated -when m_main.c or m_libcsetjmp.c are changed. - -A dependency was missing between libcoregrind*.a and libnolto_coregrind*.a, -and so tools were not relinked when m_main.c or m_libcsetjmp.c were -changed. ---- - coregrind/Makefile.am | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/coregrind/Makefile.am b/coregrind/Makefile.am -index 914a270..8de1996 100644 ---- a/coregrind/Makefile.am -+++ b/coregrind/Makefile.am -@@ -511,6 +511,8 @@ libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS += \ - endif - libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_LIBADD = \ - $(libnolto_coregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_OBJECTS) -+libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_DEPENDENCIES = \ -+ libnolto_coregrind-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a - - if VGCONF_HAVE_PLATFORM_SEC - libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = \ -@@ -531,6 +533,8 @@ libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS += \ - endif - libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_LIBADD = \ - $(libnolto_coregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_OBJECTS) -+libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_DEPENDENCIES = \ -+ libnolto_coregrind-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a - endif - - #---------------------------------------------------------------------------- --- -2.9.3 - diff --git a/pkgs/development/tools/analysis/valgrind/default.nix b/pkgs/development/tools/analysis/valgrind/default.nix index 5a787d9c3f85..5d747317e453 100644 --- a/pkgs/development/tools/analysis/valgrind/default.nix +++ b/pkgs/development/tools/analysis/valgrind/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "valgrind"; - version = "3.16.1"; + version = "3.17.0"; src = fetchurl { url = "https://sourceware.org/pub/${pname}/${pname}-${version}.tar.bz2"; - sha256 = "1jik19rcd34ip8a5c9nv5wfj8k8maqb8cyclr4xhznq2gcpkl7y9"; + sha256 = "18l5jbk301j3462gipqn9bkfx44mdmwn0pwr73r40gl1irkfqfmd"; }; outputs = [ "out" "dev" "man" "doc" ]; @@ -54,10 +54,10 @@ stdenv.mkDerivation rec { lib.optional (stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "x86_64-darwin") "--enable-only64bit" ++ lib.optional stdenv.hostPlatform.isDarwin "--with-xcodedir=${xnu}/include"; - doCheck = false; # fails + doCheck = true; postInstall = '' - for i in $out/lib/valgrind/*.supp; do + for i in $out/libexec/valgrind/*.supp; do substituteInPlace $i \ --replace 'obj:/lib' 'obj:*/lib' \ --replace 'obj:/usr/X11R6/lib' 'obj:*/lib' \ From 1e8752a1500e7ccea5710c79defbeca2911fe80c Mon Sep 17 00:00:00 2001 From: Artturin Date: Sun, 13 Jun 2021 01:25:45 +0300 Subject: [PATCH 03/58] qt5: add at-spi2-core to qtbase --- pkgs/development/libraries/qt-5/modules/qtbase.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/qt-5/modules/qtbase.nix b/pkgs/development/libraries/qt-5/modules/qtbase.nix index 04a89558c3d0..e35a9bd508c5 100644 --- a/pkgs/development/libraries/qt-5/modules/qtbase.nix +++ b/pkgs/development/libraries/qt-5/modules/qtbase.nix @@ -11,7 +11,7 @@ , libXcursor, libXext, libXi, libXrender, libinput, libjpeg, libpng , libxcb, libxkbcommon, libxml2, libxslt, openssl, pcre16, pcre2, sqlite, udev , xcbutil, xcbutilimage, xcbutilkeysyms, xcbutilrenderutil, xcbutilwm -, zlib +, zlib, at-spi2-core # optional dependencies , cups ? null, libmysqlclient ? null, postgresql ? null @@ -68,7 +68,7 @@ stdenv.mkDerivation { ] ++ lib.optional libGLSupported libGL ); - buildInputs = [ python3 ] + buildInputs = [ python3 at-spi2-core ] ++ lib.optionals (!stdenv.isDarwin) ( [ libinput ] From 54a62ba0080cc5d40567dc0f492389e199c6e3a9 Mon Sep 17 00:00:00 2001 From: adisbladis Date: Thu, 2 Sep 2021 13:57:53 -0500 Subject: [PATCH 04/58] qt5.qtbase: Enable parallel building --- pkgs/development/libraries/qt-5/modules/qtbase.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/development/libraries/qt-5/modules/qtbase.nix b/pkgs/development/libraries/qt-5/modules/qtbase.nix index 04a89558c3d0..c71f4faf0671 100644 --- a/pkgs/development/libraries/qt-5/modules/qtbase.nix +++ b/pkgs/development/libraries/qt-5/modules/qtbase.nix @@ -84,6 +84,8 @@ stdenv.mkDerivation { propagatedNativeBuildInputs = [ lndir ]; + enableParallelBuilding = true; + outputs = [ "bin" "dev" "out" ]; inherit patches; From 71890f599565d204b7d1aef90bc7db93ee32df72 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Sat, 11 Sep 2021 22:48:06 +0100 Subject: [PATCH 05/58] audit: pull upstream fix for -fno-common compiler Fixes build failure against upstream gcc (defaults -fno-common). --- pkgs/os-specific/linux/audit/default.nix | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pkgs/os-specific/linux/audit/default.nix b/pkgs/os-specific/linux/audit/default.nix index 6fa7ba28d8e3..a7f17e449505 100644 --- a/pkgs/os-specific/linux/audit/default.nix +++ b/pkgs/os-specific/linux/audit/default.nix @@ -37,7 +37,14 @@ stdenv.mkDerivation rec { # TODO: Remove the musl patches when # https://github.com/linux-audit/audit-userspace/pull/25 # is available with the next release. - patches = [ ./patches/weak-symbols.patch ] + patches = [ + ./patches/weak-symbols.patch + (fetchpatch { + # upstream build fix against -fno-common compilers like >=gcc-10 + url = "https://github.com/linux-audit/audit-userspace/commit/017e6c6ab95df55f34e339d2139def83e5dada1f.patch"; + sha256 = "100xa1rzkv0mvhjbfgpfm72f7c4p68syflvgc3xm6pxgrqqmfq8h"; + }) + ] ++ lib.optional stdenv.hostPlatform.isMusl [ ( let patch = fetchpatch { From f55fb21340b7fce2077656674e22145bf40bc3cf Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Sun, 12 Sep 2021 08:11:59 +0100 Subject: [PATCH 06/58] cpio: pull upstream fix for -fno-common compiler Fixes build failure against upstream gcc (defaults -fno-common). --- pkgs/tools/archivers/cpio/default.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/tools/archivers/cpio/default.nix b/pkgs/tools/archivers/cpio/default.nix index c172edd1fd98..adf73732f6d4 100644 --- a/pkgs/tools/archivers/cpio/default.nix +++ b/pkgs/tools/archivers/cpio/default.nix @@ -17,6 +17,12 @@ in stdenv.mkDerivation { url = "https://git.savannah.gnu.org/cgit/cpio.git/patch/?id=dd96882877721703e19272fe25034560b794061b"; sha256 = "0vmr0qjwj2ldnzsvccl105ckwgx3ssvn9mp3f27ss0kiyigrzz32"; }) + (fetchpatch { + # upstream build fix against -fno-common compilers like >=gcc-10 + name = "fno-common-fix.patch"; + url = "https://git.savannah.gnu.org/cgit/cpio.git/patch/?id=641d3f489cf6238bb916368d4ba0d9325a235afb"; + sha256 = "1ffawzxjw72kzpdwffi2y7pvibrmwf4jzrxdq9f4a75q6crl66iq"; + }) ]; preConfigure = if stdenv.isCygwin then '' From 33472c371d89c707bcb9754cd1dceb971b0f4084 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Sun, 12 Sep 2021 08:38:45 +0100 Subject: [PATCH 07/58] libsepol: pull upstream fix for -fno-common compiler Fixes build failure against upstream gcc (defaults -fno-common) --- pkgs/os-specific/linux/libsepol/default.nix | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/pkgs/os-specific/linux/libsepol/default.nix b/pkgs/os-specific/linux/libsepol/default.nix index 732ad88c70db..e90c08942096 100644 --- a/pkgs/os-specific/linux/libsepol/default.nix +++ b/pkgs/os-specific/linux/libsepol/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchurl, flex }: +{ lib, stdenv, fetchurl, fetchpatch, flex }: stdenv.mkDerivation rec { pname = "libsepol"; @@ -13,6 +13,20 @@ stdenv.mkDerivation rec { sha256 = "0ygb6dh5lng91xs6xiqf5v0nxa68qmjc787p0s5h9w89364f2yjv"; }; + patches = [ + # upstream build fix against -fno-common compilers like >=gcc-10 + (fetchpatch { + url = "https://github.com/SELinuxProject/selinux/commit/a96e8c59ecac84096d870b42701a504791a8cc8c.patch"; + sha256 = "0aybv4kzbhx8xq6s82dsh4ib76k59qzh2bgxmk44iq5cjnqn5rd6"; + stripLen = 1; + }) + (fetchpatch { + url = "https://github.com/SELinuxProject/selinux/commit/3d32fc24d6aff360a538c63dad08ca5c957551b0.patch"; + sha256 = "1mphwdlj4d6mwmsp5xkpf6ci4rxhgbi3fm79d08h4jbzxaf4wny4"; + stripLen = 1; + }) + ]; + postPatch = lib.optionalString stdenv.hostPlatform.isStatic '' substituteInPlace src/Makefile --replace 'all: $(LIBA) $(LIBSO)' 'all: $(LIBA)' sed -i $'/^\t.*LIBSO/d' src/Makefile From 284309c11c06615754a0b97d560ee1a995ec4940 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Sun, 12 Sep 2021 08:49:10 +0100 Subject: [PATCH 08/58] dhcp: pull upstream fix for -fno-common compiler Fixes build failure against upstream gcc (defaults -fno-common) --- pkgs/tools/networking/dhcp/default.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pkgs/tools/networking/dhcp/default.nix b/pkgs/tools/networking/dhcp/default.nix index 2a722d17c01f..7df04ac0c895 100644 --- a/pkgs/tools/networking/dhcp/default.nix +++ b/pkgs/tools/networking/dhcp/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, perl, file, nettools, iputils, iproute2, makeWrapper +{ stdenv, fetchurl, fetchpatch, perl, file, nettools, iputils, iproute2, makeWrapper , coreutils, gnused, openldap ? null , buildPackages, lib }: @@ -18,6 +18,12 @@ stdenv.mkDerivation rec { # patch, the hostname doesn't get set properly if the old # hostname (i.e. before reboot) is equal to the new hostname. ./set-hostname.patch + + (fetchpatch { + # upstream build fix against -fno-common compilers like >=gcc-10 + url = "https://gitlab.isc.org/isc-projects/dhcp/-/commit/6c7e61578b1b449272dbb40dd8b98d03dad8a57a.patch"; + sha256 = "1g37ix0yf9zza8ri8bg438ygcjviniblfyb20y4gzc8lysy28m8b"; + }) ]; nativeBuildInputs = [ perl makeWrapper ]; From 3101919890a6021743967ec8d8fc006963f6f0c8 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Sun, 12 Sep 2021 08:55:57 +0100 Subject: [PATCH 09/58] libunwind: pull upstream fix for -fno-common compiler Fixes build failure against upstream gcc (defaults -fno-common) --- pkgs/development/libraries/libunwind/default.nix | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/libunwind/default.nix b/pkgs/development/libraries/libunwind/default.nix index bda7f72a5576..643752da1dc5 100644 --- a/pkgs/development/libraries/libunwind/default.nix +++ b/pkgs/development/libraries/libunwind/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchurl, autoreconfHook, xz, coreutils }: +{ stdenv, lib, fetchurl, fetchpatch, autoreconfHook, xz, coreutils }: stdenv.mkDerivation rec { pname = "libunwind"; @@ -9,7 +9,15 @@ stdenv.mkDerivation rec { sha256 = "0dc46flppifrv2z0mrdqi60165ghxm1wk0g47vcbyzjdplqwjnfz"; }; - patches = [ ./backtrace-only-with-glibc.patch ]; + patches = [ + ./backtrace-only-with-glibc.patch + + (fetchpatch { + # upstream build fix against -fno-common compilers like >=gcc-10 + url = "https://github.com/libunwind/libunwind/commit/29e17d8d2ccbca07c423e3089a6d5ae8a1c9cb6e.patch"; + sha256 = "1angwfq6h0jskg6zx8g6w9min38g5mgmrcbppcy5hqn59cgsxbw0"; + }) + ]; postPatch = lib.optionalString stdenv.hostPlatform.isMusl '' substituteInPlace configure.ac --replace "-lgcc_s" "-lgcc_eh" From 66a68c3a63aa74be59340350e0d135702660f78c Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Sun, 12 Sep 2021 09:08:53 +0100 Subject: [PATCH 10/58] kexec-tools: pull upstream fix for -fno-common compiler Fixes build failure against upstream gcc (defaults -fno-common) --- pkgs/os-specific/linux/kexec-tools/default.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkgs/os-specific/linux/kexec-tools/default.nix b/pkgs/os-specific/linux/kexec-tools/default.nix index 21d803e2b721..6e6eecd49319 100644 --- a/pkgs/os-specific/linux/kexec-tools/default.nix +++ b/pkgs/os-specific/linux/kexec-tools/default.nix @@ -29,6 +29,13 @@ stdenv.mkDerivation rec { url = "https://src.fedoraproject.org/rpms/kexec-tools/raw/cb1e5463b5298b064e9b6c86ad6fe3505fec9298/f/kexec-tools-2.0.20-fix-broken-multiboot2-buliding-for-i386.patch"; sha256 = "1kzmcsbhwfdgxlc5s88ir0n494phww1j16yk0z42x09qlkxxkg0l"; }) + + (fetchpatch { + # upstream build fix against -fno-common compilers like >=gcc-10 + name = "fno-common.patch"; + url = "https://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git/patch/?id=cc087b11462af9f971a2c090d07e8d780a867b50"; + sha256 = "043hcsy6m14h64p6b9w25c7a3y0f487322dj81l6mbm6sws6s9lv"; + }) ]; meta = with lib; { From 0fb411389cbf21867bb5bbcc5088768a00b56aba Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Sun, 12 Sep 2021 09:18:21 +0100 Subject: [PATCH 11/58] sharutils: pull pending upstream fix for -fno-common compiler Fixes build failure against upstream gcc (defaults -fno-common) --- pkgs/tools/archivers/sharutils/default.nix | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/pkgs/tools/archivers/sharutils/default.nix b/pkgs/tools/archivers/sharutils/default.nix index ec0f096915f1..c504ed8f16e1 100644 --- a/pkgs/tools/archivers/sharutils/default.nix +++ b/pkgs/tools/archivers/sharutils/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchurl, gettext, coreutils }: +{ lib, stdenv, fetchurl, fetchpatch, gettext, coreutils }: stdenv.mkDerivation rec { pname = "sharutils"; @@ -30,6 +30,19 @@ stdenv.mkDerivation rec { url = "https://sources.debian.org/data/main/s/sharutils/1:4.15.2-4/debian/patches/02-fix-ftbfs-with-glibc-2.28.patch"; sha256 = "15kpjqnfs98n6irmkh8pw7masr08xala7gx024agv7zv14722vkc"; }) + + # pending upstream build fix against -fno-common compilers like >=gcc-10 + # Taken from https://lists.gnu.org/archive/html/bug-gnu-utils/2020-01/msg00002.html + (fetchpatch { + name = "sharutils-4.15.2-Fix-building-with-GCC-10.patch"; + url = "https://lists.gnu.org/archive/html/bug-gnu-utils/2020-01/txtDL8i6V6mUU.txt"; + sha256 = "0kfch1vm45lg237hr6fdv4b2lh5b1933k0fn8yj91gqm58svskvl"; + }) + (fetchpatch { + name = "sharutils-4.15.2-Do-not-include-lib-md5.c-into-src-shar.c.patch"; + url = "https://lists.gnu.org/archive/html/bug-gnu-utils/2020-01/txt5Z_KZup0yN.txt"; + sha256 = "0an8vfy3qj6sss9w0i4j8ilf7g5mbc7y13l644jy5bcm9przcjbd"; + }) ]; postPatch = let From 11ed659b2355e1f25ed053e6febf526a4fe75207 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Sun, 12 Sep 2021 09:54:47 +0100 Subject: [PATCH 12/58] freeglut: pull upstream fix for -fno-common compiler Fixes build failure against upstream gcc (defaults -fno-common). --- pkgs/development/libraries/freeglut/default.nix | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/freeglut/default.nix b/pkgs/development/libraries/freeglut/default.nix index ecdc1c19ff14..0e81e2188af3 100644 --- a/pkgs/development/libraries/freeglut/default.nix +++ b/pkgs/development/libraries/freeglut/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchurl, libXi, libXrandr, libXxf86vm, libGL, libGLU, xlibsWrapper, cmake }: +{ lib, stdenv, fetchurl, fetchpatch, libXi, libXrandr, libXxf86vm, libGL, libGLU, xlibsWrapper, cmake }: stdenv.mkDerivation rec { pname = "freeglut"; @@ -9,6 +9,15 @@ stdenv.mkDerivation rec { sha256 = "0s6sk49q8ijgbsrrryb7dzqx2fa744jhx1wck5cz5jia2010w06l"; }; + patches = [ + (fetchpatch { + # upstream build fix against -fno-common compilers like >=gcc-10 + url = "https://github.com/dcnieho/FreeGLUT/commit/b9998bbc1e1c329f6bf69c24606a2be7a4973b8c.patch"; + sha256 = "0j43vrnm22mz3r3c43szgcnil19cx9vcydzky9gwzqlyacr51swd"; + stripLen = 2; + }) + ]; + outputs = [ "out" "dev" ]; nativeBuildInputs = [ cmake ]; From 716c0a510b115e50347a2be25bbc9440e93ac731 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Thu, 16 Sep 2021 21:31:45 +0000 Subject: [PATCH 13/58] xmrig: 6.14.1 -> 6.15.0 --- pkgs/applications/misc/xmrig/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/misc/xmrig/default.nix b/pkgs/applications/misc/xmrig/default.nix index c0120e33992f..56c078fd9fc6 100644 --- a/pkgs/applications/misc/xmrig/default.nix +++ b/pkgs/applications/misc/xmrig/default.nix @@ -4,13 +4,13 @@ stdenv.mkDerivation rec { pname = "xmrig"; - version = "6.14.1"; + version = "6.15.0"; src = fetchFromGitHub { owner = "xmrig"; repo = "xmrig"; rev = "v${version}"; - sha256 = "sha256-JJ20LKA4gnPXO6d2Cegr3I67k+ZZc69hdL1dTUIF5OM="; + sha256 = "sha256-AsYfByiI5W50T/kOhLtD/kUSwDOWMCo33OZ6WGmNcFk="; }; nativeBuildInputs = [ cmake ]; From eabd03a551bcc830f73a04dace21122c04b49922 Mon Sep 17 00:00:00 2001 From: Rick van Schijndel Date: Sat, 18 Sep 2021 06:37:20 +0200 Subject: [PATCH 14/58] systemd: fix cross-compilation Instead of patching the ld path, it's now specified as meson option --- pkgs/os-specific/linux/systemd/default.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix index 9f92c34cee6b..e0a4128b0cdc 100644 --- a/pkgs/os-specific/linux/systemd/default.nix +++ b/pkgs/os-specific/linux/systemd/default.nix @@ -183,9 +183,6 @@ stdenv.mkDerivation { postPatch = '' substituteInPlace src/basic/path-util.h --replace "@defaultPathNormal@" "${placeholder "out"}/bin/" substituteInPlace src/boot/efi/meson.build \ - --replace \ - "find_program('ld'" \ - "find_program('${stdenv.cc.bintools.targetPrefix}ld'" \ --replace \ "find_program('objcopy'" \ "find_program('${stdenv.cc.bintools.targetPrefix}objcopy'" @@ -408,6 +405,7 @@ stdenv.mkDerivation { "-Dsmack=true" "-Db_pie=true" "-Dinstall-sysconfdir=false" + "-Defi-ld=${stdenv.cc.bintools.targetPrefix}ld" /* As of now, systemd doesn't allow runtime configuration of these values. So the settings in /etc/login.defs have no effect on it. Many people think this From 6856236f536c7299a18abf5ee52a56bcc88de39a Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Sat, 18 Sep 2021 13:14:44 +0200 Subject: [PATCH 15/58] libva: 2.12.0 -> 2.13.0 --- pkgs/development/libraries/libva/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/libva/default.nix b/pkgs/development/libraries/libva/default.nix index 2d4186385193..10f90a16c927 100644 --- a/pkgs/development/libraries/libva/default.nix +++ b/pkgs/development/libraries/libva/default.nix @@ -7,13 +7,13 @@ stdenv.mkDerivation rec { pname = "libva" + lib.optionalString minimal "minimal"; - version = "2.12.0"; + version = "2.13.0"; src = fetchFromGitHub { owner = "intel"; repo = "libva"; rev = version; - sha256 = "1zfv4kjx0715sy62lkpv0s31f9xwy232z5zwqi5all4w1jr630i7"; + sha256 = "0vsvli3xc0gqqp06p7wkm973lhr7c5qgnyz5jfjmf8kv75rajazp"; }; outputs = [ "dev" "out" ]; From 68b5339f0996099c1882e4df93ae32fd1bb29390 Mon Sep 17 00:00:00 2001 From: Rick van Schijndel Date: Fri, 17 Sep 2021 18:09:15 +0200 Subject: [PATCH 16/58] tpm2-tss: fix cross-compilation, enable strictDeps It appears some dependencies were listed in checkInputs, they're moved to the proper place in buildInputs & nativeBuildInputs. Since this library was added as dependency of systemd, it's needed for lots of packages to get cross-compilation working properly. Also fixes pkgsStatic build, which fails due to cmocka not building. Since we don't need it anyway when tests are disabled, gate it behind a test for stdenv.buildPlatform == stdenv.hostPlatform. --- .../development/libraries/tpm2-tss/default.nix | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/pkgs/development/libraries/tpm2-tss/default.nix b/pkgs/development/libraries/tpm2-tss/default.nix index 06e1ac9409a1..5ab4ff3b413f 100644 --- a/pkgs/development/libraries/tpm2-tss/default.nix +++ b/pkgs/development/libraries/tpm2-tss/default.nix @@ -26,11 +26,21 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ autoreconfHook autoconf-archive pkg-config doxygen perl ]; - buildInputs = [ openssl json_c curl libgcrypt ]; - checkInputs = [ - cmocka uthash ibm-sw-tpm2 iproute2 procps_pkg which + + # cmocka is checked / used(?) in the configure script + # when unit and/or integration testing is enabled + buildInputs = [ openssl json_c curl libgcrypt uthash ] + # cmocka doesn't build with pkgsStatic, and we don't need it anyway + # when tests are not run + ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ + cmocka ]; + checkInputs = [ + cmocka which openssl procps_pkg iproute2 ibm-sw-tpm2 + ]; + + strictDeps = true; preAutoreconf = "./bootstrap"; enableParallelBuilding = true; @@ -49,7 +59,7 @@ stdenv.mkDerivation rec { --replace '@PREFIX@' $out/lib ''; - configureFlags = [ + configureFlags = lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ "--enable-unit" "--enable-integration" ]; From b41d29dd317255756acea206aa24ba49765c39ba Mon Sep 17 00:00:00 2001 From: Troels Henriksen Date: Sun, 14 Jul 2019 16:42:04 +0200 Subject: [PATCH 17/58] mesa: restore OpenCL support Co-authored-by: Sandro Co-authored-by: Simon Bruder --- pkgs/development/libraries/mesa/default.nix | 29 ++++++-- .../libraries/mesa/opencl-install-dir.patch | 12 ---- pkgs/development/libraries/mesa/opencl.patch | 70 +++++++++++++++++++ 3 files changed, 95 insertions(+), 16 deletions(-) delete mode 100644 pkgs/development/libraries/mesa/opencl-install-dir.patch create mode 100644 pkgs/development/libraries/mesa/opencl.patch diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix index 62e95dc8e993..14d479c5a805 100644 --- a/pkgs/development/libraries/mesa/default.nix +++ b/pkgs/development/libraries/mesa/default.nix @@ -13,6 +13,8 @@ , withValgrind ? !stdenv.isDarwin && lib.meta.availableOn stdenv.hostPlatform valgrind-light, valgrind-light , enableGalliumNine ? stdenv.isLinux , enableOSMesa ? stdenv.isLinux +, enableOpenCL ? stdenv.isLinux && stdenv.isx86_64 +, libclc }: /** Packaging design: @@ -53,7 +55,7 @@ self = stdenv.mkDerivation { # ~35 MB in $drivers; watch https://launchpad.net/ubuntu/+source/mesa/+changelog patches = [ ./missing-includes.patch # dev_t needs sys/stat.h, time_t needs time.h, etc.-- fixes build w/musl - ./opencl-install-dir.patch + ./opencl.patch ./disk_cache-include-dri-driver-path-in-cache-key.patch # Fix `-Werror=int-conversion` pthread warnings on musl. # TODO: Remove when https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6121 is merged and available @@ -88,7 +90,8 @@ self = stdenv.mkDerivation { outputs = [ "out" "dev" "drivers" ] ++ lib.optional enableOSMesa "osmesa" - ++ lib.optional stdenv.isLinux "driversdev"; + ++ lib.optional stdenv.isLinux "driversdev" + ++ lib.optional enableOpenCL "opencl"; # TODO: Figure out how to enable opencl without having a runtime dependency on clang mesonFlags = [ @@ -118,6 +121,9 @@ self = stdenv.mkDerivation { "-Dmicrosoft-clc=disabled" # Only relevant on Windows (OpenCL 1.2 API on top of D3D12) ] ++ optionals stdenv.isLinux [ "-Dglvnd=true" + ] ++ optionals enableOpenCL [ + "-Dgallium-opencl=icd" # Enable the gallium OpenCL frontend + "-Dclang-libdir=${llvmPackages.clang-unwrapped.lib}/lib" ]; buildInputs = with xorg; [ @@ -128,6 +134,7 @@ self = stdenv.mkDerivation { ] ++ lib.optionals (elem "wayland" eglPlatforms) [ wayland wayland-protocols ] ++ lib.optionals stdenv.isLinux [ libomxil-bellagio libva-minimal ] ++ lib.optionals stdenv.isDarwin [ libunwind ] + ++ lib.optionals enableOpenCL [ libclc llvmPackages.clang llvmPackages.clang-unwrapped ] ++ lib.optional withValgrind valgrind-light; depsBuildBuild = [ pkg-config ]; @@ -162,7 +169,7 @@ self = stdenv.mkDerivation { if [ -n "$(shopt -s nullglob; echo "$out"/lib/lib*_mesa*)" ]; then # Move other drivers to a separate output - mv $out/lib/lib*_mesa* $drivers/lib + mv -t $drivers/lib $out/lib/lib*_mesa* fi # Update search path used by glvnd @@ -175,6 +182,17 @@ self = stdenv.mkDerivation { for js in $drivers/share/vulkan/icd.d/*.json; do substituteInPlace "$js" --replace "$out" "$drivers" done + '' + optionalString enableOpenCL '' + # Move OpenCL stuff + mkdir -p $opencl/lib + mv -t "$opencl/lib/" \ + $out/lib/gallium-pipe \ + $out/lib/libMesaOpenCL* + + # We construct our own .icd file that contains an absolute path. + rm -r $out/etc/OpenCL + mkdir -p $opencl/etc/OpenCL/vendors/ + echo $opencl/lib/libMesaOpenCL.so > $opencl/etc/OpenCL/vendors/mesa.icd '' + lib.optionalString enableOSMesa '' # move libOSMesa to $osmesa, as it's relatively big mkdir -p $osmesa/lib @@ -209,7 +227,10 @@ self = stdenv.mkDerivation { done ''; - NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-fno-common"; + NIX_CFLAGS_COMPILE = optionals stdenv.isDarwin [ "-fno-common" ] ++ lib.optionals enableOpenCL [ + "-UPIPE_SEARCH_DIR" + "-DPIPE_SEARCH_DIR=\"${placeholder "opencl"}/lib/gallium-pipe\"" + ]; passthru = { inherit libdrm; diff --git a/pkgs/development/libraries/mesa/opencl-install-dir.patch b/pkgs/development/libraries/mesa/opencl-install-dir.patch deleted file mode 100644 index fe85d2c90bb2..000000000000 --- a/pkgs/development/libraries/mesa/opencl-install-dir.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/src/gallium/targets/opencl/meson.build b/src/gallium/targets/opencl/meson.build -index 317ad8dab4a..5567308caf0 100644 ---- a/src/gallium/targets/opencl/meson.build -+++ b/src/gallium/targets/opencl/meson.build -@@ -68,6 +68,6 @@ if with_opencl_icd - input : 'mesa.icd.in', - output : 'mesa.icd', - install : true, -- install_dir : join_paths(get_option('sysconfdir'), 'OpenCL', 'vendors'), -+ install_dir : join_paths(get_option('prefix'), 'etc', 'OpenCL', 'vendors'), - ) - endif diff --git a/pkgs/development/libraries/mesa/opencl.patch b/pkgs/development/libraries/mesa/opencl.patch new file mode 100644 index 000000000000..ce6e3d575085 --- /dev/null +++ b/pkgs/development/libraries/mesa/opencl.patch @@ -0,0 +1,70 @@ +diff --git a/meson_options.txt b/meson_options.txt +index a7030aba31e..1d2d8814992 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -18,6 +18,12 @@ + # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + # SOFTWARE. + ++option( ++ 'clang-libdir', ++ type : 'string', ++ value : '', ++ description : 'Locations to search for clang libraries.' ++) + option( + 'platforms', + type : 'array', +diff --git a/src/gallium/targets/opencl/meson.build b/src/gallium/targets/opencl/meson.build +index b77826b6e1e..14fa9ba7177 100644 +--- a/src/gallium/targets/opencl/meson.build ++++ b/src/gallium/targets/opencl/meson.build +@@ -30,6 +30,7 @@ if with_ld_version_script + endif + + llvm_libdir = dep_llvm.get_variable(cmake : 'LLVM_LIBRARY_DIR', configtool: 'libdir') ++clang_libdir = get_option('clang-libdir') + opencl_libname = with_opencl_icd ? 'MesaOpenCL' : 'OpenCL' + + polly_dep = null_dep +@@ -60,19 +61,19 @@ else + endif + if not (dep_clang.found() and dep_clang_usable) + dep_clang = [ +- cpp.find_library('clangCodeGen', dirs : llvm_libdir), +- cpp.find_library('clangFrontendTool', dirs : llvm_libdir), +- cpp.find_library('clangFrontend', dirs : llvm_libdir), +- cpp.find_library('clangDriver', dirs : llvm_libdir), +- cpp.find_library('clangSerialization', dirs : llvm_libdir), +- cpp.find_library('clangParse', dirs : llvm_libdir), +- cpp.find_library('clangSema', dirs : llvm_libdir), +- cpp.find_library('clangAnalysis', dirs : llvm_libdir), +- cpp.find_library('clangAST', dirs : llvm_libdir), +- cpp.find_library('clangASTMatchers', dirs : llvm_libdir), +- cpp.find_library('clangEdit', dirs : llvm_libdir), +- cpp.find_library('clangLex', dirs : llvm_libdir), +- cpp.find_library('clangBasic', dirs : llvm_libdir), ++ cpp.find_library('clangCodeGen', dirs : clang_libdir), ++ cpp.find_library('clangFrontendTool', dirs : clang_libdir), ++ cpp.find_library('clangFrontend', dirs : clang_libdir), ++ cpp.find_library('clangDriver', dirs : clang_libdir), ++ cpp.find_library('clangSerialization', dirs : clang_libdir), ++ cpp.find_library('clangParse', dirs : clang_libdir), ++ cpp.find_library('clangSema', dirs : clang_libdir), ++ cpp.find_library('clangAnalysis', dirs : clang_libdir), ++ cpp.find_library('clangAST', dirs : clang_libdir), ++ cpp.find_library('clangASTMatchers', dirs : clang_libdir), ++ cpp.find_library('clangEdit', dirs : clang_libdir), ++ cpp.find_library('clangLex', dirs : clang_libdir), ++ cpp.find_library('clangBasic', dirs : clang_libdir), + polly_dep, polly_isl_dep, + ] + # check clang once more +@@ -120,6 +121,6 @@ if with_opencl_icd + input : 'mesa.icd.in', + output : 'mesa.icd', + install : true, +- install_dir : join_paths(get_option('sysconfdir'), 'OpenCL', 'vendors'), ++ install_dir : join_paths(get_option('prefix'), 'etc', 'OpenCL', 'vendors'), + ) + endif From 14a71668b87dad0b46ffd7d5ff03623989806ace Mon Sep 17 00:00:00 2001 From: Robert Scott Date: Sat, 18 Sep 2021 13:17:36 +0100 Subject: [PATCH 18/58] gd: 2.3.0 -> 2.3.3 remove now-included patch this partially resolves CVE-2021-40812 --- pkgs/development/libraries/gd/default.nix | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/pkgs/development/libraries/gd/default.nix b/pkgs/development/libraries/gd/default.nix index 36a930956033..6a27c32a5d20 100644 --- a/pkgs/development/libraries/gd/default.nix +++ b/pkgs/development/libraries/gd/default.nix @@ -14,27 +14,14 @@ stdenv.mkDerivation rec { pname = "gd"; - version = "2.3.0"; + version = "2.3.3"; src = fetchurl { url = "https://github.com/libgd/libgd/releases/download/${pname}-${version}/libgd-${version}.tar.xz"; - sha256 = "0n5czhxzinvjvmhkf5l9fwjdx5ip69k5k7pj6zwb6zs1k9dibngc"; + sha256 = "0qas3q9xz3wgw06dm2fj0i189rain6n60z1vyq50d5h7wbn25s1z"; }; hardeningDisable = [ "format" ]; - patches = [ - # Fixes an issue where some other packages would fail to build - # their documentation with an error like: - # "Error: Problem doing text layout" - # - # Can be removed if Wayland can still be built successfully with - # documentation. - (fetchpatch { - url = "https://github.com/libgd/libgd/commit/3dd0e308cbd2c24fde2fc9e9b707181252a2de95.patch"; - excludes = [ "tests/gdimagestringft/.gitignore" ]; - sha256 = "12iqlanl9czig9d7c3rvizrigw2iacimnmimfcny392dv9iazhl1"; - }) - ]; # -pthread gets passed to clang, causing warnings configureFlags = lib.optional stdenv.isDarwin "--enable-werror=no"; From 4765a3e153040b9576cbc086dab46fa7abda381d Mon Sep 17 00:00:00 2001 From: Noah Fontes Date: Tue, 14 Sep 2021 13:17:43 -0700 Subject: [PATCH 19/58] autoPatchelfHook: improve arch/ABI compatibility Fully enabling crossSystem support for autoPatchelfHook came with some perhaps unintended consequences of being a bit more aggressive about patching ELF files from architectures/ABIs that differ from the target (previously, those files would be ignored because ldd usually couldn't handle them). This change adds architecture and rough OS ABI detection to the script so that it doesn't try to blindly replace the interpreter of files that can't possibly use that interpreter, and also makes sure it doesn't accidentally use libraries of other architectures/ABIs. --- .../setup-hooks/auto-patchelf.sh | 88 ++++++++++++++++--- 1 file changed, 78 insertions(+), 10 deletions(-) diff --git a/pkgs/build-support/setup-hooks/auto-patchelf.sh b/pkgs/build-support/setup-hooks/auto-patchelf.sh index d310f8255224..7f95dc8043a2 100644 --- a/pkgs/build-support/setup-hooks/auto-patchelf.sh +++ b/pkgs/build-support/setup-hooks/auto-patchelf.sh @@ -63,10 +63,9 @@ getRpathFromElfBinary() { # NOTE: This does not use runPatchelf because it may encounter non-ELF # files. Caller is expected to check the return code if needed. local rpath - rpath="$(patchelf --print-rpath "$1" 2> /dev/null)" || return $? + IFS=':' read -ra rpath < <(patchelf --print-rpath "$1" 2> /dev/null) || return $? - local IFS=':' - printf "%s\n" $rpath + printf "%s\n" "${rpath[@]}" } populateCacheForDep() { @@ -115,8 +114,52 @@ populateCacheWithRecursiveDeps() { done } -getSoArch() { - $OBJDUMP -f "$1" | sed -ne 's/^architecture: *\([^,]\+\).*/\1/p' +getBinArch() { + $OBJDUMP -f "$1" 2> /dev/null | sed -ne 's/^architecture: *\([^,]\+\).*/\1/p' +} + +# Returns the specific OS ABI for an ELF file in the format produced by +# readelf(1), like "UNIX - System V" or "UNIX - GNU". +getBinOsabi() { + $READELF -h "$1" 2> /dev/null | sed -ne 's/^[ \t]*OS\/ABI:[ \t]*\(.*\)/\1/p' +} + +# Tests whether two OS ABIs are compatible, taking into account the generally +# accepted compatibility of SVR4 ABI with other ABIs. +areBinOsabisCompatible() { + local wanted="$1" + local got="$2" + + if [[ -z "$wanted" || -z "$got" ]]; then + # One of the types couldn't be detected, so as a fallback we'll assume + # they're compatible. + return 0 + fi + + # Generally speaking, the base ABI (0x00), which is represented by + # readelf(1) as "UNIX - System V", indicates broad compatibility with other + # ABIs. + # + # TODO: This isn't always true. For example, some OSes embed ABI + # compatibility into SHT_NOTE sections like .note.tag and .note.ABI-tag. + # It would be prudent to add these to the detection logic to produce better + # ABI information. + if [[ "$wanted" == "UNIX - System V" ]]; then + return 0 + fi + + # Similarly here, we should be able to link against a superset of features, + # so even if the target has another ABI, this should be fine. + if [[ "$got" == "UNIX - System V" ]]; then + return 0 + fi + + # Otherwise, we simply return whether the ABIs are identical. + if [[ "$wanted" == "$got" ]]; then + return 0 + fi + + return 1 } # NOTE: If you want to use this function outside of the autoPatchelf function, @@ -127,6 +170,7 @@ getSoArch() { findDependency() { local filename="$1" local arch="$2" + local osabi="$3" local lib dep if [ $depCacheInitialised -eq 0 ]; then @@ -138,7 +182,7 @@ findDependency() { for dep in "${autoPatchelfCachedDeps[@]}"; do if [ "$filename" = "${dep##*/}" ]; then - if [ "$(getSoArch "$dep")" = "$arch" ]; then + if [ "$(getBinArch "$dep")" = "$arch" ] && areBinOsabisCompatible "$osabi" "$(getBinOsabi "$dep")"; then foundDependency="$dep" return 0 fi @@ -163,6 +207,23 @@ autoPatchelfFile() { local interpreter interpreter="$(< "$NIX_CC/nix-support/dynamic-linker")" + + local interpreterArch interpreterOsabi toPatchArch toPatchOsabi + interpreterArch="$(getBinArch "$interpreter")" + interpreterOsabi="$(getBinOsabi "$interpreter")" + toPatchArch="$(getBinArch "$toPatch")" + toPatchOsabi="$(getBinOsabi "$toPatch")" + + if [ "$interpreterArch" != "$toPatchArch" ]; then + # Our target architecture is different than this file's architecture, + # so skip it. + echo "skipping $toPatch because its architecture ($toPatchArch) differs from target ($interpreterArch)" >&2 + return 0 + elif ! areBinOsabisCompatible "$interpreterOsabi" "$toPatchOsabi"; then + echo "skipping $toPatch because its OS ABI ($toPatchOsabi) is not compatible with target ($interpreterOsabi)" >&2 + return 0 + fi + if isExecutable "$toPatch"; then runPatchelf --set-interpreter "$interpreter" "$toPatch" # shellcheck disable=SC2154 @@ -187,14 +248,21 @@ autoPatchelfFile() { # new package where you don't yet know its dependencies. for dep in $missing; do - # Check whether this library exists in libc. If so, we don't need to do - # any futher searching -- it will be resolved correctly by the linker. - if [ -f "$libcLib/$dep" ]; then + if [[ "$dep" == /* ]]; then + # This is an absolute path. If it exists, just use it. Otherwise, + # we probably want this to produce an error when checked (because + # just updating the rpath won't satisfy it). + if [ -f "$dep" ]; then + continue + fi + elif [ -f "$libcLib/$dep" ]; then + # This library exists in libc, and will be correctly resolved by + # the linker. continue fi echo -n " $dep -> " >&2 - if findDependency "$dep" "$(getSoArch "$toPatch")"; then + if findDependency "$dep" "$toPatchArch" "$toPatchOsabi"; then rpath="$rpath${rpath:+:}${foundDependency%/*}" echo "found: $foundDependency" >&2 else From a7f5e8321e9db6f2cf2f3c6be7ce5cac28bff271 Mon Sep 17 00:00:00 2001 From: Noah Fontes Date: Fri, 17 Sep 2021 13:40:27 -0700 Subject: [PATCH 20/58] autoPatchelfHook: fix packages that use stdenvNoCC autoPatchelfHook actually doesn't depend on stdenv and only needs bintools (with its wrapper). This change uses $NIX_BINTOOLS instead of $NIX_CC and makes the dependency on bintools explicit. --- pkgs/build-support/setup-hooks/auto-patchelf.sh | 4 ++-- pkgs/top-level/all-packages.nix | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/build-support/setup-hooks/auto-patchelf.sh b/pkgs/build-support/setup-hooks/auto-patchelf.sh index 7f95dc8043a2..4b3a1c5c3909 100644 --- a/pkgs/build-support/setup-hooks/auto-patchelf.sh +++ b/pkgs/build-support/setup-hooks/auto-patchelf.sh @@ -206,7 +206,7 @@ autoPatchelfFile() { local dep rpath="" toPatch="$1" local interpreter - interpreter="$(< "$NIX_CC/nix-support/dynamic-linker")" + interpreter="$(< "$NIX_BINTOOLS/nix-support/dynamic-linker")" local interpreterArch interpreterOsabi toPatchArch toPatchOsabi interpreterArch="$(getBinArch "$interpreter")" @@ -236,7 +236,7 @@ autoPatchelfFile() { fi local libcLib - libcLib="$(< "$NIX_CC/nix-support/orig-libc")/lib" + libcLib="$(< "$NIX_BINTOOLS/nix-support/orig-libc")/lib" echo "searching for dependencies of $toPatch" >&2 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index eb555741b36f..d24556eb7404 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -143,7 +143,8 @@ with pkgs; autorestic = callPackage ../tools/backup/autorestic { }; - autoPatchelfHook = makeSetupHook { name = "auto-patchelf-hook"; } + autoPatchelfHook = makeSetupHook + { name = "auto-patchelf-hook"; deps = [ bintools ]; } ../build-support/setup-hooks/auto-patchelf.sh; appimageTools = callPackage ../build-support/appimage { From 4687d7523bd068bcf0a87ed6ac4e4bfa6f7f4e11 Mon Sep 17 00:00:00 2001 From: Farid Zakaria Date: Sun, 12 Sep 2021 19:04:10 -0700 Subject: [PATCH 21/58] glibc: add dependency on netbase /etc/protocols Add an explicit dependency on netbase for /etc/protocols Certain functions in glibc look for files present in /etc such as getprotobyname which reads /etc/protocols. If you are using Nix over a Linux installation, this file may not be present, and therefore it will cause errors. - add netbase as a new package in nixpks - add a dependency in glibc on it using postPatchPhase and substitute the path Fixes #124401 --- doc/builders/packages/etc-files.section.md | 17 +++++++ doc/builders/packages/index.xml | 1 + pkgs/data/misc/iana-etc/default.nix | 18 ++++--- pkgs/development/libraries/glibc/common.nix | 3 ++ .../libraries/glibc/nix-nss-open-files.patch | 51 +++++++++++++++++++ 5 files changed, 84 insertions(+), 6 deletions(-) create mode 100644 doc/builders/packages/etc-files.section.md create mode 100644 pkgs/development/libraries/glibc/nix-nss-open-files.patch diff --git a/doc/builders/packages/etc-files.section.md b/doc/builders/packages/etc-files.section.md new file mode 100644 index 000000000000..0b8379383591 --- /dev/null +++ b/doc/builders/packages/etc-files.section.md @@ -0,0 +1,17 @@ +# /etc files {#etc} + +Certain calls in glibc require access to runtime files found in /etc such as `/etc/protocols` or `/etc/services` -- [getprotobyname](https://linux.die.net/man/3/getprotobyname) is one such function. + +On non-NixOS distributions these files are typically provided by packages (i.e. [netbase](https://packages.debian.org/sid/netbase)) if not already pre-installed in your distribution. This can cause non-reproducibility for code if they rely on these files being present. + +If [iana-etc](https://hydra.nixos.org/job/nixos/trunk-combined/nixpkgs.iana-etc.x86_64-linux) is part of your _buildInputs_ then it will set the environment varaibles `NIX_ETC_PROTOCOLS` and `NIX_ETC_SERVICES` to the corresponding files in the package through a _setup-hook_. + +```bash +❯ nix-shell -p iana-etc + +[nix-shell:~]$ env | grep NIX_ETC +NIX_ETC_SERVICES=/nix/store/aj866hr8fad8flnggwdhrldm0g799ccz-iana-etc-20210225/etc/services +NIX_ETC_PROTOCOLS=/nix/store/aj866hr8fad8flnggwdhrldm0g799ccz-iana-etc-20210225/etc/protocols +``` + +Nixpkg's version of [glibc](https://hydra.nixos.org/job/nixos/trunk-combined/nixpkgs.glibc.x86_64-linux) has been patched to check for the existence of these environment variables. If the environment variable are *not set*, then it will attempt to find the files at the default location within _/etc_. diff --git a/doc/builders/packages/index.xml b/doc/builders/packages/index.xml index f5b05b0bbccf..206e1e49f1f8 100644 --- a/doc/builders/packages/index.xml +++ b/doc/builders/packages/index.xml @@ -17,6 +17,7 @@ + diff --git a/pkgs/data/misc/iana-etc/default.nix b/pkgs/data/misc/iana-etc/default.nix index 60735eb4782c..29ebac848d85 100644 --- a/pkgs/data/misc/iana-etc/default.nix +++ b/pkgs/data/misc/iana-etc/default.nix @@ -1,17 +1,23 @@ -{ lib, fetchzip }: +{ lib, fetchzip, stdenvNoCC, writeText }: let version = "20210225"; -in fetchzip { +in stdenvNoCC.mkDerivation { name = "iana-etc-${version}"; - url = "https://github.com/Mic92/iana-etc/releases/download/${version}/iana-etc-${version}.tar.gz"; - sha256 = "sha256-NVvZG3EJEYOXFDTBXD5m9sg/8msyMiBMkiZr+ZxWZ/g="; + src = fetchzip { + url = "https://github.com/Mic92/iana-etc/releases/download/${version}/iana-etc-${version}.tar.gz"; + sha256 = "sha256:1bbbnj2ya0apyyhnw37521yl1hrz3zy3l8dw6sacmir0y6pmx9gi"; + }; - postFetch = '' - tar -xzvf $downloadedFile --strip-components=1 + installPhase = '' install -D -m0644 -t $out/etc services protocols ''; + setupHook = writeText "setup-hook" '' + export NIX_ETC_PROTOCOLS=@out@/etc/protocols + export NIX_ETC_SERVICES=@out@/etc/services + ''; + meta = with lib; { homepage = "https://github.com/Mic92/iana-etc"; description = "IANA protocol and port number assignments (/etc/protocols and /etc/services)"; diff --git a/pkgs/development/libraries/glibc/common.nix b/pkgs/development/libraries/glibc/common.nix index e651a8effac9..1df1f37cfe9b 100644 --- a/pkgs/development/libraries/glibc/common.nix +++ b/pkgs/development/libraries/glibc/common.nix @@ -120,6 +120,9 @@ stdenv.mkDerivation ({ }) ./fix-x64-abi.patch + + /* https://github.com/NixOS/nixpkgs/pull/137601 */ + ./nix-nss-open-files.patch ] ++ lib.optional stdenv.hostPlatform.isMusl ./fix-rpc-types-musl-conflicts.patch ++ lib.optional stdenv.buildPlatform.isDarwin ./darwin-cross-build.patch; diff --git a/pkgs/development/libraries/glibc/nix-nss-open-files.patch b/pkgs/development/libraries/glibc/nix-nss-open-files.patch new file mode 100644 index 000000000000..9a515c4662e2 --- /dev/null +++ b/pkgs/development/libraries/glibc/nix-nss-open-files.patch @@ -0,0 +1,51 @@ +diff --git a/nss/nss_files/files-XXX.c b/nss/nss_files/files-XXX.c +index 1db9e46127..3a567e0224 100644 +--- a/nss/nss_files/files-XXX.c ++++ b/nss/nss_files/files-XXX.c +@@ -75,8 +75,20 @@ internal_setent (FILE **stream) + + if (*stream == NULL) + { +- *stream = __nss_files_fopen (DATAFILE); +- ++ const char *file = DATAFILE; ++ ++ #ifdef NIX_DATAFILE ++ // use the Nix environment variable such as `NIX_ETC_PROTOCOLS` ++ char *path = secure_getenv (NIX_DATAFILE); ++ ++ // if the environment variable is set, then read from the /nix/store entry instead ++ if (path && path[0]) { ++ file = path; ++ } ++ #endif ++ ++ *stream = __nss_files_fopen (file); ++ + if (*stream == NULL) + status = errno == EAGAIN ? NSS_STATUS_TRYAGAIN : NSS_STATUS_UNAVAIL; + } +diff --git a/nss/nss_files/files-proto.c b/nss/nss_files/files-proto.c +index c30bedc0aa..b321e68d3c 100644 +--- a/nss/nss_files/files-proto.c ++++ b/nss/nss_files/files-proto.c +@@ -23,6 +23,7 @@ NSS_DECLARE_MODULE_FUNCTIONS (files) + + #define ENTNAME protoent + #define DATABASE "protocols" ++#define NIX_DATAFILE "NIX_ETC_PROTOCOLS" + + struct protoent_data {}; + +diff --git a/nss/nss_files/files-service.c b/nss/nss_files/files-service.c +index bfc2590699..0bff36aee5 100644 +--- a/nss/nss_files/files-service.c ++++ b/nss/nss_files/files-service.c +@@ -24,6 +24,7 @@ NSS_DECLARE_MODULE_FUNCTIONS (files) + + #define ENTNAME servent + #define DATABASE "services" ++#define NIX_DATAFILE "NIX_ETC_SERVICES" + + struct servent_data {}; + From 43b96f66ef7a69602b74f9bced64573c11a1df05 Mon Sep 17 00:00:00 2001 From: lsix Date: Mon, 20 Sep 2021 18:08:36 +0100 Subject: [PATCH 22/58] =?UTF-8?q?gdb:=2010.2=C2=A0->=2011.1=20(#137628)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://sourceware.org/pipermail/gdb/2021-September/049719.html for release information. --- pkgs/development/tools/misc/gdb/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/misc/gdb/default.nix b/pkgs/development/tools/misc/gdb/default.nix index ea0002d78c0a..88e3393dedcb 100644 --- a/pkgs/development/tools/misc/gdb/default.nix +++ b/pkgs/development/tools/misc/gdb/default.nix @@ -26,11 +26,11 @@ assert pythonSupport -> python3 != null; stdenv.mkDerivation rec { pname = targetPrefix + basename; - version = "10.2"; + version = "11.1"; src = fetchurl { url = "mirror://gnu/gdb/${basename}-${version}.tar.xz"; - sha256 = "0aag1c0fw875pvhjg1qp7x8pf6gf92bjv5gcic5716scacyj58da"; + sha256 = "151z6d0265hv9cgx9zqqa4bd6vbp20hrljhd6bxl7lr0gd0crkyc"; }; postPatch = if stdenv.isDarwin then '' From bd8258a389bf6337b0440cd06006e2e6e7fe097b Mon Sep 17 00:00:00 2001 From: Ryan Burns Date: Tue, 24 Aug 2021 00:21:04 -0700 Subject: [PATCH 23/58] cc-wrapper: ensure PIE flags precede PIC flags fixes: pkgsMusl.bulletml pkgsMusl.proot pkgsMusl.python3 Debian explains this issue well in the dpkg-buildflags manpage: -fPIE Can be linked into any program, but not a shared library (recommended). -fPIC Can be linked into any program and shared library. On projects that build both programs and shared libraries you might need to make sure that when building the shared libraries -fPIC is always passed last (so that it overrides any previous -PIE) to compilation flags such as CFLAGS. (from https://manpages.debian.org/bullseye/dpkg-dev/dpkg-buildflags.1.en.html#hardening) --- pkgs/build-support/cc-wrapper/add-hardening.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/build-support/cc-wrapper/add-hardening.sh b/pkgs/build-support/cc-wrapper/add-hardening.sh index 8e2fe6c407ea..dc530bf943d2 100644 --- a/pkgs/build-support/cc-wrapper/add-hardening.sh +++ b/pkgs/build-support/cc-wrapper/add-hardening.sh @@ -45,11 +45,12 @@ for flag in "${!hardeningEnableMap[@]}"; do hardeningCFlags+=('-fstack-protector-strong' '--param' 'ssp-buffer-size=4') ;; pie) + # NB: we do not use `+=` here, because PIE flags must occur before any PIC flags if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling CFlags -fPIE >&2; fi - hardeningCFlags+=('-fPIE') + hardeningCFlags=('-fPIE' "${hardeningCFlags[@]}") if [[ ! ("$*" =~ " -shared " || "$*" =~ " -static ") ]]; then if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling LDFlags -pie >&2; fi - hardeningCFlags+=('-pie') + hardeningCFlags=('-pie' "${hardeningCFlags[@]}") fi ;; pic) From 04b176df0093e4764cfddb87ff0e6c1de89312ec Mon Sep 17 00:00:00 2001 From: AndersonTorres Date: Mon, 20 Sep 2021 15:16:44 -0300 Subject: [PATCH 24/58] pcre2: 10.36 -> 10.37 --- pkgs/development/libraries/pcre2/default.nix | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/pkgs/development/libraries/pcre2/default.nix b/pkgs/development/libraries/pcre2/default.nix index 188fa9b16b7e..dbf8f6b750f8 100644 --- a/pkgs/development/libraries/pcre2/default.nix +++ b/pkgs/development/libraries/pcre2/default.nix @@ -1,30 +1,33 @@ -{ lib, stdenv, fetchurl }: +{ lib +, stdenv +, fetchurl +}: stdenv.mkDerivation rec { pname = "pcre2"; - version = "10.36"; + version = "10.37"; src = fetchurl { url = "https://ftp.pcre.org/pub/pcre/${pname}-${version}.tar.bz2"; - sha256 = "0p3699msps07p40g9426lvxa3b41rg7k2fn7qxl2jm0kh4kkkvx9"; + hash = "sha256-TZWpbouAUpiTtFYr4SZI15i5V7G6Gq45YGu8KrlW0nA="; }; # Disable jit on Apple Silicon, https://github.com/zherczeg/sljit/issues/51 configureFlags = [ "--enable-pcre2-16" "--enable-pcre2-32" - ] ++ lib.optional (!stdenv.hostPlatform.isRiscV && !(stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)) "--enable-jit"; + ] ++ lib.optional (!stdenv.hostPlatform.isRiscV && + !(stdenv.hostPlatform.isDarwin && + stdenv.hostPlatform.isAarch64)) "--enable-jit"; outputs = [ "bin" "dev" "out" "doc" "man" "devdoc" ]; - doCheck = false; # fails 1 out of 3 tests, looks like a bug - postFixup = '' moveToOutput bin/pcre2-config "$dev" ''; meta = with lib; { - description = "Perl Compatible Regular Expressions"; homepage = "http://www.pcre.org/"; + description = "Perl Compatible Regular Expressions"; license = licenses.bsd3; maintainers = with maintainers; [ ttuegel ]; platforms = platforms.all; From 974e68a7ad4b7c4be7fddbf89265fce40374eee0 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Tue, 31 Aug 2021 19:27:57 +0100 Subject: [PATCH 25/58] gcc: remove from libsanitizer linux-headers-5.13 removed along with device support. Backport a single https://gcc.gnu.org/PR100379 upstream change to fix gcc build. Use local (unmodified) upstream patches to avoid fetchpatch dependency. --- pkgs/development/compilers/gcc/10/default.nix | 4 +- pkgs/development/compilers/gcc/11/default.nix | 4 +- .../development/compilers/gcc/4.9/default.nix | 4 +- pkgs/development/compilers/gcc/6/default.nix | 4 +- pkgs/development/compilers/gcc/7/default.nix | 4 +- pkgs/development/compilers/gcc/8/default.nix | 4 +- pkgs/development/compilers/gcc/9/default.nix | 4 +- .../gcc/libsanitizer-no-cyclades-9.patch | 82 ++++++++++++++++++ .../gcc/libsanitizer-no-cyclades.patch | 83 +++++++++++++++++++ 9 files changed, 186 insertions(+), 7 deletions(-) create mode 100644 pkgs/development/compilers/gcc/libsanitizer-no-cyclades-9.patch create mode 100644 pkgs/development/compilers/gcc/libsanitizer-no-cyclades.patch diff --git a/pkgs/development/compilers/gcc/10/default.nix b/pkgs/development/compilers/gcc/10/default.nix index a1598d3d3f07..f9dd0465b925 100644 --- a/pkgs/development/compilers/gcc/10/default.nix +++ b/pkgs/development/compilers/gcc/10/default.nix @@ -73,7 +73,9 @@ let majorVersion = "10"; ++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch # Obtain latest patch with ../update-mcfgthread-patches.sh - ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch; + ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch + + ++ [ ../libsanitizer-no-cyclades.patch ]; /* Cross-gcc settings (build == host != target) */ crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt"; diff --git a/pkgs/development/compilers/gcc/11/default.nix b/pkgs/development/compilers/gcc/11/default.nix index 7b7f542de0cf..850b267441fd 100644 --- a/pkgs/development/compilers/gcc/11/default.nix +++ b/pkgs/development/compilers/gcc/11/default.nix @@ -78,7 +78,9 @@ let majorVersion = "11"; }) # Obtain latest patch with ../update-mcfgthread-patches.sh - ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch; + ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch + + ++ [ ../libsanitizer-no-cyclades.patch ]; /* Cross-gcc settings (build == host != target) */ crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt"; diff --git a/pkgs/development/compilers/gcc/4.9/default.nix b/pkgs/development/compilers/gcc/4.9/default.nix index a15cb770fdfa..2b81e1c3e0b9 100644 --- a/pkgs/development/compilers/gcc/4.9/default.nix +++ b/pkgs/development/compilers/gcc/4.9/default.nix @@ -98,7 +98,9 @@ let majorVersion = "4"; { commit = "98c7bf9ddc80db965d69d61521b1c7a1cec32d9a"; sha256 = "1d7pfdv1q23nf0wadw7jbp6d6r7pnzjpbyxgbdfv7j1vr9l1bp60"; } { commit = "3dc76b53ad896494ca62550a7a752fecbca3f7a2"; sha256 = "0jvdzfpvfdmklfcjwqblwq1i22iqis7ljpvm7adra5d7zf2xk7xz"; } { commit = "1e961ed49b18e176c7457f53df2433421387c23b"; sha256 = "04dnqqs4qsvz4g8cq6db5id41kzys7hzhcaycwmc9rpqygs2ajwz"; } - { commit = "e137c72d099f9b3b47f4cc718aa11eab14df1a9c"; sha256 = "1ms0dmz74yf6kwgjfs4d2fhj8y6mcp2n184r3jk44wx2xc24vgb2"; }]; + { commit = "e137c72d099f9b3b47f4cc718aa11eab14df1a9c"; sha256 = "1ms0dmz74yf6kwgjfs4d2fhj8y6mcp2n184r3jk44wx2xc24vgb2"; }] + + ++ [ ../libsanitizer-no-cyclades-9.patch ]; javaEcj = fetchurl { # The `$(top_srcdir)/ecj.jar' file is automatically picked up at diff --git a/pkgs/development/compilers/gcc/6/default.nix b/pkgs/development/compilers/gcc/6/default.nix index df4a632db05d..e0ef8e317899 100644 --- a/pkgs/development/compilers/gcc/6/default.nix +++ b/pkgs/development/compilers/gcc/6/default.nix @@ -87,7 +87,9 @@ let majorVersion = "6"; ++ optional (targetPlatform.libc == "musl" && targetPlatform.isx86_32) (fetchpatch { url = "https://git.alpinelinux.org/aports/plain/main/gcc/gcc-6.1-musl-libssp.patch?id=5e4b96e23871ee28ef593b439f8c07ca7c7eb5bb"; sha256 = "1jf1ciz4gr49lwyh8knfhw6l5gvfkwzjy90m7qiwkcbsf4a3fqn2"; - }); + }) + + ++ [ ../libsanitizer-no-cyclades-9.patch ]; javaEcj = fetchurl { # The `$(top_srcdir)/ecj.jar' file is automatically picked up at diff --git a/pkgs/development/compilers/gcc/7/default.nix b/pkgs/development/compilers/gcc/7/default.nix index 44e8b38fdf80..dcb7d0b91f6f 100644 --- a/pkgs/development/compilers/gcc/7/default.nix +++ b/pkgs/development/compilers/gcc/7/default.nix @@ -84,7 +84,9 @@ let majorVersion = "7"; ++ optional (targetPlatform.libc == "musl") ../libgomp-dont-force-initial-exec.patch # Obtain latest patch with ../update-mcfgthread-patches.sh - ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch; + ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch + + ++ [ ../libsanitizer-no-cyclades-9.patch ]; /* Cross-gcc settings (build == host != target) */ crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt"; diff --git a/pkgs/development/compilers/gcc/8/default.nix b/pkgs/development/compilers/gcc/8/default.nix index b264d37418e8..a6fd34c60cc3 100644 --- a/pkgs/development/compilers/gcc/8/default.nix +++ b/pkgs/development/compilers/gcc/8/default.nix @@ -71,7 +71,9 @@ let majorVersion = "8"; ++ optional (targetPlatform.libc == "musl") ../libgomp-dont-force-initial-exec.patch # Obtain latest patch with ../update-mcfgthread-patches.sh - ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch; + ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch + + ++ [ ../libsanitizer-no-cyclades-9.patch ]; /* Cross-gcc settings (build == host != target) */ crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt"; diff --git a/pkgs/development/compilers/gcc/9/default.nix b/pkgs/development/compilers/gcc/9/default.nix index 43b2e0b5ef51..604d90fa7828 100644 --- a/pkgs/development/compilers/gcc/9/default.nix +++ b/pkgs/development/compilers/gcc/9/default.nix @@ -87,7 +87,9 @@ let majorVersion = "9"; ++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch # Obtain latest patch with ../update-mcfgthread-patches.sh - ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch; + ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch + + ++ [ ../libsanitizer-no-cyclades-9.patch ]; /* Cross-gcc settings (build == host != target) */ crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt"; diff --git a/pkgs/development/compilers/gcc/libsanitizer-no-cyclades-9.patch b/pkgs/development/compilers/gcc/libsanitizer-no-cyclades-9.patch new file mode 100644 index 000000000000..072403d1495f --- /dev/null +++ b/pkgs/development/compilers/gcc/libsanitizer-no-cyclades-9.patch @@ -0,0 +1,82 @@ +https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=2b40941d23b1570cdd90083b58fa0f66aa58c86e +https://gcc.gnu.org/PR100379 +--- a/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc ++++ b/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +@@ -365,15 +365,6 @@ static void ioctl_table_fill() { + + #if SANITIZER_LINUX && !SANITIZER_ANDROID + // _(SIOCDEVPLIP, WRITE, struct_ifreq_sz); // the same as EQL_ENSLAVE +- _(CYGETDEFTHRESH, WRITE, sizeof(int)); +- _(CYGETDEFTIMEOUT, WRITE, sizeof(int)); +- _(CYGETMON, WRITE, struct_cyclades_monitor_sz); +- _(CYGETTHRESH, WRITE, sizeof(int)); +- _(CYGETTIMEOUT, WRITE, sizeof(int)); +- _(CYSETDEFTHRESH, NONE, 0); +- _(CYSETDEFTIMEOUT, NONE, 0); +- _(CYSETTHRESH, NONE, 0); +- _(CYSETTIMEOUT, NONE, 0); + _(EQL_EMANCIPATE, WRITE, struct_ifreq_sz); + _(EQL_ENSLAVE, WRITE, struct_ifreq_sz); + _(EQL_GETMASTRCFG, WRITE, struct_ifreq_sz); +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc +@@ -157,7 +157,6 @@ typedef struct user_fpregs elf_fpregset_t; + # include + #endif + #include +-#include + #include + #include + #include +@@ -466,7 +465,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); + + #if SANITIZER_LINUX && !SANITIZER_ANDROID + unsigned struct_ax25_parms_struct_sz = sizeof(struct ax25_parms_struct); +- unsigned struct_cyclades_monitor_sz = sizeof(struct cyclades_monitor); + #if EV_VERSION > (0x010000) + unsigned struct_input_keymap_entry_sz = sizeof(struct input_keymap_entry); + #else +@@ -833,15 +831,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); + #endif // SANITIZER_LINUX || SANITIZER_FREEBSD + + #if SANITIZER_LINUX && !SANITIZER_ANDROID +- unsigned IOCTL_CYGETDEFTHRESH = CYGETDEFTHRESH; +- unsigned IOCTL_CYGETDEFTIMEOUT = CYGETDEFTIMEOUT; +- unsigned IOCTL_CYGETMON = CYGETMON; +- unsigned IOCTL_CYGETTHRESH = CYGETTHRESH; +- unsigned IOCTL_CYGETTIMEOUT = CYGETTIMEOUT; +- unsigned IOCTL_CYSETDEFTHRESH = CYSETDEFTHRESH; +- unsigned IOCTL_CYSETDEFTIMEOUT = CYSETDEFTIMEOUT; +- unsigned IOCTL_CYSETTHRESH = CYSETTHRESH; +- unsigned IOCTL_CYSETTIMEOUT = CYSETTIMEOUT; + unsigned IOCTL_EQL_EMANCIPATE = EQL_EMANCIPATE; + unsigned IOCTL_EQL_ENSLAVE = EQL_ENSLAVE; + unsigned IOCTL_EQL_GETMASTRCFG = EQL_GETMASTRCFG; +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +@@ -1040,7 +1040,6 @@ struct __sanitizer_cookie_io_functions_t { + + #if SANITIZER_LINUX && !SANITIZER_ANDROID + extern unsigned struct_ax25_parms_struct_sz; +- extern unsigned struct_cyclades_monitor_sz; + extern unsigned struct_input_keymap_entry_sz; + extern unsigned struct_ipx_config_data_sz; + extern unsigned struct_kbdiacrs_sz; +@@ -1385,15 +1384,6 @@ struct __sanitizer_cookie_io_functions_t { + #endif // SANITIZER_LINUX || SANITIZER_FREEBSD + + #if SANITIZER_LINUX && !SANITIZER_ANDROID +- extern unsigned IOCTL_CYGETDEFTHRESH; +- extern unsigned IOCTL_CYGETDEFTIMEOUT; +- extern unsigned IOCTL_CYGETMON; +- extern unsigned IOCTL_CYGETTHRESH; +- extern unsigned IOCTL_CYGETTIMEOUT; +- extern unsigned IOCTL_CYSETDEFTHRESH; +- extern unsigned IOCTL_CYSETDEFTIMEOUT; +- extern unsigned IOCTL_CYSETTHRESH; +- extern unsigned IOCTL_CYSETTIMEOUT; + extern unsigned IOCTL_EQL_EMANCIPATE; + extern unsigned IOCTL_EQL_ENSLAVE; + extern unsigned IOCTL_EQL_GETMASTRCFG; +-- +2.27.0 diff --git a/pkgs/development/compilers/gcc/libsanitizer-no-cyclades.patch b/pkgs/development/compilers/gcc/libsanitizer-no-cyclades.patch new file mode 100644 index 000000000000..e2155cd0c982 --- /dev/null +++ b/pkgs/development/compilers/gcc/libsanitizer-no-cyclades.patch @@ -0,0 +1,83 @@ +https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=2bf34b9f4e446bf9be7f04458058dd5319fb396e +https://gcc.gnu.org/PR100379 +--- a/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc ++++ b/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +@@ -366,15 +366,6 @@ static void ioctl_table_fill() { + + #if SANITIZER_LINUX && !SANITIZER_ANDROID + // _(SIOCDEVPLIP, WRITE, struct_ifreq_sz); // the same as EQL_ENSLAVE +- _(CYGETDEFTHRESH, WRITE, sizeof(int)); +- _(CYGETDEFTIMEOUT, WRITE, sizeof(int)); +- _(CYGETMON, WRITE, struct_cyclades_monitor_sz); +- _(CYGETTHRESH, WRITE, sizeof(int)); +- _(CYGETTIMEOUT, WRITE, sizeof(int)); +- _(CYSETDEFTHRESH, NONE, 0); +- _(CYSETDEFTIMEOUT, NONE, 0); +- _(CYSETTHRESH, NONE, 0); +- _(CYSETTIMEOUT, NONE, 0); + _(EQL_EMANCIPATE, WRITE, struct_ifreq_sz); + _(EQL_ENSLAVE, WRITE, struct_ifreq_sz); + _(EQL_GETMASTRCFG, WRITE, struct_ifreq_sz); +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp +@@ -130,7 +130,6 @@ typedef struct user_fpregs elf_fpregset_t; + # include + #endif + #include +-#include + #include + #include + #include +@@ -443,7 +442,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); + + #if SANITIZER_LINUX && !SANITIZER_ANDROID + unsigned struct_ax25_parms_struct_sz = sizeof(struct ax25_parms_struct); +- unsigned struct_cyclades_monitor_sz = sizeof(struct cyclades_monitor); + #if EV_VERSION > (0x010000) + unsigned struct_input_keymap_entry_sz = sizeof(struct input_keymap_entry); + #else +@@ -809,15 +807,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); + #endif // SANITIZER_LINUX + + #if SANITIZER_LINUX && !SANITIZER_ANDROID +- unsigned IOCTL_CYGETDEFTHRESH = CYGETDEFTHRESH; +- unsigned IOCTL_CYGETDEFTIMEOUT = CYGETDEFTIMEOUT; +- unsigned IOCTL_CYGETMON = CYGETMON; +- unsigned IOCTL_CYGETTHRESH = CYGETTHRESH; +- unsigned IOCTL_CYGETTIMEOUT = CYGETTIMEOUT; +- unsigned IOCTL_CYSETDEFTHRESH = CYSETDEFTHRESH; +- unsigned IOCTL_CYSETDEFTIMEOUT = CYSETDEFTIMEOUT; +- unsigned IOCTL_CYSETTHRESH = CYSETTHRESH; +- unsigned IOCTL_CYSETTIMEOUT = CYSETTIMEOUT; + unsigned IOCTL_EQL_EMANCIPATE = EQL_EMANCIPATE; + unsigned IOCTL_EQL_ENSLAVE = EQL_ENSLAVE; + unsigned IOCTL_EQL_GETMASTRCFG = EQL_GETMASTRCFG; +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +@@ -974,7 +974,6 @@ extern unsigned struct_vt_mode_sz; + + #if SANITIZER_LINUX && !SANITIZER_ANDROID + extern unsigned struct_ax25_parms_struct_sz; +-extern unsigned struct_cyclades_monitor_sz; + extern unsigned struct_input_keymap_entry_sz; + extern unsigned struct_ipx_config_data_sz; + extern unsigned struct_kbdiacrs_sz; +@@ -1319,15 +1318,6 @@ extern unsigned IOCTL_VT_WAITACTIVE; + #endif // SANITIZER_LINUX + + #if SANITIZER_LINUX && !SANITIZER_ANDROID +-extern unsigned IOCTL_CYGETDEFTHRESH; +-extern unsigned IOCTL_CYGETDEFTIMEOUT; +-extern unsigned IOCTL_CYGETMON; +-extern unsigned IOCTL_CYGETTHRESH; +-extern unsigned IOCTL_CYGETTIMEOUT; +-extern unsigned IOCTL_CYSETDEFTHRESH; +-extern unsigned IOCTL_CYSETDEFTIMEOUT; +-extern unsigned IOCTL_CYSETTHRESH; +-extern unsigned IOCTL_CYSETTIMEOUT; + extern unsigned IOCTL_EQL_EMANCIPATE; + extern unsigned IOCTL_EQL_ENSLAVE; + extern unsigned IOCTL_EQL_GETMASTRCFG; +-- +2.33.0 + From 199b7c505b0390429b08edf68552e8a6ff4a08ce Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Wed, 1 Sep 2021 08:15:44 +0100 Subject: [PATCH 26/58] compiler-rt: remove from libsanitizer linux-headers-5.13 removed along with device support. Backport a single https://reviews.llvm.org/D102059 upstream change to fix compiler-rt build. Use local patches as there is a whitespace change compared to upstream. --- .../compilers/llvm/10/compiler-rt/default.nix | 1 + .../compilers/llvm/11/compiler-rt/default.nix | 1 + .../compilers/llvm/5/compiler-rt/default.nix | 3 +- .../compilers/llvm/6/compiler-rt/default.nix | 1 + .../compilers/llvm/7/compiler-rt/default.nix | 1 + .../compilers/llvm/8/compiler-rt/default.nix | 1 + .../compilers/llvm/9/compiler-rt/default.nix | 1 + .../libsanitizer-no-cyclades-11.patch | 80 +++++++++++++++++++ .../libsanitizer-no-cyclades-9.patch | 80 +++++++++++++++++++ 9 files changed, 168 insertions(+), 1 deletion(-) create mode 100644 pkgs/development/compilers/llvm/common/compiler-rt/libsanitizer-no-cyclades-11.patch create mode 100644 pkgs/development/compilers/llvm/common/compiler-rt/libsanitizer-no-cyclades-9.patch diff --git a/pkgs/development/compilers/llvm/10/compiler-rt/default.nix b/pkgs/development/compilers/llvm/10/compiler-rt/default.nix index faba5d97b79d..657a465a3fe7 100644 --- a/pkgs/development/compilers/llvm/10/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/10/compiler-rt/default.nix @@ -57,6 +57,7 @@ stdenv.mkDerivation { ./codesign.patch # Revert compiler-rt commit that makes codesign mandatory ./find-darwin-sdk-version.patch # don't test for macOS being >= 10.15 ./gnu-install-dirs.patch + ../../common/compiler-rt/libsanitizer-no-cyclades-11.patch ]# ++ lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch ++ lib.optional stdenv.hostPlatform.isAarch32 ./armv7l.patch; diff --git a/pkgs/development/compilers/llvm/11/compiler-rt/default.nix b/pkgs/development/compilers/llvm/11/compiler-rt/default.nix index e5b79692ae24..1111f14f9bea 100644 --- a/pkgs/development/compilers/llvm/11/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/11/compiler-rt/default.nix @@ -58,6 +58,7 @@ stdenv.mkDerivation { # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the # extra `/`. ./normalize-var.patch + ../../common/compiler-rt/libsanitizer-no-cyclades-11.patch ]# ++ lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch ++ lib.optional stdenv.hostPlatform.isAarch32 ./armv7l.patch; diff --git a/pkgs/development/compilers/llvm/5/compiler-rt/default.nix b/pkgs/development/compilers/llvm/5/compiler-rt/default.nix index 9f937ed140fd..c684437cefdb 100644 --- a/pkgs/development/compilers/llvm/5/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/5/compiler-rt/default.nix @@ -57,7 +57,8 @@ stdenv.mkDerivation { ./gnu-install-dirs.patch ] ++ lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch ++ lib.optional (stdenv.hostPlatform.libc == "glibc") ./sys-ustat.patch - ++ lib.optional stdenv.hostPlatform.isAarch32 ./armv7l.patch; + ++ lib.optional stdenv.hostPlatform.isAarch32 ./armv7l.patch + ++ [ ../../common/compiler-rt/libsanitizer-no-cyclades-9.patch ]; # TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks # to get it, but they're unfree. Since LLVM is rather central to the stdenv, we patch out TSAN support so that Hydra diff --git a/pkgs/development/compilers/llvm/6/compiler-rt/default.nix b/pkgs/development/compilers/llvm/6/compiler-rt/default.nix index 7ee0943a8886..74c17fd3e647 100644 --- a/pkgs/development/compilers/llvm/6/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/6/compiler-rt/default.nix @@ -55,6 +55,7 @@ stdenv.mkDerivation { # https://github.com/llvm/llvm-project/commit/947f9692440836dcb8d88b74b69dd379d85974ce ../../common/compiler-rt/glibc.patch ./gnu-install-dirs.patch + ../../common/compiler-rt/libsanitizer-no-cyclades-9.patch ] ++ lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch ++ lib.optional stdenv.hostPlatform.isAarch32 ./armv7l.patch; diff --git a/pkgs/development/compilers/llvm/7/compiler-rt/default.nix b/pkgs/development/compilers/llvm/7/compiler-rt/default.nix index f6190b799189..6ea1280a4033 100644 --- a/pkgs/development/compilers/llvm/7/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/7/compiler-rt/default.nix @@ -57,6 +57,7 @@ stdenv.mkDerivation { ../../common/compiler-rt/glibc.patch ./codesign.patch # Revert compiler-rt commit that makes codesign mandatory ./gnu-install-dirs.patch + ../../common/compiler-rt/libsanitizer-no-cyclades-9.patch ] ++ lib.optional (useLLVM) ./crtbegin-and-end.patch ++ lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch ++ lib.optional stdenv.hostPlatform.isAarch32 ./armv7l.patch; diff --git a/pkgs/development/compilers/llvm/8/compiler-rt/default.nix b/pkgs/development/compilers/llvm/8/compiler-rt/default.nix index bbaae803738d..62672b336fff 100644 --- a/pkgs/development/compilers/llvm/8/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/8/compiler-rt/default.nix @@ -57,6 +57,7 @@ stdenv.mkDerivation { ../../common/compiler-rt/glibc.patch ./codesign.patch # Revert compiler-rt commit that makes codesign mandatory ./gnu-install-dirs.patch + ../../common/compiler-rt/libsanitizer-no-cyclades-9.patch ]# ++ lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch ++ lib.optional (useLLVM) ./crtbegin-and-end.patch ++ lib.optional stdenv.hostPlatform.isAarch32 ./armv7l.patch; diff --git a/pkgs/development/compilers/llvm/9/compiler-rt/default.nix b/pkgs/development/compilers/llvm/9/compiler-rt/default.nix index 4dc75bd1c14c..83a75f516a05 100644 --- a/pkgs/development/compilers/llvm/9/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/9/compiler-rt/default.nix @@ -57,6 +57,7 @@ stdenv.mkDerivation { ../../common/compiler-rt/glibc.patch ./codesign.patch # Revert compiler-rt commit that makes codesign mandatory ./gnu-install-dirs.patch + ../../common/compiler-rt/libsanitizer-no-cyclades-9.patch ]# ++ lib.optional stdenv.hostPlatform.isMusl ./sanitizers-nongnu.patch ++ lib.optional stdenv.hostPlatform.isAarch32 ./armv7l.patch; diff --git a/pkgs/development/compilers/llvm/common/compiler-rt/libsanitizer-no-cyclades-11.patch b/pkgs/development/compilers/llvm/common/compiler-rt/libsanitizer-no-cyclades-11.patch new file mode 100644 index 000000000000..890230cc14ee --- /dev/null +++ b/pkgs/development/compilers/llvm/common/compiler-rt/libsanitizer-no-cyclades-11.patch @@ -0,0 +1,80 @@ +https://github.com/llvm/llvm-project/commit/68d5235cb58f988c71b403334cd9482d663841ab.patch +https://reviews.llvm.org/D102059 +--- a/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc ++++ b/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +@@ -370,15 +370,6 @@ static void ioctl_table_fill() { + + #if SANITIZER_GLIBC + // _(SIOCDEVPLIP, WRITE, struct_ifreq_sz); // the same as EQL_ENSLAVE +- _(CYGETDEFTHRESH, WRITE, sizeof(int)); +- _(CYGETDEFTIMEOUT, WRITE, sizeof(int)); +- _(CYGETMON, WRITE, struct_cyclades_monitor_sz); +- _(CYGETTHRESH, WRITE, sizeof(int)); +- _(CYGETTIMEOUT, WRITE, sizeof(int)); +- _(CYSETDEFTHRESH, NONE, 0); +- _(CYSETDEFTIMEOUT, NONE, 0); +- _(CYSETTHRESH, NONE, 0); +- _(CYSETTIMEOUT, NONE, 0); + _(EQL_EMANCIPATE, WRITE, struct_ifreq_sz); + _(EQL_ENSLAVE, WRITE, struct_ifreq_sz); + _(EQL_GETMASTRCFG, WRITE, struct_ifreq_sz); +--- a/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp ++++ b/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp +@@ -143,7 +143,6 @@ typedef struct user_fpregs elf_fpregset_t; + # include + #endif + #include +-#include + #include + #include + #include +@@ -460,7 +459,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); + + #if SANITIZER_GLIBC + unsigned struct_ax25_parms_struct_sz = sizeof(struct ax25_parms_struct); +- unsigned struct_cyclades_monitor_sz = sizeof(struct cyclades_monitor); + #if EV_VERSION > (0x010000) + unsigned struct_input_keymap_entry_sz = sizeof(struct input_keymap_entry); + #else +@@ -824,15 +822,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); + #endif // SANITIZER_LINUX + + #if SANITIZER_LINUX && !SANITIZER_ANDROID +- unsigned IOCTL_CYGETDEFTHRESH = CYGETDEFTHRESH; +- unsigned IOCTL_CYGETDEFTIMEOUT = CYGETDEFTIMEOUT; +- unsigned IOCTL_CYGETMON = CYGETMON; +- unsigned IOCTL_CYGETTHRESH = CYGETTHRESH; +- unsigned IOCTL_CYGETTIMEOUT = CYGETTIMEOUT; +- unsigned IOCTL_CYSETDEFTHRESH = CYSETDEFTHRESH; +- unsigned IOCTL_CYSETDEFTIMEOUT = CYSETDEFTIMEOUT; +- unsigned IOCTL_CYSETTHRESH = CYSETTHRESH; +- unsigned IOCTL_CYSETTIMEOUT = CYSETTIMEOUT; + unsigned IOCTL_EQL_EMANCIPATE = EQL_EMANCIPATE; + unsigned IOCTL_EQL_ENSLAVE = EQL_ENSLAVE; + unsigned IOCTL_EQL_GETMASTRCFG = EQL_GETMASTRCFG; +--- a/lib/sanitizer_common/sanitizer_platform_limits_posix.h ++++ b/lib/sanitizer_common/sanitizer_platform_limits_posix.h +@@ -983,7 +983,6 @@ extern unsigned struct_vt_mode_sz; + + #if SANITIZER_LINUX && !SANITIZER_ANDROID + extern unsigned struct_ax25_parms_struct_sz; +-extern unsigned struct_cyclades_monitor_sz; + extern unsigned struct_input_keymap_entry_sz; + extern unsigned struct_ipx_config_data_sz; + extern unsigned struct_kbdiacrs_sz; +@@ -1328,15 +1327,6 @@ extern unsigned IOCTL_VT_WAITACTIVE; + #endif // SANITIZER_LINUX + + #if SANITIZER_LINUX && !SANITIZER_ANDROID +-extern unsigned IOCTL_CYGETDEFTHRESH; +-extern unsigned IOCTL_CYGETDEFTIMEOUT; +-extern unsigned IOCTL_CYGETMON; +-extern unsigned IOCTL_CYGETTHRESH; +-extern unsigned IOCTL_CYGETTIMEOUT; +-extern unsigned IOCTL_CYSETDEFTHRESH; +-extern unsigned IOCTL_CYSETDEFTIMEOUT; +-extern unsigned IOCTL_CYSETTHRESH; +-extern unsigned IOCTL_CYSETTIMEOUT; + extern unsigned IOCTL_EQL_EMANCIPATE; + extern unsigned IOCTL_EQL_ENSLAVE; + extern unsigned IOCTL_EQL_GETMASTRCFG; diff --git a/pkgs/development/compilers/llvm/common/compiler-rt/libsanitizer-no-cyclades-9.patch b/pkgs/development/compilers/llvm/common/compiler-rt/libsanitizer-no-cyclades-9.patch new file mode 100644 index 000000000000..7ef02a169269 --- /dev/null +++ b/pkgs/development/compilers/llvm/common/compiler-rt/libsanitizer-no-cyclades-9.patch @@ -0,0 +1,80 @@ +https://github.com/llvm/llvm-project/commit/68d5235cb58f988c71b403334cd9482d663841ab.patch +https://reviews.llvm.org/D102059 +--- a/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc ++++ b/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +@@ -370,15 +370,6 @@ static void ioctl_table_fill() { + + #if SANITIZER_GLIBC + // _(SIOCDEVPLIP, WRITE, struct_ifreq_sz); // the same as EQL_ENSLAVE +- _(CYGETDEFTHRESH, WRITE, sizeof(int)); +- _(CYGETDEFTIMEOUT, WRITE, sizeof(int)); +- _(CYGETMON, WRITE, struct_cyclades_monitor_sz); +- _(CYGETTHRESH, WRITE, sizeof(int)); +- _(CYGETTIMEOUT, WRITE, sizeof(int)); +- _(CYSETDEFTHRESH, NONE, 0); +- _(CYSETDEFTIMEOUT, NONE, 0); +- _(CYSETTHRESH, NONE, 0); +- _(CYSETTIMEOUT, NONE, 0); + _(EQL_EMANCIPATE, WRITE, struct_ifreq_sz); + _(EQL_ENSLAVE, WRITE, struct_ifreq_sz); + _(EQL_GETMASTRCFG, WRITE, struct_ifreq_sz); +--- a/lib/sanitizer_common/sanitizer_platform_limits_posix.cc ++++ b/lib/sanitizer_common/sanitizer_platform_limits_posix.cc +@@ -143,7 +143,6 @@ typedef struct user_fpregs elf_fpregset_t; + # include + #endif + #include +-#include + #include + #include + #include +@@ -460,7 +459,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); + + #if SANITIZER_GLIBC + unsigned struct_ax25_parms_struct_sz = sizeof(struct ax25_parms_struct); +- unsigned struct_cyclades_monitor_sz = sizeof(struct cyclades_monitor); + #if EV_VERSION > (0x010000) + unsigned struct_input_keymap_entry_sz = sizeof(struct input_keymap_entry); + #else +@@ -824,15 +822,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); + #endif // SANITIZER_LINUX + + #if SANITIZER_LINUX && !SANITIZER_ANDROID +- unsigned IOCTL_CYGETDEFTHRESH = CYGETDEFTHRESH; +- unsigned IOCTL_CYGETDEFTIMEOUT = CYGETDEFTIMEOUT; +- unsigned IOCTL_CYGETMON = CYGETMON; +- unsigned IOCTL_CYGETTHRESH = CYGETTHRESH; +- unsigned IOCTL_CYGETTIMEOUT = CYGETTIMEOUT; +- unsigned IOCTL_CYSETDEFTHRESH = CYSETDEFTHRESH; +- unsigned IOCTL_CYSETDEFTIMEOUT = CYSETDEFTIMEOUT; +- unsigned IOCTL_CYSETTHRESH = CYSETTHRESH; +- unsigned IOCTL_CYSETTIMEOUT = CYSETTIMEOUT; + unsigned IOCTL_EQL_EMANCIPATE = EQL_EMANCIPATE; + unsigned IOCTL_EQL_ENSLAVE = EQL_ENSLAVE; + unsigned IOCTL_EQL_GETMASTRCFG = EQL_GETMASTRCFG; +--- a/lib/sanitizer_common/sanitizer_platform_limits_posix.h ++++ b/lib/sanitizer_common/sanitizer_platform_limits_posix.h +@@ -983,7 +983,6 @@ extern unsigned struct_vt_mode_sz; + + #if SANITIZER_LINUX && !SANITIZER_ANDROID + extern unsigned struct_ax25_parms_struct_sz; +- extern unsigned struct_cyclades_monitor_sz; + extern unsigned struct_input_keymap_entry_sz; + extern unsigned struct_ipx_config_data_sz; + extern unsigned struct_kbdiacrs_sz; +@@ -1328,15 +1327,6 @@ extern unsigned IOCTL_VT_WAITACTIVE; + #endif // SANITIZER_LINUX + + #if SANITIZER_LINUX && !SANITIZER_ANDROID +- extern unsigned IOCTL_CYGETDEFTHRESH; +- extern unsigned IOCTL_CYGETDEFTIMEOUT; +- extern unsigned IOCTL_CYGETMON; +- extern unsigned IOCTL_CYGETTHRESH; +- extern unsigned IOCTL_CYGETTIMEOUT; +- extern unsigned IOCTL_CYSETDEFTHRESH; +- extern unsigned IOCTL_CYSETDEFTIMEOUT; +- extern unsigned IOCTL_CYSETTHRESH; +- extern unsigned IOCTL_CYSETTIMEOUT; + extern unsigned IOCTL_EQL_EMANCIPATE; + extern unsigned IOCTL_EQL_ENSLAVE; + extern unsigned IOCTL_EQL_GETMASTRCFG; From f75b03979cf7fc140c06682f3de9dda72fd459b1 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Tue, 31 Aug 2021 19:18:55 +0100 Subject: [PATCH 27/58] linuxHeaders: 5.12 -> 5.14 --- pkgs/os-specific/linux/kernel-headers/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel-headers/default.nix b/pkgs/os-specific/linux/kernel-headers/default.nix index 9d727838b3fb..27428b37284d 100644 --- a/pkgs/os-specific/linux/kernel-headers/default.nix +++ b/pkgs/os-specific/linux/kernel-headers/default.nix @@ -81,12 +81,12 @@ let in { inherit makeLinuxHeaders; - linuxHeaders = let version = "5.12"; in + linuxHeaders = let version = "5.14"; in makeLinuxHeaders { inherit version; src = fetchurl { url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz"; - sha256 = "sha256-fQ328r8jhNaNC9jh/j4HHWQ2Tc3GAC57XIfJLUj6w2Y="; + sha256 = "sha256-fgaLXg0mpisQ5TILJdzldYjLvG94HAkEQhOMnJwycbI="; }; patches = [ ./no-relocs.patch # for building x86 kernel headers on non-ELF platforms From 34492644369f896a5b363e4085a174fc4ac0ce23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Sun, 19 Sep 2021 13:45:53 +0200 Subject: [PATCH 28/58] Revert "linuxPackages.bcc: fix build" This reverts commit 38e5d82d59529e96b55f8a33a954d481d77287a1. --- pkgs/os-specific/linux/bcc/default.nix | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/pkgs/os-specific/linux/bcc/default.nix b/pkgs/os-specific/linux/bcc/default.nix index 929981df4706..221f38faa879 100644 --- a/pkgs/os-specific/linux/bcc/default.nix +++ b/pkgs/os-specific/linux/bcc/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchFromGitHub, fetchpatch +{ lib, stdenv, fetchFromGitHub , makeWrapper, cmake, llvmPackages, kernel , flex, bison, elfutils, python, luajit, netperf, iperf, libelf , systemtap, bash, libbpf @@ -29,12 +29,6 @@ python.pkgs.buildPythonApplication rec { # This is needed until we fix # https://github.com/NixOS/nixpkgs/issues/40427 ./fix-deadlock-detector-import.patch - # Add definition for BTF_KIND_FLOAT, added in Linux 5.14 - # Can be removed once linuxHeaders (used here via glibc) are bumped to 5.14+. - (fetchpatch { - url = "https://salsa.debian.org/debian/bpfcc/-/raw/71136ef5b66a2ecefd635a7aca2e0e835ff09095/debian/patches/0004-compat-defs.patch"; - sha256 = "05s1zxihwkvbl2r2mqc5dj7fpcipqyvwr11v8b9hqbwjkm3qpz40"; - }) ]; propagatedBuildInputs = [ python.pkgs.netaddr ]; From 1165533fc3f52809ff04fc76b4c75a0f8e4947c1 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Wed, 15 Sep 2021 22:18:54 +0100 Subject: [PATCH 29/58] texinfo: 6.7 -> 6.8 --- pkgs/development/tools/misc/texinfo/6.8.nix | 4 ++++ pkgs/development/tools/misc/texinfo/common.nix | 6 ++++++ pkgs/top-level/all-packages.nix | 15 ++++++++++++--- 3 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 pkgs/development/tools/misc/texinfo/6.8.nix diff --git a/pkgs/development/tools/misc/texinfo/6.8.nix b/pkgs/development/tools/misc/texinfo/6.8.nix new file mode 100644 index 000000000000..11435bf329f6 --- /dev/null +++ b/pkgs/development/tools/misc/texinfo/6.8.nix @@ -0,0 +1,4 @@ +import ./common.nix { + version = "6.8"; + sha256 = "1i7yb7mrp3inz25zbzv2pllr4y7d58v818f1as7iz8mw53nm7dwf"; +} diff --git a/pkgs/development/tools/misc/texinfo/common.nix b/pkgs/development/tools/misc/texinfo/common.nix index 1c5de083bc0d..8d8f1e1627aa 100644 --- a/pkgs/development/tools/misc/texinfo/common.nix +++ b/pkgs/development/tools/misc/texinfo/common.nix @@ -54,6 +54,12 @@ stdenv.mkDerivation { && !stdenv.isDarwin && !stdenv.isSunOS; # flaky + checkFlagsArray = [ + # Test is known to fail on various locales on texinfo-6.8: + # https://lists.gnu.org/r/bug-texinfo/2021-07/msg00012.html + "XFAIL_TESTS=test_scripts/layout_formatting_fr_icons.sh" + ]; + meta = { homepage = "https://www.gnu.org/software/texinfo/"; description = "The GNU documentation system"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 144196b8fcdd..fe43e74ef231 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5160,7 +5160,9 @@ with pkgs; fverb = callPackage ../applications/audio/fverb { }; - fwknop = callPackage ../tools/security/fwknop { }; + fwknop = callPackage ../tools/security/fwknop { + texinfo = texinfo6_7; # Uses @setcontentsaftertitlepage, removed in 6.8. + }; exfat = callPackage ../tools/filesystems/exfat { }; @@ -14796,7 +14798,8 @@ with pkgs; texinfo4 = texinfo413; texinfo5 = callPackage ../development/tools/misc/texinfo/5.2.nix { }; texinfo6_5 = callPackage ../development/tools/misc/texinfo/6.5.nix { }; # needed for allegro - texinfo6 = callPackage ../development/tools/misc/texinfo/6.7.nix { }; + texinfo6_7 = callPackage ../development/tools/misc/texinfo/6.7.nix { }; # needed for gpm, iksemel and fwknop + texinfo6 = callPackage ../development/tools/misc/texinfo/6.8.nix { }; texinfo = texinfo6; texinfoInteractive = appendToName "interactive" ( texinfo.override { interactive = true; } @@ -21250,6 +21253,10 @@ with pkgs; gpm = callPackage ../servers/gpm { ncurses = null; # Keep curses disabled for lack of value + + # latest 6.8 mysteriously fails to parse '@headings single': + # https://lists.gnu.org/archive/html/bug-texinfo/2021-09/msg00011.html + texinfo = texinfo6_7; }; gpm-ncurses = gpm.override { inherit ncurses; }; @@ -25117,7 +25124,9 @@ with pkgs; inherit (perlPackages.override { pkgs = pkgs // { imagemagick = imagemagickBig;}; }) ImageMagick; }; - iksemel = callPackage ../development/libraries/iksemel { }; + iksemel = callPackage ../development/libraries/iksemel { + texinfo = texinfo6_7; # Uses @setcontentsaftertitlepage, removed in 6.8. + }; imag = callPackage ../applications/misc/imag { inherit (darwin.apple_sdk.frameworks) Security; From 37d089c1af9c62ca9549fb1eb1c3706f018e626e Mon Sep 17 00:00:00 2001 From: Ryan Burns Date: Mon, 20 Sep 2021 17:24:04 -0700 Subject: [PATCH 30/58] {cc,binutils}-wrapper: match leading/trailing arguments fixes e.g.: pkgsMusl.libfsm pkgsMusl.libiscsi pkgsMusl.nsjail pkgsMusl.pv match strings have whitespace on either side, which wasn't matching leading/trailing arguments previously --- pkgs/build-support/bintools-wrapper/add-hardening.sh | 6 +++++- pkgs/build-support/cc-wrapper/add-hardening.sh | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/pkgs/build-support/bintools-wrapper/add-hardening.sh b/pkgs/build-support/bintools-wrapper/add-hardening.sh index 4d289a334b77..0a2b2509a826 100644 --- a/pkgs/build-support/bintools-wrapper/add-hardening.sh +++ b/pkgs/build-support/bintools-wrapper/add-hardening.sh @@ -37,7 +37,11 @@ fi for flag in "${!hardeningEnableMap[@]}"; do case $flag in pie) - if [[ ! ("$*" =~ " -shared " || "$*" =~ " -static " || "$*" =~ " -r " || "$*" =~ " -Ur " || "$*" =~ " -i ") ]]; then + if [[ ! (" $* " =~ " -shared " \ + || " $* " =~ " -static " \ + || " $* " =~ " -r " \ + || " $* " =~ " -Ur " \ + || " $* " =~ " -i ") ]]; then if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling LDFlags -pie >&2; fi hardeningLDFlags+=('-pie') fi diff --git a/pkgs/build-support/cc-wrapper/add-hardening.sh b/pkgs/build-support/cc-wrapper/add-hardening.sh index dc530bf943d2..e5d296f6c9c5 100644 --- a/pkgs/build-support/cc-wrapper/add-hardening.sh +++ b/pkgs/build-support/cc-wrapper/add-hardening.sh @@ -48,7 +48,7 @@ for flag in "${!hardeningEnableMap[@]}"; do # NB: we do not use `+=` here, because PIE flags must occur before any PIC flags if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling CFlags -fPIE >&2; fi hardeningCFlags=('-fPIE' "${hardeningCFlags[@]}") - if [[ ! ("$*" =~ " -shared " || "$*" =~ " -static ") ]]; then + if [[ ! (" $* " =~ " -shared " || " $* " =~ " -static ") ]]; then if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling LDFlags -pie >&2; fi hardeningCFlags=('-pie' "${hardeningCFlags[@]}") fi From 882acbd0af5433b2bbda3d4f692660bcb22d6a2c Mon Sep 17 00:00:00 2001 From: Ryan Burns Date: Sat, 4 Sep 2021 13:26:53 -0700 Subject: [PATCH 31/58] Revert "pkgsMusl.libiscsi: fix build" This is no longer needed with the previous PIE hardening fixes. This reverts commit 78d20f22007a9e615c8bf1a7bf12afea518e1d39. --- pkgs/development/libraries/libiscsi/default.nix | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pkgs/development/libraries/libiscsi/default.nix b/pkgs/development/libraries/libiscsi/default.nix index 6dd23d219d95..3cc2e0eee8c3 100644 --- a/pkgs/development/libraries/libiscsi/default.nix +++ b/pkgs/development/libraries/libiscsi/default.nix @@ -13,10 +13,6 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ autoreconfHook ]; - # This can be removed after >=1.20.0, or if the build suceeds with - # pie enabled (default on Musl). - hardeningDisable = [ "pie" ]; - # This problem is gone on libiscsi master. NIX_CFLAGS_COMPILE = lib.optional stdenv.hostPlatform.is32bit "-Wno-error=sign-compare"; From 436f960f2ac3f27e896c651a01c5c2c10a8557b7 Mon Sep 17 00:00:00 2001 From: Ryan Burns Date: Thu, 16 Sep 2021 17:58:32 -0700 Subject: [PATCH 32/58] Revert "glib: fix musl build" This is no longer needed with the previous PIE hardening fixes. This reverts commit 74e0aaaa30c1751450cddf055a5eb4ca64d7e33b. --- pkgs/development/libraries/glib/default.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix index 3c8fe4d569fa..772b913f6748 100644 --- a/pkgs/development/libraries/glib/default.nix +++ b/pkgs/development/libraries/glib/default.nix @@ -134,8 +134,6 @@ stdenv.mkDerivation rec { "-DG_DISABLE_CAST_CHECKS" ]; - hardeningDisable = [ "pie" ]; - postPatch = '' chmod +x gio/tests/gengiotypefuncs.py patchShebangs gio/tests/gengiotypefuncs.py From a41b83c0ffb765d52f78730082566f6e56620412 Mon Sep 17 00:00:00 2001 From: Ryan Burns Date: Thu, 16 Sep 2021 18:53:00 -0700 Subject: [PATCH 33/58] Revert "pkgsMusl.python*: disable LTO" This is no longer needed with the previous PIE hardening fixes. This reverts commit 2784f1bd6908b37ed0d686778f347e63692c0f84. --- pkgs/development/interpreters/python/cpython/default.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkgs/development/interpreters/python/cpython/default.nix b/pkgs/development/interpreters/python/cpython/default.nix index abfff8009afe..8e340dd3b146 100644 --- a/pkgs/development/interpreters/python/cpython/default.nix +++ b/pkgs/development/interpreters/python/cpython/default.nix @@ -45,9 +45,7 @@ # enableLTO is a subset of the enableOptimizations flag that doesn't harm reproducibility. # enabling LTO on 32bit arch causes downstream packages to fail when linking # enabling LTO on *-darwin causes python3 to fail when linking. -# enabling LTO with musl and dynamic linking fails with a linker error although it should -# be possible as alpine is doing it: https://github.com/alpinelinux/aports/blob/a8ccb04668c7729e0f0db6c6ff5f25d7519e779b/main/python3/APKBUILD#L82 -, enableLTO ? stdenv.is64bit && stdenv.isLinux && !(stdenv.hostPlatform.isMusl && !stdenv.hostPlatform.isStatic) +, enableLTO ? stdenv.is64bit && stdenv.isLinux , reproducibleBuild ? false , pythonAttr ? "python${sourceVersion.major}${sourceVersion.minor}" }: From 84f53b82448141d427b5c8fc3ab7f7746ffb43a6 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Sat, 11 Sep 2021 15:27:22 +0100 Subject: [PATCH 34/58] xcbuild: fix build by adding missing include --- pkgs/development/tools/xcbuild/default.nix | 2 ++ pkgs/development/tools/xcbuild/includes.patch | 10 ++++++++++ 2 files changed, 12 insertions(+) create mode 100644 pkgs/development/tools/xcbuild/includes.patch diff --git a/pkgs/development/tools/xcbuild/default.nix b/pkgs/development/tools/xcbuild/default.nix index af0f546eb82a..3c90603477e4 100644 --- a/pkgs/development/tools/xcbuild/default.nix +++ b/pkgs/development/tools/xcbuild/default.nix @@ -30,6 +30,8 @@ in stdenv.mkDerivation { sha256 = "1xxwg2849jizxv0g1hy0b1m3i7iivp9bmc4f5pi76swsn423d41m"; }; + patches = [ ./includes.patch ]; + prePatch = '' rmdir ThirdParty/* cp -r --no-preserve=all ${googletest} ThirdParty/googletest diff --git a/pkgs/development/tools/xcbuild/includes.patch b/pkgs/development/tools/xcbuild/includes.patch new file mode 100644 index 000000000000..7a05a33eb678 --- /dev/null +++ b/pkgs/development/tools/xcbuild/includes.patch @@ -0,0 +1,10 @@ +--- a/Libraries/plist/Sources/Format/Encoding.cpp ++++ b/Libraries/plist/Sources/Format/Encoding.cpp +@@ -11,6 +11,7 @@ + #include + + #include ++#include /* abort() */ + + #if defined(__linux__) + #include From be290af6dbb9514198fe7d08ad4458512b723e35 Mon Sep 17 00:00:00 2001 From: Robert Scott Date: Wed, 22 Sep 2021 19:10:05 +0100 Subject: [PATCH 35/58] Revert "gd: 2.3.0 -> 2.3.3" This reverts commit 14a71668b87dad0b46ffd7d5ff03623989806ace. 2.3.3 causes php build failures --- pkgs/development/libraries/gd/default.nix | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/gd/default.nix b/pkgs/development/libraries/gd/default.nix index 6a27c32a5d20..36a930956033 100644 --- a/pkgs/development/libraries/gd/default.nix +++ b/pkgs/development/libraries/gd/default.nix @@ -14,14 +14,27 @@ stdenv.mkDerivation rec { pname = "gd"; - version = "2.3.3"; + version = "2.3.0"; src = fetchurl { url = "https://github.com/libgd/libgd/releases/download/${pname}-${version}/libgd-${version}.tar.xz"; - sha256 = "0qas3q9xz3wgw06dm2fj0i189rain6n60z1vyq50d5h7wbn25s1z"; + sha256 = "0n5czhxzinvjvmhkf5l9fwjdx5ip69k5k7pj6zwb6zs1k9dibngc"; }; hardeningDisable = [ "format" ]; + patches = [ + # Fixes an issue where some other packages would fail to build + # their documentation with an error like: + # "Error: Problem doing text layout" + # + # Can be removed if Wayland can still be built successfully with + # documentation. + (fetchpatch { + url = "https://github.com/libgd/libgd/commit/3dd0e308cbd2c24fde2fc9e9b707181252a2de95.patch"; + excludes = [ "tests/gdimagestringft/.gitignore" ]; + sha256 = "12iqlanl9czig9d7c3rvizrigw2iacimnmimfcny392dv9iazhl1"; + }) + ]; # -pthread gets passed to clang, causing warnings configureFlags = lib.optional stdenv.isDarwin "--enable-werror=no"; From 4afafc0893ebc86f036404966e594632514e01b9 Mon Sep 17 00:00:00 2001 From: Robert Scott Date: Wed, 22 Sep 2021 19:09:25 +0100 Subject: [PATCH 36/58] gd: 2.3.0 -> 2.3.2, add patch for partial CVE-2021-40812 fix --- pkgs/development/libraries/gd/default.nix | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/pkgs/development/libraries/gd/default.nix b/pkgs/development/libraries/gd/default.nix index 36a930956033..3a64cc563979 100644 --- a/pkgs/development/libraries/gd/default.nix +++ b/pkgs/development/libraries/gd/default.nix @@ -14,25 +14,19 @@ stdenv.mkDerivation rec { pname = "gd"; - version = "2.3.0"; + version = "2.3.2"; src = fetchurl { url = "https://github.com/libgd/libgd/releases/download/${pname}-${version}/libgd-${version}.tar.xz"; - sha256 = "0n5czhxzinvjvmhkf5l9fwjdx5ip69k5k7pj6zwb6zs1k9dibngc"; + sha256 = "1yypywkh8vphcy4qqpf51kxpb0a3r7rjqk3fc61rpn70hiq092j7"; }; hardeningDisable = [ "format" ]; patches = [ - # Fixes an issue where some other packages would fail to build - # their documentation with an error like: - # "Error: Problem doing text layout" - # - # Can be removed if Wayland can still be built successfully with - # documentation. (fetchpatch { - url = "https://github.com/libgd/libgd/commit/3dd0e308cbd2c24fde2fc9e9b707181252a2de95.patch"; - excludes = [ "tests/gdimagestringft/.gitignore" ]; - sha256 = "12iqlanl9czig9d7c3rvizrigw2iacimnmimfcny392dv9iazhl1"; + name = "CVE-2021-40812.partial.patch"; + url = "https://github.com/libgd/libgd/commit/6f5136821be86e7068fcdf651ae9420b5d42e9a9.patch"; + sha256 = "11rvhd23bl05ksj8z39hwrhqqjm66svr4hl3y230wrc64rvnd2d2"; }) ]; From e6c02cc4b4c96207661c722f24667a8ab3607ce2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Wed, 22 Sep 2021 20:28:58 +0200 Subject: [PATCH 37/58] nixpkgs/doc/glibc: better glibc link also replace unicode symbol in case some environment cannot reproduce the encoding or font symbol. --- doc/builders/packages/etc-files.section.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/doc/builders/packages/etc-files.section.md b/doc/builders/packages/etc-files.section.md index 0b8379383591..2405a54634d8 100644 --- a/doc/builders/packages/etc-files.section.md +++ b/doc/builders/packages/etc-files.section.md @@ -6,12 +6,13 @@ On non-NixOS distributions these files are typically provided by packages (i.e. If [iana-etc](https://hydra.nixos.org/job/nixos/trunk-combined/nixpkgs.iana-etc.x86_64-linux) is part of your _buildInputs_ then it will set the environment varaibles `NIX_ETC_PROTOCOLS` and `NIX_ETC_SERVICES` to the corresponding files in the package through a _setup-hook_. + ```bash -❯ nix-shell -p iana-etc +> nix-shell -p iana-etc [nix-shell:~]$ env | grep NIX_ETC NIX_ETC_SERVICES=/nix/store/aj866hr8fad8flnggwdhrldm0g799ccz-iana-etc-20210225/etc/services NIX_ETC_PROTOCOLS=/nix/store/aj866hr8fad8flnggwdhrldm0g799ccz-iana-etc-20210225/etc/protocols ``` -Nixpkg's version of [glibc](https://hydra.nixos.org/job/nixos/trunk-combined/nixpkgs.glibc.x86_64-linux) has been patched to check for the existence of these environment variables. If the environment variable are *not set*, then it will attempt to find the files at the default location within _/etc_. +Nixpkg's version of [glibc](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/libraries/glibc/default.nix) has been patched to check for the existence of these environment variables. If the environment variable are *not set*, then it will attempt to find the files at the default location within _/etc_. From 02310b34b5ef5286a7a8d9eafd302cea9f9819e7 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Wed, 22 Sep 2021 19:59:01 +0100 Subject: [PATCH 38/58] llvm_5: disable print_context.c (fails on gcc-11 / dwarf-5) gcc-11 defaults to -gdwarf-5 and makes llvm symbolizer test fail. As it's the only failing test let's just skip it for llvm-5. --- pkgs/development/compilers/llvm/5/llvm/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/compilers/llvm/5/llvm/default.nix b/pkgs/development/compilers/llvm/5/llvm/default.nix index 54fd783a7c2d..6388cd65fbf4 100644 --- a/pkgs/development/compilers/llvm/5/llvm/default.nix +++ b/pkgs/development/compilers/llvm/5/llvm/default.nix @@ -82,6 +82,9 @@ stdenv.mkDerivation ({ substituteInPlace unittests/Support/CMakeLists.txt \ --replace "Path.cpp" "" rm unittests/Support/Path.cpp + + # llvm-5 does not support dwarf-5 style info, fails on gcc-11. + rm test/tools/llvm-symbolizer/print_context.c '' + optionalString stdenv.isAarch64 '' patch -p0 < ${../../aarch64.patch} '' + optionalString stdenv.hostPlatform.isMusl '' From 279bff87fe97e998e959b7121b48bb0642ff053f Mon Sep 17 00:00:00 2001 From: Kerstin Humm Date: Wed, 15 Sep 2021 17:34:05 +0200 Subject: [PATCH 39/58] imagemagick: 7.1.0-6 -> 7.1.0-8 --- pkgs/applications/graphics/ImageMagick/7.0.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/graphics/ImageMagick/7.0.nix b/pkgs/applications/graphics/ImageMagick/7.0.nix index a8af2dfba655..c74fa150921e 100644 --- a/pkgs/applications/graphics/ImageMagick/7.0.nix +++ b/pkgs/applications/graphics/ImageMagick/7.0.nix @@ -18,13 +18,13 @@ in stdenv.mkDerivation rec { pname = "imagemagick"; - version = "7.1.0-6"; + version = "7.1.0-8"; src = fetchFromGitHub { owner = "ImageMagick"; repo = "ImageMagick"; rev = version; - sha256 = "sha256-rwaMAkbSBTdrJ+OVZfAOBIp1tmC7/TC34w5gBIe+J94="; + sha256 = "17kgq0ja3bvc6b9lq3p29pk5j3w9f66nq6d8aidnq5qs6jwm1h5c"; }; outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big From a8db4c188c7fb07a435a659da8ffa7f7e59b39fb Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Thu, 23 Sep 2021 03:47:06 +0200 Subject: [PATCH 40/58] python3Packages.sqlalchemy: 1.4.23 -> 1.4.25 --- pkgs/development/python-modules/sqlalchemy/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/sqlalchemy/default.nix b/pkgs/development/python-modules/sqlalchemy/default.nix index 819f29497246..54f21c49f771 100644 --- a/pkgs/development/python-modules/sqlalchemy/default.nix +++ b/pkgs/development/python-modules/sqlalchemy/default.nix @@ -13,11 +13,11 @@ buildPythonPackage rec { pname = "SQLAlchemy"; - version = "1.4.23"; + version = "1.4.25"; src = fetchPypi { inherit pname version; - sha256 = "sha256-dv8kaIH1KAib8ZOFExuWYZe7SUZTmQOW0s4TjipEdYM="; + sha256 = "sha256-Gt89JeLjOvvNSM+tgHb5N4eTvkPn/sPkM0MGysa+wTg="; }; propagatedBuildInputs = [ From 02abcd6b3b31b45824cc123adecd3e03c0923740 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Sun, 19 Sep 2021 19:49:11 +0200 Subject: [PATCH 41/58] mandoc: 1.14.5 -> 1.14.6 --- pkgs/tools/misc/mandoc/default.nix | 10 ++-------- pkgs/tools/misc/mandoc/remove-broken-cc-check.patch | 11 ----------- 2 files changed, 2 insertions(+), 19 deletions(-) delete mode 100644 pkgs/tools/misc/mandoc/remove-broken-cc-check.patch diff --git a/pkgs/tools/misc/mandoc/default.nix b/pkgs/tools/misc/mandoc/default.nix index da756f764d40..e192302de1c8 100644 --- a/pkgs/tools/misc/mandoc/default.nix +++ b/pkgs/tools/misc/mandoc/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "mandoc"; - version = "1.14.5"; + version = "1.14.6"; src = fetchurl { url = "https://mandoc.bsd.lv/snapshots/mandoc-${version}.tar.gz"; - sha256 = "1xyqllxpjj1kimlipx11pzyywf5c25i4wmv0lqm7ph3gnlnb86c2"; + sha256 = "8bf0d570f01e70a6e124884088870cbed7537f36328d512909eb10cd53179d9c"; }; buildInputs = [ zlib ]; @@ -16,16 +16,10 @@ stdenv.mkDerivation rec { MANPATH_DEFAULT="/run/current-system/sw/share/man" OSNAME="NixOS" PREFIX="$out" - HAVE_MANPATH=1 LD_OHASH="-lutil" - BUILD_DB=0 CC=${stdenv.cc.targetPrefix}cc ''; - patches = [ - ./remove-broken-cc-check.patch - ]; - preConfigure = '' echo $configureLocal > configure.local ''; diff --git a/pkgs/tools/misc/mandoc/remove-broken-cc-check.patch b/pkgs/tools/misc/mandoc/remove-broken-cc-check.patch deleted file mode 100644 index 580226d165bb..000000000000 --- a/pkgs/tools/misc/mandoc/remove-broken-cc-check.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- mandoc-1.14.4.org/configure 2018-08-08 15:51:51.000000000 +0100 -+++ mandoc-1.14.4/configure 2018-08-27 08:19:40.391912427 +0100 -@@ -40,7 +40,7 @@ - OSNAME= - UTF8_LOCALE= - --CC=`printf "all:\\n\\t@echo \\\$(CC)\\n" | env -i make -sf -` -+CC= - CFLAGS= - LDADD= - LDFLAGS= From 71fae710cc97396308d039d30ac859c220548eff Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Sun, 19 Sep 2021 19:52:38 +0200 Subject: [PATCH 42/58] mandoc: add myself as maintainer --- pkgs/tools/misc/mandoc/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/tools/misc/mandoc/default.nix b/pkgs/tools/misc/mandoc/default.nix index e192302de1c8..814cdeb43fd7 100644 --- a/pkgs/tools/misc/mandoc/default.nix +++ b/pkgs/tools/misc/mandoc/default.nix @@ -30,6 +30,6 @@ stdenv.mkDerivation rec { downloadPage = "http://mandoc.bsd.lv/snapshots/"; license = licenses.bsd3; platforms = platforms.all; - maintainers = with maintainers; [ bb010g ramkromberg ]; + maintainers = with maintainers; [ bb010g ramkromberg sternenseemann ]; }; } From a0a2b5f7885bdd804fd042ccdd29d989aa739e95 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Sun, 19 Sep 2021 19:52:50 +0200 Subject: [PATCH 43/58] mandoc: use printf instead of echo for writing configure.local This should be a bit more robust and portable. --- pkgs/tools/misc/mandoc/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/tools/misc/mandoc/default.nix b/pkgs/tools/misc/mandoc/default.nix index 814cdeb43fd7..948db6ca9189 100644 --- a/pkgs/tools/misc/mandoc/default.nix +++ b/pkgs/tools/misc/mandoc/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { ''; preConfigure = '' - echo $configureLocal > configure.local + printf '%s' "$configureLocal" > configure.local ''; meta = with lib; { From 342cabea954fab61dc68b0d9deaa51983b8123e1 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Sun, 19 Sep 2021 19:53:16 +0200 Subject: [PATCH 44/58] mandoc: run regression test suite --- pkgs/tools/misc/mandoc/default.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkgs/tools/misc/mandoc/default.nix b/pkgs/tools/misc/mandoc/default.nix index 948db6ca9189..9bdb43b3586e 100644 --- a/pkgs/tools/misc/mandoc/default.nix +++ b/pkgs/tools/misc/mandoc/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchurl, zlib }: +{ lib, stdenv, fetchurl, zlib, perl }: stdenv.mkDerivation rec { pname = "mandoc"; @@ -24,6 +24,11 @@ stdenv.mkDerivation rec { printf '%s' "$configureLocal" > configure.local ''; + doCheck = stdenv.hostPlatform == stdenv.buildPlatform; + checkTarget = "regress"; + checkInputs = [ perl ]; + preCheck = "patchShebangs --build regress/regress.pl"; + meta = with lib; { homepage = "https://mandoc.bsd.lv/"; description = "suite of tools compiling mdoc and man"; From 35e8d91d921b412c9e6046e59ee279738dc43050 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Sun, 19 Sep 2021 20:42:54 +0200 Subject: [PATCH 45/58] mandoc: fix UTF-8-support detection and make more robust at runtime locale(1) is not available in pkgsMusl.stdenv, but it is also not really necessary. We just need to tell mandoc about *any* UTF-8 locale that is also available at runtime. For macOS C.UTF-8 is not available sadly, so we need to use en_US.UTF-8. Using locale(1) for this is out of the question as NetBSD's locale(1) depends on mandoc. --- pkgs/tools/misc/mandoc/default.nix | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/pkgs/tools/misc/mandoc/default.nix b/pkgs/tools/misc/mandoc/default.nix index 9bdb43b3586e..5eae82c14a55 100644 --- a/pkgs/tools/misc/mandoc/default.nix +++ b/pkgs/tools/misc/mandoc/default.nix @@ -1,5 +1,15 @@ { lib, stdenv, fetchurl, zlib, perl }: +let + # Name of an UTF-8 locale _always_ present at runtime, used for UTF-8 support + # (locale set by the user may differ). This would usually be C.UTF-8, but + # darwin has no such locale. + utf8Locale = + if stdenv.hostPlatform.isDarwin + then "en_US.UTF-8" + else "C.UTF-8"; +in + stdenv.mkDerivation rec { pname = "mandoc"; version = "1.14.6"; @@ -12,12 +22,18 @@ stdenv.mkDerivation rec { buildInputs = [ zlib ]; configureLocal = '' - HAVE_WCHAR=1 MANPATH_DEFAULT="/run/current-system/sw/share/man" OSNAME="NixOS" PREFIX="$out" LD_OHASH="-lutil" CC=${stdenv.cc.targetPrefix}cc + # Bypass the locale(1)-based check for UTF-8 support since it causes trouble: + # * We only have meaningful locale(1) implementations for glibc and macOS + # * NetBSD's locale(1) (used for macOS) depends on mandoc + # * Sandbox and locales cause all kinds of trouble + # * build and host libc (and thus locale handling) may differ + HAVE_WCHAR=1 + UTF8_LOCALE=${utf8Locale} ''; preConfigure = '' From a43f48b710cde16db55a950e77b8cca26e1268af Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Sun, 19 Sep 2021 19:49:29 +0200 Subject: [PATCH 46/58] mandoc: support cross as far as possible MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit mandoc can't be cross compiled easily since all configure checks rely on executing a binary built using $CC. We can however still do “native” cross compilation like pkgsStatic and pkgsLLVM. To facilitate this, the following changes are required: * Set the correct AR to use in configure.local * Inform users that cross compilation will fail via a throw if the build platform can't execute the host platform's binaries. --- pkgs/tools/misc/mandoc/default.nix | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/pkgs/tools/misc/mandoc/default.nix b/pkgs/tools/misc/mandoc/default.nix index 5eae82c14a55..75c6ac8b41bc 100644 --- a/pkgs/tools/misc/mandoc/default.nix +++ b/pkgs/tools/misc/mandoc/default.nix @@ -1,6 +1,12 @@ { lib, stdenv, fetchurl, zlib, perl }: let + # check if we can execute binaries for the host platform on the build platform + # even though the platforms aren't the same. mandoc can't be cross compiled + # (easily) because of its configurePhase, but we want to allow “native” cross + # such as pkgsLLVM and pkgsStatic. + executableCross = stdenv.hostPlatform.isCompatible stdenv.buildPlatform; + # Name of an UTF-8 locale _always_ present at runtime, used for UTF-8 support # (locale set by the user may differ). This would usually be C.UTF-8, but # darwin has no such locale. @@ -10,6 +16,9 @@ let else "C.UTF-8"; in +assert executableCross || + throw "mandoc relies on executing compiled programs in configurePhase, can't cross compile"; + stdenv.mkDerivation rec { pname = "mandoc"; version = "1.14.6"; @@ -27,6 +36,7 @@ stdenv.mkDerivation rec { PREFIX="$out" LD_OHASH="-lutil" CC=${stdenv.cc.targetPrefix}cc + AR=${stdenv.cc.bintools.targetPrefix}ar # Bypass the locale(1)-based check for UTF-8 support since it causes trouble: # * We only have meaningful locale(1) implementations for glibc and macOS # * NetBSD's locale(1) (used for macOS) depends on mandoc @@ -40,7 +50,7 @@ stdenv.mkDerivation rec { printf '%s' "$configureLocal" > configure.local ''; - doCheck = stdenv.hostPlatform == stdenv.buildPlatform; + doCheck = executableCross; checkTarget = "regress"; checkInputs = [ perl ]; preCheck = "patchShebangs --build regress/regress.pl"; From ad02b5c89e88a96bdd23d36d2290c2269732fba4 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Mon, 20 Sep 2021 14:16:46 +0200 Subject: [PATCH 47/58] mandoc: set MANPATH_BASE additionally to MANPATH_DEFAULT MANPATH_BASE is used by mandoc -T lint to check if man pages that are referenced exist on the system. While this feature is a bit problematic for us (e. g. it will never work correctly in the nix sandbox), it hasn't even worked in an impure context before since MANPATH_BASE defaults to /usr/share/man:/usr/X11R6/man. --- pkgs/tools/misc/mandoc/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/tools/misc/mandoc/default.nix b/pkgs/tools/misc/mandoc/default.nix index 75c6ac8b41bc..59e008c78faf 100644 --- a/pkgs/tools/misc/mandoc/default.nix +++ b/pkgs/tools/misc/mandoc/default.nix @@ -32,6 +32,7 @@ stdenv.mkDerivation rec { configureLocal = '' MANPATH_DEFAULT="/run/current-system/sw/share/man" + MANPATH_BASE="$MANPATH_DEFAULT" OSNAME="NixOS" PREFIX="$out" LD_OHASH="-lutil" From c138683757201c58a2de1106af7392cc09402493 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Mon, 20 Sep 2021 14:46:22 +0200 Subject: [PATCH 48/58] mandoc: use symlinks for executables and man pages Symlinks are quite heavily used in nixpkgs and easier to reason about than hardlinks, so using them seems good for consistency. --- pkgs/tools/misc/mandoc/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/tools/misc/mandoc/default.nix b/pkgs/tools/misc/mandoc/default.nix index 59e008c78faf..8e8d1dd334d6 100644 --- a/pkgs/tools/misc/mandoc/default.nix +++ b/pkgs/tools/misc/mandoc/default.nix @@ -36,6 +36,8 @@ stdenv.mkDerivation rec { OSNAME="NixOS" PREFIX="$out" LD_OHASH="-lutil" + # Use symlinks instead of hardlinks (more commonly used in nixpkgs) + LN="ln -sf" CC=${stdenv.cc.targetPrefix}cc AR=${stdenv.cc.bintools.targetPrefix}ar # Bypass the locale(1)-based check for UTF-8 support since it causes trouble: From 03480209d911b38ba1635bbfacbdc20e89de0985 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Mon, 20 Sep 2021 16:09:39 +0200 Subject: [PATCH 49/58] mandoc: set SBINDIR instead of relying on fixupPhase --- pkgs/tools/misc/mandoc/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/tools/misc/mandoc/default.nix b/pkgs/tools/misc/mandoc/default.nix index 8e8d1dd334d6..db0789c11267 100644 --- a/pkgs/tools/misc/mandoc/default.nix +++ b/pkgs/tools/misc/mandoc/default.nix @@ -38,6 +38,8 @@ stdenv.mkDerivation rec { LD_OHASH="-lutil" # Use symlinks instead of hardlinks (more commonly used in nixpkgs) LN="ln -sf" + # nixpkgs doesn't have sbin, install makewhatis to bin + SBINDIR="$PREFIX/bin" CC=${stdenv.cc.targetPrefix}cc AR=${stdenv.cc.bintools.targetPrefix}ar # Bypass the locale(1)-based check for UTF-8 support since it causes trouble: From 84a6e77f0bdc010a877ad40348b5f673425fd30e Mon Sep 17 00:00:00 2001 From: Ryan Burns Date: Thu, 23 Sep 2021 18:05:47 -0700 Subject: [PATCH 50/58] eigen: 3.3.9 -> 3.4.0 https://eigen.tuxfamily.org/index.php?title=3.4#Changes_that_might_break_existing_code --- pkgs/development/libraries/eigen/default.nix | 4 +-- .../libraries/eigen/include-dir.patch | 31 +++++++++---------- 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/pkgs/development/libraries/eigen/default.nix b/pkgs/development/libraries/eigen/default.nix index 371805804210..18fe7450d508 100644 --- a/pkgs/development/libraries/eigen/default.nix +++ b/pkgs/development/libraries/eigen/default.nix @@ -6,13 +6,13 @@ stdenv.mkDerivation rec { pname = "eigen"; - version = "3.3.9"; + version = "3.4.0"; src = fetchFromGitLab { owner = "libeigen"; repo = pname; rev = version; - sha256 = "sha256-JMIG7CLMndUsECfbKpXE3BtVFuAjn+CZvf8GXZpLkFQ="; + sha256 = "sha256-1/4xMetKMDOgZgzz3WMxfHUEpmdAm52RqZvz6i0mLEw="; }; patches = [ diff --git a/pkgs/development/libraries/eigen/include-dir.patch b/pkgs/development/libraries/eigen/include-dir.patch index 42f8e189c0b7..9928bbdbed1b 100644 --- a/pkgs/development/libraries/eigen/include-dir.patch +++ b/pkgs/development/libraries/eigen/include-dir.patch @@ -1,23 +1,22 @@ --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -1,6 +1,6 @@ +@@ -1,5 +1,5 @@ + # cmake_minimum_require must be the first command of the file +-cmake_minimum_required(VERSION 3.5.0) ++cmake_minimum_required(VERSION 3.7.0) + project(Eigen3) --cmake_minimum_required(VERSION 2.8.5) -+cmake_minimum_required(VERSION 3.7) - - # guard against in-source builds - -@@ -407,7 +407,7 @@ set(PKGCONFIG_INSTALL_DIR - CACHE STRING "The directory relative to CMAKE_PREFIX_PATH where eigen3.pc is installed" +@@ -443,7 +443,7 @@ set(PKGCONFIG_INSTALL_DIR + CACHE PATH "The directory relative to CMAKE_INSTALL_PREFIX where eigen3.pc is installed" ) -foreach(var INCLUDE_INSTALL_DIR CMAKEPACKAGE_INSTALL_DIR PKGCONFIG_INSTALL_DIR) +foreach(var CMAKEPACKAGE_INSTALL_DIR PKGCONFIG_INSTALL_DIR) + # If an absolute path is specified, make it relative to "{CMAKE_INSTALL_PREFIX}". if(IS_ABSOLUTE "${${var}}") - message(FATAL_ERROR "${var} must be relative to CMAKE_PREFIX_PATH. Got: ${${var}}") - endif() -@@ -429,13 +429,6 @@ install(FILES + file(RELATIVE_PATH "${var}" "${CMAKE_INSTALL_PREFIX}" "${${var}}") +@@ -466,13 +466,6 @@ install(FILES DESTINATION ${INCLUDE_INSTALL_DIR} COMPONENT Devel ) @@ -28,10 +27,10 @@ - ) -endif() - - add_subdirectory(Eigen) + install(DIRECTORY Eigen DESTINATION ${INCLUDE_INSTALL_DIR} COMPONENT Devel) - add_subdirectory(doc EXCLUDE_FROM_ALL) -@@ -531,8 +524,15 @@ set ( EIGEN_VERSION_MAJOR ${EIGEN_WORLD_VERSION} ) + +@@ -593,8 +586,15 @@ set ( EIGEN_VERSION_MAJOR ${EIGEN_WORLD_VERSION} ) set ( EIGEN_VERSION_MINOR ${EIGEN_MAJOR_VERSION} ) set ( EIGEN_VERSION_PATCH ${EIGEN_MINOR_VERSION} ) set ( EIGEN_DEFINITIONS "") @@ -46,8 +45,8 @@ + ) +endif() - # Interface libraries require at least CMake 3.0 - if (NOT CMAKE_VERSION VERSION_LESS 3.0) + include (CMakePackageConfigHelpers) + --- a/eigen3.pc.in +++ b/eigen3.pc.in @@ -6,4 +6,4 @@ Description: A C++ template library for linear algebra: vectors, matrices, and r From 46951d9527a473fb16eef2888736609cf2b784e4 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Fri, 24 Sep 2021 06:17:09 +0000 Subject: [PATCH 51/58] gcc48, gcc49: apply upstream fix for gcc-11 (#138979) Without the change build fails against gcc-11 as: ``` ../../gcc-4.8.5/gcc/reload1.c:89:24: error: use of an operand of type 'bool' in 'operator++' is forbidden in C++17 89 | (this_target_reload->x_spill_indirect_levels) | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ``` Co-authored-by: Dmitry Kalinkin Co-authored-by: Dmitry Kalinkin --- pkgs/development/compilers/gcc/4.8/default.nix | 7 +++++++ pkgs/development/compilers/gcc/4.9/default.nix | 11 ++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/pkgs/development/compilers/gcc/4.8/default.nix b/pkgs/development/compilers/gcc/4.8/default.nix index 98332290a078..e1c441e7afe0 100644 --- a/pkgs/development/compilers/gcc/4.8/default.nix +++ b/pkgs/development/compilers/gcc/4.8/default.nix @@ -86,6 +86,13 @@ let majorVersion = "4"; ../struct-ucontext-4.8.patch ../sigsegv-not-declared.patch ../res_state-not-declared.patch + # gcc-11 compatibility + (fetchpatch { + name = "gcc4-char-reload.patch"; + url = "https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff_plain;h=d57c99458933a21fdf94f508191f145ad8d5ec58"; + includes = [ "gcc/reload.h" ]; + sha256 = "sha256-66AMP7/ajunGKAN5WJz/yPn42URZ2KN51yPrFdsxEuM="; + }) ]; javaEcj = fetchurl { diff --git a/pkgs/development/compilers/gcc/4.9/default.nix b/pkgs/development/compilers/gcc/4.9/default.nix index 2b81e1c3e0b9..3b92ecddc08a 100644 --- a/pkgs/development/compilers/gcc/4.9/default.nix +++ b/pkgs/development/compilers/gcc/4.9/default.nix @@ -100,7 +100,16 @@ let majorVersion = "4"; { commit = "1e961ed49b18e176c7457f53df2433421387c23b"; sha256 = "04dnqqs4qsvz4g8cq6db5id41kzys7hzhcaycwmc9rpqygs2ajwz"; } { commit = "e137c72d099f9b3b47f4cc718aa11eab14df1a9c"; sha256 = "1ms0dmz74yf6kwgjfs4d2fhj8y6mcp2n184r3jk44wx2xc24vgb2"; }] - ++ [ ../libsanitizer-no-cyclades-9.patch ]; + ++ [ + ../libsanitizer-no-cyclades-9.patch + # gcc-11 compatibility + (fetchpatch { + name = "gcc4-char-reload.patch"; + url = "https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff_plain;h=d57c99458933a21fdf94f508191f145ad8d5ec58"; + includes = [ "gcc/reload.h" ]; + sha256 = "sha256-66AMP7/ajunGKAN5WJz/yPn42URZ2KN51yPrFdsxEuM="; + }) + ]; javaEcj = fetchurl { # The `$(top_srcdir)/ecj.jar' file is automatically picked up at From 241c3e0b3f193e8696038aa650e364aafcfd06c6 Mon Sep 17 00:00:00 2001 From: Luflosi Date: Wed, 22 Sep 2021 22:35:57 +0200 Subject: [PATCH 52/58] imagemagick: add build option for JPEG XL image format --- pkgs/applications/graphics/ImageMagick/7.0.nix | 5 +++-- pkgs/top-level/all-packages.nix | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/graphics/ImageMagick/7.0.nix b/pkgs/applications/graphics/ImageMagick/7.0.nix index c74fa150921e..40c3246a095d 100644 --- a/pkgs/applications/graphics/ImageMagick/7.0.nix +++ b/pkgs/applications/graphics/ImageMagick/7.0.nix @@ -1,6 +1,6 @@ { lib, stdenv, fetchFromGitHub, pkg-config, libtool , bzip2, zlib, libX11, libXext, libXt, fontconfig, freetype, ghostscript, libjpeg, djvulibre -, lcms2, openexr, libpng, liblqr1, librsvg, libtiff, libxml2, openjpeg, libwebp, libheif +, lcms2, openexr, libjxl, libpng, liblqr1, librsvg, libtiff, libxml2, openjpeg, libwebp, libheif , ApplicationServices , Foundation , testVersion, imagemagick @@ -37,6 +37,7 @@ stdenv.mkDerivation rec { ++ (if arch != null then [ "--with-gcc-arch=${arch}" ] else [ "--without-gcc-arch" ]) ++ lib.optional (librsvg != null) "--with-rsvg" ++ lib.optional (liblqr1 != null) "--with-lqr" + ++ lib.optional (libjxl != null) "--with-jxl" ++ lib.optionals (ghostscript != null) [ "--with-gs-font-dir=${ghostscript}/share/ghostscript/fonts" "--with-gslib" @@ -49,7 +50,7 @@ stdenv.mkDerivation rec { buildInputs = [ zlib fontconfig freetype ghostscript - liblqr1 libpng libtiff libxml2 libheif djvulibre + libjxl liblqr1 libpng libtiff libxml2 libheif djvulibre ] ++ lib.optionals (!stdenv.hostPlatform.isMinGW) [ openexr librsvg openjpeg ] diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index fd52d542eee0..a91c1ea8ee5c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -25263,6 +25263,7 @@ with pkgs; djvulibre = null; lcms2 = null; openexr = null; + libjxl = null; libpng = null; liblqr1 = null; librsvg = null; From fb106ee08b57b61378519750753ee9dcc1ac9e19 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Sun, 12 Sep 2021 09:35:02 +0100 Subject: [PATCH 53/58] libomxil-bellagio: fix build failures against -fno-common compiler On vanilla gcc-10 (and gcc-9 -fno-common) build fails as: ``` ../libtool --tag=CC --mode=link gcc ... -o libomxil-bellagio.la ... ld: .libs/libomxil_bellagio_la-omx_reference_resource_manager.o:(.bss+0x18): multiple definition of `globalIndex'; .libs/libomxil_bellagio_la-st_static_component_loader.o:(.bss+0x358): first defined here ``` Upstream gcc-10 changed the default from -fcommon to fno-common: https://gcc.gnu.org/PR85678. The error also happens if CFLAGS=-fno-common passed explicitly. --- .../libraries/libomxil-bellagio/default.nix | 5 ++- .../libomxil-bellagio/fno-common.patch | 32 +++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 pkgs/development/libraries/libomxil-bellagio/fno-common.patch diff --git a/pkgs/development/libraries/libomxil-bellagio/default.nix b/pkgs/development/libraries/libomxil-bellagio/default.nix index 5e3b0c6798a6..22a6de9fd956 100644 --- a/pkgs/development/libraries/libomxil-bellagio/default.nix +++ b/pkgs/development/libraries/libomxil-bellagio/default.nix @@ -12,7 +12,10 @@ stdenv.mkDerivation rec { configureFlags = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ "ac_cv_func_malloc_0_nonnull=yes" ]; - patches = [ ./fedora-fixes.patch ]; + patches = [ + ./fedora-fixes.patch + ./fno-common.patch + ]; doCheck = false; # fails diff --git a/pkgs/development/libraries/libomxil-bellagio/fno-common.patch b/pkgs/development/libraries/libomxil-bellagio/fno-common.patch new file mode 100644 index 000000000000..be70391adaae --- /dev/null +++ b/pkgs/development/libraries/libomxil-bellagio/fno-common.patch @@ -0,0 +1,32 @@ +Fix build faiure on gcc-10 (defaults to -fno-common). +--- a/src/omx_reference_resource_manager.c ++++ b/src/omx_reference_resource_manager.c +@@ -30,6 +30,11 @@ + #include "base/omx_base_component.h" + #include "queue.h" + ++int globalIndex; ++NameIndexType *listOfcomponentRegistered; ++ComponentListType **globalComponentList; ++ComponentListType **globalWaitingComponentList; ++ + /** + * This is the static base pointer of the list + */ +--- a/src/omx_reference_resource_manager.h ++++ b/src/omx_reference_resource_manager.h +@@ -49,10 +49,10 @@ struct NameIndexType { + }; + + +-int globalIndex; +-NameIndexType *listOfcomponentRegistered; +-ComponentListType **globalComponentList; +-ComponentListType **globalWaitingComponentList; ++extern int globalIndex; ++extern NameIndexType *listOfcomponentRegistered; ++extern ComponentListType **globalComponentList; ++extern ComponentListType **globalWaitingComponentList; + + OMX_ERRORTYPE RM_RegisterComponent(char *name, int max_components); + OMX_ERRORTYPE addElemToList(ComponentListType **list, OMX_COMPONENTTYPE *openmaxStandComp, int index, OMX_BOOL bIsWaiting); From 8941dd6cc8348bb06d52749cb1f7292c8f47c290 Mon Sep 17 00:00:00 2001 From: Ryan Burns Date: Mon, 27 Sep 2021 19:32:34 -0700 Subject: [PATCH 54/58] pythonPackages.sh: disable flaky fd_leak test https://hydra.nixos.org/build/154671181/nixlog/1 * This was not actually an fd leak, but a failure to determine a stable baseline number of open fds. * An fd leak in this package should not prevent us from building its many dependers. --- .../sh/disable-broken-tests-darwin.patch | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/pkgs/development/python-modules/sh/disable-broken-tests-darwin.patch b/pkgs/development/python-modules/sh/disable-broken-tests-darwin.patch index c51490ce6a40..dfeb50db8d0e 100644 --- a/pkgs/development/python-modules/sh/disable-broken-tests-darwin.patch +++ b/pkgs/development/python-modules/sh/disable-broken-tests-darwin.patch @@ -4,15 +4,9 @@ Date: Mon, 20 Jul 2020 19:51:20 +0200 Subject: [PATCH] Disable tests that fail on Darwin (macOS) or with sandboxing Signed-off-by: Sirio Balmelli ---- - test.py | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/test.py b/test.py -index f8029c0..ba1d141 100644 --- a/test.py +++ b/test.py -@@ -404,6 +404,7 @@ exit(3) +@@ -377,6 +377,7 @@ exit(3) self.assertEqual(sed(_in="one test three", e="s/test/two/").strip(), "one two three") @@ -20,7 +14,7 @@ index f8029c0..ba1d141 100644 def test_ok_code(self): from sh import ls, ErrorReturnCode_1, ErrorReturnCode_2 -@@ -1004,6 +1005,7 @@ print(sys.argv[1]) +@@ -982,6 +983,7 @@ print(sys.argv[1]) now = time.time() self.assertGreater(now - start, sleep_time) @@ -28,7 +22,7 @@ index f8029c0..ba1d141 100644 def test_background_exception(self): from sh import ls, ErrorReturnCode_1, ErrorReturnCode_2 p = ls("/ofawjeofj", _bg=True, _bg_exc=False) # should not raise -@@ -1801,6 +1803,7 @@ exit(49) +@@ -1779,6 +1781,7 @@ exit(49) p = python(py.name, _ok_code=49, _bg=True) self.assertEqual(49, p.exit_code) @@ -36,7 +30,15 @@ index f8029c0..ba1d141 100644 def test_cwd(self): from sh import pwd from os.path import realpath -@@ -2899,6 +2902,7 @@ print("hi") +@@ -2777,6 +2780,7 @@ print("cool") + # on osx. so skip it for now if osx + @not_macos + @requires_progs("lsof") ++ @skipUnless(False, "Flaky on Hydra") + def test_no_fd_leak(self): + import sh + import os +@@ -2879,6 +2883,7 @@ print("hi") python(py.name, _in=stdin) @requires_utf8 @@ -44,6 +46,3 @@ index f8029c0..ba1d141 100644 def test_unicode_path(self): from sh import Command --- -2.27.0 - From b88fce906f423af9fa8b13af202511d98256a9fa Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Thu, 30 Sep 2021 00:59:40 +0200 Subject: [PATCH 55/58] mesa: 21.2.2 -> 21.2.3 --- pkgs/development/libraries/mesa/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix index 15e7d497f661..1d7b73a54196 100644 --- a/pkgs/development/libraries/mesa/default.nix +++ b/pkgs/development/libraries/mesa/default.nix @@ -33,7 +33,7 @@ with lib; let # Release calendar: https://www.mesa3d.org/release-calendar.html # Release frequency: https://www.mesa3d.org/releasing.html#schedule - version = "21.2.2"; + version = "21.2.3"; branch = versions.major version; self = stdenv.mkDerivation { @@ -47,7 +47,7 @@ self = stdenv.mkDerivation { "ftp://ftp.freedesktop.org/pub/mesa/${version}/mesa-${version}.tar.xz" "ftp://ftp.freedesktop.org/pub/mesa/older-versions/${branch}.x/${version}/mesa-${version}.tar.xz" ]; - sha256 = "1i75k6gh76f49vy6kksbsikf593jmgk6slqwbs1fs5s2jyzz3an4"; + sha256 = "0x3ivd34j938js2iffzlvnlj4hwywxrscd8q1rvq894x2m52hibj"; }; # TODO: From 2549800a1a83c7fa6f639e915545042667c98789 Mon Sep 17 00:00:00 2001 From: Josh Hoffer Date: Tue, 28 Sep 2021 13:29:06 -0600 Subject: [PATCH 56/58] compiler-rt: cont. remove from libsanitizer See commit 199b7c505b0390429b08edf68552e8a6ff4a08ce for the original issue. This patch is from the upstream rocm llvm repo: https://reviews.llvm.org/rG884040db086936107ec81656aa5b4c607235fb9a --- .../compilers/llvm/rocm/compiler-rt/default.nix | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/pkgs/development/compilers/llvm/rocm/compiler-rt/default.nix b/pkgs/development/compilers/llvm/rocm/compiler-rt/default.nix index cd277f5149d9..65a45fdae635 100644 --- a/pkgs/development/compilers/llvm/rocm/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/rocm/compiler-rt/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, version, src, cmake, python3, llvm, libcxxabi }: +{ stdenv, lib, version, src, cmake, python3, llvm, libcxxabi, fetchpatch }: stdenv.mkDerivation rec { pname = "compiler-rt"; inherit version src; @@ -31,7 +31,13 @@ stdenv.mkDerivation rec { patches = [ ./compiler-rt-codesign.patch # Revert compiler-rt commit that makes codesign mandatory - ]; + (fetchpatch { + name = "libsanitizer-no-cyclades-rocm.patch"; + url = "https://reviews.llvm.org/file/data/nrhbpc5axblqwx2xyyzv/PHID-FILE-wwcpjvquusomoddmqcwo/file"; + sha256 = "sha256-PMMSLr2zHuNDn1OWqumqHwB74ktJSHxhJWkqEKB7Z64="; + stripLen = 1; + }) + ]; # TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks From 224019bd1c328977ab91bd890ae24db94ade9a13 Mon Sep 17 00:00:00 2001 From: Rick van Schijndel Date: Mon, 27 Sep 2021 23:09:30 +0200 Subject: [PATCH 57/58] imagemagick: unbreak for aarch64 With the newly added libjxl dependency it was broken, since libjxl doesn't build on aarch64. Remove that dependency if we're building for aarch64 for now, until the compiler / library is fixed. --- pkgs/applications/graphics/ImageMagick/7.0.nix | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/graphics/ImageMagick/7.0.nix b/pkgs/applications/graphics/ImageMagick/7.0.nix index 40c3246a095d..bc887d9cf80d 100644 --- a/pkgs/applications/graphics/ImageMagick/7.0.nix +++ b/pkgs/applications/graphics/ImageMagick/7.0.nix @@ -37,7 +37,9 @@ stdenv.mkDerivation rec { ++ (if arch != null then [ "--with-gcc-arch=${arch}" ] else [ "--without-gcc-arch" ]) ++ lib.optional (librsvg != null) "--with-rsvg" ++ lib.optional (liblqr1 != null) "--with-lqr" - ++ lib.optional (libjxl != null) "--with-jxl" + # libjxl is broken on aarch64 (see meta.broken in libjxl) for now, + # let's disable it for now to unbreak the imagemagick build. + ++ lib.optional (libjxl != null && !stdenv.isAarch64) "--with-jxl" ++ lib.optionals (ghostscript != null) [ "--with-gs-font-dir=${ghostscript}/share/ghostscript/fonts" "--with-gslib" @@ -50,8 +52,12 @@ stdenv.mkDerivation rec { buildInputs = [ zlib fontconfig freetype ghostscript - libjxl liblqr1 libpng libtiff libxml2 libheif djvulibre + liblqr1 libpng libtiff libxml2 libheif djvulibre ] + # libjxl is broken on aarch64 (see meta.broken in libjxl) for now, + # let's disable it for now to unbreak the imagemagick build. + ++ lib.optionals (!stdenv.isAarch64) + [ libjxl ] ++ lib.optionals (!stdenv.hostPlatform.isMinGW) [ openexr librsvg openjpeg ] ++ lib.optionals stdenv.isDarwin [ From a09db7d6da9f0a0bc30b6dfaadd8433871b7d941 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Sun, 3 Oct 2021 10:00:54 +0200 Subject: [PATCH 58/58] libpsl: disable valgrind tests on aarch64(-linux) https://hydra.nixos.org/build/154709256 --- pkgs/development/libraries/libpsl/default.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/libpsl/default.nix b/pkgs/development/libraries/libpsl/default.nix index 85afe93ea7a7..562820bed6a4 100644 --- a/pkgs/development/libraries/libpsl/default.nix +++ b/pkgs/development/libraries/libpsl/default.nix @@ -15,7 +15,10 @@ }: let - enableValgrindTests = !stdenv.isDarwin && lib.meta.availableOn stdenv.hostPlatform valgrind; + enableValgrindTests = !stdenv.isDarwin && lib.meta.availableOn stdenv.hostPlatform valgrind + # Apparently valgrind doesn't support some new ARM features on (some) Hydra machines: + # VEX: Mismatch detected between RDMA and atomics features. + && !stdenv.isAarch64; in stdenv.mkDerivation rec { pname = "libpsl"; version = "0.21.0";