From 22c1cb381b0042c32b209c374117b7c1b9e1bd7c Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 25 Dec 2025 18:16:12 +0100 Subject: [PATCH 001/239] quodlibet: fix build for structuredAttrs --- pkgs/applications/audio/quodlibet/default.nix | 46 ++++++++++--------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/pkgs/applications/audio/quodlibet/default.nix b/pkgs/applications/audio/quodlibet/default.nix index d1740db71df6..afade20b517c 100644 --- a/pkgs/applications/audio/quodlibet/default.nix +++ b/pkgs/applications/audio/quodlibet/default.nix @@ -140,21 +140,6 @@ python3.pkgs.buildPythonApplication rec { pytest-xdist ]); - pytestFlags = [ - # missing translation strings in potfiles - "--deselect=tests/test_po.py::TPOTFILESIN::test_missing" - # require networking - "--deselect=tests/plugin/test_covers.py::test_live_cover_download" - "--deselect=tests/test_browsers_iradio.py::TInternetRadio::test_click_add_station" - # upstream does actually not enforce source code linting - "--ignore=tests/quality" - # marked as flaky, breaks in sandbox - "--deselect=tests/test_library_file.py::TWatchedFileLibrary::test_watched_adding" - ] - ++ lib.optionals (withXineBackend || !withGstPlugins) [ - "--ignore=tests/plugin/test_replaygain.py" - ]; - env.LC_ALL = "en_US.UTF-8"; preCheck = '' @@ -162,15 +147,32 @@ python3.pkgs.buildPythonApplication rec { export XDG_DATA_DIRS="$out/share:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_ICON_DIRS:$XDG_DATA_DIRS" ''; - checkPhase = '' - runHook preCheck + checkPhase = + let + pytestFlags = [ + # missing translation strings in potfiles + "--deselect=tests/test_po.py::TPOTFILESIN::test_missing" + # require networking + "--deselect=tests/plugin/test_covers.py::test_live_cover_download" + "--deselect=tests/test_browsers_iradio.py::TInternetRadio::test_click_add_station" + # upstream does actually not enforce source code linting + "--ignore=tests/quality" + # marked as flaky, breaks in sandbox + "--deselect=tests/test_library_file.py::TWatchedFileLibrary::test_watched_adding" + ] + ++ lib.optionals (withXineBackend || !withGstPlugins) [ + "--ignore=tests/plugin/test_replaygain.py" + ]; + in + '' + runHook preCheck - xvfb-run -s '-screen 0 1920x1080x24' \ - dbus-run-session --config-file=${dbus}/share/dbus-1/session.conf \ - pytest $pytestFlags + xvfb-run -s '-screen 0 1920x1080x24' \ + dbus-run-session --config-file=${dbus}/share/dbus-1/session.conf \ + pytest ${lib.concatStringsSep " " pytestFlags} - runHook postCheck - ''; + runHook postCheck + ''; preFixup = lib.optionalString (kakasi != null) '' gappsWrapperArgs+=(--prefix PATH : ${lib.getBin kakasi}) From 16e2b28230f0af67043d67bedc54ff8728d651c9 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Fri, 30 Jan 2026 23:46:05 +0100 Subject: [PATCH 002/239] coreutils: move environment variables into env for structuredAttrs --- pkgs/tools/misc/coreutils/default.nix | 33 +++++++++++++++------------ 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/pkgs/tools/misc/coreutils/default.nix b/pkgs/tools/misc/coreutils/default.nix index 998050399cda..7be6d4b54b5e 100644 --- a/pkgs/tools/misc/coreutils/default.nix +++ b/pkgs/tools/misc/coreutils/default.nix @@ -187,23 +187,26 @@ stdenv.mkDerivation (finalAttrs: { && (stdenv.hostPlatform.libc == "glibc" || stdenv.hostPlatform.libc == "musl") && !stdenv.hostPlatform.isAarch32; - # Prevents attempts of running 'help2man' on cross-built binaries. - PERL = if isCross then "missing" else null; - enableParallelBuilding = true; - NIX_LDFLAGS = optionalString selinuxSupport "-lsepol"; - FORCE_UNSAFE_CONFIGURE = optionalString stdenv.hostPlatform.isSunOS "1"; - env.NIX_CFLAGS_COMPILE = toString ( - [ ] - # Work around a bogus warning in conjunction with musl. - ++ optional stdenv.hostPlatform.isMusl "-Wno-error" - ++ optional stdenv.hostPlatform.isAndroid "-D__USE_FORTIFY_LEVEL=0" - # gnulib does not consider Clang-specific warnings to be bugs: - # https://lists.gnu.org/r/bug-gnulib/2025-06/msg00325.html - # TODO: find out why these are happening on cygwin, which is gcc - ++ optional (stdenv.cc.isClang || stdenv.hostPlatform.isCygwin) "-Wno-error=format-security" - ); + env = { + NIX_LDFLAGS = optionalString selinuxSupport "-lsepol"; + FORCE_UNSAFE_CONFIGURE = optionalString stdenv.hostPlatform.isSunOS "1"; + NIX_CFLAGS_COMPILE = toString ( + [ ] + # Work around a bogus warning in conjunction with musl. + ++ optional stdenv.hostPlatform.isMusl "-Wno-error" + ++ optional stdenv.hostPlatform.isAndroid "-D__USE_FORTIFY_LEVEL=0" + # gnulib does not consider Clang-specific warnings to be bugs: + # https://lists.gnu.org/r/bug-gnulib/2025-06/msg00325.html + # TODO: find out why these are happening on cygwin, which is gcc + ++ optional (stdenv.cc.isClang || stdenv.hostPlatform.isCygwin) "-Wno-error=format-security" + ); + } + // optionalAttrs isCross { + # Prevents attempts of running 'help2man' on cross-built binaries. + PERL = "missing"; + }; # Works around a bug with 8.26: # Makefile:3440: *** Recursive variable 'INSTALL' references itself (eventually). Stop. From 47f3865a3f19cdcd4dcf68a24e2cc845f50b11ce Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Mon, 2 Feb 2026 01:42:40 +0100 Subject: [PATCH 003/239] perlPackages: move env variables into env for structuredAttrs --- pkgs/top-level/perl-packages.nix | 78 ++++++++++++++++---------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix index 1791abfe97d8..89617e2ccc02 100644 --- a/pkgs/top-level/perl-packages.nix +++ b/pkgs/top-level/perl-packages.nix @@ -548,7 +548,7 @@ with self; installPhase = "./Build install --prefix $out"; - SDL_INST_DIR = lib.getDev pkgs.SDL; + env.SDL_INST_DIR = lib.getDev pkgs.SDL; buildInputs = [ pkgs.SDL ArchiveExtract @@ -579,7 +579,7 @@ with self; }; buildInputs = [ ArchiveExtract ]; - TIDYP_DIR = pkgs.tidyp; + env.TIDYP_DIR = pkgs.tidyp; propagatedBuildInputs = [ FileShareDir ]; meta = { description = "Building, finding and using tidyp library"; @@ -1893,7 +1893,7 @@ with self; TestWarn ]; env.NIX_CFLAGS_COMPILE = "-I${pkgs.zlib.dev}/include"; - NIX_CFLAGS_LINK = "-L${pkgs.zlib.out}/lib -lz"; + env.NIX_CFLAGS_LINK = "-L${pkgs.zlib.out}/lib -lz"; meta = { description = "Fast C metadata and tag reader for all common audio file formats, slimserver fork"; homepage = "https://github.com/Logitech/slimserver-vendor"; @@ -2436,7 +2436,7 @@ with self; hash = "sha256-o/LKnSuu/BqqQJCLL5y5KS/aPn15fji7146rudna62s="; }; env.NIX_CFLAGS_COMPILE = "-I${pkgs.db4.dev}/include"; - NIX_CFLAGS_LINK = "-L${pkgs.db4.out}/lib -ldb"; + env.NIX_CFLAGS_LINK = "-L${pkgs.db4.out}/lib -ldb"; buildInputs = [ pkgs.db4 ]; propagatedBuildInputs = [ commonsense ]; meta = { @@ -4706,7 +4706,7 @@ with self; postPatch = '' substituteInPlace Makefile.PL --replace pkg-config $PKG_CONFIG ''; - NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.pcsclite}/lib -lpcsclite"; + env.NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.pcsclite}/lib -lpcsclite"; # tests fail; look unfinished doCheck = false; meta = { @@ -5779,9 +5779,9 @@ with self; }; # Don't build a private copy of bzip2. - BUILD_BZIP2 = false; - BZIP2_LIB = "${pkgs.bzip2.out}/lib"; - BZIP2_INCLUDE = "${pkgs.bzip2.dev}/include"; + env.BUILD_BZIP2 = false; + env.BZIP2_LIB = "${pkgs.bzip2.out}/lib"; + env.BZIP2_INCLUDE = "${pkgs.bzip2.dev}/include"; meta = { description = "Low-Level Interface to bzip2 compression library"; @@ -6995,7 +6995,7 @@ with self; TestRequires ]; env.NIX_CFLAGS_COMPILE = "-I${pkgs.gmp.dev}/include"; - NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp"; + env.NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp"; meta = { description = "Crypt::DH Using GMP Directly"; license = with lib.licenses; [ @@ -7483,7 +7483,7 @@ with self; hash = "sha256-kHxzoQVs6gV9qYGa6kipKreG5qqq858c3ZZHsj8RbHg="; }; env.NIX_CFLAGS_COMPILE = "-I${pkgs.libsodium.dev}/include"; - NIX_CFLAGS_LINK = "-L${pkgs.libsodium.out}/lib -lsodium"; + env.NIX_CFLAGS_LINK = "-L${pkgs.libsodium.out}/lib -lsodium"; meta = { description = "Perl bindings for libsodium (NaCL)"; homepage = "https://metacpan.org/release/Crypt-Sodium"; @@ -7580,7 +7580,7 @@ with self; pkgs.openssl ]; env.NIX_CFLAGS_COMPILE = "-I${pkgs.openssl.dev}/include"; - NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -lcrypto"; + env.NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -lcrypto"; meta = { description = "Perl wrapper around OpenSSL's AES library"; license = with lib.licenses; [ @@ -7598,7 +7598,7 @@ with self; hash = "sha256-I05y+4OW1FUn5v1F5DdZxcPzogjPjynmoiFhqZb9Qtw="; }; env.NIX_CFLAGS_COMPILE = "-I${pkgs.openssl.dev}/include"; - NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -lcrypto"; + env.NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -lcrypto"; meta = { description = "OpenSSL's multiprecision integer arithmetic"; license = with lib.licenses; [ @@ -7633,8 +7633,8 @@ with self; hash = "sha256-8IdvqhujER45uGqnMMYDIR7/KQXkYMcqV7YejPR1zvQ="; }; env.NIX_CFLAGS_COMPILE = "-I${pkgs.openssl.dev}/include"; - NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -lcrypto"; - OPENSSL_PREFIX = pkgs.openssl; + env.NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -lcrypto"; + env.OPENSSL_PREFIX = pkgs.openssl; buildInputs = [ CryptOpenSSLGuess ]; meta = { description = "OpenSSL/LibreSSL pseudo-random number generator access"; @@ -7654,8 +7654,8 @@ with self; }; propagatedBuildInputs = [ CryptOpenSSLRandom ]; env.NIX_CFLAGS_COMPILE = "-I${pkgs.openssl.dev}/include"; - NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -lcrypto"; - OPENSSL_PREFIX = pkgs.openssl; + env.NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -lcrypto"; + env.OPENSSL_PREFIX = pkgs.openssl; buildInputs = [ CryptOpenSSLGuess ]; meta = { description = "RSA encoding and decoding, using the openSSL libraries"; @@ -7674,8 +7674,8 @@ with self; hash = "sha256-xNvBbE/CloV4I3v8MkWH/9eSSacQFQJlLbnjjUSJUX8="; }; env.NIX_CFLAGS_COMPILE = "-I${pkgs.openssl.dev}/include"; - NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -lcrypto"; - OPENSSL_PREFIX = pkgs.openssl; + env.NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -lcrypto"; + env.OPENSSL_PREFIX = pkgs.openssl; buildInputs = [ CryptOpenSSLGuess ]; propagatedBuildInputs = [ ConvertASN1 ]; meta = { @@ -7883,7 +7883,7 @@ with self; --replace '#! /usr/bin/perl' '#!${perl}/bin/perl' ''; propagatedBuildInputs = [ pkgs.ncurses ]; - NIX_CFLAGS_LINK = "-L${pkgs.ncurses.out}/lib -lncurses"; + env.NIX_CFLAGS_LINK = "-L${pkgs.ncurses.out}/lib -lncurses"; meta = { description = "Perl bindings to ncurses"; license = with lib.licenses; [ artistic1 ]; @@ -9853,7 +9853,7 @@ with self; hash = "sha256-Uf6cFYlV/aDKkXqAaGPwvFEGi1M/u8dCOzzErVle0VM="; }; - ORACLE_HOME = "${pkgs.oracle-instantclient.lib}/lib"; + env.ORACLE_HOME = "${pkgs.oracle-instantclient.lib}/lib"; buildInputs = [ pkgs.oracle-instantclient @@ -9920,7 +9920,7 @@ with self; hash = "sha256-B1e6aqyaKaLcOFmV1myPQSqIlo/SNsDYu0ZZAo5OmWU="; }; - SYBASE = pkgs.freetds; + env.SYBASE = pkgs.freetds; buildInputs = [ pkgs.freetds ]; propagatedBuildInputs = [ DBI ]; @@ -15261,8 +15261,8 @@ with self; ]; # needed for fontconfig tests - HOME = "/build"; - FONTCONFIG_PATH = "${lib.getOutput "out" pkgs.fontconfig}/etc/fonts"; + env.HOME = "/build"; + env.FONTCONFIG_PATH = "${lib.getOutput "out" pkgs.fontconfig}/etc/fonts"; meta = { description = "Perl interface to the GraphViz graphing tool"; @@ -18978,7 +18978,7 @@ with self; hash = "sha256-MSlAwfYPR8T8k/oKnSpiZCX6qDcEDIwvGtWO4J9i83E="; }; buildInputs = [ pkgs.acl ]; - NIX_CFLAGS_LINK = "-L${pkgs.acl.out}/lib -lacl"; + env.NIX_CFLAGS_LINK = "-L${pkgs.acl.out}/lib -lacl"; meta = { description = "Perl extension for reading and setting Access Control Lists for files by libacl linux library"; license = with lib.licenses; [ @@ -19230,7 +19230,7 @@ with self; url = "mirror://cpan/authors/id/P/PV/PVANDRY/gettext-1.07.tar.gz"; hash = "sha256-kJ1HlUaX58BCGPlykVt4e9EkTXXjvQFiC8Fn1bvEnBU="; }; - LANG = "C"; + env.LANG = "C"; meta = { description = "Perl extension for emulating gettext-related API"; license = with lib.licenses; [ @@ -20661,7 +20661,7 @@ with self; buildInputs = [ pkgs.gmp ]; doCheck = false; env.NIX_CFLAGS_COMPILE = "-I${pkgs.gmp.dev}/include"; - NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp"; + env.NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp"; propagatedBuildInputs = [ MathBigInt ]; meta = { description = "Backend library for Math::BigInt etc. based on GMP"; @@ -20754,7 +20754,7 @@ with self; AlienGMP ]; env.NIX_CFLAGS_COMPILE = "-I${pkgs.gmp.dev}/include"; - NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp"; + env.NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp"; meta = { description = "High speed arbitrary size integer math"; license = with lib.licenses; [ lgpl21Plus ]; @@ -20772,7 +20772,7 @@ with self; TestWarn pkgs.gmp ]; - NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp"; + env.NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp"; meta = { description = "Perl interface to the GMP integer functions"; homepage = "https://github.com/sisyphus/math-gmpz"; @@ -20921,7 +20921,7 @@ with self; }; buildInputs = [ pkgs.gmp ]; env.NIX_CFLAGS_COMPILE = "-I${pkgs.gmp.dev}/include"; - NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp"; + env.NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp"; meta = { description = "Utilities related to prime numbers, using GMP"; homepage = "https://github.com/danaj/Math-Prime-Util-GMP"; @@ -25297,7 +25297,7 @@ with self; pkgs.cups pkgs.libcupsfilters ]; - NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.cups}/lib -lcups"; + env.NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.cups}/lib -lcups"; meta = { description = "Common Unix Printing System Interface"; homepage = "https://github.com/niner/perl-Net-CUPS"; @@ -26771,7 +26771,7 @@ with self; hardeningDisable = [ "format" ]; # Make the async API accessible env.NIX_CFLAGS_COMPILE = "-DTHREADED"; - NIX_CFLAGS_LINK = "-L${pkgs.zookeeper_mt.out}/lib -lzookeeper_mt"; + env.NIX_CFLAGS_LINK = "-L${pkgs.zookeeper_mt.out}/lib -lzookeeper_mt"; # Most tests are skipped as no server is available in the sandbox. # `t/35_log.t` seems to suffer from a race condition; remove it. See # https://github.com/NixOS/nixpkgs/pull/104889#issuecomment-737144513 @@ -27907,7 +27907,7 @@ with self; hash = "sha256-SEhnmj8gHj87DF9vlSbmAq9Skj/6RxoqNlfbeGvTvcU="; }; buildInputs = [ pkgs.zlib ]; - NIX_CFLAGS_LINK = "-L${pkgs.zlib.out}/lib -lz"; + env.NIX_CFLAGS_LINK = "-L${pkgs.zlib.out}/lib -lz"; meta = { description = "Perl extension to provide a PerlIO layer to gzip/gunzip"; license = with lib.licenses; [ @@ -33036,7 +33036,7 @@ with self; pkgs.readline pkgs.ncurses ]; - NIX_CFLAGS_LINK = "-lreadline -lncursesw"; + env.NIX_CFLAGS_LINK = "-lreadline -lncursesw"; # For some crazy reason Makefile.PL doesn't generate a Makefile if # AUTOMATED_TESTING is set. @@ -35724,9 +35724,9 @@ with self; hash = "sha256-K+oyCfGOJzsZPjF1pC0mk5GRnkmrEGtuJSOV0nIYL2U="; }; propagatedBuildInputs = [ pkgs.aspell ]; - ASPELL_CONF = "dict-dir ${pkgs.aspellDicts.en}/lib/aspell"; + env.ASPELL_CONF = "dict-dir ${pkgs.aspellDicts.en}/lib/aspell"; env.NIX_CFLAGS_COMPILE = "-I${pkgs.aspell}/include"; - NIX_CFLAGS_LINK = "-L${pkgs.aspell}/lib -laspell"; + env.NIX_CFLAGS_LINK = "-L${pkgs.aspell}/lib -laspell"; meta = { description = "Perl interface to the GNU Aspell library"; license = with lib.licenses; [ @@ -38338,7 +38338,7 @@ with self; pkgs.libxt pkgs.libxtst ]; - NIX_CFLAGS_LINK = "-lX11"; + env.NIX_CFLAGS_LINK = "-lX11"; doCheck = false; # requires an X server meta = { description = "Provides GUI testing/interaction routines"; @@ -38381,7 +38381,7 @@ with self; XMLSimple XSObjectMagic ]; - NIX_CFLAGS_LINK = "-lxcb -lxcb-util -lxcb-xinerama -lxcb-icccm -lxcb-randr -lxcb-xkb"; + env.NIX_CFLAGS_LINK = "-lxcb -lxcb-util -lxcb-xinerama -lxcb-icccm -lxcb-randr -lxcb-xkb"; doCheck = false; # requires an X server meta = { description = "Perl bindings for libxcb"; @@ -38624,7 +38624,7 @@ with self; url = "mirror://cpan/authors/id/S/SH/SHLOMIF/XML-LibXML-2.0210.tar.gz"; hash = "sha256-opvz8Aq5ye4EIYFU4K/I95m/I2dOuZwantTeH0BZpI0="; }; - SKIP_SAX_INSTALL = 1; + env.SKIP_SAX_INSTALL = 1; buildInputs = [ AlienBuild AlienLibxml2 @@ -39477,7 +39477,7 @@ with self; hash = "sha256-BpsWQRcpX6gtJSlAocqLMIrYsfPocjvk6CaqqX9wbWw="; }; env.NIX_CFLAGS_COMPILE = "-I${pkgs.openssl.dev}/include -I${pkgs.libidn2}.dev}/include"; - NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -L${lib.getLib pkgs.libidn2}/lib -lcrypto -lidn2"; + env.NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -L${lib.getLib pkgs.libidn2}/lib -lcrypto -lidn2"; makeMakerFlags = [ "--prefix-openssl=${pkgs.openssl.dev}" ]; From 6a347dd8a28234fdaf7ebfb737380a0ab95182ee Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Wed, 4 Feb 2026 15:05:07 +0100 Subject: [PATCH 004/239] python3Packages.zammad-py: 3.2.0 -> 3.2.1 https://github.com/joeirimpan/zammad_py/blob/v3.2.1/HISTORY.md --- .../python-modules/zammad-py/default.nix | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/pkgs/development/python-modules/zammad-py/default.nix b/pkgs/development/python-modules/zammad-py/default.nix index 656c153ac682..b7249c9b4416 100644 --- a/pkgs/development/python-modules/zammad-py/default.nix +++ b/pkgs/development/python-modules/zammad-py/default.nix @@ -7,16 +7,16 @@ pytestCheckHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "zammad-py"; - version = "3.2.0"; + version = "3.2.1"; pyproject = true; src = fetchFromGitHub { owner = "joeirimpan"; repo = "zammad_py"; - tag = "v${version}"; - hash = "sha256-gU5OA5m8X03GM7ImXZZVLkEyoAXRCoFskfop8oXJFH0="; + tag = "v${finalAttrs.version}"; + hash = "sha256-idPT3H2mlHoC8gHAQHOAcQJKciPZyagVEmojcKbj8ls="; }; build-system = [ @@ -37,6 +37,9 @@ buildPythonPackage rec { "test_tickets" "test_groups" "test_pagination" + "test_knowledge_bases" + "test_knowledge_bases_answers" + "test_knowledge_bases_categories" ]; pythonImportsCheck = [ @@ -44,10 +47,10 @@ buildPythonPackage rec { ]; meta = { - changelog = "https://github.com/joeirimpan/zammad_py/blob/${src.tag}/HISTORY.rst"; + changelog = "https://github.com/joeirimpan/zammad_py/blob/${finalAttrs.src.tag}/HISTORY.md"; description = "Python API client for accessing zammad REST API"; homepage = "https://github.com/joeirimpan/zammad_py"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ hexa ]; }; -} +}) From a61e4dbb180c7dabcc932ac03fc6d4d724b9178e Mon Sep 17 00:00:00 2001 From: David McFarland Date: Mon, 29 Dec 2025 14:53:21 -0400 Subject: [PATCH 005/239] cygwin-dll-link: move from make-derivation to cross stdenv --- .../cygwin/cygwin-dll-link-hook}/cygwin-dll-link.sh | 2 +- .../cygwin/cygwin-dll-link-hook/default.nix | 13 +++++++++++++ pkgs/os-specific/cygwin/default.nix | 2 ++ pkgs/stdenv/cross/default.nix | 5 ++++- pkgs/stdenv/generic/make-derivation.nix | 1 - 5 files changed, 20 insertions(+), 3 deletions(-) rename pkgs/{build-support/setup-hooks => os-specific/cygwin/cygwin-dll-link-hook}/cygwin-dll-link.sh (98%) create mode 100644 pkgs/os-specific/cygwin/cygwin-dll-link-hook/default.nix diff --git a/pkgs/build-support/setup-hooks/cygwin-dll-link.sh b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh similarity index 98% rename from pkgs/build-support/setup-hooks/cygwin-dll-link.sh rename to pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh index a9309925e658..371ba633edc8 100644 --- a/pkgs/build-support/setup-hooks/cygwin-dll-link.sh +++ b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh @@ -18,7 +18,7 @@ addOutputDLLPaths() { postInstallHooks+=(addOutputDLLPaths) _dllDeps() { - "$OBJDUMP" -p "$1" \ + @objdump@ -p "$1" \ | sed -n 's/.*DLL Name: \(.*\)/\1/p' \ | sort -u } diff --git a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/default.nix b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/default.nix new file mode 100644 index 000000000000..b3185140f2ea --- /dev/null +++ b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/default.nix @@ -0,0 +1,13 @@ +{ + lib, + makeSetupHook, + binutils-unwrapped, + stdenv, + callPackage, +}: +makeSetupHook { + name = "cygwin-dll-link-hook"; + substitutions = { + objdump = "${lib.getBin binutils-unwrapped}/${stdenv.targetPlatform.config}/bin/objdump"; + }; +} ./cygwin-dll-link.sh diff --git a/pkgs/os-specific/cygwin/default.nix b/pkgs/os-specific/cygwin/default.nix index 09f69ff9f9b2..d1217f7880c1 100644 --- a/pkgs/os-specific/cygwin/default.nix +++ b/pkgs/os-specific/cygwin/default.nix @@ -21,5 +21,7 @@ makeScopeWithSplicing' { # this is here to avoid symlinks being made to cygwin1.dll in /nix/store newlib-cygwin-nobin = callPackage ./newlib-cygwin/nobin.nix { }; newlib-cygwin-headers = callPackage ./newlib-cygwin { headersOnly = true; }; + + cygwinDllLinkHook = callPackage ./cygwin-dll-link-hook { }; }; } diff --git a/pkgs/stdenv/cross/default.nix b/pkgs/stdenv/cross/default.nix index cc53957eee0d..b194c780a319 100644 --- a/pkgs/stdenv/cross/default.nix +++ b/pkgs/stdenv/cross/default.nix @@ -83,7 +83,10 @@ lib.init bootStages || p.isGenode; in f hostPlatform && !(f buildPlatform) - ) buildPackages.updateAutotoolsGnuConfigScriptsHook; + ) buildPackages.updateAutotoolsGnuConfigScriptsHook + ++ lib.optional ( + hostPlatform.isCygwin && !buildPlatform.isCygwin + ) buildPackages.cygwin.cygwinDllLinkHook; }) ); in diff --git a/pkgs/stdenv/generic/make-derivation.nix b/pkgs/stdenv/generic/make-derivation.nix index cdfeb34a2411..d66fbf71035e 100644 --- a/pkgs/stdenv/generic/make-derivation.nix +++ b/pkgs/stdenv/generic/make-derivation.nix @@ -475,7 +475,6 @@ let nativeBuildInputs ++ optional separateDebugInfo' ../../build-support/setup-hooks/separate-debug-info.sh ++ optional isWindows ../../build-support/setup-hooks/win-dll-link.sh - ++ optional isCygwin ../../build-support/setup-hooks/cygwin-dll-link.sh ++ optionals doCheck nativeCheckInputs ++ optionals doInstallCheck nativeInstallCheckInputs; From c345cee8a133e44e881225f57ad3d8eecdcb9644 Mon Sep 17 00:00:00 2001 From: David McFarland Date: Fri, 10 Oct 2025 13:17:27 -0300 Subject: [PATCH 006/239] cygwin-dll-link: use link for cygwin1.dll --- .../cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh | 6 +++++- pkgs/stdenv/generic/make-derivation.nix | 1 - 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh index 371ba633edc8..2d2023d49a71 100644 --- a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh +++ b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh @@ -29,7 +29,11 @@ _linkDeps() { local dll _dllDeps "$target" | while read -r dll; do echo ' dll:' "$dll" - if [[ -e "$dir/$dll" ]]; then continue; fi + if [[ -L "$dir/$dll" || -e "$dir/$dll" ]]; then continue; fi + if [[ $dll = cygwin1.dll ]]; then + CYGWIN+=\ winsymlinks:nativestrict ln -sr /bin/cygwin1.dll "$dir" + continue + fi # Locate the DLL - it should be an *executable* file on $LINK_DLL_FOLDERS. local dllPath if ! dllPath="$(PATH="$(dirname "$target"):$LINK_DLL_FOLDERS" type -P "$dll")"; then diff --git a/pkgs/stdenv/generic/make-derivation.nix b/pkgs/stdenv/generic/make-derivation.nix index d66fbf71035e..4f5ee160dbcf 100644 --- a/pkgs/stdenv/generic/make-derivation.nix +++ b/pkgs/stdenv/generic/make-derivation.nix @@ -704,7 +704,6 @@ let allowedImpureDLLs ++ lib.optionals isCygwin [ "KERNEL32.dll" - "cygwin1.dll" ]; } // ( From ae16ae18f5f6faee70de642adf10ea2cf59efe40 Mon Sep 17 00:00:00 2001 From: David McFarland Date: Tue, 21 Oct 2025 13:55:40 -0300 Subject: [PATCH 007/239] cygwin-dll-link: skip non-executable files --- pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh index 2d2023d49a71..49cbde49174c 100644 --- a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh +++ b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh @@ -25,6 +25,7 @@ _dllDeps() { _linkDeps() { local target="$1" dir="$2" check="$3" + [[ ! -x "$target" ]] && echo "_linkDeps: $target is not executable, skipping." 1>&2 && return echo 'target:' "$target" local dll _dllDeps "$target" | while read -r dll; do From 0beb3436f0156f57fe3e892d7f900b098e2e1981 Mon Sep 17 00:00:00 2001 From: David McFarland Date: Tue, 21 Oct 2025 14:15:44 -0300 Subject: [PATCH 008/239] cygwin-dll-link: include /lib/ when searching for PEs --- pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh index 49cbde49174c..2fddfc349b94 100644 --- a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh +++ b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh @@ -72,7 +72,7 @@ linkDLLs() { # Iterate over any DLL that we depend on. local target - for target in {bin,libexec}/**/*.{exe,dll}; do + for target in {bin,lib,libexec}/**/*.{exe,dll}; do [[ ! -f "$target" || ! -x "$target" ]] || _linkDeps "$target" "$(dirname "$target")" "1" done From f42d59445bf3fa8b37c1203158e0ba48dec84761 Mon Sep 17 00:00:00 2001 From: David McFarland Date: Tue, 21 Oct 2025 20:59:52 -0300 Subject: [PATCH 009/239] cygwin-dll-link: move DLLs to $lib/bin by default This allows us to remove LINK_DLL_FOLDERS and use HOST_PATH instead. --- pkgs/build-support/cc-wrapper/default.nix | 2 +- .../cygwin-dll-link-hook/cygwin-dll-link.sh | 21 +++++++++---------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix index 9bb07456e8f2..058b2d7a2dec 100644 --- a/pkgs/build-support/cc-wrapper/default.nix +++ b/pkgs/build-support/cc-wrapper/default.nix @@ -603,7 +603,7 @@ stdenvNoCC.mkDerivation { installPhase = if targetPlatform.isCygwin then '' - echo addToSearchPath "LINK_DLL_FOLDERS" "${cc_bin}/lib" >> $out + echo addToSearchPath "HOST_PATH" "${cc_bin}/lib" >> $out # Work around build failure caused by the gnulib workaround for # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114870. remove after # gnulib is updated in core packages (e.g. iconv, gnupatch, gnugrep) diff --git a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh index 2fddfc349b94..6fe69347861e 100644 --- a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh +++ b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh @@ -1,21 +1,20 @@ # shellcheck shell=bash -addLinkDLLPaths() { - addToSearchPath "LINK_DLL_FOLDERS" "$1/lib" - addToSearchPath "LINK_DLL_FOLDERS" "$1/bin" +_moveDLLsToLib() { + if [[ "${dontMoveDLLsToLib-}" ]]; then return; fi + # shellcheck disable=SC2154 + moveToOutput "bin/*.dll" "${!outputLib}" } -# shellcheck disable=SC2154 -addEnvHooks "$targetOffset" addLinkDLLPaths +preFixupHooks+=(_moveDLLsToLib) addOutputDLLPaths() { for output in $(getAllOutputNames); do - addToSearchPath "LINK_DLL_FOLDERS" "${!output}/lib" - addToSearchPath "LINK_DLL_FOLDERS" "${!output}/bin" + addToSearchPath "HOST_PATH" "${!output}/bin" done } -postInstallHooks+=(addOutputDLLPaths) +preFixupHooks+=(addOutputDLLPaths) _dllDeps() { @objdump@ -p "$1" \ @@ -35,13 +34,13 @@ _linkDeps() { CYGWIN+=\ winsymlinks:nativestrict ln -sr /bin/cygwin1.dll "$dir" continue fi - # Locate the DLL - it should be an *executable* file on $LINK_DLL_FOLDERS. + # Locate the DLL - it should be an *executable* file on $HOST_PATH. local dllPath - if ! dllPath="$(PATH="$(dirname "$target"):$LINK_DLL_FOLDERS" type -P "$dll")"; then + if ! dllPath="$(PATH="$(dirname "$target"):$HOST_PATH" type -P "$dll")"; then if [[ -z "$check" || -n "${allowedImpureDLLsMap[$dll]}" ]]; then continue fi - echo unable to find "$dll" in "$LINK_DLL_FOLDERS" >&2 + echo unable to find "$dll" in "$HOST_PATH" >&2 exit 1 fi echo ' linking to:' "$dllPath" From f2ac4eef529fc8235167790f786859f048040c23 Mon Sep 17 00:00:00 2001 From: David McFarland Date: Sun, 8 Feb 2026 18:34:46 -0400 Subject: [PATCH 010/239] gcc: move cygwin DLLs to $target/bin --- pkgs/build-support/cc-wrapper/default.nix | 2 +- pkgs/development/compilers/gcc/common/builder.nix | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix index 058b2d7a2dec..89cc7c4ce4fd 100644 --- a/pkgs/build-support/cc-wrapper/default.nix +++ b/pkgs/build-support/cc-wrapper/default.nix @@ -603,7 +603,7 @@ stdenvNoCC.mkDerivation { installPhase = if targetPlatform.isCygwin then '' - echo addToSearchPath "HOST_PATH" "${cc_bin}/lib" >> $out + echo addToSearchPath "HOST_PATH" "${cc_solib}/bin" >> $out # Work around build failure caused by the gnulib workaround for # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114870. remove after # gnulib is updated in core packages (e.g. iconv, gnupatch, gnugrep) diff --git a/pkgs/development/compilers/gcc/common/builder.nix b/pkgs/development/compilers/gcc/common/builder.nix index b1b5daeb00f1..1e90828a6643 100644 --- a/pkgs/development/compilers/gcc/common/builder.nix +++ b/pkgs/development/compilers/gcc/common/builder.nix @@ -363,6 +363,13 @@ originalAttrs: fi done '' + + lib.optionalString stdenv.targetPlatform.isCygwin '' + targetBinDir="''${targetConfig+$targetConfig/}bin" + for i in "''${!outputBin}/$targetLibDir"/cyg*.dll; do + mkdir -p "''${!outputLib}/$targetBinDir" + mv "$i" "''${!outputLib}/$targetBinDir"/ + done + '' # if cross-compiling, link from $lib/lib to $lib/${targetConfig}. # since native-compiles have $lib/lib as a directory (not a # symlink), this ensures that in every case we can assume that From f5353dd50e51524cb3367010647e70662991343f Mon Sep 17 00:00:00 2001 From: David McFarland Date: Sun, 8 Feb 2026 18:51:59 -0400 Subject: [PATCH 011/239] cygwin-dll-link: improve search path order The search order will now be: 1. link target path 2. output bin paths 3. explicit input paths (e.g. libc) 4. HOST_PATH --- pkgs/build-support/cc-wrapper/default.nix | 2 +- .../cygwin-dll-link-hook/cygwin-dll-link.sh | 15 +++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix index 89cc7c4ce4fd..808fe5db2780 100644 --- a/pkgs/build-support/cc-wrapper/default.nix +++ b/pkgs/build-support/cc-wrapper/default.nix @@ -603,7 +603,7 @@ stdenvNoCC.mkDerivation { installPhase = if targetPlatform.isCygwin then '' - echo addToSearchPath "HOST_PATH" "${cc_solib}/bin" >> $out + echo addToSearchPath "_linkDeps_inputPath" "${cc_solib}/bin" >> $out # Work around build failure caused by the gnulib workaround for # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114870. remove after # gnulib is updated in core packages (e.g. iconv, gnupatch, gnugrep) diff --git a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh index 6fe69347861e..3711ef494ed1 100644 --- a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh +++ b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh @@ -8,13 +8,15 @@ _moveDLLsToLib() { preFixupHooks+=(_moveDLLsToLib) -addOutputDLLPaths() { +declare _linkDeps_inputPath _linkDeps_outputPath + +_addOutputDLLPaths() { for output in $(getAllOutputNames); do - addToSearchPath "HOST_PATH" "${!output}/bin" + addToSearchPath _linkDeps_outputPath "${!output}/bin" done } -preFixupHooks+=(addOutputDLLPaths) +preFixupHooks+=(_addOutputDLLPaths) _dllDeps() { @objdump@ -p "$1" \ @@ -35,12 +37,13 @@ _linkDeps() { continue fi # Locate the DLL - it should be an *executable* file on $HOST_PATH. - local dllPath - if ! dllPath="$(PATH="$(dirname "$target"):$HOST_PATH" type -P "$dll")"; then + local dllPath searchPath + searchPath=$(dirname "$target"):$_linkDeps_outputPath:$_linkDeps_inputPath:$HOST_PATH + if ! dllPath="$(PATH="$searchPath" type -P "$dll")"; then if [[ -z "$check" || -n "${allowedImpureDLLsMap[$dll]}" ]]; then continue fi - echo unable to find "$dll" in "$HOST_PATH" >&2 + echo unable to find "$dll" in "$searchPath" >&2 exit 1 fi echo ' linking to:' "$dllPath" From cbb96285de25e950fa9cc63f797cfd08202aea1a Mon Sep 17 00:00:00 2001 From: David McFarland Date: Tue, 21 Oct 2025 14:15:21 -0300 Subject: [PATCH 012/239] cygwin-dll-link: allow linkDLLs to be used on individual dirs/files --- .../cygwin-dll-link-hook/cygwin-dll-link.sh | 104 +++++++++++++----- 1 file changed, 75 insertions(+), 29 deletions(-) diff --git a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh index 3711ef494ed1..f5d1ae8e0a9c 100644 --- a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh +++ b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh @@ -24,39 +24,74 @@ _dllDeps() { | sort -u } +declare -Ag _linkDeps_visited + _linkDeps() { - local target="$1" dir="$2" check="$3" - [[ ! -x "$target" ]] && echo "_linkDeps: $target is not executable, skipping." 1>&2 && return + local target="$1" dir="$2" + if [[ -v _linkDeps_visited[$target] ]]; then + echo "_linkDeps: $target was already linked." 1>&2 + return + fi + if [[ ! -f "$target" || ! -x "$target" ]]; then + echo "_linkDeps: $target is not an executable file, skipping." 1>&2 + return + fi + + local realTarget output inOutput + realTarget="$(readlink -f "$target")" + for output in $outputs ; do + if [[ $realTarget == "${!output}"* ]]; then + echo "_linkDeps: $target ($realTarget) is in $output (${!output})." 1>&2 + inOutput=1 + break + fi + done + echo 'target:' "$target" local dll - _dllDeps "$target" | while read -r dll; do + while read -r dll; do echo ' dll:' "$dll" - if [[ -L "$dir/$dll" || -e "$dir/$dll" ]]; then continue; fi - if [[ $dll = cygwin1.dll ]]; then - CYGWIN+=\ winsymlinks:nativestrict ln -sr /bin/cygwin1.dll "$dir" + if [[ -v _linkDeps_visited[$dir/$dll] ]]; then + echo "_linkDeps: $dll was already linked into $dir." 1>&2 continue fi - # Locate the DLL - it should be an *executable* file on $HOST_PATH. - local dllPath searchPath - searchPath=$(dirname "$target"):$_linkDeps_outputPath:$_linkDeps_inputPath:$HOST_PATH - if ! dllPath="$(PATH="$searchPath" type -P "$dll")"; then - if [[ -z "$check" || -n "${allowedImpureDLLsMap[$dll]}" ]]; then - continue + if [[ -L "$dir/$dll" || -e "$dir/$dll" ]]; then + echo ' already exists' + _linkDeps "$dir/$dll" "$dir" + else + local dllPath + if [[ $dll = cygwin1.dll ]]; then + dllPath=/bin/cygwin1.dll + else + local searchPath + searchPath=$(dirname "$target"):$_linkDeps_outputPath:$_linkDeps_inputPath:$HOST_PATH + # Locate the DLL - it should be an *executable* file on $HOST_PATH. + # This intentionally doesn't use $dir because we want to prefer dependencies + # that are already linked next to the target. + if ! dllPath="$(PATH="$searchPath" type -P "$dll")"; then + if [[ -z "$inOutput" || -n "${allowedImpureDLLsMap[$dll]}" ]]; then + continue + fi + echo unable to find "$dll" in "$searchPath" >&2 + exit 1 + fi fi - echo unable to find "$dll" in "$searchPath" >&2 - exit 1 + echo ' linking to:' "$dllPath" + CYGWIN+=\ winsymlinks:nativestrict ln -sr "$dllPath" "$dir" + _linkDeps "$dllPath" "$dir" fi - echo ' linking to:' "$dllPath" - CYGWIN+=\ winsymlinks:nativestrict ln -sr "$dllPath" "$dir" - # That DLL might have its own (transitive) dependencies, - # so add also all DLLs from its directory to be sure. - _linkDeps "$dllPath" "$dir" "" - done + _linkDeps_visited[$dir/$dll]=1 + done < <(_dllDeps "$target") } +# linkDLLsDir can be used to override the destination path for links. This is +# useful if you're trying to link dependencies of libraries into the directory +# containing an executable. +# +# Arguments can be a file or directory path. Directories are searched +# recursively. linkDLLs() { # shellcheck disable=SC2154 - if [ ! -d "$prefix" ]; then return; fi ( set -e shopt -s globstar nullglob @@ -70,15 +105,26 @@ linkDLLs() { allowedImpureDLLsMap[$dll]=1 done - cd "$prefix" - - # Iterate over any DLL that we depend on. - local target - for target in {bin,lib,libexec}/**/*.{exe,dll}; do - [[ ! -f "$target" || ! -x "$target" ]] || - _linkDeps "$target" "$(dirname "$target")" "1" + local target file + for target in "$@"; do + # Iterate over any DLL that we depend on. + if [[ -f "$target" ]]; then + _linkDeps "$target" "${linkDLLsDir-$(dirname "$target")}" + elif [[ -d "$target" ]]; then + for file in "${target%/}"/**/*.{exe,dll}; do + _linkDeps "$file" "${linkDLLsDir-$(dirname "$file")}" + done + else + echo "linkDLLs: $target is not a file or directory, skipping." 1>&2 + fi done ) } -fixupOutputHooks+=(linkDLLs) +_linkDLLs() { + # shellcheck disable=SC2154 + if [[ ! -d $prefix || ${dontLinkDLLs-} ]]; then return; fi + linkDLLs "$prefix"/{bin,lib,libexec}/ +} + +fixupOutputHooks+=(_linkDLLs) From dcebaab6239280506ba1d54d1d22f3f2c8fb5579 Mon Sep 17 00:00:00 2001 From: David McFarland Date: Mon, 29 Dec 2025 14:53:21 -0400 Subject: [PATCH 013/239] cygwin-dll-link: improve symlink handling --- .../cygwin-dll-link-hook/cygwin-dll-link.sh | 48 ++++++++++++------- 1 file changed, 30 insertions(+), 18 deletions(-) diff --git a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh index f5d1ae8e0a9c..006dc0408cd0 100644 --- a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh +++ b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh @@ -28,20 +28,24 @@ declare -Ag _linkDeps_visited _linkDeps() { local target="$1" dir="$2" + + # canonicalise these for the dictionary + target=$(realpath -s "$target") + dir=$(realpath -s "$dir") + if [[ -v _linkDeps_visited[$target] ]]; then echo "_linkDeps: $target was already linked." 1>&2 return fi - if [[ ! -f "$target" || ! -x "$target" ]]; then + if [[ ! -f $target || ! -x $target ]]; then echo "_linkDeps: $target is not an executable file, skipping." 1>&2 return fi - local realTarget output inOutput - realTarget="$(readlink -f "$target")" + local output inOutput for output in $outputs ; do - if [[ $realTarget == "${!output}"* ]]; then - echo "_linkDeps: $target ($realTarget) is in $output (${!output})." 1>&2 + if [[ $target == "${!output}"* && ! -L $target ]]; then + echo "_linkDeps: $target is in $output (${!output})." 1>&2 inOutput=1 break fi @@ -51,25 +55,32 @@ _linkDeps() { local dll while read -r dll; do echo ' dll:' "$dll" - if [[ -v _linkDeps_visited[$dir/$dll] ]]; then + local dllPath=$dir/$dll + if [[ -v _linkDeps_visited[$dllPath] ]]; then echo "_linkDeps: $dll was already linked into $dir." 1>&2 continue fi - if [[ -L "$dir/$dll" || -e "$dir/$dll" ]]; then - echo ' already exists' - _linkDeps "$dir/$dll" "$dir" + if [[ -L $dllPath ]]; then + echo ' already linked' + dllPath=$(realpath -s "$(readlink "$dllPath")") + _linkDeps "$dllPath" "$dir" + elif [[ -e $dllPath ]]; then + echo ' already exits' + _linkDeps "$dllPath" "$dir" else - local dllPath if [[ $dll = cygwin1.dll ]]; then dllPath=/bin/cygwin1.dll else - local searchPath - searchPath=$(dirname "$target"):$_linkDeps_outputPath:$_linkDeps_inputPath:$HOST_PATH - # Locate the DLL - it should be an *executable* file on $HOST_PATH. - # This intentionally doesn't use $dir because we want to prefer dependencies - # that are already linked next to the target. - if ! dllPath="$(PATH="$searchPath" type -P "$dll")"; then - if [[ -z "$inOutput" || -n "${allowedImpureDLLsMap[$dll]}" ]]; then + # This intentionally doesn't use $dir because we want to prefer + # dependencies that are already linked next to the target. + local searchPath realTarget + searchPath=$_linkDeps_outputPath:$_linkDeps_inputPath:$HOST_PATH + if [[ -L $target ]]; then + searchPath=$searchPath:$(dirname "$(readlink "$target")") + fi + searchPath=$(dirname "$target"):$searchPath + if ! dllPath=$(PATH="$searchPath" type -P "$dll"); then + if [[ -z $inOutput || -n ${allowedImpureDLLsMap[$dll]} ]]; then continue fi echo unable to find "$dll" in "$searchPath" >&2 @@ -82,6 +93,7 @@ _linkDeps() { fi _linkDeps_visited[$dir/$dll]=1 done < <(_dllDeps "$target") + wait $! } # linkDLLsDir can be used to override the destination path for links. This is @@ -94,7 +106,7 @@ linkDLLs() { # shellcheck disable=SC2154 ( set -e - shopt -s globstar nullglob + shopt -s globstar nullglob dotglob local -a allowedImpureDLLsArray concatTo allowedImpureDLLsArray allowedImpureDLLs From f1d9560d4032c5df9c46fe57cb1e38d8b8f9fec3 Mon Sep 17 00:00:00 2001 From: David McFarland Date: Sun, 8 Feb 2026 19:40:32 -0400 Subject: [PATCH 014/239] cygwin.cygwinDllLinkHook: add tests --- .../cygwin/cygwin-dll-link-hook/default.nix | 2 + .../cygwin-dll-link-hook/tests/default.nix | 130 ++++++++++++++++++ .../cygwin-dll-link-hook/tests/dll/Makefile | 16 +++ .../cygwin-dll-link-hook/tests/dll/hello.c | 7 + .../cygwin-dll-link-hook/tests/dll/hello.h | 2 + .../cygwin-dll-link-hook/tests/dll2/Makefile | 16 +++ .../cygwin-dll-link-hook/tests/dll2/hello2.c | 6 + .../cygwin-dll-link-hook/tests/dll2/hello2.h | 2 + .../cygwin-dll-link-hook/tests/exe/Makefile | 13 ++ .../cygwin-dll-link-hook/tests/exe/main.c | 6 + .../tests/user32-dll/Makefile | 16 +++ .../tests/user32-dll/peek.c | 7 + .../tests/user32-dll/peek.h | 2 + .../tests/user32-exe/Makefile | 13 ++ .../tests/user32-exe/main.c | 6 + .../tests/user32/Makefile | 13 ++ .../cygwin-dll-link-hook/tests/user32/main.c | 7 + 17 files changed, 264 insertions(+) create mode 100644 pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/default.nix create mode 100644 pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/dll/Makefile create mode 100644 pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/dll/hello.c create mode 100644 pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/dll/hello.h create mode 100644 pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/dll2/Makefile create mode 100644 pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/dll2/hello2.c create mode 100644 pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/dll2/hello2.h create mode 100644 pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/exe/Makefile create mode 100644 pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/exe/main.c create mode 100644 pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/user32-dll/Makefile create mode 100644 pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/user32-dll/peek.c create mode 100644 pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/user32-dll/peek.h create mode 100644 pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/user32-exe/Makefile create mode 100644 pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/user32-exe/main.c create mode 100644 pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/user32/Makefile create mode 100644 pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/user32/main.c diff --git a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/default.nix b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/default.nix index b3185140f2ea..ff9eed6bdeef 100644 --- a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/default.nix +++ b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/default.nix @@ -10,4 +10,6 @@ makeSetupHook { substitutions = { objdump = "${lib.getBin binutils-unwrapped}/${stdenv.targetPlatform.config}/bin/objdump"; }; + + passthru.tests = callPackage ./tests { }; } ./cygwin-dll-link.sh diff --git a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/default.nix b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/default.nix new file mode 100644 index 000000000000..a8744001dc2d --- /dev/null +++ b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/default.nix @@ -0,0 +1,130 @@ +{ + dieHook, + lib, + stdenv, + testers, + runCommand, +}: + +rec { + dll = stdenv.mkDerivation { + name = "dll"; + src = ./dll; + outputs = [ + "out" + "dev" + ]; + buildInputs = [ dll2 ]; + strictDeps = true; + }; + + dll2 = stdenv.mkDerivation { + name = "dll2"; + src = ./dll2; + outputs = [ + "out" + "dev" + ]; + }; + + exe = stdenv.mkDerivation { + name = "exe"; + src = ./exe; + buildInputs = [ dll ]; + nativeBuildInputs = [ dieHook ]; + strictDeps = true; + doCheck = true; + postFixup = ''[[ -e "$out"/bin/cyghello2.dll ]] || die missing indirect dependency''; + }; + + link-dll = exe.overrideAttrs { + name = "link-dll"; + preFixup = '' + ln -s ${lib.getLib dll}/bin/cyghello.dll "$out"/bin/ + ''; + }; + + user32 = stdenv.mkDerivation { + name = "user32"; + src = ./user32; + allowedImpureDLLs = [ "USER32.dll" ]; + }; + + impure-dll = testers.testBuildFailure ( + user32.overrideAttrs { + name = "impure-dll"; + allowedImpureDLLs = [ ]; + } + ); + + user32-dll = stdenv.mkDerivation { + name = "user32-dll"; + src = ./user32-dll; + outputs = [ + "out" + "dev" + ]; + allowedImpureDLLs = [ "USER32.dll" ]; + }; + + user32-exe = stdenv.mkDerivation { + name = "user32-exe"; + src = ./user32-exe; + buildInputs = [ user32-dll ]; + strictDeps = true; + doCheck = true; + }; + + link-dir-dll = exe.overrideAttrs { + name = "link-dir-dll"; + preFixup = '' + mkdir "$out"/libexec + ln -s ${lib.getLib user32-dll}/bin/cygpeek.dll "$out"/libexec/ + linkDLLsDir="$out"/bin linkDLLs "$out"/libexec/cygpeek.dll + ''; + }; + + link-dir-exe = exe.overrideAttrs { + name = "link-dir-exe"; + preFixup = '' + mkdir "$out"/libexec + ln -s ${lib.getLib user32-exe}/bin/{peek.exe,cygpeek.dll} "$out"/libexec/ + linkDLLsDir="$out"/bin linkDLLs "$out"/libexec/peek.exe + ''; + }; + + link-user32-dll = exe.overrideAttrs { + name = "link-user32-dll"; + preFixup = '' + ln -s ${lib.getLib user32-dll}/bin/cygpeek.dll "$out"/bin/ + ''; + }; + + copy-dll-impure = testers.testBuildFailure ( + user32-exe.overrideAttrs { + name = "copy-dll-impure"; + preFixup = '' + cp ${lib.getLib user32-dll}/bin/cygpeek.dll "$out"/bin/ + ''; + } + ); + + copy-dll = user32-exe.overrideAttrs { + name = "copy-dll"; + preFixup = '' + cp ${lib.getLib user32-dll}/bin/cygpeek.dll "$out"/bin/ + linkDLLs "$out"/bin/cygpeek.dll + ''; + allowedImpureDLLs = [ "USER32.dll" ]; + }; + + double-link = user32-exe.overrideAttrs { + name = "double-link"; + preFixup = ''linkDLLs "$out"''; + }; + + utf8-glob = runCommand "utf8-glob" { } '' + touch NetLock_Arany_=Class_Gold=_Főtanstvny:49412ce40010.crt + ls -l NetLock* > "$out" + ''; +} diff --git a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/dll/Makefile b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/dll/Makefile new file mode 100644 index 000000000000..25e1e53c38e4 --- /dev/null +++ b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/dll/Makefile @@ -0,0 +1,16 @@ +.PHONY: all install +all: cyghello.dll + +install: $(out)/bin/cyghello.dll $(out)/lib/libhello.dll.a $(out)/include/hello.h + +cyghello.dll libhello.dll.a: hello.c + $(CC) -o $@ $^ -shared -Wl,--out-implib,libhello.dll.a -Wl,--export-all-symbols -lhello2 + +$(out)/bin/cyghello.dll: cyghello.dll + install -m755 -D $< $@ + +$(out)/lib/libhello.dll.a: libhello.dll.a + install -m644 -D $< $@ + +$(out)/include/hello.h: hello.h + install -m644 -D $< $@ diff --git a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/dll/hello.c b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/dll/hello.c new file mode 100644 index 000000000000..db1a301c91a4 --- /dev/null +++ b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/dll/hello.c @@ -0,0 +1,7 @@ +#include "hello.h" +#include +#include + +void hello() { + hello2(); +} diff --git a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/dll/hello.h b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/dll/hello.h new file mode 100644 index 000000000000..a4a0b54c6052 --- /dev/null +++ b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/dll/hello.h @@ -0,0 +1,2 @@ +#pragma once +void hello(); diff --git a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/dll2/Makefile b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/dll2/Makefile new file mode 100644 index 000000000000..87c5c1a9b9cc --- /dev/null +++ b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/dll2/Makefile @@ -0,0 +1,16 @@ +.PHONY: all install +all: cyghello2.dll + +install: $(out)/bin/cyghello2.dll $(out)/lib/libhello2.dll.a $(out)/include/hello2.h + +cyghello2.dll libhello2.dll.a: hello2.c + $(CC) -o $@ $^ -shared -Wl,--out-implib,libhello2.dll.a -Wl,--export-all-symbols + +$(out)/bin/cyghello2.dll: cyghello2.dll + install -m755 -D $< $@ + +$(out)/lib/libhello2.dll.a: libhello2.dll.a + install -m644 -D $< $@ + +$(out)/include/hello2.h: hello2.h + install -m644 -D $< $@ diff --git a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/dll2/hello2.c b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/dll2/hello2.c new file mode 100644 index 000000000000..d23050fbb776 --- /dev/null +++ b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/dll2/hello2.c @@ -0,0 +1,6 @@ +#include +#include "hello2.h" + +void hello2() { + printf("Hello, World!\n"); +} diff --git a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/dll2/hello2.h b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/dll2/hello2.h new file mode 100644 index 000000000000..34e200a07e95 --- /dev/null +++ b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/dll2/hello2.h @@ -0,0 +1,2 @@ +#pragma once +void hello2(); diff --git a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/exe/Makefile b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/exe/Makefile new file mode 100644 index 000000000000..da16b5d08c79 --- /dev/null +++ b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/exe/Makefile @@ -0,0 +1,13 @@ +.PHONY: all check install +all: hello.exe + +install: $(out)/bin/hello.exe + +hello.exe: main.c + $(CC) -o $@ $^ -lhello + +check: hello.exe + ./hello.exe + +$(out)/bin/hello.exe: hello.exe + install -m755 -D $< $@ diff --git a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/exe/main.c b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/exe/main.c new file mode 100644 index 000000000000..9dbc882ea430 --- /dev/null +++ b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/exe/main.c @@ -0,0 +1,6 @@ +#include + +int main() { + hello(); + return 0; +} diff --git a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/user32-dll/Makefile b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/user32-dll/Makefile new file mode 100644 index 000000000000..483ad8854a06 --- /dev/null +++ b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/user32-dll/Makefile @@ -0,0 +1,16 @@ +.PHONY: all install +all: cygpeek.dll + +install: $(out)/bin/cygpeek.dll $(out)/lib/libpeek.dll.a $(out)/include/peek.h + +cygpeek.dll libpeek.dll.a: peek.c + $(CC) -o $@ $^ -shared -Wl,--out-implib,libpeek.dll.a -Wl,--export-all-symbols + +$(out)/bin/cygpeek.dll: cygpeek.dll + install -m755 -D $< $@ + +$(out)/lib/libpeek.dll.a: libpeek.dll.a + install -m644 -D $< $@ + +$(out)/include/peek.h: peek.h + install -m644 -D $< $@ diff --git a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/user32-dll/peek.c b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/user32-dll/peek.c new file mode 100644 index 000000000000..715adb003c15 --- /dev/null +++ b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/user32-dll/peek.c @@ -0,0 +1,7 @@ +#include + +int peek() +{ + MSG msg; + PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE); +} diff --git a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/user32-dll/peek.h b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/user32-dll/peek.h new file mode 100644 index 000000000000..800f23f77da5 --- /dev/null +++ b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/user32-dll/peek.h @@ -0,0 +1,2 @@ +#pragma once +void peek(); diff --git a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/user32-exe/Makefile b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/user32-exe/Makefile new file mode 100644 index 000000000000..231601818914 --- /dev/null +++ b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/user32-exe/Makefile @@ -0,0 +1,13 @@ +.PHONY: all check install +all: peek.exe + +install: $(out)/bin/peek.exe + +peek.exe: main.c + $(CC) -o $@ $^ -lpeek + +check: peek.exe + ./peek.exe + +$(out)/bin/peek.exe: peek.exe + install -m755 -D $< $@ diff --git a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/user32-exe/main.c b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/user32-exe/main.c new file mode 100644 index 000000000000..cddc78c91cab --- /dev/null +++ b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/user32-exe/main.c @@ -0,0 +1,6 @@ +#include + +int main() { + peek(); + return 0; +} diff --git a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/user32/Makefile b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/user32/Makefile new file mode 100644 index 000000000000..6c696a2e8cd0 --- /dev/null +++ b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/user32/Makefile @@ -0,0 +1,13 @@ +.PHONY: all check install +all: hello.exe + +install: $(out)/bin/hello.exe + +hello.exe: main.c + $(CC) -o $@ $^ + +check: hello.exe + ./hello.exe + +$(out)/bin/hello.exe: hello.exe + install -m755 -D $< $@ diff --git a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/user32/main.c b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/user32/main.c new file mode 100644 index 000000000000..9cc135770d21 --- /dev/null +++ b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/tests/user32/main.c @@ -0,0 +1,7 @@ +#include + +int main() +{ + MSG msg; + PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE); +} From a934e8a9e5a701efa45279def48d7aa097fe2db8 Mon Sep 17 00:00:00 2001 From: David McFarland Date: Sun, 8 Feb 2026 19:51:57 -0400 Subject: [PATCH 015/239] cygwin-dll-link: replace escaped space with quoting --- pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh index 006dc0408cd0..95e63b5458ab 100644 --- a/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh +++ b/pkgs/os-specific/cygwin/cygwin-dll-link-hook/cygwin-dll-link.sh @@ -88,7 +88,7 @@ _linkDeps() { fi fi echo ' linking to:' "$dllPath" - CYGWIN+=\ winsymlinks:nativestrict ln -sr "$dllPath" "$dir" + CYGWIN+=' winsymlinks:nativestrict' ln -sr "$dllPath" "$dir" _linkDeps "$dllPath" "$dir" fi _linkDeps_visited[$dir/$dll]=1 From 897ac68c7eb1174e0d2bc96258d8ee032cf72c8e Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Mon, 9 Feb 2026 02:38:40 +0100 Subject: [PATCH 016/239] python3Packages.tensorflow: move env variables into env for structuredAttrs --- .../python-modules/tensorflow/default.nix | 144 +++++++++--------- 1 file changed, 73 insertions(+), 71 deletions(-) diff --git a/pkgs/development/python-modules/tensorflow/default.nix b/pkgs/development/python-modules/tensorflow/default.nix index 75cd0d771d71..22f2220d30c2 100644 --- a/pkgs/development/python-modules/tensorflow/default.nix +++ b/pkgs/development/python-modules/tensorflow/default.nix @@ -344,84 +344,89 @@ let ++ lib.optionals mklSupport [ mkl ] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ nsync ]; - # arbitrarily set to the current latest bazel version, overly careful - TF_IGNORE_MAX_BAZEL_VERSION = true; + env = { + # arbitrarily set to the current latest bazel version, overly careful + TF_IGNORE_MAX_BAZEL_VERSION = true; - LIBTOOL = lib.optionalString stdenv.hostPlatform.isDarwin "${cctools}/bin/libtool"; + LIBTOOL = lib.optionalString stdenv.hostPlatform.isDarwin "${cctools}/bin/libtool"; - # Take as many libraries from the system as possible. Keep in sync with - # list of valid syslibs in - # https://github.com/tensorflow/tensorflow/blob/master/third_party/systemlibs/syslibs_configure.bzl - TF_SYSTEM_LIBS = lib.concatStringsSep "," ( - [ - "absl_py" - "astor_archive" - "astunparse_archive" - "boringssl" - "com_google_absl" - # Not packaged in nixpkgs - # "com_github_googleapis_googleapis" - # "com_github_googlecloudplatform_google_cloud_cpp" - "com_github_grpc_grpc" - "com_google_protobuf" - # Fails with the error: external/org_tensorflow/tensorflow/core/profiler/utils/tf_op_utils.cc:46:49: error: no matching function for call to 're2::RE2::FullMatch(absl::lts_2020_02_25::string_view&, re2::RE2&)' - # "com_googlesource_code_re2" - "curl" - "cython" - "dill_archive" - "double_conversion" - "flatbuffers" - "functools32_archive" - "gast_archive" - "gif" - "hwloc" - "icu" - "jsoncpp_git" - "libjpeg_turbo" - "nasm" - "opt_einsum_archive" - "org_sqlite" - "pasta" - "png" - "pybind11" - "six_archive" - "snappy" - "tblib_archive" - "termcolor_archive" - "typing_extensions_archive" - "wrapt" - "zlib" - ] - ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ - "nsync" # fails to build on darwin - ] - ); + # Take as many libraries from the system as possible. Keep in sync with + # list of valid syslibs in + # https://github.com/tensorflow/tensorflow/blob/master/third_party/systemlibs/syslibs_configure.bzl + TF_SYSTEM_LIBS = lib.concatStringsSep "," ( + [ + "absl_py" + "astor_archive" + "astunparse_archive" + "boringssl" + "com_google_absl" + # Not packaged in nixpkgs + # "com_github_googleapis_googleapis" + # "com_github_googlecloudplatform_google_cloud_cpp" + "com_github_grpc_grpc" + "com_google_protobuf" + # Fails with the error: external/org_tensorflow/tensorflow/core/profiler/utils/tf_op_utils.cc:46:49: error: no matching function for call to 're2::RE2::FullMatch(absl::lts_2020_02_25::string_view&, re2::RE2&)' + # "com_googlesource_code_re2" + "curl" + "cython" + "dill_archive" + "double_conversion" + "flatbuffers" + "functools32_archive" + "gast_archive" + "gif" + "hwloc" + "icu" + "jsoncpp_git" + "libjpeg_turbo" + "nasm" + "opt_einsum_archive" + "org_sqlite" + "pasta" + "png" + "pybind11" + "six_archive" + "snappy" + "tblib_archive" + "termcolor_archive" + "typing_extensions_archive" + "wrapt" + "zlib" + ] + ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ + "nsync" # fails to build on darwin + ] + ); - INCLUDEDIR = "${includes_joined}/include"; + INCLUDEDIR = "${includes_joined}/include"; - # This is needed for the Nix-provided protobuf dependency to work, - # as otherwise the rule `link_proto_files` tries to create the links - # to `/usr/include/...` which results in build failures. - PROTOBUF_INCLUDE_PATH = "${protobuf-core}/include"; + # This is needed for the Nix-provided protobuf dependency to work, + # as otherwise the rule `link_proto_files` tries to create the links + # to `/usr/include/...` which results in build failures. + PROTOBUF_INCLUDE_PATH = "${protobuf-core}/include"; - PYTHON_BIN_PATH = pythonEnv.interpreter; + PYTHON_BIN_PATH = pythonEnv.interpreter; - TF_NEED_GCP = true; - TF_NEED_HDFS = true; - TF_ENABLE_XLA = tfFeature xlaSupport; + TF_NEED_GCP = true; + TF_NEED_HDFS = true; + TF_ENABLE_XLA = tfFeature xlaSupport; - CC_OPT_FLAGS = " "; + CC_OPT_FLAGS = " "; - # https://github.com/tensorflow/tensorflow/issues/14454 - TF_NEED_MPI = tfFeature cudaSupport; + # https://github.com/tensorflow/tensorflow/issues/14454 + TF_NEED_MPI = tfFeature cudaSupport; - TF_NEED_CUDA = tfFeature cudaSupport; - TF_CUDA_PATHS = lib.optionalString cudaSupport "${cudatoolkitDevMerged},${cudnnMerged},${lib.getLib nccl}"; - TF_CUDA_COMPUTE_CAPABILITIES = lib.concatStringsSep "," cudaCapabilities; + TF_NEED_CUDA = tfFeature cudaSupport; + TF_CUDA_PATHS = lib.optionalString cudaSupport "${cudatoolkitDevMerged},${cudnnMerged},${lib.getLib nccl}"; + TF_CUDA_COMPUTE_CAPABILITIES = lib.concatStringsSep "," cudaCapabilities; - # Needed even when we override stdenv: e.g. for ar - GCC_HOST_COMPILER_PREFIX = lib.optionalString cudaSupport "${cudatoolkit_cc_joined}/bin"; - GCC_HOST_COMPILER_PATH = lib.optionalString cudaSupport "${cudatoolkit_cc_joined}/bin/cc"; + # Needed even when we override stdenv: e.g. for ar + GCC_HOST_COMPILER_PREFIX = lib.optionalString cudaSupport "${cudatoolkit_cc_joined}/bin"; + GCC_HOST_COMPILER_PATH = lib.optionalString cudaSupport "${cudatoolkit_cc_joined}/bin/cc"; + + # https://github.com/tensorflow/tensorflow/pull/39470 + NIX_CFLAGS_COMPILE = toString [ "-Wno-stringop-truncation" ]; + }; patches = [ "${gentoo-patches}/0002-systemlib-Latest-absl-LTS-has-split-cord-libs.patch" @@ -453,9 +458,6 @@ let sed -i '/tensorboard ~=/d' tensorflow/tools/pip_package/setup.py ''; - # https://github.com/tensorflow/tensorflow/pull/39470 - env.NIX_CFLAGS_COMPILE = toString [ "-Wno-stringop-truncation" ]; - preConfigure = let opt_flags = From 82871139974077ba7ccfbf00803be636ed71be59 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Mon, 9 Feb 2026 02:36:55 +0100 Subject: [PATCH 017/239] uboot: move env variables into env for structuredAttrs --- pkgs/misc/uboot/default.nix | 146 +++++++++++++++++++++++------------- 1 file changed, 93 insertions(+), 53 deletions(-) diff --git a/pkgs/misc/uboot/default.nix b/pkgs/misc/uboot/default.nix index 1c4fab7c75ab..78abd41049ac 100644 --- a/pkgs/misc/uboot/default.nix +++ b/pkgs/misc/uboot/default.nix @@ -261,8 +261,10 @@ in ubootBananaPim64 = buildUBoot { defconfig = "bananapi_m64_defconfig"; extraMeta.platforms = [ "aarch64-linux" ]; - BL31 = "${armTrustedFirmwareAllwinner}/bl31.bin"; - SCP = "/dev/null"; + env = { + BL31 = "${armTrustedFirmwareAllwinner}/bl31.bin"; + SCP = "/dev/null"; + }; filesToInstall = [ "u-boot-sunxi-with-spl.bin" ]; }; @@ -276,8 +278,10 @@ in ubootCM3588NAS = buildUBoot { defconfig = "cm3588-nas-rk3588_defconfig"; extraMeta.platforms = [ "aarch64-linux" ]; - BL31 = "${armTrustedFirmwareRK3588}/bl31.elf"; - ROCKCHIP_TPL = rkbin.TPL_RK3588; + env = { + BL31 = "${armTrustedFirmwareRK3588}/bl31.elf"; + ROCKCHIP_TPL = rkbin.TPL_RK3588; + }; filesToInstall = [ "u-boot.itb" "idbloader.img" @@ -377,7 +381,7 @@ in platforms = [ "aarch64-linux" ]; license = lib.licenses.unfreeRedistributableFirmware; }; - BL31 = "${armTrustedFirmwareRK3399}/bl31.elf"; + env.BL31 = "${armTrustedFirmwareRK3399}/bl31.elf"; filesToInstall = [ "u-boot.itb" "idbloader.img" @@ -391,8 +395,10 @@ in ubootNanoPCT6 = buildUBoot { defconfig = "nanopc-t6-rk3588_defconfig"; extraMeta.platforms = [ "aarch64-linux" ]; - BL31 = "${armTrustedFirmwareRK3588}/bl31.elf"; - ROCKCHIP_TPL = rkbin.TPL_RK3588; + env = { + BL31 = "${armTrustedFirmwareRK3588}/bl31.elf"; + ROCKCHIP_TPL = rkbin.TPL_RK3588; + }; filesToInstall = [ "u-boot.itb" "idbloader.img" @@ -404,8 +410,10 @@ in ubootNanoPiR5S = buildUBoot { defconfig = "nanopi-r5s-rk3568_defconfig"; extraMeta.platforms = [ "aarch64-linux" ]; - BL31 = rkbin.BL31_RK3568; - ROCKCHIP_TPL = rkbin.TPL_RK3568; + env = { + BL31 = rkbin.BL31_RK3568; + ROCKCHIP_TPL = rkbin.TPL_RK3568; + }; filesToInstall = [ "idbloader.img" "u-boot.itb" @@ -490,25 +498,31 @@ in ubootOlimexA64Olinuxino = buildUBoot { defconfig = "a64-olinuxino-emmc_defconfig"; extraMeta.platforms = [ "aarch64-linux" ]; - BL31 = "${armTrustedFirmwareAllwinner}/bl31.bin"; - SCP = "/dev/null"; + env = { + BL31 = "${armTrustedFirmwareAllwinner}/bl31.bin"; + SCP = "/dev/null"; + }; filesToInstall = [ "u-boot-sunxi-with-spl.bin" ]; }; ubootOlimexA64Teres1 = buildUBoot { defconfig = "teres_i_defconfig"; extraMeta.platforms = [ "aarch64-linux" ]; - BL31 = "${armTrustedFirmwareAllwinner}/bl31.bin"; - # Using /dev/null here is upstream-specified way that disables the inclusion of crust-firmware as it's not yet packaged and without which the build will fail -- https://docs.u-boot.org/en/latest/board/allwinner/sunxi.html#building-the-crust-management-processor-firmware - SCP = "/dev/null"; + env = { + BL31 = "${armTrustedFirmwareAllwinner}/bl31.bin"; + # Using /dev/null here is upstream-specified way that disables the inclusion of crust-firmware as it's not yet packaged and without which the build will fail -- https://docs.u-boot.org/en/latest/board/allwinner/sunxi.html#building-the-crust-management-processor-firmware + SCP = "/dev/null"; + }; filesToInstall = [ "u-boot-sunxi-with-spl.bin" ]; }; ubootOrangePi5 = buildUBoot { defconfig = "orangepi-5-rk3588s_defconfig"; extraMeta.platforms = [ "aarch64-linux" ]; - BL31 = "${armTrustedFirmwareRK3588}/bl31.elf"; - ROCKCHIP_TPL = rkbin.TPL_RK3588; + env = { + BL31 = "${armTrustedFirmwareRK3588}/bl31.elf"; + ROCKCHIP_TPL = rkbin.TPL_RK3588; + }; filesToInstall = [ "u-boot.itb" "idbloader.img" @@ -520,8 +534,10 @@ in ubootOrangePi5Max = buildUBoot { defconfig = "orangepi-5-max-rk3588_defconfig"; extraMeta.platforms = [ "aarch64-linux" ]; - BL31 = "${armTrustedFirmwareRK3588}/bl31.elf"; - ROCKCHIP_TPL = rkbin.TPL_RK3588; + env = { + BL31 = "${armTrustedFirmwareRK3588}/bl31.elf"; + ROCKCHIP_TPL = rkbin.TPL_RK3588; + }; filesToInstall = [ "u-boot.itb" "idbloader.img" @@ -533,8 +549,10 @@ in ubootOrangePi5Plus = buildUBoot { defconfig = "orangepi-5-plus-rk3588_defconfig"; extraMeta.platforms = [ "aarch64-linux" ]; - BL31 = "${armTrustedFirmwareRK3588}/bl31.elf"; - ROCKCHIP_TPL = rkbin.TPL_RK3588; + env = { + BL31 = "${armTrustedFirmwareRK3588}/bl31.elf"; + ROCKCHIP_TPL = rkbin.TPL_RK3588; + }; filesToInstall = [ "u-boot.itb" "idbloader.img" @@ -552,8 +570,10 @@ in ubootOrangePiZeroPlus2H5 = buildUBoot { defconfig = "orangepi_zero_plus2_defconfig"; extraMeta.platforms = [ "aarch64-linux" ]; - BL31 = "${armTrustedFirmwareAllwinner}/bl31.bin"; - SCP = "/dev/null"; + env = { + BL31 = "${armTrustedFirmwareAllwinner}/bl31.bin"; + SCP = "/dev/null"; + }; filesToInstall = [ "u-boot-sunxi-with-spl.bin" ]; }; @@ -566,7 +586,7 @@ in ubootOrangePiZero2 = buildUBoot { defconfig = "orangepi_zero2_defconfig"; extraMeta.platforms = [ "aarch64-linux" ]; - BL31 = "${armTrustedFirmwareAllwinnerH616}/bl31.bin"; + env.BL31 = "${armTrustedFirmwareAllwinnerH616}/bl31.bin"; filesToInstall = [ "u-boot-sunxi-with-spl.bin" ]; }; @@ -576,23 +596,27 @@ in # According to https://linux-sunxi.org/H616 the H618 "is a minor update with a larger (1MB) L2 cache" (compared to the H616) # but "does require extra support in U-Boot, TF-A and sunxi-fel. Support for that has been merged in mainline releases." # But no extra support seems to be in TF-A. - BL31 = "${armTrustedFirmwareAllwinnerH616}/bl31.bin"; + env.BL31 = "${armTrustedFirmwareAllwinnerH616}/bl31.bin"; filesToInstall = [ "u-boot-sunxi-with-spl.bin" ]; }; ubootOrangePi3 = buildUBoot { defconfig = "orangepi_3_defconfig"; extraMeta.platforms = [ "aarch64-linux" ]; - BL31 = "${armTrustedFirmwareAllwinnerH6}/bl31.bin"; - SCP = "/dev/null"; + env = { + BL31 = "${armTrustedFirmwareAllwinnerH6}/bl31.bin"; + SCP = "/dev/null"; + }; filesToInstall = [ "u-boot-sunxi-with-spl.bin" ]; }; ubootOrangePi3B = buildUBoot { defconfig = "orangepi-3b-rk3566_defconfig"; extraMeta.platforms = [ "aarch64-linux" ]; - ROCKCHIP_TPL = rkbin.TPL_RK3568; - BL31 = rkbin.BL31_RK3568; + env = { + ROCKCHIP_TPL = rkbin.TPL_RK3568; + BL31 = rkbin.BL31_RK3568; + }; filesToInstall = [ "u-boot.itb" "idbloader.img" @@ -610,31 +634,37 @@ in ubootPine64 = buildUBoot { defconfig = "pine64_plus_defconfig"; extraMeta.platforms = [ "aarch64-linux" ]; - BL31 = "${armTrustedFirmwareAllwinner}/bl31.bin"; - SCP = "/dev/null"; + env = { + BL31 = "${armTrustedFirmwareAllwinner}/bl31.bin"; + SCP = "/dev/null"; + }; filesToInstall = [ "u-boot-sunxi-with-spl.bin" ]; }; ubootPine64LTS = buildUBoot { defconfig = "pine64-lts_defconfig"; extraMeta.platforms = [ "aarch64-linux" ]; - BL31 = "${armTrustedFirmwareAllwinner}/bl31.bin"; - SCP = "/dev/null"; + env = { + BL31 = "${armTrustedFirmwareAllwinner}/bl31.bin"; + SCP = "/dev/null"; + }; filesToInstall = [ "u-boot-sunxi-with-spl.bin" ]; }; ubootPinebook = buildUBoot { defconfig = "pinebook_defconfig"; extraMeta.platforms = [ "aarch64-linux" ]; - BL31 = "${armTrustedFirmwareAllwinner}/bl31.bin"; - SCP = "/dev/null"; + env = { + BL31 = "${armTrustedFirmwareAllwinner}/bl31.bin"; + SCP = "/dev/null"; + }; filesToInstall = [ "u-boot-sunxi-with-spl.bin" ]; }; ubootPinebookPro = buildUBoot { defconfig = "pinebook-pro-rk3399_defconfig"; extraMeta.platforms = [ "aarch64-linux" ]; - BL31 = "${armTrustedFirmwareRK3399}/bl31.elf"; + env.BL31 = "${armTrustedFirmwareRK3399}/bl31.elf"; filesToInstall = [ "u-boot.itb" "idbloader.img" @@ -689,8 +719,10 @@ in ubootQuartz64B = buildUBoot { defconfig = "quartz64-b-rk3566_defconfig"; extraMeta.platforms = [ "aarch64-linux" ]; - BL31 = "${armTrustedFirmwareRK3568}/bl31.elf"; - ROCKCHIP_TPL = rkbin.TPL_RK3566; + env = { + BL31 = "${armTrustedFirmwareRK3568}/bl31.elf"; + ROCKCHIP_TPL = rkbin.TPL_RK3566; + }; filesToInstall = [ "idbloader.img" "idbloader-spi.img" @@ -703,8 +735,10 @@ in ubootRadxaZero3W = buildUBoot { defconfig = "radxa-zero-3-rk3566_defconfig"; extraMeta.platforms = [ "aarch64-linux" ]; - BL31 = "${armTrustedFirmwareRK3568}/bl31.elf"; - ROCKCHIP_TPL = rkbin.TPL_RK3566; + env = { + BL31 = "${armTrustedFirmwareRK3568}/bl31.elf"; + ROCKCHIP_TPL = rkbin.TPL_RK3566; + }; filesToInstall = [ "idbloader.img" "u-boot.itb" @@ -757,7 +791,7 @@ in ubootRock4CPlus = buildUBoot { defconfig = "rock-4c-plus-rk3399_defconfig"; extraMeta.platforms = [ "aarch64-linux" ]; - BL31 = "${armTrustedFirmwareRK3399}/bl31.elf"; + env.BL31 = "${armTrustedFirmwareRK3399}/bl31.elf"; filesToInstall = [ "u-boot.itb" "idbloader.img" @@ -767,8 +801,10 @@ in ubootRock5ModelB = buildUBoot { defconfig = "rock5b-rk3588_defconfig"; extraMeta.platforms = [ "aarch64-linux" ]; - BL31 = "${armTrustedFirmwareRK3588}/bl31.elf"; - ROCKCHIP_TPL = rkbin.TPL_RK3588; + env = { + BL31 = "${armTrustedFirmwareRK3588}/bl31.elf"; + ROCKCHIP_TPL = rkbin.TPL_RK3588; + }; filesToInstall = [ "u-boot.itb" "idbloader.img" @@ -780,7 +816,7 @@ in ubootRock64 = buildUBoot { defconfig = "rock64-rk3328_defconfig"; extraMeta.platforms = [ "aarch64-linux" ]; - BL31 = "${armTrustedFirmwareRK3328}/bl31.elf"; + env.BL31 = "${armTrustedFirmwareRK3328}/bl31.elf"; filesToInstall = [ "u-boot.itb" "idbloader.img" @@ -805,7 +841,7 @@ in ''; defconfig = "rock64-rk3328_defconfig"; extraMeta.platforms = [ "aarch64-linux" ]; - BL31 = "${armTrustedFirmwareRK3328}/bl31.elf"; + env.BL31 = "${armTrustedFirmwareRK3328}/bl31.elf"; filesToInstall = [ "u-boot.itb" "idbloader.img" @@ -816,7 +852,7 @@ in ubootRockPiE = buildUBoot { defconfig = "rock-pi-e-rk3328_defconfig"; extraMeta.platforms = [ "aarch64-linux" ]; - BL31 = "${armTrustedFirmwareRK3328}/bl31.elf"; + env.BL31 = "${armTrustedFirmwareRK3328}/bl31.elf"; filesToInstall = [ "u-boot.itb" "idbloader.img" @@ -827,7 +863,7 @@ in ubootRockPro64 = buildUBoot { defconfig = "rockpro64-rk3399_defconfig"; extraMeta.platforms = [ "aarch64-linux" ]; - BL31 = "${armTrustedFirmwareRK3399}/bl31.elf"; + env.BL31 = "${armTrustedFirmwareRK3399}/bl31.elf"; filesToInstall = [ "u-boot.itb" "idbloader.img" @@ -842,7 +878,7 @@ in "u-boot.itb" "idbloader.img" ]; - BL31 = "${armTrustedFirmwareRK3399}/bl31.elf"; + env.BL31 = "${armTrustedFirmwareRK3399}/bl31.elf"; }; ubootSheevaplug = buildUBoot { @@ -857,16 +893,20 @@ in ubootSopine = buildUBoot { defconfig = "sopine_baseboard_defconfig"; extraMeta.platforms = [ "aarch64-linux" ]; - BL31 = "${armTrustedFirmwareAllwinner}/bl31.bin"; - SCP = "/dev/null"; + env = { + BL31 = "${armTrustedFirmwareAllwinner}/bl31.bin"; + SCP = "/dev/null"; + }; filesToInstall = [ "u-boot-sunxi-with-spl.bin" ]; }; ubootTuringRK1 = buildUBoot { defconfig = "turing-rk1-rk3588_defconfig"; extraMeta.platforms = [ "aarch64-linux" ]; - BL31 = "${armTrustedFirmwareRK3588}/bl31.elf"; - ROCKCHIP_TPL = rkbin.TPL_RK3588; + env = { + BL31 = "${armTrustedFirmwareRK3588}/bl31.elf"; + ROCKCHIP_TPL = rkbin.TPL_RK3588; + }; filesToInstall = [ "u-boot.itb" "idbloader.img" @@ -896,7 +936,7 @@ in ubootVisionFive2 = buildUBoot { defconfig = "starfive_visionfive2_defconfig"; extraMeta.platforms = [ "riscv64-linux" ]; - OPENSBI = "${opensbi}/share/opensbi/lp64/generic/firmware/fw_dynamic.bin"; + env.OPENSBI = "${opensbi}/share/opensbi/lp64/generic/firmware/fw_dynamic.bin"; filesToInstall = [ "spl/u-boot-spl.bin.normal.out" "u-boot.itb" @@ -915,7 +955,7 @@ in ubootRockPi4 = buildUBoot { defconfig = "rock-pi-4-rk3399_defconfig"; extraMeta.platforms = [ "aarch64-linux" ]; - BL31 = "${armTrustedFirmwareRK3399}/bl31.elf"; + env.BL31 = "${armTrustedFirmwareRK3399}/bl31.elf"; filesToInstall = [ "u-boot.itb" "idbloader.img" From 1b5787e281c6fa670cb0d3f4c10551a6b94fea4a Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Mon, 9 Feb 2026 02:46:39 +0100 Subject: [PATCH 018/239] timekpr: avoid using an env variable This avoids polluting the environment and makes tracking cleanup for __structuredAttrs easier. --- pkgs/by-name/ti/timekpr/package.nix | 75 +++++++++++++++-------------- 1 file changed, 39 insertions(+), 36 deletions(-) diff --git a/pkgs/by-name/ti/timekpr/package.nix b/pkgs/by-name/ti/timekpr/package.nix index e56b2aefc406..5248b0546b4f 100644 --- a/pkgs/by-name/ti/timekpr/package.nix +++ b/pkgs/by-name/ti/timekpr/package.nix @@ -9,6 +9,7 @@ sound-theme-freedesktop, stdenv, wrapGAppsHook4, + writeText, }: python3Packages.buildPythonApplication rec { pname = "timekpr"; @@ -42,49 +43,51 @@ python3Packages.buildPythonApplication rec { psutil ]; - # Generate setup.py because the upstream repository does not include it - SETUP_PY = '' - from setuptools import setup, find_namespace_packages + postPatch = + let + # Generate setup.py because the upstream repository does not include it + setup-py = writeText "setup.py" '' + from setuptools import setup, find_namespace_packages - package_dir={"timekpr": "."} - setup( - name="timekpr-next", - version="${version}", - package_dir=package_dir, - packages=[ - f"{package_prefix}.{package_suffix}" - for package_prefix, where in package_dir.items() - for package_suffix in find_namespace_packages(where=where) - ], - install_requires=[ - ${lib.concatMapStringsSep ", " (dependency: "'${dependency.pname}'") dependencies} - ], - ) - ''; + package_dir={"timekpr": "."} + setup( + name="timekpr-next", + version="${version}", + package_dir=package_dir, + packages=[ + f"{package_prefix}.{package_suffix}" + for package_prefix, where in package_dir.items() + for package_suffix in find_namespace_packages(where=where) + ], + install_requires=[ + ${lib.concatMapStringsSep ", " (dependency: "'${dependency.pname}'") dependencies} + ], + ) + ''; + in + '' + shopt -s globstar extglob nullglob - postPatch = '' - shopt -s globstar extglob nullglob + substituteInPlace bin/* **/*.py resource/server/systemd/timekpr.service \ + --replace-quiet /usr/lib/python3/dist-packages "$out"/${lib.escapeShellArg python3Packages.python.sitePackages} - substituteInPlace bin/* **/*.py resource/server/systemd/timekpr.service \ - --replace-quiet /usr/lib/python3/dist-packages "$out"/${lib.escapeShellArg python3Packages.python.sitePackages} + substituteInPlace **/*.desktop **/*.policy **/*.service \ + --replace-fail /usr/bin/timekpr "$out"/bin/timekpr - substituteInPlace **/*.desktop **/*.policy **/*.service \ - --replace-fail /usr/bin/timekpr "$out"/bin/timekpr + substituteInPlace common/constants/constants.py \ + --replace-fail /usr/share/sounds/freedesktop ${lib.escapeShellArg sound-theme-freedesktop}/share/sounds/freedesktop \ + --replace-fail /usr/share/timekpr "$out"/share/timekpr \ + --replace-fail /usr/share/locale "$out"/share/locale - substituteInPlace common/constants/constants.py \ - --replace-fail /usr/share/sounds/freedesktop ${lib.escapeShellArg sound-theme-freedesktop}/share/sounds/freedesktop \ - --replace-fail /usr/share/timekpr "$out"/share/timekpr \ - --replace-fail /usr/share/locale "$out"/share/locale + substituteInPlace resource/server/timekpr.conf \ + --replace-fail /usr/share/timekpr "$out"/share/timekpr \ - substituteInPlace resource/server/timekpr.conf \ - --replace-fail /usr/share/timekpr "$out"/share/timekpr \ + # The original file name `timekpra` is renamed to `..timekpra-wrapped-wrapped` because `makeCWrapper` was used multiple times. + substituteInPlace client/admin/adminprocessor.py \ + --replace-fail '"/timekpra" in ' '"/..timekpra-wrapped-wrapped" in ' - # The original file name `timekpra` is renamed to `..timekpra-wrapped-wrapped` because `makeCWrapper` was used multiple times. - substituteInPlace client/admin/adminprocessor.py \ - --replace-fail '"/timekpra" in ' '"/..timekpra-wrapped-wrapped" in ' - - printf %s "$SETUP_PY" > setup.py - ''; + ln -s ${setup-py} setup.py + ''; # We need to manually inject $PYTHONPATH here, because `buildPythonApplication` does not recognize timekpr's executables as Python scripts, and therefore it does not automatically inject $PYTHONPATH into them. postFixup = '' From 60b47b68bce6d45193688b0545e3b52e090c713a Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Mon, 9 Feb 2026 02:54:43 +0100 Subject: [PATCH 019/239] spdx-license-list-data: avoid using an env variable This avoids polluting the environment and makes tracking cleanup for __structuredAttrs easier. --- .../sp/spdx-license-list-data/package.nix | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/pkgs/by-name/sp/spdx-license-list-data/package.nix b/pkgs/by-name/sp/spdx-license-list-data/package.nix index d6dba6e518dc..de5505415de6 100644 --- a/pkgs/by-name/sp/spdx-license-list-data/package.nix +++ b/pkgs/by-name/sp/spdx-license-list-data/package.nix @@ -3,18 +3,7 @@ lib, fetchFromGitHub, }: - -stdenvNoCC.mkDerivation rec { - pname = "spdx-license-list-data"; - version = "3.27.0"; - - src = fetchFromGitHub { - owner = "spdx"; - repo = "license-list-data"; - rev = "v${version}"; - hash = "sha256-TRrsxk+gtxI9KqJvFzD0Cfy1h5cZAJ2kT9KUARjlXcY="; - }; - +let # List of file formats to package. _types = [ "html" @@ -27,6 +16,17 @@ stdenvNoCC.mkDerivation rec { "template" "text" ]; +in +stdenvNoCC.mkDerivation (finalAttrs: { + pname = "spdx-license-list-data"; + version = "3.27.0"; + + src = fetchFromGitHub { + owner = "spdx"; + repo = "license-list-data"; + tag = "v${finalAttrs.version}"; + hash = "sha256-TRrsxk+gtxI9KqJvFzD0Cfy1h5cZAJ2kT9KUARjlXcY="; + }; outputs = [ "out" ] ++ _types; @@ -38,7 +38,7 @@ stdenvNoCC.mkDerivation rec { runHook preInstall mkdir -pv $out - for t in $_types + for t in ${lib.concatStringsSep " " _types} do _outpath=''${!t} mkdir -pv $_outpath @@ -60,4 +60,4 @@ stdenvNoCC.mkDerivation rec { ]; platforms = lib.platforms.all; }; -} +}) From 01ecadd9c59f5f97f353772829e23519a123c53b Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Mon, 9 Feb 2026 22:33:22 +0100 Subject: [PATCH 020/239] samba: move env variable(s) into env for structuredAttrs --- pkgs/servers/samba/4.x.nix | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/pkgs/servers/samba/4.x.nix b/pkgs/servers/samba/4.x.nix index 1560e32c89b5..8828a1ec1bfb 100644 --- a/pkgs/servers/samba/4.x.nix +++ b/pkgs/servers/samba/4.x.nix @@ -212,9 +212,17 @@ stdenv.mkDerivation (finalAttrs: { chmod +w answers ''; - env.NIX_LDFLAGS = lib.optionalString ( - stdenv.cc.bintools.isLLVM && lib.versionAtLeast stdenv.cc.bintools.version "17" - ) "--undefined-version"; + env = { + # python-config from build Python gives incorrect values when cross-compiling. + # If python-config is not found, the build falls back to using the sysconfig + # module, which works correctly in all cases. + PYTHON_CONFIG = "/invalid"; + } + // + lib.optionalAttrs (stdenv.cc.bintools.isLLVM && lib.versionAtLeast stdenv.cc.bintools.version "17") + { + NIX_LDFLAGS = "--undefined-version"; + }; wafConfigureFlags = [ "--with-static-modules=NONE" @@ -261,11 +269,6 @@ stdenv.mkDerivation (finalAttrs: { "--jobs 1" ]; - # python-config from build Python gives incorrect values when cross-compiling. - # If python-config is not found, the build falls back to using the sysconfig - # module, which works correctly in all cases. - PYTHON_CONFIG = "/invalid"; - pythonPath = [ python3Packages.dnspython python3Packages.markdown From 18f477d443dd2693b7367f414dd3131cecd791ef Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 7 Feb 2026 14:29:32 +0100 Subject: [PATCH 021/239] python3Packages.maestral: fix for structuredAttrs, use finalAttrs --- .../python-modules/maestral/default.nix | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/pkgs/development/python-modules/maestral/default.nix b/pkgs/development/python-modules/maestral/default.nix index 116a94520802..bb7e36e65961 100644 --- a/pkgs/development/python-modules/maestral/default.nix +++ b/pkgs/development/python-modules/maestral/default.nix @@ -28,7 +28,7 @@ nixosTests, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "maestral"; version = "1.9.6"; pyproject = true; @@ -36,7 +36,7 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "SamSchott"; repo = "maestral"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-mYFiQL4FumJWP2y1u5tIo1CZL027J8/EIYqJQde7G/c="; }; @@ -65,8 +65,14 @@ buildPythonPackage rec { makeWrapperArgs = [ # Add the installed directories to the python path so the daemon can find them - "--prefix PYTHONPATH : ${makePythonPath dependencies}" - "--prefix PYTHONPATH : $out/${python.sitePackages}" + "--prefix" + "PYTHONPATH" + ":" + (makePythonPath finalAttrs.finalPackage.dependencies) + "--prefix" + "PYTHONPATH" + ":" + "$out/${python.sitePackages}" ]; nativeCheckInputs = [ pytestCheckHook ]; @@ -117,7 +123,7 @@ buildPythonPackage rec { description = "Open-source Dropbox client for macOS and Linux"; mainProgram = "maestral"; homepage = "https://maestral.app"; - changelog = "https://github.com/samschott/maestral/releases/tag/v${version}"; + changelog = "https://github.com/samschott/maestral/releases/tag/v${finalAttrs.version}"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ natsukium @@ -125,4 +131,4 @@ buildPythonPackage rec { sfrijters ]; }; -} +}) From 0ebd9194d0a678d8407df013247d44d39efa0d03 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 10:37:58 +0100 Subject: [PATCH 022/239] maestral-gui: use structuredAttrs, finalAttrs --- pkgs/by-name/ma/maestral-gui/package.nix | 28 ++++++++++++++++-------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/pkgs/by-name/ma/maestral-gui/package.nix b/pkgs/by-name/ma/maestral-gui/package.nix index ba047ae40420..0d2ecbeee604 100644 --- a/pkgs/by-name/ma/maestral-gui/package.nix +++ b/pkgs/by-name/ma/maestral-gui/package.nix @@ -6,7 +6,7 @@ nixosTests, }: -python3.pkgs.buildPythonApplication rec { +python3.pkgs.buildPythonApplication (finalAttrs: { pname = "maestral-qt"; version = "1.9.5"; pyproject = true; @@ -14,7 +14,7 @@ python3.pkgs.buildPythonApplication rec { src = fetchFromGitHub { owner = "SamSchott"; repo = "maestral-qt"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-FCn9ELbodk+zCJNmlOVoxE/KSSqbxy5HTB1vpiu7AJA="; }; @@ -39,14 +39,22 @@ python3.pkgs.buildPythonApplication rec { dontWrapQtApps = true; makeWrapperArgs = with python3.pkgs; [ - # Firstly, add all necessary QT variables - "\${qtWrapperArgs[@]}" - # Add the installed directories to the python path so the daemon can find them - "--prefix PYTHONPATH : ${makePythonPath (requiredPythonModules maestral.propagatedBuildInputs)}" - "--prefix PYTHONPATH : ${makePythonPath [ maestral ]}" + "--prefix" + "PYTHONPATH" + ":" + (makePythonPath (requiredPythonModules maestral.propagatedBuildInputs)) + "--prefix" + "PYTHONPATH" + ":" + (makePythonPath [ maestral ]) ]; + preFixup = '' + # Add all necessary QT variables + makeWrapperArgs+=("''${qtWrapperArgs[@]}") + ''; + postInstall = '' install -Dm444 -t $out/share/icons/hicolor/512x512/apps src/maestral_qt/resources/maestral.png ''; @@ -58,10 +66,12 @@ python3.pkgs.buildPythonApplication rec { passthru.tests.maestral = nixosTests.maestral; + __structuredAttrs = true; + meta = { description = "GUI front-end for maestral (an open-source Dropbox client) for Linux"; homepage = "https://maestral.app"; - changelog = "https://github.com/samschott/maestral/releases/tag/v${version}"; + changelog = "https://github.com/samschott/maestral/releases/tag/v${finalAttrs.version}"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ peterhoeg @@ -70,4 +80,4 @@ python3.pkgs.buildPythonApplication rec { platforms = lib.platforms.linux; mainProgram = "maestral_qt"; }; -} +}) From 1d49c3218e82e32b959edad6df872d4531c7ec93 Mon Sep 17 00:00:00 2001 From: Guy Chronister Date: Mon, 12 Jan 2026 18:52:25 -0600 Subject: [PATCH 023/239] jellyfin-desktop: migrate to by-name and switch to kdePackages Qt stack MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Move package to pkgs/by-name/je/jellyfin-desktop - Replace direct Qt inputs with kdePackages.* equivalents (qtbase, qtdeclarative, qtwebchannel, qtwebengine, wrapQtAppsHook, mpvqt) - Convert derivation to stdenv.mkDerivation (finalAttrs: { … }) style - Use tag = "v${finalAttrs.version}" instead of rev - Remove top-level jellyfin-desktop attribute; by-name exposes it automatically - Preserve existing patch and build logic --- .../non-fatal-unique-app.patch | 0 .../je/jellyfin-desktop/package.nix} | 25 ++++++++----------- pkgs/top-level/all-packages.nix | 2 -- 3 files changed, 10 insertions(+), 17 deletions(-) rename pkgs/{applications/video => by-name/je}/jellyfin-desktop/non-fatal-unique-app.patch (100%) rename pkgs/{applications/video/jellyfin-desktop/default.nix => by-name/je/jellyfin-desktop/package.nix} (86%) diff --git a/pkgs/applications/video/jellyfin-desktop/non-fatal-unique-app.patch b/pkgs/by-name/je/jellyfin-desktop/non-fatal-unique-app.patch similarity index 100% rename from pkgs/applications/video/jellyfin-desktop/non-fatal-unique-app.patch rename to pkgs/by-name/je/jellyfin-desktop/non-fatal-unique-app.patch diff --git a/pkgs/applications/video/jellyfin-desktop/default.nix b/pkgs/by-name/je/jellyfin-desktop/package.nix similarity index 86% rename from pkgs/applications/video/jellyfin-desktop/default.nix rename to pkgs/by-name/je/jellyfin-desktop/package.nix index 12ac1682972f..0c62dc24ed2d 100644 --- a/pkgs/applications/video/jellyfin-desktop/default.nix +++ b/pkgs/by-name/je/jellyfin-desktop/package.nix @@ -5,27 +5,22 @@ cmake, ninja, python3, - wrapQtAppsHook, - qtbase, - qtdeclarative, - qtwebchannel, - qtwebengine, + kdePackages, mpv-unwrapped, - mpvqt, libcec, SDL2, libxrandr, cacert, nix-update-script, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "jellyfin-desktop"; version = "2.0.0"; src = fetchFromGitHub { owner = "jellyfin"; repo = "jellyfin-desktop"; - rev = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-ITlYOrMS6COx9kDRSBi4wM6mzL/Q2G5X9GbABwDIOe4="; fetchSubmodules = true; }; @@ -36,15 +31,15 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake ninja - wrapQtAppsHook + kdePackages.wrapQtAppsHook ] ++ lib.optional stdenv.hostPlatform.isDarwin python3; buildInputs = [ - qtbase - qtdeclarative - qtwebchannel - qtwebengine + kdePackages.qtbase + kdePackages.qtdeclarative + kdePackages.qtwebchannel + kdePackages.qtwebengine mpv-unwrapped # input sources @@ -55,7 +50,7 @@ stdenv.mkDerivation rec { libxrandr cacert ] - ++ lib.optional (!stdenv.hostPlatform.isDarwin) mpvqt; + ++ lib.optional (!stdenv.hostPlatform.isDarwin) kdePackages.mpvqt; cmakeFlags = [ "-DCHECK_FOR_UPDATES=OFF" @@ -97,4 +92,4 @@ stdenv.mkDerivation rec { ]; mainProgram = "jellyfin-desktop"; }; -} +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 4a786b2e13f0..d957c5d64fbe 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1804,8 +1804,6 @@ with pkgs; intensity-normalization = with python3Packages; toPythonApplication intensity-normalization; - jellyfin-desktop = kdePackages.callPackage ../applications/video/jellyfin-desktop { }; - jellyfin-mpv-shim = python3Packages.callPackage ../applications/video/jellyfin-mpv-shim { }; klaus = with python3Packages; toPythonApplication klaus; From 67c7921fcf361ba10bdbf0e275522455858c135e Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 12:19:37 +0100 Subject: [PATCH 024/239] dwarfs: move env variable(s) into env for structuredAttrs --- pkgs/by-name/dw/dwarfs/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/dw/dwarfs/package.nix b/pkgs/by-name/dw/dwarfs/package.nix index 8669f2eb3dde..c0d7424775f1 100644 --- a/pkgs/by-name/dw/dwarfs/package.nix +++ b/pkgs/by-name/dw/dwarfs/package.nix @@ -100,7 +100,7 @@ stdenv.mkDerivation (finalAttrs: { ]; # these fail inside of the sandbox due to missing access # to the FUSE device - GTEST_FILTER = + env.GTEST_FILTER = let disabledTests = [ "dwarfs/tools_test.end_to_end/*" From c7b9734f4ae8c2fa8e63ee504548757991ca169f Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 12:19:39 +0100 Subject: [PATCH 025/239] edk2: move env variable(s) into env for structuredAttrs --- pkgs/by-name/ed/edk2/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/ed/edk2/package.nix b/pkgs/by-name/ed/edk2/package.nix index 19c0aabd0642..e4ded1dfd220 100644 --- a/pkgs/by-name/ed/edk2/package.nix +++ b/pkgs/by-name/ed/edk2/package.nix @@ -169,7 +169,7 @@ stdenv.mkDerivation (finalAttrs: { ++ attrs.nativeBuildInputs or [ ]; strictDeps = true; - ${"GCC5_${targetArch}_PREFIX"} = stdenv.cc.targetPrefix; + env.${"GCC5_${targetArch}_PREFIX"} = stdenv.cc.targetPrefix; prePatch = '' rm -rf BaseTools From 74badc54edf7ef382a75ab26a953ad832ecac135 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 12:19:40 +0100 Subject: [PATCH 026/239] fig2dev: move env variable(s) into env for structuredAttrs --- pkgs/by-name/fi/fig2dev/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/fi/fig2dev/package.nix b/pkgs/by-name/fi/fig2dev/package.nix index 73444a95bd14..a42db77a1cda 100644 --- a/pkgs/by-name/fi/fig2dev/package.nix +++ b/pkgs/by-name/fi/fig2dev/package.nix @@ -38,7 +38,7 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ makeWrapper ]; buildInputs = [ libpng ]; - GSEXE = "${ghostscript}/bin/gs"; + env.GSEXE = "${ghostscript}/bin/gs"; configureFlags = [ "--enable-transfig" ]; From c4fc41b0be3cffeacdb498d84a3acbffa79bb005 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 12:19:40 +0100 Subject: [PATCH 027/239] firefoxpwa: move env variable(s) into env for structuredAttrs --- pkgs/by-name/fi/firefoxpwa/package.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/fi/firefoxpwa/package.nix b/pkgs/by-name/fi/firefoxpwa/package.nix index 57f7b0a7fc5c..3f6c43bc42e4 100644 --- a/pkgs/by-name/fi/firefoxpwa/package.nix +++ b/pkgs/by-name/fi/firefoxpwa/package.nix @@ -56,8 +56,10 @@ rustPlatform.buildRustPackage rec { ]; buildInputs = [ openssl ]; - FFPWA_EXECUTABLES = ""; # .desktop entries generated without any store path references - FFPWA_SYSDATA = "${placeholder "out"}/share/firefoxpwa"; + env = { + FFPWA_EXECUTABLES = ""; # .desktop entries generated without any store path references + FFPWA_SYSDATA = "${placeholder "out"}/share/firefoxpwa"; + }; completions = "target/${stdenv.targetPlatform.config}/release/completions"; gtk_modules = map (x: x + x.gtkModule) [ libcanberra-gtk3 ]; From 65d93a70cb47d2d4e22f683488b4d536f00d12a5 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 12:19:40 +0100 Subject: [PATCH 028/239] ghciwatch: move env variable(s) into env for structuredAttrs --- pkgs/by-name/gh/ghciwatch/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/gh/ghciwatch/package.nix b/pkgs/by-name/gh/ghciwatch/package.nix index 55c66944929a..9fe7f3455ac3 100644 --- a/pkgs/by-name/gh/ghciwatch/package.nix +++ b/pkgs/by-name/gh/ghciwatch/package.nix @@ -19,7 +19,7 @@ rustPlatform.buildRustPackage (finalAttrs: { cargoHash = "sha256-kH5YTadpaUXDma+7SfBJxrOIsd9Gm0EU3MfhFmQ3U80="; # integration tests are not run but the macros need this variable to be set - GHC_VERSIONS = ""; + env.GHC_VERSIONS = ""; checkFlags = "--test \"unit\""; meta = { From 62c398ef5b6af518f3f616505d9a8909a0f414e5 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 12:19:40 +0100 Subject: [PATCH 029/239] gitlab: move env variable(s) into env for structuredAttrs --- pkgs/by-name/gi/gitlab/package.nix | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/pkgs/by-name/gi/gitlab/package.nix b/pkgs/by-name/gi/gitlab/package.nix index a244ea5474d0..2e0616ee636b 100644 --- a/pkgs/by-name/gi/gitlab/package.nix +++ b/pkgs/by-name/gi/gitlab/package.nix @@ -228,14 +228,16 @@ let chmod 777 ee/frontend_islands/yarn.lock ''; - # One of the patches uses this variable - if it's unset, execution - # of rake tasks fails. - GITLAB_LOG_PATH = "log"; - FOSS_ONLY = !gitlabEnterprise; - SKIP_FRONTEND_ISLANDS_BUILD = lib.optionalString (!gitlabEnterprise) "true"; + env = { + # One of the patches uses this variable - if it's unset, execution + # of rake tasks fails. + GITLAB_LOG_PATH = "log"; + FOSS_ONLY = !gitlabEnterprise; + SKIP_FRONTEND_ISLANDS_BUILD = lib.optionalString (!gitlabEnterprise) "true"; - SKIP_YARN_INSTALL = 1; - NODE_OPTIONS = "--max-old-space-size=8192"; + SKIP_YARN_INSTALL = 1; + NODE_OPTIONS = "--max-old-space-size=8192"; + }; postConfigure = '' # Some rake tasks try to run yarn automatically, which won't work From 503199c6090277a001c4efae1db7c9a4567d55aa Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 12:19:41 +0100 Subject: [PATCH 030/239] global-platform-pro: move env variable(s) into env for structuredAttrs --- pkgs/by-name/gl/global-platform-pro/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/gl/global-platform-pro/package.nix b/pkgs/by-name/gl/global-platform-pro/package.nix index 1bc0cc605163..a89e1057c104 100644 --- a/pkgs/by-name/gl/global-platform-pro/package.nix +++ b/pkgs/by-name/gl/global-platform-pro/package.nix @@ -26,7 +26,7 @@ in maven.buildMavenPackage rec { pname = "global-platform-pro"; version = "25.10.20"; - GPPRO_VERSION = "v25.10.20-0-g72f85b9"; # git describe --tags --always --long --dirty + env.GPPRO_VERSION = "v25.10.20-0-g72f85b9"; # git describe --tags --always --long --dirty src = fetchFromGitHub { owner = "martinpaljak"; From 255e4819a0c097577d27f1de66d918c2c83eb00c Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 12:19:41 +0100 Subject: [PATCH 031/239] golem: move env variable(s) into env for structuredAttrs --- pkgs/by-name/go/golem/package.nix | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/go/golem/package.nix b/pkgs/by-name/go/golem/package.nix index 527d1d69ea48..0ba5fff942db 100644 --- a/pkgs/by-name/go/golem/package.nix +++ b/pkgs/by-name/go/golem/package.nix @@ -43,12 +43,14 @@ rustPlatform.buildRustPackage rec { (lib.getDev openssl) ]; - # Required for golem-wasm-rpc's build.rs to find the required protobuf files - # https://github.com/golemcloud/wasm-rpc/blob/v1.0.6/wasm-rpc/build.rs#L7 - GOLEM_WASM_AST_ROOT = "../golem-wasm-ast-1.1.0"; - # Required for golem-examples's build.rs to find the required Wasm Interface Type (WIT) files - # https://github.com/golemcloud/golem-examples/blob/v1.0.6/build.rs#L9 - GOLEM_WIT_ROOT = "../golem-wit-1.1.0"; + env = { + # Required for golem-wasm-rpc's build.rs to find the required protobuf files + # https://github.com/golemcloud/wasm-rpc/blob/v1.0.6/wasm-rpc/build.rs#L7 + GOLEM_WASM_AST_ROOT = "../golem-wasm-ast-1.1.0"; + # Required for golem-examples's build.rs to find the required Wasm Interface Type (WIT) files + # https://github.com/golemcloud/golem-examples/blob/v1.0.6/build.rs#L9 + GOLEM_WIT_ROOT = "../golem-wit-1.1.0"; + }; cargoHash = "sha256-zf/L7aNsfQXCdGpzvBZxgoatAGB92bvIuj59jANrXIc="; From 4f0ca754fd5017780830633b5b86cea701af1542 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 12:19:41 +0100 Subject: [PATCH 032/239] infnoise: move env variable(s) into env for structuredAttrs --- pkgs/by-name/in/infnoise/package.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/in/infnoise/package.nix b/pkgs/by-name/in/infnoise/package.nix index f5c6f3855403..762f9a629e81 100644 --- a/pkgs/by-name/in/infnoise/package.nix +++ b/pkgs/by-name/in/infnoise/package.nix @@ -27,9 +27,11 @@ stdenv.mkDerivation (finalAttrs: { }) ]; - GIT_COMMIT = finalAttrs.src.rev; - GIT_VERSION = finalAttrs.version; - GIT_DATE = "2023-02-14"; + env = { + GIT_COMMIT = finalAttrs.src.rev; + GIT_VERSION = finalAttrs.version; + GIT_DATE = "2023-02-14"; + }; buildInputs = [ libftdi ]; From 0d0e69961d14ea849273b321651989f6319a2b52 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 12:19:41 +0100 Subject: [PATCH 033/239] kanban: move env variable(s) into env for structuredAttrs --- pkgs/by-name/ka/kanban/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/ka/kanban/package.nix b/pkgs/by-name/ka/kanban/package.nix index f63dfdfe46c5..f0b5c5169f94 100644 --- a/pkgs/by-name/ka/kanban/package.nix +++ b/pkgs/by-name/ka/kanban/package.nix @@ -16,7 +16,7 @@ rustPlatform.buildRustPackage (finalAttrs: { hash = "sha256-w1NoWgaUBny//3t1S5z/juPOYFomwJKtTq/M4qKoNv0="; }; - GIT_COMMIT_HASH = finalAttrs.src.rev; + env.GIT_COMMIT_HASH = finalAttrs.src.rev; cargoHash = "sha256-N+c2jnJ7a+Nh2UibkaOByh4tKDX52VovYIpeHTpawXo="; From e84ac091d289575ed8cf65d133ac23be58ab2da4 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 12:19:42 +0100 Subject: [PATCH 034/239] kinect-audio-setup: move env variable(s) into env for structuredAttrs --- pkgs/by-name/ki/kinect-audio-setup/package.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/ki/kinect-audio-setup/package.nix b/pkgs/by-name/ki/kinect-audio-setup/package.nix index 76cd1370d66b..16c26dfd17a8 100644 --- a/pkgs/by-name/ki/kinect-audio-setup/package.nix +++ b/pkgs/by-name/ki/kinect-audio-setup/package.nix @@ -17,7 +17,7 @@ let # redirects to the following url: licenseUrl = "https://www.microsoft.com/en-us/legal/terms-of-use"; in -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "kinect-audio-setup"; # On update: Make sure that the `firmwareURL` is still in sync with upstream. @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { version = "0.5"; # This is an MSI or CAB file - FIRMWARE = requireFile { + env.FIRMWARE = requireFile { name = "UACFirmware"; sha256 = "08a2vpgd061cmc6h3h8i6qj3sjvjr1fwcnwccwywqypz3icn8xw1"; message = '' @@ -40,7 +40,7 @@ stdenv.mkDerivation rec { src = fetchgit { url = "git://git.ao2.it/kinect-audio-setup.git"; - rev = "v${version}"; + rev = "v${finalAttrs.version}"; hash = "sha256-bFwmWh822KvFwP/0Gu097nF5K2uCwCLMB1RtP7k+Zt0="; }; @@ -77,7 +77,7 @@ stdenv.mkDerivation rec { install -Dm755 kinect_upload_fw/kinect_upload_fw $out/libexec/ # 7z extract "assume yes on all queries" "only extract/keep files/directories matching UACFIRMWARE.* recursively" - 7z e -y -r "${FIRMWARE}" "UACFirmware.*" >/dev/null + 7z e -y -r "${finalAttrs.env.FIRMWARE}" "UACFirmware.*" >/dev/null # The filename is bound to change with the Firmware SDK mv UACFirmware.* $out/lib/firmware/UACFirmware @@ -93,4 +93,4 @@ stdenv.mkDerivation rec { platforms = lib.platforms.linux; license = lib.licenses.unfree; }; -} +}) From 1ec259aedff8308b13798b0f3d798532e2a43cc2 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 12:19:42 +0100 Subject: [PATCH 035/239] kitty: move env variable(s) into env for structuredAttrs --- pkgs/by-name/ki/kitty/package.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ki/kitty/package.nix b/pkgs/by-name/ki/kitty/package.nix index 9cd9d0ed1757..06df3c4cd49f 100644 --- a/pkgs/by-name/ki/kitty/package.nix +++ b/pkgs/by-name/ki/kitty/package.nix @@ -150,8 +150,10 @@ buildPythonApplication rec { "fortify3" ]; - env.CGO_ENABLED = 0; - GOFLAGS = "-trimpath"; + env = { + CGO_ENABLED = 0; + GOFLAGS = "-trimpath"; + }; configurePhase = '' export GOCACHE=$TMPDIR/go-cache From 2944f0d37c66eaef46dcbece27b2bf214b6af26e Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 12:19:42 +0100 Subject: [PATCH 036/239] mmtc: move env variable(s) into env for structuredAttrs --- pkgs/by-name/mm/mmtc/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/mm/mmtc/package.nix b/pkgs/by-name/mm/mmtc/package.nix index 623b9e3ed060..15057ca33a36 100644 --- a/pkgs/by-name/mm/mmtc/package.nix +++ b/pkgs/by-name/mm/mmtc/package.nix @@ -25,7 +25,7 @@ rustPlatform.buildRustPackage (finalAttrs: { installShellCompletion artifacts/mmtc.{bash,fish} --zsh artifacts/_mmtc ''; - GEN_ARTIFACTS = "artifacts"; + env.GEN_ARTIFACTS = "artifacts"; meta = { description = "Minimal mpd terminal client that aims to be simple yet highly configurable"; From f7cd173302e514e60b29b9890e6c3a9ebe335413 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 12:19:43 +0100 Subject: [PATCH 037/239] movit: move env variable(s) into env for structuredAttrs --- pkgs/by-name/mo/movit/package.nix | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pkgs/by-name/mo/movit/package.nix b/pkgs/by-name/mo/movit/package.nix index 12e8be4d619f..a36ebab3f3db 100644 --- a/pkgs/by-name/mo/movit/package.nix +++ b/pkgs/by-name/mo/movit/package.nix @@ -26,8 +26,6 @@ stdenv.mkDerivation rec { "dev" ]; - GTEST_DIR = "${gtest.src}/googletest"; - nativeBuildInputs = [ pkg-config ]; @@ -45,13 +43,15 @@ stdenv.mkDerivation rec { libepoxy ]; - env = - lib.optionalAttrs stdenv.cc.isGNU { - NIX_CFLAGS_COMPILE = "-std=c++17"; # needed for latest gtest - } - // lib.optionalAttrs stdenv.hostPlatform.isDarwin { - NIX_LDFLAGS = "-framework OpenGL"; - }; + env = { + GTEST_DIR = "${gtest.src}/googletest"; + } + // lib.optionalAttrs stdenv.cc.isGNU { + NIX_CFLAGS_COMPILE = "-std=c++17"; # needed for latest gtest + } + // lib.optionalAttrs stdenv.hostPlatform.isDarwin { + NIX_LDFLAGS = "-framework OpenGL"; + }; enableParallelBuilding = true; From 6cf147eac9f0267e62b41de0a60a2bf9ca377f56 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 12:19:43 +0100 Subject: [PATCH 038/239] netcdffortran: move env variable(s) into env for structuredAttrs --- pkgs/by-name/ne/netcdffortran/package.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ne/netcdffortran/package.nix b/pkgs/by-name/ne/netcdffortran/package.nix index 50c745633639..0891559c5b78 100644 --- a/pkgs/by-name/ne/netcdffortran/package.nix +++ b/pkgs/by-name/ne/netcdffortran/package.nix @@ -27,8 +27,10 @@ stdenv.mkDerivation (finalAttrs: { doCheck = true; - FFLAGS = [ "-std=legacy" ]; - FCFLAGS = [ "-std=legacy" ]; + env = { + FFLAGS = toString [ "-std=legacy" ]; + FCFLAGS = toString [ "-std=legacy" ]; + }; meta = { description = "Fortran API to manipulate netcdf files"; From 5f89e0dfde1e11cb065cc52e3b1815223c9ba364 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 12:19:43 +0100 Subject: [PATCH 039/239] newsboat: move env variable(s) into env for structuredAttrs --- pkgs/by-name/ne/newsboat/package.nix | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/ne/newsboat/package.nix b/pkgs/by-name/ne/newsboat/package.nix index a2e87e041013..bd821281dcfe 100644 --- a/pkgs/by-name/ne/newsboat/package.nix +++ b/pkgs/by-name/ne/newsboat/package.nix @@ -66,12 +66,14 @@ stdenv.mkDerivation (finalAttrs: { gettext ]; - # https://github.com/NixOS/nixpkgs/pull/98471#issuecomment-703100014 . We set - # these for all platforms, since upstream's gettext crate behavior might - # change in the future. - GETTEXT_LIB_DIR = "${lib.getLib gettext}/lib"; - GETTEXT_INCLUDE_DIR = "${lib.getDev gettext}/include"; - GETTEXT_BIN_DIR = "${lib.getBin gettext}/bin"; + env = { + # https://github.com/NixOS/nixpkgs/pull/98471#issuecomment-703100014 . We set + # these for all platforms, since upstream's gettext crate behavior might + # change in the future. + GETTEXT_LIB_DIR = "${lib.getLib gettext}/lib"; + GETTEXT_INCLUDE_DIR = "${lib.getDev gettext}/include"; + GETTEXT_BIN_DIR = "${lib.getBin gettext}/bin"; + }; makeFlags = [ "prefix=$(out)" ]; enableParallelBuilding = true; From c3b2cd03f310a24c7a973bc0fbeb977299870768 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 12:19:43 +0100 Subject: [PATCH 040/239] nostui: move env variable(s) into env for structuredAttrs --- pkgs/by-name/no/nostui/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/no/nostui/package.nix b/pkgs/by-name/no/nostui/package.nix index ee987669e91e..d7a113a01d9b 100644 --- a/pkgs/by-name/no/nostui/package.nix +++ b/pkgs/by-name/no/nostui/package.nix @@ -15,7 +15,7 @@ rustPlatform.buildRustPackage (finalAttrs: { hash = "sha256-7i76JPg6MAk4/sO8/JI4ody4iYFJPeLkD2SWncFhT4o="; }; - GIT_HASH = "000000000000000000000000000000000000000000000000000"; + env.GIT_HASH = "000000000000000000000000000000000000000000000000000"; checkFlags = [ # skip failing test due to nix build timestamps From 3179cdb2cb407120a014bc73f7c1431e212a3df4 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 12:19:44 +0100 Subject: [PATCH 041/239] openzwave: move env variable(s) into env for structuredAttrs --- pkgs/by-name/op/openzwave/package.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/op/openzwave/package.nix b/pkgs/by-name/op/openzwave/package.nix index 1d27e9bf8640..a593b6c93ed4 100644 --- a/pkgs/by-name/op/openzwave/package.nix +++ b/pkgs/by-name/op/openzwave/package.nix @@ -46,8 +46,10 @@ stdenv.mkDerivation { "PREFIX=${placeholder "out"}" ]; - FONTCONFIG_FILE = "${fontconfig.out}/etc/fonts/fonts.conf"; - FONTCONFIG_PATH = "${fontconfig.out}/etc/fonts/"; + env = { + FONTCONFIG_FILE = "${fontconfig.out}/etc/fonts/fonts.conf"; + FONTCONFIG_PATH = "${fontconfig.out}/etc/fonts/"; + }; postPatch = '' substituteInPlace cpp/src/Options.cpp \ From c4ffa7621ed61731f9fe1764744cad439bd4f57e Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 12:19:44 +0100 Subject: [PATCH 042/239] proxysql: move env variable(s) into env for structuredAttrs --- pkgs/by-name/pr/proxysql/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/pr/proxysql/package.nix b/pkgs/by-name/pr/proxysql/package.nix index 885bf4d5de3d..373a1bab4b58 100644 --- a/pkgs/by-name/pr/proxysql/package.nix +++ b/pkgs/by-name/pr/proxysql/package.nix @@ -77,7 +77,7 @@ stdenv.mkDerivation (finalAttrs: { enableParallelBuilding = true; - GIT_VERSION = finalAttrs.version; + env.GIT_VERSION = finalAttrs.version; dontConfigure = true; From 91270fe81c2015866ea3a2b90bc6571942392354 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 12:19:44 +0100 Subject: [PATCH 043/239] qcdnum: move env variable(s) into env for structuredAttrs --- pkgs/by-name/qc/qcdnum/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/qc/qcdnum/package.nix b/pkgs/by-name/qc/qcdnum/package.nix index 0b147eddce75..96887b55ff2c 100644 --- a/pkgs/by-name/qc/qcdnum/package.nix +++ b/pkgs/by-name/qc/qcdnum/package.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ gfortran ]; buildInputs = [ zlib ]; - FFLAGS = [ + env.FFLAGS = toString [ "-std=legacy" # fix build with gfortran 10 ]; From b37dfd009c7e0852ef3d0936d4afb3112cba032d Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 12:19:44 +0100 Subject: [PATCH 044/239] sagoin: move env variable(s) into env for structuredAttrs --- pkgs/by-name/sa/sagoin/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/sa/sagoin/package.nix b/pkgs/by-name/sa/sagoin/package.nix index 1b75e28938fd..73452dc2f3bf 100644 --- a/pkgs/by-name/sa/sagoin/package.nix +++ b/pkgs/by-name/sa/sagoin/package.nix @@ -25,7 +25,7 @@ rustPlatform.buildRustPackage (finalAttrs: { installShellCompletion artifacts/sagoin.{bash,fish} --zsh artifacts/_sagoin ''; - GEN_ARTIFACTS = "artifacts"; + env.GEN_ARTIFACTS = "artifacts"; meta = { description = "Command-line submission tool for the UMD CS Submit Server"; From ee95484c64ad81b19aaff770d6c32bbe2a1b37f3 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 12:19:45 +0100 Subject: [PATCH 045/239] verible: move env variable(s) into env for structuredAttrs --- pkgs/by-name/ve/verible/package.nix | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/pkgs/by-name/ve/verible/package.nix b/pkgs/by-name/ve/verible/package.nix index ae5a1c37bec8..fc7ea87868e1 100644 --- a/pkgs/by-name/ve/verible/package.nix +++ b/pkgs/by-name/ve/verible/package.nix @@ -19,15 +19,18 @@ let rev = "3f863a3f35f31b61982d813835d8637b3d93d87a"; hash = "sha256-BsxP3GrS98ubIAkFx/c4pB1i97ZZL2TijS+2ORnooww="; }; -in -buildBazelPackage rec { - pname = "verible"; - - # These environment variables are read in bazel/build-version.py to create - # a build string shown in the tools --version output. - # If env variables not set, it would attempt to extract it from .git/. GIT_DATE = "2025-08-29"; GIT_VERSION = "v0.0-4023-gc1271a00"; +in +buildBazelPackage { + pname = "verible"; + + env = { + # These environment variables are read in bazel/build-version.py to create + # a build string shown in the tools --version output. + # If env variables not set, it would attempt to extract it from .git/. + inherit GIT_DATE GIT_VERSION; + }; # Derive nix package version from GIT_VERSION: "v1.2-345-abcde" -> "1.2.345" version = builtins.concatStringsSep "." ( From b2ede7e2e8df2c156fc81bc99ad41a83d23bdbf9 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 12:19:45 +0100 Subject: [PATCH 046/239] weblate: move env variable(s) into env for structuredAttrs --- pkgs/by-name/we/weblate/package.nix | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/pkgs/by-name/we/weblate/package.nix b/pkgs/by-name/we/weblate/package.nix index 04749c37a459..f18891ea3379 100644 --- a/pkgs/by-name/we/weblate/package.nix +++ b/pkgs/by-name/we/weblate/package.nix @@ -21,6 +21,15 @@ let django = prev.django_5; }; }; + + GI_TYPELIB_PATH = lib.makeSearchPathOutput "out" "lib/girepository-1.0" [ + pango + harfbuzz + librsvg + gdk-pixbuf + glib + gobject-introspection + ]; in python.pkgs.buildPythonApplication rec { pname = "weblate"; @@ -157,14 +166,10 @@ python.pkgs.buildPythonApplication rec { }; # We don't just use wrapGAppsNoGuiHook because we need to expose GI_TYPELIB_PATH - GI_TYPELIB_PATH = lib.makeSearchPathOutput "out" "lib/girepository-1.0" [ - pango - harfbuzz - librsvg - gdk-pixbuf - glib - gobject-introspection - ]; + env = { + inherit GI_TYPELIB_PATH; + }; + makeWrapperArgs = [ "--set GI_TYPELIB_PATH \"$GI_TYPELIB_PATH\"" ]; passthru = { From 2dc859b366493f8e92f5e688e1590076529e3b56 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 12:19:45 +0100 Subject: [PATCH 047/239] xgboost: move env variable(s) into env for structuredAttrs --- pkgs/by-name/xg/xgboost/package.nix | 136 ++++++++++++++-------------- 1 file changed, 69 insertions(+), 67 deletions(-) diff --git a/pkgs/by-name/xg/xgboost/package.nix b/pkgs/by-name/xg/xgboost/package.nix index 486801e20524..134da018efd4 100644 --- a/pkgs/by-name/xg/xgboost/package.nix +++ b/pkgs/by-name/xg/xgboost/package.nix @@ -90,9 +90,6 @@ effectiveStdenv.mkDerivation rec { ++ lib.optionals ncclSupport [ "-DUSE_NCCL=ON" ] ++ lib.optionals rLibrary [ "-DR_LIB=ON" ]; - # on Darwin, cmake uses find_library to locate R instead of using the PATH - env.NIX_LDFLAGS = "-L${R}/lib/R/lib"; - preConfigure = lib.optionals rLibrary '' substituteInPlace cmake/RPackageInstall.cmake.in --replace "CMD INSTALL" "CMD INSTALL -l $out/library" export R_LIBS_SITE="$R_LIBS_SITE''${R_LIBS_SITE:+:}$out/library" @@ -106,70 +103,75 @@ effectiveStdenv.mkDerivation rec { ctest --force-new-ctest-process ${lib.optionalString cudaSupport "-E TestXGBoostLib"} ''; - # Disable finicky tests from dmlc core that fail in Hydra. XGboost team - # confirmed xgboost itself does not use this part of the dmlc code. - GTEST_FILTER = - let - # Upstream Issue: https://github.com/xtensor-stack/xsimd/issues/456 - xsimdTests = lib.optionals effectiveStdenv.hostPlatform.isDarwin [ - "ThreadGroup.TimerThread" - "ThreadGroup.TimerThreadSimple" - ]; - networkingTest = [ - "AllgatherTest.Basic" - "AllgatherTest.VAlgo" - "AllgatherTest.VBasic" - "AllgatherTest.VRing" - "AllreduceGlobal.Basic" - "AllreduceGlobal.Small" - "AllreduceTest.Basic" - "AllreduceTest.BitOr" - "AllreduceTest.Restricted" - "AllreduceTest.Sum" - "Approx.PartitionerColumnSplit" - "BroadcastTest.Basic" - "CPUHistogram.BuildHistColSplit" - "CPUHistogram.BuildHistColumnSplit" - "CPUPredictor.CategoricalPredictLeafColumnSplit" - "CPUPredictor.CategoricalPredictionColumnSplit" - "ColumnSplit/ColumnSplitTrainingTest*" - "ColumnSplit/TestApproxColumnSplit*" - "ColumnSplit/TestHistColumnSplit*" - "ColumnSplitObjective/TestColumnSplit*" - "Cpu/ColumnSplitTrainingTest*" - "CommGroupTest.Basic" - "CommTest.Channel" - "CpuPredictor.BasicColumnSplit" - "CpuPredictor.IterationRangeColmnSplit" - "CpuPredictor.LesserFeaturesColumnSplit" - "CpuPredictor.SparseColumnSplit" - "DistributedMetric/TestDistributedMetric.BinaryAUCRowSplit/Dist_*" - "InitEstimation.FitStumpColumnSplit" - "MetaInfo.GetSetFeatureColumnSplit" - "Quantile.ColumnSplit" - "Quantile.ColumnSplitBasic" - "Quantile.ColumnSplitSorted" - "Quantile.ColumnSplitSortedBasic" - "Quantile.Distributed" - "Quantile.DistributedBasic" - "Quantile.SameOnAllWorkers" - "Quantile.SortedDistributed" - "Quantile.SortedDistributedBasic" - "QuantileHist.MultiPartitionerColumnSplit" - "QuantileHist.PartitionerColumnSplit" - "Stats.SampleMean" - "Stats.WeightedSampleMean" - "SimpleDMatrix.ColumnSplit" - "TrackerAPITest.CAPI" - "TrackerTest.AfterShutdown" - "TrackerTest.Bootstrap" - "TrackerTest.GetHostAddress" - "TrackerTest.Print" - "VectorAllgatherV.Basic" - ]; - excludedTests = xsimdTests ++ networkingTest; - in - "-${builtins.concatStringsSep ":" excludedTests}"; + env = { + # on Darwin, cmake uses find_library to locate R instead of using the PATH + NIX_LDFLAGS = "-L${R}/lib/R/lib"; + + # Disable finicky tests from dmlc core that fail in Hydra. XGboost team + # confirmed xgboost itself does not use this part of the dmlc code. + GTEST_FILTER = + let + # Upstream Issue: https://github.com/xtensor-stack/xsimd/issues/456 + xsimdTests = lib.optionals effectiveStdenv.hostPlatform.isDarwin [ + "ThreadGroup.TimerThread" + "ThreadGroup.TimerThreadSimple" + ]; + networkingTest = [ + "AllgatherTest.Basic" + "AllgatherTest.VAlgo" + "AllgatherTest.VBasic" + "AllgatherTest.VRing" + "AllreduceGlobal.Basic" + "AllreduceGlobal.Small" + "AllreduceTest.Basic" + "AllreduceTest.BitOr" + "AllreduceTest.Restricted" + "AllreduceTest.Sum" + "Approx.PartitionerColumnSplit" + "BroadcastTest.Basic" + "CPUHistogram.BuildHistColSplit" + "CPUHistogram.BuildHistColumnSplit" + "CPUPredictor.CategoricalPredictLeafColumnSplit" + "CPUPredictor.CategoricalPredictionColumnSplit" + "ColumnSplit/ColumnSplitTrainingTest*" + "ColumnSplit/TestApproxColumnSplit*" + "ColumnSplit/TestHistColumnSplit*" + "ColumnSplitObjective/TestColumnSplit*" + "Cpu/ColumnSplitTrainingTest*" + "CommGroupTest.Basic" + "CommTest.Channel" + "CpuPredictor.BasicColumnSplit" + "CpuPredictor.IterationRangeColmnSplit" + "CpuPredictor.LesserFeaturesColumnSplit" + "CpuPredictor.SparseColumnSplit" + "DistributedMetric/TestDistributedMetric.BinaryAUCRowSplit/Dist_*" + "InitEstimation.FitStumpColumnSplit" + "MetaInfo.GetSetFeatureColumnSplit" + "Quantile.ColumnSplit" + "Quantile.ColumnSplitBasic" + "Quantile.ColumnSplitSorted" + "Quantile.ColumnSplitSortedBasic" + "Quantile.Distributed" + "Quantile.DistributedBasic" + "Quantile.SameOnAllWorkers" + "Quantile.SortedDistributed" + "Quantile.SortedDistributedBasic" + "QuantileHist.MultiPartitionerColumnSplit" + "QuantileHist.PartitionerColumnSplit" + "Stats.SampleMean" + "Stats.WeightedSampleMean" + "SimpleDMatrix.ColumnSplit" + "TrackerAPITest.CAPI" + "TrackerTest.AfterShutdown" + "TrackerTest.Bootstrap" + "TrackerTest.GetHostAddress" + "TrackerTest.Print" + "VectorAllgatherV.Basic" + ]; + excludedTests = xsimdTests ++ networkingTest; + in + "-${builtins.concatStringsSep ":" excludedTests}"; + }; installPhase = '' runHook preInstall From dfa9f0245aef416cf13ea325bc6dcb889e12f791 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 12:20:06 +0100 Subject: [PATCH 048/239] rke2*: move env variable(s) into env for structuredAttrs --- pkgs/applications/networking/cluster/rke2/builder.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/networking/cluster/rke2/builder.nix b/pkgs/applications/networking/cluster/rke2/builder.nix index 68fe28b50075..bb2381c8f9a0 100644 --- a/pkgs/applications/networking/cluster/rke2/builder.nix +++ b/pkgs/applications/networking/cluster/rke2/builder.nix @@ -75,7 +75,7 @@ buildGoModule (finalAttrs: { ]; # Passing boringcrypto to GOEXPERIMENT variable to build with goboring library - GOEXPERIMENT = "boringcrypto"; + env.GOEXPERIMENT = "boringcrypto"; # https://github.com/rancher/rke2/blob/104ddbf3de65ab5490aedff36df2332d503d90fe/scripts/build-binary#L27-L39 ldflags = From 8730ce7b0e437cd4a582afc5328f6fd6e61fa2e1 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 12:20:18 +0100 Subject: [PATCH 049/239] tarsum: move env variable(s) into env for structuredAttrs --- pkgs/build-support/docker/tarsum.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkgs/build-support/docker/tarsum.nix b/pkgs/build-support/docker/tarsum.nix index 9358c571e94b..6c82fb8f4238 100644 --- a/pkgs/build-support/docker/tarsum.nix +++ b/pkgs/build-support/docker/tarsum.nix @@ -13,9 +13,11 @@ stdenv.mkDerivation { dontUnpack = true; - CGO_ENABLED = 0; - GOFLAGS = "-trimpath"; - GO111MODULE = "off"; + env = { + CGO_ENABLED = 0; + GOFLAGS = "-trimpath"; + GO111MODULE = "off"; + }; buildPhase = '' runHook preBuild From 1cbec0d400907d70b3a46c2abc949fa5226d258d Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 12:20:28 +0100 Subject: [PATCH 050/239] librsb: move env variable(s) into env for structuredAttrs --- pkgs/development/libraries/librsb/default.nix | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/pkgs/development/libraries/librsb/default.nix b/pkgs/development/libraries/librsb/default.nix index e878e84e8d18..83caf9d4ac24 100644 --- a/pkgs/development/libraries/librsb/default.nix +++ b/pkgs/development/libraries/librsb/default.nix @@ -45,14 +45,16 @@ stdenv.mkDerivation rec { ]; # Ensure C/Fortran code is position-independent. - env.NIX_CFLAGS_COMPILE = toString [ - "-fPIC" - "-Ofast" - ]; - FCFLAGS = [ - "-fPIC" - "-Ofast" - ]; + env = { + NIX_CFLAGS_COMPILE = toString [ + "-fPIC" + "-Ofast" + ]; + FCFLAGS = toString [ + "-fPIC" + "-Ofast" + ]; + }; enableParallelBuilding = true; From f19d5371f708de676da94768b71c70efa5abd917 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 12:21:00 +0100 Subject: [PATCH 051/239] glibtool, libtool, libtool_2: move env variable(s) into env for structuredAttrs --- pkgs/development/tools/misc/libtool/libtool2.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/tools/misc/libtool/libtool2.nix b/pkgs/development/tools/misc/libtool/libtool2.nix index 059fbf70e4d0..f087e49b13a8 100644 --- a/pkgs/development/tools/misc/libtool/libtool2.nix +++ b/pkgs/development/tools/misc/libtool/libtool2.nix @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { # FILECMD was added in libtool 2.4.7; previous versions hardwired `/usr/bin/file` # https://lists.gnu.org/archive/html/autotools-announce/2022-03/msg00000.html - FILECMD = "${file}/bin/file"; + env.FILECMD = "${file}/bin/file"; postPatch = # libtool commit da2e352735722917bf0786284411262195a6a3f6 changed From 5078d7902af44881094ae0f18e1c7c90bf7b8cca Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 12:21:16 +0100 Subject: [PATCH 052/239] gnutar: move env variable(s) into env for structuredAttrs --- pkgs/tools/archivers/gnutar/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/tools/archivers/gnutar/default.nix b/pkgs/tools/archivers/gnutar/default.nix index 1ddcfb22f04b..c7e65d9ce7f9 100644 --- a/pkgs/tools/archivers/gnutar/default.nix +++ b/pkgs/tools/archivers/gnutar/default.nix @@ -57,7 +57,7 @@ stdenv.mkDerivation rec { # May have some issues with root compilation because the bootstrap tool # cannot be used as a login shell for now. - FORCE_UNSAFE_CONFIGURE = lib.optionalString ( + env.FORCE_UNSAFE_CONFIGURE = lib.optionalString ( stdenv.hostPlatform.system == "armv7l-linux" || stdenv.hostPlatform.isSunOS ) "1"; From 5b4c0603b1e74033cf29607a175fa36a09c844c5 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 13:42:51 +0100 Subject: [PATCH 053/239] browserpass: move env variable(s) into env for structuredAttrs --- pkgs/by-name/br/browserpass/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/br/browserpass/package.nix b/pkgs/by-name/br/browserpass/package.nix index 3e7f17629ed2..24138be165e7 100644 --- a/pkgs/by-name/br/browserpass/package.nix +++ b/pkgs/by-name/br/browserpass/package.nix @@ -39,7 +39,7 @@ buildGoModule (finalAttrs: { sed -i -e 's/INSTALL =.*/INSTALL = install/' Makefile ''; - DESTDIR = placeholder "out"; + env.DESTDIR = placeholder "out"; postConfigure = '' make configure From d14e03a0edb4e29ccac35e5f97f79f8087a58176 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 13:42:55 +0100 Subject: [PATCH 054/239] bruno-cli: move env variable(s) into env for structuredAttrs --- pkgs/by-name/br/bruno-cli/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/br/bruno-cli/package.nix b/pkgs/by-name/br/bruno-cli/package.nix index af0138114a91..455360f85785 100644 --- a/pkgs/by-name/br/bruno-cli/package.nix +++ b/pkgs/by-name/br/bruno-cli/package.nix @@ -42,7 +42,7 @@ buildNpmPackage { patchShebangs packages/*/node_modules ''; - ELECTRON_SKIP_BINARY_DOWNLOAD = 1; + env.ELECTRON_SKIP_BINARY_DOWNLOAD = 1; buildPhase = '' runHook preBuild From 347a55fec0b1063c624361f54339606ac60b7307 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 13:42:55 +0100 Subject: [PATCH 055/239] bruno: move env variable(s) into env for structuredAttrs --- pkgs/by-name/br/bruno/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/br/bruno/package.nix b/pkgs/by-name/br/bruno/package.nix index 4c7420b311c2..4ab5fee00815 100644 --- a/pkgs/by-name/br/bruno/package.nix +++ b/pkgs/by-name/br/bruno/package.nix @@ -84,7 +84,7 @@ buildNpmPackage rec { patchShebangs packages/*/node_modules ''; - ELECTRON_SKIP_BINARY_DOWNLOAD = 1; + env.ELECTRON_SKIP_BINARY_DOWNLOAD = 1; # remove giflib dependency npmRebuildFlags = [ "--ignore-scripts" ]; From 2a4985d9d78146e2e20e4266702240e4c0165052 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 13:42:55 +0100 Subject: [PATCH 056/239] bupc: move env variable(s) into env for structuredAttrs --- pkgs/by-name/bu/bupc/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/bu/bupc/package.nix b/pkgs/by-name/bu/bupc/package.nix index 0077d8ad9730..e25dbf1e111b 100644 --- a/pkgs/by-name/bu/bupc/package.nix +++ b/pkgs/by-name/bu/bupc/package.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation (finalAttrs: { ''; # Used during the configure phase - ENVCMD = "${coreutils}/bin/env"; + env.ENVCMD = "${coreutils}/bin/env"; buildInputs = [ perl ]; From b95710f2b6fbb9fe4e5e8f7c6f535bf7cf6509e2 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 13:42:55 +0100 Subject: [PATCH 057/239] caprine: move env variable(s) into env for structuredAttrs --- pkgs/by-name/ca/caprine/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/ca/caprine/package.nix b/pkgs/by-name/ca/caprine/package.nix index ad6b054a84b1..18161241ebc4 100644 --- a/pkgs/by-name/ca/caprine/package.nix +++ b/pkgs/by-name/ca/caprine/package.nix @@ -20,7 +20,7 @@ buildNpmPackage rec { hash = "sha256-hBGsqOqKMHNy2SNw1kHCQq1lPDd2S36L5pdKgD2O8FA="; }; - ELECTRON_SKIP_BINARY_DOWNLOAD = "1"; + env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1"; npmDepsHash = "sha256-FgOHuMMUX92VHF6hdznoi7bhO/27t6+l038kmpqjctQ="; From b28bef2165b17225170f220cef17e9d805abb29a Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 13:42:56 +0100 Subject: [PATCH 058/239] chatd: move env variable(s) into env for structuredAttrs --- pkgs/by-name/ch/chatd/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/ch/chatd/package.nix b/pkgs/by-name/ch/chatd/package.nix index 70e5ba36afeb..5a7a52e44a68 100644 --- a/pkgs/by-name/ch/chatd/package.nix +++ b/pkgs/by-name/ch/chatd/package.nix @@ -24,7 +24,7 @@ buildNpmPackage rec { }; makeCacheWritable = true; # sharp tries to build stuff in node_modules - ELECTRON_SKIP_BINARY_DOWNLOAD = true; + env.ELECTRON_SKIP_BINARY_DOWNLOAD = true; npmDepsHash = "sha256-jvGvhgNhY+wz/DFS7NDtmzKXbhHbNF3i0qVQoFFeB0M="; From 6afc8682394741381bb9d7657f22d08d5aab3ddc Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 13:42:56 +0100 Subject: [PATCH 059/239] diffuse: move env variable(s) into env for structuredAttrs --- pkgs/by-name/di/diffuse/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/di/diffuse/package.nix b/pkgs/by-name/di/diffuse/package.nix index 8b5bf717ac97..d241ed6d1cf0 100644 --- a/pkgs/by-name/di/diffuse/package.nix +++ b/pkgs/by-name/di/diffuse/package.nix @@ -58,7 +58,7 @@ python3.pkgs.buildPythonApplication (finalAttrs: { ]; # to avoid running gtk-update-icon-cache, update-desktop-database and glib-compile-schemas - DESTDIR = "/"; + env.DESTDIR = "/"; makeWrapperArgs = [ "--prefix XDG_DATA_DIRS : ${hicolor-icon-theme}/share" From cd114c53b2a453d8c21591d94bdc34809f8685b1 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 13:42:56 +0100 Subject: [PATCH 060/239] drawio: move env variable(s) into env for structuredAttrs --- pkgs/by-name/dr/drawio/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/dr/drawio/package.nix b/pkgs/by-name/dr/drawio/package.nix index f34850f7c99b..a86bddff9fff 100644 --- a/pkgs/by-name/dr/drawio/package.nix +++ b/pkgs/by-name/dr/drawio/package.nix @@ -49,7 +49,7 @@ stdenv.mkDerivation (finalAttrs: { darwin.autoSignDarwinBinariesHook ]; - ELECTRON_SKIP_BINARY_DOWNLOAD = true; + env.ELECTRON_SKIP_BINARY_DOWNLOAD = true; configurePhase = '' runHook preConfigure From 470c31ba422b27cd70abddb6d47dd91ad9c9e5ac Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 13:42:56 +0100 Subject: [PATCH 061/239] glib: move env variable(s) into env for structuredAttrs --- pkgs/by-name/gl/glib/package.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/by-name/gl/glib/package.nix b/pkgs/by-name/gl/glib/package.nix index 430755541a16..c9f8ba26d34b 100644 --- a/pkgs/by-name/gl/glib/package.nix +++ b/pkgs/by-name/gl/glib/package.nix @@ -252,6 +252,7 @@ stdenv.mkDerivation (finalAttrs: { # we're using plain "-DG_DISABLE_CAST_CHECKS" ]; + DETERMINISTIC_BUILD = 1; }; postPatch = '' @@ -280,8 +281,6 @@ stdenv.mkDerivation (finalAttrs: { patchShebangs gio/gdbus-2.0/codegen/gdbus-codegen gobject/glib-{genmarshal,mkenums} ''; - DETERMINISTIC_BUILD = 1; - postInstall = '' moveToOutput "share/glib-2.0" "$dev" moveToOutput "share/glib-2.0/gdb" "$out" From 7c5c161391c2a024d66626a6d88073d1d118a6da Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 13:42:57 +0100 Subject: [PATCH 062/239] kaufkauflist: move env variable(s) into env for structuredAttrs --- pkgs/by-name/ka/kaufkauflist/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/ka/kaufkauflist/package.nix b/pkgs/by-name/ka/kaufkauflist/package.nix index 8e4ad879104a..9ba0a388d6a9 100644 --- a/pkgs/by-name/ka/kaufkauflist/package.nix +++ b/pkgs/by-name/ka/kaufkauflist/package.nix @@ -39,7 +39,7 @@ buildNpmPackage rec { npmDepsHash = "sha256-HDv6sW6FmKZpUjymrUjz/WG9XrKgLmM6qHMAxP6gBtU="; - ESBUILD_BINARY_PATH = lib.getExe esbuild'; + env.ESBUILD_BINARY_PATH = lib.getExe esbuild'; postInstall = '' mkdir -p $out/share/kaufkauflist $out/share/pocketbase From 49d5a7e79b6f3dd092fecc51ba8941cffd4a956b Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 13:42:57 +0100 Subject: [PATCH 063/239] lirc: move env variable(s) into env for structuredAttrs --- pkgs/by-name/li/lirc/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/li/lirc/package.nix b/pkgs/by-name/li/lirc/package.nix index ed1e36cafe29..730b003723a3 100644 --- a/pkgs/by-name/li/lirc/package.nix +++ b/pkgs/by-name/li/lirc/package.nix @@ -95,7 +95,7 @@ stdenv.mkDerivation (finalAttrs: { libx11 ]; - DEVINPUT_HEADER = "${linuxHeaders}/include/linux/input-event-codes.h"; + env.DEVINPUT_HEADER = "${linuxHeaders}/include/linux/input-event-codes.h"; configureFlags = [ "--sysconfdir=/etc" From 45b3ab58e29abf81f6fdd01ad4fb77e94f646255 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 13:42:57 +0100 Subject: [PATCH 064/239] msieve: move env variable(s) into env for structuredAttrs --- pkgs/by-name/ms/msieve/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/ms/msieve/package.nix b/pkgs/by-name/ms/msieve/package.nix index 3370bc459f32..c80468d07815 100644 --- a/pkgs/by-name/ms/msieve/package.nix +++ b/pkgs/by-name/ms/msieve/package.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation (finalAttrs: { ecm ]; - ECM = if ecm == null then "0" else "1"; + env.ECM = if ecm == null then "0" else "1"; # Doesn't hurt Linux but lets clang-based platforms like Darwin work fine too makeFlags = [ From ba90901764520e83244b04226f459bed738e2527 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 13:42:57 +0100 Subject: [PATCH 065/239] podman-desktop: move env variable(s) into env for structuredAttrs --- pkgs/by-name/po/podman-desktop/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/po/podman-desktop/package.nix b/pkgs/by-name/po/podman-desktop/package.nix index 2786cd00360b..3ff7d7425ec6 100644 --- a/pkgs/by-name/po/podman-desktop/package.nix +++ b/pkgs/by-name/po/podman-desktop/package.nix @@ -75,7 +75,7 @@ stdenv.mkDerivation (finalAttrs: { ./system-defaults-dir.patch ]; - ELECTRON_SKIP_BINARY_DOWNLOAD = "1"; + env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1"; nativeBuildInputs = [ makeBinaryWrapper From 6a8c4279cffbe08e198e6a47f7487e5ff35e7e6d Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 13:42:58 +0100 Subject: [PATCH 066/239] rcs: move env variable(s) into env for structuredAttrs --- pkgs/by-name/rc/rcs/package.nix | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/rc/rcs/package.nix b/pkgs/by-name/rc/rcs/package.nix index 839c47a30bbe..73fec8b194e5 100644 --- a/pkgs/by-name/rc/rcs/package.nix +++ b/pkgs/by-name/rc/rcs/package.nix @@ -17,16 +17,17 @@ stdenv.mkDerivation (finalAttrs: { sha256 = "sha256-Q93+EHJKi4XiRo9kA7YABzcYbwHmDgvWL95p2EIjTMU="; }; - ac_cv_path_ED = "${ed}/bin/ed"; - DIFF = "${diffutils}/bin/diff"; - DIFF3 = "${diffutils}/bin/diff3"; - disallowedReferences = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ buildPackages.diffutils buildPackages.ed ]; - env.NIX_CFLAGS_COMPILE = "-std=c99"; + env = { + NIX_CFLAGS_COMPILE = "-std=c99"; + ac_cv_path_ED = "${ed}/bin/ed"; + DIFF = "${diffutils}/bin/diff"; + DIFF3 = "${diffutils}/bin/diff3"; + }; hardeningDisable = lib.optional stdenv.cc.isClang "format"; From f391b821148049a08c1aaba64cdc235028fd0d53 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 13:42:58 +0100 Subject: [PATCH 067/239] system76-scheduler: move env variable(s) into env for structuredAttrs --- pkgs/by-name/sy/system76-scheduler/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/sy/system76-scheduler/package.nix b/pkgs/by-name/sy/system76-scheduler/package.nix index e37b663187fb..c92b38081820 100644 --- a/pkgs/by-name/sy/system76-scheduler/package.nix +++ b/pkgs/by-name/sy/system76-scheduler/package.nix @@ -32,7 +32,7 @@ rustPlatform.buildRustPackage { pipewire ]; - EXECSNOOP_PATH = "${bcc}/bin/execsnoop"; + env.EXECSNOOP_PATH = "${bcc}/bin/execsnoop"; # tests don't build doCheck = false; From 82311c6ce3e1834b8e94be079db55e1ac7cf377a Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 13:42:58 +0100 Subject: [PATCH 068/239] thc-hydra: move env variable(s) into env for structuredAttrs --- pkgs/by-name/th/thc-hydra/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/th/thc-hydra/package.nix b/pkgs/by-name/th/thc-hydra/package.nix index b27d967fabb5..db87bf2d2597 100644 --- a/pkgs/by-name/th/thc-hydra/package.nix +++ b/pkgs/by-name/th/thc-hydra/package.nix @@ -63,7 +63,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - DATADIR = "/share/${pname}"; + env.DATADIR = "/share/${pname}"; postInstall = lib.optionalString withGUI '' wrapProgram $out/bin/xhydra \ From 579fb4d27a9d0e510ccb501ecc90c54f9827b87f Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 13:42:58 +0100 Subject: [PATCH 069/239] ytdownloader: move env variable(s) into env for structuredAttrs --- pkgs/by-name/yt/ytdownloader/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/yt/ytdownloader/package.nix b/pkgs/by-name/yt/ytdownloader/package.nix index 47aff6b74a2d..341edc43421e 100644 --- a/pkgs/by-name/yt/ytdownloader/package.nix +++ b/pkgs/by-name/yt/ytdownloader/package.nix @@ -45,7 +45,7 @@ buildNpmPackage rec { }) ]; - ELECTRON_SKIP_BINARY_DOWNLOAD = "1"; + env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1"; dontNpmBuild = true; From 244e41091f2c886b3d256efb4e2336ed6f4e7c3b Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sat, 14 Feb 2026 13:43:22 +0100 Subject: [PATCH 070/239] python3Packages.nix-prefetch-github: move env variable(s) into env for structuredAttrs --- pkgs/development/python-modules/nix-prefetch-github/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/nix-prefetch-github/default.nix b/pkgs/development/python-modules/nix-prefetch-github/default.nix index ae1d3c35eac2..d4aed2d8de0d 100644 --- a/pkgs/development/python-modules/nix-prefetch-github/default.nix +++ b/pkgs/development/python-modules/nix-prefetch-github/default.nix @@ -47,7 +47,7 @@ buildPythonPackage rec { sphinxRoot = "docs"; # ignore tests which are impure - DISABLED_TESTS = "network requires_nix_build"; + env.DISABLED_TESTS = "network requires_nix_build"; meta = { description = "Prefetch sources from github"; From 110ca1cfd96f58cf746403915b503e70da00b496 Mon Sep 17 00:00:00 2001 From: Michael Daniels Date: Sat, 14 Feb 2026 12:02:59 -0500 Subject: [PATCH 071/239] python3Packages.py-cid: fix build Modified from fabaff's PR 446766. --- .../python-modules/py-cid/default.nix | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/pkgs/development/python-modules/py-cid/default.nix b/pkgs/development/python-modules/py-cid/default.nix index 2f75be74fc96..f60f46f4c2f6 100644 --- a/pkgs/development/python-modules/py-cid/default.nix +++ b/pkgs/development/python-modules/py-cid/default.nix @@ -9,12 +9,14 @@ morphys, py-multihash, hypothesis, + pytest-cov-stub, + setuptools, }: buildPythonPackage rec { pname = "py-cid"; version = "0.4.0"; - format = "setuptools"; + pyproject = true; src = fetchFromGitHub { owner = "ipld"; @@ -23,14 +25,11 @@ buildPythonPackage rec { hash = "sha256-IYjk7sajHFWgsOMxwk1tWvKtTfPN8vHoNeENQed7MiU="; }; - postPatch = '' - substituteInPlace setup.py \ - --replace "base58>=1.0.2,<2.0" "base58>=1.0.2" \ - --replace "py-multihash>=0.2.0,<1.0.0" "py-multihash>=0.2.0" \ - --replace "'pytest-runner'," "" - ''; + pythonRelaxDeps = [ "base58" ]; - propagatedBuildInputs = [ + build-system = [ setuptools ]; + + dependencies = [ base58 py-multibase py-multicodec @@ -40,6 +39,7 @@ buildPythonPackage rec { nativeCheckInputs = [ pytestCheckHook + pytest-cov-stub hypothesis ]; @@ -48,6 +48,7 @@ buildPythonPackage rec { meta = { description = "Self-describing content-addressed identifiers for distributed systems implementation in Python"; homepage = "https://github.com/ipld/py-cid"; + changelog = "https://github.com/ipld/py-cid/blob/${src.tag}/HISTORY.rst"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ Luflosi ]; }; From 7bf96d32730f9217ac9ddfdcad3b69a171321aaa Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sat, 27 Sep 2025 22:35:02 +0200 Subject: [PATCH 072/239] python3Packages.py-multiaddr: 0.0.10 -> 0.0.11; fix build Changelog: https://github.com/multiformats/py-multiaddr/releases/tag/v0.0.11 Co-authored-by: Michael Daniels --- .../python-modules/py-multiaddr/default.nix | 40 ++++++++++++++----- 1 file changed, 30 insertions(+), 10 deletions(-) diff --git a/pkgs/development/python-modules/py-multiaddr/default.nix b/pkgs/development/python-modules/py-multiaddr/default.nix index b2ad11184d14..9b002fd4058e 100644 --- a/pkgs/development/python-modules/py-multiaddr/default.nix +++ b/pkgs/development/python-modules/py-multiaddr/default.nix @@ -1,38 +1,45 @@ { lib, + base58, buildPythonPackage, fetchFromGitHub, - varint, - base58, - netaddr, idna, + netaddr, py-cid, py-multicodec, + trio, pytestCheckHook, + setuptools, + psutil, + varint, + dnspython, + trio-typing, }: buildPythonPackage rec { pname = "py-multiaddr"; - version = "0.0.10"; - format = "setuptools"; + version = "0.0.11"; + pyproject = true; src = fetchFromGitHub { owner = "multiformats"; repo = "py-multiaddr"; tag = "v${version}"; - hash = "sha256-N46D2H3RG6rtdBrSyDjh8UxD+Ph/FXEa4FcEI2uz4y8="; + hash = "sha256-mlHcuLVtczp3APXJFkWbjeY7xU39eFERa8hhiOEwBSU="; }; - postPatch = '' - substituteInPlace setup.py --replace "'pytest-runner'," "" - ''; + build-system = [ setuptools ]; - propagatedBuildInputs = [ + dependencies = [ varint base58 netaddr + dnspython + trio-typing + trio idna py-cid + psutil py-multicodec ]; @@ -40,9 +47,22 @@ buildPythonPackage rec { pythonImportsCheck = [ "multiaddr" ]; + disabledTests = [ + # Test is outdated + "test_resolve_cancellation_with_error" + # AssertionError + "test_ipv4_wildcard" + ]; + + disabledTestPaths = [ + # Tests require network access + "tests/test_resolvers.py" + ]; + meta = { description = "Composable and future-proof network addresses"; homepage = "https://github.com/multiformats/py-multiaddr"; + changelog = "https://github.com/multiformats/py-multiaddr/releases/tag/${src.tag}"; license = with lib.licenses; [ mit asl20 From c8d74d1124e6a8dfc5aea9e0e7500e67af0f304b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20M=C3=B6ller?= Date: Sun, 15 Feb 2026 11:22:20 +0100 Subject: [PATCH 073/239] python3Packages.python-kadmin-rs: 0.6.3 -> 0.7.0 --- .../python-kadmin-rs/default.nix | 55 ++++++++++++------- 1 file changed, 34 insertions(+), 21 deletions(-) diff --git a/pkgs/development/python-modules/python-kadmin-rs/default.nix b/pkgs/development/python-modules/python-kadmin-rs/default.nix index 7694ed48dc34..35ccf09e80dc 100644 --- a/pkgs/development/python-modules/python-kadmin-rs/default.nix +++ b/pkgs/development/python-modules/python-kadmin-rs/default.nix @@ -5,56 +5,69 @@ rustPlatform, pythonImportsCheckHook, buildPythonPackage, - - cargo, - rustc, pkg-config, - sccache, - setuptools, - setuptools-rust, - setuptools-scm, + heimdal, }: - buildPythonPackage rec { pname = "python-kadmin-rs"; - version = "0.6.3"; + version = "0.7.0"; pyproject = true; src = fetchFromGitHub { owner = "authentik-community"; repo = "kadmin-rs"; rev = "kadmin/version/${version}"; - hash = "sha256-ofoxgaTflem/QG/aQc6M5oxrUl/YoLHzDWlNyeVr0H8="; + hash = "sha256-7aRbpQblRFoCmuZJgm2mrGoUNL0BBcIpzlKblCnHVPc="; }; cargoDeps = rustPlatform.fetchCargoVendor { inherit src; - hash = "sha256-mSwuR8TCljPYgVhguZiu2fXprCl+IEyZxE7ML+FBI98="; + hash = "sha256-dzTcB5GfeUbgikznq4YFEzZ75z0zvz4I1/+5UCQ0e2o="; }; + # The include directories of krb5 and heimdal contain overlapping paths. + # Only add one and set the other required paths via environment variables. buildInputs = [ pkgs.krb5 ]; + env = { + KADMIN_MIT_CLIENT_INCLUDES = "${pkgs.krb5.dev}/include"; + KADMIN_MIT_SERVER_INCLUDES = "${pkgs.krb5.dev}/include"; + KADMIN_HEIMDAL_CLIENT_INCLUDES = "${heimdal.dev}/include"; + KADMIN_HEIMDAL_SERVER_INCLUDES = "${heimdal.dev}/include"; + KADMIN_MIT_CLIENT_KRB5_CONFIG = "${pkgs.krb5.dev}/bin/krb5-config"; + KADMIN_MIT_SERVER_KRB5_CONFIG = "${pkgs.krb5.dev}/bin/krb5-config"; + KADMIN_HEIMDAL_CLIENT_KRB5_CONFIG = "${heimdal.dev}/bin/krb5-config"; + KADMIN_HEIMDAL_SERVER_KRB5_CONFIG = "${heimdal.dev}/bin/krb5-config"; + + K5TEST_MIT_KDB5_UTIL = "${pkgs.krb5}/bin/kdb5_util"; + K5TEST_MIT_KRB5KDC = "${pkgs.krb5}/bin/krb5kdc"; + K5TEST_MIT_KADMIN = "${pkgs.krb5}/bin/kadmin"; + K5TEST_MIT_KADMIN_LOCAL = "${pkgs.krb5}/bin/kadmin.local"; + K5TEST_MIT_KADMIND = "${pkgs.krb5}/bin/kadmind"; + K5TEST_MIT_KPROP = "${pkgs.krb5}/bin/kprop"; + K5TEST_MIT_KINIT = "${pkgs.krb5}/bin/kinit"; + K5TEST_MIT_KLIST = "${pkgs.krb5}/bin/klist"; + + K5TEST_HEIMDAL_KDC = "${heimdal}/libexec/kdc"; + K5TEST_HEIMDAL_KADMIN = "${heimdal}/bin/kadmin"; + K5TEST_HEIMDAL_KADMIND = "${heimdal}/libexec/kadmind"; + K5TEST_HEIMDAL_KINIT = "${heimdal}/bin/kinit"; + K5TEST_HEIMDAL_KLIST = "${heimdal}/bin/klist"; + K5TEST_HEIMDAL_KTUTIL = "${heimdal}/bin/ktutil"; + }; + nativeBuildInputs = [ - sccache pkg-config pythonImportsCheckHook rustPlatform.bindgenHook rustPlatform.cargoSetupHook - cargo - rustc - ]; - - build-system = [ - setuptools - setuptools-rust - setuptools-scm + rustPlatform.maturinBuildHook ]; pythonImportsCheck = [ "kadmin" - "kadmin_local" ]; meta = { From b053f0477aef699e31e3dc5bc12ef04c5f9c5c2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20M=C3=B6ller?= Date: Sun, 15 Feb 2026 15:48:04 +0100 Subject: [PATCH 074/239] authentik,authentik-outposts: 2025.10.1 -> 2025.12.4 --- .../au/authentik/client-go-config.patch | 9 + pkgs/by-name/au/authentik/ldap.nix | 3 + pkgs/by-name/au/authentik/outposts.nix | 7 +- pkgs/by-name/au/authentik/package.nix | 165 ++++++++++++++++-- pkgs/by-name/au/authentik/proxy.nix | 3 + pkgs/by-name/au/authentik/radius.nix | 3 + 6 files changed, 174 insertions(+), 16 deletions(-) create mode 100644 pkgs/by-name/au/authentik/client-go-config.patch diff --git a/pkgs/by-name/au/authentik/client-go-config.patch b/pkgs/by-name/au/authentik/client-go-config.patch new file mode 100644 index 000000000000..8398b16160c7 --- /dev/null +++ b/pkgs/by-name/au/authentik/client-go-config.patch @@ -0,0 +1,9 @@ +diff --git a/config.yaml b/config.yaml +index 2f07ea7..0f90432 100644 +--- a/config.yaml ++++ b/config.yaml +@@ -4,3 +4,4 @@ additionalProperties: + packageName: api + enumClassPrefix: true + useOneOfDiscriminatorLookup: true ++ disallowAdditionalPropertiesIfNotPresent: false diff --git a/pkgs/by-name/au/authentik/ldap.nix b/pkgs/by-name/au/authentik/ldap.nix index 5d4159ae9737..bf6b88202e11 100644 --- a/pkgs/by-name/au/authentik/ldap.nix +++ b/pkgs/by-name/au/authentik/ldap.nix @@ -1,6 +1,7 @@ { buildGoModule, authentik, + apiGoVendorHook, vendorHash, }: @@ -9,6 +10,8 @@ buildGoModule { inherit (authentik) version src; inherit vendorHash; + nativeBuildInputs = [ apiGoVendorHook ]; + env.CGO_ENABLED = 0; subPackages = [ "cmd/ldap" ]; diff --git a/pkgs/by-name/au/authentik/outposts.nix b/pkgs/by-name/au/authentik/outposts.nix index 485dd81e8c20..0548c36e888d 100644 --- a/pkgs/by-name/au/authentik/outposts.nix +++ b/pkgs/by-name/au/authentik/outposts.nix @@ -1,10 +1,11 @@ { callPackage, authentik, + apiGoVendorHook ? authentik.apiGoVendorHook, vendorHash ? authentik.proxy.vendorHash, }: { - ldap = callPackage ./ldap.nix { inherit vendorHash; }; - proxy = callPackage ./proxy.nix { inherit vendorHash; }; - radius = callPackage ./radius.nix { inherit vendorHash; }; + ldap = callPackage ./ldap.nix { inherit apiGoVendorHook vendorHash; }; + proxy = callPackage ./proxy.nix { inherit apiGoVendorHook vendorHash; }; + radius = callPackage ./radius.nix { inherit apiGoVendorHook vendorHash; }; } diff --git a/pkgs/by-name/au/authentik/package.nix b/pkgs/by-name/au/authentik/package.nix index 8a4a7c6409e3..680c719f0f06 100644 --- a/pkgs/by-name/au/authentik/package.nix +++ b/pkgs/by-name/au/authentik/package.nix @@ -10,18 +10,23 @@ nodejs_24, python3, makeWrapper, + openapi-generator-cli, + go, + typescript, + makeSetupHook, + writeShellScript, }: let nodejs = nodejs_24; - version = "2025.10.1"; + version = "2025.12.4"; src = fetchFromGitHub { owner = "goauthentik"; repo = "authentik"; tag = "version/${version}"; - hash = "sha256-HowB6DTGCqz770fKYbnE+rQ11XRV0WSNkLD+HSWZwz8="; + hash = "sha256-alTyrMBbjZbw4jhEna8saabf93sqSrZCu+Z5xH3pZ7M="; }; meta = { @@ -39,6 +44,90 @@ let ]; }; + client-go = stdenvNoCC.mkDerivation { + pname = "authentik-client-go"; + version = "3.${version}"; + inherit meta; + + src = fetchFromGitHub { + owner = "goauthentik"; + repo = "client-go"; + tag = "v3.${version}"; + hash = "sha256-+/CfOE2HkBU+ZddvdXGenB/z8xNFk8cujpZpMXyh3cY="; + }; + + patches = [ + ./client-go-config.patch + ]; + + postPatch = '' + substituteInPlace ./config.yaml \ + --replace-fail '/local' "$(pwd)" + ''; + + nativeBuildInputs = [ + openapi-generator-cli + go + ]; + + buildPhase = '' + runHook preBuild + + openapi-generator-cli generate \ + -i ${src}/schema.yml -o $out \ + -g go \ + -c ./config.yaml + + gofmt -w $out + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + cp go.mod go.sum $out + + cd $out + rm -rf test + rm -f .travis.yml git_push.sh + + runHook postInstall + ''; + }; + + client-ts = stdenvNoCC.mkDerivation { + pname = "authentik-client-ts"; + inherit version src meta; + + postPatch = '' + substituteInPlace ./scripts/api/ts-config.yaml \ + --replace-fail '/local' "$(pwd)" + ''; + + nativeBuildInputs = [ + nodejs + openapi-generator-cli + typescript + ]; + + buildPhase = '' + runHook preBuild + + openapi-generator-cli generate \ + -i ./schema.yml -o $out \ + -g typescript-fetch \ + -c ./scripts/api/ts-config.yaml \ + --additional-properties=npmVersion=${version} \ + --git-repo-id authentik --git-user-id goauthentik + + cd $out + npm run build + + runHook postBuild + ''; + }; + # prefetch-npm-deps does not save all dependencies even though the lockfile is fine website-deps = stdenvNoCC.mkDerivation { pname = "authentik-website-deps"; @@ -48,8 +137,8 @@ let outputHash = { - "aarch64-linux" = "sha256-aXXlzTsZp5mOrsxy9oHNzcc+1cFSnbC9RmtawBohmLI="; - "x86_64-linux" = "sha256-Hi0HXzwTLuer0v4IKF3aim0tVe7AVLi67DiMimrIq5s="; + "aarch64-linux" = "sha256-GL5FPIBnoEXYtw8DPJpRPe3tT3qioN4AdoeOmCoiYsM="; + "x86_64-linux" = "sha256-AnceTipq6uUvTbOAZanVshAbAJ9LS1kwImbttTOcWxc="; } .${stdenvNoCC.hostPlatform.system} or (throw "authentik-website-deps: unsupported host platform"); @@ -119,8 +208,8 @@ let outputHash = { - "aarch64-linux" = "sha256-t/jyzG3ibTW3fu8Gl1tWkSjMG6Lek/7JDccDrZX6sD0="; - "x86_64-linux" = "sha256-8I1YAKvgWjM3p9O1mCetZvhZelrfB31w0ZwkZBUEoh4="; + "aarch64-linux" = "sha256-eZZ5Ynj81KwFsU5emPtYZ2CxO8MFvWbJnCHs+L88KQQ="; + "x86_64-linux" = "sha256-yUAyyO1NFav1EptrRYGSzC8dxCxYVj0FmzHk8IckFZM="; } .${stdenvNoCC.hostPlatform.system} or (throw "authentik-webui-deps: unsupported host platform"); outputHashMode = "recursive"; @@ -172,6 +261,10 @@ let find -type d -name node_modules -prune -print -exec cp -rT {} $buildRoot/{} \; popd + chmod -R +w node_modules/@goauthentik + rm -R node_modules/@goauthentik/api + ln -sn ${client-ts} node_modules/@goauthentik/api + pushd node_modules/.bin patchShebangs $(readlink rollup) patchShebangs $(readlink wireit) @@ -208,6 +301,21 @@ let # https://github.com/goauthentik/authentik/pull/16324 django = final.django_5; + ak-guardian = final.buildPythonPackage { + pname = "ak-guardian"; + inherit version src meta; + pyproject = true; + + sourceRoot = "${src.name}/packages/ak-guardian"; + + build-system = with final; [ hatchling ]; + + propagatedBuildInputs = with final; [ + django + typing-extensions + ]; + }; + django-channels-postgres = final.buildPythonPackage { pname = "django-channels-postgres"; inherit version src meta; @@ -330,14 +438,15 @@ let pyproject = true; postPatch = '' - rm lifecycle/system_migrations/tenant_files.py substituteInPlace authentik/root/settings.py \ --replace-fail 'Path(__file__).absolute().parent.parent.parent' "Path(\"$out\")" substituteInPlace authentik/lib/default.yml \ - --replace-fail '/blueprints' "$out/blueprints" \ - --replace-fail './media' '/var/lib/authentik/media' + --replace-fail '/blueprints' "$out/blueprints" substituteInPlace authentik/stages/email/utils.py \ --replace-fail 'web/' '${webui}/' + # allways allow file upload if the data directoy exists + substituteInPlace authentik/admin/files/backends/file.py \ + --replace-fail "and (self._base_dir.is_mount() or (self._base_dir / self.usage.value).is_mount())" "" ''; build-system = [ @@ -351,6 +460,7 @@ let dependencies = with final; [ + ak-guardian argon2-cffi cachetools channels @@ -364,7 +474,6 @@ let django-cte django-dramatiq-postgres django-filter - django-guardian django-model-utils django-pglock django-pgtrigger @@ -375,7 +484,6 @@ let django-tenants djangoql djangorestframework - djangorestframework-guardian docker drf-orjson-renderer drf-spectacular @@ -440,6 +548,31 @@ let inherit (python.pkgs) authentik-django; + # Provide a setup-hook to configure the Go vendor directory with up-to-date API bindings. + # This is done to avoid the `vendorHash` depending on anything in the `client-go` build (e.g. + # openapi-generator-cli version updates changing the produced content) and invalidating the hash. + apiGoVendorHook = + makeSetupHook + { + name = "authentik-api-go-vendor-hook"; + } + ( + writeShellScript "authentik-api-go-vendor-hook" '' + authentikApiGoVendorHook() { + chmod -R +w vendor/goauthentik.io/api + rm -rf vendor/goauthentik.io/api/v3 + cp -r ${client-go} vendor/goauthentik.io/api/v3 + + echo "Finished authentikApiGoVendorHook" + } + + # don't run for FOD, e.g. the `goModules` build + if [ -z ''${outputHash-} ]; then + postConfigureHooks+=(authentikApiGoVendorHook) + fi + '' + ); + proxy = buildGoModule { pname = "authentik-proxy"; inherit version src meta; @@ -453,9 +586,14 @@ let --replace-fail './web' "${authentik-django}/web" ''; + nativeBuildInputs = [ apiGoVendorHook ]; + env.CGO_ENABLED = 0; - vendorHash = "sha256-m2shrCwoVdbtr8B83ZcAyG+J6dEys2xdjtlfFFF4CDo="; + # calculate the vendorHash without other dependencies, so it is only based on the `go.sum` file + overrideModAttrs.postPatch = ""; + + vendorHash = "sha256-pdQg02f1K4nOhsnadoplQYOhEybqZxn+yDQRN5RNygM="; postInstall = '' mv $out/bin/server $out/bin/authentik @@ -500,9 +638,10 @@ stdenvNoCC.mkDerivation { ''; passthru = { - inherit proxy; + inherit proxy apiGoVendorHook; outposts = callPackages ./outposts.nix { inherit (proxy) vendorHash; + inherit apiGoVendorHook; }; }; diff --git a/pkgs/by-name/au/authentik/proxy.nix b/pkgs/by-name/au/authentik/proxy.nix index 37cb9e88dc82..f1db56006460 100644 --- a/pkgs/by-name/au/authentik/proxy.nix +++ b/pkgs/by-name/au/authentik/proxy.nix @@ -1,6 +1,7 @@ { buildGoModule, authentik, + apiGoVendorHook, vendorHash, }: @@ -9,6 +10,8 @@ buildGoModule { inherit (authentik) version src; inherit vendorHash; + nativeBuildInputs = [ apiGoVendorHook ]; + env.CGO_ENABLED = 0; subPackages = [ "cmd/proxy" ]; diff --git a/pkgs/by-name/au/authentik/radius.nix b/pkgs/by-name/au/authentik/radius.nix index 4c44ecfe6d07..ba348a72515f 100644 --- a/pkgs/by-name/au/authentik/radius.nix +++ b/pkgs/by-name/au/authentik/radius.nix @@ -1,6 +1,7 @@ { buildGoModule, authentik, + apiGoVendorHook, vendorHash, }: @@ -9,6 +10,8 @@ buildGoModule { inherit (authentik) version src; inherit vendorHash; + nativeBuildInputs = [ apiGoVendorHook ]; + env.CGO_ENABLED = 0; subPackages = [ "cmd/radius" ]; From 46acdafc432f71b52ddc9a372b0ca95f3b3f80cb Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:34 +0100 Subject: [PATCH 075/239] csmith: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/cl/clfft/package.nix | 2 +- pkgs/by-name/cr/cryptopp/package.nix | 5 ++++- pkgs/by-name/cs/csmith/package.nix | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/cl/clfft/package.nix b/pkgs/by-name/cl/clfft/package.nix index b3d55f41e5c0..be470ec69e6b 100644 --- a/pkgs/by-name/cl/clfft/package.nix +++ b/pkgs/by-name/cl/clfft/package.nix @@ -46,7 +46,7 @@ stdenv.mkDerivation (finalAttrs: { ]; # https://github.com/clMathLibraries/clFFT/issues/237 - CXXFLAGS = "-std=c++98"; + env.CXXFLAGS = "-std=c++98"; meta = { description = "Library containing FFT functions written in OpenCL"; diff --git a/pkgs/by-name/cr/cryptopp/package.nix b/pkgs/by-name/cr/cryptopp/package.nix index a57949bea97c..bcc57aa3972a 100644 --- a/pkgs/by-name/cr/cryptopp/package.nix +++ b/pkgs/by-name/cr/cryptopp/package.nix @@ -42,7 +42,10 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; hardeningDisable = [ "fortify" ]; - CXXFLAGS = lib.optionals withOpenMP [ "-fopenmp" ]; + + env = lib.optionalAttrs withOpenMP { + CXXFLAGS = "-fopenmp"; + }; doCheck = true; diff --git a/pkgs/by-name/cs/csmith/package.nix b/pkgs/by-name/cs/csmith/package.nix index 261f5bf1bbf0..80830a36167a 100644 --- a/pkgs/by-name/cs/csmith/package.nix +++ b/pkgs/by-name/cs/csmith/package.nix @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { SysCPU ]); - CXXFLAGS = "-std=c++98"; + env.CXXFLAGS = "-std=c++98"; postInstall = '' substituteInPlace $out/bin/compiler_test.pl \ From b91fa37d8ad84404986aa7c04bb034861ffa7a34 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:38 +0100 Subject: [PATCH 076/239] darling-dmg: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/da/darling-dmg/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/da/darling-dmg/package.nix b/pkgs/by-name/da/darling-dmg/package.nix index 3a71869edd4b..9f5654adea22 100644 --- a/pkgs/by-name/da/darling-dmg/package.nix +++ b/pkgs/by-name/da/darling-dmg/package.nix @@ -47,7 +47,7 @@ stdenv.mkDerivation { ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ]; - CXXFLAGS = [ + env.CXXFLAGS = toString [ "-DCOMPILE_WITH_LZFSE=1" "-llzfse" ]; From bfe81087ddf9083094bf37226e6202661bfbf87e Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:38 +0100 Subject: [PATCH 077/239] draco: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/dr/draco/package.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/dr/draco/package.nix b/pkgs/by-name/dr/draco/package.nix index 24352556e86a..d17e8e471f63 100644 --- a/pkgs/by-name/dr/draco/package.nix +++ b/pkgs/by-name/dr/draco/package.nix @@ -61,9 +61,10 @@ stdenv.mkDerivation (finalAttrs: { "-DDRACO_TINYGLTF_PATH=${tinygltf}" ]; - CXXFLAGS = [ + env.CXXFLAGS = toString [ # error: expected ')' before 'value' in 'explicit GltfValue(uint8_t value)' - "-include cstdint" + "-include" + "cstdint" ]; passthru.updateScript = nix-update-script { }; From 8ac80db5b1b1b8914e9fdf3b5c4439f5a9d1d7c6 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:38 +0100 Subject: [PATCH 078/239] ecasound: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/ec/ecasound/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/ec/ecasound/package.nix b/pkgs/by-name/ec/ecasound/package.nix index b643c8aa7fe5..395c103a6a3c 100644 --- a/pkgs/by-name/ec/ecasound/package.nix +++ b/pkgs/by-name/ec/ecasound/package.nix @@ -61,7 +61,7 @@ stdenv.mkDerivation (finalAttrs: { strictDeps = true; - CXXFLAGS = "-std=c++11"; + env.CXXFLAGS = "-std=c++11"; configureFlags = [ "--enable-liblilv" "--with-extra-cppflags=-Dnullptr=0" From 152dad6ccf8f5db2423741171c3076794ac013d1 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:38 +0100 Subject: [PATCH 079/239] ekho: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/ek/ekho/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/ek/ekho/package.nix b/pkgs/by-name/ek/ekho/package.nix index f99ac8376ef9..93a928c216ce 100644 --- a/pkgs/by-name/ek/ekho/package.nix +++ b/pkgs/by-name/ek/ekho/package.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation (finalAttrs: { ./autogen.sh ''; - CXXFLAGS = [ + env.CXXFLAGS = toString [ "-O0" "-I${lib.getDev utf8cpp}/include/utf8cpp" ]; From 0303cba005142b484e6edfb143c61d2129890f94 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:39 +0100 Subject: [PATCH 080/239] ente-auth: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/en/ente-auth/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/en/ente-auth/package.nix b/pkgs/by-name/en/ente-auth/package.nix index da702d2a11eb..13a9da94e9c6 100644 --- a/pkgs/by-name/en/ente-auth/package.nix +++ b/pkgs/by-name/en/ente-auth/package.nix @@ -61,7 +61,7 @@ flutter332.buildFlutterApplication rec { ]; # https://github.com/juliansteenbakker/flutter_secure_storage/issues/965 - CXXFLAGS = [ "-Wno-deprecated-literal-operator" ]; + env.CXXFLAGS = toString [ "-Wno-deprecated-literal-operator" ]; # Based on https://github.com/ente-io/ente/blob/main/auth/linux/packaging/rpm/make_config.yaml # and https://github.com/ente-io/ente/blob/main/auth/linux/packaging/enteauth.appdata.xml From e71036e4c2ddf55334e8b169683d51aa430a33ca Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:39 +0100 Subject: [PATCH 081/239] eternal-terminal: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/et/eternal-terminal/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/et/eternal-terminal/package.nix b/pkgs/by-name/et/eternal-terminal/package.nix index 98d93face05c..cfcc629d5e26 100644 --- a/pkgs/by-name/et/eternal-terminal/package.nix +++ b/pkgs/by-name/et/eternal-terminal/package.nix @@ -45,9 +45,9 @@ stdenv.mkDerivation (finalAttrs: { "-DDISABLE_CRASH_LOG=TRUE" ]; - CXXFLAGS = lib.optionals stdenv.cc.isClang [ - "-std=c++17" - ]; + env = lib.optionalAttrs stdenv.cc.isClang { + CXXFLAGS = toString [ "-std=c++17" ]; + }; doCheck = true; From bf9bd3c0fdf044fc2dfad87fa45ff4f686eb3308 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:39 +0100 Subject: [PATCH 082/239] freeswitch: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/fr/freeswitch/package.nix | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/pkgs/by-name/fr/freeswitch/package.nix b/pkgs/by-name/fr/freeswitch/package.nix index 1b43feeca048..c80de735f401 100644 --- a/pkgs/by-name/fr/freeswitch/package.nix +++ b/pkgs/by-name/fr/freeswitch/package.nix @@ -159,17 +159,19 @@ stdenv.mkDerivation (finalAttrs: { enableParallelBuilding = true; - env.NIX_CFLAGS_COMPILE = toString [ - "-Wno-error" - # https://github.com/signalwire/freeswitch/issues/2495 - "-Wno-incompatible-pointer-types" - ]; + env = { + NIX_CFLAGS_COMPILE = toString [ + "-Wno-error" + # https://github.com/signalwire/freeswitch/issues/2495 + "-Wno-incompatible-pointer-types" + ]; - # Using c++14 because of build error - # gsm_at.h:94:32: error: ISO C++17 does not allow dynamic exception specifications - CXXFLAGS = "-std=c++14"; + # Using c++14 because of build error + # gsm_at.h:94:32: error: ISO C++17 does not allow dynamic exception specifications + CXXFLAGS = "-std=c++14"; - CFLAGS = "-D_ANSI_SOURCE"; + CFLAGS = "-D_ANSI_SOURCE"; + }; hardeningDisable = [ "format" ]; From d404ae2ef9fa4677cb091b2a29a4fc8b6871bb5c Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:40 +0100 Subject: [PATCH 083/239] frr: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/fr/frr/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/fr/frr/package.nix b/pkgs/by-name/fr/frr/package.nix index fd0dc3eebf34..ef3a202c00c6 100644 --- a/pkgs/by-name/fr/frr/package.nix +++ b/pkgs/by-name/fr/frr/package.nix @@ -91,7 +91,7 @@ stdenv.mkDerivation (finalAttrs: { # Without the std explicitly set, we may run into abseil-cpp # compilation errors. - CXXFLAGS = "-std=gnu++23"; + env.CXXFLAGS = "-std=gnu++23"; nativeBuildInputs = [ autoreconfHook From 66b4dfc70b2170046fac5c9b70dffbe146bf069a Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:40 +0100 Subject: [PATCH 084/239] git-crypt: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/gi/git-crypt/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/gi/git-crypt/package.nix b/pkgs/by-name/gi/git-crypt/package.nix index 46ff7e4602d2..aeb5635f37a4 100644 --- a/pkgs/by-name/gi/git-crypt/package.nix +++ b/pkgs/by-name/gi/git-crypt/package.nix @@ -42,7 +42,7 @@ stdenv.mkDerivation (finalAttrs: { ]; # https://github.com/AGWA/git-crypt/issues/232 - CXXFLAGS = [ + env.CXXFLAGS = toString [ "-DOPENSSL_API_COMPAT=0x30000000L" ]; From 02c755e4737d9f69796faef5e576ae488b893c3c Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:40 +0100 Subject: [PATCH 085/239] gpuvis: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/gp/gpuvis/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/gp/gpuvis/package.nix b/pkgs/by-name/gp/gpuvis/package.nix index 802627e8eb6a..012ad4ad4541 100644 --- a/pkgs/by-name/gp/gpuvis/package.nix +++ b/pkgs/by-name/gp/gpuvis/package.nix @@ -41,7 +41,7 @@ stdenv.mkDerivation (finalAttrs: { freetype ]; - CXXFLAGS = [ + env.CXXFLAGS = toString [ # GCC 13: error: 'uint32_t' has not been declared "-include cstdint" ]; From 66efd8298ad0479dd4a87600c04ba8ffd065d9a5 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:40 +0100 Subject: [PATCH 086/239] hackedbox: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/ha/hackedbox/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/ha/hackedbox/package.nix b/pkgs/by-name/ha/hackedbox/package.nix index a53d96c0ff3e..bce90fa612ad 100644 --- a/pkgs/by-name/ha/hackedbox/package.nix +++ b/pkgs/by-name/ha/hackedbox/package.nix @@ -33,7 +33,7 @@ stdenv.mkDerivation (finalAttrs: { pkg-config ]; - CXXFLAGS = "-std=c++98"; + env.CXXFLAGS = "-std=c++98"; buildInputs = [ freetype From 39caf11269b4ee8862cf79add53da91227f35cdf Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:40 +0100 Subject: [PATCH 087/239] helm: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/he/helm/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/he/helm/package.nix b/pkgs/by-name/he/helm/package.nix index 96c3fa7b7457..1d71ea4ee24a 100644 --- a/pkgs/by-name/he/helm/package.nix +++ b/pkgs/by-name/he/helm/package.nix @@ -49,7 +49,7 @@ stdenv.mkDerivation (finalAttrs: { ]; nativeBuildInputs = [ pkg-config ]; - CXXFLAGS = [ + env.CXXFLAGS = toString [ "-DHAVE_LROUND" "-fpermissive" ]; From 9d5849d9badc8ca7f85dd9d9ba66f21c87e5448c Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:41 +0100 Subject: [PATCH 088/239] hyperrogue: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/hy/hyperrogue/package.nix | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/hy/hyperrogue/package.nix b/pkgs/by-name/hy/hyperrogue/package.nix index e6b287554de2..cd0492506027 100644 --- a/pkgs/by-name/hy/hyperrogue/package.nix +++ b/pkgs/by-name/hy/hyperrogue/package.nix @@ -32,13 +32,13 @@ stdenv.mkDerivation (finalAttrs: { HYPERROGUE_USE_GLEW = 1; HYPERROGUE_USE_PNG = 1; HYPERROGUE_USE_ROGUEVIZ = 1; - }; - CXXFLAGS = [ - "-I${lib.getDev SDL}/include/SDL" - "-DHYPERPATH='\"${placeholder "out"}/share/hyperrogue/\"'" - "-DRESOURCEDESTDIR=HYPERPATH" - ]; + CXXFLAGS = toString [ + "-I${lib.getDev SDL}/include/SDL" + "-DHYPERPATH='\"${placeholder "out"}/share/hyperrogue/\"'" + "-DRESOURCEDESTDIR=HYPERPATH" + ]; + }; nativeBuildInputs = [ pkg-config From 0944496c5e4c7528091754d74c170c01eee1548a Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:41 +0100 Subject: [PATCH 089/239] igprof: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/ig/igprof/package.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/ig/igprof/package.nix b/pkgs/by-name/ig/igprof/package.nix index 3cb0885b43f7..a0fc1c0a5e58 100644 --- a/pkgs/by-name/ig/igprof/package.nix +++ b/pkgs/by-name/ig/igprof/package.nix @@ -32,7 +32,8 @@ stdenv.mkDerivation (finalAttrs: { pcre ]; nativeBuildInputs = [ cmake ]; - CXXFLAGS = [ + + env.CXXFLAGS = toString [ "-fPIC" "-O2" "-w" From 496b425dccc4077dc4118c24b10efce1bdcf5956 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:41 +0100 Subject: [PATCH 090/239] libe57format: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/li/libe57format/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/li/libe57format/package.nix b/pkgs/by-name/li/libe57format/package.nix index fe9d3bc5cbb2..892083d77d6a 100644 --- a/pkgs/by-name/li/libe57format/package.nix +++ b/pkgs/by-name/li/libe57format/package.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-JARpxp6Z2VioBfY0pZSyQU2mG/EllbaF3qteSFM9u8o="; }; - CXXFLAGS = [ + env.CXXFLAGS = toString [ # GCC 13: error: 'int16_t' has not been declared in 'std' "-include cstdint" ]; From ac07ac7f4e39fbe8fedf799db9c229166965bc9c Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:41 +0100 Subject: [PATCH 091/239] libfolia: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/li/libfolia/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/li/libfolia/package.nix b/pkgs/by-name/li/libfolia/package.nix index 75612f075e9f..5269e5c5a101 100644 --- a/pkgs/by-name/li/libfolia/package.nix +++ b/pkgs/by-name/li/libfolia/package.nix @@ -41,7 +41,7 @@ stdenv.mkDerivation (finalAttrs: { ]; # compat with icu61+ https://github.com/unicode-org/icu/blob/release-64-2/icu4c/readme.html#L554 - CXXFLAGS = [ "-DU_USING_ICU_NAMESPACE=1" ]; + env.CXXFLAGS = toString [ "-DU_USING_ICU_NAMESPACE=1" ]; passthru = { updateScript = gitUpdater { rev-prefix = "v"; }; From 45049389211d99f0a13462067d42993b007ff3e2 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 19:44:06 +0100 Subject: [PATCH 092/239] termcolor: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/te/termcolor/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/te/termcolor/package.nix b/pkgs/by-name/te/termcolor/package.nix index f2474f74b3a7..49e3f5d0cecf 100644 --- a/pkgs/by-name/te/termcolor/package.nix +++ b/pkgs/by-name/te/termcolor/package.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ cmake ]; cmakeFlags = [ "-DTERMCOLOR_TESTS=ON" ]; - CXXFLAGS = [ + env.CXXFLAGS = toString [ # GCC 13: error: 'uint8_t' has not been declared "-include cstdint" ]; From d4e30fa3a28bb0a515d6bf3adac890a5ee306547 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 19:44:41 +0100 Subject: [PATCH 093/239] mariadb*: move CXXFLAGS into env for structuredAttrs --- pkgs/servers/sql/mariadb/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/servers/sql/mariadb/default.nix b/pkgs/servers/sql/mariadb/default.nix index 294876c28d17..ecb8349406a8 100644 --- a/pkgs/servers/sql/mariadb/default.nix +++ b/pkgs/servers/sql/mariadb/default.nix @@ -365,7 +365,9 @@ let rm -r "$out"/OFF ''; - CXXFLAGS = lib.optionalString stdenv.hostPlatform.isi686 "-fpermissive"; + env = lib.optionalAttrs stdenv.hostPlatform.isi686 { + CXXFLAGS = "-fpermissive"; + }; passthru = { inherit client; From 362229f0957c807c281535f75e8f3922b64dd1e1 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:42 +0100 Subject: [PATCH 094/239] libpar2: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/li/libpar2/package.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/li/libpar2/package.nix b/pkgs/by-name/li/libpar2/package.nix index 2b1a3b69ebcf..2d29d4d81eb7 100644 --- a/pkgs/by-name/li/libpar2/package.nix +++ b/pkgs/by-name/li/libpar2/package.nix @@ -20,7 +20,9 @@ stdenv.mkDerivation (finalAttrs: { patches = [ ./libpar2-0.4-external-verification.patch ]; - CXXFLAGS = lib.optionalString stdenv.cc.isClang "-std=c++11"; + env = lib.optionalAttrs stdenv.cc.isClang { + CXXFLAGS = "-std=c++11"; + }; meta = { homepage = "https://parchive.sourceforge.net/"; From 79731129d52da9818b9e3ab28a064ba0a301898e Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:42 +0100 Subject: [PATCH 095/239] libretrack: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/li/libretrack/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/li/libretrack/package.nix b/pkgs/by-name/li/libretrack/package.nix index 22e4c7198518..28a007312faa 100644 --- a/pkgs/by-name/li/libretrack/package.nix +++ b/pkgs/by-name/li/libretrack/package.nix @@ -32,7 +32,7 @@ flutter329.buildFlutterApplication rec { ]; # https://github.com/juliansteenbakker/flutter_secure_storage/issues/965 - CXXFLAGS = [ "-Wno-deprecated-literal-operator" ]; + env.CXXFLAGS = toString [ "-Wno-deprecated-literal-operator" ]; postInstall = '' substituteInPlace snap/gui/org.proninyaroslav.libretrack.desktop \ From 232e0db9c636c122b3dc62568a45d3ceb3087297 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:42 +0100 Subject: [PATCH 096/239] libthreadar: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/li/libthreadar/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/li/libthreadar/package.nix b/pkgs/by-name/li/libthreadar/package.nix index 60b786662501..60d35b030630 100644 --- a/pkgs/by-name/li/libthreadar/package.nix +++ b/pkgs/by-name/li/libthreadar/package.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation (finalAttrs: { buildInputs = [ gcc-unwrapped ]; - CXXFLAGS = [ "-std=c++14" ]; + env.CXXFLAGS = toString [ "-std=c++14" ]; configureFlags = [ "--disable-build-html" From 6971f813a3886bfd9063d3bc30ae456bca4d8ee1 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:43 +0100 Subject: [PATCH 097/239] log4shib: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/lo/log4shib/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/lo/log4shib/package.nix b/pkgs/by-name/lo/log4shib/package.nix index ef90d78fecbd..3b421146e8cb 100644 --- a/pkgs/by-name/lo/log4shib/package.nix +++ b/pkgs/by-name/lo/log4shib/package.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation { nativeBuildInputs = [ autoreconfHook ]; - CXXFLAGS = "-std=c++11"; + env.CXXFLAGS = "-std=c++11"; meta = { description = "Forked version of log4cpp that has been created for the Shibboleth project"; From 0d095c71e308c9b3c15d58e4fdad76ccbefb9fb9 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:43 +0100 Subject: [PATCH 098/239] mainsail: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/ma/mainsail/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/ma/mainsail/package.nix b/pkgs/by-name/ma/mainsail/package.nix index b9d6961fc1f9..2118f7775d5a 100644 --- a/pkgs/by-name/ma/mainsail/package.nix +++ b/pkgs/by-name/ma/mainsail/package.nix @@ -21,7 +21,7 @@ buildNpmPackage rec { nodejs = nodejs_20; # Prevent Cypress binary download. - CYPRESS_INSTALL_BINARY = 0; + env.CYPRESS_INSTALL_BINARY = 0; preConfigure = '' # Make the build.zip target do nothing, since we will just copy these files later. From 15fbd84d02a76f32eddcd33b9af15f291d1326f1 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:43 +0100 Subject: [PATCH 099/239] mhabit: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/mh/mhabit/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/mh/mhabit/package.nix b/pkgs/by-name/mh/mhabit/package.nix index 82aec6204858..4d7552d03a40 100644 --- a/pkgs/by-name/mh/mhabit/package.nix +++ b/pkgs/by-name/mh/mhabit/package.nix @@ -35,7 +35,7 @@ flutter338.buildFlutterApplication { ]; # https://github.com/juliansteenbakker/flutter_secure_storage/issues/965 - CXXFLAGS = [ "-Wno-deprecated-literal-operator" ]; + env.CXXFLAGS = toString [ "-Wno-deprecated-literal-operator" ]; postInstall = '' install -Dm644 flatpak/io.github.friesi23.mhabit.desktop --target-directory=$out/share/applications From 7fe94a72c6defab4b5e59c722549d621a8da5c56 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:43 +0100 Subject: [PATCH 100/239] mpd: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/mp/mpd/package.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/mp/mpd/package.nix b/pkgs/by-name/mp/mpd/package.nix index 850a8880a5d9..51df5dbb4064 100644 --- a/pkgs/by-name/mp/mpd/package.nix +++ b/pkgs/by-name/mp/mpd/package.nix @@ -257,9 +257,11 @@ stdenv.mkDerivation (finalAttrs: { ] ++ lib.optional (builtins.elem "documentation" features_) "man"; - CXXFLAGS = lib.optionals stdenv.hostPlatform.isDarwin [ - "-D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=0" - ]; + env = lib.optionalAttrs stdenv.hostPlatform.isDarwin { + CXXFLAGS = toString [ + "-D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=0" + ]; + }; mesonFlags = [ (lib.mesonBool "test" true) From 05de0a91873036ac07da4457fc586131c65ff8cb Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:44 +0100 Subject: [PATCH 101/239] ns-3: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/ns/ns-3/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/ns/ns-3/package.nix b/pkgs/by-name/ns/ns-3/package.nix index ffeac414ee46..64f4beb62aa4 100644 --- a/pkgs/by-name/ns/ns-3/package.nix +++ b/pkgs/by-name/ns/ns-3/package.nix @@ -133,7 +133,7 @@ stdenv.mkDerivation (finalAttrs: { "build" + lib.optionalString enableDoxygen " doxygen" + lib.optionalString withManual "sphinx"; # to prevent fatal error: 'backward_warning.h' file not found - CXXFLAGS = "-D_GLIBCXX_PERMIT_BACKWARD_HASH"; + env.CXXFLAGS = "-D_GLIBCXX_PERMIT_BACKWARD_HASH"; # Make generated python bindings discoverable in customized python environment passthru = { From aa81bc05000225d3e271121631212feed4e49ddd Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:44 +0100 Subject: [PATCH 102/239] pdfslicer: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/pd/pdfslicer/package.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/pd/pdfslicer/package.nix b/pkgs/by-name/pd/pdfslicer/package.nix index b2834f28cdcf..de9635d0b3bb 100644 --- a/pkgs/by-name/pd/pdfslicer/package.nix +++ b/pkgs/by-name/pd/pdfslicer/package.nix @@ -56,9 +56,10 @@ stdenv.mkDerivation (finalAttrs: { qpdf ]; - CXXFLAGS = + env = lib.optionalAttrs (stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.version "13") { # Pending upstream compatibility with GCC 13 - lib.optional (stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.version "13") "-Wno-changes-meaning"; + CXXFLAGS = "-Wno-changes-meaning"; + }; meta = { description = "Simple application to extract, merge, rotate and reorder pages of PDF documents"; From f2d92cc9bab5bfffd7170332faebc274cae1cb94 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:44 +0100 Subject: [PATCH 103/239] proj: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/pr/proj/package.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/pr/proj/package.nix b/pkgs/by-name/pr/proj/package.nix index 610fcb26d9bf..7c2529f008fe 100644 --- a/pkgs/by-name/pr/proj/package.nix +++ b/pkgs/by-name/pr/proj/package.nix @@ -59,9 +59,11 @@ stdenv.mkDerivation (finalAttrs: { "-DNLOHMANN_JSON_ORIGIN=external" "-DEXE_SQLITE3=${buildPackages.sqlite}/bin/sqlite3" ]; - CXXFLAGS = [ + + env.CXXFLAGS = toString [ # GCC 13: error: 'int64_t' in namespace 'std' does not name a type - "-include cstdint" + "-include" + "cstdint" ]; preCheck = From a94ae169518f71d87befbad09b44765292243b73 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:44 +0100 Subject: [PATCH 104/239] rapidfuzz-cpp: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/ra/rapidfuzz-cpp/package.nix | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/ra/rapidfuzz-cpp/package.nix b/pkgs/by-name/ra/rapidfuzz-cpp/package.nix index 3df57342a13e..348a309d47a3 100644 --- a/pkgs/by-name/ra/rapidfuzz-cpp/package.nix +++ b/pkgs/by-name/ra/rapidfuzz-cpp/package.nix @@ -26,10 +26,13 @@ stdenv.mkDerivation (finalAttrs: { "-DRAPIDFUZZ_BUILD_TESTING=ON" ]; - CXXFLAGS = lib.optionals stdenv.cc.isClang [ - # error: no member named 'fill' in namespace 'std' - "-include algorithm" - ]; + env = lib.optionalAttrs stdenv.cc.isClang { + CXXFLAGS = toString [ + # error: no member named 'fill' in namespace 'std' + "-include" + "algorithm" + ]; + }; nativeCheckInputs = [ catch2_3 From 5f4e9b102cd7d95b4afc078e7671673e69dfe78c Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:44 +0100 Subject: [PATCH 105/239] scite: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/sc/scite/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/sc/scite/package.nix b/pkgs/by-name/sc/scite/package.nix index 94865c79ca06..c73a7f6b132e 100644 --- a/pkgs/by-name/sc/scite/package.nix +++ b/pkgs/by-name/sc/scite/package.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation (finalAttrs: { "prefix=${placeholder "out"}" ]; - CXXFLAGS = [ + env.CXXFLAGS = toString [ # GCC 13: error: 'intptr_t' does not name a type "-include cstdint" "-include system_error" From 523fe281c742f08a79095742183bb20282825036 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:45 +0100 Subject: [PATCH 106/239] server-box: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/se/server-box/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/se/server-box/package.nix b/pkgs/by-name/se/server-box/package.nix index b63b2cd2975f..a288eb2d645a 100644 --- a/pkgs/by-name/se/server-box/package.nix +++ b/pkgs/by-name/se/server-box/package.nix @@ -36,7 +36,7 @@ flutter338.buildFlutterApplication { ]; # https://github.com/juliansteenbakker/flutter_secure_storage/issues/965 - CXXFLAGS = [ "-Wno-deprecated-literal-operator" ]; + env.CXXFLAGS = toString [ "-Wno-deprecated-literal-operator" ]; desktopItems = [ (makeDesktopItem { From 4121348e7352e5706ce33bc03a4b5b1f6b276500 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:45 +0100 Subject: [PATCH 107/239] sirius: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/si/sirius/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/si/sirius/package.nix b/pkgs/by-name/si/sirius/package.nix index d352d6d571fd..102acd62b3ff 100644 --- a/pkgs/by-name/si/sirius/package.nix +++ b/pkgs/by-name/si/sirius/package.nix @@ -133,7 +133,7 @@ stdenv.mkDerivation (finalAttrs: { ] ); - CXXFLAGS = [ + env.CXXFLAGS = toString [ # GCC 13: error: 'uintptr_t' in namespace 'std' does not name a type "-include cstdint" ]; From 5b8fdef333a43ec475171009368bcc740df65e0f Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:45 +0100 Subject: [PATCH 108/239] sphinxsearch: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/sp/sphinxsearch/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/sp/sphinxsearch/package.nix b/pkgs/by-name/sp/sphinxsearch/package.nix index 8be034f42a33..87cd529882aa 100644 --- a/pkgs/by-name/sp/sphinxsearch/package.nix +++ b/pkgs/by-name/sp/sphinxsearch/package.nix @@ -40,7 +40,7 @@ stdenv.mkDerivation (finalAttrs: { expat ]; - CXXFLAGS = "-std=c++98"; + env.CXXFLAGS = "-std=c++98"; meta = { description = "Open source full text search server"; From 45ec9aaeff4ec6c463130d41c8f2ed1d4cbb8a76 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:45 +0100 Subject: [PATCH 109/239] superTuxKart: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/su/superTuxKart/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/su/superTuxKart/package.nix b/pkgs/by-name/su/superTuxKart/package.nix index 8ece4444bad2..b6fae7be863e 100644 --- a/pkgs/by-name/su/superTuxKart/package.nix +++ b/pkgs/by-name/su/superTuxKart/package.nix @@ -125,7 +125,7 @@ stdenv.mkDerivation (finalAttrs: { "-DOpenGL_GL_PREFERENCE=GLVND" ]; - CXXFLAGS = [ + env.CXXFLAGS = toString [ # GCC 13: error: 'snprintf' was not declared in this scope "-include cstdio" # GCC 13: error: 'runtime_error' is not a member of 'std' From 9e4fa4d3f98ecb8fbaedd37dc5fc7141f90f9083 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:46 +0100 Subject: [PATCH 110/239] ucommon: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/uc/ucommon/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/uc/ucommon/package.nix b/pkgs/by-name/uc/ucommon/package.nix index a4e623a24d81..1e5830224512 100644 --- a/pkgs/by-name/uc/ucommon/package.nix +++ b/pkgs/by-name/uc/ucommon/package.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ pkg-config ]; # use C++14 Standard until error handling code gets updated upstream - CXXFLAGS = [ "-std=c++14" ]; + env.CXXFLAGS = toString [ "-std=c++14" ]; # disable flaky networking test postPatch = '' From bd4d681f80ef428a855b1c662364cd5ee86ae41c Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:58:46 +0100 Subject: [PATCH 111/239] zpaq: move CXXFLAGS into env for structuredAttrs --- pkgs/by-name/zp/zpaq/package.nix | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/pkgs/by-name/zp/zpaq/package.nix b/pkgs/by-name/zp/zpaq/package.nix index ee9ebd2a53e2..38c1bebead71 100644 --- a/pkgs/by-name/zp/zpaq/package.nix +++ b/pkgs/by-name/zp/zpaq/package.nix @@ -20,14 +20,20 @@ stdenv.mkDerivation (finalAttrs: { perl # for pod2man ]; - CPPFLAGS = [ - "-Dunix" - ] - ++ lib.optional (!stdenv.hostPlatform.isi686 && !stdenv.hostPlatform.isx86_64) "-DNOJIT"; - CXXFLAGS = [ - "-O3" - "-DNDEBUG" - ]; + env = { + CPPFLAGS = toString ( + [ + "-Dunix" + ] + ++ lib.optionals (!stdenv.hostPlatform.isi686 && !stdenv.hostPlatform.isx86_64) [ + "-DNOJIT" + ] + ); + CXXFLAGS = toString [ + "-O3" + "-DNDEBUG" + ]; + }; enableParallelBuilding = true; From 709637172f57132e9f7af8c76ac9dd673a77e802 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:59:13 +0100 Subject: [PATCH 112/239] zynaddsubfx*: move CXXFLAGS into env for structuredAttrs --- pkgs/applications/audio/zynaddsubfx/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/audio/zynaddsubfx/default.nix b/pkgs/applications/audio/zynaddsubfx/default.nix index 1a76c7b2acbc..47f52d27c486 100644 --- a/pkgs/applications/audio/zynaddsubfx/default.nix +++ b/pkgs/applications/audio/zynaddsubfx/default.nix @@ -139,7 +139,7 @@ stdenv.mkDerivation rec { # Find FLTK without requiring an OpenGL library in buildInputs ++ lib.optional (guiModule == "fltk") "-DFLTK_SKIP_OPENGL=ON"; - CXXFLAGS = [ + env.CXXFLAGS = toString [ # GCC 13: error: 'uint8_t' does not name a type "-include cstdint" ]; From 2df13ea08b055bf9a6a8ccb5277f5ffa85908c98 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:59:21 +0100 Subject: [PATCH 113/239] zcash: move CXXFLAGS into env for structuredAttrs --- pkgs/applications/blockchains/zcash/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/blockchains/zcash/default.nix b/pkgs/applications/blockchains/zcash/default.nix index 5b019e254e7f..1dfbd0f39559 100644 --- a/pkgs/applications/blockchains/zcash/default.nix +++ b/pkgs/applications/blockchains/zcash/default.nix @@ -69,7 +69,7 @@ stdenv.mkDerivation rec { zeromq ]; - CXXFLAGS = [ + env.CXXFLAGS = toString [ "-I${lib.getDev utf8cpp}/include/utf8cpp" "-I${lib.getDev cxx-rs}/include" ]; From f83338090b9db8a56a9b302fb5c8ea881be6fb07 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:59:30 +0100 Subject: [PATCH 114/239] shogun: move CXXFLAGS into env for structuredAttrs --- pkgs/applications/science/machine-learning/shogun/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/science/machine-learning/shogun/default.nix b/pkgs/applications/science/machine-learning/shogun/default.nix index e1e7c4d8a0ae..fae5f8a00782 100644 --- a/pkgs/applications/science/machine-learning/shogun/default.nix +++ b/pkgs/applications/science/machine-learning/shogun/default.nix @@ -191,7 +191,7 @@ stdenv.mkDerivation (finalAttrs: { (lib.cmakeBool "USE_SVMLIGHT" withSvmLight) ]; - CXXFLAGS = "-faligned-new"; + env.CXXFLAGS = "-faligned-new"; doCheck = true; From 3618fe85216e61fa9c08bb3105048661d1262096 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:59:39 +0100 Subject: [PATCH 115/239] monotone: move CXXFLAGS into env for structuredAttrs --- pkgs/applications/version-management/monotone/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/version-management/monotone/default.nix b/pkgs/applications/version-management/monotone/default.nix index 7a4fdb9d0811..d72a5d37a394 100644 --- a/pkgs/applications/version-management/monotone/default.nix +++ b/pkgs/applications/version-management/monotone/default.nix @@ -71,7 +71,7 @@ stdenv.mkDerivation rec { {} + ''; - CXXFLAGS = " --std=c++11 "; + env.CXXFLAGS = " --std=c++11 "; nativeBuildInputs = [ pkg-config From a91457db78545ecb49cd96713a54578cfc514097 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 18:59:50 +0100 Subject: [PATCH 116/239] opencolorio: move CXXFLAGS into env for structuredAttrs --- pkgs/development/libraries/opencolorio/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/libraries/opencolorio/default.nix b/pkgs/development/libraries/opencolorio/default.nix index 5ffa44c14037..64c6ef1defee 100644 --- a/pkgs/development/libraries/opencolorio/default.nix +++ b/pkgs/development/libraries/opencolorio/default.nix @@ -68,7 +68,7 @@ stdenv.mkDerivation rec { # Gcc blindly tries to optimize all float operations instead of just marked ones. # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122304 - CXXFLAGS = "-ffp-contract=on"; + env.CXXFLAGS = "-ffp-contract=on"; cmakeFlags = [ "-DOCIO_INSTALL_EXT_PACKAGES=NONE" "-DOCIO_USE_SSE2NEON=OFF" From 52ad3e180f67afe85d8cd73c620ec87be169aa9b Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 19:45:03 +0100 Subject: [PATCH 117/239] antlr2: move CXXFLAGS into env for structuredAttrs --- pkgs/development/tools/parsing/antlr/2.7.7.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/development/tools/parsing/antlr/2.7.7.nix b/pkgs/development/tools/parsing/antlr/2.7.7.nix index dc476806e1bb..cee3ff1b2e32 100644 --- a/pkgs/development/tools/parsing/antlr/2.7.7.nix +++ b/pkgs/development/tools/parsing/antlr/2.7.7.nix @@ -15,7 +15,9 @@ stdenv.mkDerivation rec { patches = [ ./2.7.7-fixes.patch ]; buildInputs = [ jdk ]; - CXXFLAGS = lib.optionalString stdenv.hostPlatform.isDarwin "-D_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION"; + env = lib.optionalAttrs stdenv.hostPlatform.isDarwin { + CXXFLAGS = "-D_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION"; + }; meta = { description = "Powerful parser generator"; From 7a5c5b109a30aea989f3b88301b09fd8b5feaeba Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Sun, 15 Feb 2026 20:17:08 +0100 Subject: [PATCH 118/239] curl*: move CXX and CXXCPP into env for structuredAttrs --- pkgs/by-name/cu/curlMinimal/package.nix | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/cu/curlMinimal/package.nix b/pkgs/by-name/cu/curlMinimal/package.nix index f41dec189091..978c494b6eea 100644 --- a/pkgs/by-name/cu/curlMinimal/package.nix +++ b/pkgs/by-name/cu/curlMinimal/package.nix @@ -119,7 +119,11 @@ stdenv.mkDerivation (finalAttrs: { strictDeps = true; - env = lib.optionalAttrs (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isStatic) { + env = { + CXX = "${stdenv.cc.targetPrefix}c++"; + CXXCPP = "${stdenv.cc.targetPrefix}c++ -E"; + } + // lib.optionalAttrs (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isStatic) { # Not having this causes curl’s `configure` script to fail with static builds on Darwin because # some of curl’s propagated inputs need libiconv. NIX_LDFLAGS = "-liconv"; @@ -209,9 +213,6 @@ stdenv.mkDerivation (finalAttrs: { "--with-ca-path=/etc/ssl/certs" ]; - CXX = "${stdenv.cc.targetPrefix}c++"; - CXXCPP = "${stdenv.cc.targetPrefix}c++ -E"; - # takes 14 minutes on a 24 core and because many other packages depend on curl # they cannot be run concurrently and are a bottleneck # tests are available in passthru.tests.withCheck From d24a440a410371e03ecaa3e69fa029fca3a8fd9c Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Tue, 17 Feb 2026 13:53:27 +0100 Subject: [PATCH 119/239] chickenPackages_4.eggDerivation: move env variables into env --- pkgs/development/compilers/chicken/4/eggDerivation.nix | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pkgs/development/compilers/chicken/4/eggDerivation.nix b/pkgs/development/compilers/chicken/4/eggDerivation.nix index 7e334782fe78..a4eb19b8a927 100644 --- a/pkgs/development/compilers/chicken/4/eggDerivation.nix +++ b/pkgs/development/compilers/chicken/4/eggDerivation.nix @@ -26,10 +26,13 @@ stdenv.mkDerivation ( nativeBuildInputs = [ makeWrapper ]; buildInputs = [ chicken ]; - CSC_OPTIONS = lib.concatStringsSep " " cscOptions; + env = { + CSC_OPTIONS = lib.concatStringsSep " " cscOptions; - CHICKEN_REPOSITORY = libPath; - CHICKEN_INSTALL_PREFIX = "$out"; + CHICKEN_REPOSITORY = libPath; + CHICKEN_INSTALL_PREFIX = "$out"; + } + // (args.env or { }); installPhase = '' runHook preInstall From bdf6477108865a812a7f54f20a757a9377b8ec80 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Tue, 17 Feb 2026 13:53:37 +0100 Subject: [PATCH 120/239] chickenPackages_5.eggDerivation: move env variables into env --- pkgs/development/compilers/chicken/5/eggDerivation.nix | 5 ++++- pkgs/development/compilers/chicken/5/overrides.nix | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/pkgs/development/compilers/chicken/5/eggDerivation.nix b/pkgs/development/compilers/chicken/5/eggDerivation.nix index 6629a30ad973..dcb8e8dbd6f4 100644 --- a/pkgs/development/compilers/chicken/5/eggDerivation.nix +++ b/pkgs/development/compilers/chicken/5/eggDerivation.nix @@ -41,7 +41,10 @@ in strictDeps = true; - CSC_OPTIONS = lib.concatStringsSep " " cscOptions; + env = { + CSC_OPTIONS = lib.concatStringsSep " " cscOptions; + } + // (args.env or { }); buildPhase = '' runHook preBuild diff --git a/pkgs/development/compilers/chicken/5/overrides.nix b/pkgs/development/compilers/chicken/5/overrides.nix index ef48b8c0232c..1c3d7776ed94 100644 --- a/pkgs/development/compilers/chicken/5/overrides.nix +++ b/pkgs/development/compilers/chicken/5/overrides.nix @@ -24,7 +24,7 @@ let broken = addMetaAttrs { broken = true; }; brokenOnDarwin = addMetaAttrs { broken = stdenv.hostPlatform.isDarwin; }; addToCscOptions = opt: old: { - CSC_OPTIONS = lib.concatStringsSep " " ([ old.CSC_OPTIONS or "" ] ++ lib.toList opt); + env.CSC_OPTIONS = lib.concatStringsSep " " ([ old.env.CSC_OPTIONS or "" ] ++ lib.toList opt); }; in { From 38774ce052bdd853ff28006ba79d10536a18f365 Mon Sep 17 00:00:00 2001 From: sweenu Date: Tue, 17 Feb 2026 14:39:16 +0100 Subject: [PATCH 121/239] nixos/n8n: add maintainers --- nixos/modules/services/misc/n8n.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/nixos/modules/services/misc/n8n.nix b/nixos/modules/services/misc/n8n.nix index edb387fa8bca..8fdd4ccba0e1 100644 --- a/nixos/modules/services/misc/n8n.nix +++ b/nixos/modules/services/misc/n8n.nix @@ -32,6 +32,11 @@ let ); in { + meta.maintainers = with lib.maintainers; [ + sweenu + gepbird + ]; + imports = [ (lib.mkRemovedOptionModule [ "services" "n8n" "settings" ] "Use services.n8n.environment instead.") (lib.mkRemovedOptionModule [ From f6e9bd071afbb70618d097aa0e1a05e2d50a39f0 Mon Sep 17 00:00:00 2001 From: sweenu Date: Tue, 17 Feb 2026 14:41:17 +0100 Subject: [PATCH 122/239] nixosTests.n8n: add maintainers --- nixos/tests/n8n.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/nixos/tests/n8n.nix b/nixos/tests/n8n.nix index d3226e2ed0f4..5f2dcc0c3268 100644 --- a/nixos/tests/n8n.nix +++ b/nixos/tests/n8n.nix @@ -6,7 +6,11 @@ let in { name = "n8n"; - meta.maintainers = with lib.maintainers; [ k900 ]; + meta.maintainers = with lib.maintainers; [ + k900 + sweenu + gepbird + ]; node.pkgsReadOnly = false; From 2932faabc2878cdff824eee4297039a1c5acba9c Mon Sep 17 00:00:00 2001 From: sweenu Date: Tue, 17 Feb 2026 14:45:17 +0100 Subject: [PATCH 123/239] nixos/n8n: move N8N_CUSTOM_EXTENSIONS to options --- nixos/modules/services/misc/n8n.nix | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/nixos/modules/services/misc/n8n.nix b/nixos/modules/services/misc/n8n.nix index 8fdd4ccba0e1..d99541d28825 100644 --- a/nixos/modules/services/misc/n8n.nix +++ b/nixos/modules/services/misc/n8n.nix @@ -133,6 +133,14 @@ in When enabled, n8n sends notifications of new versions and security updates. ''; }; + N8N_CUSTOM_EXTENSIONS = lib.mkOption { + internal = true; + type = with lib.types; nullOr path; + default = if cfg.customNodes != [ ] then toString customNodesDir else null; + description = '' + Specify the path to directories containing your custom nodes. + ''; + }; }; }; default = { }; @@ -149,15 +157,12 @@ in // { HOME = cfg.environment.N8N_USER_FOLDER; } - // lib.optionalAttrs (cfg.customNodes != [ ]) { - N8N_CUSTOM_EXTENSIONS = toString customNodesDir; - } // n8nEnv.fileBasedTransformed; serviceConfig = { Type = "simple"; ExecStart = lib.getExe cfg.package; Restart = "on-failure"; - StateDirectory = "n8n"; + StateDirectory = baseNameOf cfg.environment.N8N_USER_FOLDER; LoadCredential = lib.mapAttrsToList ( varName: secretPath: "${envVarToCredName varName}:${secretPath}" From f8ec773b6058107dffd7f5066961ba280d96dbde Mon Sep 17 00:00:00 2001 From: sweenu Date: Tue, 17 Feb 2026 14:46:01 +0100 Subject: [PATCH 124/239] nixos/n8n: add taskRunners option --- nixos/modules/services/misc/n8n.nix | 245 ++++++++++++++++++++++++++++ nixos/tests/n8n.nix | 52 +++++- 2 files changed, 296 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/misc/n8n.nix b/nixos/modules/services/misc/n8n.nix index d99541d28825..7e302a190a87 100644 --- a/nixos/modules/services/misc/n8n.nix +++ b/nixos/modules/services/misc/n8n.nix @@ -30,6 +30,28 @@ let path = "${pkg}/lib/node_modules/${pkg.pname}"; }) cfg.customNodes ); + + # Runners + runnersCfg = cfg.taskRunners; + runnersEnv = partitionEnv runnersCfg.environment; + commonAllowedEnv = lib.attrNames runnersEnv.regular; + enabledRunners = lib.filterAttrs (_name: runnerCfg: runnerCfg.enable) runnersCfg.runners; + anyRunnerEnabled = runnersCfg.enable && (enabledRunners != { }); + runnerTypes = lib.attrNames enabledRunners; + runnersStateDir = "n8n-task-runners"; + taskRunnerConfigs = lib.mapAttrsToList (runnerType: runnerCfg: { + runner-type = runnerType; + workdir = "/var/lib/${runnersStateDir}"; + command = runnerCfg.command; + args = runnerCfg.args; + allowed-env = commonAllowedEnv; + env-overrides = runnerCfg.environment; + health-check-server-port = toString runnerCfg.healthCheckPort; + }) enabledRunners; + + launcherConfigFile = pkgs.writeText "n8n-task-runners.json" ( + builtins.toJSON { task-runners = taskRunnerConfigs; } + ); in { meta.maintainers = with lib.maintainers; [ @@ -141,13 +163,180 @@ in Specify the path to directories containing your custom nodes. ''; }; + N8N_RUNNERS_MODE = lib.mkOption { + internal = true; + type = + with lib.types; + enum [ + "internal" + "external" + ]; + default = if runnersCfg.enable then "external" else "internal"; + description = '' + How to launch and run the task runner. + `internal` means n8n will launch a task runner as child process. + `external` means an external orchestrator will launch the task runner. + ''; + }; + N8N_RUNNERS_BROKER_PORT = lib.mkOption { + type = with lib.types; coercedTo port toString str; + default = 5679; + description = '' + Port the task broker listens on for task runner connections. + ''; + }; + N8N_RUNNERS_BROKER_LISTEN_ADDRESS = lib.mkOption { + type = lib.types.str; + default = "127.0.0.1"; + description = '' + Address the task broker listens on. + ''; + }; + N8N_RUNNERS_AUTH_TOKEN_FILE = lib.mkOption { + type = with lib.types; nullOr path; + default = null; + description = '' + Path to a file containing the shared authentication token + used between the n8n server (task broker) and the task runners. + + This option is required when {option}`services.n8n.taskRunners.enable` is true. + The file should be readable by the service and not stored in the Nix store. + Use tools like `agenix` or `sops-nix` to manage this secret. + ''; + }; }; }; default = { }; }; + + taskRunners = { + enable = lib.mkEnableOption "n8n task runners for sandboxed Code node execution"; + + launcherPackage = lib.mkPackageOption pkgs "n8n-task-runner-launcher" { }; + + environment = lib.mkOption { + description = '' + Environment variables for the task runner launcher and runners. + These are common to all runners and passed via `allowed-env` in the launcher config. + See for available options. + + Environment variables ending with `_FILE` are automatically handled as secrets: + they are loaded via systemd credentials for secure access with `DynamicUser=true`. + + Note: The authentication token should be set via {option}`services.n8n.environment.N8N_RUNNERS_AUTH_TOKEN_FILE`. + ''; + example = lib.literalExpression '' + { + N8N_RUNNERS_AUTO_SHUTDOWN_TIMEOUT = 15; + N8N_RUNNERS_MAX_CONCURRENCY = 10; + } + ''; + type = lib.types.submodule { + freeformType = + with lib.types; + attrsOf (oneOf [ + str + (coercedTo int toString str) + (coercedTo bool builtins.toJSON str) + ]); + options = { + N8N_RUNNERS_CONFIG_PATH = lib.mkOption { + internal = true; + type = with lib.types; nullOr path; + default = launcherConfigFile; + description = '' + Path to the configuration file for the task runner launcher. + ''; + }; + N8N_RUNNERS_AUTH_TOKEN_FILE = lib.mkOption { + type = with lib.types; nullOr path; + default = cfg.environment.N8N_RUNNERS_AUTH_TOKEN_FILE; + defaultText = lib.literalExpression "config.services.n8n.environment.N8N_RUNNERS_AUTH_TOKEN_FILE"; + description = '' + Path to the authentication token file for the task runner. + ''; + }; + N8N_RUNNERS_TASK_BROKER_URI = lib.mkOption { + type = lib.types.str; + default = "http://${cfg.environment.N8N_RUNNERS_BROKER_LISTEN_ADDRESS}:${cfg.environment.N8N_RUNNERS_BROKER_PORT}"; + defaultText = lib.literalExpression ''"http://''${config.services.n8n.environment.N8N_RUNNERS_BROKER_LISTEN_ADDRESS}:''${config.services.n8n.environment.N8N_RUNNERS_BROKER_PORT}"''; + description = '' + URI of the n8n task broker that the runner connects to. + ''; + }; + }; + }; + default = { }; + }; + + runners = lib.mkOption { + type = lib.types.attrsOf ( + lib.types.submodule ( + { name, ... }: + { + options = { + enable = lib.mkOption { + type = lib.types.bool; + default = true; + description = '' + Whether to enable the ${name} task runner. + Only takes effect when {option}`services.n8n.taskRunners.enable` is true. + ''; + }; + + command = lib.mkOption { + type = lib.types.str; + description = "Command to execute for this runner."; + }; + + healthCheckPort = lib.mkOption { + type = lib.types.port; + description = "Port for the runner's health check server."; + }; + + args = lib.mkOption { + type = with lib.types; listOf str; + default = [ ]; + description = "Additional command-line arguments to pass to the task runner."; + }; + + environment = lib.mkOption { + type = with lib.types; attrsOf str; + default = { }; + description = "Environment variables specific to this task runner."; + }; + }; + } + ) + ); + default = { }; + defaultText = lib.literalExpression '' + { + javascript = { + enable = true; + command = lib.getExe' config.services.n8n.package "n8n-task-runner"; + healthCheckPort = 5681; + }; + python = { + enable = true; + command = lib.getExe' config.services.n8n.package "n8n-task-runner-python"; + healthCheckPort = 5682; + }; + } + ''; + description = "Configuration for individual task runners."; + }; + }; }; config = lib.mkIf cfg.enable { + assertions = [ + { + assertion = anyRunnerEnabled -> cfg.environment.N8N_RUNNERS_AUTH_TOKEN_FILE != null; + message = "services.n8n.environment.N8N_RUNNERS_AUTH_TOKEN_FILE must be set when task runners are enabled."; + } + ]; + systemd.services.n8n = { description = "n8n service"; after = [ "network.target" ]; @@ -188,6 +377,62 @@ in }; }; + warnings = lib.optional (runnersCfg.enable && !anyRunnerEnabled) '' + services.n8n.taskRunners.enable is true, but both JavaScript and Python runners are disabled. + Enable at least one runner or disable taskRunners. + ''; + + # We set the defaults here to ease adding attributes + services.n8n.taskRunners.runners = { + javascript = lib.mapAttrs (_: lib.mkDefault) { + enable = true; + command = lib.getExe' cfg.package "n8n-task-runner"; + healthCheckPort = 5681; + }; + python = lib.mapAttrs (_: lib.mkDefault) { + enable = true; + command = lib.getExe' cfg.package "n8n-task-runner-python"; + healthCheckPort = 5682; + }; + }; + + systemd.services.n8n-task-runner = lib.mkIf anyRunnerEnabled { + description = "n8n task runner"; + after = [ "n8n.service" ]; + requires = [ "n8n.service" ]; + wantedBy = [ "multi-user.target" ]; + environment = runnersEnv.regular // runnersEnv.fileBasedTransformed; + serviceConfig = { + Type = "simple"; + ExecStart = "${lib.getExe runnersCfg.launcherPackage} ${lib.concatStringsSep " " runnerTypes}"; + Restart = "on-failure"; + + StateDirectory = runnersStateDir; + + LoadCredential = lib.mapAttrsToList ( + varName: secretPath: "${envVarToCredName varName}:${secretPath}" + ) runnersEnv.fileBased; + + # Hardening + DynamicUser = "true"; + NoNewPrivileges = "yes"; + PrivateTmp = "yes"; + PrivateDevices = "yes"; + DevicePolicy = "closed"; + ProtectSystem = "strict"; + ProtectHome = "read-only"; + ProtectControlGroups = "yes"; + ProtectKernelModules = "yes"; + ProtectKernelTunables = "yes"; + RestrictAddressFamilies = "AF_UNIX AF_INET AF_INET6 AF_NETLINK"; + RestrictNamespaces = "yes"; + RestrictRealtime = "yes"; + RestrictSUIDSGID = "yes"; + MemoryDenyWriteExecute = "no"; # v8 JIT requires memory segments to be Writable-Executable. + LockPersonality = "yes"; + }; + }; + networking.firewall = lib.mkIf cfg.openFirewall { allowedTCPPorts = [ (lib.toInt cfg.environment.N8N_PORT) ]; }; diff --git a/nixos/tests/n8n.nix b/nixos/tests/n8n.nix index 5f2dcc0c3268..270f63648904 100644 --- a/nixos/tests/n8n.nix +++ b/nixos/tests/n8n.nix @@ -1,8 +1,10 @@ { lib, pkgs, ... }: let port = 5678; + brokerPort = 5679; webhookUrl = "http://example.com"; secretFile = toString (pkgs.writeText "n8n-encryption-key" "test-encryption-key-12345"); + authTokenFile = toString (pkgs.writeText "n8n-runner-auth-token" "test-runner-auth-token-12345"); in { name = "n8n"; @@ -24,8 +26,26 @@ in WEBHOOK_URL = webhookUrl; N8N_TEMPLATES_ENABLED = false; DB_PING_INTERVAL_SECONDS = 2; - # !!! Don't do this with real keys. The /nix store is world-readable! + # !!! Don't do this with real keys/tokens. The /nix store is world-readable! N8N_ENCRYPTION_KEY_FILE = secretFile; + N8N_RUNNERS_AUTH_TOKEN_FILE = authTokenFile; + }; + taskRunners = { + enable = true; + environment = { + # Common env var for all runners + N8N_RUNNERS_MAX_CONCURRENCY = 10; + }; + runners = { + javascript = { + args = [ "--disallow-code-generation-from-strings" ]; + environment.NODE_FUNCTION_ALLOW_BUILTIN = "*"; + }; + python = { + args = [ "--test-arg" ]; + environment.N8N_RUNNERS_STDLIB_ALLOW = "*"; + }; + }; }; }; }; @@ -52,5 +72,35 @@ in custom_extensions_dir = machine.succeed("grep -oP 'N8N_CUSTOM_EXTENSIONS=\\K[^\"]+' /etc/systemd/system/n8n.service").strip() machine.succeed(f"test -L {custom_extensions_dir}/n8n-nodes-carbonejs") machine.succeed(f"test -f {custom_extensions_dir}/n8n-nodes-carbonejs/package.json") + + # Test task runner integration on n8n service + machine.succeed("grep -qF 'N8N_RUNNERS_MODE=external' /etc/systemd/system/n8n.service") + machine.succeed("grep -qF 'N8N_RUNNERS_BROKER_PORT=${toString brokerPort}' /etc/systemd/system/n8n.service") + machine.succeed("grep -qF 'LoadCredential=n8n_runners_auth_token_file:${authTokenFile}' /etc/systemd/system/n8n.service") + + # Test task runner service + machine.wait_for_unit("n8n-task-runner.service") + machine.succeed("systemctl is-active n8n-task-runner.service") + + # Test that both runner types are enabled + machine.succeed("grep -qF 'javascript python' /etc/systemd/system/n8n-task-runner.service") + + # Test common environment variables are passed to launcher + machine.succeed("grep -qF 'N8N_RUNNERS_MAX_CONCURRENCY=10' /etc/systemd/system/n8n-task-runner.service") + machine.succeed("grep -qF 'N8N_RUNNERS_TASK_BROKER_URI=http://127.0.0.1:${toString brokerPort}' /etc/systemd/system/n8n-task-runner.service") + + # Test auth token is loaded via credentials + machine.succeed("grep -qF 'LoadCredential=n8n_runners_auth_token_file:${authTokenFile}' /etc/systemd/system/n8n-task-runner.service") + + # Test launcher config file + config_path = machine.succeed("grep -oP 'N8N_RUNNERS_CONFIG_PATH=\\K[^[:space:]\"]+' /etc/systemd/system/n8n-task-runner.service").strip() + config = machine.succeed(f"cat {config_path}") + assert "NODE_FUNCTION_ALLOW_BUILTIN" in config, "JavaScript env-override not in config" + assert "N8N_RUNNERS_STDLIB_ALLOW" in config, "Python env-override not in config" + assert "N8N_RUNNERS_MAX_CONCURRENCY" in config, "Common allowed-env not in config" + assert "--disallow-code-generation-from-strings" in config, "JavaScript args not in config" + assert "--test-arg" in config, "Python args not in config" + assert '"health-check-server-port":"5681"' in config, "JavaScript health check port not in config" + assert '"health-check-server-port":"5682"' in config, "Python health check port not in config" ''; } From c05a9030f15eaae290d52985c930079a23405963 Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Mon, 16 Feb 2026 20:04:14 -0800 Subject: [PATCH 125/239] python313Packages.sacremoses: 0.0.35 -> 0.1.1 In addition to bumping the version, this commit: 1. Removes `six` and adds `regex` as a dependency. 2. Changes upstream from `alvations` to `hplt-project` based on the homepage link in https://pypi.org/project/sacremoses/. --- .../python-modules/sacremoses/default.nix | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pkgs/development/python-modules/sacremoses/default.nix b/pkgs/development/python-modules/sacremoses/default.nix index 9bcfb97d989b..82e0d80ba537 100644 --- a/pkgs/development/python-modules/sacremoses/default.nix +++ b/pkgs/development/python-modules/sacremoses/default.nix @@ -3,29 +3,29 @@ lib, fetchFromGitHub, click, - six, - tqdm, joblib, + tqdm, + regex, pytest, }: buildPythonPackage rec { pname = "sacremoses"; - version = "0.0.35"; + version = "0.1.1"; format = "setuptools"; src = fetchFromGitHub { - owner = "alvations"; + owner = "hplt-project"; repo = "sacremoses"; rev = version; - sha256 = "1gzr56w8yx82mn08wax5m0xyg15ym4ri5l80gmagp8r53443j770"; + sha256 = "sha256-ked6/8oaGJwVW1jvpjrWtJYfr0GKUHdJyaEuzid/S3M="; }; propagatedBuildInputs = [ click - six - tqdm joblib + tqdm + regex ]; nativeCheckInputs = [ pytest ]; From e60e61c600300b9e9a806cb973ad2cb32afaf846 Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Tue, 17 Feb 2026 18:13:25 +0000 Subject: [PATCH 126/239] python313Packages.sacremoses: modernize package Co-authored-by: Sarah Clark --- .../python-modules/sacremoses/default.nix | 32 +++++++++++-------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/pkgs/development/python-modules/sacremoses/default.nix b/pkgs/development/python-modules/sacremoses/default.nix index 82e0d80ba537..98b49fa4cac0 100644 --- a/pkgs/development/python-modules/sacremoses/default.nix +++ b/pkgs/development/python-modules/sacremoses/default.nix @@ -1,38 +1,44 @@ { - buildPythonPackage, lib, + buildPythonPackage, fetchFromGitHub, + # build-system + setuptools, + # dependencies click, joblib, - tqdm, regex, - pytest, + tqdm, + # tests + pytestCheckHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "sacremoses"; version = "0.1.1"; - format = "setuptools"; + pyproject = true; src = fetchFromGitHub { owner = "hplt-project"; repo = "sacremoses"; - rev = version; + tag = finalAttrs.version; sha256 = "sha256-ked6/8oaGJwVW1jvpjrWtJYfr0GKUHdJyaEuzid/S3M="; }; - propagatedBuildInputs = [ + build-system = [ setuptools ]; + + dependencies = [ click joblib - tqdm regex + tqdm ]; - nativeCheckInputs = [ pytest ]; + nativeCheckInputs = [ pytestCheckHook ]; # ignore tests which call to remote host - checkPhase = '' - pytest -k 'not truecase' - ''; + disabledTestPaths = [ + "sacremoses/test/test_truecaser.py::TestTruecaser" + ]; meta = { homepage = "https://github.com/alvations/sacremoses"; @@ -42,4 +48,4 @@ buildPythonPackage rec { platforms = lib.platforms.unix; maintainers = with lib.maintainers; [ pashashocky ]; }; -} +}) From 68ba89d976d29e873f6ba7e98cccde9b6bdd62d7 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 18 Feb 2026 12:14:15 +0000 Subject: [PATCH 127/239] search-vulns: 1.0.2 -> 1.0.4 --- pkgs/by-name/se/search-vulns/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/se/search-vulns/package.nix b/pkgs/by-name/se/search-vulns/package.nix index e419934a7a78..b669d34839ac 100644 --- a/pkgs/by-name/se/search-vulns/package.nix +++ b/pkgs/by-name/se/search-vulns/package.nix @@ -6,14 +6,14 @@ python3.pkgs.buildPythonApplication (finalAttrs: { pname = "search-vulns"; - version = "1.0.2"; + version = "1.0.4"; pyproject = true; src = fetchFromGitHub { owner = "ra1nb0rn"; repo = "search_vulns"; tag = "v${finalAttrs.version}"; - hash = "sha256-xdZq4Er+0CT59Iv0mEcmkZcUM+xbBi/x+TtBNCiyhbY="; + hash = "sha256-lQyd5FmiBlno+BEXou70XOAv1hkwxIs0BCoNESYjjZM="; fetchSubmodules = true; }; From 2a5d552fd33e639384f013865181b1a630209bd7 Mon Sep 17 00:00:00 2001 From: matthewcroughan Date: Tue, 17 Feb 2026 16:39:30 +0000 Subject: [PATCH 128/239] morse-linux: init at 2.6 --- pkgs/by-name/mo/morse-linux/package.nix | 60 +++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 pkgs/by-name/mo/morse-linux/package.nix diff --git a/pkgs/by-name/mo/morse-linux/package.nix b/pkgs/by-name/mo/morse-linux/package.nix new file mode 100644 index 000000000000..7d0a5be31e4f --- /dev/null +++ b/pkgs/by-name/mo/morse-linux/package.nix @@ -0,0 +1,60 @@ +{ + lib, + stdenv, + fetchFromGitLab, + alsa-lib, + pulseaudio, + pkg-config, + xmlto, + docbook_xsl, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "morse"; + version = "2.6"; + + src = fetchFromGitLab { + owner = "esr"; + repo = "morse-classic"; + tag = finalAttrs.version; + hash = "sha256-wk/Jcp2YWUlecV3OMELD6IWrlj3IC8kh0U4geMxG4fw="; + }; + + buildInputs = [ + alsa-lib + pulseaudio + ]; + + nativeBuildInputs = [ + pkg-config + xmlto + docbook_xsl + ]; + + postPatch = '' + substituteInPlace Makefile --replace-fail "xmlto" "xmlto --skip-validation" + ''; + + env.NIX_CFLAGS_COMPILE = "-std=gnu99"; + + installPhase = '' + runHook preInstall + install -Dm755 morse -t "$out/bin/" + install -Dm755 QSO -t "$out/bin/" + install -Dm644 morse.1 -t "$out/share/man/man1/" + install -Dm644 QSO.1 -t "$out/share/man/man1/" + runHook postInstall + ''; + + meta = { + description = "Training program about morse-code for aspiring radio hams"; + homepage = "https://gitlab.com/esr/morse-classic"; + license = lib.licenses.bsd2; + maintainers = with lib.maintainers; [ + matthewcroughan + sarcasticadmin + ]; + platforms = lib.platforms.linux; + mainProgram = "morse"; + }; +}) From b624e6556e250214d34b8981e740f203e14960e1 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 18 Feb 2026 13:34:09 +0000 Subject: [PATCH 129/239] dotnet-outdated: 4.6.9 -> 4.7.0 --- pkgs/by-name/do/dotnet-outdated/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/do/dotnet-outdated/package.nix b/pkgs/by-name/do/dotnet-outdated/package.nix index 254f59463939..738696dbaf2b 100644 --- a/pkgs/by-name/do/dotnet-outdated/package.nix +++ b/pkgs/by-name/do/dotnet-outdated/package.nix @@ -6,11 +6,11 @@ buildDotnetGlobalTool rec { pname = "dotnet-outdated"; nugetName = "dotnet-outdated-tool"; - version = "4.6.9"; + version = "4.7.0"; dotnet-sdk = dotnetCorePackages.sdk_10_0; - nugetHash = "sha256-LVe/b18hxM9A0Kni6Kl4sE38KgzIihDuc+xRw8qaKv0="; + nugetHash = "sha256-96tYVEN6sWw2H5xB6UaDUO7EtOn839Nfagamxf8bLvA="; meta = { description = ".NET Core global tool to display and update outdated NuGet packages in a project"; From 10c6d6c81cefb7383a234159b25089dea319f357 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 18 Feb 2026 17:02:16 +0000 Subject: [PATCH 130/239] checkov: 3.2.501 -> 3.2.504 --- pkgs/by-name/ch/checkov/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ch/checkov/package.nix b/pkgs/by-name/ch/checkov/package.nix index 52351f1c8e3f..45ecb9a2fb3f 100644 --- a/pkgs/by-name/ch/checkov/package.nix +++ b/pkgs/by-name/ch/checkov/package.nix @@ -37,14 +37,14 @@ with py.pkgs; python3.pkgs.buildPythonApplication rec { pname = "checkov"; - version = "3.2.501"; + version = "3.2.504"; pyproject = true; src = fetchFromGitHub { owner = "bridgecrewio"; repo = "checkov"; tag = version; - hash = "sha256-kvUPhCuKWcklrrTnzbNWIg2Vqhv5dFP52+QkYas3kww="; + hash = "sha256-w6U8XW/hSPy/WJy4a6N41Hu+i9OVqiwI5buAE2uFjoI="; }; pythonRelaxDeps = [ From 33cf5032af557f7ec7eb30215d8fdb2a9fcce2e1 Mon Sep 17 00:00:00 2001 From: David Morgan Date: Wed, 18 Feb 2026 14:08:02 +0000 Subject: [PATCH 131/239] cdktn-cli: rename from cdktf-cli; 0.21.0 -> 0.22.0 --- .../cd/{cdktf-cli => cdktn-cli}/package.nix | 48 +++++++++---------- pkgs/top-level/aliases.nix | 1 + 2 files changed, 25 insertions(+), 24 deletions(-) rename pkgs/by-name/cd/{cdktf-cli => cdktn-cli}/package.nix (72%) diff --git a/pkgs/by-name/cd/cdktf-cli/package.nix b/pkgs/by-name/cd/cdktn-cli/package.nix similarity index 72% rename from pkgs/by-name/cd/cdktf-cli/package.nix rename to pkgs/by-name/cd/cdktn-cli/package.nix index 7d338e863da8..33b3856011d8 100644 --- a/pkgs/by-name/cd/cdktf-cli/package.nix +++ b/pkgs/by-name/cd/cdktn-cli/package.nix @@ -8,7 +8,7 @@ fixup-yarn-lock, go, makeWrapper, - nodejs, + nodejs_20, nix-update-script, patchelf, removeReferencesTo, @@ -18,26 +18,26 @@ }: stdenv.mkDerivation (finalAttrs: { - pname = "cdktf-cli"; - version = "0.21.0"; + pname = "cdktn-cli"; + version = "0.22.0"; src = fetchFromGitHub { - owner = "hashicorp"; - repo = "terraform-cdk"; + owner = "open-constructs"; + repo = "cdk-terrain"; tag = "v${finalAttrs.version}"; - hash = "sha256-iqy8j1bqwjSRBOj8kjFtAq9dLiv6dDbJsiFGQUhGW7k="; + hash = "sha256-KgDRQ76ePLJEdULMCTJTouMaWu0SCeV4NwNW2WpoaNY="; }; offlineCache = fetchYarnDeps { yarnLock = "${finalAttrs.src}/yarn.lock"; - hash = "sha256-qGjzy/+u8Ui9aHK0sX3MfYbkj5Cqab4RlhOgrwbEmGs="; + hash = "sha256-0aOwRdfCTiQHmWzOk+ExLX+/EAryxheyILe7L7oyd4w="; }; hcl2json-go-modules = (buildGoModule { - pname = "cdktf-hcl2json-go-modules"; + pname = "cdktn-hcl2json-go-modules"; inherit (finalAttrs) version src; - modRoot = "packages/@cdktf/hcl2json"; + modRoot = "packages/@cdktn/hcl2json"; vendorHash = "sha256-OiKPq0CHkOxJaFzgsaNJ02tasvHtHWylmaPRPayJob4="; proxyVendor = true; doCheck = false; @@ -46,9 +46,9 @@ stdenv.mkDerivation (finalAttrs: { hcltools-go-modules = (buildGoModule { - pname = "cdktf-hcltools-go-modules"; + pname = "cdktn-hcltools-go-modules"; inherit (finalAttrs) version src; - modRoot = "packages/@cdktf/hcl-tools"; + modRoot = "packages/@cdktn/hcl-tools"; vendorHash = "sha256-orGxkYEQVtTKvXb7/FD/CLwqSINgBQFTF5arbR0xAvE="; proxyVendor = true; doCheck = false; @@ -63,7 +63,7 @@ stdenv.mkDerivation (finalAttrs: { fixup-yarn-lock go makeWrapper - nodejs + nodejs_20 patchelf removeReferencesTo yarn @@ -71,9 +71,9 @@ stdenv.mkDerivation (finalAttrs: { postPatch = '' # wasm_exec has moved to lib in newer versions of Go - substituteInPlace packages/@cdktf/hcl-tools/prebuild.sh \ + substituteInPlace packages/@cdktn/hcl-tools/prebuild.sh \ --replace-fail "misc/wasm/wasm_exec.js" "lib/wasm/wasm_exec.js" - substituteInPlace packages/@cdktf/hcl2json/prebuild.sh \ + substituteInPlace packages/@cdktn/hcl2json/prebuild.sh \ --replace-fail "misc/wasm/wasm_exec.js" "lib/wasm/wasm_exec.js" ''; @@ -114,7 +114,7 @@ stdenv.mkDerivation (finalAttrs: { runHook preCheck # Skip tests that require terraform (unfree) - yarn --offline workspace cdktf-cli test -- \ + yarn --offline workspace cdktn-cli test -- \ --testPathIgnorePatterns \ "src/test/cmds/(convert|init).test.ts" @@ -126,11 +126,11 @@ stdenv.mkDerivation (finalAttrs: { yarn --offline --production install - mkdir -p "$out/lib/node_modules/cdktf-cli" - cp -rL node_modules packages/cdktf-cli/bundle packages/cdktf-cli/package.json "$out/lib/node_modules/cdktf-cli/" + mkdir -p "$out/lib/node_modules/cdktn-cli" + cp -rL node_modules packages/cdktn-cli/bundle packages/cdktn-cli/package.json "$out/lib/node_modules/cdktn-cli/" - makeWrapper "${lib.getExe nodejs}" "$out/bin/cdktf" \ - --add-flags "$out/lib/node_modules/cdktf-cli/bundle/bin/cdktf.js" + makeWrapper "${lib.getExe nodejs_20}" "$out/bin/cdktn" \ + --add-flags "$out/lib/node_modules/cdktn-cli/bundle/bin/cdktn.js" runHook postInstall ''; @@ -138,8 +138,8 @@ stdenv.mkDerivation (finalAttrs: { postInstall = '' # Go isn't needed at runtime, so remove these to decrease the closure size remove-references-to -t ${go} \ - "$out/lib/node_modules/cdktf-cli/node_modules/@cdktf/hcl-tools/main.wasm" \ - "$out/lib/node_modules/cdktf-cli/node_modules/@cdktf/hcl2json/main.wasm" + "$out/lib/node_modules/cdktn-cli/node_modules/@cdktn/hcl-tools/main.wasm" \ + "$out/lib/node_modules/cdktn-cli/node_modules/@cdktn/hcl2json/main.wasm" ''; nativeInstallCheckInputs = [ @@ -154,10 +154,10 @@ stdenv.mkDerivation (finalAttrs: { meta = { description = "CDK for Terraform CLI"; - homepage = "https://github.com/hashicorp/terraform-cdk"; - changelog = "https://github.com/hashicorp/terraform-cdk/releases/tag/${finalAttrs.src.tag}"; + homepage = "https://cdktn.io"; + changelog = "https://github.com/open-constructs/cdk-terrain/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.mpl20; - mainProgram = "cdktf"; + mainProgram = "cdktn"; maintainers = with lib.maintainers; [ deejayem ]; platforms = lib.platforms.unix; }; diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 7e120ce0cd62..2fa309af0f3e 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -426,6 +426,7 @@ mapAliases { cataract-unstable = throw "'cataract-unstable' has been removed due to a lack of maintenace"; # Added 2025-08-25 catch = throw "catch has been removed. Please upgrade to catch2 or catch2_3"; # Added 2025-08-21 catnip-gtk4 = throw "'catnip-gtk4' has been removed, as it has been unmaintained upstream since June 2023, use cavasik or cavalier instead"; # Added 2026-01-01 + cdktf-cli = warnAlias "'cdktf-cli' has been renamed to/replaced by 'cdktn-cli'" cdktn-cli; # Added 2026-02-18 cdwe = throw "'cdwe' has been removed, as it has been unmaintained upstream since June 2023"; # Added 2026-01-01 cedille = throw "'cedille' has been removed due to being broken for more than a year; see RFC 180"; # Added 2026-02-05 cereal_1_3_0 = throw "cereal_1_3_0 has been removed as it was unused; use cereal intsead"; # Added 2025-09-12 From 8d802e0d388a768bdd55c061e488c6dc752839ca Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 18 Feb 2026 17:49:44 +0000 Subject: [PATCH 132/239] clever-tools: 4.5.3 -> 4.6.0 --- pkgs/by-name/cl/clever-tools/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/cl/clever-tools/package.nix b/pkgs/by-name/cl/clever-tools/package.nix index 6e3f05f33c33..455cb1c2858d 100644 --- a/pkgs/by-name/cl/clever-tools/package.nix +++ b/pkgs/by-name/cl/clever-tools/package.nix @@ -11,7 +11,7 @@ buildNpmPackage rec { pname = "clever-tools"; - version = "4.5.3"; + version = "4.6.0"; nodejs = nodejs_22; @@ -19,10 +19,10 @@ buildNpmPackage rec { owner = "CleverCloud"; repo = "clever-tools"; rev = version; - hash = "sha256-/PVVnTzRPy4AM3OEfTdrSrvdWfbPSrP/LoenzPA0d2Q="; + hash = "sha256-0c2SBArtMUffQ7hd2fH9l5DMGm+UIWNeY/aSU0cUHzg="; }; - npmDepsHash = "sha256-i9cZI+P363EqODlnggqKT6XxoDYTNVrg5rTYNWWHm8A="; + npmDepsHash = "sha256-Quzpdmu9qvJ4P77nsXzqLg3k7tQvuYtvEioDuUSU0+M="; nativeBuildInputs = [ installShellFiles From 996dde764f424bd904c4d5ce96fac7a6af130e3e Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 18 Feb 2026 19:24:07 +0000 Subject: [PATCH 133/239] floorp-bin-unwrapped: 12.10.3 -> 12.10.4 --- .../fl/floorp-bin-unwrapped/sources.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pkgs/by-name/fl/floorp-bin-unwrapped/sources.json b/pkgs/by-name/fl/floorp-bin-unwrapped/sources.json index a29f47c045be..a3f3a55e1472 100644 --- a/pkgs/by-name/fl/floorp-bin-unwrapped/sources.json +++ b/pkgs/by-name/fl/floorp-bin-unwrapped/sources.json @@ -1,21 +1,21 @@ { - "version": "12.10.3", + "version": "12.10.4", "sources": { "aarch64-linux": { - "url": "https://github.com/Floorp-Projects/Floorp/releases/download/v12.10.3/floorp-linux-aarch64.tar.xz", - "sha256": "b2f62db7941f819375a9f8627bd55442c30310e93cb270621fdf9e5c707801e3" + "url": "https://github.com/Floorp-Projects/Floorp/releases/download/v12.10.4/floorp-linux-aarch64.tar.xz", + "sha256": "6fb5030be0209744dd9aac0fa5645c45a21d135d4e487836a300359a695327e5" }, "x86_64-linux": { - "url": "https://github.com/Floorp-Projects/Floorp/releases/download/v12.10.3/floorp-linux-x86_64.tar.xz", - "sha256": "fb866cd00da594c5c6435238e32ac2c13eaca40ead4936656aee88ea3446983f" + "url": "https://github.com/Floorp-Projects/Floorp/releases/download/v12.10.4/floorp-linux-x86_64.tar.xz", + "sha256": "1cc457b0b23d29d863749a9a4f000b47fa480aa0579774bb39eff5978160df21" }, "aarch64-darwin": { - "url": "https://github.com/Floorp-Projects/Floorp/releases/download/v12.10.3/floorp-macOS-universal.dmg", - "sha256": "56477ebaae97aee37c0a93294f8770ae901bf2e35d2be03540daf0a779db6dae" + "url": "https://github.com/Floorp-Projects/Floorp/releases/download/v12.10.4/floorp-macOS-universal.dmg", + "sha256": "1fa4e85c9aa58d989f0aa01389c0b3a5f231ad08485606427498777daba81398" }, "x86_64-darwin": { - "url": "https://github.com/Floorp-Projects/Floorp/releases/download/v12.10.3/floorp-macOS-universal.dmg", - "sha256": "56477ebaae97aee37c0a93294f8770ae901bf2e35d2be03540daf0a779db6dae" + "url": "https://github.com/Floorp-Projects/Floorp/releases/download/v12.10.4/floorp-macOS-universal.dmg", + "sha256": "1fa4e85c9aa58d989f0aa01389c0b3a5f231ad08485606427498777daba81398" } } } From 78d158c4155604de27089dc3f5f9671f1d845366 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 18 Feb 2026 19:30:43 +0000 Subject: [PATCH 134/239] python3Packages.playwright-stealth: 2.0.1 -> 2.0.2 --- .../development/python-modules/playwright-stealth/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/playwright-stealth/default.nix b/pkgs/development/python-modules/playwright-stealth/default.nix index e6b716e9b2e2..18032f8b0b0e 100644 --- a/pkgs/development/python-modules/playwright-stealth/default.nix +++ b/pkgs/development/python-modules/playwright-stealth/default.nix @@ -8,13 +8,13 @@ buildPythonPackage (finalAttrs: { pname = "playwright-stealth"; - version = "2.0.1"; + version = "2.0.2"; pyproject = true; src = fetchPypi { pname = "playwright_stealth"; inherit (finalAttrs) version; - hash = "sha256-o29zXWFGnBK9oXm1jV/EIou+5hyc9bE0OxSXpf1R7Bo="; + hash = "sha256-rFflGHMZDaXmU+A3IOlIyPCj0GsJjx1WdjED0j7kgUM="; }; build-system = [ poetry-core ]; From e353d49742da48c6c36954592ba93569b3c29c7a Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 18 Feb 2026 20:01:12 +0000 Subject: [PATCH 135/239] greenmask: 0.2.15 -> 0.2.16 --- pkgs/by-name/gr/greenmask/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/gr/greenmask/package.nix b/pkgs/by-name/gr/greenmask/package.nix index df1ca94e3107..b3909b3cfa85 100644 --- a/pkgs/by-name/gr/greenmask/package.nix +++ b/pkgs/by-name/gr/greenmask/package.nix @@ -7,13 +7,13 @@ buildGoModule (finalAttrs: { pname = "greenmask"; - version = "0.2.15"; + version = "0.2.16"; src = fetchFromGitHub { owner = "GreenmaskIO"; repo = "greenmask"; tag = "v${finalAttrs.version}"; - hash = "sha256-/At0boolTyge4VNy1EDpK09Yo7hLAdq6SvCbyBTKGbw="; + hash = "sha256-0XWVYkC5ltpJZ1VLG3G1gvTwGdgqY4nzmOvDDnbz0Ss="; }; vendorHash = "sha256-t2U65GAGBGdMRXPTkCQCuXfLuqohA6erTlvAN/xx/ek="; From 78d8b624b558b1657cae98065f927cd2ee3ea238 Mon Sep 17 00:00:00 2001 From: SwimMau5 <92276260+SwimMau5@users.noreply.github.com> Date: Thu, 11 Dec 2025 13:16:53 -0600 Subject: [PATCH 136/239] pixieditor: add darwin support --- pkgs/by-name/pi/pixieditor/deps.json | 5 +++++ pkgs/by-name/pi/pixieditor/package.nix | 19 +++++++++++++++---- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/pi/pixieditor/deps.json b/pkgs/by-name/pi/pixieditor/deps.json index e9fa64d94cb5..24900dfa0d0f 100644 --- a/pkgs/by-name/pi/pixieditor/deps.json +++ b/pkgs/by-name/pi/pixieditor/deps.json @@ -249,6 +249,11 @@ "version": "6.9.0", "hash": "sha256-MwPAPFD/gs9WZ8gB5BQMEwYswd3EEIpLlvMN5vmz1Wc=" }, + { + "pname": "DeviceId.Mac", + "version": "6.9.0", + "hash": "sha256-bQ59eaeDGRgk4ow7bk7U9yEnJgiV2Ok9U3fbBIOdRVw=" + }, { "pname": "DiscordRichPresence", "version": "1.3.0.28", diff --git a/pkgs/by-name/pi/pixieditor/package.nix b/pkgs/by-name/pi/pixieditor/package.nix index 7221d9d3564d..ffd013ab9fb1 100644 --- a/pkgs/by-name/pi/pixieditor/package.nix +++ b/pkgs/by-name/pi/pixieditor/package.nix @@ -23,6 +23,7 @@ makeDesktopItem, copyDesktopItems, + desktopToDarwinBundle, nix-update-script, }: @@ -70,6 +71,9 @@ buildDotnetModule (finalAttrs: { nativeBuildInputs = [ copyDesktopItems + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + desktopToDarwinBundle ]; buildInputs = [ @@ -85,15 +89,20 @@ buildDotnetModule (finalAttrs: { dotnet-sdk = dotnetCorePackages.sdk_8_0; dotnet-runtime = dotnetCorePackages.runtime_8_0; - dotnetFlags = - lib.optionals stdenv.hostPlatform.isx86_64 [ "-p:Runtimeidentifier=linux-x64" ] - ++ lib.optionals stdenv.hostPlatform.isAarch64 [ "-p:Runtimeidentifier=linux-arm64" ]; + dotnetFlags = [ + "-p:RuntimeIdentifier=${dotnetCorePackages.systemToDotnetRid stdenv.hostPlatform.system}" + ]; buildType = "ReleaseNoUpdate"; projectFile = [ "src/PixiEditor.Desktop/PixiEditor.Desktop.csproj" "src/PixiEditor/PixiEditor.csproj" - "src/PixiEditor.Linux/PixiEditor.Linux.csproj" + ( + if stdenv.hostPlatform.isLinux then + "src/PixiEditor.Linux/PixiEditor.Linux.csproj" + else + "src/PixiEditor.MacOs/PixiEditor.MacOs.csproj" + ) "src/PixiEditor.Platform.Standalone/PixiEditor.Platform.Standalone.csproj" ]; executables = [ "PixiEditor.Desktop" ]; @@ -183,6 +192,8 @@ buildDotnetModule (finalAttrs: { platforms = [ "x86_64-linux" "aarch64-linux" + "x86_64-darwin" + "aarch64-darwin" ]; }; }) From f780572a2efbacd72aa3e8f7c4896b59f0199fd0 Mon Sep 17 00:00:00 2001 From: pancaek <20342389+pancaek@users.noreply.github.com> Date: Wed, 18 Feb 2026 16:27:43 -0800 Subject: [PATCH 137/239] chrysalis: move icon to spec-compliant location --- pkgs/by-name/ch/chrysalis/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ch/chrysalis/package.nix b/pkgs/by-name/ch/chrysalis/package.nix index 8b4c30b8e65e..323369883d9d 100644 --- a/pkgs/by-name/ch/chrysalis/package.nix +++ b/pkgs/by-name/ch/chrysalis/package.nix @@ -32,9 +32,9 @@ appimageTools.wrapType2 { -t $out/share/applications substituteInPlace \ $out/share/applications/Chrysalis.desktop \ - --replace-fail 'Exec=Chrysalis' 'Exec=${pname}' + --replace-fail 'Exec=Chrysalis' 'Exec=chrysalis' - install -Dm444 ${appimageContents}/usr/share/icons/hicolor/256x256/chrysalis.png -t $out/share/pixmaps + cp -r ${appimageContents}/usr/share $out/share ''; passthru.updateScript = ./update.sh; From 0b2ea51de50ec65879749b0c202ac0b8599d590c Mon Sep 17 00:00:00 2001 From: pancaek <20342389+pancaek@users.noreply.github.com> Date: Wed, 18 Feb 2026 16:41:48 -0800 Subject: [PATCH 138/239] cider-2: remove icon from non spec-compliant location --- pkgs/by-name/ci/cider-2/package.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/by-name/ci/cider-2/package.nix b/pkgs/by-name/ci/cider-2/package.nix index fef24e1b7101..88f6e1e16a4d 100644 --- a/pkgs/by-name/ci/cider-2/package.nix +++ b/pkgs/by-name/ci/cider-2/package.nix @@ -86,6 +86,8 @@ stdenv.mkDerivation rec { install -Dm444 $out/share/pixmaps/cider.png \ $out/share/icons/hicolor/256x256/apps/cider.png + + rm -r $out/share/pixmaps ''; passthru.updateScript = ./updater.sh; From d66acff2fbdd15805663856a053896fda1aa99c3 Mon Sep 17 00:00:00 2001 From: pancaek <20342389+pancaek@users.noreply.github.com> Date: Wed, 18 Feb 2026 17:01:45 -0800 Subject: [PATCH 139/239] trackma: move icon to spec-compliant location --- pkgs/by-name/tr/trackma/package.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/tr/trackma/package.nix b/pkgs/by-name/tr/trackma/package.nix index a9f97259e755..87417d91dd16 100644 --- a/pkgs/by-name/tr/trackma/package.nix +++ b/pkgs/by-name/tr/trackma/package.nix @@ -10,6 +10,7 @@ qt5, makeDesktopItem, copyDesktopItems, + imagemagick, withCurses ? false, withGTK ? false, withQT ? false, @@ -46,6 +47,7 @@ python3.pkgs.buildPythonApplication (finalAttrs: { nativeBuildInputs = [ copyDesktopItems python3.pkgs.poetry-core + imagemagick ] ++ lib.optionals withGTK [ wrapGAppsHook3 @@ -94,7 +96,8 @@ python3.pkgs.buildPythonApplication (finalAttrs: { ); postInstall = '' - install -Dvm444 $src/trackma/data/icon.png $out/share/pixmaps/trackma.png + mkdir -p $out/share/icons/hicolor/64x64/apps + magick $src/trackma/data/icon.png -resize 64x64! $out/share/icons/hicolor/64x64/apps/trackma.png ''; doCheck = false; From f3cfdf3d0f4747a54efdca6106c2a5cb07d22d7c Mon Sep 17 00:00:00 2001 From: pancaek <20342389+pancaek@users.noreply.github.com> Date: Wed, 18 Feb 2026 17:16:51 -0800 Subject: [PATCH 140/239] tutanota-desktop: move icon to spec-compliant location --- pkgs/by-name/tu/tutanota-desktop/package.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/by-name/tu/tutanota-desktop/package.nix b/pkgs/by-name/tu/tutanota-desktop/package.nix index ad3159c5b747..7c445f261307 100644 --- a/pkgs/by-name/tu/tutanota-desktop/package.nix +++ b/pkgs/by-name/tu/tutanota-desktop/package.nix @@ -25,7 +25,6 @@ appimageTools.wrapType2 rec { in '' install -Dm 444 ${appimageContents}/tutanota-desktop.desktop -t $out/share/applications - install -Dm 444 ${appimageContents}/tutanota-desktop.png -t $out/share/pixmaps cp -r ${appimageContents}/usr/share/icons/. $out/share/icons substituteInPlace $out/share/applications/tutanota-desktop.desktop \ From 1e932584a4bf8a9faefb21e7ca0e6af87764fbb0 Mon Sep 17 00:00:00 2001 From: pancaek <20342389+pancaek@users.noreply.github.com> Date: Wed, 18 Feb 2026 17:27:59 -0800 Subject: [PATCH 141/239] tuxpaint: move icon to spec-compliant location --- pkgs/by-name/tu/tuxpaint/package.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/tu/tuxpaint/package.nix b/pkgs/by-name/tu/tuxpaint/package.nix index 27146a18264b..3152be909715 100644 --- a/pkgs/by-name/tu/tuxpaint/package.nix +++ b/pkgs/by-name/tu/tuxpaint/package.nix @@ -91,7 +91,6 @@ stdenv.mkDerivation (finalAttrs: { postInstall = '' # Install desktop file mkdir -p $out/share/applications - cp hildon/tuxpaint.xpm $out/share/pixmaps sed -e "s+Exec=tuxpaint+Exec=$out/bin/tuxpaint+" < src/tuxpaint.desktop > $out/share/applications/tuxpaint.desktop # Install stamps @@ -99,6 +98,10 @@ stdenv.mkDerivation (finalAttrs: { cd tuxpaint-stamps-* make install-all PREFIX=$out + mkdir -p $out/share/icons/hicolor/32x32/apps + magick $out/share/pixmaps/tuxpaint.png -resize 32x32 $out/share/icons/hicolor/32x32/apps/tuxpaint.png + rm -r $out/share/pixmaps + # Requirements for tuxpaint-import wrapProgram $out/bin/tuxpaint-import \ --prefix PATH : ${lib.makeBinPath [ netpbm ]} From cd40731b14ece51f104b18f8ab209717f22b853d Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 19 Feb 2026 01:58:46 +0000 Subject: [PATCH 142/239] nirius: 0.6.1 -> 0.7.0 --- pkgs/by-name/ni/nirius/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ni/nirius/package.nix b/pkgs/by-name/ni/nirius/package.nix index 30fc65aa9a72..d55ec4204e99 100644 --- a/pkgs/by-name/ni/nirius/package.nix +++ b/pkgs/by-name/ni/nirius/package.nix @@ -6,16 +6,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "nirius"; - version = "0.6.1"; + version = "0.7.0"; src = fetchFromSourcehut { owner = "~tsdh"; repo = "nirius"; rev = "nirius-${finalAttrs.version}"; - hash = "sha256-KAh45AcNB9Y4ahxamtI6/z3l1xg6yf17h4rnZl3w89I="; + hash = "sha256-e/3FOlA29u214gs8Y4Tvk+XJUhT5Bn4GLrptbqrDRw8="; }; - cargoHash = "sha256-p123QvlB/j0b5kFjICcTI/5ZKL8pzGfIvH80doAhqFA="; + cargoHash = "sha256-4tdPm4+ykEjGeYpQxR3M8Zh84VMDkkQXAaWlehunZ8c="; meta = { description = "Utility commands for the niri wayland compositor"; From ebde4402e942974248eab7c2732ae0314a0478c9 Mon Sep 17 00:00:00 2001 From: pancaek <20342389+pancaek@users.noreply.github.com> Date: Wed, 18 Feb 2026 18:39:50 -0800 Subject: [PATCH 143/239] upscayl: move icon to spec-compliant location --- pkgs/by-name/up/upscayl/linux.nix | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/up/upscayl/linux.nix b/pkgs/by-name/up/upscayl/linux.nix index 0eba61244f05..1833aa9b7f9b 100644 --- a/pkgs/by-name/up/upscayl/linux.nix +++ b/pkgs/by-name/up/upscayl/linux.nix @@ -31,10 +31,8 @@ appimageTools.wrapType2 { ]; extraInstallCommands = '' - mkdir -p $out/share/{applications,pixmaps} - - cp ${appimageContents}/upscayl.desktop $out/share/applications/upscayl.desktop - cp ${appimageContents}/upscayl.png $out/share/pixmaps/upscayl.png + install -D ${appimageContents}/upscayl.desktop -t $out/share/applications + install -D ${appimageContents}/upscayl.png -t $out/share/icons/hicolor/512x512/apps substituteInPlace $out/share/applications/upscayl.desktop \ --replace-fail 'Exec=AppRun --no-sandbox %U' 'Exec=upscayl' From b428132aa62c373fb523981e2fb15807af9a0419 Mon Sep 17 00:00:00 2001 From: pancaek <20342389+pancaek@users.noreply.github.com> Date: Wed, 18 Feb 2026 18:43:30 -0800 Subject: [PATCH 144/239] urh: move icon to spec-compliant location --- pkgs/by-name/ur/urh/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/ur/urh/package.nix b/pkgs/by-name/ur/urh/package.nix index d71ce5ee0bd5..7beff4db9e02 100644 --- a/pkgs/by-name/ur/urh/package.nix +++ b/pkgs/by-name/ur/urh/package.nix @@ -85,7 +85,7 @@ python3Packages.buildPythonApplication (finalAttrs: { ]; postInstall = '' - install -Dm644 data/icons/appicon.png $out/share/pixmaps/urh.png + install -Dm644 data/icons/appicon.png $out/share/icons/hicolor/512x512/apps/urh.png ''; meta = { From 79a7a52d64e21234a3b0e309ac22a18c674b15f6 Mon Sep 17 00:00:00 2001 From: pancaek <20342389+pancaek@users.noreply.github.com> Date: Wed, 18 Feb 2026 19:00:14 -0800 Subject: [PATCH 145/239] clockify: move icon to spec-compliant location --- pkgs/by-name/cl/clockify/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/cl/clockify/package.nix b/pkgs/by-name/cl/clockify/package.nix index d25c393bc3a0..133293f75f87 100644 --- a/pkgs/by-name/cl/clockify/package.nix +++ b/pkgs/by-name/cl/clockify/package.nix @@ -19,7 +19,7 @@ appimageTools.wrapType2 rec { in '' install -Dm 444 ${appimageContents}/clockify.desktop -t $out/share/applications - install -Dm 444 ${appimageContents}/clockify.png -t $out/share/pixmaps + install -Dm 444 ${appimageContents}/clockify.png -t $out/share/icons/hicolor/1024x1024/apps substituteInPlace $out/share/applications/clockify.desktop \ --replace-fail 'Exec=AppRun' 'Exec=${pname}' From 9a537f7ede8699782a4dd4b67fac36d20e8018df Mon Sep 17 00:00:00 2001 From: pancaek <20342389+pancaek@users.noreply.github.com> Date: Wed, 18 Feb 2026 19:13:36 -0800 Subject: [PATCH 146/239] vintagestory: move icon to spec-compliant location --- pkgs/by-name/vi/vintagestory/package.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/vi/vintagestory/package.nix b/pkgs/by-name/vi/vintagestory/package.nix index 333a51bf753f..60f5ba20d977 100644 --- a/pkgs/by-name/vi/vintagestory/package.nix +++ b/pkgs/by-name/vi/vintagestory/package.nix @@ -23,6 +23,7 @@ waylandSupport ? false, wayland ? null, libxkbcommon ? null, + imagemagick, }: assert x11Support || waylandSupport; @@ -41,6 +42,7 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ makeWrapper copyDesktopItems + imagemagick ]; runtimeLibs = [ @@ -89,9 +91,9 @@ stdenv.mkDerivation (finalAttrs: { installPhase = '' runHook preInstall - mkdir -p $out/share/vintagestory $out/bin $out/share/pixmaps $out/share/fonts/truetype + mkdir -p $out/share/vintagestory $out/bin $out/share/icons/hicolor/512x512/apps $out/share/fonts/truetype cp -r * $out/share/vintagestory - cp $out/share/vintagestory/assets/gameicon.xpm $out/share/pixmaps/vintagestory.xpm + magick $out/share/vintagestory/assets/gameicon.xpm $out/share/icons/hicolor/512x512/apps/vintagestory.png cp $out/share/vintagestory/assets/game/fonts/*.ttf $out/share/fonts/truetype runHook postInstall From 03bbef35941b1a2df467e6352623443b6d6507d4 Mon Sep 17 00:00:00 2001 From: eljamm Date: Thu, 19 Feb 2026 05:42:11 +0000 Subject: [PATCH 147/239] linux_xanmod: 6.12.70 -> 6.12.73 - Changelog: https://dl.xanmod.org/changelog/6.12/ChangeLog-6.12.73-xanmod1.gz - Diff: https://gitlab.com/xanmod/linux/-/compare/6.12.70-xanmod1..6.12.73-xanmod1?from_project_id=51590166 --- pkgs/os-specific/linux/kernel/xanmod-kernels.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix index 00c749585e6d..c83213e94f54 100644 --- a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix +++ b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix @@ -15,8 +15,8 @@ let variants = { # ./update-xanmod.sh lts lts = { - version = "6.12.70"; - hash = "sha256-Azhv4au48TQbhGsngPvY8Uue71K9KQuJyqcYrM655xM="; + version = "6.12.73"; + hash = "sha256-kmfxbFQduQ+ZLlvJ6M+ZvcEvDza12040SuQjIvHme+o="; isLTS = true; }; # ./update-xanmod.sh main From 2ddf9d2faef8fefb1c8a55b8afc949b57d738a5f Mon Sep 17 00:00:00 2001 From: eljamm Date: Thu, 19 Feb 2026 05:45:19 +0000 Subject: [PATCH 148/239] linux_xanmod_latest: 6.18.10 -> 6.18.12 - Changelog: https://dl.xanmod.org/changelog/6.18/ChangeLog-6.18.12-xanmod1.gz - Diff: https://gitlab.com/xanmod/linux/-/compare/6.18.10-xanmod1..6.18.12-xanmod1?from_project_id=51590166 --- pkgs/os-specific/linux/kernel/xanmod-kernels.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix index c83213e94f54..67297d1aabbb 100644 --- a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix +++ b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix @@ -21,8 +21,8 @@ let }; # ./update-xanmod.sh main main = { - version = "6.18.10"; - hash = "sha256-bYKYx9ctHuWG+WS/Wtt4p2uW6vy2g5ikLqSPWeNeSn0="; + version = "6.18.12"; + hash = "sha256-MU0Xc+UZSleOv0GIkil7RnoaCmMBxv5Zzz6Ng1NNDy8="; }; }; From 9757ae74464913e755b5595273e7b75ac3694842 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 19 Feb 2026 06:08:28 +0000 Subject: [PATCH 149/239] modelscan: 0.8.5 -> 0.8.8 --- pkgs/by-name/mo/modelscan/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/mo/modelscan/package.nix b/pkgs/by-name/mo/modelscan/package.nix index a3b180618484..d506e3d3211d 100644 --- a/pkgs/by-name/mo/modelscan/package.nix +++ b/pkgs/by-name/mo/modelscan/package.nix @@ -6,14 +6,14 @@ python3.pkgs.buildPythonApplication (finalAttrs: { pname = "modelscan"; - version = "0.8.5"; + version = "0.8.8"; pyproject = true; src = fetchFromGitHub { owner = "protectai"; repo = "modelscan"; tag = "v${finalAttrs.version}"; - hash = "sha256-8VupkPiHebVtOqMdtkBflAI1zPRdDSvHCEq3ghjASaE="; + hash = "sha256-mN2X6Zbai7xm8bdr2hi9fwzIsfQtukeGcOIS32G4hA0="; }; pythonRelaxDeps = [ "rich" ]; From de82e1c9a038ed68156dc0a1b15b7137dd57dd9e Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 19 Feb 2026 06:20:51 +0000 Subject: [PATCH 150/239] cdk8s-cli: 2.204.7 -> 2.204.9 --- pkgs/by-name/cd/cdk8s-cli/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/cd/cdk8s-cli/package.nix b/pkgs/by-name/cd/cdk8s-cli/package.nix index 165c044da9c7..9cec2ba1663e 100644 --- a/pkgs/by-name/cd/cdk8s-cli/package.nix +++ b/pkgs/by-name/cd/cdk8s-cli/package.nix @@ -12,18 +12,18 @@ stdenv.mkDerivation (finalAttrs: { pname = "cdk8s-cli"; - version = "2.204.7"; + version = "2.204.9"; src = fetchFromGitHub { owner = "cdk8s-team"; repo = "cdk8s-cli"; rev = "v${finalAttrs.version}"; - hash = "sha256-+VY9vGGb/Fk2YhqDLDsdA/2jjKsiyGEOgaY+YNr0LCo="; + hash = "sha256-FV9/v8/UFrLtNPIZCh8No8A7n5oIzd9BlyjP1np8VZY="; }; yarnOfflineCache = fetchYarnDeps { inherit (finalAttrs) src; - hash = "sha256-BFkXKEpK/iTaO7MnkqyTt0VX+yYbSy0y8eqrQb88JdM="; + hash = "sha256-4/1euuWSaZcRO2gwMj55g+m+K46D/bEd+yFJojGap5k="; }; nativeBuildInputs = [ From 6d859f6a8a1485030d79d11582b45fc5337bfddf Mon Sep 17 00:00:00 2001 From: Pierre Roux Date: Thu, 19 Feb 2026 08:50:15 +0100 Subject: [PATCH 151/239] rocqPackages.mathcomp-bigenough: init at 1.0.4 --- .../mathcomp-bigenough/default.nix | 72 +++++++++++-------- .../mathcomp-bigenough/default.nix | 37 ++++++++++ pkgs/top-level/rocq-packages.nix | 1 + 3 files changed, 79 insertions(+), 31 deletions(-) create mode 100644 pkgs/development/rocq-modules/mathcomp-bigenough/default.nix diff --git a/pkgs/development/coq-modules/mathcomp-bigenough/default.nix b/pkgs/development/coq-modules/mathcomp-bigenough/default.nix index 0d890af79364..15bf8d24756d 100644 --- a/pkgs/development/coq-modules/mathcomp-bigenough/default.nix +++ b/pkgs/development/coq-modules/mathcomp-bigenough/default.nix @@ -6,37 +6,47 @@ version ? null, }: -mkCoqDerivation { +let + derivation = mkCoqDerivation { - namePrefix = [ - "coq" - "mathcomp" - ]; - pname = "bigenough"; - owner = "math-comp"; + namePrefix = [ + "coq" + "mathcomp" + ]; + pname = "bigenough"; + owner = "math-comp"; - release = { - "1.0.0".sha256 = "10g0gp3hk7wri7lijkrqna263346wwf6a3hbd4qr9gn8hmsx70wg"; - "1.0.1".sha256 = "sha256:02f4dv4rz72liciwxb2k7acwx6lgqz4381mqyq5854p3nbyn06aw"; - "1.0.2".sha256 = "sha256-fJ/5xr91VtvpIoaFwb3PlnKl6UHG6GEeBRVGZrVLMU0="; - "1.0.3".sha256 = "sha256-9ObUoaavnninL72r5iqkLz7lJBpcKXXi8LXKGhgx/N4="; + release = { + "1.0.0".sha256 = "10g0gp3hk7wri7lijkrqna263346wwf6a3hbd4qr9gn8hmsx70wg"; + "1.0.1".sha256 = "sha256:02f4dv4rz72liciwxb2k7acwx6lgqz4381mqyq5854p3nbyn06aw"; + "1.0.2".sha256 = "sha256-fJ/5xr91VtvpIoaFwb3PlnKl6UHG6GEeBRVGZrVLMU0="; + "1.0.3".sha256 = "sha256-9ObUoaavnninL72r5iqkLz7lJBpcKXXi8LXKGhgx/N4="; + }; + inherit version; + defaultVersion = + let + case = case: out: { inherit case out; }; + in + with lib.versions; + lib.switch coq.coq-version [ + (case (range "8.10" "9.1") "1.0.3") + (case (range "8.10" "9.1") "1.0.2") + (case (range "8.5" "8.14") "1.0.0") + ] null; + + propagatedBuildInputs = [ mathcomp-boot ]; + + meta = { + description = "Small library to do epsilon - N reasonning"; + license = lib.licenses.cecill-b; + }; }; - inherit version; - defaultVersion = - let - case = case: out: { inherit case out; }; - in - with lib.versions; - lib.switch coq.coq-version [ - (case (range "8.10" "9.1") "1.0.3") - (case (range "8.10" "9.1") "1.0.2") - (case (range "8.5" "8.14") "1.0.0") - ] null; - - propagatedBuildInputs = [ mathcomp-boot ]; - - meta = { - description = "Small library to do epsilon - N reasonning"; - license = lib.licenses.cecill-b; - }; -} +in +# this is just a wrapper for rocqPackages.mathcomp-bigenough for Rocq >= 9.0 +if coq.rocqPackages ? mathcomp-bigenough then + coq.rocqPackages.mathcomp-bigenough.override { + inherit version mathcomp-boot; + inherit (coq.rocqPackages) rocq-core; + } +else + derivation diff --git a/pkgs/development/rocq-modules/mathcomp-bigenough/default.nix b/pkgs/development/rocq-modules/mathcomp-bigenough/default.nix new file mode 100644 index 000000000000..2643fdda7456 --- /dev/null +++ b/pkgs/development/rocq-modules/mathcomp-bigenough/default.nix @@ -0,0 +1,37 @@ +{ + rocq-core, + mkRocqDerivation, + mathcomp-boot, + lib, + version ? null, +}: + +mkRocqDerivation { + + namePrefix = [ + "rocq-core" + "mathcomp" + ]; + pname = "bigenough"; + owner = "math-comp"; + + release = { + "1.0.4".sha256 = "sha256-cwfDCEFSXWnqV5aIrhTviUti0CXNwmFe6zVbqlD2iZw="; + }; + inherit version; + defaultVersion = + let + case = case: out: { inherit case out; }; + in + with lib.versions; + lib.switch rocq-core.rocq-version [ + (case (range "9.0" "9.1") "1.0.4") + ] null; + + propagatedBuildInputs = [ mathcomp-boot ]; + + meta = { + description = "Small library to do epsilon - N reasonning"; + license = lib.licenses.cecill-b; + }; +} diff --git a/pkgs/top-level/rocq-packages.nix b/pkgs/top-level/rocq-packages.nix index 0ce9d5f897de..9ce17a5314c1 100644 --- a/pkgs/top-level/rocq-packages.nix +++ b/pkgs/top-level/rocq-packages.nix @@ -46,6 +46,7 @@ let mathcomp-solvable = self.mathcomp.solvable; mathcomp-field = self.mathcomp.field; mathcomp-character = self.mathcomp.character; + mathcomp-bigenough = callPackage ../development/rocq-modules/mathcomp-bigenough { }; parseque = callPackage ../development/rocq-modules/parseque { }; relation-algebra = callPackage ../development/rocq-modules/relation-algebra { }; rocq-elpi = callPackage ../development/rocq-modules/rocq-elpi { }; From 0344418644b3b5e1507e93f0e61dbbbfbd7f6aa6 Mon Sep 17 00:00:00 2001 From: Pierre Roux Date: Thu, 19 Feb 2026 08:59:35 +0100 Subject: [PATCH 152/239] rocqPackages.mathcomp-finmap: init at 2.2.2 --- .../coq-modules/mathcomp-finmap/default.nix | 128 ++++++++++-------- .../rocq-modules/mathcomp-finmap/default.nix | 45 ++++++ pkgs/top-level/rocq-packages.nix | 1 + 3 files changed, 115 insertions(+), 59 deletions(-) create mode 100644 pkgs/development/rocq-modules/mathcomp-finmap/default.nix diff --git a/pkgs/development/coq-modules/mathcomp-finmap/default.nix b/pkgs/development/coq-modules/mathcomp-finmap/default.nix index 3aab002a5897..9c6b4b2bd49f 100644 --- a/pkgs/development/coq-modules/mathcomp-finmap/default.nix +++ b/pkgs/development/coq-modules/mathcomp-finmap/default.nix @@ -6,64 +6,74 @@ version ? null, }: -mkCoqDerivation { +let + derivation = mkCoqDerivation { - namePrefix = [ - "coq" - "mathcomp" - ]; - pname = "finmap"; - owner = "math-comp"; - inherit version; - defaultVersion = - let - case = coq: mc: out: { - cases = [ - coq - mc - ]; - inherit out; - }; - in - with lib.versions; - lib.switch - [ coq.coq-version mathcomp-boot.version ] - [ - (case (range "8.20" "9.1") (range "2.3" "2.5") "2.2.2") - (case (range "8.20" "9.1") (range "2.3" "2.4") "2.2.0") - (case (range "8.16" "9.0") (range "2.0" "2.3") "2.1.0") - (case (range "8.16" "8.18") (range "2.0" "2.1") "2.0.0") - (case (range "8.13" "8.20") (range "1.12" "1.19") "1.5.2") - (case (isGe "8.10") (range "1.11" "1.17") "1.5.1") - (case (range "8.7" "8.11") "1.11.0" "1.5.0") - (case (isEq "8.11") (range "1.8" "1.10") "1.4.0+coq-8.11") - (case (range "8.7" "8.11.0") (range "1.8" "1.10") "1.4.0") - (case (range "8.7" "8.11.0") (range "1.8" "1.10") "1.3.4") - (case (range "8.7" "8.9") "1.7.0" "1.1.0") - (case (range "8.6" "8.7") (range "1.6.1" "1.7") "1.0.0") - ] - null; - release = { - "2.2.2".sha256 = "sha256-G5fSdx4MhOXtQ2H8lpyK5FuIbWAZNc7vRL3hcYmGA2o="; - "2.2.0".sha256 = "sha256-oDQEZOutrJxmN8FvzovUIhqw0mwc8Ej7thrieJrW8BY="; - "2.1.0".sha256 = "sha256-gh0cnhdVDyo+D5zdtxLc10kGKQLQ3ITzHnMC45mCtpY="; - "2.0.0".sha256 = "sha256-0Wr1ZUYVuZH74vawO4EZlZ+K3kq+s1xEz/BfzyKj+wk="; - "1.5.2".sha256 = "sha256-0KmmSjc2AlUo6BKr9RZ4FjL9wlGISlTGU0X1Eu7l4sw="; - "1.5.1".sha256 = "0ryfml4pf1dfya16d8ma80favasmrygvspvb923n06kfw9v986j7"; - "1.5.0".sha256 = "0vx9n1fi23592b3hv5p5ycy7mxc8qh1y5q05aksfwbzkk5zjkwnq"; - "1.4.1".sha256 = "0kx4nx24dml1igk0w0qijmw221r5bgxhwhl5qicnxp7ab3c35s8p"; - "1.4.0+coq-8.11".sha256 = "1fd00ihyx0kzq5fblh9vr8s5mr1kg7p6pk11c4gr8svl1n69ppmb"; - "1.4.0".sha256 = "0mp82mcmrs424ff1vj3cvd8353r9vcap027h3p0iprr1vkkwjbzd"; - "1.3.4".sha256 = "0f5a62ljhixy5d7gsnwd66gf054l26k3m79fb8nz40i2mgp6l9ii"; - "1.2.1".sha256 = "0jryb5dq8js3imbmwrxignlk5zh8gwfb1wr4b1s7jbwz410vp7zf"; - "1.1.0".sha256 = "05df59v3na8jhpsfp7hq3niam6asgcaipg2wngnzxzqnl86srp2a"; - "1.0.0".sha256 = "0sah7k9qm8sw17cgd02f0x84hki8vj8kdz7h15i7rmz08rj0whpa"; + namePrefix = [ + "coq" + "mathcomp" + ]; + pname = "finmap"; + owner = "math-comp"; + inherit version; + defaultVersion = + let + case = coq: mc: out: { + cases = [ + coq + mc + ]; + inherit out; + }; + in + with lib.versions; + lib.switch + [ coq.coq-version mathcomp-boot.version ] + [ + (case (range "8.20" "9.1") (range "2.3" "2.5") "2.2.2") + (case (range "8.20" "9.1") (range "2.3" "2.4") "2.2.0") + (case (range "8.16" "9.0") (range "2.0" "2.3") "2.1.0") + (case (range "8.16" "8.18") (range "2.0" "2.1") "2.0.0") + (case (range "8.13" "8.20") (range "1.12" "1.19") "1.5.2") + (case (isGe "8.10") (range "1.11" "1.17") "1.5.1") + (case (range "8.7" "8.11") "1.11.0" "1.5.0") + (case (isEq "8.11") (range "1.8" "1.10") "1.4.0+coq-8.11") + (case (range "8.7" "8.11.0") (range "1.8" "1.10") "1.4.0") + (case (range "8.7" "8.11.0") (range "1.8" "1.10") "1.3.4") + (case (range "8.7" "8.9") "1.7.0" "1.1.0") + (case (range "8.6" "8.7") (range "1.6.1" "1.7") "1.0.0") + ] + null; + release = { + "2.2.2".sha256 = "sha256-G5fSdx4MhOXtQ2H8lpyK5FuIbWAZNc7vRL3hcYmGA2o="; + "2.2.0".sha256 = "sha256-oDQEZOutrJxmN8FvzovUIhqw0mwc8Ej7thrieJrW8BY="; + "2.1.0".sha256 = "sha256-gh0cnhdVDyo+D5zdtxLc10kGKQLQ3ITzHnMC45mCtpY="; + "2.0.0".sha256 = "sha256-0Wr1ZUYVuZH74vawO4EZlZ+K3kq+s1xEz/BfzyKj+wk="; + "1.5.2".sha256 = "sha256-0KmmSjc2AlUo6BKr9RZ4FjL9wlGISlTGU0X1Eu7l4sw="; + "1.5.1".sha256 = "0ryfml4pf1dfya16d8ma80favasmrygvspvb923n06kfw9v986j7"; + "1.5.0".sha256 = "0vx9n1fi23592b3hv5p5ycy7mxc8qh1y5q05aksfwbzkk5zjkwnq"; + "1.4.1".sha256 = "0kx4nx24dml1igk0w0qijmw221r5bgxhwhl5qicnxp7ab3c35s8p"; + "1.4.0+coq-8.11".sha256 = "1fd00ihyx0kzq5fblh9vr8s5mr1kg7p6pk11c4gr8svl1n69ppmb"; + "1.4.0".sha256 = "0mp82mcmrs424ff1vj3cvd8353r9vcap027h3p0iprr1vkkwjbzd"; + "1.3.4".sha256 = "0f5a62ljhixy5d7gsnwd66gf054l26k3m79fb8nz40i2mgp6l9ii"; + "1.2.1".sha256 = "0jryb5dq8js3imbmwrxignlk5zh8gwfb1wr4b1s7jbwz410vp7zf"; + "1.1.0".sha256 = "05df59v3na8jhpsfp7hq3niam6asgcaipg2wngnzxzqnl86srp2a"; + "1.0.0".sha256 = "0sah7k9qm8sw17cgd02f0x84hki8vj8kdz7h15i7rmz08rj0whpa"; + }; + + propagatedBuildInputs = [ mathcomp-boot ]; + + meta = { + description = "Finset and finmap library"; + license = lib.licenses.cecill-b; + }; }; - - propagatedBuildInputs = [ mathcomp-boot ]; - - meta = { - description = "Finset and finmap library"; - license = lib.licenses.cecill-b; - }; -} +in +# this is just a wrapper for rocqPackages.mathcomp-finmap for Rocq >= 9.0 +if coq.rocqPackages ? mathcomp-finmap then + coq.rocqPackages.mathcomp-finmap.override { + inherit version mathcomp-boot; + inherit (coq.rocqPackages) rocq-core; + } +else + derivation diff --git a/pkgs/development/rocq-modules/mathcomp-finmap/default.nix b/pkgs/development/rocq-modules/mathcomp-finmap/default.nix new file mode 100644 index 000000000000..5fd9b61f82e4 --- /dev/null +++ b/pkgs/development/rocq-modules/mathcomp-finmap/default.nix @@ -0,0 +1,45 @@ +{ + rocq-core, + mkRocqDerivation, + mathcomp-boot, + lib, + version ? null, +}: + +mkRocqDerivation { + + namePrefix = [ + "rocq-core" + "mathcomp" + ]; + pname = "finmap"; + owner = "math-comp"; + inherit version; + defaultVersion = + let + case = rocq: mc: out: { + cases = [ + rocq + mc + ]; + inherit out; + }; + in + with lib.versions; + lib.switch + [ rocq-core.rocq-version mathcomp-boot.version ] + [ + (case (range "9.0" "9.1") (range "2.3" "2.5") "2.2.2") + ] + null; + release = { + "2.2.2".sha256 = "sha256-G5fSdx4MhOXtQ2H8lpyK5FuIbWAZNc7vRL3hcYmGA2o="; + }; + + propagatedBuildInputs = [ mathcomp-boot ]; + + meta = { + description = "Finset and finmap library"; + license = lib.licenses.cecill-b; + }; +} diff --git a/pkgs/top-level/rocq-packages.nix b/pkgs/top-level/rocq-packages.nix index 9ce17a5314c1..53f5720c53d9 100644 --- a/pkgs/top-level/rocq-packages.nix +++ b/pkgs/top-level/rocq-packages.nix @@ -47,6 +47,7 @@ let mathcomp-field = self.mathcomp.field; mathcomp-character = self.mathcomp.character; mathcomp-bigenough = callPackage ../development/rocq-modules/mathcomp-bigenough { }; + mathcomp-finmap = callPackage ../development/rocq-modules/mathcomp-finmap { }; parseque = callPackage ../development/rocq-modules/parseque { }; relation-algebra = callPackage ../development/rocq-modules/relation-algebra { }; rocq-elpi = callPackage ../development/rocq-modules/rocq-elpi { }; From 6f64eef378814b60d32a2a05c2537b04addc1c5c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 19 Feb 2026 08:32:13 +0000 Subject: [PATCH 153/239] pacu: 1.6.1 -> 1.6.2 --- pkgs/by-name/pa/pacu/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/pa/pacu/package.nix b/pkgs/by-name/pa/pacu/package.nix index f9a9f1d4914e..64b5a12279f0 100644 --- a/pkgs/by-name/pa/pacu/package.nix +++ b/pkgs/by-name/pa/pacu/package.nix @@ -13,14 +13,14 @@ let in python.pkgs.buildPythonApplication (finalAttrs: { pname = "pacu"; - version = "1.6.1"; + version = "1.6.2"; pyproject = true; src = fetchFromGitHub { owner = "RhinoSecurityLabs"; repo = "pacu"; tag = "v${finalAttrs.version}"; - hash = "sha256-Td5H4O6/7Gh/rvP191xjCJmIbyc4ezZC5Fh4FZ39ZUM="; + hash = "sha256-Hrks6mvvmmdCMxprB/SPlkfcSu6uyoEVtb0eUD3CALo="; }; pythonRelaxDeps = [ From 13c8a5ec19839be10be1639e71881fb6583ad61c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 19 Feb 2026 08:53:02 +0000 Subject: [PATCH 154/239] renode-bin: 1.16.0 -> 1.16.1 --- pkgs/by-name/re/renode-bin/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/re/renode-bin/package.nix b/pkgs/by-name/re/renode-bin/package.nix index edf34d337346..d8314e908541 100644 --- a/pkgs/by-name/re/renode-bin/package.nix +++ b/pkgs/by-name/re/renode-bin/package.nix @@ -51,11 +51,11 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "renode"; - version = "1.16.0"; + version = "1.16.1"; src = fetchurl { url = "https://github.com/renode/renode/releases/download/v${finalAttrs.version}/renode-${finalAttrs.version}.linux-dotnet.tar.gz"; - hash = "sha256-oNlTz5LBggPkjKM4TJO2UDKQdt2Ga7rBTdgyGjN8/zA="; + hash = "sha256-YmKcqjMe1L1Ot6vhPuLkg0+8qnDeSS2zll+vpO3FaU8="; }; nativeBuildInputs = [ From af2d74e02da98e4e74d3d185780bf112ffc32e66 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 19 Feb 2026 10:38:57 +0100 Subject: [PATCH 155/239] python313Packages.iamdata: 0.1.202602181 -> 0.1.202602191 Diff: https://github.com/cloud-copilot/iam-data-python/compare/v0.1.202602181...v0.1.202602191 Changelog: https://github.com/cloud-copilot/iam-data-python/releases/tag/v0.1.202602191 --- pkgs/development/python-modules/iamdata/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/iamdata/default.nix b/pkgs/development/python-modules/iamdata/default.nix index 19f83ae76045..6f41f95fdb7e 100644 --- a/pkgs/development/python-modules/iamdata/default.nix +++ b/pkgs/development/python-modules/iamdata/default.nix @@ -8,14 +8,14 @@ buildPythonPackage (finalAttrs: { pname = "iamdata"; - version = "0.1.202602181"; + version = "0.1.202602191"; pyproject = true; src = fetchFromGitHub { owner = "cloud-copilot"; repo = "iam-data-python"; tag = "v${finalAttrs.version}"; - hash = "sha256-6HLwpTFTqS3T6VQ9jwr7+wVv8ARLDbh9a/68txWMvJU="; + hash = "sha256-yvfJith7JfwO6lO57K3y98vqGHkEiEzmfM0WAktufck="; }; __darwinAllowLocalNetworking = true; From f90c28b4666dbdcd5510595f90c2a103ebeff60f Mon Sep 17 00:00:00 2001 From: Angelo Delefortrie Date: Thu, 19 Feb 2026 10:40:02 +0100 Subject: [PATCH 156/239] swagger-typescript-api: 13.2.16 -> 13.2.18 --- .../missing-hashes.json | 72 ------------------ .../sw/swagger-typescript-api/package.nix | 76 ++++++++++++++----- 2 files changed, 56 insertions(+), 92 deletions(-) delete mode 100644 pkgs/by-name/sw/swagger-typescript-api/missing-hashes.json diff --git a/pkgs/by-name/sw/swagger-typescript-api/missing-hashes.json b/pkgs/by-name/sw/swagger-typescript-api/missing-hashes.json deleted file mode 100644 index e69a0ea7abd4..000000000000 --- a/pkgs/by-name/sw/swagger-typescript-api/missing-hashes.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "@biomejs/cli-darwin-arm64@npm:2.2.6": "38ade81bfc2cf3c981fc6c06f15d41faefec1eed3be7a9c856304db9d0010700769479e2df16f7f421bf335a910b72fa1bf5185f30dd8372d416972a623c7841", - "@biomejs/cli-darwin-x64@npm:2.2.6": "42d5a3ca874969d3e1d72a7151f1ef3a40cb887f8c6c315a1898cf53f8a825eeb1419fbc691adf1551ec06355cf4c11f5400ecb42720e63a44c5c5b0db6f1cbc", - "@biomejs/cli-linux-arm64-musl@npm:2.2.6": "866839019a2a5ad2e731a4f04c1effdeb41a2559e04639ecc33bbc119c0d217175dd8e972ec54d34f84edea8db00ee75fda7bca44bbdcba5495ebffbaf3dc709", - "@biomejs/cli-linux-arm64@npm:2.2.6": "18db4d7c04347b2095584b9ed851234aeb31599a112176418d8b29d3dcc73f6e2b4a759e3c20b3a0440d57b6656056c418f8b9f52aad5e1bbb02385f97792bee", - "@biomejs/cli-linux-x64-musl@npm:2.2.6": "b43573c8cda9b9026d911931b8fd517a0e1f661ff6529ad718852cc8716a68632361d06f1c14bcc73fd600c69aeb7542680ac66a46a2461f6a4a645e7cef1d9b", - "@biomejs/cli-linux-x64@npm:2.2.6": "06f32d1d001eb09d9783587318f94fa52c3055826c0b835f48c18fc480aecfd311bcc0ddac678c709949f3b99b1283450cb073bbcc8b1631c39877d7264ac62e", - "@biomejs/cli-win32-arm64@npm:2.2.6": "fbdbb024198c027edc2043e1f6416592263624a4534768a98a46b359bfa813e9b919e2bb89f10114b7bfd7e78d29b298773262a255c924555096b39df9d35323", - "@biomejs/cli-win32-x64@npm:2.2.6": "7ceac86065c5e7c765993d4b300fd29c710678d2c65ea4394ed68ccf6ae1fa5133730829a7db8915dfb2877792093b8d5fe6eaea3ed727826ee5e2ac11530274", - "@esbuild/aix-ppc64@npm:0.25.11": "46c2697b0e5bf6a1d1d57e80358ee04fcb0d59a1c6648759ec94e12a83af50d35ecf2469cf7c5643f85a9b2c5b2f91173bc6485ebec9bb9add4a6b30b5dab95c", - "@esbuild/android-arm64@npm:0.25.11": "cc45d931e813767a15ad6e7fd6071c97865a2e9aaa0d3a78374da452d303dbea71a4f13c63426b01f71ce3c10dd208f9382e6387505111adaf631e39749aa404", - "@esbuild/android-arm@npm:0.25.11": "b8ee90079d3d6c02b732529b04d2e6c017d12b2c401f2f8d6e60ec5fb1060d819edde5429acfbc7471b2224b4457de8cb99b97bea4164e94a3da2cbf121e60a4", - "@esbuild/android-x64@npm:0.25.11": "c03182ed17c50ab29973b19814cbdee85ff67ba00e13f001fafabcf7538d061fd737a783fc4131f96e22b2e7bed26936e5e730b717bb88ffb0b8c429fadd6536", - "@esbuild/darwin-arm64@npm:0.25.11": "67114421780e01c947d3a646d9737d5965e2bf39ea75a2440d614971b7b2565a8cc91c39780f5b86adc25cdc466bbf1ade79a05cef71827e3f3a2be00435d868", - "@esbuild/darwin-x64@npm:0.25.11": "da5612584d5fc2e714efc0876826fa45a48fa3b881be4a728516f2394c6aeb72f6ca8ce08272106c24ea6a9b040513afd847b4ea9bfcc5a6637e427a1634acd7", - "@esbuild/freebsd-arm64@npm:0.25.11": "8ad357e0b7605a320d428b10ab704a2f34383786bb43e663ebb62ded22297343c72149ab126257629308195cd18b4828f9b90579b224c26d2ca56f416dcb3e48", - "@esbuild/freebsd-x64@npm:0.25.11": "a42ea4c6801eb2ff09b0f1e67a04b2d4a00da9dc08233a8dc227b25468efa954ea13478bd2f2dad46bf78e8d1ec3cf11b1edbc1b50af7e61da05e715f0ea0fc7", - "@esbuild/linux-arm64@npm:0.25.11": "c8f87df1d15ff5c835d782e26213bb28653eed9388351e42c073431ffa8e3606fa8e0670ccb0df325f56a9695782b34c98af2fe30756953a883f9da63d1eb42a", - "@esbuild/linux-arm@npm:0.25.11": "122d069ed8332d3eb6e3f0d99c7f25d8920d6aff3655013d6bc2f3666fcba85ae074402b54f3a2ca9a3a3a9cd54350fac1f56252d84d466daefca7a8dc82975b", - "@esbuild/linux-ia32@npm:0.25.11": "dbd90c3efbbb33b920abb3f3def4a61fcff258b8a60289c61c0ba6d5210fae8fd569af991ff9aaebe03b3c24a0c67a5fd74d8e32e8fd7c5a0dbf1898aeeb2bf3", - "@esbuild/linux-loong64@npm:0.25.11": "c58d14d84cf4f024f5cc585efd759b161ec4122767d94500578cf32f9649542ab7e7b5e2b88389d774d4544d50a39ba1e0d791793170643645ec6a2eb8836ffe", - "@esbuild/linux-mips64el@npm:0.25.11": "5a3f4ccefe0d8ed30806a6984b7b6cee17e2f2a14d3f6d64c37f05f78f6dddd04821fd5ff4d61044ce23c0206a8fd4f1535a90d534e26cb5e90c8c04d1203a0a", - "@esbuild/linux-ppc64@npm:0.25.11": "e35d0a4e54f7d48aa931abe6211b7fc374291b26cd59849fff938499114b5b34e3da15b71e67b76f83c1d712d6f78a50255d8b96bacaad8df233771126544ebe", - "@esbuild/linux-riscv64@npm:0.25.11": "4e932cf5950d97aec76aa5c52d7d15e7135f2b865414c97cd4410adc3f8b26e1588cda7a09222b92f54fff8c888180219e822b9a633c833098bb876b1e66ac02", - "@esbuild/linux-s390x@npm:0.25.11": "af2b8a5c0a6147985b1d194a7c1323b4693b72ad5884de1292f045882b41436cf4e64828c18cdbf7b85763060404279cc070fbf74c00f9f82d8f35469b8c0073", - "@esbuild/linux-x64@npm:0.25.11": "1e1fe2d9c8ae8ed76f3090ff2e4d3d084d581cc9298e349daf8addd398ae9b466a1817d9640202956d72479a82e602979ca364035d10e8cb6e2c2baf6e850081", - "@esbuild/netbsd-arm64@npm:0.25.11": "03e86862f25a9d3ed05383031ab3430ba73b80e5a1617cf0b9f91ce2a4d5700125398722a4a6145299d6f3626caca556d30604bd24f88af1a289794822322814", - "@esbuild/netbsd-x64@npm:0.25.11": "af848a8e720c5ba4fb63a748c657e366770e4f00a249dd4a0eb996bdafa0fcad7f04c88df3ed29cb1b488f76c4f7c3355e192ff71392c81d641dd52bc453355c", - "@esbuild/openbsd-arm64@npm:0.25.11": "40d46a15da7643aa57ba7a61aa8174cc7ead37f67b3438eaeb407f6527712b848327a025484a57ce936debced507a2d405614e790491aa181f8178c09b8f2ad2", - "@esbuild/openbsd-x64@npm:0.25.11": "8ee73b8cfe0b5d24433400bddcb20c3ceb2cab3d11112ba01c5ee799e3629d24267f6dcfcb2f3aef89726ddc5d10592e35ec46b9725cc9e297af3d8d35a3122b", - "@esbuild/openharmony-arm64@npm:0.25.11": "bf2fa9985a1aaba0a4376657e72e73c7d5368d0a1972e12788ec276384e6a20637904c5d07b52a9f10306735898730dbebd55a6234cc0cd30962ee130c7b9a8b", - "@esbuild/sunos-x64@npm:0.25.11": "7ac357650fadc4ad44a0615a184920734ab5f4432ddd913bef2cf4e4ef7855f7ffd1995cfabb323c10cb9b876f252cf3f7938b4450cfa9ce3b1488e47d91b6cf", - "@esbuild/win32-arm64@npm:0.25.11": "01a7db317fecb784cd273ddfb0f3eb35871709904cc879adfbeca139cb33fbe8db6d33ee53ae4eb3b4185ef9fb6d6f140d9ac0fcbbe61518cf546487d7430dcb", - "@esbuild/win32-ia32@npm:0.25.11": "cdb90fcd780022685374b762b2f6fdd19501ff43c4b4b63b9b875cdb56d4c79b4747f36f4893ce57d3f0c520aaf30b0f31309e606bae14738300b22bbb30b1df", - "@esbuild/win32-x64@npm:0.25.11": "a7b6080abc4d575c0572e880cefcb24faf89f7e48057652d6ab11e2e5b3fbd4555d27246ee281d5a1ac1f744a29ff90573e7075310e171ade9e2838665caefce", - "@rolldown/binding-android-arm64@npm:1.0.0-beta.44": "3584478753a119db5c345c314b7a80a122fe1f4aa868773d5103942f62e81493f922f440c040af86902296b8343a418f8ff325f0336ca477c58a3f00a5fe92cd", - "@rolldown/binding-darwin-arm64@npm:1.0.0-beta.44": "b3ffe5e3e54d7db2aa77ea24399016c934b68e3c4e7d5124ea90e85a7814e74ef933e07fd640ca0608fbf4a46f6db21087fa301ebf209883db8d0f43b97b5081", - "@rolldown/binding-darwin-x64@npm:1.0.0-beta.44": "ecad93425fde8cbc0ab451592887f068fbd3b2e6e7c6a54c12e4f02dceb499ec584a5ebd854b94691e78ad1a097846e0328485adc7c8f69a66531001dfd3afa0", - "@rolldown/binding-freebsd-x64@npm:1.0.0-beta.44": "4b397b3e5bf3ba2b3f4af648921bd027fbaf9859041b92aa36c9a60d4e25eb7f67da8812d61b80078957ffd2836d3a9618dfa6c4d1141e2c4eb1dd6d4b7a051c", - "@rolldown/binding-linux-arm-gnueabihf@npm:1.0.0-beta.44": "0d2be4daa7358490a081769efc6bf5a7ef8007706bf8a54d354950214b4eff91b367f21f4cb4d05d0e0a3dc759528bf8d7eab7e482754c74321d66d612997f43", - "@rolldown/binding-linux-arm64-gnu@npm:1.0.0-beta.44": "4a0d9d0e06fae39dcd984e5dcb858aa38d34d412e8472290593f3b907aac6e8c1e60b7659020b71063d469faa904dee78fb6678979292ddc7060e765cf0258a7", - "@rolldown/binding-linux-arm64-musl@npm:1.0.0-beta.44": "3dfb95b4663bc950d1ed5f93162ed1b7a2cb02281f1ee82901844a9e22e34369dece54d5a9bbf9d3d2381407ca363b8536d236421a793dbd72350dc65d7bfc46", - "@rolldown/binding-linux-x64-gnu@npm:1.0.0-beta.44": "d6329c568d9ccd363b215ebffff7b86df0a102d0dcf2b56e32a81e2d1961d052691d8a90e9df5dff3c819a0965635b3b5beb71e125fb7f385aebdf458b3f53a8", - "@rolldown/binding-linux-x64-musl@npm:1.0.0-beta.44": "b0fd15a216b02ff03cb927e84802bc9d8454d5cafcc3561cb9f642997fd5869c6611bdbb5e3391d9d6866ea8b764876db8dcbab6a52017025f4f349c83c6a51f", - "@rolldown/binding-openharmony-arm64@npm:1.0.0-beta.44": "e367f21610a6daf111f337824334474213172f4050d67bf4c7a29f69ba43e35733911cf4c44906b3170cdcaf9fb96ba6386eff29e02650109e11130da46dc53a", - "@rolldown/binding-wasm32-wasi@npm:1.0.0-beta.44": "a53092c1338dfc25fc0447a223748ef5048058ee420fefda15e846131b31c3c8fc6d3f2e975467190905f91abccf8de570653aed77a147513d3dae7ff0004931", - "@rolldown/binding-win32-arm64-msvc@npm:1.0.0-beta.44": "d985908536816c176699b21626ad57106af36a99d665437cf58f827f54491200763f2b47870c218ac3022d4a43c6ff5bb38438f81a18a1fc88fc837d9e53a459", - "@rolldown/binding-win32-ia32-msvc@npm:1.0.0-beta.44": "f247d3a00caa1238fed18d6d7f884d02291e3fd570d987f50bf77b0886e767529dae2586093bfd820320eb0548cbdba6784f5b49afd49032a883bfc3f1ea19b4", - "@rolldown/binding-win32-x64-msvc@npm:1.0.0-beta.44": "9f13f6cd9f6ba17c79a7c398c1931cd2e8321703d30aea0de56e5c6175e4979d96988ca941576d0d424e928e873625c5802d081498e8111e52382ada737656f2", - "@rollup/rollup-android-arm-eabi@npm:4.52.5": "62451748fde2f4a8e8423b2e7f83fd0342e57433fa0f71d378ea38ed3f85dc6a0706ef9feae21d79428f4e274da45c07bc49eb1b3a82c08f6b98d8cf20de83f7", - "@rollup/rollup-android-arm64@npm:4.52.5": "d050880ec4e14c0d1ab7e32e6a843c3f39b4161ddd574532482807e6e559e34dee8bfe3862bf06a62e79e46a410afaa3dafedc5e0db41db5cf39c10bbcf32330", - "@rollup/rollup-darwin-arm64@npm:4.52.5": "4c7a2994ec5bb915b5b455a507b296c892c914ed0c0c3e8e1958d7e021dc47627a27c756f1628aca2e2ace8487dc93dd801483f0ec40f92603b6a788322e66ed", - "@rollup/rollup-darwin-x64@npm:4.52.5": "fcdc3b7954afea6dc191a6244e793a32e8373e1798020d1cfcaf5da48bd23c533b661763d2dbfb87412bf5b1a59377ec06560f64da869126ab8c995391de9047", - "@rollup/rollup-freebsd-arm64@npm:4.52.5": "f52788b616f5bc4c5edbc41ca2ac4fde7fbed678a0d2c3249111f4322a76550e682037563d07a0f07eb21f82289e9c5616c41797f3d9caa6d5b4261b8e1ce642", - "@rollup/rollup-freebsd-x64@npm:4.52.5": "8fcb45fd9b7ec02848230cefac866bca73f38071e2e85e1217627007df211e814743e3e2525b236dc410acea7f7c4484050e2338391bda509bac34e7e0bc9ca4", - "@rollup/rollup-linux-arm-gnueabihf@npm:4.52.5": "ff055f9efd2f8d1e1ced74a0defa0d089b54789f2b3d3d8f9261180059d6cd45fb895399c938c87467419ce1b37f7c50eaec333d5f140e7d8b53874cfba7bad9", - "@rollup/rollup-linux-arm-musleabihf@npm:4.52.5": "2932799d8e79831d1f79032d2bced666503466a5d3b87e98a12f577400bad80dfb5ce2883318059c038d061319ed51ed58213bc9b253b3c60a1ac5ca3807ba46", - "@rollup/rollup-linux-arm64-gnu@npm:4.52.5": "f2bf47b114856efd75e23baa3c3954fc2a8b864d678610fec5c2ecdab5736d1068fe3c813d29592a9de3f54c0de4055190670ef842333f5bc9e34e1221fb403e", - "@rollup/rollup-linux-arm64-musl@npm:4.52.5": "26c8ded405da1a31c414677de84c261d1139cd7bf568e979036d39c613a2783bff559ba9cd4ebeda06c517d709050fea97ed65ca482316322984a1bad51ccc05", - "@rollup/rollup-linux-loong64-gnu@npm:4.52.5": "3fec9dbb69d304495c40c26d49e736ae98ac173368ed0f0115fdf90b464e8bdd716b5a10f0458438a8ee31d5b13cb219ceff2ea0773537a87b597a3aaf6c0fbd", - "@rollup/rollup-linux-ppc64-gnu@npm:4.52.5": "542b1171f910f3298a1f326ca6dfb41463ac8a9291f21502830a75217d91c38a0701517c4424c1d114b7fcba06b5fdc1ac95b9814ff542fc1c5741c965a12fc0", - "@rollup/rollup-linux-riscv64-gnu@npm:4.52.5": "3f8a728b372d5cd2964281bdfe6184cd6dcff579681ea3a9bcb240d2fdaa0181a763f6f34930eae206d00c687cbecfa3d3b18b49bfdef0b772809fac80e007d8", - "@rollup/rollup-linux-riscv64-musl@npm:4.52.5": "26b5a6d0983aeea544421d697787a540de653a84f948389280cfde0add366fa0fb7af4a5e67ca490a63a8fabca801f04b23a70bb948cbe06d48aa0ab0b3fff73", - "@rollup/rollup-linux-s390x-gnu@npm:4.52.5": "6f4b1605d9cb191ec404ad2418f5fbc43d5585a83eeb33f8a8de6d2393e4ec85fb42a4e55da7d100bdd708e830e89b815d4e444f34b3002096370b1e1e80bee7", - "@rollup/rollup-linux-x64-gnu@npm:4.52.5": "70fdee240db9c56c9a2a202450f4fb2b8cad059bb001c10cfc37b8ba1a333f1ad61b4a9bc01df005d9d0eb9c7ae57103c70c4ba58ef89942e11b0eb449cb3fd8", - "@rollup/rollup-linux-x64-musl@npm:4.52.5": "871865574e0a5f79af49151685b1e243d43f0eb11100cffb9d835c4aa3423a471dfbb56ba7d16928eb11df7956e307c74d0b5cd872db711cd382bc36e487be9a", - "@rollup/rollup-openharmony-arm64@npm:4.52.5": "15150989aa46138a5675962f1bfb01640a212e26976e799be4b0029c2e6f0e7a21b32754457b13dac05d02aa04814b6d0a6ee43dbf3473dc9fce00c7d8c0155f", - "@rollup/rollup-win32-arm64-msvc@npm:4.52.5": "6433d349de33e71bb1cd11192ac58827630ef1b4eef79af40708cd7a8375922bfdcde69ed9e31309ae9b9224e3d9237ac00191a1c8406c7e3bbfa99d57baae00", - "@rollup/rollup-win32-ia32-msvc@npm:4.52.5": "0da2d66ad1bc046a601b9de5a1266ba61a08e211df670d056451a58ee92a1a1de3739cfae853bf133c4204802ec7c72d2fae607f7ef31789e6124c23441f3f07", - "@rollup/rollup-win32-x64-gnu@npm:4.52.5": "a7d3489e79f1cd8e4d34e784f3e32e9681170e4fc7d568cf43b31511c6b9c0e03db722c76baa595799c85ebd96a7e6ce66670ec00ed253e674d7e732a244c554", - "@rollup/rollup-win32-x64-msvc@npm:4.52.5": "eb1c823b1e13f27b49321ae56f4c35710194d674034820f6c0b66a2309cbefaff7bc4a58e6c3fbb2453f8913f4aa1cc173cf9f6e9085df47f1922626630260da" -} diff --git a/pkgs/by-name/sw/swagger-typescript-api/package.nix b/pkgs/by-name/sw/swagger-typescript-api/package.nix index b54a6c588812..0134079d766c 100644 --- a/pkgs/by-name/sw/swagger-typescript-api/package.nix +++ b/pkgs/by-name/sw/swagger-typescript-api/package.nix @@ -1,15 +1,19 @@ { lib, fetchFromGitHub, - yarn-berry_4, stdenv, + makeBinaryWrapper, + writableTmpDirAsHomeHook, nodejs, - makeWrapper, + bun, }: let pname = "swagger-typescript-api"; - version = "13.2.16"; - yarn-berry = yarn-berry_4; + version = "13.2.18"; + + node-modules-hash = { + "x86_64-linux" = "sha256-IkJk9g5FdvNaBsXaazNg0YX5f2jb/KxHU7BSm0/u4cs="; + }; in stdenv.mkDerivation (finalAttrs: { inherit pname version; @@ -17,27 +21,59 @@ stdenv.mkDerivation (finalAttrs: { src = fetchFromGitHub { owner = "acacode"; repo = "swagger-typescript-api"; - rev = version; - hash = "sha256-SPvOCoxtf7x8MLPV8kylyaNXHaNtsHvs6liagd7iyF8="; + rev = "v${version}"; + hash = "sha256-2EC3bLP57qOMXATXVQzlFSUs/KCm8L24saJq0HMgHaY="; + }; + + node_modules = stdenv.mkDerivation { + inherit (finalAttrs) src version; + pname = "${pname}-node_modules"; + + nativeBuildInputs = [ + bun + writableTmpDirAsHomeHook + ]; + + dontConfigure = true; + + buildPhase = '' + runHook preBuild + + export BUN_INSTALL_CACHE_DIR=$(mktemp -d) + bun install --no-progress --frozen-lockfile --no-cache + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/node_modules + cp -R ./node_modules $out + + runHook postInstall + ''; + + outputHash = + node-modules-hash.${stdenv.hostPlatform.system} + or (throw "${finalAttrs.pname}: Platform ${stdenv.hostPlatform.system} is not packaged yet. Supported platforms: x86_64-linux."); + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; }; nativeBuildInputs = [ - makeWrapper - yarn-berry.yarnBerryConfigHook - yarn-berry + makeBinaryWrapper nodejs + bun ]; - missingHashes = ./missing-hashes.json; - offlineCache = yarn-berry.fetchYarnBerryDeps { - inherit (finalAttrs) src missingHashes; - hash = "sha256-ZIF+sA/Wp2Rbu9CeERZo1X1oC00SjE64Mk5verb8IxU="; - }; - buildPhase = '' runHook preBuild - yarn run build + cp -R ${finalAttrs.node_modules}/node_modules . + patchShebangs node_modules + + bun run build runHook postBuild ''; @@ -48,8 +84,8 @@ stdenv.mkDerivation (finalAttrs: { mkdir -p $out/lib cp -r {dist,templates,node_modules} $out/lib - makeWrapper ${nodejs}/bin/node $out/bin/${pname} \ - --add-flags $out/lib/dist/cli.js \ + makeBinaryWrapper ${nodejs}/bin/node $out/bin/${pname} \ + --add-flags $out/lib/dist/cli.cjs \ --set NODE_ENV production \ --set NODE_PATH "$out/lib/node_modules" @@ -60,9 +96,9 @@ stdenv.mkDerivation (finalAttrs: { mainProgram = "swagger-typescript-api"; description = "Generate TypeScript API client and definitions for fetch or axios from an OpenAPI specification"; homepage = "https://github.com/acacode/swagger-typescript-api"; - changelog = "https://github.com/acacode/swagger-typescript-api/blob/${version}/CHANGELOG.md"; + changelog = "https://github.com/acacode/swagger-typescript-api/blob/v${version}/CHANGELOG.md"; license = lib.licenses.mit; - platforms = lib.platforms.all; + platforms = lib.platforms.linux; maintainers = with lib.maintainers; [ angelodlfrtr ]; }; }) From 48003f8083a329a9911858f8e7b1f96f63529505 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 19 Feb 2026 11:18:43 +0000 Subject: [PATCH 157/239] sql-formatter: 15.7.0 -> 15.7.2 --- pkgs/by-name/sq/sql-formatter/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/sq/sql-formatter/package.nix b/pkgs/by-name/sq/sql-formatter/package.nix index 4671dd6f57e8..56514cdba7fb 100644 --- a/pkgs/by-name/sq/sql-formatter/package.nix +++ b/pkgs/by-name/sq/sql-formatter/package.nix @@ -11,13 +11,13 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "sql-formatter"; - version = "15.7.0"; + version = "15.7.2"; src = fetchFromGitHub { owner = "sql-formatter-org"; repo = "sql-formatter"; rev = "v${finalAttrs.version}"; - hash = "sha256-k105xoppmxW1jSbkzbqHF7bg/IbY1P9kZVwa3pdKF7k="; + hash = "sha256-0EV35Hz+xyNfKEYMAMIkYNjE3erN1G6db+A9i4hNrJY="; }; yarnOfflineCache = fetchYarnDeps { From a3ae2de28cf5964be631246daf5ea6f07f36def8 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 19 Feb 2026 11:55:51 +0000 Subject: [PATCH 158/239] phpPackages.phan: 6.0.0 -> 6.0.1 --- pkgs/development/php-packages/phan/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/php-packages/phan/default.nix b/pkgs/development/php-packages/phan/default.nix index 18e33ed93875..3cf0ec59b8b2 100644 --- a/pkgs/development/php-packages/phan/default.nix +++ b/pkgs/development/php-packages/phan/default.nix @@ -8,16 +8,16 @@ (php.withExtensions ({ enabled, all }: enabled ++ (with all; [ ast ]))).buildComposerProject2 (finalAttrs: { pname = "phan"; - version = "6.0.0"; + version = "6.0.1"; src = fetchFromGitHub { owner = "phan"; repo = "phan"; tag = finalAttrs.version; - hash = "sha256-1qRGNDptiAdcGc1x+iLrxe9TjLGaL8EM8xuTOUNB+Ww="; + hash = "sha256-B6n4hGsUFwFsTLUMhtmElgF0xNqfol9RQ83aP9Zs/AI="; }; - vendorHash = "sha256-Ro5/lA72xVIkZyuRNix77Cpeyyj1GbW5J4DzjQMq0Rc="; + vendorHash = "sha256-8m0aoK6P6HUhNLh4avMm9C0qBKVfsK9zQ+iJVWVhWm4="; composerStrictValidation = false; doInstallCheck = true; From d28a57e729708cd95c41ce75c1f8c196585248fd Mon Sep 17 00:00:00 2001 From: Emily Date: Thu, 19 Feb 2026 12:09:24 +0000 Subject: [PATCH 159/239] wayland: add Darwin to `badPlatforms` again Partially reverts a36cf8de1e36f09b47d132a62b67e79b61161b53. --- pkgs/development/libraries/wayland/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/development/libraries/wayland/default.nix b/pkgs/development/libraries/wayland/default.nix index eec81c239e59..ca472fb06234 100644 --- a/pkgs/development/libraries/wayland/default.nix +++ b/pkgs/development/libraries/wayland/default.nix @@ -108,6 +108,11 @@ stdenv.mkDerivation (finalAttrs: { homepage = "https://wayland.freedesktop.org/"; license = lib.licenses.mit; # Expat version platforms = lib.platforms.unix; + # Builds with a large downstream patch, but breaks at least the + # `qt6Packages.qtbase` build. Please audit Wayland availability + # checks throughout the tree before enabling (and work with + # upstream if you want sustainable Wayland support on macOS). + badPlatforms = lib.platforms.darwin; maintainers = with lib.maintainers; [ codyopel qyliss From b0bf367c238ab5f741383e754443a4e5776af7c2 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 19 Feb 2026 12:27:20 +0000 Subject: [PATCH 160/239] zwave-js-ui: 11.11.0 -> 11.12.0 --- pkgs/by-name/zw/zwave-js-ui/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/zw/zwave-js-ui/package.nix b/pkgs/by-name/zw/zwave-js-ui/package.nix index 4534be6b4677..cdab52b5909b 100644 --- a/pkgs/by-name/zw/zwave-js-ui/package.nix +++ b/pkgs/by-name/zw/zwave-js-ui/package.nix @@ -7,15 +7,15 @@ buildNpmPackage rec { pname = "zwave-js-ui"; - version = "11.11.0"; + version = "11.12.0"; src = fetchFromGitHub { owner = "zwave-js"; repo = "zwave-js-ui"; tag = "v${version}"; - hash = "sha256-pxLpHeFBdmbuw4VtVgrOMfE8uPft2AyYcwdIyXpUz2s="; + hash = "sha256-ewJJCeGR2jmw0CeEB4Ip4wkQ0V+NDwkqOAr/1wGiULI="; }; - npmDepsHash = "sha256-BZnHHIjRbhMCq8miK4lPkhIfE13sEv4q0Ting/mmavQ="; + npmDepsHash = "sha256-IKZTmA410mFLZuf2AgPI8P8csBNI+Nx1+P8WGqk3fQ8="; passthru.tests.zwave-js-ui = nixosTests.zwave-js-ui; From cea1222a92bf03fe002b52cb6a833cbfba6683cc Mon Sep 17 00:00:00 2001 From: Emily Date: Thu, 19 Feb 2026 12:39:31 +0000 Subject: [PATCH 161/239] python313Packages.scikit-build-core: backport upstream patch for Darwin --- .../python-modules/scikit-build-core/default.nix | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/scikit-build-core/default.nix b/pkgs/development/python-modules/scikit-build-core/default.nix index a436bb78aa32..5e2e86cca1d8 100644 --- a/pkgs/development/python-modules/scikit-build-core/default.nix +++ b/pkgs/development/python-modules/scikit-build-core/default.nix @@ -1,7 +1,9 @@ { lib, + stdenv, buildPythonPackage, fetchFromGitHub, + fetchpatch, # build-system hatch-vcs, @@ -37,7 +39,15 @@ buildPythonPackage rec { hash = "sha256-zBTDacTkeclz+/X0SUl1xkxLz4zsfeLOD4Ew0V1Y1iU="; }; - postPatch = ""; + # TODO: Rebuild avoidance; clean up on `staging`. + ${if stdenv.hostPlatform.isDarwin then "patches" else null} = [ + # Backport an upstream commit to fix the tests on Darwin. + (fetchpatch { + url = "https://github.com/scikit-build/scikit-build-core/commit/c30f52a3b2bd01dc05f23d3b89332c213006afe0.patch"; + excludes = [ ".github/workflows/ci.yml" ]; + hash = "sha256-5E9QfF5UcSNY1wzHzieEEHEPYzPjUTb66CKCodYb9vo="; + }) + ]; build-system = [ hatch-vcs From f6e962bb1a8270ea2257f7e6429f4ec93aae4975 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Thu, 19 Feb 2026 13:53:17 +0100 Subject: [PATCH 162/239] rsyslog: fixup build For some reason it now wasn't linking properly anymore: https://hydra.nixos.org/build/321669732/nixlog/3/tail This change should be relatively safe. --- pkgs/tools/system/rsyslog/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/tools/system/rsyslog/default.nix b/pkgs/tools/system/rsyslog/default.nix index f9e2b7668110..4bcd050f7cbf 100644 --- a/pkgs/tools/system/rsyslog/default.nix +++ b/pkgs/tools/system/rsyslog/default.nix @@ -180,6 +180,8 @@ stdenv.mkDerivation rec { (lib.enableFeature true "generate-man-pages") ]; + NIX_CFLAGS_LINK = "-lz"; + passthru.tests = { nixos-rsyslogd = nixosTests.rsyslogd; }; From b9377a648392f6bc72a9c78251a4ff93b8977052 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Thu, 19 Feb 2026 13:57:23 +0100 Subject: [PATCH 163/239] python3Packages.scikit-build-core: avoid rebuilds on linux For now. We'll clean this up on staging. --- pkgs/development/python-modules/scikit-build-core/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/development/python-modules/scikit-build-core/default.nix b/pkgs/development/python-modules/scikit-build-core/default.nix index 5e2e86cca1d8..b91e36b4fac8 100644 --- a/pkgs/development/python-modules/scikit-build-core/default.nix +++ b/pkgs/development/python-modules/scikit-build-core/default.nix @@ -49,6 +49,8 @@ buildPythonPackage rec { }) ]; + postPatch = ""; + build-system = [ hatch-vcs hatchling From 4d890d728bb7aff3600477b0c72783484ce7562d Mon Sep 17 00:00:00 2001 From: superherointj Date: Wed, 18 Feb 2026 14:37:31 -0300 Subject: [PATCH 164/239] godot_4_6: 4.6-stable -> 4.6.1-stable https://godotengine.org/article/maintenance-release-godot-4-6-1/ https://github.com/godotengine/godot/releases/tag/4.6.1-stable https://godotengine.github.io/godot-interactive-changelog/#4.6.1 --- pkgs/development/tools/godot/4.6/default.nix | 8 +-- pkgs/development/tools/godot/common.nix | 59 ++++++++++---------- 2 files changed, 34 insertions(+), 33 deletions(-) diff --git a/pkgs/development/tools/godot/4.6/default.nix b/pkgs/development/tools/godot/4.6/default.nix index 39613ff06e5b..a0ac2cbb947a 100644 --- a/pkgs/development/tools/godot/4.6/default.nix +++ b/pkgs/development/tools/godot/4.6/default.nix @@ -1,11 +1,11 @@ { - version = "4.6-stable"; - hash = "sha256-lK9KQsmrNZLx7yP3PwbN93otwkWq2H+nWt85WH/u8oI="; + version = "4.6.1-stable"; + hash = "sha256-C3AX+Gl6a3nX/k0TP6FYjYCK9AbKmtku+1ilYBu0R74="; default = { - exportTemplatesHash = "sha256-OzCsjBdy8l9d+l9lkiyrCpDnuWAXaJEjfFdyUV68zEY="; + exportTemplatesHash = "sha256-5tNyr9T9+q6VceteNWivzZbObbmlaSRANBVPrwrGmHU="; }; mono = { - exportTemplatesHash = "sha256-RgVug5TNHx+FzPqr3f/Bpn9ZW/2Z+9ps1ir6dR2/xRk="; + exportTemplatesHash = "sha256-V5JmHtCJVQNX4OEJVK9pWEa+CjLtdJT6QKAAnjtaPqk="; nugetDeps = ./deps.json; }; } diff --git a/pkgs/development/tools/godot/common.nix b/pkgs/development/tools/godot/common.nix index 48eeca61fa6a..6e8f5b668890 100644 --- a/pkgs/development/tools/godot/common.nix +++ b/pkgs/development/tools/godot/common.nix @@ -461,35 +461,36 @@ let (allow file-read* (subpath "/System/Library/CoreServices/SystemAppearance.bundle")) ''; - patches = [ - ./Linux-fix-missing-library-with-builtin_glslang-false.patch - ] - ++ lib.optionals (lib.versionAtLeast version "4.6") [ - # https://github.com/godotengine/godot/pull/115450 - (fetchpatch { - name = "fix-tls-handshake-fail-preventing-assetlib-use.patch"; - url = "https://github.com/godotengine/godot/commit/29acd734c71f06268d6ef4715d7df70b14731f48.patch"; - hash = "sha256-wxkr6jPtutUTG+mYrXoxcDcWIIZghlSJ79XqhFh/0P4="; - }) - ] - ++ lib.optionals (lib.versionOlder version "4.4") [ - (fetchpatch { - name = "wayland-header-fix.patch"; - url = "https://github.com/godotengine/godot/commit/6ce71f0fb0a091cffb6adb4af8ab3f716ad8930b.patch"; - hash = "sha256-hgAtAtCghF5InyGLdE9M+9PjPS1BWXWGKgIAyeuqkoU="; - }) - (fetchpatch { - name = "thorvg-header-fix.patch"; - url = "https://github.com/godotengine/godot/commit/1823460787a6c1bb8e4eaf21ac2a3f90d24d5ee0.patch"; - hash = "sha256-PcHEMXd0v2c3j6Eitxt5uWi6cD+OmsBAn3TNMNRNPog="; - }) - # Fix a crash in the mono test project build. It no longer seems to - # happen in 4.4, but an existing fix couldn't be identified. - ./CSharpLanguage-fix-crash-in-reload_assemblies-after-.patch - ] - ++ lib.optional ( - stdenv.hostPlatform.isDarwin && lib.versionAtLeast version "4.4" - ) ./fix-moltenvk-detection.patch; + patches = + lib.optionals (lib.versionOlder version "4.6") [ + ./Linux-fix-missing-library-with-builtin_glslang-false.patch + ] + ++ lib.optionals (lib.versionAtLeast version "4.6") [ + # https://github.com/godotengine/godot/pull/115450 + (fetchpatch { + name = "fix-tls-handshake-fail-preventing-assetlib-use.patch"; + url = "https://github.com/godotengine/godot/commit/29acd734c71f06268d6ef4715d7df70b14731f48.patch"; + hash = "sha256-wxkr6jPtutUTG+mYrXoxcDcWIIZghlSJ79XqhFh/0P4="; + }) + ] + ++ lib.optionals (lib.versionOlder version "4.4") [ + (fetchpatch { + name = "wayland-header-fix.patch"; + url = "https://github.com/godotengine/godot/commit/6ce71f0fb0a091cffb6adb4af8ab3f716ad8930b.patch"; + hash = "sha256-hgAtAtCghF5InyGLdE9M+9PjPS1BWXWGKgIAyeuqkoU="; + }) + (fetchpatch { + name = "thorvg-header-fix.patch"; + url = "https://github.com/godotengine/godot/commit/1823460787a6c1bb8e4eaf21ac2a3f90d24d5ee0.patch"; + hash = "sha256-PcHEMXd0v2c3j6Eitxt5uWi6cD+OmsBAn3TNMNRNPog="; + }) + # Fix a crash in the mono test project build. It no longer seems to + # happen in 4.4, but an existing fix couldn't be identified. + ./CSharpLanguage-fix-crash-in-reload_assemblies-after-.patch + ] + ++ lib.optional ( + stdenv.hostPlatform.isDarwin && lib.versionAtLeast version "4.4" + ) ./fix-moltenvk-detection.patch; postPatch = '' # this stops scons from hiding e.g. NIX_CFLAGS_COMPILE From 83b08c2af6774c2b4382e565afd9776c69a11c38 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 19 Feb 2026 13:45:13 +0000 Subject: [PATCH 165/239] livebook: 0.18.5 -> 0.18.6 --- pkgs/development/beam-modules/livebook/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/beam-modules/livebook/default.nix b/pkgs/development/beam-modules/livebook/default.nix index ab484ea47cac..81adf8d0e35a 100644 --- a/pkgs/development/beam-modules/livebook/default.nix +++ b/pkgs/development/beam-modules/livebook/default.nix @@ -9,7 +9,7 @@ beamPackages.mixRelease rec { pname = "livebook"; - version = "0.18.5"; + version = "0.18.6"; inherit (beamPackages) elixir; @@ -21,7 +21,7 @@ beamPackages.mixRelease rec { owner = "livebook-dev"; repo = "livebook"; tag = "v${version}"; - hash = "sha256-yClo+PkEDuRHzVm/XPGxq896MwuM2305Tu7/B5M900A="; + hash = "sha256-8pFvY86ht2NMUtknjt5M7QasOKnoHvQdYJrOlgTyueU="; }; mixFodDeps = beamPackages.fetchMixDeps { From 4ce4b615ddd50dfac74b81685de11e88babadd31 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 19 Feb 2026 14:01:53 +0000 Subject: [PATCH 166/239] gvm-libs: 22.35.6 -> 22.35.7 --- pkgs/by-name/gv/gvm-libs/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/gv/gvm-libs/package.nix b/pkgs/by-name/gv/gvm-libs/package.nix index 426dbb1a8eaa..18756a07c037 100644 --- a/pkgs/by-name/gv/gvm-libs/package.nix +++ b/pkgs/by-name/gv/gvm-libs/package.nix @@ -26,13 +26,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "gvm-libs"; - version = "22.35.6"; + version = "22.35.7"; src = fetchFromGitHub { owner = "greenbone"; repo = "gvm-libs"; tag = "v${finalAttrs.version}"; - hash = "sha256-oXfxgoFxInx3MyolVxzwRP3EpMsa35G5sdt1GxBUmUU="; + hash = "sha256-A3FO2el1ytsXUJEWA+7zthcTN2WpEnNIO2fWQI+0bjc="; }; postPatch = '' From e520b3cd4738b95b24518e0a322888232e9b7fc9 Mon Sep 17 00:00:00 2001 From: Francesco Gazzetta Date: Mon, 19 May 2025 18:11:25 +0200 Subject: [PATCH 167/239] thunar-shares-plugin: init at 0.5.0 Closes #334080 --- .../th/thunar-shares-plugin/package.nix | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 pkgs/by-name/th/thunar-shares-plugin/package.nix diff --git a/pkgs/by-name/th/thunar-shares-plugin/package.nix b/pkgs/by-name/th/thunar-shares-plugin/package.nix new file mode 100644 index 000000000000..23b448124205 --- /dev/null +++ b/pkgs/by-name/th/thunar-shares-plugin/package.nix @@ -0,0 +1,54 @@ +{ + stdenv, + lib, + fetchFromGitLab, + gettext, + glib, + gtk3, + meson, + ninja, + pkg-config, + thunar, + xfconf, + gitUpdater, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "thunar-shares-plugin"; + version = "0.5.0"; + + src = fetchFromGitLab { + domain = "gitlab.xfce.org"; + owner = "thunar-plugins"; + repo = "thunar-shares-plugin"; + tag = "thunar-shares-plugin-${finalAttrs.version}"; + hash = "sha256-sWLFagoLy1lbAsPYKm8GWwCH+Aa++cDXbRDwkNh6bKk="; + }; + + strictDeps = true; + + nativeBuildInputs = [ + gettext + meson + ninja + pkg-config + ]; + + buildInputs = [ + glib + gtk3 + thunar + xfconf + ]; + + passthru.updateScript = gitUpdater { rev-prefix = "thunar-shares-plugin-"; }; + + meta = { + description = "Thunar plugin providing quick folder sharing using Samba without requiring root access"; + homepage = "https://gitlab.xfce.org/thunar-plugins/thunar-shares-plugin"; + license = lib.licenses.gpl2Plus; + maintainers = with lib.maintainers; [ fgaz ]; + platforms = lib.platforms.linux; + teams = [ lib.teams.xfce ]; + }; +}) From c0a7f9f54728614fe56c7e293012434e68d59ace Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 19 Feb 2026 14:14:39 +0000 Subject: [PATCH 168/239] cljfmt: 0.15.6 -> 0.16.0 --- pkgs/by-name/cl/cljfmt/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/cl/cljfmt/package.nix b/pkgs/by-name/cl/cljfmt/package.nix index 6513a016ad04..a4f8361f2ea2 100644 --- a/pkgs/by-name/cl/cljfmt/package.nix +++ b/pkgs/by-name/cl/cljfmt/package.nix @@ -8,11 +8,11 @@ buildGraalvmNativeImage (finalAttrs: { pname = "cljfmt"; - version = "0.15.6"; + version = "0.16.0"; src = fetchurl { url = "https://github.com/weavejester/cljfmt/releases/download/${finalAttrs.version}/cljfmt-${finalAttrs.version}-standalone.jar"; - hash = "sha256-/ihm/b/B9cSay2Zgshie7D0KwaKuIjiNI5FOnWOHfOw="; + hash = "sha256-56llKSnJJzjv9mf33ir7b3gk8Jp+jxyuax6vEXj0xDk="; }; extraNativeImageBuildArgs = [ From 048d2231e5ad95f86808185b9c3d98c874012090 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 19 Feb 2026 14:28:03 +0000 Subject: [PATCH 169/239] python3Packages.geniushub-client: 0.7.2 -> 0.7.3 --- pkgs/development/python-modules/geniushub-client/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/geniushub-client/default.nix b/pkgs/development/python-modules/geniushub-client/default.nix index 6eceb28fd3f6..cdb5f955f682 100644 --- a/pkgs/development/python-modules/geniushub-client/default.nix +++ b/pkgs/development/python-modules/geniushub-client/default.nix @@ -8,14 +8,14 @@ buildPythonPackage rec { pname = "geniushub-client"; - version = "0.7.2"; + version = "0.7.3"; format = "setuptools"; src = fetchFromGitHub { owner = "manzanotti"; repo = "geniushub-client"; tag = "v${version}"; - hash = "sha256-RBXqSpumJMLZIT+nQr/BUE315krjRy/Qk9OlX9Ukn3Y="; + hash = "sha256-9/LOybFJdVxImr/i/RIbrYSPZ7vA5ffdSBxzg51UM8s="; }; postPatch = '' From d569a33a5efde82c1556b1d21bda388317b88298 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 19 Feb 2026 14:34:54 +0000 Subject: [PATCH 170/239] eask-cli: 0.12.5 -> 0.12.8 --- pkgs/by-name/ea/eask-cli/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ea/eask-cli/package.nix b/pkgs/by-name/ea/eask-cli/package.nix index d94b62a9fe4f..7b54749c6880 100644 --- a/pkgs/by-name/ea/eask-cli/package.nix +++ b/pkgs/by-name/ea/eask-cli/package.nix @@ -6,16 +6,16 @@ buildNpmPackage rec { pname = "eask-cli"; - version = "0.12.5"; + version = "0.12.8"; src = fetchFromGitHub { owner = "emacs-eask"; repo = "cli"; rev = version; - hash = "sha256-GYpFbCEgS9GgZs/XC3NwA8GuCiovaUTL1bVqlsnyFKI="; + hash = "sha256-eH46NlHQs+OVbc3WVUKHQGgXi9rvFMTrbd3UB8WCB6k="; }; - npmDepsHash = "sha256-712QW0tTKg7THsBzvEHcG97FBMw3ESzpoqdw0kv3mMU="; + npmDepsHash = "sha256-U/VKtefL31FNYUegt8+Qg2jM6fx4cX660UcNqGsWMOc="; dontBuild = true; From beb6ed7bd8cc68b393e53f00f7c310dc1e3485a7 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Thu, 19 Feb 2026 15:42:42 +0100 Subject: [PATCH 171/239] evcc: 0.300.8 -> 0.301.0 https://github.com/evcc-io/evcc/releases/tag/0.301.0 --- pkgs/by-name/ev/evcc/package.nix | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pkgs/by-name/ev/evcc/package.nix b/pkgs/by-name/ev/evcc/package.nix index 8380018141d9..b6372cd0a171 100644 --- a/pkgs/by-name/ev/evcc/package.nix +++ b/pkgs/by-name/ev/evcc/package.nix @@ -1,12 +1,12 @@ { lib, stdenv, - buildGo125Module, + buildGo126Module, fetchFromGitHub, fetchNpmDeps, cacert, git, - go_1_25, + go_1_26, gokrazy, enumer, mockgen, @@ -17,23 +17,23 @@ }: let - version = "0.300.8"; + version = "0.301.0"; src = fetchFromGitHub { owner = "evcc-io"; repo = "evcc"; tag = version; - hash = "sha256-IbyE9Y9crdoaPy1/PkKaA1iOAUFOf2cYzoB9Cj3luSo="; + hash = "sha256-ns6Kl0sN8GeF0Br7HrRLdVmKaGMqT3Y5REuH9UJg+Yg="; }; - vendorHash = "sha256-j+tmZeVUqUpETIg8ILlxRRdN5/OV8pYmgH2FM1uweAY="; + vendorHash = "sha256-LGTT7WxBlWA4pCunvFDpsqDkUhTN96PohBKTLAffr0o="; commonMeta = { license = lib.licenses.mit; maintainers = with lib.maintainers; [ hexa ]; }; - decorate = buildGo125Module { + decorate = buildGo126Module { pname = "evcc-decorate"; inherit version src vendorHash; @@ -46,13 +46,13 @@ let }; in -buildGo125Module rec { +buildGo126Module rec { pname = "evcc"; inherit version src vendorHash; npmDeps = fetchNpmDeps { inherit src; - hash = "sha256-DGDPbc/N+c3lt1rIx/nAt1i44J//egPQXGWH7tomJTw="; + hash = "sha256-fblf49V+fn+9iuIwwOZ/iYMxUbjtWcm3iEs9mP9l59I="; }; nativeBuildInputs = [ @@ -64,7 +64,7 @@ buildGo125Module rec { nativeBuildInputs = [ decorate enumer - go_1_25 + go_1_26 gokrazy git cacert From eea3d65944ede1f4b6374430b708c6207ea5e00f Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Wed, 11 Feb 2026 11:01:33 +0100 Subject: [PATCH 172/239] acpica-tools: move env variable(s) into env for structuredAttrs --- pkgs/by-name/ac/acpica-tools/package.nix | 26 +++++++++++++----------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/pkgs/by-name/ac/acpica-tools/package.nix b/pkgs/by-name/ac/acpica-tools/package.nix index 2b0d3601c46b..4f3420a991d8 100644 --- a/pkgs/by-name/ac/acpica-tools/package.nix +++ b/pkgs/by-name/ac/acpica-tools/package.nix @@ -34,21 +34,23 @@ stdenv.mkDerivation (finalAttrs: { "iasl" ]; - env.NIX_CFLAGS_COMPILE = toString [ - "-O3" - ]; + env = { + NIX_CFLAGS_COMPILE = toString [ + "-O3" + ]; + + # i686 builds fail with hardening enabled (due to -Wformat-overflow). Disable + # -Werror altogether to make this derivation less fragile to toolchain + # updates. + NOWERROR = "TRUE"; + + # We can handle stripping ourselves. + # Unless we are on Darwin. Upstream makefiles degrade coreutils install to cp if _APPLE is detected. + INSTALLFLAGS = lib.optionals (!stdenv.hostPlatform.isDarwin) "-m 555"; + }; enableParallelBuilding = true; - # i686 builds fail with hardening enabled (due to -Wformat-overflow). Disable - # -Werror altogether to make this derivation less fragile to toolchain - # updates. - NOWERROR = "TRUE"; - - # We can handle stripping ourselves. - # Unless we are on Darwin. Upstream makefiles degrade coreutils install to cp if _APPLE is detected. - INSTALLFLAGS = lib.optionals (!stdenv.hostPlatform.isDarwin) "-m 555"; - installFlags = [ "PREFIX=${placeholder "out"}" ]; passthru.updateScript = nix-update-script { }; From 7e878a21570680d73b0addfd8605ed2b94bd13d0 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Wed, 11 Feb 2026 11:01:36 +0100 Subject: [PATCH 173/239] botamusique: move env variable(s) into env for structuredAttrs --- pkgs/by-name/bo/botamusique/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/bo/botamusique/package.nix b/pkgs/by-name/bo/botamusique/package.nix index 55b85a96111d..8d86a367d3ee 100644 --- a/pkgs/by-name/bo/botamusique/package.nix +++ b/pkgs/by-name/bo/botamusique/package.nix @@ -70,7 +70,7 @@ stdenv.mkDerivation rec { --replace "version = 'git'" "version = '${version}'" ''; - NODE_OPTIONS = "--openssl-legacy-provider"; + env.NODE_OPTIONS = "--openssl-legacy-provider"; nativeBuildInputs = [ makeWrapper From d702f9dd009ce8d0b331a509a6af2de853bc0413 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Wed, 11 Feb 2026 11:01:36 +0100 Subject: [PATCH 174/239] clmagma: move env variable(s) into env for structuredAttrs --- pkgs/by-name/cl/clmagma/package.nix | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/cl/clmagma/package.nix b/pkgs/by-name/cl/clmagma/package.nix index bfd23cb0bcb5..dbcbd91dc96f 100644 --- a/pkgs/by-name/cl/clmagma/package.nix +++ b/pkgs/by-name/cl/clmagma/package.nix @@ -60,12 +60,14 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - MKLROOT = "${mkl}"; - clBLAS = "${clblas}"; + env = { + MKLROOT = mkl; + clBLAS = clblas; - # Otherwise build looks for it in /run/opengl-driver/etc/OpenCL/vendors, - # which is not available. - OPENCL_VENDOR_PATH = "${intel-ocl}/etc/OpenCL/vendors"; + # Otherwise build looks for it in /run/opengl-driver/etc/OpenCL/vendors, + # which is not available. + OPENCL_VENDOR_PATH = "${intel-ocl}/etc/OpenCL/vendors"; + }; preBuild = '' # By default it tries to use GPU, and thus fails for CPUs From e2e7774e31b78d3cb76f32e1acdbac80555593d8 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Wed, 11 Feb 2026 11:01:37 +0100 Subject: [PATCH 175/239] coc-emmet: move env variable(s) into env for structuredAttrs --- pkgs/by-name/co/coc-emmet/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/co/coc-emmet/package.nix b/pkgs/by-name/co/coc-emmet/package.nix index 7d2bd93c087d..40cac7149897 100644 --- a/pkgs/by-name/co/coc-emmet/package.nix +++ b/pkgs/by-name/co/coc-emmet/package.nix @@ -32,7 +32,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { nodejs ]; - NODE_OPTIONS = "--openssl-legacy-provider"; + env.NODE_OPTIONS = "--openssl-legacy-provider"; passthru.updateScript = nix-update-script { }; From 7143874abe3e17dbaf473d0a1d197f715b6ec100 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Wed, 11 Feb 2026 11:01:37 +0100 Subject: [PATCH 176/239] coc-r-lsp: move env variable(s) into env for structuredAttrs --- pkgs/by-name/co/coc-r-lsp/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/co/coc-r-lsp/package.nix b/pkgs/by-name/co/coc-r-lsp/package.nix index 5041dd5de652..da487906c18e 100644 --- a/pkgs/by-name/co/coc-r-lsp/package.nix +++ b/pkgs/by-name/co/coc-r-lsp/package.nix @@ -32,7 +32,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { nodejs ]; - NODE_OPTIONS = "--openssl-legacy-provider"; + env.NODE_OPTIONS = "--openssl-legacy-provider"; passthru.updateScript = nix-update-script { }; From 9b94a1c84e7b9a6c7e5fac129f98e6c1ae492670 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Wed, 11 Feb 2026 11:01:37 +0100 Subject: [PATCH 177/239] coc-spell-checker: move env variable(s) into env for structuredAttrs --- pkgs/by-name/co/coc-spell-checker/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/co/coc-spell-checker/package.nix b/pkgs/by-name/co/coc-spell-checker/package.nix index b02556e9f636..4b6be645132a 100644 --- a/pkgs/by-name/co/coc-spell-checker/package.nix +++ b/pkgs/by-name/co/coc-spell-checker/package.nix @@ -33,7 +33,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { nodejs ]; - NODE_OPTIONS = "--openssl-legacy-provider"; + env.NODE_OPTIONS = "--openssl-legacy-provider"; passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; }; From 8d50c3064cd06fab73acdb92d5354078385efdee Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Wed, 11 Feb 2026 11:01:37 +0100 Subject: [PATCH 178/239] coc-stylelint: move env variable(s) into env for structuredAttrs --- pkgs/by-name/co/coc-stylelint/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/co/coc-stylelint/package.nix b/pkgs/by-name/co/coc-stylelint/package.nix index 40a12dbd98e4..482717d78380 100644 --- a/pkgs/by-name/co/coc-stylelint/package.nix +++ b/pkgs/by-name/co/coc-stylelint/package.nix @@ -38,7 +38,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { nodejs ]; - NODE_OPTIONS = "--openssl-legacy-provider"; + env.NODE_OPTIONS = "--openssl-legacy-provider"; passthru.updateScript = nix-update-script { }; From bd8facff8aae00334393209682c8470e2b7cadd7 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Wed, 11 Feb 2026 11:01:38 +0100 Subject: [PATCH 179/239] coc-vimlsp: move env variable(s) into env for structuredAttrs --- pkgs/by-name/co/coc-vimlsp/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/co/coc-vimlsp/package.nix b/pkgs/by-name/co/coc-vimlsp/package.nix index 395441c17dea..f08f17be1d96 100644 --- a/pkgs/by-name/co/coc-vimlsp/package.nix +++ b/pkgs/by-name/co/coc-vimlsp/package.nix @@ -32,7 +32,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { nodejs ]; - NODE_OPTIONS = "--openssl-legacy-provider"; + env.NODE_OPTIONS = "--openssl-legacy-provider"; passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; }; From f8a5dd552d4441b33fa3e8b8ee80fd6b0614f3da Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Wed, 11 Feb 2026 11:01:38 +0100 Subject: [PATCH 180/239] coc-wxml: move env variable(s) into env for structuredAttrs --- pkgs/by-name/co/coc-wxml/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/co/coc-wxml/package.nix b/pkgs/by-name/co/coc-wxml/package.nix index caf706f21679..5ec0005ef3df 100644 --- a/pkgs/by-name/co/coc-wxml/package.nix +++ b/pkgs/by-name/co/coc-wxml/package.nix @@ -38,7 +38,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { nodejs ]; - NODE_OPTIONS = "--openssl-legacy-provider"; + env.NODE_OPTIONS = "--openssl-legacy-provider"; passthru.updateScript = nix-update-script { }; From be10a1afbac42fa156085c05663b1bfca00d3e89 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Wed, 11 Feb 2026 11:01:38 +0100 Subject: [PATCH 181/239] docbook2x: move env variable(s) into env for structuredAttrs --- pkgs/by-name/do/docbook2x/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/do/docbook2x/package.nix b/pkgs/by-name/do/docbook2x/package.nix index fbbe6e3daeb2..3413918f9499 100644 --- a/pkgs/by-name/do/docbook2x/package.nix +++ b/pkgs/by-name/do/docbook2x/package.nix @@ -54,7 +54,7 @@ stdenv.mkDerivation (finalAttrs: { # configure tries to find osx in PATH and hardcodes the resulting path # (if any) on the Perl code. this fails under strictDeps, so override # the autoconf test: - OSX = "${opensp}/bin/osx"; + env.OSX = "${opensp}/bin/osx"; postConfigure = '' # Broken substitution is used for `perl/config.pl', which leaves literal From dbf3c38b32008dd7efed7896f668ec997441d5fe Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Wed, 11 Feb 2026 11:01:38 +0100 Subject: [PATCH 182/239] drill: move env variable(s) into env for structuredAttrs --- pkgs/by-name/dr/drill/package.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/dr/drill/package.nix b/pkgs/by-name/dr/drill/package.nix index 1e88a744405b..2d06e6cf7905 100644 --- a/pkgs/by-name/dr/drill/package.nix +++ b/pkgs/by-name/dr/drill/package.nix @@ -24,8 +24,10 @@ rustPlatform.buildRustPackage (finalAttrs: { pkg-config ]; - OPENSSL_LIB_DIR = "${lib.getLib openssl}/lib"; - OPENSSL_DIR = "${lib.getDev openssl}"; + env = { + OPENSSL_LIB_DIR = "${lib.getLib openssl}/lib"; + OPENSSL_DIR = "${lib.getDev openssl}"; + }; buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ openssl From aa591c65d94713977e678c6a517f6ae177ad8b77 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Wed, 11 Feb 2026 11:01:38 +0100 Subject: [PATCH 183/239] ergogen: move env variable(s) into env for structuredAttrs --- pkgs/by-name/er/ergogen/package.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/er/ergogen/package.nix b/pkgs/by-name/er/ergogen/package.nix index 2dfc6400de20..169ac57f788e 100644 --- a/pkgs/by-name/er/ergogen/package.nix +++ b/pkgs/by-name/er/ergogen/package.nix @@ -24,7 +24,8 @@ buildNpmPackage (finalAttrs: { makeCacheWritable = true; dontNpmBuild = true; npmPackFlags = [ "--ignore-scripts" ]; - NODE_OPTIONS = "--openssl-legacy-provider"; + + env.NODE_OPTIONS = "--openssl-legacy-provider"; doInstallCheck = true; nativeInstallCheckInputs = [ versionCheckHook ]; From ff8d9195bd0db0b128a1e2dfe670e5006185bb62 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Wed, 11 Feb 2026 11:01:39 +0100 Subject: [PATCH 184/239] ergoscf: move env variable(s) into env for structuredAttrs --- pkgs/by-name/er/ergoscf/package.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/er/ergoscf/package.nix b/pkgs/by-name/er/ergoscf/package.nix index 322f6915cae3..de4d74093589 100644 --- a/pkgs/by-name/er/ergoscf/package.nix +++ b/pkgs/by-name/er/ergoscf/package.nix @@ -35,13 +35,15 @@ stdenv.mkDerivation (finalAttrs: { env = { # Required for compilation with gcc-14 NIX_CFLAGS_COMPILE = "-Wno-error=implicit-function-declaration"; - LDFLAGS = "-lblas -llapack"; + LDFLAGS = toString [ + "-lblas" + "-llapack" + ]; + OMP_NUM_THREADS = 2; # required for check phase }; enableParallelBuilding = true; - OMP_NUM_THREADS = 2; # required for check phase - # With "fortify3", there are test failures, such as: # Testing cnof CAMB3LYP/6-31G using FMM # *** buffer overflow detected ***: terminated From 1c09ea7e28305b044f5b706ee1e6747e7f1f40a6 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Wed, 11 Feb 2026 11:01:39 +0100 Subject: [PATCH 185/239] honeycomb-refinery: move env variable(s) into env for structuredAttrs --- pkgs/by-name/ho/honeycomb-refinery/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/ho/honeycomb-refinery/package.nix b/pkgs/by-name/ho/honeycomb-refinery/package.nix index f64c596e492f..142581a155cf 100644 --- a/pkgs/by-name/ho/honeycomb-refinery/package.nix +++ b/pkgs/by-name/ho/honeycomb-refinery/package.nix @@ -17,7 +17,7 @@ buildGoModule (finalAttrs: { hash = "sha256-JHjjaK5WFRzDYuVkenfYowFsPnrF+Wjo85gQAbaVxO8="; }; - NO_REDIS_TEST = true; + env.NO_REDIS_TEST = true; patches = [ # Allows turning off the one test requiring a Redis service during build. From 16cbadac21d666ba5b43f08cd03e659dcead2db6 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Wed, 11 Feb 2026 11:01:39 +0100 Subject: [PATCH 186/239] mirakurun: move env variable(s) into env for structuredAttrs --- pkgs/by-name/mi/mirakurun/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/mi/mirakurun/package.nix b/pkgs/by-name/mi/mirakurun/package.nix index 825ff812f01c..4317d296276b 100644 --- a/pkgs/by-name/mi/mirakurun/package.nix +++ b/pkgs/by-name/mi/mirakurun/package.nix @@ -37,7 +37,7 @@ buildNpmPackage rec { ]; # workaround for https://github.com/webpack/webpack/issues/14532 - NODE_OPTIONS = "--openssl-legacy-provider"; + env.NODE_OPTIONS = "--openssl-legacy-provider"; postInstall = let From ee8e023d7fc3c77eb68b7f873af0c4230f7178be Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Wed, 11 Feb 2026 11:01:39 +0100 Subject: [PATCH 187/239] mktemp: move env variable(s) into env for structuredAttrs --- pkgs/by-name/mk/mktemp/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/mk/mktemp/package.nix b/pkgs/by-name/mk/mktemp/package.nix index e0b6f1e88470..56d24f7ede8a 100644 --- a/pkgs/by-name/mk/mktemp/package.nix +++ b/pkgs/by-name/mk/mktemp/package.nix @@ -11,7 +11,7 @@ stdenv.mkDerivation (finalAttrs: { version = "1.7"; # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds. - NROFF = "${groff}/bin/nroff"; + env.NROFF = "${groff}/bin/nroff"; patches = [ # Pull upstream fix for parallel install failures. From 44ff73bac587f7f3a2168eec6bdc297c14269c19 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Wed, 11 Feb 2026 11:01:40 +0100 Subject: [PATCH 188/239] nix-heuristic-gc: move env variable(s) into env for structuredAttrs --- pkgs/by-name/ni/nix-heuristic-gc/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/ni/nix-heuristic-gc/package.nix b/pkgs/by-name/ni/nix-heuristic-gc/package.nix index 07a43fa9a1d7..4158c0d01421 100644 --- a/pkgs/by-name/ni/nix-heuristic-gc/package.nix +++ b/pkgs/by-name/ni/nix-heuristic-gc/package.nix @@ -20,7 +20,7 @@ python3Packages.buildPythonPackage rec { # NIX_SYSTEM suggested at # https://github.com/NixOS/nixpkgs/issues/386184#issuecomment-2692433531 - NIX_SYSTEM = nixVersions.nixComponents_2_30.nix-store.stdenv.hostPlatform.system; + env.NIX_SYSTEM = nixVersions.nixComponents_2_30.nix-store.stdenv.hostPlatform.system; buildInputs = [ boost From be4afe17984488617dd94683c3916835b02ef517 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Wed, 11 Feb 2026 11:01:40 +0100 Subject: [PATCH 189/239] nix-web: move env variable(s) into env for structuredAttrs --- pkgs/by-name/ni/nix-web/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/ni/nix-web/package.nix b/pkgs/by-name/ni/nix-web/package.nix index 95bebd4c0e40..339a85f4789c 100644 --- a/pkgs/by-name/ni/nix-web/package.nix +++ b/pkgs/by-name/ni/nix-web/package.nix @@ -42,7 +42,7 @@ rustPlatform.buildRustPackage (finalAttrs: { cargoBuildFlags = cargoFlags; cargoTestFlags = cargoFlags; - NIX_WEB_BUILD_NIX_CLI_PATH = "${nixPackage}/bin/nix"; + env.NIX_WEB_BUILD_NIX_CLI_PATH = "${nixPackage}/bin/nix"; meta = { description = "Web interface for the Nix store"; From 56da63d8208213519622945d891a4398a789b425 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Wed, 11 Feb 2026 11:01:40 +0100 Subject: [PATCH 190/239] opentabletdriver: move env variable(s) into env for structuredAttrs --- pkgs/by-name/op/opentabletdriver/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/op/opentabletdriver/package.nix b/pkgs/by-name/op/opentabletdriver/package.nix index f3b81bd51a94..ea6735f171dc 100644 --- a/pkgs/by-name/op/opentabletdriver/package.nix +++ b/pkgs/by-name/op/opentabletdriver/package.nix @@ -67,7 +67,7 @@ buildDotnetModule (finalAttrs: { buildInputs = finalAttrs.runtimeDeps; - OTD_CONFIGURATIONS = "${finalAttrs.src}/OpenTabletDriver.Configurations/Configurations"; + env.OTD_CONFIGURATIONS = "${finalAttrs.src}/OpenTabletDriver.Configurations/Configurations"; doCheck = true; testProjectFile = "OpenTabletDriver.Tests/OpenTabletDriver.Tests.csproj"; From f435b76a312afe462645fe5611cc8c5f469230a4 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Wed, 11 Feb 2026 11:01:40 +0100 Subject: [PATCH 191/239] prisma-engines_7: move env variable(s) into env for structuredAttrs --- pkgs/by-name/pr/prisma-engines_7/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/pr/prisma-engines_7/package.nix b/pkgs/by-name/pr/prisma-engines_7/package.nix index 39b5444528b9..9bcc16bc61bd 100644 --- a/pkgs/by-name/pr/prisma-engines_7/package.nix +++ b/pkgs/by-name/pr/prisma-engines_7/package.nix @@ -23,7 +23,7 @@ rustPlatform.buildRustPackage (finalAttrs: { cargoHash = "sha256-U5d/HkuWnD/XSrAJr5AYh+WPVGDOcK/e4sC0udPZoyU="; # Use system openssl. - OPENSSL_NO_VENDOR = 1; + env.OPENSSL_NO_VENDOR = 1; nativeBuildInputs = [ pkg-config ]; From 6b80570e453451f15528a20487ff78f0f5dd0c39 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Wed, 11 Feb 2026 11:01:41 +0100 Subject: [PATCH 192/239] readeck: move env variable(s) into env for structuredAttrs --- pkgs/by-name/re/readeck/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/re/readeck/package.nix b/pkgs/by-name/re/readeck/package.nix index 55ff948ef227..80d53127f561 100644 --- a/pkgs/by-name/re/readeck/package.nix +++ b/pkgs/by-name/re/readeck/package.nix @@ -27,7 +27,7 @@ buildGoModule (finalAttrs: { npmRoot = "web"; - NODE_PATH = "$npmDeps"; + env.NODE_PATH = "$npmDeps"; preBuild = '' make generate From a30b004cd794a0a5b73c4be73c71e0b2416b70e6 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Wed, 11 Feb 2026 11:01:41 +0100 Subject: [PATCH 193/239] send: move env variable(s) into env for structuredAttrs --- pkgs/by-name/se/send/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/se/send/package.nix b/pkgs/by-name/se/send/package.nix index 9c6ebdbb96b7..51486020a37c 100644 --- a/pkgs/by-name/se/send/package.nix +++ b/pkgs/by-name/se/send/package.nix @@ -28,14 +28,14 @@ buildNpmPackage rec { env = { PUPPETEER_SKIP_CHROMIUM_DOWNLOAD = "true"; + + NODE_OPTIONS = "--openssl-legacy-provider"; }; makeCacheWritable = true; npmPackFlags = [ "--ignore-scripts" ]; - NODE_OPTIONS = "--openssl-legacy-provider"; - postInstall = '' cp -r dist $out/lib/node_modules/send/ ln -s $out/lib/node_modules/send/dist/version.json $out/lib/node_modules/send/version.json From e553474cf67c4a84295afcd6a315b3e0a69d2483 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Wed, 11 Feb 2026 11:01:41 +0100 Subject: [PATCH 194/239] sharing: move env variable(s) into env for structuredAttrs --- pkgs/by-name/sh/sharing/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/sh/sharing/package.nix b/pkgs/by-name/sh/sharing/package.nix index dcad6dd71b16..185080b2c5da 100644 --- a/pkgs/by-name/sh/sharing/package.nix +++ b/pkgs/by-name/sh/sharing/package.nix @@ -22,7 +22,7 @@ buildNpmPackage rec { # The prepack script runs the build script, which we'd rather do in the build phase. npmPackFlags = [ "--ignore-scripts" ]; - NODE_OPTIONS = "--openssl-legacy-provider"; + env.NODE_OPTIONS = "--openssl-legacy-provider"; meta = { description = "Command-line tool to share directories and files to mobile devices"; From 1dc69c1a46463a4921698a664f275758be96d0c7 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Wed, 11 Feb 2026 11:01:41 +0100 Subject: [PATCH 195/239] squeezelite: move env variable(s) into env for structuredAttrs --- pkgs/by-name/sq/squeezelite/package.nix | 40 +++++++++++++++---------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/pkgs/by-name/sq/squeezelite/package.nix b/pkgs/by-name/sq/squeezelite/package.nix index 46a973d744d3..38d6f1cd6c56 100644 --- a/pkgs/by-name/sq/squeezelite/package.nix +++ b/pkgs/by-name/sq/squeezelite/package.nix @@ -72,23 +72,31 @@ stdenv.mkDerivation { --replace "" "" ''; - EXECUTABLE = binName; + env = { + EXECUTABLE = binName; - OPTS = [ - "-DLINKALL" - "-DGPIO" - ] - ++ optional dsdSupport "-DDSD" - ++ optional (!faad2Support) "-DNO_FAAD" - ++ optional ffmpegSupport "-DFFMPEG" - ++ optional opusSupport "-DOPUS" - ++ optional portaudioSupport "-DPORTAUDIO" - ++ optional pulseSupport "-DPULSEAUDIO" - ++ optional resampleSupport "-DRESAMPLE" - ++ optional sslSupport "-DUSE_SSL" - ++ optional (stdenv.hostPlatform.isAarch32 or stdenv.hostPlatform.isAarch64) "-DRPI"; - - env = lib.optionalAttrs stdenv.hostPlatform.isDarwin { LDADD = "-lportaudio -lpthread"; }; + OPTS = toString ( + [ + "-DLINKALL" + "-DGPIO" + ] + ++ optional dsdSupport "-DDSD" + ++ optional (!faad2Support) "-DNO_FAAD" + ++ optional ffmpegSupport "-DFFMPEG" + ++ optional opusSupport "-DOPUS" + ++ optional portaudioSupport "-DPORTAUDIO" + ++ optional pulseSupport "-DPULSEAUDIO" + ++ optional resampleSupport "-DRESAMPLE" + ++ optional sslSupport "-DUSE_SSL" + ++ optional (stdenv.hostPlatform.isAarch32 or stdenv.hostPlatform.isAarch64) "-DRPI" + ); + } + // lib.optionalAttrs stdenv.hostPlatform.isDarwin { + LDADD = toString [ + "-lportaudio" + "-lpthread" + ]; + }; installPhase = '' runHook preInstall From 15d2cbfba7319718bd4cb7cb31537dc632571eb4 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Wed, 11 Feb 2026 11:01:42 +0100 Subject: [PATCH 196/239] stalwart: move env variable(s) into env for structuredAttrs --- pkgs/by-name/st/stalwart/webadmin.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/st/stalwart/webadmin.nix b/pkgs/by-name/st/stalwart/webadmin.nix index d62ee5258c28..323a4833303a 100644 --- a/pkgs/by-name/st/stalwart/webadmin.nix +++ b/pkgs/by-name/st/stalwart/webadmin.nix @@ -51,7 +51,7 @@ rustPlatform.buildRustPackage (finalAttrs: { zip ]; - NODE_PATH = "$npmDeps"; + env.NODE_PATH = "$npmDeps"; buildPhase = '' trunk build --offline --frozen --release From 7e108d8c88a36d5aab876e6e97368d31b62e9375 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 19 Feb 2026 15:55:15 +0100 Subject: [PATCH 197/239] isso: move env variable(s) into env for structuredAttrs --- pkgs/by-name/is/isso/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/is/isso/package.nix b/pkgs/by-name/is/isso/package.nix index 2b1959ae6203..cd8486a3de53 100644 --- a/pkgs/by-name/is/isso/package.nix +++ b/pkgs/by-name/is/isso/package.nix @@ -54,7 +54,7 @@ python3Packages.buildPythonApplication (finalAttrs: { npmHooks.npmConfigHook ]; - NODE_PATH = "$npmDeps"; + env.NODE_PATH = "$npmDeps"; preBuild = '' ln -s ${finalAttrs.npmDeps}/node_modules ./node_modules From e8ad4159f11d3890b17b3df0aa7401974fb78d8a Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:16:28 +0100 Subject: [PATCH 198/239] ardour: move env variable(s) into env for structuredAttrs --- pkgs/by-name/ar/ardour/package.nix | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/pkgs/by-name/ar/ardour/package.nix b/pkgs/by-name/ar/ardour/package.nix index 9f7f7be04f7d..1a2e14771506 100644 --- a/pkgs/by-name/ar/ardour/package.nix +++ b/pkgs/by-name/ar/ardour/package.nix @@ -192,14 +192,17 @@ stdenv.mkDerivation ( ] ++ lib.optional optimize "--optimize"; - env.NIX_CFLAGS_COMPILE = toString [ - # 'ioprio_set' syscall support: - "-D_GNU_SOURCE" - # compiler doesn't find headers without these: - "-I${lib.getDev serd}/include/serd-0" - "-I${lib.getDev sratom}/include/sratom-0" - "-I${lib.getDev sord}/include/sord-0" - ]; + env = { + NIX_CFLAGS_COMPILE = toString [ + # 'ioprio_set' syscall support: + "-D_GNU_SOURCE" + # compiler doesn't find headers without these: + "-I${lib.getDev serd}/include/serd-0" + "-I${lib.getDev sratom}/include/sratom-0" + "-I${lib.getDev sord}/include/sord-0" + ]; + LINKFLAGS = "-lpthread"; + }; postInstall = '' # wscript does not install these for some reason @@ -227,8 +230,6 @@ stdenv.mkDerivation ( }" ''; - LINKFLAGS = "-lpthread"; - meta = { description = "Multi-track hard disk recording software"; longDescription = '' From c846ab1d99a461cd30a4caa7c99f8d353d038eb0 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:16:31 +0100 Subject: [PATCH 199/239] bant: move env variable(s) into env for structuredAttrs --- pkgs/by-name/ba/bant/package.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/ba/bant/package.nix b/pkgs/by-name/ba/bant/package.nix index 6b364c284223..fbf07613ed3c 100644 --- a/pkgs/by-name/ba/bant/package.nix +++ b/pkgs/by-name/ba/bant/package.nix @@ -33,7 +33,10 @@ buildBazelPackage rec { "--registry" "file://${registry}" ]; - LIBTOOL = lib.optionalString stdenv.hostPlatform.isDarwin "${cctools}/bin/libtool"; + + env = lib.optionalAttrs stdenv.hostPlatform.isDarwin { + LIBTOOL = "${cctools}/bin/libtool"; + }; postPatch = '' patchShebangs scripts/create-workspace-status.sh From 4bfb57a6cd742e6547c76967f851430fdc81676f Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:16:31 +0100 Subject: [PATCH 200/239] bluespec: move env variable(s) into env for structuredAttrs --- pkgs/by-name/bl/bluespec/package.nix | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/pkgs/by-name/bl/bluespec/package.nix b/pkgs/by-name/bl/bluespec/package.nix index d5d1ac88333a..53dbfc6655a6 100644 --- a/pkgs/by-name/bl/bluespec/package.nix +++ b/pkgs/by-name/bl/bluespec/package.nix @@ -177,12 +177,17 @@ stdenv.mkDerivation rec { cctools ]; - env.NIX_CFLAGS_COMPILE = toString ( - lib.optionals (stdenv.cc.isClang) [ - # wide_data.cxx:1750:15: error: variable length arrays in C++ are a Clang extension [-Werror,-Wvla-cxx-extension] - "-Wno-error" - ] - ); + env = + lib.optionalAttrs (stdenv.cc.isClang) { + NIX_CFLAGS_COMPILE = toString [ + # wide_data.cxx:1750:15: error: variable length arrays in C++ are a Clang extension [-Werror,-Wvla-cxx-extension] + "-Wno-error" + ]; + } + // lib.optionalAttrs (withSuiteCheck && stdenv.hostPlatform.isLinux) { + # bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) + LOCALE_ARCHIVE = "${glibcLocales}/lib/locale/locale-archive"; + }; makeFlags = [ "NO_DEPS_CHECKS=1" # skip the subrepo check (this deriviation uses yices-src instead of the subrepo) @@ -235,11 +240,6 @@ stdenv.mkDerivation rec { checkTarget = if withSuiteCheck then "checkparallel" else "check-smoke"; # this is the shortest check but "check-suite" tests much more - # bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) - LOCALE_ARCHIVE = lib.optionalString ( - withSuiteCheck && stdenv.hostPlatform.isLinux - ) "${glibcLocales}/lib/locale/locale-archive"; - nativeCheckInputs = [ gmp-static iverilog From df8588164affd7b985ee3a7bbe83529111a4ebba Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:16:31 +0100 Subject: [PATCH 201/239] cargo-llvm-cov: move env variable(s) into env for structuredAttrs --- pkgs/by-name/ca/cargo-llvm-cov/package.nix | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/ca/cargo-llvm-cov/package.nix b/pkgs/by-name/ca/cargo-llvm-cov/package.nix index 6c4f39d2aa91..18b8a9b3a699 100644 --- a/pkgs/by-name/ca/cargo-llvm-cov/package.nix +++ b/pkgs/by-name/ca/cargo-llvm-cov/package.nix @@ -57,10 +57,12 @@ rustPlatform.buildRustPackage (finalAttrs: { }; }; - # `cargo-llvm-cov` reads these environment variables to find these binaries, - # which are needed to run the tests - LLVM_COV = "${llvm}/bin/llvm-cov"; - LLVM_PROFDATA = "${llvm}/bin/llvm-profdata"; + env = { + # `cargo-llvm-cov` reads these environment variables to find these binaries, + # which are needed to run the tests + LLVM_COV = "${llvm}/bin/llvm-cov"; + LLVM_PROFDATA = "${llvm}/bin/llvm-profdata"; + }; nativeCheckInputs = [ gitMinimal From 2c3c53b41d1db7b294672005fafa84c48b48359e Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:16:32 +0100 Subject: [PATCH 202/239] chipsec: move env variable(s) into env for structuredAttrs --- pkgs/by-name/ch/chipsec/package.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/ch/chipsec/package.nix b/pkgs/by-name/ch/chipsec/package.nix index 945617e41e4b..bd9f6db867ff 100644 --- a/pkgs/by-name/ch/chipsec/package.nix +++ b/pkgs/by-name/ch/chipsec/package.nix @@ -25,7 +25,9 @@ python3.pkgs.buildPythonApplication (finalAttrs: { ./log-path.diff ]; - KSRC = lib.optionalString withDriver "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"; + env = lib.optionalAttrs withDriver { + KSRC = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"; + }; nativeBuildInputs = [ nasm From 0e25cb57d9e2f07a6b34c2272162ee6bf66ed623 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:16:32 +0100 Subject: [PATCH 203/239] circt: move env variable(s) into env for structuredAttrs --- pkgs/by-name/ci/circt/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/ci/circt/package.nix b/pkgs/by-name/ci/circt/package.nix index d28a4de75e5f..f855bf648c17 100644 --- a/pkgs/by-name/ci/circt/package.nix +++ b/pkgs/by-name/ci/circt/package.nix @@ -69,7 +69,7 @@ stdenv.mkDerivation (finalAttrs: { ]; # cannot use lib.optionalString as it creates an empty string, disabling all tests - LIT_FILTER_OUT = + env.LIT_FILTER_OUT = let lit-filters = # There are some tests depending on `clang-tools` to work. They are activated only when detected From cec2f4f62ae173658c3b2398e572aaebddf2da6b Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:16:32 +0100 Subject: [PATCH 204/239] dnspeep: move env variable(s) into env for structuredAttrs --- pkgs/by-name/dn/dnspeep/package.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/dn/dnspeep/package.nix b/pkgs/by-name/dn/dnspeep/package.nix index bbdb1a80aecf..a7767de99e47 100644 --- a/pkgs/by-name/dn/dnspeep/package.nix +++ b/pkgs/by-name/dn/dnspeep/package.nix @@ -18,8 +18,10 @@ rustPlatform.buildRustPackage (finalAttrs: { cargoHash = "sha256-tZlh7+END6oOy3uWOrjle+nwqFhMU6bbXmr4hdt6gqY="; - LIBPCAP_LIBDIR = lib.makeLibraryPath [ libpcap ]; - LIBPCAP_VER = libpcap.version; + env = { + LIBPCAP_LIBDIR = lib.makeLibraryPath [ libpcap ]; + LIBPCAP_VER = libpcap.version; + }; meta = { description = "Spy on the DNS queries your computer is making"; From d85204bea4e9c6283dcf14e9d5a9450c5090ce49 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:16:32 +0100 Subject: [PATCH 205/239] eventstore: move env variable(s) into env for structuredAttrs --- pkgs/by-name/ev/eventstore/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/ev/eventstore/package.nix b/pkgs/by-name/ev/eventstore/package.nix index fd730c0fd77c..51452be3c28b 100644 --- a/pkgs/by-name/ev/eventstore/package.nix +++ b/pkgs/by-name/ev/eventstore/package.nix @@ -27,7 +27,7 @@ buildDotnetModule rec { }; # Fixes application reporting 0.0.0.0 as its version. - MINVERVERSIONOVERRIDE = version; + env.MINVERVERSIONOVERRIDE = version; dotnet-sdk = dotnetCorePackages.sdk_8_0; dotnet-runtime = dotnetCorePackages.aspnetcore_8_0; From 483b72137fea08a961ed8ac376195519ace743f7 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:16:33 +0100 Subject: [PATCH 206/239] fortune-kind: move env variable(s) into env for structuredAttrs --- pkgs/by-name/fo/fortune-kind/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/fo/fortune-kind/package.nix b/pkgs/by-name/fo/fortune-kind/package.nix index 4b5c28281cf2..86a8b7b5508c 100644 --- a/pkgs/by-name/fo/fortune-kind/package.nix +++ b/pkgs/by-name/fo/fortune-kind/package.nix @@ -32,7 +32,7 @@ rustPlatform.buildRustPackage (finalAttrs: { buildNoDefaultFeatures = true; - MAN_OUT = "./man"; + env.MAN_OUT = "./man"; preBuild = '' mkdir -p "./$MAN_OUT"; From 9ce6bc7212ced09d8f6c7ce53f41858b9321fb64 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:16:33 +0100 Subject: [PATCH 207/239] ghdl: move env variable(s) into env for structuredAttrs --- pkgs/by-name/gh/ghdl/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/gh/ghdl/package.nix b/pkgs/by-name/gh/ghdl/package.nix index 90f62294bad8..3d9943397e0b 100644 --- a/pkgs/by-name/gh/ghdl/package.nix +++ b/pkgs/by-name/gh/ghdl/package.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-vPeODNTptxIjN6qLoIHaKOFf3P3iAK2GloVreHPaAz8="; }; - LIBRARY_PATH = "${stdenv.cc.libc}/lib"; + env.LIBRARY_PATH = "${stdenv.cc.libc}/lib"; nativeBuildInputs = [ gnat From 140d831647e9a1e31754b40e6ad5d50081594617 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:16:33 +0100 Subject: [PATCH 208/239] github-runner: move env variable(s) into env for structuredAttrs --- pkgs/by-name/gi/github-runner/package.nix | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/gi/github-runner/package.nix b/pkgs/by-name/gi/github-runner/package.nix index bba388654e88..710f952a5223 100644 --- a/pkgs/by-name/gi/github-runner/package.nix +++ b/pkgs/by-name/gi/github-runner/package.nix @@ -103,10 +103,12 @@ buildDotnetModule (finalAttrs: { 'true' ''; - DOTNET_SYSTEM_GLOBALIZATION_INVARIANT = isNull glibcLocales; - LOCALE_ARCHIVE = lib.optionalString ( - !finalAttrs.DOTNET_SYSTEM_GLOBALIZATION_INVARIANT - ) "${glibcLocales}/lib/locale/locale-archive"; + env = { + DOTNET_SYSTEM_GLOBALIZATION_INVARIANT = isNull glibcLocales; + } + // lib.optionalAttrs (!isNull glibcLocales) { + LOCALE_ARCHIVE = "${glibcLocales}/lib/locale/locale-archive"; + }; postConfigure = '' # Generate src/Runner.Sdk/BuildConstants.cs @@ -220,7 +222,7 @@ buildDotnetModule (finalAttrs: { "GitHub.Runner.Common.Tests.Worker.StepHostL0.DetermineNode20RuntimeVersionInAlpineContainerAsync" "GitHub.Runner.Common.Tests.Worker.StepHostL0.DetermineNode24RuntimeVersionInAlpineContainerAsync" ] - ++ lib.optionals finalAttrs.DOTNET_SYSTEM_GLOBALIZATION_INVARIANT [ + ++ lib.optionals finalAttrs.env.DOTNET_SYSTEM_GLOBALIZATION_INVARIANT [ "GitHub.Runner.Common.Tests.Util.StringUtilL0.FormatUsesInvariantCulture" "GitHub.Runner.Common.Tests.Worker.VariablesL0.Constructor_SetsOrdinalIgnoreCaseComparer" "GitHub.Runner.Common.Tests.Worker.WorkerL0.DispatchCancellation" From f33f170d34b7f09c80bcdfc001dafa427386a4aa Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:16:33 +0100 Subject: [PATCH 209/239] hentai-at-home: move env variable(s) into env for structuredAttrs --- pkgs/by-name/he/hentai-at-home/package.nix | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/he/hentai-at-home/package.nix b/pkgs/by-name/he/hentai-at-home/package.nix index 9d819530488c..b94b3f0eeba5 100644 --- a/pkgs/by-name/he/hentai-at-home/package.nix +++ b/pkgs/by-name/he/hentai-at-home/package.nix @@ -22,10 +22,12 @@ stdenvNoCC.mkDerivation (finalAttrs: { makeWrapper ]; - LANG = "en_US.UTF-8"; - LOCALE_ARCHIVE = lib.optionalString ( - stdenvNoCC.buildPlatform.libc == "glibc" - ) "${buildPackages.glibcLocales}/lib/locale/locale-archive"; + env = { + LANG = "en_US.UTF-8"; + } + // lib.optionalAttrs (stdenvNoCC.buildPlatform.libc == "glibc") { + LOCALE_ARCHIVE = "${buildPackages.glibcLocales}/lib/locale/locale-archive"; + }; makeFlags = [ "all" ]; enableParallelBuilding = false; From 6ef37e78f833fa6b4ae7c89f0b85846651d9f723 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:16:34 +0100 Subject: [PATCH 210/239] intel-vaapi-driver: move env variable(s) into env for structuredAttrs --- pkgs/by-name/in/intel-vaapi-driver/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/in/intel-vaapi-driver/package.nix b/pkgs/by-name/in/intel-vaapi-driver/package.nix index b461933e2d85..33f06004ae1b 100644 --- a/pkgs/by-name/in/intel-vaapi-driver/package.nix +++ b/pkgs/by-name/in/intel-vaapi-driver/package.nix @@ -32,7 +32,7 @@ stdenv.mkDerivation { }; # Set the correct install path: - LIBVA_DRIVERS_PATH = "${placeholder "out"}/lib/dri"; + env.LIBVA_DRIVERS_PATH = "${placeholder "out"}/lib/dri"; postInstall = lib.optionalString enableHybridCodec '' ln -s ${vaapi-intel-hybrid}/lib/dri/* $out/lib/dri/ From 3d2328c2e914af81d157531c8f3aea8fa04e1df0 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:16:34 +0100 Subject: [PATCH 211/239] lc3tools: move env variable(s) into env for structuredAttrs --- pkgs/by-name/lc/lc3tools/package.nix | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/lc/lc3tools/package.nix b/pkgs/by-name/lc/lc3tools/package.nix index c9ef1484bb24..461a85ea2aea 100644 --- a/pkgs/by-name/lc/lc3tools/package.nix +++ b/pkgs/by-name/lc/lc3tools/package.nix @@ -41,10 +41,12 @@ stdenv.mkDerivation { readline ]; - # lumetta published this a while ago but handrolled his configure - # jank in the original packaging makes this necessary: - LIBS = "${flex}/lib:${ncurses}/lib:${readline}/lib"; - INCLUDES = "${flex}/include:${ncurses}/include:${readline}/include"; + env = { + # lumetta published this a while ago but handrolled his configure + # jank in the original packaging makes this necessary: + LIBS = "${flex}/lib:${ncurses}/lib:${readline}/lib"; + INCLUDES = "${flex}/include:${ncurses}/include:${readline}/include"; + }; # it doesn't take `--prefix` prefixKey = "--installdir "; From fbf19ca5fa9a428812b6442e0ee1cb13439dae36 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:16:34 +0100 Subject: [PATCH 212/239] linuxdoc-tools: move env variable(s) into env for structuredAttrs --- pkgs/by-name/li/linuxdoc-tools/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/li/linuxdoc-tools/package.nix b/pkgs/by-name/li/linuxdoc-tools/package.nix index 7d3feb00d414..45cd774c6d00 100644 --- a/pkgs/by-name/li/linuxdoc-tools/package.nix +++ b/pkgs/by-name/li/linuxdoc-tools/package.nix @@ -36,7 +36,7 @@ stdenv.mkDerivation (finalAttrs: { ("--enable-docs=txt info lyx html rtf" + lib.optionalString withLatex " pdf") ]; - LEX = "flex"; + env.LEX = "flex"; postInstall = '' wrapProgram $out/bin/linuxdoc \ From 581888769a4aa52cdf071822b1df95323aa1cfe6 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:16:34 +0100 Subject: [PATCH 213/239] lsof: move env variable(s) into env for structuredAttrs --- pkgs/by-name/ls/lsof/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/ls/lsof/package.nix b/pkgs/by-name/ls/lsof/package.nix index f438a33b5465..8976e83d5069 100644 --- a/pkgs/by-name/ls/lsof/package.nix +++ b/pkgs/by-name/ls/lsof/package.nix @@ -49,7 +49,7 @@ stdenv.mkDerivation rec { buildInputs = [ ncurses ]; # Stop build scripts from searching global include paths - LSOF_INCLUDE = "${lib.getDev stdenv.cc.libc}/include"; + env.LSOF_INCLUDE = "${lib.getDev stdenv.cc.libc}/include"; configurePhase = let genericFlags = "LSOF_CC=$CC LSOF_AR=\"$AR cr\" LSOF_RANLIB=$RANLIB"; From 9609b831d05db1101034bf91f6b1a7cf86115671 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:16:35 +0100 Subject: [PATCH 214/239] materialize: move env variable(s) into env for structuredAttrs --- pkgs/by-name/ma/materialize/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/ma/materialize/package.nix b/pkgs/by-name/ma/materialize/package.nix index b684305768a5..196f6769ed02 100644 --- a/pkgs/by-name/ma/materialize/package.nix +++ b/pkgs/by-name/ma/materialize/package.nix @@ -92,7 +92,6 @@ in rustPlatform.buildRustPackage rec { pname = "materialize"; version = "0.87.2"; - MZ_DEV_BUILD_SHA = "000000000000000000000000000000000000000000000000000"; src = fetchFromGitHub { owner = "MaterializeInc"; @@ -112,6 +111,7 @@ rustPlatform.buildRustPackage rec { ''; env = { + MZ_DEV_BUILD_SHA = "000000000000000000000000000000000000000000000000000"; # needed for internal protobuf c wrapper library PROTOC = lib.getExe protobuf; PROTOC_INCLUDE = "${protobuf}/include"; From 456c9c578d3ea8de9612955e858a18234354e645 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:16:35 +0100 Subject: [PATCH 215/239] msbuild: move env variable(s) into env for structuredAttrs --- pkgs/by-name/ms/msbuild/package.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ms/msbuild/package.nix b/pkgs/by-name/ms/msbuild/package.nix index 6d8010e4e0cb..ce9f87d20088 100644 --- a/pkgs/by-name/ms/msbuild/package.nix +++ b/pkgs/by-name/ms/msbuild/package.nix @@ -55,9 +55,11 @@ mkPackage rec { glibcLocales ]; - # https://github.com/NixOS/nixpkgs/issues/38991 - # bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) - LOCALE_ARCHIVE = lib.optionalString stdenv.hostPlatform.isLinux "${glibcLocales}/lib/locale/locale-archive"; + env = lib.optionalAttrs stdenv.hostPlatform.isLinux { + # https://github.com/NixOS/nixpkgs/issues/38991 + # bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) + LOCALE_ARCHIVE = "${glibcLocales}/lib/locale/locale-archive"; + }; postPatch = '' # not patchShebangs, there is /bin/bash in the body of the script as well From d4e22fb2031fcf66e7b7574f85bb0bfe4742e082 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:16:35 +0100 Subject: [PATCH 216/239] netop: move env variable(s) into env for structuredAttrs --- pkgs/by-name/ne/netop/package.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ne/netop/package.nix b/pkgs/by-name/ne/netop/package.nix index e303475d1804..103fa61fd84a 100644 --- a/pkgs/by-name/ne/netop/package.nix +++ b/pkgs/by-name/ne/netop/package.nix @@ -16,8 +16,10 @@ rustPlatform.buildRustPackage (finalAttrs: { hash = "sha256-Rnp2VNAi8BNbKqkGFoYUb4C5db5BS1P1cqpWlroTmdQ="; }; - LIBPCAP_LIBDIR = lib.makeLibraryPath [ libpcap ]; - LIBPCAP_VER = libpcap.version; + env = { + LIBPCAP_LIBDIR = lib.makeLibraryPath [ libpcap ]; + LIBPCAP_VER = libpcap.version; + }; cargoHash = "sha256-WGwtRMARwRvcUflN3JYL32aib+IG1Q0j0D9BEfaiME4="; From 04c5c30b6e31ee0a3bfb1cc7d45e6e2b7a3c170e Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:16:35 +0100 Subject: [PATCH 217/239] nix-weather: move env variable(s) into env for structuredAttrs --- pkgs/by-name/ni/nix-weather/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/ni/nix-weather/package.nix b/pkgs/by-name/ni/nix-weather/package.nix index 3f6aa492a66b..00f904a9144d 100644 --- a/pkgs/by-name/ni/nix-weather/package.nix +++ b/pkgs/by-name/ni/nix-weather/package.nix @@ -41,7 +41,7 @@ rustPlatform.buildRustPackage (finalAttrs: { ]; # This is where `build.rs` puts manpages - MAN_OUT = "./man"; + env.MAN_OUT = "./man"; postInstall = '' cd crates/nix-weather From b26df2318580c59dc700e6ff6b9ebc7b5b32265b Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:16:36 +0100 Subject: [PATCH 218/239] nsis: move env variable(s) into env for structuredAttrs --- pkgs/by-name/ns/nsis/package.nix | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/pkgs/by-name/ns/nsis/package.nix b/pkgs/by-name/ns/nsis/package.nix index 172d5d0459a5..05e25a5ed97d 100644 --- a/pkgs/by-name/ns/nsis/package.nix +++ b/pkgs/by-name/ns/nsis/package.nix @@ -32,14 +32,16 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ scons ]; buildInputs = [ zlib ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ]; - CPPPATH = symlinkJoin { - name = "nsis-includes"; - paths = [ zlib.dev ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ]; - }; + env = { + CPPPATH = symlinkJoin { + name = "nsis-includes"; + paths = [ zlib.dev ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ]; + }; - LIBPATH = symlinkJoin { - name = "nsis-libs"; - paths = [ zlib ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ]; + LIBPATH = symlinkJoin { + name = "nsis-libs"; + paths = [ zlib ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ]; + }; }; sconsFlags = [ From 4035071b0bd2d608139c128b34dda970f3b9bcd1 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:16:36 +0100 Subject: [PATCH 219/239] nushell-plugin-bson: move env variable(s) into env for structuredAttrs --- pkgs/by-name/nu/nushell-plugin-bson/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/nu/nushell-plugin-bson/package.nix b/pkgs/by-name/nu/nushell-plugin-bson/package.nix index d0208edde789..df0ab8b9d969 100644 --- a/pkgs/by-name/nu/nushell-plugin-bson/package.nix +++ b/pkgs/by-name/nu/nushell-plugin-bson/package.nix @@ -23,7 +23,7 @@ rustPlatform.buildRustPackage (finalAttrs: { llvmPackages.libclang ]; - LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib"; + env.LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib"; passthru.update-script = nix-update-script { }; meta = { From 98e785596392716097ece452e3dda9fec80693f2 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:16:36 +0100 Subject: [PATCH 220/239] parseable: move env variable(s) into env for structuredAttrs --- pkgs/by-name/pa/parseable/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/pa/parseable/package.nix b/pkgs/by-name/pa/parseable/package.nix index b9ad8934f384..e69eb7bdd8e1 100644 --- a/pkgs/by-name/pa/parseable/package.nix +++ b/pkgs/by-name/pa/parseable/package.nix @@ -21,7 +21,7 @@ rustPlatform.buildRustPackage (finalAttrs: { hash = "sha256-Asb6064TqvL9kNkWBMj4Z+1j1yIM+iBWsN+R5EuMOVA="; }; - LOCAL_ASSETS_PATH = fetchzip { + env.LOCAL_ASSETS_PATH = fetchzip { url = "https://parseable-prism-build.s3.us-east-2.amazonaws.com/v${finalAttrs.version}/build.zip"; hash = "sha256-gWzfucetsJJSSjI9nGm7I8xLo0t1VKb4AertiEGuLWA="; }; From 869b8b3cf38d92f849e62be5e3a4aa34d72f2819 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:16:36 +0100 Subject: [PATCH 221/239] pmacct: move env variable(s) into env for structuredAttrs --- pkgs/by-name/pm/pmacct/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/pm/pmacct/package.nix b/pkgs/by-name/pm/pmacct/package.nix index 491735246210..e58d1558dd26 100644 --- a/pkgs/by-name/pm/pmacct/package.nix +++ b/pkgs/by-name/pm/pmacct/package.nix @@ -68,7 +68,7 @@ stdenv.mkDerivation (finalAttrs: { ] ++ lib.optional gnutlsSupport gnutls; - MYSQL_CONFIG = lib.optionalString withMysql "${lib.getDev libmysqlclient}/bin/mysql_config"; + env.MYSQL_CONFIG = lib.optionalString withMysql "${lib.getDev libmysqlclient}/bin/mysql_config"; configureFlags = [ "--with-pcap-includes=${libpcap}/include" From 478028c9d33ced1bf6eb654bdee90481ead05479 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:16:36 +0100 Subject: [PATCH 222/239] poco: move env variable(s) into env for structuredAttrs --- pkgs/by-name/po/poco/package.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/po/poco/package.nix b/pkgs/by-name/po/poco/package.nix index 3d6dd586095f..fd6eb26914f9 100644 --- a/pkgs/by-name/po/poco/package.nix +++ b/pkgs/by-name/po/poco/package.nix @@ -52,8 +52,10 @@ stdenv.mkDerivation rec { "dev" ]; - MYSQL_DIR = libmysqlclient; - MYSQL_INCLUDE_DIR = "${MYSQL_DIR}/include/mysql"; + env = { + MYSQL_DIR = libmysqlclient; + MYSQL_INCLUDE_DIR = "${env.MYSQL_DIR}/include/mysql"; + }; cmakeFlags = let From fe9698c37763bd218c2cab3a7a5bcab2ac5c1e2a Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:16:37 +0100 Subject: [PATCH 223/239] protoc-gen-js: move env variable(s) into env for structuredAttrs --- pkgs/by-name/pr/protoc-gen-js/package.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/pr/protoc-gen-js/package.nix b/pkgs/by-name/pr/protoc-gen-js/package.nix index 57ede878199f..324ad5d431b2 100644 --- a/pkgs/by-name/pr/protoc-gen-js/package.nix +++ b/pkgs/by-name/pr/protoc-gen-js/package.nix @@ -40,7 +40,9 @@ buildBazelPackage' rec { removeRulesCC = false; removeLocalConfigCC = false; - LIBTOOL = lib.optionalString stdenv.hostPlatform.isDarwin "${cctools}/bin/libtool"; + env = lib.optionalAttrs stdenv.hostPlatform.isDarwin { + LIBTOOL = "${cctools}/bin/libtool"; + }; fetchAttrs = { preInstall = '' From 5c38443c1fd648e83ca3a73b6d8aec80ffbd0f2e Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:16:37 +0100 Subject: [PATCH 224/239] pspp: move env variable(s) into env for structuredAttrs --- pkgs/by-name/ps/pspp/package.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ps/pspp/package.nix b/pkgs/by-name/ps/pspp/package.nix index 3ef4dbbe2423..bb720dc07489 100644 --- a/pkgs/by-name/ps/pspp/package.nix +++ b/pkgs/by-name/ps/pspp/package.nix @@ -55,9 +55,11 @@ stdenv.mkDerivation rec { iconv ]; - C_INCLUDE_PATH = - "${libxml2.dev}/include/libxml2/:" + lib.makeSearchPathOutput "dev" "include" buildInputs; - LIBRARY_PATH = lib.makeLibraryPath buildInputs; + env = { + C_INCLUDE_PATH = + "${libxml2.dev}/include/libxml2/:" + lib.makeSearchPathOutput "dev" "include" buildInputs; + LIBRARY_PATH = lib.makeLibraryPath buildInputs; + }; doCheck = false; From e3cfdf4a5a82ad9f8e456006e53a248bb838c4ca Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:16:37 +0100 Subject: [PATCH 225/239] smlpkg: move env variable(s) into env for structuredAttrs --- pkgs/by-name/sm/smlpkg/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/sm/smlpkg/package.nix b/pkgs/by-name/sm/smlpkg/package.nix index 5f9123f7a528..b5d66880f220 100644 --- a/pkgs/by-name/sm/smlpkg/package.nix +++ b/pkgs/by-name/sm/smlpkg/package.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ mlton ]; # Set as an environment variable in all the phase scripts. - MLCOMP = "mlton"; + env.MLCOMP = "mlton"; buildFlags = [ "all" ]; installFlags = [ "prefix=$(out)" ]; From d0cc3d5e60f793263a1c262e3d9218ccece71d24 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:16:38 +0100 Subject: [PATCH 226/239] vice: move env variable(s) into env for structuredAttrs --- pkgs/by-name/vi/vice/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/vi/vice/package.nix b/pkgs/by-name/vi/vice/package.nix index 634b05fddb05..ac958fb50f26 100644 --- a/pkgs/by-name/vi/vice/package.nix +++ b/pkgs/by-name/vi/vice/package.nix @@ -72,7 +72,7 @@ stdenv.mkDerivation (finalAttrs: { "--with-gif" ]; - LIBS = "-lGL"; + env.LIBS = "-lGL"; preBuild = '' sed -i -e 's|#!/usr/bin/env bash|${runtimeShell}/bin/bash|' src/arch/gtk3/novte/box_drawing_generate.sh From 6dc61a99b32cca33a7eb50cee414fb6e49143b06 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:16:38 +0100 Subject: [PATCH 227/239] virtiofsd: move env variable(s) into env for structuredAttrs --- pkgs/by-name/vi/virtiofsd/package.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/vi/virtiofsd/package.nix b/pkgs/by-name/vi/virtiofsd/package.nix index 19b607a1aab7..1b3ef67272c8 100644 --- a/pkgs/by-name/vi/virtiofsd/package.nix +++ b/pkgs/by-name/vi/virtiofsd/package.nix @@ -23,8 +23,10 @@ rustPlatform.buildRustPackage (finalAttrs: { cargoHash = "sha256-AOWHlvFvKj05f4/KE1F37qkRstW5gUlRH0HZVZrg7Dg="; - LIBCAPNG_LIB_PATH = "${lib.getLib libcap_ng}/lib"; - LIBCAPNG_LINK_TYPE = if stdenv.hostPlatform.isStatic then "static" else "dylib"; + env = { + LIBCAPNG_LIB_PATH = "${lib.getLib libcap_ng}/lib"; + LIBCAPNG_LINK_TYPE = if stdenv.hostPlatform.isStatic then "static" else "dylib"; + }; buildInputs = [ libcap_ng From e9523e92a96fb94b0752fc4e01d59f7b410363db Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:16:38 +0100 Subject: [PATCH 228/239] waypipe: move env variable(s) into env for structuredAttrs --- pkgs/by-name/wa/waypipe/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/wa/waypipe/package.nix b/pkgs/by-name/wa/waypipe/package.nix index b32e73714ff1..eacc5b6cbdc4 100644 --- a/pkgs/by-name/wa/waypipe/package.nix +++ b/pkgs/by-name/wa/waypipe/package.nix @@ -38,7 +38,7 @@ llvmPackages.stdenv.mkDerivation (finalAttrs: { }; strictDeps = true; - LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib"; + env.LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib"; depsBuildBuild = [ pkg-config ]; nativeBuildInputs = [ From 597404d6ddd24ad3fdf92c65a13d80100516eaa9 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:16:58 +0100 Subject: [PATCH 229/239] tesseract3: move env variable(s) into env for structuredAttrs --- pkgs/applications/graphics/tesseract/tesseract3.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/graphics/tesseract/tesseract3.nix b/pkgs/applications/graphics/tesseract/tesseract3.nix index 4d3a97ade7dd..ffe3cbc7039e 100644 --- a/pkgs/applications/graphics/tesseract/tesseract3.nix +++ b/pkgs/applications/graphics/tesseract/tesseract3.nix @@ -47,7 +47,7 @@ stdenv.mkDerivation rec { opencl-headers ]; - LIBLEPT_HEADERSDIR = "${leptonica}/include"; + env.LIBLEPT_HEADERSDIR = "${leptonica}/include"; meta = { description = "OCR engine"; From 271f8c4e5046b22cadbf01a8f931dedc5be87272 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:17:08 +0100 Subject: [PATCH 230/239] awesome: move env variable(s) into env for structuredAttrs --- .../window-managers/awesome/default.nix | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/pkgs/applications/window-managers/awesome/default.nix b/pkgs/applications/window-managers/awesome/default.nix index 8c7ef0442848..4d9db85dbc2f 100644 --- a/pkgs/applications/window-managers/awesome/default.nix +++ b/pkgs/applications/window-managers/awesome/default.nix @@ -114,8 +114,6 @@ stdenv.mkDerivation rec { "doc" ]; - FONTCONFIG_FILE = toString fontsConf; - propagatedUserEnvPkgs = [ hicolor-icon-theme ]; buildInputs = [ cairo @@ -150,11 +148,14 @@ stdenv.mkDerivation rec { ] ++ lib.optional lua.pkgs.isLuaJIT "-DLUA_LIBRARY=${lua}/lib/libluajit-5.1.so"; - GI_TYPELIB_PATH = "${pango.out}/lib/girepository-1.0"; - # LUA_CPATH and LUA_PATH are used only for *building*, see the --search flags - # below for how awesome finds the libraries it needs at runtime. - LUA_CPATH = "${luaEnv}/lib/lua/${lua.luaversion}/?.so"; - LUA_PATH = "${luaEnv}/share/lua/${lua.luaversion}/?.lua;;"; + env = { + FONTCONFIG_FILE = toString fontsConf; + GI_TYPELIB_PATH = "${pango.out}/lib/girepository-1.0"; + # LUA_CPATH and LUA_PATH are used only for *building*, see the --search flags + # below for how awesome finds the libraries it needs at runtime. + LUA_CPATH = "${luaEnv}/lib/lua/${lua.luaversion}/?.so"; + LUA_PATH = "${luaEnv}/share/lua/${lua.luaversion}/?.lua;;"; + }; postInstall = '' # Don't use wrapProgram or the wrapper will duplicate the --search From ebfac8f41daa767c105c3de907f50814c405d1c3 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:17:28 +0100 Subject: [PATCH 231/239] trace-cmd: move env variable(s) into env for structuredAttrs --- pkgs/os-specific/linux/trace-cmd/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/os-specific/linux/trace-cmd/default.nix b/pkgs/os-specific/linux/trace-cmd/default.nix index 4a71afc5b9b9..8095c5cbece6 100644 --- a/pkgs/os-specific/linux/trace-cmd/default.nix +++ b/pkgs/os-specific/linux/trace-cmd/default.nix @@ -54,7 +54,7 @@ stdenv.mkDerivation rec { "devman" ]; - MANPAGE_DOCBOOK_XSL = "${docbook_xsl}/xml/xsl/docbook/manpages/docbook.xsl"; + env.MANPAGE_DOCBOOK_XSL = "${docbook_xsl}/xml/xsl/docbook/manpages/docbook.xsl"; dontConfigure = true; From 3690c0788d67d9c066e77210374b44d5302db184 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 12 Feb 2026 11:17:47 +0100 Subject: [PATCH 232/239] python3Packages.emborg: move env variable(s) into env for structuredAttrs --- pkgs/development/python-modules/emborg/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/emborg/default.nix b/pkgs/development/python-modules/emborg/default.nix index b45a6e5c1a9e..223613f55988 100644 --- a/pkgs/development/python-modules/emborg/default.nix +++ b/pkgs/development/python-modules/emborg/default.nix @@ -50,7 +50,7 @@ buildPythonPackage rec { ]; # this disables testing fuse mounts - MISSING_DEPENDENCIES = "fuse"; + env.MISSING_DEPENDENCIES = "fuse"; postPatch = '' patchShebangs . From 06b1f4f2f9cc758925a6e280d1c8a74e4b06ced5 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 19 Feb 2026 15:12:07 +0000 Subject: [PATCH 233/239] python3Packages.signxml: 4.2.2 -> 4.3.1 --- pkgs/development/python-modules/signxml/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/signxml/default.nix b/pkgs/development/python-modules/signxml/default.nix index fa4ae55d6465..e1f33a11763e 100644 --- a/pkgs/development/python-modules/signxml/default.nix +++ b/pkgs/development/python-modules/signxml/default.nix @@ -13,14 +13,14 @@ buildPythonPackage (finalAttrs: { pname = "signxml"; - version = "4.2.2"; + version = "4.3.1"; pyproject = true; src = fetchFromGitHub { owner = "XML-Security"; repo = "signxml"; tag = "v${finalAttrs.version}"; - hash = "sha256-IZa62HIsCsNiIlHhLgy0GRIq+E3HBnYSdy/LtDvPa/E="; + hash = "sha256-yAqew1y9LBCKGSc4B9r/c/2XtQzQur4lvVQJUExk95E="; }; build-system = [ From 252159118a3f31892e8b9b723b0736e4fb77d4aa Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Thu, 19 Feb 2026 16:00:52 +0100 Subject: [PATCH 234/239] verible: move env variable(s) into env for structuredAttrs --- pkgs/by-name/ve/verible/package.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/ve/verible/package.nix b/pkgs/by-name/ve/verible/package.nix index fc7ea87868e1..067d8d8336e6 100644 --- a/pkgs/by-name/ve/verible/package.nix +++ b/pkgs/by-name/ve/verible/package.nix @@ -30,6 +30,9 @@ buildBazelPackage { # a build string shown in the tools --version output. # If env variables not set, it would attempt to extract it from .git/. inherit GIT_DATE GIT_VERSION; + } + // lib.optionalAttrs stdenv.hostPlatform.isDarwin { + LIBTOOL = "${cctools}/bin/libtool"; }; # Derive nix package version from GIT_VERSION: "v1.2-345-abcde" -> "1.2.345" @@ -67,7 +70,6 @@ buildBazelPackage { flex # .. to compile with newer glibc python3 ]; - LIBTOOL = lib.optionalString stdenv.hostPlatform.isDarwin "${cctools}/bin/libtool"; postPatch = '' patchShebangs \ From 8f9993e78c54ba2b99bbfbe137db0401f5566421 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 19 Feb 2026 15:50:40 +0000 Subject: [PATCH 235/239] cargo-hack: 0.6.42 -> 0.6.43 --- pkgs/by-name/ca/cargo-hack/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ca/cargo-hack/package.nix b/pkgs/by-name/ca/cargo-hack/package.nix index 66aa21aa6bdd..2ef25d040f36 100644 --- a/pkgs/by-name/ca/cargo-hack/package.nix +++ b/pkgs/by-name/ca/cargo-hack/package.nix @@ -7,14 +7,14 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "cargo-hack"; - version = "0.6.42"; + version = "0.6.43"; src = fetchCrate { inherit (finalAttrs) pname version; - hash = "sha256-ebKnXTEWROIy4MREcBQ+ahbQoQZCSttiCMrgW+/buj4="; + hash = "sha256-5C2qqmP+k7WtvjEOPuhlcj2MbcOJJEMsAwmr928Uw4E="; }; - cargoHash = "sha256-4Vg0JD2FeZV8SiD5Kzg1KLkPnQ20NVlkbiguwbpYip8="; + cargoHash = "sha256-sG+ltuEbptHeYgXAUIOlQ82f5z8MvKwHWHsU9aGC/K0="; # some necessary files are absent in the crate version doCheck = false; From ab1d3822214c8adaed3b23eb36ab168d4b61edd9 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 19 Feb 2026 15:54:09 +0000 Subject: [PATCH 236/239] cargo-expand: 1.0.120 -> 1.0.121 --- pkgs/by-name/ca/cargo-expand/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ca/cargo-expand/package.nix b/pkgs/by-name/ca/cargo-expand/package.nix index 17607da8aeb2..8e92fbdbe0f8 100644 --- a/pkgs/by-name/ca/cargo-expand/package.nix +++ b/pkgs/by-name/ca/cargo-expand/package.nix @@ -8,16 +8,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "cargo-expand"; - version = "1.0.120"; + version = "1.0.121"; src = fetchFromGitHub { owner = "dtolnay"; repo = "cargo-expand"; tag = finalAttrs.version; - hash = "sha256-KXnAKv8202Trkkr9D9HRmxTOZ67M2Jt4dhZ9o7D86uI="; + hash = "sha256-Mwc1toL3kF+ZSmSwE24FRHXtIGHB0IVBiKtHGEpsn2E="; }; - cargoHash = "sha256-eCDjGKLPy98SuknzzIE2GZEsxFjNZKuV30Y5nBQao3s="; + cargoHash = "sha256-F5g70cQYSiz63DD4uQTYIQ6I7Xf6fXL4ZwfDzOYpXzQ="; nativeInstallCheckInputs = [ versionCheckHook ]; doInstallCheck = true; From 3441c649173a4d818d887a314de779be6160a357 Mon Sep 17 00:00:00 2001 From: K900 Date: Thu, 19 Feb 2026 19:14:26 +0300 Subject: [PATCH 237/239] python3Packages.scikit-build-core: switch to finalAttrs Same issue with dynamic attrs in rec. --- .../python-modules/scikit-build-core/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/scikit-build-core/default.nix b/pkgs/development/python-modules/scikit-build-core/default.nix index b91e36b4fac8..b4f68998eb7f 100644 --- a/pkgs/development/python-modules/scikit-build-core/default.nix +++ b/pkgs/development/python-modules/scikit-build-core/default.nix @@ -27,7 +27,7 @@ wheel, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "scikit-build-core"; version = "0.11.6"; pyproject = true; @@ -35,7 +35,7 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "scikit-build"; repo = "scikit-build-core"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-zBTDacTkeclz+/X0SUl1xkxLz4zsfeLOD4Ew0V1Y1iU="; }; @@ -96,8 +96,8 @@ buildPythonPackage rec { meta = { description = "Next generation Python CMake adaptor and Python API for plugins"; homepage = "https://github.com/scikit-build/scikit-build-core"; - changelog = "https://github.com/scikit-build/scikit-build-core/blob/${src.tag}/docs/about/changelog.md"; + changelog = "https://github.com/scikit-build/scikit-build-core/blob/${finalAttrs.src.tag}/docs/about/changelog.md"; license = with lib.licenses; [ asl20 ]; maintainers = with lib.maintainers; [ veprbl ]; }; -} +}) From 90abf6860b262fa5ce31135f6a968c316c5c0b14 Mon Sep 17 00:00:00 2001 From: K900 Date: Thu, 19 Feb 2026 19:18:17 +0300 Subject: [PATCH 238/239] libphonenumber: pin boost188 Doesn't build on 1.89 --- pkgs/by-name/li/libphonenumber/package.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/li/libphonenumber/package.nix b/pkgs/by-name/li/libphonenumber/package.nix index 5b4ecd3e530d..4b2d500c76d1 100644 --- a/pkgs/by-name/li/libphonenumber/package.nix +++ b/pkgs/by-name/li/libphonenumber/package.nix @@ -8,7 +8,8 @@ gtest, jre, pkg-config, - boost, + # complains about missing boost.system on 1.89 + boost188, icu, protobuf, }: @@ -52,7 +53,7 @@ stdenv.mkDerivation (finalAttrs: { ]; propagatedBuildInputs = lib.optionals enableTests [ - boost + boost188 ]; cmakeDir = "../cpp"; From 0f4517f2eab27b7b90c54a6cb0a52ff70868e8b2 Mon Sep 17 00:00:00 2001 From: Matthieu Coudron <886074+teto@users.noreply.github.com> Date: Thu, 19 Feb 2026 17:54:49 +0100 Subject: [PATCH 239/239] Revert "neovim: set provider configuration to initrc" --- doc/release-notes/rl-2605.section.md | 2 - pkgs/applications/editors/neovim/wrapper.nix | 48 ++++++++++---------- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/doc/release-notes/rl-2605.section.md b/doc/release-notes/rl-2605.section.md index 10802b054ec7..2bbb2d565864 100644 --- a/doc/release-notes/rl-2605.section.md +++ b/doc/release-notes/rl-2605.section.md @@ -187,8 +187,6 @@ - `openrgb` was updated to 1.0rc2, which now uses Plugin API version 4. Some existing OpenRGB plugins may be incompatible or require updates. -- the `neovim` wrapper sets provider-related configuration in its generated config rather than as wrapper arguments. It should not affect configuration unless you set `wrapRc` to false. - - We now use the upstream wrapper script for Gradle, supporting both the `JAVA_HOME` and `GRADLE_OPTS` environment variables. ## Nixpkgs Library {#sec-nixpkgs-release-26.05-lib} diff --git a/pkgs/applications/editors/neovim/wrapper.nix b/pkgs/applications/editors/neovim/wrapper.nix index 6c97a6f22377..e8f04ad30fc3 100644 --- a/pkgs/applications/editors/neovim/wrapper.nix +++ b/pkgs/applications/editors/neovim/wrapper.nix @@ -104,16 +104,13 @@ let packpathDirs.myNeovimPackages = vimPackageInfo.vimPackage; finalPackdir = neovimUtils.packDir packpathDirs; - rcContent = lib.concatStringsSep "\n" ( - [ - providerLuaRc - ] - ++ lib.optional (luaRcContent != "") luaRcContent - ++ lib.optional (neovimRcContent' != "") '' - vim.cmd.source "${writeText "init.vim" neovimRcContent'}" - '' - ++ lib.optionals autoconfigure vimPackageInfo.pluginAdvisedLua - ); + rcContent = '' + ${luaRcContent} + '' + + lib.optionalString (neovimRcContent' != "") '' + vim.cmd.source "${writeText "init.vim" neovimRcContent'}" + '' + + lib.optionalString autoconfigure (lib.concatStringsSep "\n" vimPackageInfo.pluginAdvisedLua); python3Env = lib.warnIf (attrs ? python3Env) @@ -128,7 +125,12 @@ let wrapperArgsStr = if lib.isString wrapperArgs then wrapperArgs else lib.escapeShellArgs wrapperArgs; - generatedWrapperArgs = + generatedWrapperArgs = [ + # vim accepts a limited number of commands so we join all the provider ones + "--add-flags" + ''--cmd "lua ${providerLuaRc}"'' + ] + ++ lib.optionals ( finalAttrs.packpathDirs.myNeovimPackages.start != [ ] @@ -140,17 +142,17 @@ let "--add-flags" ''--cmd "set rtp^=${finalPackdir}"'' ] - ++ lib.optionals finalAttrs.withRuby [ - "--set" - "GEM_HOME" - "${rubyEnv}/${rubyEnv.ruby.gemPath}" - ] - ++ lib.optionals (finalAttrs.runtimeDeps != [ ]) [ - "--suffix" - "PATH" - ":" - (lib.makeBinPath finalAttrs.runtimeDeps) - ]; + ++ lib.optionals finalAttrs.withRuby [ + "--set" + "GEM_HOME" + "${rubyEnv}/${rubyEnv.ruby.gemPath}" + ] + ++ lib.optionals (finalAttrs.runtimeDeps != [ ]) [ + "--suffix" + "PATH" + ":" + (lib.makeBinPath finalAttrs.runtimeDeps) + ]; providerLuaRc = neovimUtils.generateProviderRc { inherit (finalAttrs) @@ -179,7 +181,7 @@ let ++ lib.optionals finalAttrs.wrapRc [ "--set-default" "VIMINIT" - "lua dofile('${writeText "init.lua" finalAttrs.luaRcContent}')" + "lua dofile('${writeText "init.lua" rcContent}')" ] ++ finalAttrs.generatedWrapperArgs;