From 53a719f45288918e4c56cf085a58defb4893ea17 Mon Sep 17 00:00:00 2001 From: Francesco Gazzetta Date: Fri, 17 Jul 2026 13:51:20 +0200 Subject: [PATCH 001/148] tclPackages.expect_5: init Just a copy of tclPackages.expect, in preparation of updating the unversioned one to 6.0. --- .../0004-enable-cross-compilation.patch | 295 ++++++++++++++++++ .../ex/expect_5/fix-build-time-run-tcl.patch | 11 + .../ex/expect_5/fix-darwin-bsd-clang16.patch | 36 +++ .../ex/expect_5/freebsd-unversioned.patch | 14 + .../by-name/ex/expect_5/package.nix | 86 +++++ 5 files changed, 442 insertions(+) create mode 100644 pkgs/development/tcl-modules/by-name/ex/expect_5/0004-enable-cross-compilation.patch create mode 100644 pkgs/development/tcl-modules/by-name/ex/expect_5/fix-build-time-run-tcl.patch create mode 100644 pkgs/development/tcl-modules/by-name/ex/expect_5/fix-darwin-bsd-clang16.patch create mode 100644 pkgs/development/tcl-modules/by-name/ex/expect_5/freebsd-unversioned.patch create mode 100644 pkgs/development/tcl-modules/by-name/ex/expect_5/package.nix diff --git a/pkgs/development/tcl-modules/by-name/ex/expect_5/0004-enable-cross-compilation.patch b/pkgs/development/tcl-modules/by-name/ex/expect_5/0004-enable-cross-compilation.patch new file mode 100644 index 000000000000..c09623d292b2 --- /dev/null +++ b/pkgs/development/tcl-modules/by-name/ex/expect_5/0004-enable-cross-compilation.patch @@ -0,0 +1,295 @@ +From: Andrew Ruder +Subject: [PATCH] enable cross compilation for expect + +This patch was created by running ./configure on a modern Linux machine +and inserting the results into the cross compilation section of +each AC_MSG_CHECKING that bombed out with an error. + +Signed-off-by: Andrew Ruder + +-- + +The original patch, and description above, is originally from +https://github.com/buildroot/buildroot/blob/master/package/expect/0001-enable-cross-compilation.patch + +This patch has been further modified to not hard-code Linux assumptions. + +--- + +Index: expect-5.45/configure.in +=================================================================== +--- expect-5.45.orig/configure.in 2013-11-14 07:59:58.732100595 -0600 ++++ expect-5.45/configure.in 2013-11-14 07:59:58.732100595 -0600 +@@ -6,10 +6,12 @@ + AC_INIT([expect],[5.45.4]) + + TEA_INIT([3.9]) + + AC_CONFIG_AUX_DIR(tclconfig) ++ ++AC_LANG([C]) + + #-------------------------------------------------------------------- + # Configure script for package 'Expect'. + # TEA compliant. + #-------------------------------------------------------------------- +@@ -465,26 +467,20 @@ + # Some systems only define WNOHANG if _POSIX_SOURCE is defined + # The following merely tests that sys/wait.h can be included + # and if so that WNOHANG is not defined. The only place I've + # seen this is ISC. + AC_MSG_CHECKING([if WNOHANG requires _POSIX_SOURCE]) +-AC_TRY_RUN([ ++AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ + #include +-int +-main() { + #ifndef WNOHANG +- return 0; +-#else +- return 1; ++# error "WNOHANG requires _POSIX_SOURCE to be defined" + #endif +-}], ++]])], + AC_MSG_RESULT(yes) + AC_DEFINE(WNOHANG_REQUIRES_POSIX_SOURCE) + , + AC_MSG_RESULT(no) +-, +- AC_MSG_ERROR([Expect can't be cross compiled]) + ) + + AC_MSG_CHECKING([if any value exists for WNOHANG]) + rm -rf wnohang + AC_TRY_RUN([ +@@ -504,11 +501,12 @@ + rm -f wnohang + , + AC_MSG_RESULT(no) + AC_DEFINE(WNOHANG_BACKUP_VALUE, 1) + , +- AC_MSG_ERROR([Expect can't be cross compiled]) ++ AC_MSG_RESULT(yes) ++ AC_DEFINE(WNOHANG_BACKUP_VALUE, 1) + ) + + # + # check how signals work + # +@@ -572,11 +570,11 @@ + }], + AC_MSG_RESULT(yes) + AC_DEFINE(REARM_SIG) + , + AC_MSG_RESULT(no) +-, AC_MSG_WARN([Expect can't be cross compiled]) ++, AC_MSG_RESULT(no) + ) + + # HPUX7 has trouble with the big cat so split it + # Owen Rees 29Mar93 + SEDDEFS="${SEDDEFS}CONFEOF +@@ -710,25 +708,19 @@ + AC_DEFINE(POSIX) + fi + + # first check for the pure bsd + AC_MSG_CHECKING([for struct sgttyb]) +-AC_TRY_RUN([ ++AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ + #include +-int +-main() +-{ +- struct sgttyb tmp; +- return 0; +-}], ++static struct sgttyb tmp; ++]])], + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_SGTTYB) + PTY_TYPE=sgttyb + , + AC_MSG_RESULT(no) +-, +- AC_MSG_ERROR([Expect can't be cross compiled]) + ) + + # mach systems have include files for unimplemented features + # so avoid doing following test on those systems + if test $mach -eq 0 ; then +@@ -735,116 +728,88 @@ + # next check for the older style ttys + # note that if we detect termio.h (only), we still set PTY_TYPE=termios + # since that just controls which of pty_XXXX.c file is use and + # pty_termios.c is set up to handle pty_termio. + AC_MSG_CHECKING([for struct termio]) +- AC_TRY_RUN([#include +- int +- main() +- { +- struct termio tmp; +- return 0; +- }], ++AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ ++#include ++static struct termio tmp; ++]])], + AC_DEFINE(HAVE_TERMIO) + PTY_TYPE=termios + AC_MSG_RESULT(yes) + , + AC_MSG_RESULT(no) +-, +- AC_MSG_ERROR([Expect can't be cross compiled]) + ) + + # now check for the new style ttys (not yet posix) + AC_MSG_CHECKING([for struct termios]) +- AC_TRY_RUN([ +- /* including termios.h on Solaris 5.6 fails unless inttypes.h included */ +-# ifdef HAVE_INTTYPES_H ++AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ ++/* including termios.h on Solaris 5.6 fails unless inttypes.h included */ ++#ifdef HAVE_INTTYPES_H + # include +-# endif +-# include +- int +- main() +- { +- struct termios tmp; +- return 0; +- }], ++#endif ++#include ++static struct termios tmp; ++]])], + AC_DEFINE(HAVE_TERMIOS) + PTY_TYPE=termios + AC_MSG_RESULT(yes) + , + AC_MSG_RESULT(no) +- , +- AC_MSG_ERROR([Expect can't be cross compiled]) + ) + fi + + AC_MSG_CHECKING([if TCGETS or TCGETA in termios.h]) +-AC_TRY_RUN([ ++AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ + /* including termios.h on Solaris 5.6 fails unless inttypes.h included */ + #ifdef HAVE_INTTYPES_H +-#include ++# include + #endif + #include +-int +-main() { +-#if defined(TCGETS) || defined(TCGETA) +- return 0; +-#else +- return 1; ++# ++#if !(defined(TCGETS) || defined(TCGETA)) ++# error "missing both of TCGETS and TCGETA" + #endif +-}], ++]])], + AC_DEFINE(HAVE_TCGETS_OR_TCGETA_IN_TERMIOS_H) + AC_MSG_RESULT(yes) + , + AC_MSG_RESULT(no) +-, +- AC_MSG_ERROR([Expect can't be cross compiled]) + ) + + AC_MSG_CHECKING([if TIOCGWINSZ in termios.h]) +-AC_TRY_RUN([ ++AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ + /* including termios.h on Solaris 5.6 fails unless inttypes.h included */ + #ifdef HAVE_INTTYPES_H +-#include ++# include + #endif + #include +-int +-main() { +-#ifdef TIOCGWINSZ +- return 0; +-#else +- return 1; ++ ++#ifndef TIOCGWINSZ ++# error "missing TIOCGWINSZ" + #endif +-}], ++]])], + AC_DEFINE(HAVE_TIOCGWINSZ_IN_TERMIOS_H) + AC_MSG_RESULT(yes) + , + AC_MSG_RESULT(no) +-, +- AC_MSG_ERROR([Expect can't be cross compiled]) + ) + + # finally check for Cray style ttys + AC_MSG_CHECKING([for Cray-style ptys]) + SETUID=":" +-AC_TRY_RUN([ +-int +-main(){ +-#ifdef CRAY +- return 0; +-#else +- return 1; ++AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ ++#ifndef CRAY ++# error "CRAY is not defined" + #endif +-} +-], ++]])], + PTY_TYPE=unicos + SETUID="chmod u+s" + AC_MSG_RESULT(yes) + , + AC_MSG_RESULT(no) +-, +- AC_MSG_ERROR([Expect can't be cross compiled]) + ) + + # + # Check for select and/or poll. If both exist, we prefer select. + # if neither exists, define SIMPLE_EVENT. +@@ -873,26 +842,24 @@ + + # + # check for timezones + # + AC_MSG_CHECKING([for SV-style timezone]) +-AC_TRY_RUN([ ++AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ + extern char *tzname[2]; + extern int daylight; + int + main() + { + int *x = &daylight; + char **y = tzname; + + return 0; +-}], ++}]])], + AC_DEFINE(HAVE_SV_TIMEZONE) + AC_MSG_RESULT(yes), + AC_MSG_RESULT(no) +-, +- AC_MSG_ERROR([Expect can't be cross compiled]) + ) + + + # Following comment stolen from Tcl's configure.in: + # Note: in the following variable, it's important to use the absolute + diff --git a/pkgs/development/tcl-modules/by-name/ex/expect_5/fix-build-time-run-tcl.patch b/pkgs/development/tcl-modules/by-name/ex/expect_5/fix-build-time-run-tcl.patch new file mode 100644 index 000000000000..8edc4bea39d6 --- /dev/null +++ b/pkgs/development/tcl-modules/by-name/ex/expect_5/fix-build-time-run-tcl.patch @@ -0,0 +1,11 @@ +--- a/Makefile.in 2022-09-07 21:46:37.090519258 +0200 ++++ b/Makefile.in 2022-09-07 21:46:21.462592279 +0200 +@@ -380,7 +380,7 @@ + cp $(DIST_ROOT)/$(PKG_DIR).tar.gz $(top_builddir) + + $(SCRIPTS): +- $(TCLSH) $(srcdir)/fixline1 $(SHORT_BINDIR) < $(srcdir)/example/$@ > $@ ++ @tcl@ $(srcdir)/fixline1 $(SHORT_BINDIR) < $(srcdir)/example/$@ > $@ + + ## We cannot use TCL_LIBS below (after TCL_LIB_SPEC) because its + ## expansion references the contents of LIBS, which contains linker diff --git a/pkgs/development/tcl-modules/by-name/ex/expect_5/fix-darwin-bsd-clang16.patch b/pkgs/development/tcl-modules/by-name/ex/expect_5/fix-darwin-bsd-clang16.patch new file mode 100644 index 000000000000..a0e11a5f9d6b --- /dev/null +++ b/pkgs/development/tcl-modules/by-name/ex/expect_5/fix-darwin-bsd-clang16.patch @@ -0,0 +1,36 @@ +diff -ur a/exp_win.c b/exp_win.c +--- a/exp_win.c 2018-02-02 14:15:52.000000000 -0500 ++++ b/exp_win.c 2023-10-10 07:47:33.082690432 -0400 +@@ -39,7 +39,8 @@ + /* Sigh. On AIX 2.3, termios.h exists but does not define TIOCGWINSZ */ + /* Instead, it has to come from ioctl.h. However, As I said above, this */ + /* can't be cavalierly included on all machines, even when it exists. */ +-#if defined(HAVE_TERMIOS) && !defined(HAVE_TIOCGWINSZ_IN_TERMIOS_H) ++/* Darwin also has termios.h, but it requires ioctl.h for `ioctl`. */ ++#if defined(HAVE_TERMIOS) && (defined(__APPLE__) || !defined(HAVE_TIOCGWINSZ_IN_TERMIOS_H)) + # include + #endif + +diff -ur d/pty_termios.c c/pty_termios.c +--- d/pty_termios.c 2023-10-10 07:59:23.244452442 -0400 ++++ c/pty_termios.c 2023-10-10 08:00:35.303231582 -0400 +@@ -7,7 +7,18 @@ + + */ + +-#include /* openpty */ ++/* openpty */ ++#if defined(__APPLE__) ++# include ++#elif defined(__FreeBSD__) ++# include ++# include ++# include ++# include ++#else /* pty.h is Linux-specific */ ++# include ++#endif ++ + #include + #include + diff --git a/pkgs/development/tcl-modules/by-name/ex/expect_5/freebsd-unversioned.patch b/pkgs/development/tcl-modules/by-name/ex/expect_5/freebsd-unversioned.patch new file mode 100644 index 000000000000..345fa4f6277f --- /dev/null +++ b/pkgs/development/tcl-modules/by-name/ex/expect_5/freebsd-unversioned.patch @@ -0,0 +1,14 @@ +--- expect5.45.4/tclconfig/tcl.m4.orig 2024-05-29 11:24:56.150656190 -0700 ++++ expect5.45.4/tclconfig/tcl.m4 2024-05-29 11:25:22.850790934 -0700 +@@ -1643,11 +1643,6 @@ + LIBS=`echo $LIBS | sed s/-pthread//` + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + LDFLAGS="$LDFLAGS $PTHREAD_LIBS"]) +- # Version numbers are dot-stripped by system policy. +- TCL_TRIM_DOTS=`echo ${VERSION} | tr -d .` +- UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a' +- SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.1' +- TCL_LIB_VERSIONS_OK=nodots + ;; + Darwin-*) + CFLAGS_OPTIMIZE="-Os" diff --git a/pkgs/development/tcl-modules/by-name/ex/expect_5/package.nix b/pkgs/development/tcl-modules/by-name/ex/expect_5/package.nix new file mode 100644 index 000000000000..8e4b2b0caa54 --- /dev/null +++ b/pkgs/development/tcl-modules/by-name/ex/expect_5/package.nix @@ -0,0 +1,86 @@ +{ + lib, + stdenv, + buildPackages, + fetchurl, + tcl, + makeWrapper, + autoreconfHook, + fetchpatch, + replaceVars, +}: + +tcl.mkTclDerivation rec { + pname = "expect"; + version = "5.45.4"; + + src = fetchurl { + url = "mirror://sourceforge/expect/Expect/${version}/expect${version}.tar.gz"; + hash = "sha256-Safag7C92fRtBKBN7sGcd2e7mjI+QMR4H4nK92C5LDQ="; + }; + + patches = [ + (replaceVars ./fix-build-time-run-tcl.patch { + tcl = "${buildPackages.tcl}/bin/tclsh"; + }) + # The following patches fix compilation with clang 15+ + (fetchpatch { + url = "https://sourceforge.net/p/expect/patches/24/attachment/0001-Add-prototype-to-function-definitions.patch"; + hash = "sha256-X2Vv6VVM3KjmBHo2ukVWe5YTVXRmqe//Kw2kr73OpZs="; + }) + (fetchpatch { + url = "https://sourceforge.net/p/expect/patches/_discuss/thread/b813ca9895/6759/attachment/expect-configure-c99.patch"; + hash = "sha256-PxQQ9roWgVXUoCMxkXEgu+it26ES/JuzHF6oML/nk54="; + }) + ./0004-enable-cross-compilation.patch + # Include `sys/ioctl.h` and `util.h` on Darwin, which are required for `ioctl` and `openpty`. + # Include `termios.h` on FreeBSD for `openpty` + ./fix-darwin-bsd-clang16.patch + # Remove some code which causes it to link against a file that does not exist at build time on native FreeBSD + ./freebsd-unversioned.patch + ]; + + postPatch = '' + sed -i "s,/bin/stty,$(type -p stty),g" configure.in + ''; + + nativeBuildInputs = [ + autoreconfHook + makeWrapper + ]; + + strictDeps = true; + + env = { + NIX_CFLAGS_COMPILE = toString ( + # Needed to avoid errors when building with GCC 15. + lib.optionals stdenv.cc.isGNU [ "-Wno-error=incompatible-pointer-types" ] + # Autoconf 2.73 defaults to C23, but Expect uses K&R style function declarations. + ++ [ "-std=gnu17" ] + ); + }; + + hardeningDisable = [ "format" ]; + + postInstall = '' + tclWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ tcl ]}) + ${lib.optionalString stdenv.hostPlatform.isDarwin "tclWrapperArgs+=(--prefix DYLD_LIBRARY_PATH : $out/lib/expect${version})"} + ''; + + tclRequiresCheck = [ "Expect" ]; + + outputs = [ + "out" + "dev" + ]; + + meta = { + description = "Tool for automating interactive applications"; + homepage = "https://expect.sourceforge.net/"; + license = lib.licenses.publicDomain; + platforms = lib.platforms.unix; + mainProgram = "expect"; + maintainers = with lib.maintainers; [ SuperSandro2000 ]; + broken = tcl.isTcl9; + }; +} From a7a065714456bf8c74172020b6985fce412b566b Mon Sep 17 00:00:00 2001 From: Francesco Gazzetta Date: Fri, 17 Jul 2026 13:53:03 +0200 Subject: [PATCH 002/148] expect: switch to tcl8Packages.expect_5 tclPackages.expect will be bumped to 6.0a1, because expect 5.x is not compatible with Tcl 9, which we want to make the default because Tcl 8 is EoL. However, we don't want to switch the top-level expect package (which is very deep in the dependency tree) to an alpha, so while we wait for a regular 6.0 release we will keep it on 5.x. --- pkgs/top-level/all-packages.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 06ef7f62abba..51b2fe403f6f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2003,7 +2003,7 @@ with pkgs; exiftool = perlPackages.ImageExifTool; - expect = tclPackages.expect; + expect = tcl8Packages.expect_5; Fabric = with python3Packages; toPythonApplication fabric; From 9c63d6c2a2655a63db9c88fdbedcce9b96a7d79d Mon Sep 17 00:00:00 2001 From: h7x4 Date: Thu, 9 Oct 2025 18:59:41 +0900 Subject: [PATCH 003/148] nixos/isolate: fix type for uid/gid options --- nixos/modules/security/isolate.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nixos/modules/security/isolate.nix b/nixos/modules/security/isolate.nix index 9f0060e305ac..88dde22b31cf 100644 --- a/nixos/modules/security/isolate.nix +++ b/nixos/modules/security/isolate.nix @@ -79,7 +79,7 @@ in }; firstUid = mkOption { - type = types.numbers.between 1000 65533; + type = types.ints.between 1000 65533; default = 60000; description = '' Start of block of UIDs reserved for sandboxes. @@ -87,7 +87,7 @@ in }; firstGid = mkOption { - type = types.numbers.between 1000 65533; + type = types.ints.between 1000 65533; default = 60000; description = '' Start of block of GIDs reserved for sandboxes. @@ -95,7 +95,7 @@ in }; numBoxes = mkOption { - type = types.numbers.between 1000 65533; + type = types.ints.between 1000 65533; default = 1000; description = '' Number of UIDs and GIDs to reserve, starting from From c3fc4284dbb926a2d61546f8a88e0db5adcae8a1 Mon Sep 17 00:00:00 2001 From: coolcuber Date: Tue, 28 Jul 2026 16:41:31 -0400 Subject: [PATCH 004/148] carps-cups: fix version, homepage, license --- pkgs/by-name/ca/carps-cups/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ca/carps-cups/package.nix b/pkgs/by-name/ca/carps-cups/package.nix index efed07a5e156..6b27271c275e 100644 --- a/pkgs/by-name/ca/carps-cups/package.nix +++ b/pkgs/by-name/ca/carps-cups/package.nix @@ -7,7 +7,7 @@ stdenv.mkDerivation { pname = "carps-cups"; - version = "unstable-2018-03-05"; + version = "0-unstable-2018-03-05"; src = fetchFromGitHub { owner = "ondrej-zary"; @@ -35,8 +35,8 @@ stdenv.mkDerivation { meta = { description = "CUPS Linux drivers for Canon printers"; - homepage = "https://www.canon.com/"; - license = lib.licenses.gpl3Plus; + homepage = "https://github.com/ondrej-zary/carps-cups"; + license = lib.licenses.gpl3Only; broken = stdenv.hostPlatform.isDarwin; maintainers = with lib.maintainers; [ ewok From a347f31a77fc083134dfdcf053ec094cbdde13ec Mon Sep 17 00:00:00 2001 From: coolcuber Date: Tue, 28 Jul 2026 20:47:29 -0400 Subject: [PATCH 005/148] {cutter,rizin}Plugins.sigdb: fix version --- pkgs/by-name/ri/rizin/sigdb.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/ri/rizin/sigdb.nix b/pkgs/by-name/ri/rizin/sigdb.nix index 5bbe6685ca8b..197577bf4d6b 100644 --- a/pkgs/by-name/ri/rizin/sigdb.nix +++ b/pkgs/by-name/ri/rizin/sigdb.nix @@ -6,7 +6,7 @@ stdenvNoCC.mkDerivation rec { pname = "rizin-sigdb"; - version = "unstable-2023-08-23"; + version = "0-unstable-2023-08-23"; src = fetchFromGitHub { owner = "rizinorg"; From 18c39cfc2df9c0bb0ba6b0451c578f0351cb5c9c Mon Sep 17 00:00:00 2001 From: h7x4 Date: Mon, 2 Feb 2026 10:45:37 +0900 Subject: [PATCH 006/148] apacheHttpd: use pkg-config to discover libraries --- pkgs/servers/http/apache-httpd/2.4.nix | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/pkgs/servers/http/apache-httpd/2.4.nix b/pkgs/servers/http/apache-httpd/2.4.nix index e762b8501afc..5228b019dbc3 100644 --- a/pkgs/servers/http/apache-httpd/2.4.nix +++ b/pkgs/servers/http/apache-httpd/2.4.nix @@ -3,6 +3,8 @@ stdenv, fetchurl, fetchpatch2, + autoreconfHook, + pkg-config, perl, zlib, apr, @@ -63,6 +65,8 @@ stdenv.mkDerivation rec { depsBuildBuild = [ buildPackages.stdenv.cc ]; nativeBuildInputs = [ + autoreconfHook + pkg-config perl which ]; @@ -76,13 +80,16 @@ stdenv.mkDerivation rec { ++ lib.optional sslSupport openssl ++ lib.optional ldapSupport openldap # there is no --with-ldap flag + ++ lib.optional luaSupport lua5 ++ lib.optional libxml2Support libxml2 ++ lib.optional http2Support nghttp2 ++ lib.optional stdenv.hostPlatform.isDarwin libiconv; postPatch = '' sed -i config.layout -e "s|installbuilddir:.*|installbuilddir: $dev/share/build|" - sed -i configure -e 's|perlbin=.*|perlbin="/usr/bin/env perl"|' + sed -i configure.in \ + -e 's|AC_PATH_PROG|AC_PATH_TOOL|' \ + -e 's|perlbin=.*|perlbin="/usr/bin/env perl"|' ${lib.optionalString withLynx "sed -i support/apachectl.in -e 's|@LYNX_PATH@|${lynx}/bin/lynx|'"} ''; @@ -104,19 +111,13 @@ stdenv.mkDerivation rec { "--enable-imagemap" "--enable-cgi" "--includedir=${placeholder "dev"}/include" + "--docdir=$(doc)/share/doc" (lib.enableFeature proxySupport "proxy") (lib.enableFeature sslSupport "ssl") (lib.withFeatureAs libxml2Support "libxml2" "${libxml2.dev}/include/libxml2") - "--docdir=$(doc)/share/doc" - (lib.enableFeature brotliSupport "brotli") - (lib.withFeatureAs brotliSupport "brotli" brotli) - (lib.enableFeature http2Support "http2") - (lib.withFeature http2Support "nghttp2") - (lib.enableFeature luaSupport "lua") - (lib.withFeatureAs luaSupport "lua" lua5) ] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ # skip bad config check when cross compiling From e5ca8bf60a4836ebf9cd9fa3be028d25df4c9e8a Mon Sep 17 00:00:00 2001 From: h7x4 Date: Mon, 2 Feb 2026 10:53:17 +0900 Subject: [PATCH 007/148] apacheHttpd: add support for sd_notify --- pkgs/servers/http/apache-httpd/2.4.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkgs/servers/http/apache-httpd/2.4.nix b/pkgs/servers/http/apache-httpd/2.4.nix index 5228b019dbc3..43f3cd60b7e7 100644 --- a/pkgs/servers/http/apache-httpd/2.4.nix +++ b/pkgs/servers/http/apache-httpd/2.4.nix @@ -32,6 +32,8 @@ brotli, luaSupport ? false, lua5, + systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemdLibs, + systemdLibs, }: stdenv.mkDerivation rec { @@ -83,7 +85,8 @@ stdenv.mkDerivation rec { ++ lib.optional luaSupport lua5 ++ lib.optional libxml2Support libxml2 ++ lib.optional http2Support nghttp2 - ++ lib.optional stdenv.hostPlatform.isDarwin libiconv; + ++ lib.optional stdenv.hostPlatform.isDarwin libiconv + ++ lib.optional systemdSupport systemdLibs; postPatch = '' sed -i config.layout -e "s|installbuilddir:.*|installbuilddir: $dev/share/build|" @@ -117,6 +120,7 @@ stdenv.mkDerivation rec { (lib.withFeatureAs libxml2Support "libxml2" "${libxml2.dev}/include/libxml2") (lib.enableFeature brotliSupport "brotli") (lib.enableFeature http2Support "http2") + (lib.enableFeature systemdSupport "systemd") (lib.enableFeature luaSupport "lua") ] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ From 29190543f6ff77e08e2a7dc3a57fed68380008b8 Mon Sep 17 00:00:00 2001 From: h7x4 Date: Mon, 2 Feb 2026 10:54:13 +0900 Subject: [PATCH 008/148] nixos/httpd: use `Type=notify` --- .../modules/services/web-servers/apache-httpd/default.nix | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/nixos/modules/services/web-servers/apache-httpd/default.nix b/nixos/modules/services/web-servers/apache-httpd/default.nix index a2474fcfa6f2..f102db4b3c0d 100644 --- a/nixos/modules/services/web-servers/apache-httpd/default.nix +++ b/nixos/modules/services/web-servers/apache-httpd/default.nix @@ -90,6 +90,7 @@ let "unixd" "slotmem_shm" "socache_shmcb" + "systemd" "mpm_${cfg.mpm}" ] ++ (if cfg.mpm == "prefork" then [ "cgi" ] else [ "cgid" ]) @@ -992,12 +993,12 @@ in ''; serviceConfig = { - ExecStart = "@${pkg}/bin/httpd httpd -f /etc/httpd/httpd.conf"; - ExecStop = "${pkg}/bin/httpd -f /etc/httpd/httpd.conf -k graceful-stop"; + ExecStart = "${pkg}/bin/httpd -D FOREGROUND -f /etc/httpd/httpd.conf"; ExecReload = "${pkg}/bin/httpd -f /etc/httpd/httpd.conf -k graceful"; + KillMode = "mixed"; User = cfg.user; Group = cfg.group; - Type = "forking"; + Type = "notify"; PIDFile = "${runtimeDir}/httpd.pid"; Restart = "always"; RestartSec = "5s"; From c671f61b8bd31ab693096f03648103e575814ff7 Mon Sep 17 00:00:00 2001 From: coolcuber Date: Tue, 28 Jul 2026 21:55:34 -0400 Subject: [PATCH 009/148] deadbeefPlugins.playlist-manager: fix version, use hash --- pkgs/applications/audio/deadbeef/plugins/playlist-manager.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/audio/deadbeef/plugins/playlist-manager.nix b/pkgs/applications/audio/deadbeef/plugins/playlist-manager.nix index 23e5d09955e6..6e75d3ee5475 100644 --- a/pkgs/applications/audio/deadbeef/plugins/playlist-manager.nix +++ b/pkgs/applications/audio/deadbeef/plugins/playlist-manager.nix @@ -9,13 +9,13 @@ stdenv.mkDerivation { pname = "deadbeef-playlist-manager-plugin"; - version = "unstable-2021-05-02"; + version = "1-unstable-2021-05-02"; src = fetchFromGitHub { owner = "kpcee"; repo = "deadbeef-playlist-manager"; rev = "b1393022b2d9ea0a19b845420146e0fc56cd9c0a"; - sha256 = "sha256-dsKthlQ0EuX4VhO8K9VTyX3zN8ytzDUbSi/xSMB4xRw="; + hash = "sha256-dsKthlQ0EuX4VhO8K9VTyX3zN8ytzDUbSi/xSMB4xRw="; }; nativeBuildInputs = [ From f77e2d97a4b7b3ac49bef1a9db7922080c9effa2 Mon Sep 17 00:00:00 2001 From: h7x4 Date: Fri, 17 Oct 2025 16:45:03 +0900 Subject: [PATCH 010/148] nixos/tests/nullmailer: init --- nixos/tests/all-tests.nix | 1 + nixos/tests/nullmailer.nix | 85 ++++++++++++++++++++++++++ pkgs/by-name/nu/nullmailer/package.nix | 3 + 3 files changed, 89 insertions(+) create mode 100644 nixos/tests/nullmailer.nix diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 9eac63329dff..5283aef81b74 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -1228,6 +1228,7 @@ in ntfy-sh-migration = handleTest ./ntfy-sh-migration.nix { }; ntpd = runTest ./ntpd.nix; ntpd-rs = runTest ./ntpd-rs.nix; + nullmailer = runTest ./nullmailer.nix; nushell = runTest ./nushell.nix; nvidia-container-toolkit = runTest ./nvidia-container-toolkit.nix; nvme-rs = runTest ./nvme-rs.nix; diff --git a/nixos/tests/nullmailer.nix b/nixos/tests/nullmailer.nix new file mode 100644 index 000000000000..19e941226429 --- /dev/null +++ b/nixos/tests/nullmailer.nix @@ -0,0 +1,85 @@ +{ lib, ... }: +{ + name = "nullmailer"; + + meta = { + maintainers = with lib.maintainers; [ h7x4 ]; + }; + + nodes = { + mail = + { config, ... }: + { + imports = [ ./common/user-account.nix ]; + + virtualisation.vlans = [ 1 ]; + + networking = { + useNetworkd = true; + useDHCP = false; + firewall.allowedTCPPorts = [ 25 ]; + domain = "example.com"; + hosts."10.0.0.2" = [ "machine.example.com" ]; + }; + + systemd.network.networks."01-eth1" = { + name = "eth1"; + networkConfig.Address = "10.0.0.1/24"; + }; + + services.postfix = { + enable = true; + + localRecipients = [ "alice" ]; + + settings = { + main = { + myhostname = config.networking.hostName; + mydomain = config.networking.domain; + mynetworks = [ "0.0.0.0/0" ]; + mydestination = [ "$mydomain" ]; + + smtpd_recipient_restrictions = "permit_mynetworks, reject"; + }; + }; + }; + }; + + machine = + { config, ... }: + { + virtualisation.vlans = [ 1 ]; + + networking = { + useNetworkd = true; + useDHCP = false; + domain = "example.com"; + hosts."10.0.0.1" = [ "mail.example.com" ]; + }; + + systemd.network.networks."01-eth1" = { + name = "eth1"; + networkConfig.Address = "10.0.0.2/24"; + }; + + services.nullmailer = { + enable = true; + config = { + me = "${config.networking.fqdn}"; + remotes = "mail.example.com smtp --port=25"; + }; + }; + }; + }; + + testScript = '' + start_all() + + machine.wait_for_open_port(25, "mail.example.com") + machine.wait_for_unit("nullmailer.service") + machine.succeed('printf "To: alice@example.com\r\n\r\nthis is the body of the email" | sendmail -t -i -f sender@example.com') + + mail.wait_for_console_text("delivered to maildir") + print(mail.succeed("grep 'this is the body of the email' /var/spool/mail/alice/new/*")) + ''; +} diff --git a/pkgs/by-name/nu/nullmailer/package.nix b/pkgs/by-name/nu/nullmailer/package.nix index 08a6333df655..563366d72112 100644 --- a/pkgs/by-name/nu/nullmailer/package.nix +++ b/pkgs/by-name/nu/nullmailer/package.nix @@ -4,6 +4,7 @@ lib, tls ? true, gnutls, + nixosTests, }: gccStdenv.mkDerivation (finalAttrs: { @@ -42,6 +43,8 @@ gccStdenv.mkDerivation (finalAttrs: { enableParallelBuilding = true; + passthru.tests.nixos = nixosTests.nullmailer; + meta = { homepage = "http://untroubled.org/nullmailer/"; description = '' From 584b918ef6f772596bffc7be40f66be6e2d99b9a Mon Sep 17 00:00:00 2001 From: Korrat Date: Sat, 1 Aug 2026 22:12:17 +0200 Subject: [PATCH 011/148] paperless: Make admin password fully optional --- nixos/modules/services/misc/paperless.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/services/misc/paperless.nix b/nixos/modules/services/misc/paperless.nix index 7d4182799c15..37acac016c7a 100644 --- a/nixos/modules/services/misc/paperless.nix +++ b/nixos/modules/services/misc/paperless.nix @@ -574,7 +574,7 @@ in # and automatically migrates when needed (e.g. with v2 -> v3 swapping from Whoosh to Tantivy) ${lib.getExe cfg.package} document_index reindex --if-needed --no-progress-bar - if ${lib.boolToString (cfg.passwordFile != null)} || [[ -n $PAPERLESS_ADMIN_PASSWORD ]]; then + if ${lib.boolToString (cfg.passwordFile != null)} || [[ -n ''${PAPERLESS_ADMIN_PASSWORD-} ]]; then export PAPERLESS_ADMIN_USER="''${PAPERLESS_ADMIN_USER:-admin}" if [[ -e $CREDENTIALS_DIRECTORY/PAPERLESS_ADMIN_PASSWORD ]]; then PAPERLESS_ADMIN_PASSWORD=$(cat "$CREDENTIALS_DIRECTORY/PAPERLESS_ADMIN_PASSWORD") From b2463760f5e253cf28f19f59c530317bbbf8a4b9 Mon Sep 17 00:00:00 2001 From: Felix Singer Date: Mon, 3 Aug 2026 06:46:21 +0200 Subject: [PATCH 012/148] nixos/uptime-kuma: Harden /proc visibility by setting ProcSubset to pid https://www.freedesktop.org/software/systemd/man/latest/systemd.exec.html#ProcSubset= Signed-off-by: Felix Singer --- nixos/modules/services/monitoring/uptime-kuma.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nixos/modules/services/monitoring/uptime-kuma.nix b/nixos/modules/services/monitoring/uptime-kuma.nix index 5c2100607c73..e1b4bcf15c10 100644 --- a/nixos/modules/services/monitoring/uptime-kuma.nix +++ b/nixos/modules/services/monitoring/uptime-kuma.nix @@ -73,6 +73,7 @@ in PrivateMounts = true; PrivateTmp = true; PrivateUsers = true; + ProcSubset = "pid"; ProtectClock = true; ProtectControlGroups = "strict"; ProtectHome = true; From 18bcb2238b53ac9bdad0f8821f6d288254e0dcb0 Mon Sep 17 00:00:00 2001 From: h7x4 Date: Tue, 4 Aug 2026 20:24:50 +0900 Subject: [PATCH 013/148] formats: use AST-based approach for codegen --- pkgs/pkgs-lib/formats.nix | 44 +++++++++++++++++++-------------- pkgs/pkgs-lib/tests/formats.nix | 15 +++-------- 2 files changed, 29 insertions(+), 30 deletions(-) diff --git a/pkgs/pkgs-lib/formats.nix b/pkgs/pkgs-lib/formats.nix index e5f941af3770..155715d7657b 100644 --- a/pkgs/pkgs-lib/formats.nix +++ b/pkgs/pkgs-lib/formats.nix @@ -967,36 +967,44 @@ optionalAttrs allowAliases aliases # otherwise removeAttrs will fail. value = removeAttrs value [ "_imports" ]; pythonGen = pkgs.writeText "pythonGen" '' + import ast import json import os - def recursive_repr(value: any) -> str: + def gen_ast_node(value: any) -> ast.expr: if type(value) is list: - return '\n'.join([ - "[", - *[recursive_repr(x) + "," for x in value], - "]", - ]) - elif type(value) is dict and value.get("_type") == "raw": - return value.get("value") + return ast.List(elts=[gen_ast_node(x) for x in value]) elif type(value) is dict: - return '\n'.join([ - "{", - *[f"'{k.replace('\''', '\\\''')}': {recursive_repr(v)}," for k, v in value.items()], - "}", - ]) + if value.get("_type") == "raw": + return ast.parse(value["value"], mode="eval").body + else: + return ast.Dict( + keys=[ast.Constant(k) for k in value], + values=[gen_ast_node(v) for v in value.values()], + ) else: - return repr(value) + return ast.Constant(value) + + + tree = ast.Module(body=[], type_ignores=[]) with open(os.environ["NIX_ATTRS_JSON_FILE"], "r") as f: attrs = json.load(f) + if attrs["imports"] is not None: for i in attrs["imports"]: - print(f"import {i}") - print() + tree.body.append(ast.parse(f"import {i}").body[0]) + + for key, val in attrs["value"].items(): + tree.body.append(ast.Assign( + targets=[ast.Name(id=key, ctx=ast.Store())], + value=gen_ast_node(val), + )) + + ast.fix_missing_locations(tree) + + print(ast.unparse(tree)) - for key, value in attrs["value"].items(): - print(f"{key} = {recursive_repr(value)}") ''; preferLocalBuild = true; __structuredAttrs = true; diff --git a/pkgs/pkgs-lib/tests/formats.nix b/pkgs/pkgs-lib/tests/formats.nix index b03b44c99150..707112a56306 100644 --- a/pkgs/pkgs-lib/tests/formats.nix +++ b/pkgs/pkgs-lib/tests/formats.nix @@ -1145,21 +1145,12 @@ runBuildTests { import re import a.b.c - attrs = { - "conditional": 1 if True else 2, - "foo": None, - } + attrs = {"conditional": 1 if True else 2, "foo": None} bool = True float = 3.141 - func = re.findall(r"\bf[a-z]*", "which foot or hand fell fastest") + func = re.findall("\\bf[a-z]*", "which foot or hand fell fastest") int = 10 - list = [ - None, - 1, - "str", - True, - 1 if True else 2, - ] + list = [None, 1, "str", True, 1 if True else 2] null = None str = "foo" str_special = "foo\ntesthello''''" From bcfcbbee9599b1211382dd8f68825b3d5d47c614 Mon Sep 17 00:00:00 2001 From: h7x4 Date: Tue, 4 Aug 2026 21:34:57 +0900 Subject: [PATCH 014/148] nixos/doc: add note about comment stripping for `formats.pythonVars` --- nixos/doc/manual/development/settings-options.section.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/doc/manual/development/settings-options.section.md b/nixos/doc/manual/development/settings-options.section.md index e5532f00f371..3b03a087e834 100644 --- a/nixos/doc/manual/development/settings-options.section.md +++ b/nixos/doc/manual/development/settings-options.section.md @@ -395,7 +395,7 @@ have a predefined type and string generator already declared under `mkRaw pythonCode` - : Outputs the given string as raw Python code + : Outputs the given string as raw Python code. Note that the final result will be stripped of any comments. `_imports` From d6d3b7a6dc7ec348b86262b936745c30dea00f7c Mon Sep 17 00:00:00 2001 From: ahi6 <60984726+ahi6@users.noreply.github.com> Date: Tue, 4 Aug 2026 17:00:45 +0200 Subject: [PATCH 015/148] handheld-daemon-ui: update license --- pkgs/by-name/ha/handheld-daemon-ui/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/ha/handheld-daemon-ui/package.nix b/pkgs/by-name/ha/handheld-daemon-ui/package.nix index b857c4f8d5b3..683d0d23655c 100644 --- a/pkgs/by-name/ha/handheld-daemon-ui/package.nix +++ b/pkgs/by-name/ha/handheld-daemon-ui/package.nix @@ -33,7 +33,7 @@ appimageTools.wrapType2 { meta = { description = "UI for the Handheld Daemon"; homepage = "https://github.com/hhd-dev/hhd-ui"; - license = lib.licenses.gpl3Only; + license = lib.licenses.lgpl21Plus; maintainers = with lib.maintainers; [ toast ]; mainProgram = "hhd-ui"; platforms = [ "x86_64-linux" ]; From 9e1b043d6c25530142073688ceeedfcbeca47903 Mon Sep 17 00:00:00 2001 From: kraftnix Date: Wed, 5 Aug 2026 03:27:34 +0200 Subject: [PATCH 016/148] keepmenu: 1.4.2 -> 1.5.1 --- pkgs/by-name/ke/keepmenu/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ke/keepmenu/package.nix b/pkgs/by-name/ke/keepmenu/package.nix index 76645611964f..9468e009466e 100644 --- a/pkgs/by-name/ke/keepmenu/package.nix +++ b/pkgs/by-name/ke/keepmenu/package.nix @@ -10,14 +10,14 @@ python3Packages.buildPythonApplication (finalAttrs: { pname = "keepmenu"; - version = "1.4.2"; + version = "1.5.1"; pyproject = true; src = fetchFromGitHub { owner = "firecat53"; repo = "keepmenu"; rev = finalAttrs.version; - hash = "sha256-Kzt2RqyYvOWnbkflwTHzlnpUaruVQvdGys57DDpH9o8="; + hash = "sha256-MUtwQ9V5PcczR2mISMs8EcFGkDAPmuYSvNW+COC4Bhw="; }; nativeBuildInputs = with python3Packages; [ From b5f84b599def24fc1ddae7898acdae8d02930293 Mon Sep 17 00:00:00 2001 From: 7c6f434c <7c6f434c@mail.ru> Date: Wed, 5 Aug 2026 04:50:41 +0200 Subject: [PATCH 017/148] lazarus: 4.4 -> 4.8; gtk2 -> gtk3 Qt version seems to work well GTK3 version has bugs but can compile working executables at least doublecmd and lazpaint and cudatext seem to be working, from the first glance --- pkgs/development/compilers/fpc/lazarus.nix | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/pkgs/development/compilers/fpc/lazarus.nix b/pkgs/development/compilers/fpc/lazarus.nix index 96e8b93a0951..b93013b15e1c 100644 --- a/pkgs/development/compilers/fpc/lazarus.nix +++ b/pkgs/development/compilers/fpc/lazarus.nix @@ -5,11 +5,12 @@ makeWrapper, writeText, fpc, - gtk2, + gtk3, glib, pango, atk, gdk-pixbuf, + harfbuzz, libxi, xorgproto, libx11, @@ -27,7 +28,7 @@ # 1. the build date is embedded in the binary through `$I %DATE%` - we should dump that let - version = "4.4-0"; + version = "4.8-0"; # as of 2.0.10 a suffix is being added. That may or may not disappear and then # come back, so just leave this here. @@ -43,7 +44,7 @@ let ) ); - LCL_PLATFORM = if withQt then "qt${qtVersion}" else "gtk2"; + LCL_PLATFORM = if withQt then "qt${qtVersion}" else "gtk3"; qtVersion = lib.versions.major qtbase.version; in @@ -53,7 +54,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "mirror://sourceforge/lazarus/Lazarus%20Zip%20_%20GZip/Lazarus%20${majorMinorPatch version}/lazarus-${version}.tar.gz"; - hash = "sha256-GQ7ce3p7GEMFAslkpF399UGP8Wu8rVwEQjszoJ0izAY="; + hash = "sha256-a0yeyU/nn+TlgCfde/ENm2w1ycsvkdtZMLdYC0ogGpk="; }; postPatch = '' @@ -61,9 +62,9 @@ stdenv.mkDerivation rec { ''; buildInputs = [ - # we need gtk2 unconditionally as that is the default target when building applications with lazarus + # we need gtk unconditionally as that is the default target when building applications with lazarus fpc - gtk2 + gtk3 glib libxi xorgproto @@ -73,6 +74,7 @@ stdenv.mkDerivation rec { atk stdenv.cc gdk-pixbuf + harfbuzz ] ++ lib.optionals withQt [ libqtpas @@ -109,11 +111,13 @@ stdenv.mkDerivation rec { "-lc" "-lcairo" "-lgcc_s" - "-lgdk-x11-2.0" + "-lgdk-3" "-lgdk_pixbuf-2.0" "-lglib-2.0" - "-lgtk-x11-2.0" + "-lgtk-3" "-lpango-1.0" + "-lharfbuzz" + "-lharfbuzz-gobject" ] ++ lib.optionals withQt [ "-L${lib.getLib libqtpas}/lib" From 58f8040c78f96f4958282b08dd15bc22e8948d84 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 5 Aug 2026 10:13:37 +0000 Subject: [PATCH 018/148] yosys: 0.67 -> 0.68 --- pkgs/by-name/yo/yosys/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/yo/yosys/package.nix b/pkgs/by-name/yo/yosys/package.nix index ba16eb81928d..81fe33e81d20 100644 --- a/pkgs/by-name/yo/yosys/package.nix +++ b/pkgs/by-name/yo/yosys/package.nix @@ -79,13 +79,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "yosys"; - version = "0.67"; + version = "0.68"; src = fetchFromGitHub { owner = "YosysHQ"; repo = "yosys"; tag = "v${finalAttrs.version}"; - hash = "sha256-sJaekoBnLEn7j56duQOFMkT4fELHNgkYCbcY6E8hgyA="; + hash = "sha256-cf3L3Il717ReAcPTPNHZLwldDeCwuPqHYoxeQusBOOg="; fetchSubmodules = true; }; From a01b7bf9b170d1742ec15bb03a52f37035faab90 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 5 Aug 2026 11:28:57 +0000 Subject: [PATCH 019/148] python3Packages.plumbum: 2.0.1 -> 2.0.2 --- pkgs/development/python-modules/plumbum/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/plumbum/default.nix b/pkgs/development/python-modules/plumbum/default.nix index 4b08a851a397..137a7a66dd59 100644 --- a/pkgs/development/python-modules/plumbum/default.nix +++ b/pkgs/development/python-modules/plumbum/default.nix @@ -19,14 +19,14 @@ buildPythonPackage rec { pname = "plumbum"; - version = "2.0.1"; + version = "2.0.2"; pyproject = true; src = fetchFromGitHub { owner = "tomerfiliba"; repo = "plumbum"; tag = "v${version}"; - hash = "sha256-XwsEcAHvVhWQG5trznOvkfP8Al7kfMGSG2wR0sXY+eI="; + hash = "sha256-i99HpT/QuF9JwX92IwwOqpEVUc/1k39E7N9v9TZ4Qvg="; }; build-system = [ From 43d220641e5cc735010b2320f49f7e8f986d5f80 Mon Sep 17 00:00:00 2001 From: h7x4 Date: Thu, 6 Aug 2026 05:22:04 +0900 Subject: [PATCH 020/148] nixos/tests/rosenpass: fix deprecated python API usage --- nixos/tests/rosenpass.nix | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/nixos/tests/rosenpass.nix b/nixos/tests/rosenpass.nix index 10c25a070d5b..ab3207822ea2 100644 --- a/nixos/tests/rosenpass.nix +++ b/nixos/tests/rosenpass.nix @@ -118,7 +118,7 @@ in testScript = { ... }: '' - from os import system + import subprocess # Full path to rosenpass in the store, to avoid fiddling with `$PATH`. rosenpass = "${pkgs.rosenpass}/bin/rosenpass" @@ -137,7 +137,10 @@ in for (name, machine, remote) in [("server", server, client), ("client", client, server)]: pk, sk = f"{name}.pqpk", f"{name}.pqsk" - system(f"{rosenpass} gen-keys --force --secret-key {sk} --public-key {pk}") + subprocess.run( + [rosenpass, "gen-keys", "--force", "--secret-key", sk, "--public-key", pk], + check=True, + ) machine.copy_from_host(sk, f"{etc}/pqsk") machine.copy_from_host(pk, f"{etc}/pqpk") remote.copy_from_host(pk, f"{etc}/peers/{name}/pqpk") From 0c2b525ced3e2003a915d0f44e8ed8aac8fa7c6a Mon Sep 17 00:00:00 2001 From: h7x4 Date: Thu, 6 Aug 2026 05:26:32 +0900 Subject: [PATCH 021/148] nixos/tests/rosenpass: use systemd-networkd as networking backend --- nixos/tests/rosenpass.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nixos/tests/rosenpass.nix b/nixos/tests/rosenpass.nix index ab3207822ea2..f05b7ea17ef1 100644 --- a/nixos/tests/rosenpass.nix +++ b/nixos/tests/rosenpass.nix @@ -41,6 +41,7 @@ in }; }; + networking.useNetworkd = true; networking.firewall.allowedUDPPorts = [ 9999 ]; systemd.network = { @@ -72,6 +73,7 @@ in server = { imports = [ (shared server) ]; + networking.useNetworkd = true; networking.firewall.allowedUDPPorts = [ server.wg.listen ]; systemd.network.netdevs."10-${deviceName}" = { From cc20270f1b9950c1b54d79f62b804190624516b3 Mon Sep 17 00:00:00 2001 From: nasso Date: Fri, 7 Aug 2026 20:23:51 +0200 Subject: [PATCH 022/148] sfml_2: allow darwin platforms --- pkgs/by-name/sf/sfml_2/package.nix | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pkgs/by-name/sf/sfml_2/package.nix b/pkgs/by-name/sf/sfml_2/package.nix index d03771f27d6a..fa60a4821ac4 100644 --- a/pkgs/by-name/sf/sfml_2/package.nix +++ b/pkgs/by-name/sf/sfml_2/package.nix @@ -67,9 +67,5 @@ stdenv.mkDerivation (finalAttrs: { ''; license = lib.licenses.zlib; platforms = lib.platforms.unix; - badPlatforms = [ - # error: implicit instantiation of undefined template 'std::char_traits' - lib.systems.inspect.patterns.isDarwin - ]; }; }) From 3740bbf54349e82c11185b9c03c54851ce5f7765 Mon Sep 17 00:00:00 2001 From: nasso Date: Fri, 7 Aug 2026 20:23:51 +0200 Subject: [PATCH 023/148] csfml_2: allow darwin platforms --- pkgs/by-name/cs/csfml_2/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/cs/csfml_2/package.nix b/pkgs/by-name/cs/csfml_2/package.nix index 0011871c2bb7..f0f169dc97c0 100644 --- a/pkgs/by-name/cs/csfml_2/package.nix +++ b/pkgs/by-name/cs/csfml_2/package.nix @@ -42,6 +42,6 @@ stdenv.mkDerivation (finalAttrs: { ''; license = lib.licenses.zlib; maintainers = [ lib.maintainers.jpdoyle ]; - platforms = lib.platforms.linux; + platforms = lib.platforms.linux ++ lib.platforms.darwin; }; }) From e8f0867158f4b6bcf04b1861c52c364b47417ccf Mon Sep 17 00:00:00 2001 From: Francesco Gazzetta Date: Fri, 24 Apr 2026 18:10:14 +0200 Subject: [PATCH 024/148] tclPackages.expect: 5.45.4 -> 6.0a2 * Change src to maintained fork * Upstreamed some patches * Unbreaks build with Tcl 9 We are updating to an alpha because it's the only version that is compatible with Tcl 9, which we want to make the default because 8.6 is Eol. --- .../0004-enable-cross-compilation.patch | 295 ------------------ .../ex/expect/fix-build-time-run-tcl.patch | 24 +- .../ex/expect/fix-darwin-bsd-clang16.patch | 36 --- .../tcl-modules/by-name/ex/expect/package.nix | 53 ++-- 4 files changed, 32 insertions(+), 376 deletions(-) delete mode 100644 pkgs/development/tcl-modules/by-name/ex/expect/0004-enable-cross-compilation.patch delete mode 100644 pkgs/development/tcl-modules/by-name/ex/expect/fix-darwin-bsd-clang16.patch diff --git a/pkgs/development/tcl-modules/by-name/ex/expect/0004-enable-cross-compilation.patch b/pkgs/development/tcl-modules/by-name/ex/expect/0004-enable-cross-compilation.patch deleted file mode 100644 index c09623d292b2..000000000000 --- a/pkgs/development/tcl-modules/by-name/ex/expect/0004-enable-cross-compilation.patch +++ /dev/null @@ -1,295 +0,0 @@ -From: Andrew Ruder -Subject: [PATCH] enable cross compilation for expect - -This patch was created by running ./configure on a modern Linux machine -and inserting the results into the cross compilation section of -each AC_MSG_CHECKING that bombed out with an error. - -Signed-off-by: Andrew Ruder - --- - -The original patch, and description above, is originally from -https://github.com/buildroot/buildroot/blob/master/package/expect/0001-enable-cross-compilation.patch - -This patch has been further modified to not hard-code Linux assumptions. - ---- - -Index: expect-5.45/configure.in -=================================================================== ---- expect-5.45.orig/configure.in 2013-11-14 07:59:58.732100595 -0600 -+++ expect-5.45/configure.in 2013-11-14 07:59:58.732100595 -0600 -@@ -6,10 +6,12 @@ - AC_INIT([expect],[5.45.4]) - - TEA_INIT([3.9]) - - AC_CONFIG_AUX_DIR(tclconfig) -+ -+AC_LANG([C]) - - #-------------------------------------------------------------------- - # Configure script for package 'Expect'. - # TEA compliant. - #-------------------------------------------------------------------- -@@ -465,26 +467,20 @@ - # Some systems only define WNOHANG if _POSIX_SOURCE is defined - # The following merely tests that sys/wait.h can be included - # and if so that WNOHANG is not defined. The only place I've - # seen this is ISC. - AC_MSG_CHECKING([if WNOHANG requires _POSIX_SOURCE]) --AC_TRY_RUN([ -+AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ - #include --int --main() { - #ifndef WNOHANG -- return 0; --#else -- return 1; -+# error "WNOHANG requires _POSIX_SOURCE to be defined" - #endif --}], -+]])], - AC_MSG_RESULT(yes) - AC_DEFINE(WNOHANG_REQUIRES_POSIX_SOURCE) - , - AC_MSG_RESULT(no) --, -- AC_MSG_ERROR([Expect can't be cross compiled]) - ) - - AC_MSG_CHECKING([if any value exists for WNOHANG]) - rm -rf wnohang - AC_TRY_RUN([ -@@ -504,11 +501,12 @@ - rm -f wnohang - , - AC_MSG_RESULT(no) - AC_DEFINE(WNOHANG_BACKUP_VALUE, 1) - , -- AC_MSG_ERROR([Expect can't be cross compiled]) -+ AC_MSG_RESULT(yes) -+ AC_DEFINE(WNOHANG_BACKUP_VALUE, 1) - ) - - # - # check how signals work - # -@@ -572,11 +570,11 @@ - }], - AC_MSG_RESULT(yes) - AC_DEFINE(REARM_SIG) - , - AC_MSG_RESULT(no) --, AC_MSG_WARN([Expect can't be cross compiled]) -+, AC_MSG_RESULT(no) - ) - - # HPUX7 has trouble with the big cat so split it - # Owen Rees 29Mar93 - SEDDEFS="${SEDDEFS}CONFEOF -@@ -710,25 +708,19 @@ - AC_DEFINE(POSIX) - fi - - # first check for the pure bsd - AC_MSG_CHECKING([for struct sgttyb]) --AC_TRY_RUN([ -+AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ - #include --int --main() --{ -- struct sgttyb tmp; -- return 0; --}], -+static struct sgttyb tmp; -+]])], - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_SGTTYB) - PTY_TYPE=sgttyb - , - AC_MSG_RESULT(no) --, -- AC_MSG_ERROR([Expect can't be cross compiled]) - ) - - # mach systems have include files for unimplemented features - # so avoid doing following test on those systems - if test $mach -eq 0 ; then -@@ -735,116 +728,88 @@ - # next check for the older style ttys - # note that if we detect termio.h (only), we still set PTY_TYPE=termios - # since that just controls which of pty_XXXX.c file is use and - # pty_termios.c is set up to handle pty_termio. - AC_MSG_CHECKING([for struct termio]) -- AC_TRY_RUN([#include -- int -- main() -- { -- struct termio tmp; -- return 0; -- }], -+AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ -+#include -+static struct termio tmp; -+]])], - AC_DEFINE(HAVE_TERMIO) - PTY_TYPE=termios - AC_MSG_RESULT(yes) - , - AC_MSG_RESULT(no) --, -- AC_MSG_ERROR([Expect can't be cross compiled]) - ) - - # now check for the new style ttys (not yet posix) - AC_MSG_CHECKING([for struct termios]) -- AC_TRY_RUN([ -- /* including termios.h on Solaris 5.6 fails unless inttypes.h included */ --# ifdef HAVE_INTTYPES_H -+AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ -+/* including termios.h on Solaris 5.6 fails unless inttypes.h included */ -+#ifdef HAVE_INTTYPES_H - # include --# endif --# include -- int -- main() -- { -- struct termios tmp; -- return 0; -- }], -+#endif -+#include -+static struct termios tmp; -+]])], - AC_DEFINE(HAVE_TERMIOS) - PTY_TYPE=termios - AC_MSG_RESULT(yes) - , - AC_MSG_RESULT(no) -- , -- AC_MSG_ERROR([Expect can't be cross compiled]) - ) - fi - - AC_MSG_CHECKING([if TCGETS or TCGETA in termios.h]) --AC_TRY_RUN([ -+AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ - /* including termios.h on Solaris 5.6 fails unless inttypes.h included */ - #ifdef HAVE_INTTYPES_H --#include -+# include - #endif - #include --int --main() { --#if defined(TCGETS) || defined(TCGETA) -- return 0; --#else -- return 1; -+# -+#if !(defined(TCGETS) || defined(TCGETA)) -+# error "missing both of TCGETS and TCGETA" - #endif --}], -+]])], - AC_DEFINE(HAVE_TCGETS_OR_TCGETA_IN_TERMIOS_H) - AC_MSG_RESULT(yes) - , - AC_MSG_RESULT(no) --, -- AC_MSG_ERROR([Expect can't be cross compiled]) - ) - - AC_MSG_CHECKING([if TIOCGWINSZ in termios.h]) --AC_TRY_RUN([ -+AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ - /* including termios.h on Solaris 5.6 fails unless inttypes.h included */ - #ifdef HAVE_INTTYPES_H --#include -+# include - #endif - #include --int --main() { --#ifdef TIOCGWINSZ -- return 0; --#else -- return 1; -+ -+#ifndef TIOCGWINSZ -+# error "missing TIOCGWINSZ" - #endif --}], -+]])], - AC_DEFINE(HAVE_TIOCGWINSZ_IN_TERMIOS_H) - AC_MSG_RESULT(yes) - , - AC_MSG_RESULT(no) --, -- AC_MSG_ERROR([Expect can't be cross compiled]) - ) - - # finally check for Cray style ttys - AC_MSG_CHECKING([for Cray-style ptys]) - SETUID=":" --AC_TRY_RUN([ --int --main(){ --#ifdef CRAY -- return 0; --#else -- return 1; -+AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ -+#ifndef CRAY -+# error "CRAY is not defined" - #endif --} --], -+]])], - PTY_TYPE=unicos - SETUID="chmod u+s" - AC_MSG_RESULT(yes) - , - AC_MSG_RESULT(no) --, -- AC_MSG_ERROR([Expect can't be cross compiled]) - ) - - # - # Check for select and/or poll. If both exist, we prefer select. - # if neither exists, define SIMPLE_EVENT. -@@ -873,26 +842,24 @@ - - # - # check for timezones - # - AC_MSG_CHECKING([for SV-style timezone]) --AC_TRY_RUN([ -+AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ - extern char *tzname[2]; - extern int daylight; - int - main() - { - int *x = &daylight; - char **y = tzname; - - return 0; --}], -+}]])], - AC_DEFINE(HAVE_SV_TIMEZONE) - AC_MSG_RESULT(yes), - AC_MSG_RESULT(no) --, -- AC_MSG_ERROR([Expect can't be cross compiled]) - ) - - - # Following comment stolen from Tcl's configure.in: - # Note: in the following variable, it's important to use the absolute - diff --git a/pkgs/development/tcl-modules/by-name/ex/expect/fix-build-time-run-tcl.patch b/pkgs/development/tcl-modules/by-name/ex/expect/fix-build-time-run-tcl.patch index 8edc4bea39d6..213251101530 100644 --- a/pkgs/development/tcl-modules/by-name/ex/expect/fix-build-time-run-tcl.patch +++ b/pkgs/development/tcl-modules/by-name/ex/expect/fix-build-time-run-tcl.patch @@ -1,11 +1,13 @@ ---- a/Makefile.in 2022-09-07 21:46:37.090519258 +0200 -+++ b/Makefile.in 2022-09-07 21:46:21.462592279 +0200 -@@ -380,7 +380,7 @@ - cp $(DIST_ROOT)/$(PKG_DIR).tar.gz $(top_builddir) - - $(SCRIPTS): -- $(TCLSH) $(srcdir)/fixline1 $(SHORT_BINDIR) < $(srcdir)/example/$@ > $@ -+ @tcl@ $(srcdir)/fixline1 $(SHORT_BINDIR) < $(srcdir)/example/$@ > $@ - - ## We cannot use TCL_LIBS below (after TCL_LIB_SPEC) because its - ## expansion references the contents of LIBS, which contains linker +diff --git a/Makefile.in b/Makefile.in +index 36feb62..ac77b25 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -380,7 +380,7 @@ dist: dist-clean doc + cp $(DIST_ROOT)/$(PKG_DIR).tar.gz $(top_builddir) + + $(SCRIPTS): +- $(TCLSH) $(srcdir)/fixline1 $(SHORT_BINDIR) < $(srcdir)/example/$@ > $@ ++ @tcl@ $(srcdir)/fixline1 $(SHORT_BINDIR) < $(srcdir)/example/$@ > $@ + + ## We cannot use TCL_LIBS below (after TCL_LIB_SPEC) because its + ## expansion references the contents of LIBS, which contains linker diff --git a/pkgs/development/tcl-modules/by-name/ex/expect/fix-darwin-bsd-clang16.patch b/pkgs/development/tcl-modules/by-name/ex/expect/fix-darwin-bsd-clang16.patch deleted file mode 100644 index a0e11a5f9d6b..000000000000 --- a/pkgs/development/tcl-modules/by-name/ex/expect/fix-darwin-bsd-clang16.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff -ur a/exp_win.c b/exp_win.c ---- a/exp_win.c 2018-02-02 14:15:52.000000000 -0500 -+++ b/exp_win.c 2023-10-10 07:47:33.082690432 -0400 -@@ -39,7 +39,8 @@ - /* Sigh. On AIX 2.3, termios.h exists but does not define TIOCGWINSZ */ - /* Instead, it has to come from ioctl.h. However, As I said above, this */ - /* can't be cavalierly included on all machines, even when it exists. */ --#if defined(HAVE_TERMIOS) && !defined(HAVE_TIOCGWINSZ_IN_TERMIOS_H) -+/* Darwin also has termios.h, but it requires ioctl.h for `ioctl`. */ -+#if defined(HAVE_TERMIOS) && (defined(__APPLE__) || !defined(HAVE_TIOCGWINSZ_IN_TERMIOS_H)) - # include - #endif - -diff -ur d/pty_termios.c c/pty_termios.c ---- d/pty_termios.c 2023-10-10 07:59:23.244452442 -0400 -+++ c/pty_termios.c 2023-10-10 08:00:35.303231582 -0400 -@@ -7,7 +7,18 @@ - - */ - --#include /* openpty */ -+/* openpty */ -+#if defined(__APPLE__) -+# include -+#elif defined(__FreeBSD__) -+# include -+# include -+# include -+# include -+#else /* pty.h is Linux-specific */ -+# include -+#endif -+ - #include - #include - diff --git a/pkgs/development/tcl-modules/by-name/ex/expect/package.nix b/pkgs/development/tcl-modules/by-name/ex/expect/package.nix index 8e4b2b0caa54..72686130f169 100644 --- a/pkgs/development/tcl-modules/by-name/ex/expect/package.nix +++ b/pkgs/development/tcl-modules/by-name/ex/expect/package.nix @@ -2,40 +2,29 @@ lib, stdenv, buildPackages, - fetchurl, + fetchFromGitHub, tcl, makeWrapper, autoreconfHook, - fetchpatch, replaceVars, + dejagnu, }: -tcl.mkTclDerivation rec { +tcl.mkTclDerivation (finalAttrs: { pname = "expect"; - version = "5.45.4"; + version = "6.0a2"; - src = fetchurl { - url = "mirror://sourceforge/expect/Expect/${version}/expect${version}.tar.gz"; - hash = "sha256-Safag7C92fRtBKBN7sGcd2e7mjI+QMR4H4nK92C5LDQ="; + src = fetchFromGitHub { + owner = "tcltk-depot"; + repo = "expect"; + tag = "v${finalAttrs.version}"; + hash = "sha256-cVs8wU8WlJ0XtEv5Femhb4lwKtyVkPHjosXLbQ8QR4g="; }; patches = [ (replaceVars ./fix-build-time-run-tcl.patch { tcl = "${buildPackages.tcl}/bin/tclsh"; }) - # The following patches fix compilation with clang 15+ - (fetchpatch { - url = "https://sourceforge.net/p/expect/patches/24/attachment/0001-Add-prototype-to-function-definitions.patch"; - hash = "sha256-X2Vv6VVM3KjmBHo2ukVWe5YTVXRmqe//Kw2kr73OpZs="; - }) - (fetchpatch { - url = "https://sourceforge.net/p/expect/patches/_discuss/thread/b813ca9895/6759/attachment/expect-configure-c99.patch"; - hash = "sha256-PxQQ9roWgVXUoCMxkXEgu+it26ES/JuzHF6oML/nk54="; - }) - ./0004-enable-cross-compilation.patch - # Include `sys/ioctl.h` and `util.h` on Darwin, which are required for `ioctl` and `openpty`. - # Include `termios.h` on FreeBSD for `openpty` - ./fix-darwin-bsd-clang16.patch # Remove some code which causes it to link against a file that does not exist at build time on native FreeBSD ./freebsd-unversioned.patch ]; @@ -49,24 +38,17 @@ tcl.mkTclDerivation rec { makeWrapper ]; + __structuredAttrs = true; + strictDeps = true; - env = { - NIX_CFLAGS_COMPILE = toString ( - # Needed to avoid errors when building with GCC 15. - lib.optionals stdenv.cc.isGNU [ "-Wno-error=incompatible-pointer-types" ] - # Autoconf 2.73 defaults to C23, but Expect uses K&R style function declarations. - ++ [ "-std=gnu17" ] - ); - }; - - hardeningDisable = [ "format" ]; - postInstall = '' tclWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ tcl ]}) - ${lib.optionalString stdenv.hostPlatform.isDarwin "tclWrapperArgs+=(--prefix DYLD_LIBRARY_PATH : $out/lib/expect${version})"} + ${lib.optionalString stdenv.hostPlatform.isDarwin "tclWrapperArgs+=(--prefix DYLD_LIBRARY_PATH : $out/lib/expect${finalAttrs.version})"} ''; + doCheck = true; + installCheckTarget = "test"; tclRequiresCheck = [ "Expect" ]; outputs = [ @@ -74,6 +56,10 @@ tcl.mkTclDerivation rec { "dev" ]; + passthru.tests = { + inherit dejagnu; + }; + meta = { description = "Tool for automating interactive applications"; homepage = "https://expect.sourceforge.net/"; @@ -81,6 +67,5 @@ tcl.mkTclDerivation rec { platforms = lib.platforms.unix; mainProgram = "expect"; maintainers = with lib.maintainers; [ SuperSandro2000 ]; - broken = tcl.isTcl9; }; -} +}) From f02614125e455581f4b397c42dd664dbc1635d27 Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Sun, 9 Aug 2026 14:23:23 +0200 Subject: [PATCH 025/148] python3Packages.pygame-ce: 2.5.7 -> 2.5.8 Changelog: https://github.com/pygame-community/pygame-ce/releases/tag/2.5.8 --- pkgs/development/python-modules/pygame-ce/default.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/development/python-modules/pygame-ce/default.nix b/pkgs/development/python-modules/pygame-ce/default.nix index fd6efdd93aee..7ffb8bcdbc29 100644 --- a/pkgs/development/python-modules/pygame-ce/default.nix +++ b/pkgs/development/python-modules/pygame-ce/default.nix @@ -42,7 +42,7 @@ buildPythonPackage (finalAttrs: { pname = "pygame-ce"; - version = "2.5.7"; + version = "2.5.8"; pyproject = true; __structuredAttrs = true; @@ -50,7 +50,7 @@ buildPythonPackage (finalAttrs: { owner = "pygame-community"; repo = "pygame-ce"; tag = finalAttrs.version; - hash = "sha256-Yjs2SLgPVMOy8DCS+Pfk0fs0G//sY20jfGQNJ5rN58Q="; + hash = "sha256-1aUrnTllhaMjsCd/vVQ6aPDgcUdjBTPTeLzfrI6YLCI="; # Unicode files cause different checksums on HFS+ vs. other filesystems postFetch = "rm -rf $out/docs/reST"; }; @@ -78,10 +78,10 @@ buildPythonPackage (finalAttrs: { # cython was pinned to fix windows build hangs (pygame-community/pygame-ce/pull/3015) '' substituteInPlace pyproject.toml \ - --replace-fail "meson-python<=0.18.0" "meson-python" \ - --replace-fail "meson<=1.10.0" "meson" \ + --replace-fail "meson-python<=0.20.0" "meson-python" \ + --replace-fail "meson<=1.11.2" "meson" \ --replace-fail "ninja<=1.13.0" "ninja" \ - --replace-fail "cython<=3.2.4" "cython" \ + --replace-fail "cython<=3.2.9" "cython" \ --replace-fail "sphinx<=8.2.3" "sphinx" \ --replace-fail "astroid<4.0.0" "astroid" \ --replace-fail "sphinx-autoapi<=3.6.0" "sphinx-autoapi" \ From 9b16b224f618072ec868b41ce45c007bfbdd7fc7 Mon Sep 17 00:00:00 2001 From: Christoforus Surjoputro Date: Sun, 9 Aug 2026 22:30:47 +0700 Subject: [PATCH 026/148] spec-kit: 0.0.90 -> 0.16.1 --- maintainers/maintainer-list.nix | 6 ++++++ pkgs/by-name/sp/spec-kit/package.nix | 31 +++++++++++++++------------- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 3df1f85c9829..3b904faef1c5 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -63,6 +63,12 @@ { # keep-sorted start case=no numeric=no block=yes + "3mp3ri0r" = { + email = "christoforus@xendit.co"; + github = "3mp3ri0r"; + githubId = 3140815; + name = "Christoforus Surjoputro"; + }; _0b11stan = { name = "Tristan Auvinet Pinaudeau"; email = "tristan@tic.sh"; diff --git a/pkgs/by-name/sp/spec-kit/package.nix b/pkgs/by-name/sp/spec-kit/package.nix index 1c3d33667716..3005c3a5429a 100644 --- a/pkgs/by-name/sp/spec-kit/package.nix +++ b/pkgs/by-name/sp/spec-kit/package.nix @@ -7,13 +7,13 @@ python3Packages.buildPythonApplication (finalAttrs: { pname = "spec-kit"; - version = "0.0.90"; + version = "0.16.1"; src = fetchFromGitHub { owner = "github"; repo = "spec-kit"; tag = "v${finalAttrs.version}"; - hash = "sha256-ulAii6//DT9uqLxYk6qmX6dwWWjhuARbBmjH5u1YGGM="; + hash = "sha256-Js/yEO63OG4rZ32Vm5qGDOFlVnitxqr/NIIQS6kwdRs="; }; pyproject = true; @@ -22,17 +22,17 @@ python3Packages.buildPythonApplication (finalAttrs: { hatchling ]; - dependencies = - with python3Packages; - [ - typer - rich - httpx - platformdirs - readchar - truststore - ] - ++ httpx.optional-dependencies.socks; + dependencies = with python3Packages; [ + click + json5 + packaging + pathspec + platformdirs + pyyaml + readchar + rich + typer + ]; pythonImportsCheck = [ "specify_cli" @@ -45,7 +45,10 @@ python3Packages.buildPythonApplication (finalAttrs: { homepage = "https://github.com/github/spec-kit"; changelog = "https://github.com/github/spec-kit/blob/v${finalAttrs.version}/CHANGELOG.md"; license = lib.licenses.mit; - maintainers = with lib.maintainers; [ luochen1990 ]; + maintainers = [ + lib.maintainers.luochen1990 + lib.maintainers."3mp3ri0r" + ]; mainProgram = "specify"; }; }) From 1b780c9db22f3ba5bb753503a8c400b0488a2cce Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 10 Aug 2026 06:42:51 +0000 Subject: [PATCH 027/148] gcli: 2.12.0 -> 2.13.0 --- pkgs/by-name/gc/gcli/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/gc/gcli/package.nix b/pkgs/by-name/gc/gcli/package.nix index 9f1ea40297f7..e8b20d046b56 100644 --- a/pkgs/by-name/gc/gcli/package.nix +++ b/pkgs/by-name/gc/gcli/package.nix @@ -10,13 +10,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "gcli"; - version = "2.12.0"; + version = "2.13.0"; src = fetchFromSourcehut { owner = "~herrhotzenplotz"; repo = "gcli"; rev = "v${finalAttrs.version}"; - hash = "sha256-k691ocg5rkvGJZDp6X9PRIDaNvVPLcJRoXvwPbyxjLE="; + hash = "sha256-Ow899ehIln+2E5j/MNA7XCRSBNCeaJ16ePR/u0qXvos="; }; nativeBuildInputs = [ From 18e973b36d405966dd76df66b2dd786a738dd558 Mon Sep 17 00:00:00 2001 From: jopejoe1 Date: Mon, 10 Aug 2026 10:56:42 +0200 Subject: [PATCH 028/148] awk-language-server: use pname and not name --- pkgs/by-name/aw/awk-language-server/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/aw/awk-language-server/package.nix b/pkgs/by-name/aw/awk-language-server/package.nix index 0d16e1e253aa..d0c861ef3ade 100644 --- a/pkgs/by-name/aw/awk-language-server/package.nix +++ b/pkgs/by-name/aw/awk-language-server/package.nix @@ -12,7 +12,7 @@ }: stdenv.mkDerivation (finalAttrs: { - name = "awk-language-server"; + pname = "awk-language-server"; version = "0.10.6"; src = fetchFromGitHub { From 5fa317d4a2c0eea6b319a8a2851765cf92f98cea Mon Sep 17 00:00:00 2001 From: jopejoe1 Date: Mon, 10 Aug 2026 11:04:09 +0200 Subject: [PATCH 029/148] leanPackages.mathlib: set pname and version at correct location --- pkgs/development/lean-modules/mathlib/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/lean-modules/mathlib/default.nix b/pkgs/development/lean-modules/mathlib/default.nix index 8b76f66964c4..eda7d235adba 100644 --- a/pkgs/development/lean-modules/mathlib/default.nix +++ b/pkgs/development/lean-modules/mathlib/default.nix @@ -72,11 +72,11 @@ in runCommand mathlib__archive.name { nativeBuildInputs = [ leangz-raw ]; + inherit (mathlib__archive) pname version; passthru = { inherit mathlib__archive; inherit (mathlib__archive) src - version lakePackageName lean4 allLeanDeps From c5068793b4074f73079cb27450e5fb56d3d0a974 Mon Sep 17 00:00:00 2001 From: jopejoe1 Date: Mon, 10 Aug 2026 11:11:24 +0200 Subject: [PATCH 030/148] tensorflow-lite: use pname instead of name --- pkgs/by-name/te/tensorflow-lite/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/te/tensorflow-lite/package.nix b/pkgs/by-name/te/tensorflow-lite/package.nix index 3ed4c29c06e3..5de65d593658 100644 --- a/pkgs/by-name/te/tensorflow-lite/package.nix +++ b/pkgs/by-name/te/tensorflow-lite/package.nix @@ -32,7 +32,7 @@ let or (throw "unsupported host system ${hostPlatform.system} with build system ${buildPlatform.system}"); in buildBazelPackage rec { - name = "tensorflow-lite"; + pname = "tensorflow-lite"; version = "2.13.0"; src = fetchFromGitHub { From 7591a02ee7e034b49e757b3aa0b0ebc757c2d405 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 10 Aug 2026 10:04:14 +0000 Subject: [PATCH 031/148] vscode-extensions.tombi-toml.tombi: 1.2.5 -> 1.2.8 --- .../vscode/extensions/tombi-toml.tombi/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/editors/vscode/extensions/tombi-toml.tombi/default.nix b/pkgs/applications/editors/vscode/extensions/tombi-toml.tombi/default.nix index 7ccbd7c83281..6424a435994e 100644 --- a/pkgs/applications/editors/vscode/extensions/tombi-toml.tombi/default.nix +++ b/pkgs/applications/editors/vscode/extensions/tombi-toml.tombi/default.nix @@ -7,15 +7,15 @@ let supported = { x86_64-linux = { - hash = "sha256-LuES+anP3Kd1uOZrteb3yy5nsec5gAX0PYeslJ8orBg="; + hash = "sha256-Fy745lZuOz7lLPRp6XXmHGr9asLj2kynlJbaHe6kgCg="; arch = "linux-x64"; }; aarch64-linux = { - hash = "sha256-vMLc5Yhtif8jN9V7DXER8BxFxYYv3sY7yKNMvse6CmQ="; + hash = "sha256-AULA4binavpDoxwpfpdBnl81HshNuChYiyOjte+aQw4="; arch = "linux-arm64"; }; aarch64-darwin = { - hash = "sha256-0ktwL6NkSGrpIUzc0IARoql2hxcluxvK0CTZkX4UEUE="; + hash = "sha256-DKu+dUPCDNOCm1KlpNIeIPmIAFYbVQLD8w4Q3dy3pPI="; arch = "darwin-arm64"; }; }; @@ -30,7 +30,7 @@ vscode-utils.buildVscodeMarketplaceExtension { mktplcRef = base // { name = "tombi"; publisher = "tombi-toml"; - version = "1.2.5"; + version = "1.2.8"; }; meta = { description = "TOML Language Server"; From 2216eb7c4341be82003d8f2c55b469f2d8ca8083 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 10 Aug 2026 14:37:32 +0000 Subject: [PATCH 032/148] python3Packages.redisvl: 0.25.0 -> 0.25.1 --- pkgs/development/python-modules/redisvl/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/redisvl/default.nix b/pkgs/development/python-modules/redisvl/default.nix index b013caa48ec0..b95b33a9b86d 100644 --- a/pkgs/development/python-modules/redisvl/default.nix +++ b/pkgs/development/python-modules/redisvl/default.nix @@ -15,14 +15,14 @@ buildPythonPackage (finalAttrs: { pname = "redisvl"; - version = "0.25.0"; + version = "0.25.1"; pyproject = true; src = fetchFromGitHub { owner = "redis"; repo = "redis-vl-python"; tag = "v${finalAttrs.version}"; - hash = "sha256-+b27+c3S/XNRTIyXyqgjV6Z5MD9GnuqjrpME09qyEog="; + hash = "sha256-SDNcGmARLaRdAqqzmJf5lBeGsiPCj5xbsdyzYdaYl0w="; }; build-system = [ hatchling ]; From faa3bf82aa6eb6c1c6cc472e0ab32f9764a796e8 Mon Sep 17 00:00:00 2001 From: dish Date: Mon, 10 Aug 2026 13:20:53 -0400 Subject: [PATCH 033/148] python3Packages.django-hcaptcha: format to pyproject Part of https://github.com/NixOS/nixpkgs/issues/515974 --- .../development/python-modules/django-hcaptcha/default.nix | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/django-hcaptcha/default.nix b/pkgs/development/python-modules/django-hcaptcha/default.nix index 9f51677dbdaa..cb0017420cb5 100644 --- a/pkgs/development/python-modules/django-hcaptcha/default.nix +++ b/pkgs/development/python-modules/django-hcaptcha/default.nix @@ -2,13 +2,14 @@ lib, buildPythonPackage, fetchPypi, + setuptools, django, }: buildPythonPackage (finalAttrs: { pname = "django-hcaptcha"; version = "0.2.0"; - format = "setuptools"; + pyproject = true; src = fetchPypi { inherit (finalAttrs) version; @@ -16,7 +17,9 @@ buildPythonPackage (finalAttrs: { hash = "sha256-slGerwzJeGWscvglMBEixc9h4eSFLWiVmUFgIirLbBo="; }; - propagatedBuildInputs = [ django ]; + build-system = [ setuptools ]; + + dependencies = [ django ]; # No tests doCheck = false; From 55a756a8765cbd68c75428073e88e1db1848f0d8 Mon Sep 17 00:00:00 2001 From: dish Date: Mon, 10 Aug 2026 13:28:20 -0400 Subject: [PATCH 034/148] python3Packages.django-ipware: format to pyproject Also enable tests Part of https://github.com/NixOS/nixpkgs/issues/515974 --- .../python-modules/django-ipware/default.nix | 29 ++++++++++++++----- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/pkgs/development/python-modules/django-ipware/default.nix b/pkgs/development/python-modules/django-ipware/default.nix index 01c66883d04b..95cf8140e306 100644 --- a/pkgs/development/python-modules/django-ipware/default.nix +++ b/pkgs/development/python-modules/django-ipware/default.nix @@ -1,28 +1,41 @@ { lib, buildPythonPackage, - fetchPypi, + fetchFromGitHub, django, python-ipware, + setuptools, + pytestCheckHook, + pytest-django, }: buildPythonPackage rec { pname = "django-ipware"; version = "7.0.1"; - format = "setuptools"; + pyproject = true; - src = fetchPypi { - inherit pname version; - hash = "sha256-2exD0r983yFv7Y1JSghN61dhpUhgpTsudDRqTzhM/0c="; + src = fetchFromGitHub { + owner = "un33k"; + repo = "django-ipware"; + tag = "v${version}"; + hash = "sha256-jLEHhJ6oNT1tsSqMbfPw1tb2Z/iQa8V6LpbT4ChLKI4="; }; - propagatedBuildInputs = [ + build-system = [ setuptools ]; + + dependencies = [ django python-ipware ]; - # django.core.exceptions.ImproperlyConfigured: Requested setting IPWARE_TRUSTED_PROXY_LIST, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings. - doCheck = false; + env.DJANGO_SETTINGS_MODULE = "ipware.tests.testsettings"; + + nativeCheckInputs = [ + pytestCheckHook + pytest-django + ]; + + enabledTestPaths = [ "ipware/tests/tests*.py" ]; # pythonImportsCheck fails with: # django.core.exceptions.ImproperlyConfigured: Requested setting IPWARE_META_PRECEDENCE_ORDER, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings. From fc910aefedb3fcc972f14c1858cefd2ddc63c4f7 Mon Sep 17 00:00:00 2001 From: Ethan Carter Edwards Date: Mon, 10 Aug 2026 12:42:14 -0700 Subject: [PATCH 035/148] libertinus: modernize Signed-off-by: Ethan Carter Edwards --- pkgs/by-name/li/libertinus/package.nix | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/li/libertinus/package.nix b/pkgs/by-name/li/libertinus/package.nix index ea11f10d53c0..94d23a1e7d8d 100644 --- a/pkgs/by-name/li/libertinus/package.nix +++ b/pkgs/by-name/li/libertinus/package.nix @@ -6,12 +6,15 @@ zstd, }: -stdenvNoCC.mkDerivation rec { +stdenvNoCC.mkDerivation (finalAttrs: { pname = "libertinus"; version = "7.051"; + __structuredAttrs = true; + strictDeps = true; + src = fetchurl { - url = "https://github.com/alerque/libertinus/releases/download/v${version}/Libertinus-${version}.tar.zst"; + url = "https://github.com/alerque/libertinus/releases/download/v${finalAttrs.version}/Libertinus-${finalAttrs.version}.tar.zst"; hash = "sha256-JQZ3ySnTd1owkTZDWUN5ryZKwu8oAQNaody+MLm+I6Y="; }; @@ -38,4 +41,4 @@ stdenvNoCC.mkDerivation rec { maintainers = with lib.maintainers; [ siddharthist ]; platforms = lib.platforms.all; }; -} +}) From 376f3910d0080555b964482f82579064d27b177c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 10 Aug 2026 22:53:36 +0000 Subject: [PATCH 036/148] typos-lsp: 0.1.54 -> 0.1.55 --- pkgs/by-name/ty/typos-lsp/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ty/typos-lsp/package.nix b/pkgs/by-name/ty/typos-lsp/package.nix index 1d548fba4ce8..c00a352c115d 100644 --- a/pkgs/by-name/ty/typos-lsp/package.nix +++ b/pkgs/by-name/ty/typos-lsp/package.nix @@ -7,16 +7,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "typos-lsp"; # Please update the corresponding VSCode extension too. # See pkgs/applications/editors/vscode/extensions/tekumara.typos-vscode/default.nix - version = "0.1.54"; + version = "0.1.55"; src = fetchFromGitHub { owner = "tekumara"; repo = "typos-lsp"; tag = "v${finalAttrs.version}"; - hash = "sha256-UP8kh67z++ILNFjBKYmfadmXKOrVKybXg5K0c9ELct8="; + hash = "sha256-VcYBzaldmnFb5Y3O+wWapEs7pkBI/n4N6FEM8fBhYZs="; }; - cargoHash = "sha256-EbC1ij/58LDEpJIqmDH1J45sEpLrs742BVW1gL5Op+4="; + cargoHash = "sha256-JV0LDkJvdM1zZbYDXGcEZPbwbm7vV9+K5WjQxZX0au4="; # fix for compilation on aarch64 # see https://github.com/NixOS/nixpkgs/issues/145726 From 3488dabf27b2bb8bdc15482801eab122a37339d8 Mon Sep 17 00:00:00 2001 From: Kevin Stone Date: Fri, 29 May 2026 11:14:18 -0700 Subject: [PATCH 037/148] open-policy-agent: fix broken tests due to file removals this package has been broken on darwin since 2025-09 (v1.9.0): https://hydra.nixos.org/build/329365116 with the error: ``` v1/server/compile_handler_test.go:43:50: undefined: fixture v1/server/compile_handler_test.go:58:9: undefined: newFixtureWithStore FAIL github.com/open-policy-agent/opa/v1/server [build failed] FAIL ``` When I tested removing these preCheck lines locally on my darwin machine, it was able to build the originally removed tests/checks and the broken ones sucessfully. --- pkgs/by-name/op/open-policy-agent/package.nix | 5 ----- 1 file changed, 5 deletions(-) diff --git a/pkgs/by-name/op/open-policy-agent/package.nix b/pkgs/by-name/op/open-policy-agent/package.nix index 13e3b8758f3b..7152f89cbd14 100644 --- a/pkgs/by-name/op/open-policy-agent/package.nix +++ b/pkgs/by-name/op/open-policy-agent/package.nix @@ -84,11 +84,6 @@ buildGoModule (finalAttrs: { getGoDirs() { go list ./... | grep -v -e e2e ${lib.optionalString stdenv.hostPlatform.isDarwin "-e wasm"} } - '' - # remove tests that have "too many open files"/"no space left on device" issues on darwin in hydra - + lib.optionalString stdenv.hostPlatform.isDarwin '' - rm v1/server/server_test.go - rm v1/server/server_bench_test.go ''; postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' From b0879b5ee1dd34a42d24a60529d37a5bed453e0f Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Mon, 10 Aug 2026 20:06:20 -0500 Subject: [PATCH 038/148] _1password-cli: restrict updater to stable releases The release history can list beta releases before stable releases. --- pkgs/by-name/_1/_1password-cli/update.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/_1/_1password-cli/update.sh b/pkgs/by-name/_1/_1password-cli/update.sh index 4f04279fcea6..0ef07bf6ab48 100755 --- a/pkgs/by-name/_1/_1password-cli/update.sh +++ b/pkgs/by-name/_1/_1password-cli/update.sh @@ -27,7 +27,7 @@ replace_sha() { sed -i "s|\"$1\" \"sha256-.\{44\}\"|\"$1\" \"$2\"|" "$NIX_DRV" } -CLI_VERSION="$(curl -Ls https://app-updates.agilebits.com/product_history/CLI2 | xq -q 'h3' | head -n1)" +CLI_VERSION="$(curl -Ls https://app-updates.agilebits.com/product_history/CLI2 | xq -q 'article:not(.beta) h3' | head -n1)" CLI_LINUX_AARCH64_SHA256=$(fetch_linux "$CLI_VERSION" "linux_arm64") CLI_LINUX_I686_SHA256=$(fetch_linux "$CLI_VERSION" "linux_386") From 8c280ec3325194becbd3acb37f549d09d59b78f5 Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Mon, 10 Aug 2026 20:06:20 -0500 Subject: [PATCH 039/148] _1password-cli: 2.34.1 -> 2.38.1 Generated with the corrected update script. --- pkgs/by-name/_1/_1password-cli/package.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/_1/_1password-cli/package.nix b/pkgs/by-name/_1/_1password-cli/package.nix index 6595b170e8e3..c1756687e2c5 100644 --- a/pkgs/by-name/_1/_1password-cli/package.nix +++ b/pkgs/by-name/_1/_1password-cli/package.nix @@ -24,13 +24,13 @@ let if extension == "zip" then fetchzip args else fetchurl args; pname = "1password-cli"; - version = "2.34.1"; + version = "2.38.1"; sources = { - aarch64-linux = fetch "linux_arm64" "sha256-uEukRq71eeayvNguD9XepvP1Br5AkE2Ag/Chv2idf4A=" "zip"; - i686-linux = fetch "linux_386" "sha256-p/F3YZLJnlimrVE2qxTHvIB4m47kuwhoCWTC40VIvMs=" "zip"; - x86_64-linux = fetch "linux_amd64" "sha256-oAABMlwwv5X91TT6FK2aPpg+e2CvmHT1rqIVRTjQNCQ=" "zip"; + aarch64-linux = fetch "linux_arm64" "sha256-RmpJkrrLrKwbmbw50+sTg0aFa0+M2EFPZ6+QSc3aV5M=" "zip"; + i686-linux = fetch "linux_386" "sha256-hnpVsbNgofmfw/XobVZ2MnbGIcAjxH1MvVJNc5T1kuk=" "zip"; + x86_64-linux = fetch "linux_amd64" "sha256-k268YiTC/2MJZhVqMI/e9bsrf4Sr4Wj8M/h/hbmmcqY=" "zip"; aarch64-darwin = - fetch "apple_universal" "sha256-vp1Y1M6DUanx1CAVhLrqgBovwws6Y/5jOgnwTZE8Hhc=" + fetch "apple_universal" "sha256-pLlEsqCL5j9QCuLkQxK/Mmz647lKbCYhOUiPch2MMuE=" "pkg"; }; platforms = builtins.attrNames sources; From b3e2691a4967222c7095373c91e0cead2be7ec02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Rivera?= Date: Tue, 11 Aug 2026 09:24:47 +0200 Subject: [PATCH 040/148] nixos/eternal-terminal: add tomasrivera as maintainer --- nixos/modules/services/networking/eternal-terminal.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/services/networking/eternal-terminal.nix b/nixos/modules/services/networking/eternal-terminal.nix index 0c1a339929bd..c0647d91c69e 100644 --- a/nixos/modules/services/networking/eternal-terminal.nix +++ b/nixos/modules/services/networking/eternal-terminal.nix @@ -92,6 +92,6 @@ in }; meta = { - maintainers = [ ]; + maintainers = with lib.maintainers; [ tomasrivera ]; }; } From 0a612d515c443a03f7deb4921d26f3c82bfb31cb Mon Sep 17 00:00:00 2001 From: kaynetik Date: Tue, 11 Aug 2026 09:00:21 +0200 Subject: [PATCH 041/148] hunk: move skills to `$out/share/skills/hunk/` Follow the layout agreed in NixOS/nixpkgs#547426 and drop the `$out/skills` symlink. Patch `paths.ts`` so `hunk skill path` still resolves the bundled skill from the share tree. Signed-off-by: kaynetik --- pkgs/by-name/hu/hunk/package.nix | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/hu/hunk/package.nix b/pkgs/by-name/hu/hunk/package.nix index d3a07d79ee59..b92f83f738a7 100644 --- a/pkgs/by-name/hu/hunk/package.nix +++ b/pkgs/by-name/hu/hunk/package.nix @@ -71,6 +71,16 @@ stdenv.mkDerivation { writableTmpDirAsHomeHook ]; + # Teach `hunk skill path` to find the FHS layout under share/skills/$pname + # (https://github.com/NixOS/nixpkgs/issues/547426) instead of $out/skills. + postPatch = '' + substituteInPlace src/core/paths.ts \ + --replace-fail \ + 'join("node_modules", "hunkdiff", HUNK_REVIEW_SKILL_RELATIVE_PATH),' \ + 'join("node_modules", "hunkdiff", HUNK_REVIEW_SKILL_RELATIVE_PATH), + join("share", "skills", "${pname}", "hunk-review", "SKILL.md"),' + ''; + configurePhase = '' runHook preConfigure @@ -100,9 +110,8 @@ stdenv.mkDerivation { runHook preInstall install -Dm755 hunk $out/bin/hunk - mkdir -p $out/share/hunk - cp -R skills $out/share/hunk/skills - ln -s share/hunk/skills $out/skills + mkdir -p $out/share/skills + cp -R skills $out/share/skills/$pname runHook postInstall ''; @@ -121,6 +130,7 @@ stdenv.mkDerivation { runHook preInstallCheck $out/bin/hunk --version | grep -F ${version} + test -f $out/share/skills/$pname/hunk-review/SKILL.md test -f "$($out/bin/hunk skill path)" runHook postInstallCheck From bec4e712b2fdf4c136ec28f0e0a5b7c093ada190 Mon Sep 17 00:00:00 2001 From: kaynetik Date: Tue, 11 Aug 2026 11:11:03 +0200 Subject: [PATCH 042/148] hunk: drop redundant skill install-check Signed-off-by: kaynetik --- pkgs/by-name/hu/hunk/package.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/hu/hunk/package.nix b/pkgs/by-name/hu/hunk/package.nix index b92f83f738a7..93035361efc0 100644 --- a/pkgs/by-name/hu/hunk/package.nix +++ b/pkgs/by-name/hu/hunk/package.nix @@ -110,8 +110,8 @@ stdenv.mkDerivation { runHook preInstall install -Dm755 hunk $out/bin/hunk - mkdir -p $out/share/skills - cp -R skills $out/share/skills/$pname + mkdir -p $out/share/skills/$pname/hunk-review + cp skills/hunk-review/SKILL.md $out/share/skills/$pname/hunk-review/SKILL.md runHook postInstall ''; @@ -130,7 +130,6 @@ stdenv.mkDerivation { runHook preInstallCheck $out/bin/hunk --version | grep -F ${version} - test -f $out/share/skills/$pname/hunk-review/SKILL.md test -f "$($out/bin/hunk skill path)" runHook postInstallCheck From da956994fbb2b646b546e719fea4b56484b6197c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 11 Aug 2026 10:26:16 +0000 Subject: [PATCH 043/148] python3Packages.bittensor-core: 0.1.1 -> 0.1.2 --- pkgs/development/python-modules/bittensor-core/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/bittensor-core/default.nix b/pkgs/development/python-modules/bittensor-core/default.nix index 524fa9e0c788..2c2eb82ea129 100644 --- a/pkgs/development/python-modules/bittensor-core/default.nix +++ b/pkgs/development/python-modules/bittensor-core/default.nix @@ -10,7 +10,7 @@ buildPythonPackage (finalAttrs: { pname = "bittensor-core"; - version = "0.1.1"; + version = "0.1.2"; pyproject = true; __structuredAttrs = true; @@ -18,7 +18,7 @@ buildPythonPackage (finalAttrs: { src = fetchPypi { pname = "bittensor_core"; inherit (finalAttrs) version; - hash = "sha256-xAw0uZhjc0uoh/6bzFFp4IvqyV7vc6cPnrjkMLIvjLU="; + hash = "sha256-PsnNAB69iou4LgmPtsLwdrCI0mjygc4GH8qysm1I7DQ="; }; cargoDeps = rustPlatform.fetchCargoVendor { From 9ad439d42306d7cd2a09a31ff9a5344ddb15e9e6 Mon Sep 17 00:00:00 2001 From: Christoph Jabs Date: Tue, 11 Aug 2026 15:27:53 +0300 Subject: [PATCH 044/148] cargo-rdme: 2.1.0 -> 2.2.0 --- pkgs/by-name/ca/cargo-rdme/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ca/cargo-rdme/package.nix b/pkgs/by-name/ca/cargo-rdme/package.nix index 6cea4afc2800..cc681ad2c34c 100644 --- a/pkgs/by-name/ca/cargo-rdme/package.nix +++ b/pkgs/by-name/ca/cargo-rdme/package.nix @@ -6,14 +6,14 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "cargo-rdme"; - version = "2.1.0"; + version = "2.2.0"; src = fetchCrate { inherit (finalAttrs) pname version; - hash = "sha256-U5JD3VMuIagaMKxHoRRhbFyl7keuaJ0zNzD3Hjhxe/Y="; + hash = "sha256-f0MxJVWTcBNiURJFE60Xbv0/xcj51ZoZmJEzvIP79f4="; }; - cargoHash = "sha256-Es1K4MmThAS9whsfSQ8dUtjPjunCDCQc5FU8vsbeJPw="; + cargoHash = "sha256-U2tw/tzFSktrKAIUk4fxyRCMVuw98uHXDkZ/YpC2aCA="; meta = { description = "Cargo command to create the README.md from your crate's documentation"; From 5f01d23a536b2f34ecf2822e1278a3ee2daa587a Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 11 Aug 2026 15:39:00 +0000 Subject: [PATCH 045/148] freifunk-meshviewer: 13.1.0 -> 13.2.0 --- pkgs/by-name/fr/freifunk-meshviewer/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/fr/freifunk-meshviewer/package.nix b/pkgs/by-name/fr/freifunk-meshviewer/package.nix index 30aa0fb80645..712ea00afd05 100644 --- a/pkgs/by-name/fr/freifunk-meshviewer/package.nix +++ b/pkgs/by-name/fr/freifunk-meshviewer/package.nix @@ -7,7 +7,7 @@ buildNpmPackage (finalAttrs: { pname = "freifunk-meshviewer"; - version = "13.1.0"; + version = "13.2.0"; strictDeps = true; __structuredAttrs = true; @@ -16,10 +16,10 @@ buildNpmPackage (finalAttrs: { owner = "freifunk"; repo = "meshviewer"; tag = "v${finalAttrs.version}"; - sha256 = "sha256-u9lX7B402KFOHyaReyg3f5rDYDshbO/lyMYo7XxgJR8="; + sha256 = "sha256-ni5Ln9K+Bqq88oi+nwOyCqibJz3TesVreHDWEec6Xzk="; }; - npmDepsHash = "sha256-BaFtFdOu+WArH75nPtasSpecdGjMxTchFcF+K7krNpM="; + npmDepsHash = "sha256-gdGaJSwT5EYcrL/VBId4c6VFmyEbQ9v2LEJP1jc8yO8="; installPhase = '' mkdir -p $out/share/freifunk-meshviewer/ From 9137a7cd08fc0609b94391279c70e86dd0c2fe58 Mon Sep 17 00:00:00 2001 From: Stefan Frijters Date: Tue, 11 Aug 2026 18:22:13 +0200 Subject: [PATCH 046/148] swift: do not use passAsFile for buildCommand This is not necessary (stdenv uses either buildCommand or buildCommandPath, depending on what's available), but it is confusing since it's not explicitly used and would not work if structuredAttrs is enabled. --- pkgs/development/compilers/swift/wrapper/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/development/compilers/swift/wrapper/default.nix b/pkgs/development/compilers/swift/wrapper/default.nix index e446bec66868..b3c42685a4cf 100644 --- a/pkgs/development/compilers/swift/wrapper/default.nix +++ b/pkgs/development/compilers/swift/wrapper/default.nix @@ -53,7 +53,6 @@ stdenv.mkDerivation ( stdenv.targetPlatform.darwinMinVersion ); - passAsFile = [ "buildCommand" ]; buildCommand = '' mkdir -p $out/bin $out/nix-support From 1d45a37ea83d64d54237ba5c15a33ef15a48d4e8 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 11 Aug 2026 20:20:16 +0000 Subject: [PATCH 047/148] grafanaPlugins.grafana-opensearch-datasource: 2.34.0 -> 2.34.3 --- .../plugins/grafana-opensearch-datasource/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/servers/monitoring/grafana/plugins/grafana-opensearch-datasource/default.nix b/pkgs/servers/monitoring/grafana/plugins/grafana-opensearch-datasource/default.nix index 5a414111d888..076c88971f97 100644 --- a/pkgs/servers/monitoring/grafana/plugins/grafana-opensearch-datasource/default.nix +++ b/pkgs/servers/monitoring/grafana/plugins/grafana-opensearch-datasource/default.nix @@ -2,11 +2,11 @@ grafanaPlugin { pname = "grafana-opensearch-datasource"; - version = "2.34.0"; + version = "2.34.3"; zipHash = { - x86_64-linux = "sha256-/NG+38zeIcoiQTm/QJFwwZSpo0zdovh1a4QntndcphE="; - aarch64-linux = "sha256-jGRMlbOsOd7fglTMmdOSGxNv4GiV9aiusXz6CnCefaY="; - aarch64-darwin = "sha256-WzhbYvgkuIzB8coJMinLiEyW3RIFxftM2ZGPG9rGGxU="; + x86_64-linux = "sha256-P5NlM7TZWLVbKbYFy9TzqwRiKQZkXsOxmUJbWx+6TAI="; + aarch64-linux = "sha256-MLpS4NHu0F7a1eQOTMYuZi3N/ESn+jXKMhspl2DoqhE="; + aarch64-darwin = "sha256-PIqemTwdml2c9y6RKfOrYB6IIqwgmy0zB33CKizCwqY="; }; meta = { description = "Empowers you to seamlessly integrate JSON data into Grafana"; From 28976accd56d5208644c45f9fdc3f33f5129748f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 11 Aug 2026 20:30:54 +0000 Subject: [PATCH 048/148] aks-mcp-server: 0.0.19 -> 0.0.20 --- pkgs/by-name/ak/aks-mcp-server/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ak/aks-mcp-server/package.nix b/pkgs/by-name/ak/aks-mcp-server/package.nix index 49cee658330d..3d27238a9789 100644 --- a/pkgs/by-name/ak/aks-mcp-server/package.nix +++ b/pkgs/by-name/ak/aks-mcp-server/package.nix @@ -11,16 +11,16 @@ buildGoModule (finalAttrs: { pname = "aks-mcp-server"; - version = "0.0.19"; + version = "0.0.20"; src = fetchFromGitHub { owner = "Azure"; repo = "aks-mcp"; rev = "v${finalAttrs.version}"; - hash = "sha256-Zu/caWrTuyzS4ejJ5LTOCyLTsmJOFrkX0kUGM0zDfFs="; + hash = "sha256-K0BVDH0HT4kQBGMpVDtLihDCPlpcVpdGEF7f5DY8SvQ="; }; - vendorHash = "sha256-eipcHVKKHBOey2fUGB4lf2pE/wdwGgsbYvCrvDG1JK8="; + vendorHash = "sha256-EdDiLibw3OXtTmAaD6PIi6xiW7+x8TUeAezdjpu8IjY="; subPackages = [ "cmd/aks-mcp" ]; From 5885e812e4f7b964577ede585c7dad5259a70396 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 11 Aug 2026 21:59:28 +0000 Subject: [PATCH 049/148] virtnbdbackup: 2.48 -> 2.49 --- pkgs/by-name/vi/virtnbdbackup/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/vi/virtnbdbackup/package.nix b/pkgs/by-name/vi/virtnbdbackup/package.nix index 29a0180f68fe..12c0812f918e 100644 --- a/pkgs/by-name/vi/virtnbdbackup/package.nix +++ b/pkgs/by-name/vi/virtnbdbackup/package.nix @@ -7,14 +7,14 @@ python3Packages.buildPythonApplication (finalAttrs: { pname = "virtnbdbackup"; - version = "2.48"; + version = "2.49"; pyproject = true; src = fetchFromGitHub { owner = "abbbi"; repo = "virtnbdbackup"; tag = "v${finalAttrs.version}"; - hash = "sha256-qbuTyu3j9775s0VmL+RJLEVYAd2vNqjhETJc2idZ45M="; + hash = "sha256-Z6lHU28pqO3Xf9470mVInJdv0hh/sgNPnMIt57WFbFk="; }; build-system = with python3Packages; [ From 81a2faac1fa2d2f70f2df64f05781ea1295c88f9 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 11 Aug 2026 22:02:27 +0000 Subject: [PATCH 050/148] hyprlandPlugins.hypr-darkwindow: 0.56.1 -> 0.56.2 --- .../window-managers/hyprwm/hyprland-plugins/hypr-darkwindow.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hypr-darkwindow.nix b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hypr-darkwindow.nix index c165932cf0b4..85d0fb434740 100644 --- a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hypr-darkwindow.nix +++ b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hypr-darkwindow.nix @@ -7,7 +7,7 @@ mkHyprlandPlugin (finalAttrs: { pluginName = "hypr-darkwindow"; - version = "0.56.1"; + version = "0.56.2"; src = fetchFromGitHub { owner = "micha4w"; From 5f2d8b5fa2f032dc8387d6632ecde4ade487462b Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 11 Aug 2026 22:19:16 +0000 Subject: [PATCH 051/148] python3Packages.hist: 2.10.1 -> 2.11.0 --- pkgs/development/python-modules/hist/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/hist/default.nix b/pkgs/development/python-modules/hist/default.nix index 97284cd81450..ea689543c8b7 100644 --- a/pkgs/development/python-modules/hist/default.nix +++ b/pkgs/development/python-modules/hist/default.nix @@ -13,12 +13,12 @@ buildPythonPackage (finalAttrs: { pname = "hist"; - version = "2.10.1"; + version = "2.11.0"; pyproject = true; src = fetchPypi { inherit (finalAttrs) pname version; - hash = "sha256-3sjmrHmm1k7Ihzzzaz7wOUx5r/Ow6Kvtcf3Hf9xCGy4="; + hash = "sha256-kusfoMo5utYZ9/cEs7qTxEs1U7BEX22ywXxnwBuctTQ="; }; build-system = [ From 5cb27c2c384488e5bece4c4924a2c942fbf24eb7 Mon Sep 17 00:00:00 2001 From: fumnanya Date: Wed, 12 Aug 2026 00:41:47 +0200 Subject: [PATCH 052/148] maintainers: move poopsicles to dibenzepin --- maintainers/maintainer-list.nix | 12 ++++++------ pkgs/by-name/mo/mochi/package.nix | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 0f55bd52c964..2e48b7580e49 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -7123,6 +7123,12 @@ githubId = 15774340; name = "Thomas Depierre"; }; + dibenzepin = { + name = "Fumnanya"; + email = "fmowete@outlook.com"; + github = "dibenzepin"; + githubId = 87488715; + }; DictXiong = { email = "me@beardic.cn"; github = "DictXiong"; @@ -22802,12 +22808,6 @@ githubId = 4201956; name = "pongo1231"; }; - poopsicles = { - name = "Fumnanya"; - email = "fmowete@outlook.com"; - github = "dibenzepin"; - githubId = 87488715; - }; PopeRigby = { name = "PopeRigby"; github = "poperigby"; diff --git a/pkgs/by-name/mo/mochi/package.nix b/pkgs/by-name/mo/mochi/package.nix index ad637755bee2..afdc636fbac8 100644 --- a/pkgs/by-name/mo/mochi/package.nix +++ b/pkgs/by-name/mo/mochi/package.nix @@ -72,7 +72,7 @@ let sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; maintainers = with lib.maintainers; [ piotrkwiecinski - poopsicles + dibenzepin ]; platforms = lib.platforms.linux ++ lib.platforms.darwin; }; From 02eb1d46177e43f53f4bfd11342b899ffe1cc8d5 Mon Sep 17 00:00:00 2001 From: fumnanya Date: Wed, 12 Aug 2026 00:42:55 +0200 Subject: [PATCH 053/148] maintainers: add dibenzepin to squawk --- pkgs/by-name/sq/squawk/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/sq/squawk/package.nix b/pkgs/by-name/sq/squawk/package.nix index c07e786f30a4..01caac06e766 100644 --- a/pkgs/by-name/sq/squawk/package.nix +++ b/pkgs/by-name/sq/squawk/package.nix @@ -51,6 +51,6 @@ rustPlatform.buildRustPackage (finalAttrs: { homepage = "https://squawkhq.com"; changelog = "https://github.com/sbdchd/squawk/blob/v${finalAttrs.version}/CHANGELOG.md"; license = lib.licenses.gpl3Only; - maintainers = [ ]; + maintainers = [ lib.maintainers.dibenzepin ]; }; }) From 8e6b420d17ee45beb41bbea9714e6030dee607f1 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 11 Aug 2026 22:51:13 +0000 Subject: [PATCH 054/148] python3Packages.stripe: 15.4.0 -> 15.5.0 --- pkgs/development/python-modules/stripe/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/stripe/default.nix b/pkgs/development/python-modules/stripe/default.nix index b6a50ee469de..8e693fad891c 100644 --- a/pkgs/development/python-modules/stripe/default.nix +++ b/pkgs/development/python-modules/stripe/default.nix @@ -9,12 +9,12 @@ buildPythonPackage rec { pname = "stripe"; - version = "15.4.0"; + version = "15.5.0"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-+UwngKdyjF+0l4ng+7GOmEJn+T+nJOhACzGuvzbQGx4="; + hash = "sha256-a3EEiycKBsE5nJ/2F55pB8eCXsOU9XmpczQNXCuFda4="; }; build-system = [ flit-core ]; From fc6e55614c8b4de69352d30b32abaeb3f9ab13ae Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 11 Aug 2026 23:23:44 +0000 Subject: [PATCH 055/148] grafanaPlugins.grafana-lokiexplore-app: 2.4.0 -> 2.5.0 --- .../grafana/plugins/grafana-lokiexplore-app/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/monitoring/grafana/plugins/grafana-lokiexplore-app/default.nix b/pkgs/servers/monitoring/grafana/plugins/grafana-lokiexplore-app/default.nix index f10029c330b7..099a1a8e1ea4 100644 --- a/pkgs/servers/monitoring/grafana/plugins/grafana-lokiexplore-app/default.nix +++ b/pkgs/servers/monitoring/grafana/plugins/grafana-lokiexplore-app/default.nix @@ -2,8 +2,8 @@ grafanaPlugin { pname = "grafana-lokiexplore-app"; - version = "2.4.0"; - zipHash = "sha256-x+LxpkDN+iKW9QBDEg6oDURWuLUYNAC3UDWDmfoYcYo="; + version = "2.5.0"; + zipHash = "sha256-n+jIw5mvhXtpJlDPK7stsNhSV5y/sW382+DI7Shx4PI="; meta = { description = "Browse Loki logs without the need for writing complex queries"; license = lib.licenses.agpl3Only; From 48e99d332d990997d6e33701f1bde7ca8e4271b9 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 00:27:25 +0000 Subject: [PATCH 056/148] snooze: 0.5.1 -> 0.6 --- pkgs/by-name/sn/snooze/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/sn/snooze/package.nix b/pkgs/by-name/sn/snooze/package.nix index 1c3432259a8b..179c146f6712 100644 --- a/pkgs/by-name/sn/snooze/package.nix +++ b/pkgs/by-name/sn/snooze/package.nix @@ -5,12 +5,12 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "snooze"; - version = "0.5.1"; + version = "0.6"; src = fetchFromGitHub { owner = "leahneukirchen"; repo = "snooze"; rev = "v${finalAttrs.version}"; - sha256 = "sha256-ghWQ/bslWJCcsQ8OqS3MHZiiuGzbgzat6mkG2avSbEk="; + sha256 = "sha256-nPJ1W/37duJoyKopkQl/UHDv+MaRFHGuiQI16VIU6HA="; }; makeFlags = [ "DESTDIR=$(out)" From c64f1e856d1cb4106a906a12b0016f104e2d4e56 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 00:45:42 +0000 Subject: [PATCH 057/148] openttd-jgrpp: 0.73.0 -> 0.73.1 --- pkgs/by-name/op/openttd-jgrpp/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/op/openttd-jgrpp/package.nix b/pkgs/by-name/op/openttd-jgrpp/package.nix index 61783b73c081..e853251532dc 100644 --- a/pkgs/by-name/op/openttd-jgrpp/package.nix +++ b/pkgs/by-name/op/openttd-jgrpp/package.nix @@ -7,13 +7,13 @@ openttd.overrideAttrs (oldAttrs: rec { pname = "openttd-jgrpp"; - version = "0.73.0"; + version = "0.73.1"; src = fetchFromGitHub { owner = "JGRennison"; repo = "OpenTTD-patches"; rev = "jgrpp-${version}"; - hash = "sha256-eFUKJSpHLhyGXvKo/uSB01+5nGv5Y7yUTIU3U81Qx5U="; + hash = "sha256-L99u4J/yiaQB2TTP63gIX6N4OrVOuM4/1bpLkCzVvXU="; }; patches = [ ]; From 26082fffde56bdfbaf1ba69d843618acd2a15cd8 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 01:20:58 +0000 Subject: [PATCH 058/148] python3Packages.pyimouapi: 1.3.3 -> 1.3.4 --- pkgs/development/python-modules/pyimouapi/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pyimouapi/default.nix b/pkgs/development/python-modules/pyimouapi/default.nix index 5b3e673949f8..0e31748b5f50 100644 --- a/pkgs/development/python-modules/pyimouapi/default.nix +++ b/pkgs/development/python-modules/pyimouapi/default.nix @@ -12,14 +12,14 @@ buildPythonPackage (finalAttrs: { pname = "pyimouapi"; - version = "1.3.3"; + version = "1.3.4"; pyproject = true; src = fetchFromGitHub { owner = "Imou-OpenPlatform"; repo = "Py-Imou-Open-Api"; tag = finalAttrs.version; - hash = "sha256-g70zYBmhQXlk1EUExqWuHWDenx8ZCcnMvh8wo1hLS4g="; + hash = "sha256-rX6BQFxUktrlZAhjRySheQRbEu6TFKxZwpjIi1wx85I="; }; build-system = [ setuptools ]; From 28ff0764fabc0215c4e018f4eb23a5db1ad83b5b Mon Sep 17 00:00:00 2001 From: whispers Date: Tue, 11 Aug 2026 22:09:56 -0400 Subject: [PATCH 059/148] gxmatcheq-lv2: unpin gcc13, fix build with modern gcc gcc 13 was previously pinned to fix the build, but this was masking real issues. one was fixed upstream, so we fetch the patch, while the other is a missing header that we put in the correct place. --- pkgs/by-name/gx/gxmatcheq-lv2/package.nix | 25 ++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/pkgs/by-name/gx/gxmatcheq-lv2/package.nix b/pkgs/by-name/gx/gxmatcheq-lv2/package.nix index a687a0e2c1bb..c81753a5df49 100644 --- a/pkgs/by-name/gx/gxmatcheq-lv2/package.nix +++ b/pkgs/by-name/gx/gxmatcheq-lv2/package.nix @@ -1,20 +1,15 @@ { lib, stdenv, - gcc13Stdenv, fetchFromGitHub, + fetchpatch, libx11, xorgproto, cairo, lv2, pkg-config, }: -let - # see: https://github.com/brummer10/GxMatchEQ.lv2/issues/8 - # Use gcc13 on Linux, but default stdenv (clang) elsewhere - buildStdenv = if stdenv.hostPlatform.isLinux then gcc13Stdenv else stdenv; -in -buildStdenv.mkDerivation (finalAttrs: { +stdenv.mkDerivation (finalAttrs: { pname = "GxMatchEQ.lv2"; version = "0.1"; @@ -25,6 +20,22 @@ buildStdenv.mkDerivation (finalAttrs: { hash = "sha256-4jg6DYkNRuNuQpOnsZfwJAZljBmBRzS6NcJKjv+r7Ss="; }; + patches = [ + # _LV2UI_Descriptor was mistakenly used instead of LV2UI_Descriptor in one + # signature. + (fetchpatch { + name = "use-lv2ui_descriptor-name.patch"; + url = "https://github.com/brummer10/GxMatchEQ.lv2/commit/4ca70be32220729a5253c0bb46f5aded5ba3d00a.patch"; + hash = "sha256-EKlv6UptUpP+LOG7S30L21o0/upeDj6WB1PZ44XtNRU="; + }) + ]; + + # without the Xresource.h header, compilation on gcc versions > 13 fails with + # gui/gx_matcheq_x11ui.c:360:27: error: implicit declaration of function 'XrmUniqueQuark' [-Wimplicit-function-declaration] + postPatch = '' + sed -e '1i #include ' -i gui/gx_matcheq_x11ui.c + ''; + nativeBuildInputs = [ pkg-config ]; buildInputs = [ libx11 From 378a3cebc7675c31efddb657e46ee444593d6bf8 Mon Sep 17 00:00:00 2001 From: zowoq <59103226+zowoq@users.noreply.github.com> Date: Wed, 12 Aug 2026 13:08:18 +1000 Subject: [PATCH 060/148] openwith: remove --- pkgs/by-name/op/openwith/package.nix | 41 ---------------------------- pkgs/top-level/aliases.nix | 1 + pkgs/top-level/darwin-aliases.nix | 2 +- 3 files changed, 2 insertions(+), 42 deletions(-) delete mode 100644 pkgs/by-name/op/openwith/package.nix diff --git a/pkgs/by-name/op/openwith/package.nix b/pkgs/by-name/op/openwith/package.nix deleted file mode 100644 index 7ff5bc4c8d82..000000000000 --- a/pkgs/by-name/op/openwith/package.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ - lib, - swiftPackages, - fetchFromGitHub, -}: - -let - inherit (swiftPackages) stdenv swift; - inherit (stdenv.hostPlatform) darwinArch; -in -stdenv.mkDerivation { - pname = "openwith"; - version = "unstable-2022-10-28"; - - src = fetchFromGitHub { - owner = "jdek"; - repo = "openwith"; - rev = "a8a99ba0d1cabee7cb470994a1e2507385c30b6e"; - hash = "sha256-lysleg3qM2MndXeKjNk+Y9Tkk40urXA2ZdxY5KZNANo="; - }; - - nativeBuildInputs = [ swift ]; - - makeFlags = [ "openwith_${darwinArch}" ]; - - installPhase = '' - runHook preInstall - install openwith_${darwinArch} -D $out/bin/openwith - runHook postInstall - ''; - - meta = { - description = "Utility to specify which application bundle should open specific file extensions"; - homepage = "https://github.com/jdek/openwith"; - license = lib.licenses.unlicense; - maintainers = with lib.maintainers; [ zowoq ]; - platforms = [ - "aarch64-darwin" - ]; - }; -} diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index ad76492d72d1..0744b7f225d7 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1856,6 +1856,7 @@ mapAliases { opensyclWithRocm = throw "'opensyclWithRocm' has been renamed to/replaced by 'adaptivecppWithRocm'"; # Converted to throw 2025-10-27 opentofu-ls = warnAlias "'opentofu-ls' has been renamed to 'tofu-ls'" tofu-ls; # Added 2025-06-10 opentracing-cpp = throw "'opentracingc-cpp' has been removed as it was archived upstream in 2024"; # Added 2025-10-19 + openwith = throw "'openwith' has been removed, doesn't seem to work correctly on macOS 26 or newer"; # Added 2026-08-12 openzwave = throw "openzwave was removed because upstream is no longer maintained. Consider using zwave-js-server"; # Added 2026-05-14 opera = throw "'opera' has been removed due to lack of maintenance in nixpkgs"; # Added 2025-05-19 opusTools = warnAlias "'opusTools' has been renamed to 'opus-tools'" opus-tools; # Added 2026-02-12 diff --git a/pkgs/top-level/darwin-aliases.nix b/pkgs/top-level/darwin-aliases.nix index 72a7dbc9434a..ae22c028f23b 100644 --- a/pkgs/top-level/darwin-aliases.nix +++ b/pkgs/top-level/darwin-aliases.nix @@ -141,7 +141,7 @@ stubs ### O ### opencflite = pkgs.opencflite; # added 2024-05-02 - openwith = pkgs.openwith; # added 2025-11-28 + openwith = throw "'openwith' has been removed, doesn't seem to work correctly on macOS 26 or newer"; # Added 2026-08-12 ### P ### postLinkSignHook = throw "'darwin.postLinkSignHook' has been removed because it is obsolete"; # added 2025-02-23 From 707b18a12a509808ad0a22b5a76c63fae81ebe09 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 03:57:47 +0000 Subject: [PATCH 061/148] python3Packages.uhashring: 2.4 -> 2.5 --- pkgs/development/python-modules/uhashring/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/uhashring/default.nix b/pkgs/development/python-modules/uhashring/default.nix index 513dd2ddab72..06c7534bebf6 100644 --- a/pkgs/development/python-modules/uhashring/default.nix +++ b/pkgs/development/python-modules/uhashring/default.nix @@ -8,14 +8,14 @@ }: buildPythonPackage rec { pname = "uhashring"; - version = "2.4"; + version = "2.5"; pyproject = true; src = fetchFromGitHub { owner = "ultrabug"; repo = "uhashring"; tag = version; - hash = "sha256-6zNPExbcwTUne0lT8V6xp2Gf6J1VgG7Q93qizVOAc+k="; + hash = "sha256-rxYAqzyGqS+Pp70jD36bvXJHvMshUWbTvmqB+H+3BAM="; }; build-system = [ From f9116f7aeb1d024559e7507a0e01358cb20ebac6 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 05:10:46 +0000 Subject: [PATCH 062/148] piped: 0-unstable-2026-07-06 -> 0-unstable-2026-08-09 --- pkgs/by-name/pi/piped/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/pi/piped/package.nix b/pkgs/by-name/pi/piped/package.nix index e09939daa812..a14333f7e5bf 100644 --- a/pkgs/by-name/pi/piped/package.nix +++ b/pkgs/by-name/pi/piped/package.nix @@ -12,13 +12,13 @@ let in buildNpmPackage rec { pname = "piped"; - version = "0-unstable-2026-07-06"; + version = "0-unstable-2026-08-09"; src = fetchFromGitHub { owner = "TeamPiped"; repo = "piped"; - rev = "335b10d0c02e407b4ba9113e32912b0d783ad455"; - hash = "sha256-vcXmsgDZJ3v/1XNXtU3v9GWlDJBatXK9peTPVQe5De0="; + rev = "5ef4a0d0072753521cb7584075346623b8282402"; + hash = "sha256-8vuanaSjspGkminCO2fTrGhecpoGgTcpEtl7YT2ZDYA="; }; nativeBuildInputs = [ pnpm ]; @@ -39,7 +39,7 @@ buildNpmPackage rec { pnpm ; fetcherVersion = 4; - hash = "sha256-55nG7tfXtxnyfZop+8Wg8rSFOHQi0TjRc0QT16erX1E="; + hash = "sha256-mBEzm+GzF/V3W/6JPOn81YawAMaSTw8THtOUb3qtmvc="; }; passthru.updateScript = nix-update-script { From 545f3439a80a03074cd321cbac0a81c0ab705657 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 05:22:01 +0000 Subject: [PATCH 063/148] vscode-extensions.tekumara.typos-vscode: 0.1.51 -> 0.1.55 --- .../vscode/extensions/tekumara.typos-vscode/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/editors/vscode/extensions/tekumara.typos-vscode/default.nix b/pkgs/applications/editors/vscode/extensions/tekumara.typos-vscode/default.nix index f7aafb38d63a..abda3122d485 100644 --- a/pkgs/applications/editors/vscode/extensions/tekumara.typos-vscode/default.nix +++ b/pkgs/applications/editors/vscode/extensions/tekumara.typos-vscode/default.nix @@ -14,15 +14,15 @@ let { x86_64-linux = { arch = "linux-x64"; - hash = "sha256-jAQJh1JqomJDUFeb2N452ICo0azFelT8vHvEsBqXi8w="; + hash = "sha256-3FE2tZtkDZttZlD7foqt1qgcb1w37mT0/RC30HYEvNA="; }; aarch64-linux = { arch = "linux-arm64"; - hash = "sha256-Z3cRojI4mCCS2t3aLojgImULQOobq5liDwoeHuzKEhY="; + hash = "sha256-xxniWRtMkh3NE9OWJkR9xUARJTBnQkoTRlXrQa95K/k="; }; aarch64-darwin = { arch = "darwin-arm64"; - hash = "sha256-rHgMl71YCs9ea0nFnx+E2U8isL4zQzIvvE9tgxM7IiA="; + hash = "sha256-/pj6HPuqvAYXrBVX/FoOZRDYL5xvdnM+PPM27/5+hxw="; }; } .${system} or (throw "Unsupported system: ${system}"); @@ -34,7 +34,7 @@ vscode-utils.buildVscodeMarketplaceExtension (finalAttrs: { # Please update the corresponding binary (typos-lsp) # when updating this extension. # See pkgs/by-name/ty/typos-lsp/package.nix - version = "0.1.51"; + version = "0.1.55"; inherit (extInfo) hash arch; }; From 38772d18af7d244fb9d661223be6012aca100110 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 05:44:28 +0000 Subject: [PATCH 064/148] namespace-cli: 0.0.551 -> 0.0.556 --- pkgs/by-name/na/namespace-cli/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/na/namespace-cli/package.nix b/pkgs/by-name/na/namespace-cli/package.nix index 0829e6516e15..87c2d6288c16 100644 --- a/pkgs/by-name/na/namespace-cli/package.nix +++ b/pkgs/by-name/na/namespace-cli/package.nix @@ -6,16 +6,16 @@ buildGoModule (finalAttrs: { pname = "namespace-cli"; - version = "0.0.551"; + version = "0.0.556"; src = fetchFromGitHub { owner = "namespacelabs"; repo = "foundation"; tag = "v${finalAttrs.version}"; - hash = "sha256-utBatGjHNLTT+hdYde5NIZmD7c+oS9zFl9dCyrtMx2s="; + hash = "sha256-Vq9aOhQKz2nyjy+zXnaUxGbTrPBmyWeR0n26kReRd3I="; }; - vendorHash = "sha256-1MjkgJvn2u2zcO6lMAHdEbiGVp24D3Gv98GQZxGk27Y="; + vendorHash = "sha256-x4GWkINfOzcLFg7mCHG80Dpz7tkdcEDMj1oPAXM2n8w="; subPackages = [ "cmd/nsc" From ba9a1ef640f9c5afae08095696e6796c82d7f38f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 06:26:26 +0000 Subject: [PATCH 065/148] python3Packages.langgraph-runtime-inmem: 0.31.2 -> 0.32.3 --- .../python-modules/langgraph-runtime-inmem/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/langgraph-runtime-inmem/default.nix b/pkgs/development/python-modules/langgraph-runtime-inmem/default.nix index b71f232b093c..48f64d24b0ca 100644 --- a/pkgs/development/python-modules/langgraph-runtime-inmem/default.nix +++ b/pkgs/development/python-modules/langgraph-runtime-inmem/default.nix @@ -14,7 +14,7 @@ buildPythonPackage (finalAttrs: { pname = "langgraph-runtime-inmem"; - version = "0.31.2"; + version = "0.32.3"; pyproject = true; __structuredAttrs = true; @@ -22,7 +22,7 @@ buildPythonPackage (finalAttrs: { src = fetchPypi { pname = "langgraph_runtime_inmem"; inherit (finalAttrs) version; - hash = "sha256-VE7gXsjV+pXhz85rZnD9mhgwp5QRXvxEjdgF7tjNBAE="; + hash = "sha256-k5ATRuxkds7dDZx3lxGJUL+vUgVFHe8/BaAZqoaaxd4="; }; build-system = [ hatchling ]; From e2603267ecc272def037c969df8d845e0cc56f8a Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 06:32:00 +0000 Subject: [PATCH 066/148] cargo-chef: 0.1.77 -> 0.1.78 --- pkgs/by-name/ca/cargo-chef/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ca/cargo-chef/package.nix b/pkgs/by-name/ca/cargo-chef/package.nix index 9936be8c8032..23f14bdbec5f 100644 --- a/pkgs/by-name/ca/cargo-chef/package.nix +++ b/pkgs/by-name/ca/cargo-chef/package.nix @@ -6,14 +6,14 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "cargo-chef"; - version = "0.1.77"; + version = "0.1.78"; src = fetchCrate { inherit (finalAttrs) pname version; - hash = "sha256-R2on81B11ploV9QwiV5VCvRUCLQWbP21dazNliqkhGA="; + hash = "sha256-gFtmKaznJNlmhlCzpHraEdZfDV5fAwYVphJo29qcftw="; }; - cargoHash = "sha256-iOZjyqoykCwrNsXN7nMF6deuSSlyD6r2+atxPeNmX2c="; + cargoHash = "sha256-m29qIc/TsmropBMFeyEPIWwQgFh9PKqUexFRrbGFHSg="; meta = { description = "Cargo-subcommand to speed up Rust Docker builds using Docker layer caching"; From c599c8fcf12b835d2bc81dce0aa37fb866df13dc Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 07:21:35 +0000 Subject: [PATCH 067/148] python3Packages.pycdlib: 1.16.0 -> 1.20.0 --- pkgs/development/python-modules/pycdlib/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pycdlib/default.nix b/pkgs/development/python-modules/pycdlib/default.nix index 494f8075f0fa..deaccd228afe 100644 --- a/pkgs/development/python-modules/pycdlib/default.nix +++ b/pkgs/development/python-modules/pycdlib/default.nix @@ -8,14 +8,14 @@ buildPythonPackage rec { pname = "pycdlib"; - version = "1.16.0"; + version = "1.20.0"; pyproject = true; src = fetchFromGitHub { owner = "clalancette"; repo = "pycdlib"; tag = "v${version}"; - hash = "sha256-uJ9rMriRCLXpKekG8vGsIw+s0e6wlfX0soAYs6HGe0Y="; + hash = "sha256-4FkB1QkvbZ/GIlBM14jiGbc6m7MA5EIlq1LjeXGVXC0="; }; build-system = [ setuptools ]; From 8ce3147b8bdb6883bad7d7c512da72171c0defbc Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 07:23:07 +0000 Subject: [PATCH 068/148] metapac: 0.10.0 -> 0.10.1 --- pkgs/by-name/me/metapac/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/me/metapac/package.nix b/pkgs/by-name/me/metapac/package.nix index 3d59bf23ceca..69fe834a5b50 100644 --- a/pkgs/by-name/me/metapac/package.nix +++ b/pkgs/by-name/me/metapac/package.nix @@ -8,16 +8,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "metapac"; - version = "0.10.0"; + version = "0.10.1"; src = fetchFromGitHub { owner = "ripytide"; repo = "metapac"; tag = "v${finalAttrs.version}"; - hash = "sha256-zp45oaLRHv6NdBQEpTEtG93gF04V8YayluXO2IV8LkI="; + hash = "sha256-6Nw4CUTx0/KcHHguRrUH6Sa+DZhPJqdsTEeVBb0eEqw="; }; - cargoHash = "sha256-sw9MPnhbQPifkDJoO33RbMBtTsSyRmuiNVyjlteAAcM="; + cargoHash = "sha256-hUd9qWXXErOyJV0mjmkMUb8KPuUhp1XI3GNYwpt1Xow="; nativeInstallCheckInputs = [ versionCheckHook ]; doInstallCheck = true; From 64ce5ecfd1b90c7293478e97a079a943ff6d06b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Rivera?= Date: Tue, 11 Aug 2026 09:29:08 +0200 Subject: [PATCH 069/148] nixos/eternal-terminal: fix systemd service mis-tracks etserver --daemon --- nixos/modules/services/networking/eternal-terminal.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/nixos/modules/services/networking/eternal-terminal.nix b/nixos/modules/services/networking/eternal-terminal.nix index c0647d91c69e..6787520bc8de 100644 --- a/nixos/modules/services/networking/eternal-terminal.nix +++ b/nixos/modules/services/networking/eternal-terminal.nix @@ -71,8 +71,8 @@ in wantedBy = [ "multi-user.target" ]; after = [ "network.target" ]; serviceConfig = { - Type = "forking"; - ExecStart = "${pkgs.eternal-terminal}/bin/etserver --daemon --cfgfile=${pkgs.writeText "et.cfg" '' + Type = "exec"; + ExecStart = "${pkgs.eternal-terminal}/bin/etserver --logtostdout --cfgfile=${pkgs.writeText "et.cfg" '' ; et.cfg : Config file for Eternal Terminal ; @@ -85,7 +85,6 @@ in logsize = ${toString cfg.logSize} ''}"; Restart = "on-failure"; - KillMode = "process"; }; }; }; From 6eb0587f07478721aff3c422253ba66b16e34b1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Rivera?= Date: Tue, 11 Aug 2026 09:36:08 +0200 Subject: [PATCH 070/148] nixos/eternal-terminal: add opt-in telemetry setting --- nixos/modules/services/networking/eternal-terminal.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/nixos/modules/services/networking/eternal-terminal.nix b/nixos/modules/services/networking/eternal-terminal.nix index 6787520bc8de..a8e16728d8ec 100644 --- a/nixos/modules/services/networking/eternal-terminal.nix +++ b/nixos/modules/services/networking/eternal-terminal.nix @@ -53,6 +53,14 @@ in The maximum log size. ''; }; + + telemetry = lib.mkOption { + default = false; + type = lib.types.bool; + description = '' + Collects anonymous usage data and crash reports. + ''; + }; }; }; @@ -83,6 +91,7 @@ in verbose = ${toString cfg.verbosity} silent = ${if cfg.silent then "1" else "0"} logsize = ${toString cfg.logSize} + telemetry = ${lib.boolToString cfg.telemetry} ''}"; Restart = "on-failure"; }; From d72e7973ccec068e49e6a444dcbe1b8eb51fa0e1 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 08:01:54 +0000 Subject: [PATCH 071/148] davinci-resolve: 21.0.3 -> 21.0.4 --- pkgs/by-name/da/davinci-resolve/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/da/davinci-resolve/package.nix b/pkgs/by-name/da/davinci-resolve/package.nix index 0569e5991ab3..fa369141cf79 100644 --- a/pkgs/by-name/da/davinci-resolve/package.nix +++ b/pkgs/by-name/da/davinci-resolve/package.nix @@ -56,7 +56,7 @@ let davinci = ( stdenv.mkDerivation rec { pname = "davinci-resolve${lib.optionalString studioVariant "-studio"}"; - version = "21.0.3"; + version = "21.0.4"; nativeBuildInputs = [ appimageTools.appimage-exec @@ -78,9 +78,9 @@ let outputHashAlgo = "sha256"; outputHash = if studioVariant then - "sha256-pEJF+FQlBngEi5YlKq/pFNCzBiQgqjQrTnfrlKEEi6s=" + "sha256-FwaSnK3DAIRGCz6kiWxE4o0Cd0en2qoyuWCDHat1xHQ=" else - "sha256-3SymaLm3ibyk8yOWcUS9fOfnKEmgVA5XXc5tls27qfo="; + "sha256-oX/abUHhnl1AW3xb53x8l7WIdSKc9e2Ocp0qtGAOv/A="; impureEnvVars = lib.fetchers.proxyImpureEnvVars; From b208dfad3552c66cc39b7e3c34059f03c7d304d2 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 08:41:31 +0000 Subject: [PATCH 072/148] python3Packages.zhong-hong-hvac: 1.0.15 -> 1.0.18 --- pkgs/development/python-modules/zhong-hong-hvac/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/zhong-hong-hvac/default.nix b/pkgs/development/python-modules/zhong-hong-hvac/default.nix index 76f19fbd9491..649c468e2312 100644 --- a/pkgs/development/python-modules/zhong-hong-hvac/default.nix +++ b/pkgs/development/python-modules/zhong-hong-hvac/default.nix @@ -8,14 +8,14 @@ buildPythonPackage rec { pname = "zhong-hong-hvac"; - version = "1.0.15"; + version = "1.0.18"; pyproject = true; src = fetchFromGitHub { owner = "crhan"; repo = "ZhongHongHVAC"; tag = "v${version}"; - hash = "sha256-ZCbo7U6bevnzybVVplSgdFLiuz9+HXiE0r/8sYJ+euQ="; + hash = "sha256-X+zlakXGSmmCBYjdSR6sw1w9p7Mt65IyrgrFK7UkYE8="; }; build-system = [ poetry-core ]; From 067ba0257a84279c73829188a86b01814714b9aa Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 12 Aug 2026 13:41:29 +0200 Subject: [PATCH 073/148] python3Packages.aioghost: 0.4.22 -> 0.4.23 Diff: https://github.com/TryGhost/aioghost/compare/v0.4.22...v0.4.23 Changelog: https://github.com/TryGhost/aioghost/releases/tag/v0.4.23 --- pkgs/development/python-modules/aioghost/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/aioghost/default.nix b/pkgs/development/python-modules/aioghost/default.nix index db86aafd313b..35fdc9bd8020 100644 --- a/pkgs/development/python-modules/aioghost/default.nix +++ b/pkgs/development/python-modules/aioghost/default.nix @@ -13,14 +13,14 @@ buildPythonPackage (finalAttrs: { pname = "aioghost"; - version = "0.4.22"; + version = "0.4.23"; pyproject = true; src = fetchFromGitHub { owner = "TryGhost"; repo = "aioghost"; tag = "v${finalAttrs.version}"; - hash = "sha256-UGRi+MoKkh/muxwubMG4DySTpK/lqmGCloWznFvN2pc="; + hash = "sha256-bgWBZvkHkUE1o2a6L6vC1YK41Da0SayPhTLJeTbnYxk="; }; build-system = [ hatchling ]; From c503419d3e02682403256f5a1d71cd553449f82d Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 12 Aug 2026 13:43:58 +0200 Subject: [PATCH 074/148] python3Packages.aiopnsense: 1.1.5 -> 1.1.7 Diff: https://github.com/Snuffy2/aiopnsense/compare/v1.1.5...v1.1.7 Changelog: https://github.com/Snuffy2/aiopnsense/releases/tag/v1.1.7 --- pkgs/development/python-modules/aiopnsense/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/aiopnsense/default.nix b/pkgs/development/python-modules/aiopnsense/default.nix index 20814cab7208..310cb1a54d7f 100644 --- a/pkgs/development/python-modules/aiopnsense/default.nix +++ b/pkgs/development/python-modules/aiopnsense/default.nix @@ -15,7 +15,7 @@ buildPythonPackage (finalAttrs: { pname = "aiopnsense"; - version = "1.1.5"; + version = "1.1.7"; pyproject = true; disabled = pythonOlder "3.14"; @@ -24,7 +24,7 @@ buildPythonPackage (finalAttrs: { owner = "Snuffy2"; repo = "aiopnsense"; tag = "v${finalAttrs.version}"; - hash = "sha256-amXqUp77L72fv6xxz4Nm7fMj4xxWaYrsy1EPxccKm+Q="; + hash = "sha256-xVbbbhxQMNeK56d4k274Z8+X8ggScJjYKH9V4CfwrRk="; }; build-system = [ setuptools ]; From f26f0a9f6615b36c50141cbb33705be1bdac364c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 11:57:46 +0000 Subject: [PATCH 075/148] libretro-shaders-slang: 0-unstable-2026-08-03 -> 0-unstable-2026-08-08 --- pkgs/by-name/li/libretro-shaders-slang/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/li/libretro-shaders-slang/package.nix b/pkgs/by-name/li/libretro-shaders-slang/package.nix index ba57b54b7425..9699ce15d038 100644 --- a/pkgs/by-name/li/libretro-shaders-slang/package.nix +++ b/pkgs/by-name/li/libretro-shaders-slang/package.nix @@ -7,13 +7,13 @@ stdenvNoCC.mkDerivation { pname = "libretro-shaders-slang"; - version = "0-unstable-2026-08-03"; + version = "0-unstable-2026-08-08"; src = fetchFromGitHub { owner = "libretro"; repo = "slang-shaders"; - rev = "620114039b453ebb2e3de1a5846b0d9b05676bf4"; - hash = "sha256-ox5Mo9ShWAVQDT6tboA72Mugny3aCQaN1QLpTs4bR6Y="; + rev = "a7f04a0698908015c6f9e3a3f446b3d17083269c"; + hash = "sha256-Zz5EqEyGZwMZcFgowUpW2b3/cRcmOHL5R/Z78sg4dm8="; }; dontConfigure = true; From 2f27321178a6f8a936d830273580c13e0e6cb02c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 12:32:44 +0000 Subject: [PATCH 076/148] qt6Packages.fcitx5-qt: 5.1.13 -> 5.1.14 --- pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix index 8502124a24d0..9b503d054571 100644 --- a/pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix +++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix @@ -16,13 +16,13 @@ let in stdenv.mkDerivation rec { pname = "fcitx5-qt${majorVersion}"; - version = "5.1.13"; + version = "5.1.14"; src = fetchFromGitHub { owner = "fcitx"; repo = "fcitx5-qt"; rev = version; - hash = "sha256-CrrQQPtWQwE6eZOJB+uLVUjPJMKW/sz/tij41dyEe0U="; + hash = "sha256-fyqejCb6c6VuPb44UPQDLrdZ93mHTxlX29jCN6KcZ5I="; }; postPatch = '' From 7cd9eeb247c6a5c6445273e5b7095d1a5c521c24 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 12:58:13 +0000 Subject: [PATCH 077/148] vscode-extensions.danielsanmedium.dscodegpt: 3.24.39 -> 3.24.43 --- pkgs/applications/editors/vscode/extensions/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix index 85781847e374..2271dddaa951 100644 --- a/pkgs/applications/editors/vscode/extensions/default.nix +++ b/pkgs/applications/editors/vscode/extensions/default.nix @@ -1190,8 +1190,8 @@ let mktplcRef = { publisher = "DanielSanMedium"; name = "dscodegpt"; - version = "3.24.39"; - hash = "sha256-r1XkER09s+38uCbUxK9MM5bHRNp3UnMj6VJCHUMZM1Q="; + version = "3.24.43"; + hash = "sha256-Y3pCg0qauVu4K6qz610QGRizyodnRpDigGSSIn6m6gw="; }; meta = { changelog = "https://marketplace.visualstudio.com/items/DanielSanMedium.dscodegpt/changelog"; From 0cc8218d8ff233312bb5972b98e849f1b4469536 Mon Sep 17 00:00:00 2001 From: yaaaarn Date: Wed, 12 Aug 2026 14:07:51 +0100 Subject: [PATCH 078/148] rmatrix: init at 0.3.3 --- pkgs/by-name/rm/rmatrix/package.nix | 33 +++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 pkgs/by-name/rm/rmatrix/package.nix diff --git a/pkgs/by-name/rm/rmatrix/package.nix b/pkgs/by-name/rm/rmatrix/package.nix new file mode 100644 index 000000000000..d5602e9c3cbc --- /dev/null +++ b/pkgs/by-name/rm/rmatrix/package.nix @@ -0,0 +1,33 @@ +{ + rustPlatform, + fetchFromGitHub, + lib, + versionCheckHook, +}: +rustPlatform.buildRustPackage (finalAttrs: { + pname = "rmatrix"; + version = "0.3.3"; + + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "Tripstack-Corp"; + repo = "rmatrix"; + tag = "v${finalAttrs.version}"; + hash = "sha256-sViNj7paMY/3x9u6dKHKf+XQRgv+EYsYsooZSTAwrA4="; + }; + + cargoHash = "sha256-em16fNb4BZeTsZuaT5Bu/u2cc75iSjOcSDYU0qazefM="; + + doInstallCheck = true; + nativeInstallCheckInputs = [ versionCheckHook ]; + + meta = { + description = "Digital rain for modern terminals"; + maintainers = with lib.maintainers; [ yarn ]; + platforms = lib.platforms.all; + license = lib.licenses.mit; + homepage = "https://github.com/Tripstack-Corp/rmatrix"; + mainProgram = "rmatrix"; + }; +}) From a0bf5ea7b7d39933cfb699f9242436ac88324d07 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 13:41:11 +0000 Subject: [PATCH 079/148] terraform-providers.splunk-terraform_signalfx: 9.33.0 -> 9.34.0 --- .../networking/cluster/terraform-providers/providers.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json index 3ef1c691bc9b..267921d3061f 100644 --- a/pkgs/applications/networking/cluster/terraform-providers/providers.json +++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json @@ -1247,13 +1247,13 @@ "vendorHash": "sha256-gva4QLCNANCaDSjv84N2oFv9VlsU8oUZOUTx6nTRIcA=" }, "splunk-terraform_signalfx": { - "hash": "sha256-xdB2VAacBGFAeVd60Zy6MWSmx6BFJ7ciZKSTXYdRZY0=", + "hash": "sha256-KoPLEVzR/MtMTrufqvxrOuVsfjCUXQ9UMbqjosAy2oc=", "homepage": "https://registry.terraform.io/providers/splunk-terraform/signalfx", "owner": "splunk-terraform", "repo": "terraform-provider-signalfx", - "rev": "v9.33.0", + "rev": "v9.34.0", "spdx": "MPL-2.0", - "vendorHash": "sha256-m7Op/K3Xo9nKgVg9bTHmpmPiFpCB6Ek/kgj76P+ViGQ=" + "vendorHash": "sha256-mNEzE2eACy63BGoFOamG52JD8mvC7okhSN9hMuesTlg=" }, "spotinst_spotinst": { "hash": "sha256-pkYrrtsbIHSyy/TjoHBegrwwwIi6Vn6aT4Ic3C/QgyY=", From 3794e4929eb6bd2fba0534abec74295cd522859c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 14:03:33 +0000 Subject: [PATCH 080/148] keepassxc-go: 1.6.0 -> 1.7.0 --- pkgs/by-name/ke/keepassxc-go/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ke/keepassxc-go/package.nix b/pkgs/by-name/ke/keepassxc-go/package.nix index e39c4d894dd9..11356e8dcbfa 100644 --- a/pkgs/by-name/ke/keepassxc-go/package.nix +++ b/pkgs/by-name/ke/keepassxc-go/package.nix @@ -8,18 +8,18 @@ buildGoModule (finalAttrs: { pname = "keepassxc-go"; - version = "1.6.0"; + version = "1.7.0"; src = fetchFromGitHub { owner = "MarkusFreitag"; repo = "keepassxc-go"; rev = "v${finalAttrs.version}"; - hash = "sha256-Z4SbPxhs+umsUlby7idxofCjP+uLPvp/2oUCpnAS2/A="; + hash = "sha256-0VQw12o4XTzKOz+45sHIKSsIjBxDcdxtgYUItFznsO4="; }; nativeBuildInputs = [ installShellFiles ]; - vendorHash = "sha256-+cgf2FxpbLu+Yuhk6T0ZBnDH7We2DVu65xFaruk9I0E="; + vendorHash = "sha256-p7Lj2x0+F3kmAMi+2gtBYkg1w8jmgWm3kgYAoIagERs="; checkFlags = [ # Test tries to monkey-patch the stdlib, fails with permission denied error. From 6560e0cb793349caf91c3ea7f71e877171276ee7 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 14:11:50 +0000 Subject: [PATCH 081/148] terraform-providers.sysdiglabs_sysdig: 3.9.0 -> 3.9.1 --- .../networking/cluster/terraform-providers/providers.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json index 3ef1c691bc9b..5eb8d720939c 100644 --- a/pkgs/applications/networking/cluster/terraform-providers/providers.json +++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json @@ -1283,11 +1283,11 @@ "vendorHash": "sha256-nbiLH+J051XxTx+z8xGrp/DPYB7g9S4clFSWcZUKnAg=" }, "sysdiglabs_sysdig": { - "hash": "sha256-VeIgHhCHyNgAcv2NIBAWCJIwGHE3nqYeCxGd4VSUymU=", + "hash": "sha256-MfwzmTzikzZAg0U7W5Dmjww6Oadnr4Oq+uIQSZaRHEo=", "homepage": "https://registry.terraform.io/providers/sysdiglabs/sysdig", "owner": "sysdiglabs", "repo": "terraform-provider-sysdig", - "rev": "v3.9.0", + "rev": "v3.9.1", "spdx": "MPL-2.0", "vendorHash": "sha256-HjrB7C0KaLJz9NVLfZdq5EZbNbF9lJPxSkQwnWUF978=" }, From 0d9f8e4f09512879350acada784fae28b2ef0d49 Mon Sep 17 00:00:00 2001 From: adisbladis Date: Mon, 20 Jul 2026 15:38:29 +0000 Subject: [PATCH 082/148] lib.fileset: Optimise _unionTrees This function runs once per directory node per union during lazy tree evaluation. This makes it one of the hottest paths in lib.fileset for large trees. It was measuared at ~9% of _total evaluation_ time in a very large monorepo. This change is a 2-in-1: - Return singleton lists directly to avoid rebuilding subtrees - Use foldl instead of findFirstIndex This is a hot path so the indexing arithmetic adds up. --- lib/fileset/internal.nix | 39 ++++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/lib/fileset/internal.nix b/lib/fileset/internal.nix index 675027c1fee0..87ade9f1b80b 100644 --- a/lib/fileset/internal.nix +++ b/lib/fileset/internal.nix @@ -802,21 +802,34 @@ rec { */ _unionTrees = trees: - let - stringIndex = findFirstIndex isString null trees; - withoutNull = filter (tree: tree != null) trees; - in - if stringIndex != null then + if length trees == 1 then + # The union of a single tree simply returns the first element + head trees + else + let + # Like lib.findFirstIndex but without indexing. + # This is a hot path so the indexing arithmetic adds up. + firstStr = foldl' ( + found: tree: + if found != null then + found + else if isString tree then + tree + else + found # null + ) null trees; + nonNulls = filter (tree: tree != null) trees; + in # If there's a string, it's always a fully included tree (dir or file), # no need to look at other elements - elemAt trees stringIndex - else if withoutNull == [ ] then - # If all trees are null, then the resulting tree is also null - null - else - # The non-null elements have to be attribute sets representing partial trees - # We need to recurse into those - zipAttrsWith (name: _unionTrees) withoutNull; + if firstStr != null then + firstStr + else if nonNulls == [ ] then + null + else + # The non-null elements have to be attribute sets representing partial trees + # We need to recurse into those + zipAttrsWith (name: _unionTrees) nonNulls; /** Computes the intersection of two filesets. From c55c59d46c89da53a95e5d159e87adc08f8589dc Mon Sep 17 00:00:00 2001 From: adisbladis Date: Mon, 20 Jul 2026 15:38:29 +0000 Subject: [PATCH 083/148] lib.fileset: Don't recurse into files in _normaliseTreeFilter _normaliseTreeFilter strictly walks the entire file set tree on every toSource call. File entries (null or a file type string) are already normalised, so dispatch on the subtree inside the mapAttrs closure instead of making a recursive call that immediately returns its argument. This also avoids allocating an unused `path + "/${name}"` argument thunk for every file. --- lib/fileset/internal.nix | 45 +++++++++++++++++++++++++--------------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/lib/fileset/internal.nix b/lib/fileset/internal.nix index 87ade9f1b80b..8fdef50088b2 100644 --- a/lib/fileset/internal.nix +++ b/lib/fileset/internal.nix @@ -350,23 +350,34 @@ rec { */ _normaliseTreeFilter = path: tree: - if tree == "directory" || isAttrs tree then - let - entries = _directoryEntries path tree; - normalisedSubtrees = mapAttrs (name: _normaliseTreeFilter (path + "/${name}")) entries; - subtreeValues = attrValues normalisedSubtrees; - in - # This triggers either when all files in a directory are filtered out - # Or when the directory doesn't contain any files at all - if all isNull subtreeValues then - null - # Triggers when we have the same as a `readDir path`, so we can turn it back into an equivalent "directory". - else if all isString subtreeValues then - "directory" - else - normalisedSubtrees - else - tree; + let + # Recurses into a tree that's already known to be a directory (either a "directory" or an attrset). + # + # Only directories need to be recursed into: + # Files are either null (excluded) or a file type string (included), which are already normalised. + # + # Checking this in the caller instead of here also avoids the thunk allocation for the path concatenation below. + recurse = + path: tree: + let + entries = _directoryEntries path tree; + normalisedSubtrees = mapAttrs ( + name: subtree: + if subtree == "directory" || isAttrs subtree then recurse (path + "/${name}") subtree else subtree + ) entries; + subtreeValues = attrValues normalisedSubtrees; + in + # This triggers either when all files in a directory are filtered out + # Or when the directory doesn't contain any files at all + if all isNull subtreeValues then + null + # Triggers when we have the same as a `readDir path`, so we can turn it back into an equivalent "directory". + else if all isString subtreeValues then + "directory" + else + normalisedSubtrees; + in + if tree == "directory" || isAttrs tree then recurse path tree else tree; /** A minimal normalisation of a filesetTree, intended for pretty-printing: From b93a86f98378bc35c16bd0514ee8c3b635bff956 Mon Sep 17 00:00:00 2001 From: adisbladis Date: Mon, 20 Jul 2026 15:38:29 +0000 Subject: [PATCH 084/148] lib.fileset: Check the common case first in the toSource filter The source filter runs on every path underneath the base directory, but only on the few paths above it. Reorder the prefix checks so the dominant below-the-base case does a single substring + comparison instead of two, with an explicit branch for the path being the base itself (which the previous first check also covered). --- lib/fileset/internal.nix | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/lib/fileset/internal.nix b/lib/fileset/internal.nix index 8fdef50088b2..195d864aecf6 100644 --- a/lib/fileset/internal.nix +++ b/lib/fileset/internal.nix @@ -580,25 +580,34 @@ rec { pathSlash = path + "/"; in ( + # Same as `hasPrefix baseString pathSlash`, but more efficient. + # The path is either the base itself or underneath it, + # but only on the few paths above it, so its checked first. + # With base /foo/bar this matches /foo/bar and /foo/bar/baz + # hasPrefix "/foo/bar/" "/foo/bar/baz/" + if substring 0 baseLength pathSlash == baseString then + if stringLength pathSlash == baseLength then + # The path is the base directory itself, which is always included + true + else + # Same as `removePrefix baseString path`, but more efficient. + # From the above code we know that hasPrefix baseString pathSlash holds, so this is safe. + # We don't use pathSlash here because we only needed the trailing slash for the prefix matching. + # With base /foo and path /foo/bar/baz this gives + # inTree (split "/" (removePrefix "/foo/" "/foo/bar/baz")) + # == inTree (split "/" "bar/baz") + # == inTree [ "bar" "baz" ] + inTree (split "/" (substring baseLength (-1) path)) # Same as `hasPrefix pathSlash baseString`, but more efficient. + # The path is a proper ancestor of the base, which needs to be included for the base to be reachable: # With base /foo/bar we need to include /foo: # hasPrefix "/foo/" "/foo/bar/" - if substring 0 (stringLength pathSlash) baseString == pathSlash then + else if substring 0 (stringLength pathSlash) baseString == pathSlash then true - # Same as `! hasPrefix baseString pathSlash`, but more efficient. - # With base /foo/bar we need to exclude /baz - # ! hasPrefix "/baz/" "/foo/bar/" - else if substring 0 baseLength pathSlash != baseString then - false else - # Same as `removePrefix baseString path`, but more efficient. - # From the above code we know that hasPrefix baseString pathSlash holds, so this is safe. - # We don't use pathSlash here because we only needed the trailing slash for the prefix matching. - # With base /foo and path /foo/bar/baz this gives - # inTree (split "/" (removePrefix "/foo/" "/foo/bar/baz")) - # == inTree (split "/" "bar/baz") - # == inTree [ "bar" "baz" ] - inTree (split "/" (substring baseLength (-1) path)) + # The path is unrelated to the base, so nothing from it is included + # With base /foo/bar this matches e.g. /baz + false ) # This is a way have an additional check in case the above is true without any significant performance cost && ( From f75e26b9722e6363877deebd711e8a0e05c8135d Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 14:33:11 +0000 Subject: [PATCH 085/148] chirpstack-mqtt-forwarder: 4.6.0 -> 4.6.1 --- pkgs/by-name/ch/chirpstack-mqtt-forwarder/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ch/chirpstack-mqtt-forwarder/package.nix b/pkgs/by-name/ch/chirpstack-mqtt-forwarder/package.nix index 93dfb45c5c24..020d80780142 100644 --- a/pkgs/by-name/ch/chirpstack-mqtt-forwarder/package.nix +++ b/pkgs/by-name/ch/chirpstack-mqtt-forwarder/package.nix @@ -9,16 +9,16 @@ }: rustPlatform.buildRustPackage rec { pname = "chirpstack-mqtt-forwarder"; - version = "4.6.0"; + version = "4.6.1"; src = fetchFromGitHub { owner = "chirpstack"; repo = "chirpstack-mqtt-forwarder"; rev = "v${version}"; - hash = "sha256-frEwQrGfB1J7ZY5jSkmgAyyCJwWUyu29QuZqMWlOPSk="; + hash = "sha256-xt94DxiDkyS0o9sSV6ye1vRi08ey4rmh1acpNI38fUE="; }; - cargoHash = "sha256-5/8f5eSLfCu8fOfT+jTEfJj+fSB6rJt34C6eJwyFIfo="; + cargoHash = "sha256-qGN6AhPV6EOEo5xdwlHCENUmKzWhquOXCvXP7X0Y2WE="; nativeBuildInputs = [ protobuf ]; From 35351a664ce448390f6b84dd27540a71c4e81005 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 14:48:51 +0000 Subject: [PATCH 086/148] vscode-extensions.databricks.databricks: 2.12.4 -> 2.13.0 --- pkgs/applications/editors/vscode/extensions/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix index 85781847e374..9f3b5c12b448 100644 --- a/pkgs/applications/editors/vscode/extensions/default.nix +++ b/pkgs/applications/editors/vscode/extensions/default.nix @@ -1242,8 +1242,8 @@ let mktplcRef = { name = "databricks"; publisher = "databricks"; - version = "2.12.4"; - hash = "sha256-29xG0/AhBhidM8Hd7vHUWxESCDt8MwACIkBpmfvhD2Q="; + version = "2.13.0"; + hash = "sha256-4Fa1UABo7JUO7+IECjsYEq9zyscHTGUlrUCa3aBdhoI="; }; meta = { changelog = "https://marketplace.visualstudio.com/items/databricks.databricks/changelog"; From 670c8671c46bd34bedac5be0ac1c50692275f9cc Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 14:48:59 +0000 Subject: [PATCH 087/148] python3Packages.hishel: 1.3.0 -> 1.3.1 --- pkgs/development/python-modules/hishel/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/hishel/default.nix b/pkgs/development/python-modules/hishel/default.nix index 32acc70f5075..95c5ae5558e6 100644 --- a/pkgs/development/python-modules/hishel/default.nix +++ b/pkgs/development/python-modules/hishel/default.nix @@ -22,14 +22,14 @@ buildPythonPackage rec { pname = "hishel"; - version = "1.3.0"; + version = "1.3.1"; pyproject = true; src = fetchFromGitHub { owner = "karpetrosyan"; repo = "hishel"; tag = version; - hash = "sha256-aD6sHMM7dzy6n1EJN/+K+7H5nu5ohGfru224pSAf1Nc="; + hash = "sha256-KVfbWhGpbLGzK3fQOuT+KtBi13z5ZZBP8NOsIIfObMc="; }; postPatch = '' From fcd985026a1a2d74b09d35607ca1305f1740ba8f Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 12 Aug 2026 16:51:16 +0200 Subject: [PATCH 088/148] python3Packages.cyclonedx-python-lib: 11.11.1 -> 11.11.2 Diff: https://github.com/CycloneDX/cyclonedx-python-lib/compare/v11.11.1...v11.11.2 Changelog: https://github.com/CycloneDX/cyclonedx-python-lib/releases/tag/v11.11.2 --- .../python-modules/cyclonedx-python-lib/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/cyclonedx-python-lib/default.nix b/pkgs/development/python-modules/cyclonedx-python-lib/default.nix index 7d8b3a7c96c8..4b73854c0d7b 100644 --- a/pkgs/development/python-modules/cyclonedx-python-lib/default.nix +++ b/pkgs/development/python-modules/cyclonedx-python-lib/default.nix @@ -22,14 +22,14 @@ buildPythonPackage (finalAttrs: { pname = "cyclonedx-python-lib"; - version = "11.11.1"; + version = "11.11.2"; pyproject = true; src = fetchFromGitHub { owner = "CycloneDX"; repo = "cyclonedx-python-lib"; tag = "v${finalAttrs.version}"; - hash = "sha256-y9sAbo0O1JIna6PODpvS3Js6UF1nKUFc4s8jx8UqLwY="; + hash = "sha256-VszqYukH8MGt3BUSc0ohhuQAc2t3NXGkvEm8rcuTJac="; }; pythonRelaxDeps = [ "py-serializable" ]; From f4c9045c9bdf53dd896f73526a2bb1a7048b82d9 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 12 Aug 2026 16:52:06 +0200 Subject: [PATCH 089/148] nerva: 1.64.2 -> 1.64.3 Diff: https://github.com/praetorian-inc/nerva/compare/v1.64.2...v1.64.3 Changelog: https://github.com/praetorian-inc/nerva/blob/v1.64.3/CHANGELOG.md --- pkgs/by-name/ne/nerva/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ne/nerva/package.nix b/pkgs/by-name/ne/nerva/package.nix index 6062dd703e7e..25fd5eac38b4 100644 --- a/pkgs/by-name/ne/nerva/package.nix +++ b/pkgs/by-name/ne/nerva/package.nix @@ -6,13 +6,13 @@ buildGoModule (finalAttrs: { pname = "nerva"; - version = "1.64.2"; + version = "1.64.3"; src = fetchFromGitHub { owner = "praetorian-inc"; repo = "nerva"; tag = "v${finalAttrs.version}"; - hash = "sha256-vZ03tcYvo+0s/ix+TCLUm9xAyi22mYXYm/15IYMomtE="; + hash = "sha256-LqJrrZg/UyMqDYuESHqHR0jOAe7gmGKJToNUg/ABOcc="; }; vendorHash = "sha256-Z0MSD+1/1VzrJ+pz5x0JvxrCxtJe59ckaTqHK/+TVN8="; From 6432c6358d9441749c0567098be32236b4a4773a Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 15:02:52 +0000 Subject: [PATCH 090/148] croncpp: 2023.03.30 -> 2026.08.12 --- pkgs/by-name/cr/croncpp/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/cr/croncpp/package.nix b/pkgs/by-name/cr/croncpp/package.nix index 5f41addad414..981e8edc6601 100644 --- a/pkgs/by-name/cr/croncpp/package.nix +++ b/pkgs/by-name/cr/croncpp/package.nix @@ -7,13 +7,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "croncpp"; - version = "2023.03.30"; + version = "2026.08.12"; src = fetchFromGitHub { owner = "mariusbancila"; repo = "croncpp"; tag = "v${finalAttrs.version}"; - hash = "sha256-SBjNzy54OGEMemBp+c1gaH90Dc7ySL915z4E64cBWTI="; + hash = "sha256-qdl9494mpmozt6Rmd20MUeGeILWmNGHaxDgW2JnlUvs="; }; nativeBuildInputs = [ cmake ]; From 1fd7dbec4ea0efbc52c3ab5ef7829f73c1b9178c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 15:03:19 +0000 Subject: [PATCH 091/148] python3Packages.django-tenants: 3.12.0 -> 3.14.0 --- pkgs/development/python-modules/django-tenants/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/django-tenants/default.nix b/pkgs/development/python-modules/django-tenants/default.nix index 345e01ead7cd..ee702b8bbdb4 100644 --- a/pkgs/development/python-modules/django-tenants/default.nix +++ b/pkgs/development/python-modules/django-tenants/default.nix @@ -9,14 +9,14 @@ buildPythonPackage rec { pname = "django-tenants"; - version = "3.12.0"; + version = "3.14.0"; pyproject = true; src = fetchFromGitHub { owner = "django-tenants"; repo = "django-tenants"; tag = "v${version}"; - hash = "sha256-0HFkLG2GDECiaG9OKYR4V1q5oy0vzmthlKoiSM5IIFc="; + hash = "sha256-3A4ClGinyN1t5bt441BVZncpw9Ie7b81M/5Tfsbz4kw="; }; build-system = [ setuptools ]; From 0cd0ea77c40b42599cea4431fc5dbacd696a56cb Mon Sep 17 00:00:00 2001 From: SandaruKasa Date: Wed, 12 Aug 2026 18:13:05 +0300 Subject: [PATCH 092/148] ncdu: meta: changelog: point to a specific release --- pkgs/by-name/nc/ncdu/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/nc/ncdu/package.nix b/pkgs/by-name/nc/ncdu/package.nix index a6851492c9d5..a5e05e5ee732 100644 --- a/pkgs/by-name/nc/ncdu/package.nix +++ b/pkgs/by-name/nc/ncdu/package.nix @@ -69,7 +69,7 @@ stdenv.mkDerivation (finalAttrs: { meta = { homepage = "https://github.com/BratishkaErik/ncdu"; description = "Disk usage analyzer with an ncurses interface"; - changelog = "https://github.com/BratishkaErik/ncdu/releases"; + changelog = "https://github.com/BratishkaErik/ncdu/releases/${finalAttrs.src.tag}"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ pSub From 28afa61defc1c1da754acc9ec3a890ccf23d00b9 Mon Sep 17 00:00:00 2001 From: SandaruKasa Date: Wed, 12 Aug 2026 18:13:05 +0300 Subject: [PATCH 093/148] nix-direnv: meta: add changelog --- pkgs/by-name/ni/nix-direnv/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/ni/nix-direnv/package.nix b/pkgs/by-name/ni/nix-direnv/package.nix index 98861db15dda..d460b11e3eb0 100644 --- a/pkgs/by-name/ni/nix-direnv/package.nix +++ b/pkgs/by-name/ni/nix-direnv/package.nix @@ -68,6 +68,7 @@ resholve.mkDerivation (finalAttrs: { meta = { description = "Fast, persistent use_nix implementation for direnv"; homepage = "https://github.com/nix-community/nix-direnv"; + changelog = "https://github.com/nix-community/nix-direnv/releases/${finalAttrs.version}"; license = lib.licenses.mit; platforms = lib.platforms.unix; maintainers = with lib.maintainers; [ From 3fadb70abfcce2dfdb011bc4e15f9d7c25ec5202 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Wed, 12 Aug 2026 08:12:36 +0000 Subject: [PATCH 094/148] python3Packages.wandb: 0.28.1 -> 0.28.2 Diff: https://github.com/wandb/wandb/compare/v0.28.1...v0.28.2 Changelog: https://github.com/wandb/wandb/blob/v0.28.2/CHANGELOG.md --- .../python-modules/wandb/default.nix | 40 ++++++++++++------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/pkgs/development/python-modules/wandb/default.nix b/pkgs/development/python-modules/wandb/default.nix index cc5467662ba6..4a9e2274a95b 100644 --- a/pkgs/development/python-modules/wandb/default.nix +++ b/pkgs/development/python-modules/wandb/default.nix @@ -13,6 +13,9 @@ ## wandb-xpu rustPlatform, + ## parquet-rust-wrapper + cacert, + ## wandb buildPythonPackage, @@ -21,6 +24,7 @@ # dependencies click, + opentelemetry-api, packaging, platformdirs, protobuf, @@ -76,22 +80,22 @@ }: let - version = "0.28.1"; + version = "0.28.2"; src = fetchFromGitHub { owner = "wandb"; repo = "wandb"; tag = "v${version}"; - hash = "sha256-yXsSHyPOh3QXRRkTL4Rj8lLuFjp1LIKfPiacy4+obAk="; + hash = "sha256-kmgLHb+1NjStqcjMOYPPU2v2js4m8O3b2OpM6BiSbXI="; }; wandb-xpu = rustPlatform.buildRustPackage { pname = "wandb-xpu"; - version = "0.7.0"; + version = "0.7.1"; inherit src; sourceRoot = "${src.name}/xpu"; - cargoHash = "sha256-vB0LZjfnf//U1BXCzvaQBjlXLlGx/4g+emSZWcS+oGU="; + cargoHash = "sha256-YKuXtttLam4NmJsJPQH8sFbj1Qs5Gc2uoFJEvTYxkew="; checkFlags = [ # fails in sandbox @@ -116,12 +120,19 @@ let parquet-rust-wrapper = rustPlatform.buildRustPackage { pname = "arrow-rs-wrapper"; - version = "0.1.0"; + version = "0.1.1"; inherit src; sourceRoot = "${src.name}/parquet-rust-wrapper"; - cargoHash = "sha256-BkeSRbZoehYGHj15KcInugRBvOLXJlh1NqTHhRnNOK8="; + cargoHash = "sha256-F68Rvfc04eI/y0Z5tGtQn4zEmqLuMZGZiKEh2HMFi/g="; + + nativeCheckInputs = [ + # The `httpfile` tests serve a local HTTP server, but reqwest's rustls backend refuses to + # build a client at all without system CA certificates. + # Its setup hook exports `SSL_CERT_FILE`. + cacert + ]; # The original build script renames the library: # https://github.com/wandb/wandb/blob/v0.26.0/parquet-rust-wrapper/build.sh#L37-L68 @@ -139,15 +150,8 @@ let sourceRoot = "${src.name}/core"; postPatch = - # Relax the Go toolchain requirement; nixpkgs ships 1.26.2. - '' - substituteInPlace go.mod \ - --replace-fail \ - "go 1.26.4" \ - "go 1.26.2" - '' # hardcode the `wandb-xpu` binary path. - + '' + '' substituteInPlace internal/monitor/xpuresourcemanager.go \ --replace-fail \ 'cmdPath, err := getXPUCmdPath()' \ @@ -234,6 +238,7 @@ buildPythonPackage (finalAttrs: { dependencies = [ click + opentelemetry-api packaging platformdirs protobuf @@ -322,6 +327,12 @@ buildPythonPackage (finalAttrs: { ]; disabledTests = [ + # The conftest mocks out `read_many_from_queue`, which is the agent loop's only throttle. + # It then spins while the child runs, and the `MagicMock` API retains every heartbeat + # call (~270MiB/s), OOM-killing the pytest worker. + "test_agent_config_whitespace_cli_agent" + "test_agent_subprocess_with_import_readline" + # Probably failing because of lack of internet access # AttributeError: module 'wandb.sdk.launch.registry' has no attribute 'azure_container_registry'. Did you mean: 'elastic_container_registry'? "test_registry_from_uri" @@ -392,6 +403,7 @@ buildPythonPackage (finalAttrs: { "test_log_media_prefixed_with_multiple_slashes" "test_log_media_saves_to_run_directory" "test_log_media_with_path_traversal" + "test_table_logging_mode_incremental_warns_after_100_increments" # HandleAbandonedError / SystemExit when run in sandbox "test_makedirs_raises_oserror__uses_temp_dir" From 411696c4aaaed8f4488624fb82ccdbeb4c18e9b5 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 15:40:53 +0000 Subject: [PATCH 095/148] rtorrent: 0.16.19 -> 0.16.20 --- pkgs/by-name/li/libtorrent-rakshasa/package.nix | 4 ++-- pkgs/by-name/rt/rtorrent/package.nix | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/li/libtorrent-rakshasa/package.nix b/pkgs/by-name/li/libtorrent-rakshasa/package.nix index 72edce1f6f01..d2e05ad6560a 100644 --- a/pkgs/by-name/li/libtorrent-rakshasa/package.nix +++ b/pkgs/by-name/li/libtorrent-rakshasa/package.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "libtorrent-rakshasa"; - version = "0.16.19"; + version = "0.16.20"; __structuredAttrs = true; @@ -22,7 +22,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "rakshasa"; repo = "libtorrent"; tag = "v${finalAttrs.version}"; - hash = "sha256-D+RPDp8r2ZKhNpiLKpm269h/5MBN+QhHf/qeXEzM92M="; + hash = "sha256-PEldSXGOFCOa1zo/9wT3efUvf3ZZ9gqZLqioXOdFnt0="; }; strictDeps = true; diff --git a/pkgs/by-name/rt/rtorrent/package.nix b/pkgs/by-name/rt/rtorrent/package.nix index fddee3463204..b8673174374a 100644 --- a/pkgs/by-name/rt/rtorrent/package.nix +++ b/pkgs/by-name/rt/rtorrent/package.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "rtorrent"; - version = "0.16.19"; + version = "0.16.20"; __structuredAttrs = true; @@ -31,7 +31,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "rakshasa"; repo = "rtorrent"; tag = "v${finalAttrs.version}"; - hash = "sha256-oMErraDUyCiuRxFZ5CoBvoW9vXHG+eLHnAKzm6kWt2Y="; + hash = "sha256-fwMyzRBMO45djYXGAE8RcadM/lMJ5m9yi9DEomzO1Es="; }; outputs = [ From e9f74047295afcdec2f0f33c65b7012c289197bd Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Wed, 29 Jul 2026 14:23:49 +0000 Subject: [PATCH 096/148] python3Packages.datafusion: 53.0.0 -> 54.0.0 Diff: https://github.com/apache/datafusion-python/compare/53.0.0...54.0.0 Changelog: https://github.com/apache/datafusion-python/blob/54.0.0/CHANGELOG.md --- .../development/python-modules/datafusion/default.nix | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/datafusion/default.nix b/pkgs/development/python-modules/datafusion/default.nix index e45818b9c6fa..1fc347993392 100644 --- a/pkgs/development/python-modules/datafusion/default.nix +++ b/pkgs/development/python-modules/datafusion/default.nix @@ -4,6 +4,7 @@ buildPythonPackage, fetchFromGitHub, rustPlatform, + pythonOlder, # nativeBuildInputs protoc, @@ -12,6 +13,7 @@ protobuf, # dependencies + cloudpickle, pyarrow, typing-extensions, @@ -26,7 +28,7 @@ buildPythonPackage (finalAttrs: { pname = "datafusion"; # WARNING: Ensure rerun-sdk is compatible with this version of datafusion - version = "53.0.0"; + version = "54.0.0"; pyproject = true; __structuredAttrs = true; @@ -37,12 +39,12 @@ buildPythonPackage (finalAttrs: { tag = finalAttrs.version; # Fetch arrow-testing and parquet-testing (tests assets) fetchSubmodules = true; - hash = "sha256-3plgAJuh2rrnvzkQVy3gUgEoHHT4FSjDp5DZx1keD+g="; + hash = "sha256-Kh8w8L3AJCs9a3KA9RHaA0btbJEBdYZge1VK7AX0lX0="; }; cargoDeps = rustPlatform.fetchCargoVendor { inherit (finalAttrs) pname src version; - hash = "sha256-kHGlUaPNSs1Nh3HCU+yUVQq/IXp9PUwpDmfAon8eRBk="; + hash = "sha256-s4+Y2axZKL7wKiw8Z6c12eWAnf1zGPAFFvWS45vFrlo="; }; nativeBuildInputs = with rustPlatform; [ @@ -56,7 +58,10 @@ buildPythonPackage (finalAttrs: { ]; dependencies = [ + cloudpickle pyarrow + ] + ++ lib.optionals (pythonOlder "3.13") [ typing-extensions ]; From 4ba02f5cd06a6501facad8d6a78e1c2472aaf1df Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Tue, 11 Aug 2026 21:38:39 +0000 Subject: [PATCH 097/148] rerun: 0.35.0 -> 0.36.0 Diff: https://github.com/rerun-io/rerun/compare/0.35.0...0.36.0 Changelog: https://github.com/rerun-io/rerun/blob/0.36.0/CHANGELOG.md --- pkgs/by-name/re/rerun/package.nix | 6 +-- .../python-modules/rerun-notebook/default.nix | 2 +- .../python-modules/rerun-sdk/default.nix | 37 ++++++++++--------- 3 files changed, 23 insertions(+), 22 deletions(-) diff --git a/pkgs/by-name/re/rerun/package.nix b/pkgs/by-name/re/rerun/package.nix index 76f68ffc0857..1a07bae47aa6 100644 --- a/pkgs/by-name/re/rerun/package.nix +++ b/pkgs/by-name/re/rerun/package.nix @@ -40,7 +40,7 @@ }: rustPlatform.buildRustPackage (finalAttrs: { pname = "rerun"; - version = "0.35.0"; + version = "0.36.0"; __structuredAttrs = true; @@ -53,7 +53,7 @@ rustPlatform.buildRustPackage (finalAttrs: { owner = "rerun-io"; repo = "rerun"; tag = finalAttrs.version; - hash = "sha256-PPur5of8zoStXl+3Eq/sgDZ0E9ADUnks6nJ55mzJTuI="; + hash = "sha256-t/OvWxMFfkTKrTYvaw7xcmL6oDyNaKoyW0sa/n5yVMs="; }; # The path in `build.rs` is wrong for some reason, so we patch it to make the passthru tests work @@ -62,7 +62,7 @@ rustPlatform.buildRustPackage (finalAttrs: { --replace-fail '"rerun_sdk/rerun_cli/rerun"' '"rerun_sdk/rerun"' ''; - cargoHash = "sha256-yapmDUOCCqvxmFFe/nQjeBWytTEnMw2opd/U7aXI4jQ="; + cargoHash = "sha256-VXKMEilmgHLHAq6Y7gDvKNJywRIV4fv/XHmNFCMjJws="; cargoBuildFlags = [ "--package" diff --git a/pkgs/development/python-modules/rerun-notebook/default.nix b/pkgs/development/python-modules/rerun-notebook/default.nix index 208fa166fa35..90d78ca850c2 100644 --- a/pkgs/development/python-modules/rerun-notebook/default.nix +++ b/pkgs/development/python-modules/rerun-notebook/default.nix @@ -22,7 +22,7 @@ buildPythonPackage (finalAttrs: { inherit (finalAttrs) version; format = "wheel"; python = "py2.py3"; - hash = "sha256-PMhHz/rTB3yIOg80g/dt/ktq4pHZ6hNrCYdlp70dcOI="; + hash = "sha256-2w2Jvoz/L5VPx4dGcYyQkdcitoPO+NJCzuAxeJR9JHM="; }; pythonRelaxDeps = [ diff --git a/pkgs/development/python-modules/rerun-sdk/default.nix b/pkgs/development/python-modules/rerun-sdk/default.nix index ca0f5893deb4..c09a4905d7ea 100644 --- a/pkgs/development/python-modules/rerun-sdk/default.nix +++ b/pkgs/development/python-modules/rerun-sdk/default.nix @@ -12,10 +12,9 @@ # dependencies attrs, numpy, - opencv4, pillow, + psutil, pyarrow, - semver, typing-extensions, # tests @@ -23,9 +22,10 @@ datafusion, inline-snapshot, polars, - pytest-snapshot, pytestCheckHook, rerun-notebook, + semver, + syrupy, tomli, torch, torchvision, @@ -67,7 +67,7 @@ buildPythonPackage { # dependencies), so they are never codegen'd and runtime dispatch falls back to the equivalent # AVX2 / scalar kernels. + '' - lanceDistance="$cargoDepsCopy/source-registry-0/lance-linalg-8.0.0/src/distance" + lanceDistance="$cargoDepsCopy/source-registry-0/lance-linalg-9.0.0/src/distance" substituteInPlace "$lanceDistance/dot_u8.rs" \ --replace-fail "return |a, b| unsafe { x86::dot_u8_avx512_vnni(a, b) };" "" @@ -89,10 +89,9 @@ buildPythonPackage { dependencies = [ attrs numpy - opencv4 pillow + psutil pyarrow - semver typing-extensions ]; @@ -115,9 +114,10 @@ buildPythonPackage { datafusion inline-snapshot polars - pytest-snapshot pytestCheckHook rerun-notebook + semver + syrupy tomli torch torchvision @@ -126,11 +126,15 @@ buildPythonPackage { inherit (rerun) addDlopenRunpaths addDlopenRunpathsPhase; postPhases = lib.optionals stdenv.hostPlatform.isLinux [ "addDlopenRunpathsPhase" ]; + pytestFlags = [ + # Some checked-in `.ambr` entries belong to tests skipped below (and to tests upstream has since + # removed). syrupy fails the whole session over unused snapshots by default. + "--snapshot-warn-unused" + ]; + disabledTests = [ # RuntimeError: MP4 error: MP4 demux: MP4 error: file contains a box with a larger size than it - "test_allow_b_frames_opts_in_to_b_frame_inputs" "test_asset_mode_timeline_type_timestamp_applies_to_index_chunk" - "test_b_frames_in_stream_mode_raise" "test_custom_entity_path_applies_to_every_chunk" "test_default_mode_produces_video_stream_chunks" "test_output_codec_same_as_source_stays_on_the_direct_path" @@ -154,14 +158,6 @@ buildPythonPackage { "test_server_with_multiple_datasets" "test_viewer_dies_on_client_close" - # TypeError: 'Snapshot' object is not callable - "test_chunk_record_batch" - "test_schema_recording" - - # pytest_snapshot mismatch: serialized schema/summary output drifted in 0.32.0 - "test_schema" - "test_summary_format" - # AttributeError: 'datetime.datetime' object has no attribute 'value' "test_lenses_time_extraction" @@ -188,6 +184,10 @@ buildPythonPackage { # real binaries (rerun.src is fetched without fetchLFS). "rerun_py/tests/integration/test_hdf5_reader.py" + # ModuleNotFoundError: No module named 'mdlint'. It sits next to the test file, which is + # not on `sys.path` as `scripts/ci` has no `__init__.py`. + "scripts/ci/mdlint_test.py" + # "fixture 'benchmark' not found" "tests/python/log_benchmark/test_log_benchmark.py" "tests/python/log_benchmark/test_micro_benchmark.py" @@ -198,7 +198,8 @@ buildPythonPackage { # ConnectionError: Connection: connecting to server: transport error "rerun_py/tests/api_sandbox/" - # RuntimeError: Failed to load URDF file: No elements found + # RuntimeError: Failed to load URDF file: No elements found. `so100.urdf` is a Git LFS + # pointer file, not the real model (rerun.src is fetched without fetchLFS). "rerun_py/tests/unit/test_urdf_tree.py" ]; From 4097dbc277a02c964172ab4647d50223c5bc9131 Mon Sep 17 00:00:00 2001 From: networkException Date: Wed, 12 Aug 2026 17:48:42 +0200 Subject: [PATCH 098/148] chromium,chromedriver: 151.0.7922.108 -> 151.0.7922.137 https://chromereleases.googleblog.com/2026/08/stable-channel-update-for-desktop_01815628406.html This update includes 5 security fixes. CVEs: CVE-2026-19556 CVE-2026-19557 CVE-2026-19558 CVE-2026-19559 CVE-2026-19560 --- .../networking/browsers/chromium/info.json | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/info.json b/pkgs/applications/networking/browsers/chromium/info.json index 2fe7c7ab6701..a04b78e945f6 100644 --- a/pkgs/applications/networking/browsers/chromium/info.json +++ b/pkgs/applications/networking/browsers/chromium/info.json @@ -1,10 +1,10 @@ { "chromium": { - "version": "151.0.7922.108", + "version": "151.0.7922.137", "chromedriver": { - "version": "151.0.7922.109", - "hash_darwin": "sha256-VzMu90gOs02icI3PgvpNYXeE5c0QjCVB9CpM287roZo=", - "hash_darwin_aarch64": "sha256-5djEbPAayOVr8hr2VfXvlU4W6F+Kd/wiCt5NvQtgoOY=" + "version": "151.0.7922.138", + "hash_darwin": "sha256-SW+gKW+GuPwVrJwFdFw6WmECOVXzfRT6tWCIRHoYrok=", + "hash_darwin_aarch64": "sha256-qUVhQo3JTPU5MP0RkVSAyk3iQTy/MWvE7Kab1BoI+Vg=" }, "deps": { "depot_tools": { @@ -21,8 +21,8 @@ "DEPS": { "src": { "url": "https://chromium.googlesource.com/chromium/src.git", - "rev": "4744b886309d987d292e43232776d2206cccb13d", - "hash": "sha256-1i2IAA5sXyMPBzh6xOIY3CllEDtIS9Buk8Z2Vm1JnYw=", + "rev": "8f5d36bc16f57115aeeff34baf4ad6aa964d509c", + "hash": "sha256-OSqLGAnfiGRVC4RRMnjXFx0JvKh2qY+9zlf2xJZT19Q=", "recompress": true }, "src/third_party/clang-format/script": { @@ -657,8 +657,8 @@ }, "src/third_party/skia": { "url": "https://skia.googlesource.com/skia.git", - "rev": "86bb2f25f46f4d620b4a26e738f59a9b6c22d2eb", - "hash": "sha256-tnUcFuwWtw0uGNIsU38M54V1MAYFs7/2yjP9Cs1fEHo=" + "rev": "66cca05ab345fb894cc80ed412e2fa79f687f5d9", + "hash": "sha256-lDMn7ReDCdGKGmypIZszE29DWGFebJemFPluKZYeg7k=" }, "src/third_party/smhasher/src": { "url": "https://chromium.googlesource.com/external/smhasher.git", @@ -827,8 +827,8 @@ }, "src/v8": { "url": "https://chromium.googlesource.com/v8/v8.git", - "rev": "20ad8d002c17ccc7ccfbefc6c4dcf1242fe80921", - "hash": "sha256-J2dblSPMoZTpotDpuPp6beRYv+KtCirqNxEGEQKpqcQ=" + "rev": "00c2754b59cf5f79b323950c63b07cfb1a8377d4", + "hash": "sha256-dXWiFX049YVnrtNdEznEiwT8lDyGJn9BEehB2yhCxqI=" }, "src/agents/shared": { "url": "https://chromium.googlesource.com/chromium/agents.git", From 9259541b1652dae633707ff840858fd397df66bc Mon Sep 17 00:00:00 2001 From: networkException Date: Wed, 12 Aug 2026 17:52:07 +0200 Subject: [PATCH 099/148] ungoogled-chromium: 151.0.7922.108-1 -> 151.0.7922.137-1 https://chromereleases.googleblog.com/2026/08/stable-channel-update-for-desktop_01815628406.html This update includes 5 security fixes. CVEs: CVE-2026-19556 CVE-2026-19557 CVE-2026-19558 CVE-2026-19559 CVE-2026-19560 --- .../networking/browsers/chromium/info.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/info.json b/pkgs/applications/networking/browsers/chromium/info.json index a04b78e945f6..26ca26ba96be 100644 --- a/pkgs/applications/networking/browsers/chromium/info.json +++ b/pkgs/applications/networking/browsers/chromium/info.json @@ -838,7 +838,7 @@ } }, "ungoogled-chromium": { - "version": "151.0.7922.108", + "version": "151.0.7922.137", "deps": { "depot_tools": { "rev": "94e89b10b92cc9d6e58fc8d1b6474b7d29e8a114", @@ -850,16 +850,16 @@ "hash": "sha256-T2LdISIkp8fcUli5ZetTqrESBAc7coJhWdJv7I+o9kk=" }, "ungoogled-patches": { - "rev": "151.0.7922.108-1", - "hash": "sha256-EhnX4fkuKTTIF6wztKWitrjNzKUf36fAnr7lUkJqJtQ=" + "rev": "151.0.7922.137-1", + "hash": "sha256-QIkhRquVqD22P1UBJ+Qv0LEI118v7PDt3hQCIl1ScQ4=" }, "npmHash": "sha256-pF0JtwFpPC4/fodbhSJnQKkczA9WlDg4VqEAy9aDVLg=" }, "DEPS": { "src": { "url": "https://chromium.googlesource.com/chromium/src.git", - "rev": "4744b886309d987d292e43232776d2206cccb13d", - "hash": "sha256-1i2IAA5sXyMPBzh6xOIY3CllEDtIS9Buk8Z2Vm1JnYw=", + "rev": "8f5d36bc16f57115aeeff34baf4ad6aa964d509c", + "hash": "sha256-OSqLGAnfiGRVC4RRMnjXFx0JvKh2qY+9zlf2xJZT19Q=", "recompress": true }, "src/third_party/clang-format/script": { @@ -1494,8 +1494,8 @@ }, "src/third_party/skia": { "url": "https://skia.googlesource.com/skia.git", - "rev": "86bb2f25f46f4d620b4a26e738f59a9b6c22d2eb", - "hash": "sha256-tnUcFuwWtw0uGNIsU38M54V1MAYFs7/2yjP9Cs1fEHo=" + "rev": "66cca05ab345fb894cc80ed412e2fa79f687f5d9", + "hash": "sha256-lDMn7ReDCdGKGmypIZszE29DWGFebJemFPluKZYeg7k=" }, "src/third_party/smhasher/src": { "url": "https://chromium.googlesource.com/external/smhasher.git", @@ -1664,8 +1664,8 @@ }, "src/v8": { "url": "https://chromium.googlesource.com/v8/v8.git", - "rev": "20ad8d002c17ccc7ccfbefc6c4dcf1242fe80921", - "hash": "sha256-J2dblSPMoZTpotDpuPp6beRYv+KtCirqNxEGEQKpqcQ=" + "rev": "00c2754b59cf5f79b323950c63b07cfb1a8377d4", + "hash": "sha256-dXWiFX049YVnrtNdEznEiwT8lDyGJn9BEehB2yhCxqI=" }, "src/agents/shared": { "url": "https://chromium.googlesource.com/chromium/agents.git", From f6068f86805bc277f6138aff72248d79e4062b6f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 15:56:57 +0000 Subject: [PATCH 100/148] virter: 1.1.0 -> 1.2.0 --- pkgs/by-name/vi/virter/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/vi/virter/package.nix b/pkgs/by-name/vi/virter/package.nix index 84e25a1cf210..c076d0967271 100644 --- a/pkgs/by-name/vi/virter/package.nix +++ b/pkgs/by-name/vi/virter/package.nix @@ -11,16 +11,16 @@ buildGoModule (finalAttrs: { pname = "virter"; - version = "1.1.0"; + version = "1.2.0"; src = fetchFromGitHub { owner = "LINBIT"; repo = "virter"; rev = "v${finalAttrs.version}"; - hash = "sha256-Kjk/kLDWwFDgr+PnwBNgsZEP/C4YS8/i1l1lTndpS8Q="; + hash = "sha256-N8IJGhjnCbUqtZvQ5Et9a3JvG3RctXM9mVM6hBZroE0="; }; - vendorHash = "sha256-h/4yQmSPoeAm0p7bYv7xQVk316zl7PB1IcRQlOEDHVQ="; + vendorHash = "sha256-XOMxe+pG4OB15l+TKuYR2tJPPcPbsnipxHlnDH0XukA="; ldflags = [ "-s" From 8a9e3568765e800eeac7a53573da4dc5d0b6c60d Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Wed, 12 Aug 2026 15:51:23 +0000 Subject: [PATCH 101/148] ray: 2.56.1 -> 2.57.0 Diff: https://github.com/ray-project/ray/compare/ray-2.56.1...ray-2.57.0 Changelog: https://github.com/ray-project/ray/releases/tag/ray-2.57.0 --- .../python-modules/ray/default.nix | 34 ++++++++++++------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/pkgs/development/python-modules/ray/default.nix b/pkgs/development/python-modules/ray/default.nix index 9ced1b9c373c..b3e46194b649 100644 --- a/pkgs/development/python-modules/ray/default.nix +++ b/pkgs/development/python-modules/ray/default.nix @@ -60,6 +60,8 @@ scipy, # serve fastapi, + jinja2, + mmh3, starlette, uvicorn, watchfiles, @@ -73,7 +75,7 @@ buildPythonPackage (finalAttrs: { pname = "ray"; - version = "2.56.1"; + version = "2.57.0"; format = "wheel"; __structuredAttrs = true; @@ -91,22 +93,22 @@ buildPythonPackage (finalAttrs: { # Results are in ./ray-hashes.nix hashes = { x86_64-linux = { - cp311 = "sha256-5wA6R6Qu8q0z7As03Ftq+wP2P+WUZeb0yPbQVJLZ5KY="; - cp312 = "sha256-5dMXNpaDETTHa9CUUd/pXDLXLCcSU7DWsJ0t+ZlKpmA="; - cp313 = "sha256-gfLbICzDG8P1xKz57xVNEPHzns5gLZ0tMQiHXEm/AcM="; - cp314 = "sha256-rpH+V4+t6jjBOiCKD+wn4c7SOMzfX/+V7z4wrDBx3sk="; + cp311 = "sha256-sMw9Q1vvbn/+hIgW5zadMO4pfojEwavGMjzJOD/zgm8="; + cp312 = "sha256-WV0Iix/RrdZGVMbOviA+JZA3h7ZQ01xKPcAI1FHkikE="; + cp313 = "sha256-caocUv54AM0he2Ab+f9VfCo//l+tWwD2eS2ppniyyRQ="; + cp314 = "sha256-AssrX99BJG9rkwbIUkfucTG/7unTak7a5UZT4C7XiQw="; }; aarch64-linux = { - cp311 = "sha256-TfRfM8wXaxHGkZHv3PtKzq7qIv7Pp4T2SFtlBO+MiyY="; - cp312 = "sha256-j91rCWIVkGzx+azceJjJ1hQGBvLSckV3i4OFqfGebLA="; - cp313 = "sha256-f9xH3k4jDw23xsZoqeFh+GTaxUi9MiMJhuCww244brU="; - cp314 = "sha256-6jcsf5WxTx928L3Sq8lgLFboi8MGmdIij3gTPndJsvE="; + cp311 = "sha256-epgm4zv69GUhmrMp4F8D4/apGfzl0haS9axWakQnfLM="; + cp312 = "sha256-7rHRrbYb0div/cX7VVrwSU/tj+xTuDV21MYPgR4GvpQ="; + cp313 = "sha256-Xi2SWPdRZ291gdwK0wfC2RKQglRCNmEoye0MzQ9guEU="; + cp314 = "sha256-4kiTkpbwyPRrPnNCFVV3YJSXKx28c9SAJHm5kXfCJp4="; }; aarch64-darwin = { - cp311 = "sha256-XuvXds1GHt68WHTS37owBRR7a0VkXYoWplSTEcXv/+o="; - cp312 = "sha256-RLwAAMW/rYWy/24O+R6V+QHRotL91y+U8IoEbrSUzWE="; - cp313 = "sha256-k97atlgzSvgYd7bthAxOX4Xi4LGzZBsg6q7jfK2DXMY="; - cp314 = "sha256-dvYmimacHZkQ8de3OQPePt6YUO2U0+KDGNSVVZvTfQ4="; + cp311 = "sha256-oBbWJYtTVxlS8qglFXGy1z2PawmBvmxh4WDMkBtxGHE="; + cp312 = "sha256-jvWRV1xTF5P+t/d3RMUsNFCf9YtIsw0KO8tqFmYlawI="; + cp313 = "sha256-IbZ+3cdRuoxl3u6GVAdcK0KFEQTJNs5CynlExLbsR5k="; + cp314 = "sha256-eYoe4k5O3jnpAPzJNdhttfCA0np0xX4yOKUAS6kXEgA="; }; }; in @@ -215,10 +217,16 @@ buildPythonPackage (finalAttrs: { serve = lib.unique ( [ fastapi + # Undeclared upstream: `ray.serve._private.haproxy`, imported by the serve controller since + # 2.57.0, needs it + jinja2 + mmh3 requests starlette uvicorn watchfiles + # `ray-haproxy` (upstream, linux-only) is not packaged: it only ships an HAProxy binary, and + # ray falls back to `haproxy` from PATH ] ++ self.default ); From aa3d058bd15ae4180db22a1973e6ed3e0e7eb07e Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 16:25:37 +0000 Subject: [PATCH 102/148] python3Packages.warp-nn: 0.3.0 -> 0.3.1 --- pkgs/development/python-modules/warp-nn/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/warp-nn/default.nix b/pkgs/development/python-modules/warp-nn/default.nix index 39ced41c0bd8..cbf8973ad740 100644 --- a/pkgs/development/python-modules/warp-nn/default.nix +++ b/pkgs/development/python-modules/warp-nn/default.nix @@ -18,7 +18,7 @@ buildPythonPackage (finalAttrs: { pname = "warp-nn"; - version = "0.3.0"; + version = "0.3.1"; pyproject = true; __structuredAttrs = true; @@ -26,7 +26,7 @@ buildPythonPackage (finalAttrs: { owner = "NVIDIA"; repo = "warp-nn"; tag = "v${finalAttrs.version}"; - hash = "sha256-dziGJhuuLHy8gEB39tvpLTHjPOwz6YVhsCB6KbIb7vI="; + hash = "sha256-bs0YXYXPIwXKlFrsiZ5hdJ/E4uT4x3Ex/dJEWfurVcg="; }; build-system = [ From fb62ced92e2e1ea9a1f90e7a4275f725db021ab7 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 16:33:46 +0000 Subject: [PATCH 103/148] rime-moegirl: 20260713 -> 20260812 --- pkgs/by-name/ri/rime-moegirl/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ri/rime-moegirl/package.nix b/pkgs/by-name/ri/rime-moegirl/package.nix index 7ba321506998..3a88e169e2e9 100644 --- a/pkgs/by-name/ri/rime-moegirl/package.nix +++ b/pkgs/by-name/ri/rime-moegirl/package.nix @@ -5,10 +5,10 @@ }: stdenvNoCC.mkDerivation (finalAttrs: { pname = "rime-moegirl"; - version = "20260713"; + version = "20260812"; src = fetchurl { url = "https://github.com/outloudvi/mw2fcitx/releases/download/${finalAttrs.version}/moegirl.dict.yaml"; - hash = "sha256-Fca5vWdmqaRnP6id4TqVGFsTxnynAoQTMgAWntF5eY0="; + hash = "sha256-WDbIdQdBX03NsPxFrs9N166CGDplDN15MOHmY+MuOiQ="; }; dontUnpack = true; From 7e6656088126b27fee5fe08b7a9b6ae6dc4096cf Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Wed, 12 Aug 2026 18:44:34 +0200 Subject: [PATCH 104/148] python3Packages.pillow-jxl-plugin: fix license fixes https://github.com/NixOS/nixpkgs/pull/543307#discussion_r3768051838 --- pkgs/development/python-modules/pillow-jxl-plugin/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/pillow-jxl-plugin/default.nix b/pkgs/development/python-modules/pillow-jxl-plugin/default.nix index 4d6363dd7ac1..395cb68d412c 100644 --- a/pkgs/development/python-modules/pillow-jxl-plugin/default.nix +++ b/pkgs/development/python-modules/pillow-jxl-plugin/default.nix @@ -59,7 +59,7 @@ buildPythonPackage (finalAttrs: { changelog = "https://github.com/Isotr0py/pillow-jpegxl-plugin/releases/tag/v${finalAttrs.version}"; description = "Pillow plugin that adds support for JPEG XL files"; homepage = "https://github.com/Isotr0py/pillow-jpegxl-plugin"; - license = lib.licenses.gpl3Only; + license = lib.licenses.gpl3Plus; maintainers = with lib.maintainers; [ dandellion KunyaKud From 2570777ee3ce69d2eff04d0a6a1750845d35b703 Mon Sep 17 00:00:00 2001 From: K900 Date: Wed, 12 Aug 2026 19:43:39 +0300 Subject: [PATCH 105/148] opencloud: 7.3.0 -> 7.4.0 Diff: https://github.com/opencloud-eu/opencloud/compare/v7.3.0...v7.4.0 Changelog: https://github.com/opencloud-eu/opencloud/blob/v7.4.0/CHANGELOG.md --- pkgs/by-name/op/opencloud/idp-web.nix | 2 +- pkgs/by-name/op/opencloud/package.nix | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/op/opencloud/idp-web.nix b/pkgs/by-name/op/opencloud/idp-web.nix index 46e322e7424f..d2dd3553de39 100644 --- a/pkgs/by-name/op/opencloud/idp-web.nix +++ b/pkgs/by-name/op/opencloud/idp-web.nix @@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { pnpm = pnpm_11; sourceRoot = "${finalAttrs.src.name}/${finalAttrs.pnpmRoot}"; fetcherVersion = 4; - hash = "sha256-buDYvRw4NTLxFSdDRZHiuXMVe9fJbe2iu5hr+zh6KLs="; + hash = "sha256-rj6KFrzuINVpxrrel2p2iWtJVH8Zg1jrZEIAs8S+8Qs="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/op/opencloud/package.nix b/pkgs/by-name/op/opencloud/package.nix index 6f9b665171fd..6d60fad24ad3 100644 --- a/pkgs/by-name/op/opencloud/package.nix +++ b/pkgs/by-name/op/opencloud/package.nix @@ -28,13 +28,13 @@ let in buildGoModule (finalAttrs: { pname = "opencloud"; - version = "7.3.0"; + version = "7.4.0"; src = fetchFromGitHub { owner = "opencloud-eu"; repo = "opencloud"; tag = "v${finalAttrs.version}"; - hash = "sha256-2YwDH4qD4PCbfi/nNGPqwtJIpf8MPMGrVRslNWOoDPM="; + hash = "sha256-/j3aXAzsIWPHNIRcHLlbi6Y53be5d5GBqrVIZCk0bEw="; }; postPatch = '' From 8c3b4eba3ae9cef389ab48745f0e1aa5281d43c8 Mon Sep 17 00:00:00 2001 From: K900 Date: Wed, 12 Aug 2026 19:47:36 +0300 Subject: [PATCH 106/148] opencloud.web: 7.2.0 -> 7.3.0 Diff: https://github.com/opencloud-eu/web/compare/v7.2.0...v7.3.0 Changelog: https://github.com/opencloud-eu/web/blob/v7.3.0/CHANGELOG.md --- pkgs/by-name/op/opencloud/web.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/op/opencloud/web.nix b/pkgs/by-name/op/opencloud/web.nix index 13e0d4a25879..5ad4db8f03a5 100644 --- a/pkgs/by-name/op/opencloud/web.nix +++ b/pkgs/by-name/op/opencloud/web.nix @@ -10,20 +10,20 @@ }: stdenvNoCC.mkDerivation (finalAttrs: { pname = "opencloud-web"; - version = "7.2.0"; + version = "7.3.0"; src = fetchFromGitHub { owner = "opencloud-eu"; repo = "web"; tag = "v${finalAttrs.version}"; - hash = "sha256-BiOue8+zQ3+6RLiDbLMnxKEen2aav3bljji4d+0Hr5c="; + hash = "sha256-v1VmX3q2YQUd3PvRVVEvDvpsgVcNklflXRXRvtHOuCU="; }; pnpmDeps = fetchPnpmDeps { inherit (finalAttrs) pname version src; pnpm = pnpm_11; fetcherVersion = 4; - hash = "sha256-gCsgnOEi9rvtwTZy8J/i63D92Gl2V9ZihxCJ+Y5hLUE="; + hash = "sha256-Y/Xz62ZS7pU6WB3dxewfhNI4POW/r/DGodpEy+xw/ww="; }; nativeBuildInputs = [ From f9426d6d330d7a4a99a4ddf7de3ef63a15866e83 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 17:10:36 +0000 Subject: [PATCH 107/148] python3Packages.elevenlabs: 2.60.0 -> 2.63.0 --- pkgs/development/python-modules/elevenlabs/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/elevenlabs/default.nix b/pkgs/development/python-modules/elevenlabs/default.nix index 2734615eab7b..4b87bd6759b7 100644 --- a/pkgs/development/python-modules/elevenlabs/default.nix +++ b/pkgs/development/python-modules/elevenlabs/default.nix @@ -14,14 +14,14 @@ buildPythonPackage (finalAttrs: { pname = "elevenlabs"; - version = "2.60.0"; + version = "2.63.0"; pyproject = true; src = fetchFromGitHub { owner = "elevenlabs"; repo = "elevenlabs-python"; tag = "v${finalAttrs.version}"; - hash = "sha256-Foe5icwDNVD/g/tss1UG9wzrzXmECzXr/3Ql6yA4YHY="; + hash = "sha256-Fm7gB892mm0K8HgYAC2pGEMQaB90cX7jwiMZqF27lgk="; }; build-system = [ poetry-core ]; From b65b89f2decb80a031459be973823d5b567a1022 Mon Sep 17 00:00:00 2001 From: Eman Resu Date: Wed, 12 Aug 2026 13:31:59 -0400 Subject: [PATCH 108/148] lib.fileset: move let definition higher up --- lib/fileset/internal.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/fileset/internal.nix b/lib/fileset/internal.nix index 195d864aecf6..f93e45393dfd 100644 --- a/lib/fileset/internal.nix +++ b/lib/fileset/internal.nix @@ -349,7 +349,6 @@ rec { ``` */ _normaliseTreeFilter = - path: tree: let # Recurses into a tree that's already known to be a directory (either a "directory" or an attrset). # @@ -377,7 +376,7 @@ rec { else normalisedSubtrees; in - if tree == "directory" || isAttrs tree then recurse path tree else tree; + path: tree: if tree == "directory" || isAttrs tree then recurse path tree else tree; /** A minimal normalisation of a filesetTree, intended for pretty-printing: From af732abb9b2ac73f22a4e7d1b0c29361506aa003 Mon Sep 17 00:00:00 2001 From: Eman Resu Date: Wed, 12 Aug 2026 13:37:51 -0400 Subject: [PATCH 109/148] lib.fileset: partially apply substring logic --- lib/fileset/internal.nix | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/fileset/internal.nix b/lib/fileset/internal.nix index f93e45393dfd..931d9e9a35c6 100644 --- a/lib/fileset/internal.nix +++ b/lib/fileset/internal.nix @@ -536,6 +536,9 @@ rec { else "/" + concatStringsSep "/" fileset._internalBaseComponents + "/"; + getBaseStringPrefix = substring 0 baseLength; + removeBaseStringPrefix = substring baseLength (-1); + baseLength = stringLength baseString; # Check whether a list of path components under the base path exists in the tree. @@ -584,7 +587,7 @@ rec { # but only on the few paths above it, so its checked first. # With base /foo/bar this matches /foo/bar and /foo/bar/baz # hasPrefix "/foo/bar/" "/foo/bar/baz/" - if substring 0 baseLength pathSlash == baseString then + if getBaseStringPrefix pathSlash == baseString then if stringLength pathSlash == baseLength then # The path is the base directory itself, which is always included true @@ -596,7 +599,7 @@ rec { # inTree (split "/" (removePrefix "/foo/" "/foo/bar/baz")) # == inTree (split "/" "bar/baz") # == inTree [ "bar" "baz" ] - inTree (split "/" (substring baseLength (-1) path)) + inTree (split "/" (removeBaseStringPrefix path)) # Same as `hasPrefix pathSlash baseString`, but more efficient. # The path is a proper ancestor of the base, which needs to be included for the base to be reachable: # With base /foo/bar we need to include /foo: From 9213fcbd180c534a47bb0506285f9ca96a281837 Mon Sep 17 00:00:00 2001 From: Eman Resu Date: Wed, 12 Aug 2026 13:41:44 -0400 Subject: [PATCH 110/148] lib.fileset: inline let variable only used once --- lib/fileset/internal.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/fileset/internal.nix b/lib/fileset/internal.nix index 931d9e9a35c6..ff073904a87b 100644 --- a/lib/fileset/internal.nix +++ b/lib/fileset/internal.nix @@ -359,11 +359,10 @@ rec { recurse = path: tree: let - entries = _directoryEntries path tree; normalisedSubtrees = mapAttrs ( name: subtree: if subtree == "directory" || isAttrs subtree then recurse (path + "/${name}") subtree else subtree - ) entries; + ) (_directoryEntries path tree); subtreeValues = attrValues normalisedSubtrees; in # This triggers either when all files in a directory are filtered out From 3b58c2719e4228f15d084ef7cd83fe25f18d872d Mon Sep 17 00:00:00 2001 From: Eman Resu Date: Wed, 12 Aug 2026 14:09:05 -0400 Subject: [PATCH 111/148] lib.fileset: compare to baseString directly The stringLength check is equivalent at this point, but having to actualy create the thunk for calling stringLength is likely slower than just letting Nix handle the equality check. --- lib/fileset/internal.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/fileset/internal.nix b/lib/fileset/internal.nix index ff073904a87b..704fd10835da 100644 --- a/lib/fileset/internal.nix +++ b/lib/fileset/internal.nix @@ -587,7 +587,7 @@ rec { # With base /foo/bar this matches /foo/bar and /foo/bar/baz # hasPrefix "/foo/bar/" "/foo/bar/baz/" if getBaseStringPrefix pathSlash == baseString then - if stringLength pathSlash == baseLength then + if pathSlash == baseString then # The path is the base directory itself, which is always included true else From 2ab673318b42938ffd93a475ba814dde3b17c474 Mon Sep 17 00:00:00 2001 From: K900 Date: Wed, 12 Aug 2026 21:19:20 +0300 Subject: [PATCH 112/148] lasuite-meet: 1.25.2 -> 1.26.0 Diff: https://github.com/suitenumerique/meet/compare/v1.25.2...v1.26.0 Changelog: https://github.com/suitenumerique/meet/blob/v1.26.0/CHANGELOG.md --- pkgs/by-name/la/lasuite-meet/frontend.nix | 2 +- pkgs/by-name/la/lasuite-meet/mail.nix | 2 +- pkgs/by-name/la/lasuite-meet/package.nix | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/la/lasuite-meet/frontend.nix b/pkgs/by-name/la/lasuite-meet/frontend.nix index 56871f8a9134..80a000547394 100644 --- a/pkgs/by-name/la/lasuite-meet/frontend.nix +++ b/pkgs/by-name/la/lasuite-meet/frontend.nix @@ -17,7 +17,7 @@ buildNpmPackage (finalAttrs: { src sourceRoot ; - hash = "sha256-PArNKjdLqKJSEEKe94mguzKiNSwpYk56inenU3GL1mI="; + hash = "sha256-ZvdfLM0GlIZPaKbpDK9ymSgARVMsJE+cop8lKq3R7fE="; }; npmBuildScript = "build"; diff --git a/pkgs/by-name/la/lasuite-meet/mail.nix b/pkgs/by-name/la/lasuite-meet/mail.nix index d1e8e4634d60..dc03dc73bbf5 100644 --- a/pkgs/by-name/la/lasuite-meet/mail.nix +++ b/pkgs/by-name/la/lasuite-meet/mail.nix @@ -22,7 +22,7 @@ buildNpmPackage (finalAttrs: { pname = "${finalAttrs.pname}-npm-deps"; inherit version src; inherit (finalAttrs) sourceRoot; - hash = "sha256-rqtLjMp0nCfo1wDAeB5WxVtmL/TR3Ky3qaMaBohnH1M="; + hash = "sha256-Ojk0giCc7tTFAGOIisirMywfe5j7JCKoTnWGk/hR+U8="; }; npmBuildScript = "build"; diff --git a/pkgs/by-name/la/lasuite-meet/package.nix b/pkgs/by-name/la/lasuite-meet/package.nix index 188830cf085b..f27c946dd496 100644 --- a/pkgs/by-name/la/lasuite-meet/package.nix +++ b/pkgs/by-name/la/lasuite-meet/package.nix @@ -6,13 +6,13 @@ python3, }: let - version = "1.25.2"; + version = "1.26.0"; src = fetchFromGitHub { owner = "suitenumerique"; repo = "meet"; tag = "v${version}"; - hash = "sha256-gtChKd6sr2nHEmi0Z/nbuCCNsOD8iVIAFjqonZFgQ/Y="; + hash = "sha256-WiyVSqkyKDXYYPvzcA/fHcxQJrUThNGfNu+z/KcHK3g="; }; meta = { From 9921d05da3230adac66aa507db544c5e4e08386e Mon Sep 17 00:00:00 2001 From: Aliaksandr Date: Sun, 10 May 2026 20:55:10 +0300 Subject: [PATCH 113/148] treewide: replace stdenv.is* with stdenv.hostPlatform.is* Assisted-by: claude-code with claude-opus-4-8 --- nixos/lib/test-driver/default.nix | 2 +- nixos/modules/hardware/video/nvidia.nix | 2 +- pkgs/by-name/ar/arcanist/package.nix | 2 +- pkgs/by-name/bl/blast/package.nix | 2 +- pkgs/by-name/ch/chrony/package.nix | 2 +- pkgs/by-name/cp/cpond/package.nix | 2 +- pkgs/by-name/de/dejagnu/package.nix | 2 +- pkgs/by-name/di/disko/package.nix | 6 ++--- pkgs/by-name/ee/eepers/package.nix | 2 +- pkgs/by-name/kr/krunkit/package.nix | 2 +- pkgs/by-name/li/libjxl/package.nix | 2 +- pkgs/by-name/li/limitcpu/package.nix | 2 +- pkgs/by-name/ma/mailspring/mailsync.nix | 6 ++--- pkgs/by-name/nu/nusmv/package.nix | 2 +- pkgs/by-name/on/onnxruntime/package.nix | 2 +- pkgs/by-name/pc/pcb2gcode/package.nix | 2 +- pkgs/by-name/re/reprepro/package.nix | 2 +- pkgs/by-name/su/sundtek/package.nix | 4 ++-- pkgs/by-name/tu/turingdb/package.nix | 2 +- pkgs/by-name/un/unblob/package.nix | 2 +- pkgs/by-name/yb/yb/package.nix | 4 ++-- .../compilers/chicken/4/chicken.nix | 2 +- .../compilers/chicken/5/chicken.nix | 2 +- .../compilers/dotnet/source/vmr.nix | 3 +-- .../llvm/common/flang-rt/default.nix | 9 +++++--- pkgs/development/libraries/ffmpeg/generic.nix | 16 +++++++------- pkgs/development/libraries/fmt/default.nix | 2 +- .../django-health-check/default.nix | 2 +- .../python-modules/otter-grader/default.nix | 2 +- .../python-modules/simple-pid/default.nix | 2 +- .../postgresql/ext/vectorchord/package.nix | 22 ++++++++++--------- pkgs/top-level/all-packages.nix | 2 +- 32 files changed, 61 insertions(+), 57 deletions(-) diff --git a/nixos/lib/test-driver/default.nix b/nixos/lib/test-driver/default.nix index efc7d8fa9a85..b2221e06629c 100644 --- a/nixos/lib/test-driver/default.nix +++ b/nixos/lib/test-driver/default.nix @@ -60,7 +60,7 @@ buildPythonApplication { util-linux vde2 ] - ++ lib.optionals stdenv.isLinux [ + ++ lib.optionals stdenv.hostPlatform.isLinux [ vhost-device-vsock ] ++ lib.optionals enableNspawn [ diff --git a/nixos/modules/hardware/video/nvidia.nix b/nixos/modules/hardware/video/nvidia.nix index dc3d6cb134f7..bd553409cff6 100644 --- a/nixos/modules/hardware/video/nvidia.nix +++ b/nixos/modules/hardware/video/nvidia.nix @@ -482,7 +482,7 @@ in combineIcdPkgs = icd: pkgs: pkgs.symlinkJoin { - name = "nvidia-egl-external-platforms${lib.optionalString pkgs.stdenv.is32bit "-x32"}"; + name = "nvidia-egl-external-platforms${lib.optionalString pkgs.stdenv.hostPlatform.is32bit "-x32"}"; paths = lib.attrVals icd pkgs; # Remediate reversed priorities in pre-595 drivers, # https://github.com/NixOS/nixpkgs/pull/497342#issuecomment-4034876793 diff --git a/pkgs/by-name/ar/arcanist/package.nix b/pkgs/by-name/ar/arcanist/package.nix index 4c76f60e4fb6..287a40c7d53c 100644 --- a/pkgs/by-name/ar/arcanist/package.nix +++ b/pkgs/by-name/ar/arcanist/package.nix @@ -57,7 +57,7 @@ stdenv.mkDerivation { php ]; - postPatch = lib.optionalString stdenv.isAarch64 '' + postPatch = lib.optionalString stdenv.hostPlatform.isAarch64 '' substituteInPlace support/xhpast/Makefile \ --replace "-minline-all-stringops" "" ''; diff --git a/pkgs/by-name/bl/blast/package.nix b/pkgs/by-name/bl/blast/package.nix index 7096ef83ed36..32480e38aac6 100644 --- a/pkgs/by-name/bl/blast/package.nix +++ b/pkgs/by-name/bl/blast/package.nix @@ -105,7 +105,7 @@ stdenv.mkDerivation (finalAttrs: { bzip2 sqlite ] - ++ lib.optionals stdenv.isDarwin [ + ++ lib.optionals stdenv.hostPlatform.isDarwin [ llvmPackages.openmp ]; diff --git a/pkgs/by-name/ch/chrony/package.nix b/pkgs/by-name/ch/chrony/package.nix index 9a8cda9e9610..892ae4217962 100644 --- a/pkgs/by-name/ch/chrony/package.nix +++ b/pkgs/by-name/ch/chrony/package.nix @@ -77,7 +77,7 @@ stdenv.mkDerivation (finalAttrs: { darwin illumos ]; - broken = stdenv.isDarwin; + broken = stdenv.hostPlatform.isDarwin; maintainers = with lib.maintainers; [ thoughtpolice vifino diff --git a/pkgs/by-name/cp/cpond/package.nix b/pkgs/by-name/cp/cpond/package.nix index 95fb3e96bd1b..733478e6ecdf 100644 --- a/pkgs/by-name/cp/cpond/package.nix +++ b/pkgs/by-name/cp/cpond/package.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation { substituteInPlace Makefile \ --replace-fail '$(eflags)$(ncursesw_macros)' '$(eflags) $(ncursesw_macros)' '' - + lib.optionalString stdenv.isDarwin '' + + lib.optionalString stdenv.hostPlatform.isDarwin '' substituteInPlace Makefile \ --replace-fail '-lncursesw' '-lncurses' ''; diff --git a/pkgs/by-name/de/dejagnu/package.nix b/pkgs/by-name/de/dejagnu/package.nix index c0fc616b9892..ced881d1030f 100644 --- a/pkgs/by-name/de/dejagnu/package.nix +++ b/pkgs/by-name/de/dejagnu/package.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: { ''; configureScript = "../configure"; - doCheck = !(with stdenv; isDarwin && isAarch64); + doCheck = !(with stdenv.hostPlatform; isDarwin && isAarch64); # Note: The test-suite *requires* /dev/pts among the `build-chroot-dirs' of # the build daemon when building in a chroot. See diff --git a/pkgs/by-name/di/disko/package.nix b/pkgs/by-name/di/disko/package.nix index 8e76815b5976..692ebc38d660 100644 --- a/pkgs/by-name/di/disko/package.nix +++ b/pkgs/by-name/di/disko/package.nix @@ -28,7 +28,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { cp -r install-cli.nix cli.nix default.nix disk-deactivate lib $out/share/disko scripts=(disko) - ${lib.optionalString (!stdenvNoCC.isDarwin) '' + ${lib.optionalString (!stdenvNoCC.hostPlatform.isDarwin) '' scripts+=(disko-install) ''} @@ -44,7 +44,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { coreutils xcp ] - ++ lib.optional (!stdenvNoCC.isDarwin) nixos-install + ++ lib.optional (!stdenvNoCC.hostPlatform.isDarwin) nixos-install ) } done @@ -54,7 +54,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { installCheckPhase = '' runHook preInstallCheck $out/bin/disko --help - ${lib.optionalString (!stdenvNoCC.isDarwin) '' + ${lib.optionalString (!stdenvNoCC.hostPlatform.isDarwin) '' $out/bin/disko-install --help ''} runHook postInstallCheck diff --git a/pkgs/by-name/ee/eepers/package.nix b/pkgs/by-name/ee/eepers/package.nix index eed8e26e1191..2f1ed5700410 100644 --- a/pkgs/by-name/ee/eepers/package.nix +++ b/pkgs/by-name/ee/eepers/package.nix @@ -44,7 +44,7 @@ stdenv.mkDerivation (finalAttrs: { runHook postBuild ''; - postFixup = lib.optionalString stdenv.isLinux '' + postFixup = lib.optionalString stdenv.hostPlatform.isLinux '' patchelf $out/bin/eepers \ --add-needed libwayland-client.so \ --add-needed libwayland-cursor.so \ diff --git a/pkgs/by-name/kr/krunkit/package.nix b/pkgs/by-name/kr/krunkit/package.nix index 8048432093ba..ed2a5da280f2 100644 --- a/pkgs/by-name/kr/krunkit/package.nix +++ b/pkgs/by-name/kr/krunkit/package.nix @@ -52,7 +52,7 @@ stdenv.mkDerivation (finalAttrs: { dontStrip = true; passthru = { - tests.boot = lib.optional stdenv.isDarwin ( + tests.boot = lib.optional stdenv.hostPlatform.isDarwin ( callPackage ./boot-test.nix { krunkit = finalAttrs.finalPackage; } ); updateScript = nix-update-script { }; diff --git a/pkgs/by-name/li/libjxl/package.nix b/pkgs/by-name/li/libjxl/package.nix index c9bd4d79d174..92806f98b041 100644 --- a/pkgs/by-name/li/libjxl/package.nix +++ b/pkgs/by-name/li/libjxl/package.nix @@ -173,7 +173,7 @@ stdenv.mkDerivation rec { # FIXME x86_64-darwin: # https://github.com/NixOS/nixpkgs/pull/204030#issuecomment-1352768690 - doCheck = with stdenv; !(hostPlatform.isi686 || isDarwin && isx86_64); + doCheck = with stdenv.hostPlatform; !(isi686 || isDarwin && isx86_64); disabledTests = lib.optionals stdenv.hostPlatform.isBigEndian [ # https://github.com/libjxl/libjxl/issues/3629 diff --git a/pkgs/by-name/li/limitcpu/package.nix b/pkgs/by-name/li/limitcpu/package.nix index 8f9919765675..10ab5b831da5 100644 --- a/pkgs/by-name/li/limitcpu/package.nix +++ b/pkgs/by-name/li/limitcpu/package.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation (finalAttrs: { sha256 = "sha256-Wf/rGjUXr+RZmHFL6EGSYKQ2MvfOwI8LAmwezN/1fPw="; }; - buildFlags = with stdenv; [ + buildFlags = with stdenv.hostPlatform; [ ( if isDarwin then "osx" diff --git a/pkgs/by-name/ma/mailspring/mailsync.nix b/pkgs/by-name/ma/mailspring/mailsync.nix index 6f77d031ec29..49197fc78ed2 100644 --- a/pkgs/by-name/ma/mailspring/mailsync.nix +++ b/pkgs/by-name/ma/mailspring/mailsync.nix @@ -42,7 +42,7 @@ stdenv.mkDerivation { cmake pkg-config ] - ++ lib.optionals stdenv.isLinux [ + ++ lib.optionals stdenv.hostPlatform.isLinux [ autoPatchelfHook ]; @@ -64,7 +64,7 @@ stdenv.mkDerivation { xz zlib ] - ++ lib.optionals stdenv.isDarwin [ + ++ lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ]; @@ -99,7 +99,7 @@ stdenv.mkDerivation { # Transforms 'NAMES libfoo.a libfoo' into 'NAMES foo' sed -i -E 's/NAMES lib([a-zA-Z0-9]+)\.a lib\1/NAMES \1/g' CMakeLists.txt '' - + lib.optionalString stdenv.isDarwin '' + + lib.optionalString stdenv.hostPlatform.isDarwin '' # UUID_LIB is provided by system frameworks substituteInPlace CMakeLists.txt \ --replace-fail "find_library(UUID_LIB NAMES uuid)" "set(UUID_LIB \"\")" diff --git a/pkgs/by-name/nu/nusmv/package.nix b/pkgs/by-name/nu/nusmv/package.nix index f56d1d41aed7..b892a44c51f0 100644 --- a/pkgs/by-name/nu/nusmv/package.nix +++ b/pkgs/by-name/nu/nusmv/package.nix @@ -10,7 +10,7 @@ stdenv.mkDerivation (finalAttrs: { version = "2.7.0"; src = - with stdenv; + with stdenv.hostPlatform; fetchurl ( if isx86_64 && isLinux then { diff --git a/pkgs/by-name/on/onnxruntime/package.nix b/pkgs/by-name/on/onnxruntime/package.nix index ef4d70237ce0..fd4edb828952 100644 --- a/pkgs/by-name/on/onnxruntime/package.nix +++ b/pkgs/by-name/on/onnxruntime/package.nix @@ -25,7 +25,7 @@ pythonSupport ? (stdenv.buildPlatform.canExecute stdenv.hostPlatform), cudaSupport ? config.cudaSupport, ncclSupport ? cudaSupport && cudaPackages.nccl.meta.available, - openvinoSupport ? stdenv.isLinux, + openvinoSupport ? stdenv.hostPlatform.isLinux, rocmSupport ? config.rocmSupport, coremlSupport ? stdenv.hostPlatform.isDarwin, withFullProtobuf ? false, diff --git a/pkgs/by-name/pc/pcb2gcode/package.nix b/pkgs/by-name/pc/pcb2gcode/package.nix index 2fb79f1b4be9..784d1da3ef47 100644 --- a/pkgs/by-name/pc/pcb2gcode/package.nix +++ b/pkgs/by-name/pc/pcb2gcode/package.nix @@ -36,7 +36,7 @@ stdenv.mkDerivation (finalAttrs: { (lib.cmakeBool "PCB2GCODE_COMPILE_WARNING_AS_ERROR" false) ]; - preConfigure = lib.optionalString stdenv.isDarwin '' + preConfigure = lib.optionalString stdenv.hostPlatform.isDarwin '' export CXXFLAGS="$CXXFLAGS -fpermissive -Wno-error=c++20-extensions -Wno-error=invalid-constexpr" ''; diff --git a/pkgs/by-name/re/reprepro/package.nix b/pkgs/by-name/re/reprepro/package.nix index 9994497a538a..130181b51627 100644 --- a/pkgs/by-name/re/reprepro/package.nix +++ b/pkgs/by-name/re/reprepro/package.nix @@ -15,7 +15,7 @@ }: let - theStdenv = if stdenv.isDarwin then gcc14Stdenv else stdenv; + theStdenv = if stdenv.hostPlatform.isDarwin then gcc14Stdenv else stdenv; in theStdenv.mkDerivation (finalAttrs: { pname = "reprepro"; diff --git a/pkgs/by-name/su/sundtek/package.nix b/pkgs/by-name/su/sundtek/package.nix index 733b36702a35..61845738a6b9 100644 --- a/pkgs/by-name/su/sundtek/package.nix +++ b/pkgs/by-name/su/sundtek/package.nix @@ -10,7 +10,7 @@ let "$out/bin" ]; platform = - with stdenv; + with stdenv.hostPlatform; if isx86_64 then "64bit" else if isi686 then @@ -18,7 +18,7 @@ let else throw "${system} not considered in build derivation. Might still be supported."; sha256 = - with stdenv; + with stdenv.hostPlatform; if isx86_64 then "1jfsng5n3phw5rqpkid9m5j7m7zgj5bifh7swvba7f97y6imdaax" else diff --git a/pkgs/by-name/tu/turingdb/package.nix b/pkgs/by-name/tu/turingdb/package.nix index 49fd998bb6c5..bc13009de94d 100644 --- a/pkgs/by-name/tu/turingdb/package.nix +++ b/pkgs/by-name/tu/turingdb/package.nix @@ -105,7 +105,7 @@ turingstdenv.mkDerivation (finalAttrs: { pugixml zlib ] - ++ lib.optionals turingstdenv.isDarwin [ llvmPackages_20.openmp ] + ++ lib.optionals turingstdenv.hostPlatform.isDarwin [ llvmPackages_20.openmp ] ++ lib.optionals stdenv.hostPlatform.isLinux [ stdenv.cc.cc.lib ] ++ lib.optionals cudaSupport [ cudaPackages.cuda_cudart diff --git a/pkgs/by-name/un/unblob/package.nix b/pkgs/by-name/un/unblob/package.nix index 552040ab866e..baab150401e8 100644 --- a/pkgs/by-name/un/unblob/package.nix +++ b/pkgs/by-name/un/unblob/package.nix @@ -42,7 +42,7 @@ let zstd lz4 ] - ++ lib.optional stdenvNoCC.isLinux partclone; + ++ lib.optional stdenvNoCC.hostPlatform.isLinux partclone; in python3.pkgs.buildPythonApplication rec { pname = "unblob"; diff --git a/pkgs/by-name/yb/yb/package.nix b/pkgs/by-name/yb/yb/package.nix index 198e7cc97dc9..5b5b174c3243 100644 --- a/pkgs/by-name/yb/yb/package.nix +++ b/pkgs/by-name/yb/yb/package.nix @@ -49,7 +49,7 @@ rustPlatform.buildRustPackage (finalAttrs: { installShellFiles ]; - buildInputs = lib.optionals stdenv.isLinux [ pcsclite ]; + buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ pcsclite ]; postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' # Bash completion: patch two clap_complete quirks: @@ -107,7 +107,7 @@ rustPlatform.buildRustPackage (finalAttrs: { pkg-config llvmPackages.libclang ]; - buildInputs = lib.optionals stdenv.isLinux [ pcsclite ]; + buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ pcsclite ]; LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib"; BINDGEN_EXTRA_CLANG_ARGS = "-I${llvmPackages.libclang.lib}/lib/clang/${lib.versions.major llvmPackages.release_version}/include"; diff --git a/pkgs/development/compilers/chicken/4/chicken.nix b/pkgs/development/compilers/chicken/4/chicken.nix index 21999870e3b2..fa96639f85db 100644 --- a/pkgs/development/compilers/chicken/4/chicken.nix +++ b/pkgs/development/compilers/chicken/4/chicken.nix @@ -10,7 +10,7 @@ let version = "4.13.0"; platform = - with stdenv; + with stdenv.hostPlatform; if isDarwin then "macosx" else if isCygwin then diff --git a/pkgs/development/compilers/chicken/5/chicken.nix b/pkgs/development/compilers/chicken/5/chicken.nix index 06b9dd6c1485..7df46bcebe8b 100644 --- a/pkgs/development/compilers/chicken/5/chicken.nix +++ b/pkgs/development/compilers/chicken/5/chicken.nix @@ -10,7 +10,7 @@ let platform = - with stdenv; + with stdenv.hostPlatform; if isDarwin then "macosx" else if isCygwin then diff --git a/pkgs/development/compilers/dotnet/source/vmr.nix b/pkgs/development/compilers/dotnet/source/vmr.nix index 56e8cfa311c3..fec51026975d 100644 --- a/pkgs/development/compilers/dotnet/source/vmr.nix +++ b/pkgs/development/compilers/dotnet/source/vmr.nix @@ -43,11 +43,10 @@ let stdenv = llvmPackages.stdenv; inherit (stdenv) - isLinux - isDarwin buildPlatform targetPlatform ; + inherit (stdenv.hostPlatform) isLinux isDarwin; inherit (swiftPackages) swift; releaseManifest = lib.importJSON releaseManifestFile; diff --git a/pkgs/development/compilers/llvm/common/flang-rt/default.nix b/pkgs/development/compilers/llvm/common/flang-rt/default.nix index 01a1d6ca8584..40944ccf2adc 100644 --- a/pkgs/development/compilers/llvm/common/flang-rt/default.nix +++ b/pkgs/development/compilers/llvm/common/flang-rt/default.nix @@ -15,7 +15,10 @@ let minDarwinVersion = "10.12"; effectiveDarwinVersion = - if stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion minDarwinVersion then + if + stdenv.hostPlatform.isDarwin + && lib.versionOlder stdenv.hostPlatform.darwinMinVersion minDarwinVersion + then minDarwinVersion else stdenv.hostPlatform.darwinMinVersion; @@ -57,7 +60,7 @@ stdenv.mkDerivation (finalAttrs: { libllvm ]; - env = lib.optionalAttrs stdenv.isDarwin { + env = lib.optionalAttrs stdenv.hostPlatform.isDarwin { MACOSX_DEPLOYMENT_TARGET = effectiveDarwinVersion; NIX_CFLAGS_COMPILE = "-mmacosx-version-min=${effectiveDarwinVersion}"; }; @@ -70,7 +73,7 @@ stdenv.mkDerivation (finalAttrs: { (lib.cmakeFeature "LLVM_DIR" "${libllvm.dev}/lib/cmake/llvm") (lib.cmakeFeature "LLVM_ENABLE_RUNTIMES" "flang-rt") ] - ++ lib.optionals stdenv.isDarwin [ + ++ lib.optionals stdenv.hostPlatform.isDarwin [ (lib.cmakeFeature "CMAKE_OSX_DEPLOYMENT_TARGET" effectiveDarwinVersion) ]; diff --git a/pkgs/development/libraries/ffmpeg/generic.nix b/pkgs/development/libraries/ffmpeg/generic.nix index 2181d2e4a26d..0188703a78fc 100644 --- a/pkgs/development/libraries/ffmpeg/generic.nix +++ b/pkgs/development/libraries/ffmpeg/generic.nix @@ -70,20 +70,20 @@ withDav1d ? withHeadlessDeps, # AV1 decoder (focused on speed and correctness) withDavs2 ? withFullDeps && withGPL, # AVS2 decoder withDc1394 ? withFullDeps && !stdenv.hostPlatform.isDarwin, # IIDC-1394 grabbing (ieee 1394) - withDrm ? withHeadlessDeps && (with stdenv; isLinux || isFreeBSD), # libdrm support + withDrm ? withHeadlessDeps && (with stdenv.hostPlatform; isLinux || isFreeBSD), # libdrm support withDvdnav ? withFullDeps && withGPL && lib.versionAtLeast version "7", # needed for DVD demuxing withDvdread ? withFullDeps && withGPL && lib.versionAtLeast version "7", # needed for DVD demuxing withFdkAac ? withFullDeps && (!withGPL || withUnfree), # Fraunhofer FDK AAC de/encoder withNvcodec ? withHeadlessDeps && ( - with stdenv; + with stdenv.hostPlatform; !isDarwin && !isAarch32 - && !hostPlatform.isLoongArch64 - && !hostPlatform.isRiscV - && !(hostPlatform.isPower && hostPlatform.isBigEndian) - && hostPlatform == buildPlatform + && !isLoongArch64 + && !isRiscV + && !(isPower && isBigEndian) + && stdenv.hostPlatform == stdenv.buildPlatform ), # dynamically linked Nvidia code withFlite ? withFullDeps, # Voice Synthesis withFontconfig ? withHeadlessDeps, # Needed for drawtext filter @@ -152,8 +152,8 @@ withUavs3d ? withFullDeps, # AVS3 decoder withV4l2 ? withHeadlessDeps && stdenv.hostPlatform.isLinux, # Video 4 Linux support withV4l2M2m ? withV4l2, - withVaapi ? withHeadlessDeps && (with stdenv; isLinux || isFreeBSD), # Vaapi hardware acceleration - withVdpau ? withSmallDeps && (with stdenv; isLinux || isFreeBSD), # Vdpau hardware acceleration + withVaapi ? withHeadlessDeps && (with stdenv.hostPlatform; isLinux || isFreeBSD), # Vaapi hardware acceleration + withVdpau ? withSmallDeps && (with stdenv.hostPlatform; isLinux || isFreeBSD), # Vdpau hardware acceleration withVidStab ? withHeadlessDeps && withGPL, # Video stabilization withVmaf ? withFullDeps && lib.versionAtLeast version "5", # Netflix's VMAF (Video Multi-Method Assessment Fusion) withVoAmrwbenc ? withFullDeps && withVersion3, # AMR-WB encoder diff --git a/pkgs/development/libraries/fmt/default.nix b/pkgs/development/libraries/fmt/default.nix index 641a91d75629..6c63ba589886 100644 --- a/pkgs/development/libraries/fmt/default.nix +++ b/pkgs/development/libraries/fmt/default.nix @@ -106,7 +106,7 @@ in version = "12.2.0"; hash = "sha256-Tc7PmNxUv7ajw6GaHPGEEtrD/fl6is7RB8TPestJa1o="; - patches = lib.optionals stdenv.is32bit [ + patches = lib.optionals stdenv.hostPlatform.is32bit [ # fix build on 32-bit targets # FIXME: remove in next update (fetchpatch { diff --git a/pkgs/development/python-modules/django-health-check/default.nix b/pkgs/development/python-modules/django-health-check/default.nix index ba4f3d30eff9..25c83dd8fe5f 100644 --- a/pkgs/development/python-modules/django-health-check/default.nix +++ b/pkgs/development/python-modules/django-health-check/default.nix @@ -69,7 +69,7 @@ buildPythonPackage (finalAttrs: { "test_check_status__nonexistent_hostname" "test_check_status__no_answer" ] - ++ lib.optionals stdenv.isDarwin [ + ++ lib.optionals stdenv.hostPlatform.isDarwin [ # sensors_temperatures is not available on darwin: https://psutil.readthedocs.io/stable/index.html#psutil.sensors_temperatures "TestTemperature" # some metrics aren't available on darwin: https://psutil.readthedocs.io/stable/index.html#psutil.virtual_memory diff --git a/pkgs/development/python-modules/otter-grader/default.nix b/pkgs/development/python-modules/otter-grader/default.nix index 7821be272a4d..42b5bbd5c31c 100644 --- a/pkgs/development/python-modules/otter-grader/default.nix +++ b/pkgs/development/python-modules/otter-grader/default.nix @@ -122,7 +122,7 @@ buildPythonPackage (finalAttrs: { # this R Markdown test, causing a partial credit output mismatch "test_rmd" ] - ++ lib.optionals stdenv.isDarwin [ + ++ lib.optionals stdenv.hostPlatform.isDarwin [ # socket.bind() fails under macOS sandbox "test_otter_example" "test_jupyterlite" diff --git a/pkgs/development/python-modules/simple-pid/default.nix b/pkgs/development/python-modules/simple-pid/default.nix index 2871d0521912..a1a8baa5f6c5 100644 --- a/pkgs/development/python-modules/simple-pid/default.nix +++ b/pkgs/development/python-modules/simple-pid/default.nix @@ -27,7 +27,7 @@ buildPythonPackage (finalAttrs: { "simple_pid" ]; - doCheck = !stdenv.isDarwin; + doCheck = !stdenv.hostPlatform.isDarwin; nativeCheckInputs = [ pytestCheckHook diff --git a/pkgs/servers/sql/postgresql/ext/vectorchord/package.nix b/pkgs/servers/sql/postgresql/ext/vectorchord/package.nix index 7d40097abf6a..4df95e952937 100644 --- a/pkgs/servers/sql/postgresql/ext/vectorchord/package.nix +++ b/pkgs/servers/sql/postgresql/ext/vectorchord/package.nix @@ -25,16 +25,18 @@ buildPgrxExtension (finalAttrs: { cargoHash = "sha256-IXOCzKJArNOcb/2TcJbLz1XdCquUpyF/cLHYU5vmlko="; - patches = lib.optional (lib.versionOlder rustc.llvm.version "22.0.0" && stdenv.isx86_64) [ - # Due to a bug in LLVM 21, build fails on x86_64 with: - # `rustc-LLVM ERROR: Cannot select: intrinsic %llvm.x86.avx512.vpdpbusd.512`. - # This has been fixed in Rust's build of LLVM and LLVM 22 with https://github.com/rust-lang/llvm-project/commit/94e2c19f86a699d7a19ff0f4130b696699189c8d, - # but this is not reflected in nixpkgs' packaging of rustc. - # For this reason, we temporarily disable avx512vnni support until this is fixed in nixpkgs. - # This might cause a performance penalty, but should not affect correctness. - # See https://github.com/NixOS/nixpkgs/pull/537113#issuecomment-4846239887 - ./0001-disable-avx512vnni.patch - ]; + patches = + lib.optional (lib.versionOlder rustc.llvm.version "22.0.0" && stdenv.hostPlatform.isx86_64) + [ + # Due to a bug in LLVM 21, build fails on x86_64 with: + # `rustc-LLVM ERROR: Cannot select: intrinsic %llvm.x86.avx512.vpdpbusd.512`. + # This has been fixed in Rust's build of LLVM and LLVM 22 with https://github.com/rust-lang/llvm-project/commit/94e2c19f86a699d7a19ff0f4130b696699189c8d, + # but this is not reflected in nixpkgs' packaging of rustc. + # For this reason, we temporarily disable avx512vnni support until this is fixed in nixpkgs. + # This might cause a performance penalty, but should not affect correctness. + # See https://github.com/NixOS/nixpkgs/pull/537113#issuecomment-4846239887 + ./0001-disable-avx512vnni.patch + ]; # Include upgrade scripts in the final package # https://github.com/supervc-stack/VectorChord/blob/0.5.0/crates/make/src/main.rs#L366 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2d6479031204..890192a8b1e1 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3256,7 +3256,7 @@ with pkgs; ccWrapper.override (prev: { cc = prev.cc.override { reproducibleBuild = false; - profiledCompiler = with stdenv; (!isDarwin && hostPlatform.isx86); + profiledCompiler = with stdenv.hostPlatform; (!isDarwin && isx86); }; }) else From 4bb4cff36852dda1e32fc2ee0d377b516ca02339 Mon Sep 17 00:00:00 2001 From: Aliaksandr Date: Sat, 9 May 2026 17:40:32 +0300 Subject: [PATCH 114/148] stdenv: deprecate `is*` aliases in favor of `hostPlatform.is*` These shorthands hide the platform distinction and are unfit for cross-compilation. Wrap them in `lib.warn` so each access prints a deprecation notice, and gate them on `config.allowAliases` so they can be removed entirely. Assisted-by: claude-code with claude-opus-4-8 --- pkgs/stdenv/generic/default.nix | 48 ++++++++++++++++++++------------- 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix index 95d9228d7da2..6d78cc0f0c14 100644 --- a/pkgs/stdenv/generic/default.nix +++ b/pkgs/stdenv/generic/default.nix @@ -201,25 +201,35 @@ let extraSandboxProfile ; - # Utility flags to test the type of platform. - inherit (hostPlatform) - isDarwin - isLinux - isSunOS - isCygwin - isBSD - isFreeBSD - isOpenBSD - isi686 - isx86_32 - isx86_64 - is32bit - is64bit - isAarch32 - isAarch64 - isMips - isBigEndian - ; + } + // lib.optionalAttrs config.allowAliases ( + lib.mapAttrs + ( + name: value: lib.warn "stdenv.${name} is deprecated, use stdenv.hostPlatform.${name} instead" value + ) + { + # Added 2026-05-09 + inherit (hostPlatform) + isDarwin + isLinux + isSunOS + isCygwin + isBSD + isFreeBSD + isOpenBSD + isi686 + isx86_32 + isx86_64 + is32bit + is64bit + isAarch32 + isAarch64 + isMips + isBigEndian + ; + } + ) + // { # Override `system` so that packages can get the system of the host # platform through `stdenv.system`. `system` is originally set to the From 2876516ec580186c191ce8c01c2142730f5c3dbf Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 18:35:31 +0000 Subject: [PATCH 115/148] nats-server: 2.14.4 -> 2.14.5 --- pkgs/by-name/na/nats-server/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/na/nats-server/package.nix b/pkgs/by-name/na/nats-server/package.nix index 31a5d4c09ad4..b008ceae3f7b 100644 --- a/pkgs/by-name/na/nats-server/package.nix +++ b/pkgs/by-name/na/nats-server/package.nix @@ -7,16 +7,16 @@ buildGoModule (finalAttrs: { pname = "nats-server"; - version = "2.14.4"; + version = "2.14.5"; src = fetchFromGitHub { owner = "nats-io"; repo = "nats-server"; rev = "v${finalAttrs.version}"; - hash = "sha256-Jbw+R1na8tjTLyKJC/KDPhA1G1jgNxMhC+xD38IWH2k="; + hash = "sha256-rsbvFUJcprWEZx0SPfIr+M0IyyCYbDncBLenOBniumM="; }; - vendorHash = "sha256-Lmbacb85+hTe4QoeO72aPOytZQiMQCymOelmGwh0/2E="; + vendorHash = "sha256-VB4x100hSSsY6fqODuIefanzchOHlfyfJrNSJUea42U="; doCheck = false; From 986b139bd57afad67a30b6c367eea88b439821c6 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 18:39:08 +0000 Subject: [PATCH 116/148] megabasterd: 8.57 -> 8.58 --- pkgs/by-name/me/megabasterd/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/me/megabasterd/package.nix b/pkgs/by-name/me/megabasterd/package.nix index 7c1e2b8d6ce4..41dd23b5e871 100644 --- a/pkgs/by-name/me/megabasterd/package.nix +++ b/pkgs/by-name/me/megabasterd/package.nix @@ -6,7 +6,7 @@ maven, }: let - version = "8.57"; + version = "8.58"; in maven.buildMavenPackage { pname = "megabasterd"; @@ -16,7 +16,7 @@ maven.buildMavenPackage { owner = "tonikelope"; repo = "megabasterd"; tag = "v${version}"; - hash = "sha256-6PKBzQA3lBa9/7J8bymGmnW3OPsRV4GgZ7dc7H6fOuE="; + hash = "sha256-cF0OU/b4BthRmWYUB0ZjE/gRO//T73njgp3iZt+USgA="; }; mvnHash = "sha256-JZ8INISDHPVhxylKwQc2DybPqxfwcGpkWxDhq8Fpqt8="; From 822a632fed49695c4ae6c73edb1e9af3f0716a3c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 18:45:21 +0000 Subject: [PATCH 117/148] luwen: 0.8.5 -> 0.9.0 --- pkgs/by-name/lu/luwen/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/lu/luwen/package.nix b/pkgs/by-name/lu/luwen/package.nix index f9a80ad2fa3c..706f584d8d59 100644 --- a/pkgs/by-name/lu/luwen/package.nix +++ b/pkgs/by-name/lu/luwen/package.nix @@ -6,21 +6,21 @@ }: rustPlatform.buildRustPackage (finalAttrs: { pname = "luwen"; - version = "0.8.5"; + version = "0.9.0"; __structuredAttrs = true; src = fetchFromGitHub { owner = "tenstorrent"; repo = "luwen"; tag = "v${finalAttrs.version}"; - hash = "sha256-lY7cZ+8C0UEGGYxufl4Vi8g0L4AJFXaGqn7XE2ivTcQ="; + hash = "sha256-pc/7G9YxBTg2uYn47ONxI7zsfdK3Ex4zndLASRtDQyk="; }; nativeBuildInputs = [ protobuf ]; - cargoHash = "sha256-QBGXbRiBk4WIQFopq1OccmUHgx5GzR/PKhMH4Ie+fyg="; + cargoHash = "sha256-2ibAZnfv++eyCB57F0uD7XFJ3MP9SnAApOn6uelo3Po="; meta = { description = "Tenstorrent system interface tools"; From c82d6c12d815f6e4cb756abb90ac2f9938085cb5 Mon Sep 17 00:00:00 2001 From: Ryan Housand Date: Fri, 7 Aug 2026 09:37:50 -0400 Subject: [PATCH 118/148] prometheus-snowflake-exporter: init at 0-unstable-2026-07-02 Assisted-by: Claude Code (Claude Opus 4.8) --- .../prometheus-snowflake-exporter/package.nix | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 pkgs/by-name/pr/prometheus-snowflake-exporter/package.nix diff --git a/pkgs/by-name/pr/prometheus-snowflake-exporter/package.nix b/pkgs/by-name/pr/prometheus-snowflake-exporter/package.nix new file mode 100644 index 000000000000..85f2e0152755 --- /dev/null +++ b/pkgs/by-name/pr/prometheus-snowflake-exporter/package.nix @@ -0,0 +1,48 @@ +{ + lib, + buildGoModule, + fetchFromGitHub, + nix-update-script, + versionCheckHook, +}: + +buildGoModule (finalAttrs: { + pname = "prometheus-snowflake-exporter"; + # No tagged release upstream (only a moving `latest` tag), so pin the commit and + # use nixpkgs' unstable versioning. Bump the date + rev on update. + version = "0-unstable-2026-07-02"; + + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "grafana"; + repo = "snowflake-prometheus-exporter"; + rev = "d9447d3401aa81b26c091775606c502bf8e2d7cd"; + hash = "sha256-3yaZ2kk2k5ivUNgRNazYjA38zY4dvsTOrkvftQpCW5A="; + }; + + vendorHash = "sha256-HvlZ5g1LqAoXuFuidmHCMTeFfivqUR2ryAh0hQayxnc="; + + ldflags = [ + "-s" + "-w" + "-X github.com/prometheus/common/version.Version=${finalAttrs.version}" + "-X github.com/prometheus/common/version.Branch=master" + "-X github.com/prometheus/common/version.BuildUser=nixbld@nixpkgs" + ]; + + nativeInstallCheckInputs = [ versionCheckHook ]; + doInstallCheck = true; + + passthru.updateScript = nix-update-script { + extraArgs = [ "--version=branch" ]; + }; + + meta = { + description = "Prometheus exporter for Snowflake metrics"; + homepage = "https://github.com/grafana/snowflake-prometheus-exporter"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ rhousand ]; + mainProgram = "snowflake-exporter"; + }; +}) From 9c2bb5ac1738c8c53bf9989f32e332d3eac2d3e7 Mon Sep 17 00:00:00 2001 From: Jost Alemann Date: Wed, 12 Aug 2026 21:05:59 +0200 Subject: [PATCH 119/148] lazygit: 0.64.0 -> 0.64.1 Changelog: https://github.com/jesseduffield/lazygit/releases/tag/v0.64.1 Diff: https://github.com/jesseduffield/lazygit/compare/v0.64.0...v0.64.1 --- pkgs/by-name/la/lazygit/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/la/lazygit/package.nix b/pkgs/by-name/la/lazygit/package.nix index 992226a265ab..37e92d69d113 100644 --- a/pkgs/by-name/la/lazygit/package.nix +++ b/pkgs/by-name/la/lazygit/package.nix @@ -8,13 +8,13 @@ }: buildGoModule (finalAttrs: { pname = "lazygit"; - version = "0.64.0"; + version = "0.64.1"; src = fetchFromGitHub { owner = "jesseduffield"; repo = "lazygit"; tag = "v${finalAttrs.version}"; - hash = "sha256-iN1QEZBS4TxfBMe3+NoYx33wIrgLUSG7I8rNBSTinfc="; + hash = "sha256-UYyIrSHk+efKvHvxQs7FsOGA7e0uM9mg+1O1WRJIeEU="; }; vendorHash = null; From eadb67ba0ef2b4b629cb5ee2eeef4bad75a021d1 Mon Sep 17 00:00:00 2001 From: Grayson Tinker Date: Wed, 12 Aug 2026 12:06:06 -0700 Subject: [PATCH 120/148] rhash: add GraysonTinker as maintainer --- pkgs/by-name/rh/rhash/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/rh/rhash/package.nix b/pkgs/by-name/rh/rhash/package.nix index e8ef05814fee..54c326c95677 100644 --- a/pkgs/by-name/rh/rhash/package.nix +++ b/pkgs/by-name/rh/rhash/package.nix @@ -51,6 +51,6 @@ stdenv.mkDerivation (finalAttrs: { description = "Console utility and library for computing and verifying hash sums of files"; license = lib.licenses.bsd0; platforms = lib.platforms.all; - maintainers = [ ]; + maintainers = with lib.maintainers; [ graysontinker ]; }; }) From 7532d3bfc24b4b89cee18cb2ef9feaba9e751cab Mon Sep 17 00:00:00 2001 From: Ryan Hendrickson Date: Sun, 9 Aug 2026 00:44:15 -0400 Subject: [PATCH 121/148] Reapply "nixos/seerr: use lib.mkStateRevisionOption" This reverts commit 8820b84c40fc5e6541ff5e0a3e6eb0658aee96a1. --- .../development/state-revision.section.md | 57 ++++++++ .../development/writing-modules.chapter.md | 1 + nixos/doc/manual/redirects.json | 3 + nixos/lib/utils.nix | 124 ++++++++++++++++++ nixos/modules/misc/version.nix | 24 ++++ nixos/modules/services/misc/seerr.nix | 24 +++- nixos/tests/all-tests.nix | 3 +- nixos/tests/moduleStateRevisions.nix | 25 ++++ nixos/tests/utils/default.nix | 6 +- nixos/tests/utils/mkStateRevisionOption.nix | 39 ++++++ 10 files changed, 301 insertions(+), 5 deletions(-) create mode 100644 nixos/doc/manual/development/state-revision.section.md create mode 100644 nixos/tests/moduleStateRevisions.nix create mode 100644 nixos/tests/utils/mkStateRevisionOption.nix diff --git a/nixos/doc/manual/development/state-revision.section.md b/nixos/doc/manual/development/state-revision.section.md new file mode 100644 index 000000000000..8a8f13aeda74 --- /dev/null +++ b/nixos/doc/manual/development/state-revision.section.md @@ -0,0 +1,57 @@ +# State revision {#sec-state-revision} + +NixOS includes a {option}`system.stateVersion` option, used by some modules for a +variety of reasons related to non-backward-compatible changes to software or +the module itself. +Module authors are discouraged from adding new uses of +{option}`system.stateVersion` to their module. + +However, when the alternatives are impractical, modules that wish to consume +{option}`system.stateVersion` should instead define their own `stateRevision` +option using `utils.mkStateRevisionOption`. +There should be no uses of `config.system.stateVersion` directly in the module. + +(Note the name difference: the {option}`system.stateVersion` option, with a V, +takes a value that looks like "YY.MM". +A `stateRevision` option, with an R, takes a non-negative integer value.) + +Modules should also add the value of their `stateRevision` option to +`system.moduleStateRevisions."your.module.stateRevision"`, when the module is +enabled. +This is a purely informative option that exists to help describe the effects of +changing {option}`system.stateVersion`. + +Example: + +```nix +{ + lib, + config, + utils, + ... +}: +let + cfg = config.services.whatever; +in +{ + options.services.whatever = { + enable = lib.mkEnableOption "whatever, a service that does whatever"; + stateRevision = utils.mkStateRevisionOption { + descriptionName = "the whatever service"; + migrations = { + "26.05" = "Rename `/var/lib/old_name` to `/var/lib/new_name`."; + }; + }; + }; + + config = lib.mkIf cfg.enable { + systemd.services.whatever = { + # ... + serviceConfig.StateDirectory = if cfg.stateRevision < 1 then "old_name" else "new_name"; + }; + + # Important: this is inside the `lib.mkIf cfg.enable` + system.moduleStateRevisions."services.whatever.stateRevision" = cfg.stateRevision; + }; +} +``` diff --git a/nixos/doc/manual/development/writing-modules.chapter.md b/nixos/doc/manual/development/writing-modules.chapter.md index a58ebb1709ab..626834fc3e66 100644 --- a/nixos/doc/manual/development/writing-modules.chapter.md +++ b/nixos/doc/manual/development/writing-modules.chapter.md @@ -220,4 +220,5 @@ importing-modules.section.md replace-modules.section.md freeform-modules.section.md settings-options.section.md +state-revision.section.md ``` diff --git a/nixos/doc/manual/redirects.json b/nixos/doc/manual/redirects.json index 6e8a587f02c4..9901e543a346 100644 --- a/nixos/doc/manual/redirects.json +++ b/nixos/doc/manual/redirects.json @@ -253,6 +253,9 @@ "sec-override-nixos-test": [ "index.html#sec-override-nixos-test" ], + "sec-state-revision": [ + "index.html#sec-state-revision" + ], "sec-wireless-declarative": [ "index.html#sec-wireless-declarative" ], diff --git a/nixos/lib/utils.nix b/nixos/lib/utils.nix index 487b20f53d8c..964ca580ce1a 100644 --- a/nixos/lib/utils.nix +++ b/nixos/lib/utils.nix @@ -6,8 +6,10 @@ let inherit (lib) + all any attrNames + concatImapStringsSep concatMapStringsSep concatStringsSep elem @@ -27,8 +29,11 @@ let isList isPath isString + length listToAttrs + literalMD mapAttrs + mkOption nameValuePair optionalString removePrefix @@ -36,8 +41,10 @@ let splitString stringToCharacters types + versionOlder ; + inherit (lib.lists) findFirstIndex; inherit (lib.strings) toJSON escapeC; in @@ -604,6 +611,123 @@ let lib.listToAttrs ]; }; + + /** + Creates a per-module `stateRevision` option that takes an int value, with a + default that is derived from `system.stateVersion`. + + # Inputs + + `descriptionName` + : A human-friendly name for your module, used for the description of the + created option. + + `migrations` + : Attribute set that maps from values of `system.stateVersion` + (representing the breakpoints at which the default value of this option + will change) to Markdown instructions to users for manually migrating + their data to this breakpoint. The migration instructions will be + included in the NixOS documentation for this option. (These instructions + must only contain Markdown inlines, because they will be rendered in a + table. In particular, lists will not render correctly.) + + `migrations` will also be exposed as an attribute on the result. + + # Examples + :::{.example} + ## `lib.options.mkStateRevisionOption` usage example + + ```nix + exampleModule = + { lib, config, utils, ... }: + { + options.services.whatever = { + stateRevision = utils.mkStateRevisionOption { + descriptionName = "the whatever service"; + migrations = { + "26.05" = "Rename `/var/lib/old_name` to `/var/lib/new_name`."; + "26.11" = "Run the `upgrade_whatever` utility."; + }; + }; + }; + }; + } + + (pkgs.nixos [ + exampleModule + { system.stateVersion = "25.11"; } + ]).config.services.whatever.stateRevision # => 0 + (pkgs.nixos [ + exampleModule + { system.stateVersion = "26.05"; } + ]).config.services.whatever.stateRevision # => 1 + (pkgs.nixos [ + exampleModule + { system.stateVersion = "27.05"; } + ]).config.services.whatever.stateRevision # => 2 + ``` + + ::: + + Modules should use this function when they change how data managed by the + module is persisted on the system between NixOS releases. + + The default value of the option will be the number of attributes in the + `migrations` parameter with name less than or equal to the value of + `system.stateVersion`. + + When using this function, don't forget to add the option's value to + `system.moduleStateRevisions."your.module.stateRevision"` when your module is + enabled. + */ + mkStateRevisionOption = + { + descriptionName, + migrations, + }: + let + versions = attrNames migrations; + maxVal = length versions; + in + assert all (v: builtins.match "[0-9]{2}\\.[0-9]{2}" v != null) versions; + mkOption { + type = types.ints.between 0 maxVal; + description = '' + This option versions the format of state persisted by + ${descriptionName}. Its default value depends on the value of + {option}`system.stateVersion`. + + Users who wish to increment this option will need to take manual + migration steps to preserve their data. **If you perform these + migrations, rolling back to an older generation will require also + reversing the migrations to the state expected by that generation.** + The migrations needed to advance to each value of this option are as + follows (perform all instructions after the row for the current + `stateRevision`, up to and including the row for the new + `stateRevision`): + + | `stateRevision` | Migration instructions | + |-----------------|------------------------| + | 0 | (none) | + ${concatImapStringsSep "\n" ( + v: sv: "| ${toString v} | ${replaceStrings [ "\n" ] [ " " ] migrations.${sv}} |" + ) versions} + + Note that you do **not** need to change {option}`system.stateVersion` + in order to update this option. {option}`system.stateVersion` only + determines the default value of this option. Most users should not + change {option}`system.stateVersion` at all. + ''; + default = findFirstIndex (versionOlder config.system.stateVersion) maxVal versions; + defaultText = literalMD '' + If {option}`system.stateVersion` is: + ${concatImapStringsSep "\n" (v: sv: "* <${sv}: ${toString (v - 1)}") versions} + * otherwise: ${toString maxVal} + ''; + } + // { + inherit migrations; + }; }; in utils diff --git a/nixos/modules/misc/version.nix b/nixos/modules/misc/version.nix index b61e00d647b2..6270eb663db8 100644 --- a/nixos/modules/misc/version.nix +++ b/nixos/modules/misc/version.nix @@ -254,6 +254,30 @@ in ''; }; + moduleStateRevisions = mkOption { + type = + let + baseType = types.attrsOf types.ints.unsigned; + isStateRevisionOption = x: lib.isOption x && x ? migrations; + in + types.addCheck baseType ( + attrs: + builtins.all ( + attrPath: isStateRevisionOption (lib.attrByPath (lib.splitString "." attrPath) null options) + ) (builtins.attrNames attrs) + ) + // { + description = "${baseType.description}, in which every attribute name is the path to an option created with mkStateRevisionOption"; + }; + default = { }; + internal = true; + description = '' + NixOS modules should set attributes on this option. Users should leave + it alone. Future tooling may use it to determine the consequences of + updating {option}`system.stateVersion`. + ''; + }; + configurationRevision = mkOption { type = types.nullOr types.str; default = null; diff --git a/nixos/modules/services/misc/seerr.nix b/nixos/modules/services/misc/seerr.nix index fc91fd8ba30d..e194216e1fc7 100644 --- a/nixos/modules/services/misc/seerr.nix +++ b/nixos/modules/services/misc/seerr.nix @@ -2,13 +2,14 @@ config, pkgs, lib, + utils, ... }: let cfg = config.services.seerr; - # 26.05 introduced a breaking change which is guarded behind stateVersion to avoid - # breaking users. - useNewConfigLocation = lib.versionAtLeast config.system.stateVersion "26.05"; + # 26.05 introduced a breaking change which is guarded behind stateRevision to + # avoid breaking users. + useNewConfigLocation = cfg.stateRevision >= 1; in { imports = [ @@ -39,8 +40,23 @@ in configDir = lib.mkOption { type = lib.types.path; default = if useNewConfigLocation then "/var/lib/seerr/" else "/var/lib/jellyseerr/config"; + defaultText = lib.literalMD "{file}`/var/lib/seerr` (or {file}`/var/lib/jellyseerr/config` if {option}`services.seerr.stateRevision` < 1)"; description = "Config data directory"; }; + + stateRevision = utils.mkStateRevisionOption { + descriptionName = "Seerr"; + migrations = { + "26.05" = '' + Move {file}`/var/lib/private/jellyseerr/config` to + {file}`/var/lib/private/seerr`, if you have not set + {option}`services.seerr.configDir`. (If you have set + {option}`services.seerr.configDir`, you should also have forced + {option}`systemd.services.seerr.serviceConfig.StateDirectory`, and in + that case `stateRevision` does not affect your configuration.) + ''; + }; + }; }; config = lib.mkIf cfg.enable { @@ -81,5 +97,7 @@ in networking.firewall = lib.mkIf cfg.openFirewall { allowedTCPPorts = [ cfg.port ]; }; + + system.moduleStateRevisions."services.seerr.stateRevision" = cfg.stateRevision; }; } diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 4fb7cec8a0b6..142da6ccb52b 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -1059,6 +1059,7 @@ in modularService = pkgs.callPackage ../modules/system/service/systemd/test.nix { inherit evalSystem; }; + moduleStateRevisions = pkgs.callPackage ./moduleStateRevisions.nix { }; molly-brown = runTest ./molly-brown.nix; mollysocket = runTest ./mollysocket.nix; monado = runTest ./monado.nix; @@ -1842,7 +1843,7 @@ in userborn-mutable-users = runTest ./userborn-mutable-users.nix; userborn-static = runTest ./userborn-static.nix; ustreamer = runTest ./ustreamer.nix; - utils = import ./utils { inherit runTest; }; + utils = pkgs.callPackage ./utils { inherit runTest; }; utmp = runTest ./utmp.nix; uwsgi = runTest ./uwsgi.nix; v2ray = runTest ./v2ray.nix; diff --git a/nixos/tests/moduleStateRevisions.nix b/nixos/tests/moduleStateRevisions.nix new file mode 100644 index 000000000000..3bce4c312488 --- /dev/null +++ b/nixos/tests/moduleStateRevisions.nix @@ -0,0 +1,25 @@ +{ + lib, + emptyFile, + nixos, +}: +let + evalModuleStateRevisions = + cfg: + (nixos [ + { system.stateVersion = lib.trivial.release; } + cfg + ]).config.system.moduleStateRevisions; + + # For modules that follow the .enable, .stateRevision pattern: + testModule = + path: + evalModuleStateRevisions (lib.setAttrByPath path { enable = true; }) + ? "${builtins.concatStringsSep "." path}.stateRevision"; +in +assert evalModuleStateRevisions { } == { }; +assert testModule [ + "services" + "seerr" +]; +emptyFile diff --git a/nixos/tests/utils/default.nix b/nixos/tests/utils/default.nix index a7c5f242c822..fdcf766ffbac 100644 --- a/nixos/tests/utils/default.nix +++ b/nixos/tests/utils/default.nix @@ -1,5 +1,9 @@ -{ runTest }: +{ + callPackage, + runTest, +}: { genJqSecretsReplacement = runTest ./genJqSecretsReplacement.nix; + mkStateRevisionOption = callPackage ./mkStateRevisionOption.nix { }; } diff --git a/nixos/tests/utils/mkStateRevisionOption.nix b/nixos/tests/utils/mkStateRevisionOption.nix new file mode 100644 index 000000000000..b32a27cec266 --- /dev/null +++ b/nixos/tests/utils/mkStateRevisionOption.nix @@ -0,0 +1,39 @@ +{ + emptyFile, + nixos, +}: +let + result = nixos ( + { utils, ... }: + { + options = { + stateRevision1 = utils.mkStateRevisionOption { + descriptionName = "..."; + migrations = { + "27.05" = "..."; + }; + }; + stateRevision2 = utils.mkStateRevisionOption { + descriptionName = "..."; + migrations = { + "26.11" = "..."; + }; + }; + stateRevision3 = utils.mkStateRevisionOption { + descriptionName = "..."; + migrations = { + "24.05" = "..."; + "27.05" = "..."; + }; + }; + }; + config.system.stateVersion = "26.11"; + } + ); + inherit (result) config options; +in +assert config.stateRevision1 == 0; +assert config.stateRevision2 == 1; +assert config.stateRevision3 == 1; +assert options.stateRevision1.migrations == { "27.05" = "..."; }; +emptyFile From 1e7ede313f504bbce3d3ddcdcbda924ca7925121 Mon Sep 17 00:00:00 2001 From: Ryan Hendrickson Date: Sun, 9 Aug 2026 00:44:51 -0400 Subject: [PATCH 122/148] utils.mkStateRevisionOption: replace table with ol Use an ordered list in the description of options created by utils.mkStateRevisionOption instead of a table. The man page renderer (for `man configuration.nix`) does not support generating tables, even though the HTML renderer does. --- nixos/lib/utils.nix | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/nixos/lib/utils.nix b/nixos/lib/utils.nix index 964ca580ce1a..224d7ad90330 100644 --- a/nixos/lib/utils.nix +++ b/nixos/lib/utils.nix @@ -628,8 +628,9 @@ let will change) to Markdown instructions to users for manually migrating their data to this breakpoint. The migration instructions will be included in the NixOS documentation for this option. (These instructions - must only contain Markdown inlines, because they will be rendered in a - table. In particular, lists will not render correctly.) + must only contain Markdown inlines, because they will be rendered as + items in an ordered list. In particular, nested lists will not render + correctly.) `migrations` will also be exposed as an attribute on the result. @@ -706,11 +707,9 @@ let `stateRevision`, up to and including the row for the new `stateRevision`): - | `stateRevision` | Migration instructions | - |-----------------|------------------------| - | 0 | (none) | + 0. (none) ${concatImapStringsSep "\n" ( - v: sv: "| ${toString v} | ${replaceStrings [ "\n" ] [ " " ] migrations.${sv}} |" + v: sv: "${toString v}. ${replaceStrings [ "\n" ] [ " " ] migrations.${sv}}" ) versions} Note that you do **not** need to change {option}`system.stateVersion` From 01e64940120c9c573061848b2ba1710ba8d79453 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 20:22:41 +0000 Subject: [PATCH 123/148] terraform-providers.dnsimple_dnsimple: 2.1.2 -> 2.2.0 --- .../networking/cluster/terraform-providers/providers.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json index 3ef1c691bc9b..99b24d22df71 100644 --- a/pkgs/applications/networking/cluster/terraform-providers/providers.json +++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json @@ -337,13 +337,13 @@ "vendorHash": "sha256-fP6brpY/wRI1Yjgapzi+FfOci65gxWeOZulXbGdilrE=" }, "dnsimple_dnsimple": { - "hash": "sha256-8ZanbgHaszFiorzY/ulpVvUesmyx7O3SKXmwOi5WUSU=", + "hash": "sha256-YkoBGPcNKBeAHWcsRldHSsZ/hvWngCiySjK5zzI9jNE=", "homepage": "https://registry.terraform.io/providers/dnsimple/dnsimple", "owner": "dnsimple", "repo": "terraform-provider-dnsimple", - "rev": "v2.1.2", + "rev": "v2.2.0", "spdx": "MPL-2.0", - "vendorHash": "sha256-1CpswocnTe6aj4TP7fMGy6mv0d/yX8FcYAKkAW5k7kk=" + "vendorHash": "sha256-SuwDjQMgzcnNsBf/wXZvys6VINgnFeaWcV7jIMbNXo8=" }, "dnsmadeeasy_dme": { "hash": "sha256-JH9YcM9Fvd1x0BJpLUZCm6a9hZZxySrkFVLP89FO3fU=", From ff6e0f6e94ae9d82289bea581bf70bdd41f35685 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 20:24:39 +0000 Subject: [PATCH 124/148] radicle-ci-broker: 0.30.0 -> 0.31.0 --- pkgs/by-name/ra/radicle-ci-broker/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ra/radicle-ci-broker/package.nix b/pkgs/by-name/ra/radicle-ci-broker/package.nix index d74f46f73b55..f9989d01d7f4 100644 --- a/pkgs/by-name/ra/radicle-ci-broker/package.nix +++ b/pkgs/by-name/ra/radicle-ci-broker/package.nix @@ -14,14 +14,14 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "radicle-ci-broker"; - version = "0.30.0"; + version = "0.31.0"; src = fetchFromRadicle { seed = "seed.radicle.dev"; repo = "zwTxygwuz5LDGBq255RA2CbNGrz8"; node = "z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV"; tag = "v${finalAttrs.version}"; - hash = "sha256-30+s//C9uMpGgA976RRduHmnmF6YEYmmG+V5P/1TYhA="; + hash = "sha256-yY2ke4JBAn0ZTaZ7HV8GCPF5Yqj1j+7GvjFXQQVM3ME="; leaveDotGit = true; postFetch = '' git -C $out rev-parse --short HEAD > $out/.git_head @@ -29,7 +29,7 @@ rustPlatform.buildRustPackage (finalAttrs: { ''; }; - cargoHash = "sha256-9DzdeJcjl8IpmDR+kXdbEHrGi/5e9P26HsZJ9OPZRSA="; + cargoHash = "sha256-+XB2+k18gWEO7tpsQK+ua133PcZ0mxV+txle7VutXIk="; postPatch = '' substituteInPlace build.rs \ From d8ad24b1cd45120d49e2e5b2fe900efb7fc06840 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Mon, 10 Aug 2026 18:37:43 -0400 Subject: [PATCH 125/148] gcc/ng: point libgcc's `gcc/configure` at the real target `as` and `ld` `libgcc` runs `gcc/configure` itself, to generate the makefile fragments the split build has nobody else to produce. That configure identifies the target assembler and linker from `AS_FOR_TARGET`/`LD_FOR_TARGET` and probes them for capabilities. `preConfigure` set those *after* assigning `AS=$AS_FOR_BUILD` and `LD=$LD_FOR_BUILD`, deriving them with `$(basename $AS)`. The build assignments stomp on the variables the target ones are read from, so it took the basename of the *build* tools -- plain `as` and `ld` -- and looked for them inside the *target* wrappers, which install machine-prefixed names only. Neither path existed. Nothing about that is target-specific; it catches every cross target. `gcc/configure` does not treat it as an error: a probe it cannot run records "no", so every `gcc_cv_as_*`/`gcc_cv_ld_*` capability came back "no". The silently fatal one is `HAVE_LD_EH_FRAME_HDR`, which `unwind-dw2-fde-dip.c` gates `USE_PT_GNU_EH_FRAME` on, leaving the unwinder with only the `__register_frame` registry, which nothing populates for normally linked objects. libgcc and libstdc++ still build, link and install cleanly, and every C++ `throw` finds no FDE and calls `std::terminate`. Snapshot the target tool names before the `*_FOR_BUILD` assignments clobber them. `CPP` is not always exported, so fall back to the machine-prefixed name the wrappers install. Assisted-by: Claude Code (Claude Opus 5) --- .../gcc/ng/common/libgcc/default.nix | 37 +++++++++++++++++-- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/pkgs/development/compilers/gcc/ng/common/libgcc/default.nix b/pkgs/development/compilers/gcc/ng/common/libgcc/default.nix index d88c2e6c0ae5..9cd1561d76ff 100644 --- a/pkgs/development/compilers/gcc/ng/common/libgcc/default.nix +++ b/pkgs/development/compilers/gcc/ng/common/libgcc/default.nix @@ -100,6 +100,35 @@ stdenv.mkDerivation (finalAttrs: { cd "$buildRoot/gcc" ( + '' + # `AS`, `CC`, `CPP` and `LD` still name the *target* tools at this point, + # under their machine-prefixed names. Snapshot them before the + # `*_FOR_BUILD` assignments below overwrite them. + # + # Deriving `AS_FOR_TARGET` from `$AS` *after* `AS=$AS_FOR_BUILD` asked for + # the basename of the build assembler -- plain `as` -- inside the target + # compiler's `bin`, and a cross wrapper installs only prefixed names, so + # the path did not exist. Likewise `ld`. + # + # That is not an error `gcc/configure` reports. It probes the target + # assembler and linker for capabilities, and a probe it cannot run simply + # records "no"; with neither tool found, *every* `gcc_cv_as_*`/`gcc_cv_ld_*` + # answer came back "no". The one that matters here is + # `HAVE_LD_EH_FRAME_HDR`: `unwind-dw2-fde-dip.c` gates `USE_PT_GNU_EH_FRAME` + # on it, so without it the unwinder is compiled with no `dl_iterate_phdr` + # lookup at all -- only the `__register_frame` registry, which nothing + # populates for normally linked objects. libgcc and libstdc++ then build, + # link and install perfectly cleanly, and every C++ `throw` finds no FDE + # and calls `std::terminate`. + # + # `CPP` in particular is not always exported, so fall back to the + # machine-prefixed name the wrappers install. + + '' + targetAs=$(basename "''${AS:-${stdenv.hostPlatform.config}-as}") + targetCc=$(basename "''${CC:-${stdenv.hostPlatform.config}-cc}") + targetCpp=$(basename "''${CPP:-${stdenv.hostPlatform.config}-cpp}") + targetLd=$(basename "''${LD:-${stdenv.hostPlatform.config}-ld}") + export AS_FOR_BUILD=${lib.getExe' buildPackages.stdenv.cc "$(basename $AS_FOR_BUILD)"} export CC_FOR_BUILD=${lib.getExe' buildPackages.stdenv.cc "$(basename $CC_FOR_BUILD)"} export CPP_FOR_BUILD=${lib.getExe' buildPackages.stdenv.cc "$(basename $CPP_FOR_BUILD)"} @@ -112,10 +141,10 @@ stdenv.mkDerivation (finalAttrs: { export CXX=$CXX_FOR_BUILD export LD=$LD_FOR_BUILD - export AS_FOR_TARGET=${lib.getExe' stdenv.cc "$(basename $AS)"} - export CC_FOR_TARGET=${lib.getExe' stdenv.cc "$(basename $CC)"} - export CPP_FOR_TARGET=${lib.getExe' stdenv.cc "$(basename $CPP)"} - export LD_FOR_TARGET=${lib.getExe' stdenv.cc.bintools "$(basename $LD)"} + export AS_FOR_TARGET=${lib.getExe' stdenv.cc "$targetAs"} + export CC_FOR_TARGET=${lib.getExe' stdenv.cc "$targetCc"} + export CPP_FOR_TARGET=${lib.getExe' stdenv.cc "$targetCpp"} + export LD_FOR_TARGET=${lib.getExe' stdenv.cc.bintools "$targetLd"} export NIX_CFLAGS_COMPILE_FOR_BUILD+=' -DGENERATOR_FILE=1' From 92144940a3acaddbb3af8694e1fc576cb6a24491 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Mon, 10 Aug 2026 18:37:43 -0400 Subject: [PATCH 126/148] gcc/ng: let a platform opt in with `useGccNG` Nothing could select the split GCC package set, so none of the fixes below this commit were reachable from a normal build. Add `useGccNG` alongside the existing `useLLVM`/`useZig`/`useArocc` choices, and honour it where a compiler is picked: the cross stdenv takes `gccNGPackages.gcc`, and `stdenvNoLibs`/`stdenvNoLibc` map to `gccNoLibgcc` and `gccWithLibgcc`. That last pair is the point of the split. Both currently fall back to `gccCrossLibcStdenv`, because the monolithic compiler cannot distinguish them; `lib/systems/default.nix` says as much next to `linker`, noting that we would like to choose the C compiler and runtime library orthogonally but "due to the monolithic GCC build we cannot actually make those choices independently". This is what lifts that, the way the LLVM set already splits `clangNoCompilerRt` from `clangNoLibc`. `gccNGPackages` tracks `default-gcc-version` rather than naming a release, so the split set and the monolithic `gcc` stay on the same one. `useGccNG` defaults to `false` and no platform derives it, so no existing build changes. Setting it on a platform spec is enough to exercise the whole stack: nix-build . -A stdenv.cc --arg crossSystem \ '{ config = "aarch64-unknown-linux-musl"; useGccNG = true; }' The intent is to switch obscure low-tier platforms over to it soon -- NetBSD first -- so `ng` gets dogfooded somewhere the blast radius is small. Those switches come separately. Assisted-by: Claude Code (Claude Opus 5) --- lib/systems/default.nix | 10 ++++++++++ pkgs/stdenv/cross/default.nix | 2 ++ pkgs/top-level/all-packages.nix | 9 +++++++++ 3 files changed, 21 insertions(+) diff --git a/lib/systems/default.nix b/lib/systems/default.nix index 262cb722a090..0d00ff953530 100644 --- a/lib/systems/default.nix +++ b/lib/systems/default.nix @@ -153,6 +153,16 @@ let # Derived meta-data useLLVM = final.isFreeBSD || final.isOpenBSD; + # Use the split GCC package set (`gccNGPackages`) instead of the + # monolithic `gcc`. No platform selects it yet; it is opt-in, set + # explicitly on a platform spec, so that the split set can be exercised + # before anything depends on it. + # + # I (@Ericson2314) plan on making obscure low-tier platforms (e.g. + # NetBSD) use it soon, so we can dogfood GCC NG and thereby iron out its + # bugs. + useGccNG = false; + libc = if final.isDarwin then "libSystem" diff --git a/pkgs/stdenv/cross/default.nix b/pkgs/stdenv/cross/default.nix index f2adc91e2bb1..98d93014faf2 100644 --- a/pkgs/stdenv/cross/default.nix +++ b/pkgs/stdenv/cross/default.nix @@ -127,6 +127,8 @@ lib.init bootStages buildPackages.zig.cc else if crossSystem.useArocc or false then buildPackages.arocc + else if crossSystem.useGccNG or false then + buildPackages.gccNGPackages.gcc else buildPackages.gcc; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 57f5bbbe422b..3bc94c889614 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -88,6 +88,8 @@ with pkgs; ( if stdenvNoCC.hostPlatform.isDarwin || stdenvNoCC.hostPlatform.useLLVM or false then overrideCC stdenvNoCC buildPackages.llvmPackages.clangNoCompilerRt + else if stdenvNoCC.hostPlatform.useGccNG or false then + overrideCC stdenvNoCC buildPackages.gccNGPackages.gccNoLibgcc else gccCrossLibcStdenv ) @@ -99,6 +101,11 @@ with pkgs; ( if stdenvNoCC.hostPlatform.isDarwin || stdenvNoCC.hostPlatform.useLLVM or false then overrideCC stdenvNoCC buildPackages.llvmPackages.clangNoLibc + else if stdenvNoCC.hostPlatform.useGccNG or false then + # The split package set can express the two rungs separately, the way + # the LLVM set does: no libgcc above, libgcc but no libc here. The + # monolithic `gccCrossLibcStdenv` has to serve both. + overrideCC stdenvNoCC buildPackages.gccNGPackages.gccWithLibgcc else gccCrossLibcStdenv ) @@ -3244,9 +3251,11 @@ with pkgs; # NOTE: keep this with the "NG" label until we're ready to drop the monolithic GCC gccNGPackagesSet = recurseIntoAttrs (callPackages ../development/compilers/gcc/ng { }); gccNGPackages_15 = gccNGPackagesSet."15"; + gccNGPackages = gccNGPackagesSet.${toString default-gcc-version}; mkGCCNGPackages = gccNGPackagesSet.mkPackage; }) gccNGPackages_15 + gccNGPackages mkGCCNGPackages ; From ab281c3fd468477ae06a2ed9975f724635d6f4ed Mon Sep 17 00:00:00 2001 From: John Ericson Date: Mon, 10 Aug 2026 18:37:31 -0400 Subject: [PATCH 127/148] gcc/ng: let GCC probe the real tools, and bake neither answers nor paths GCC decides at configure time what its assembler and linker can do and writes the answers into the compiler. A probe it cannot run is not an error -- it silently records "no". We passed `--with-as` but put nothing on `PATH`, so the probes had no tools to ask, and **31 capability macros** came out wrong in the installed `auto-host.h`: `HAVE_GAS_HIDDEN`, `HAVE_LD_PIE`, `HAVE_LD_RELRO_SUPPORT`, `HAVE_LD_NOW_SUPPORT`, `HAVE_LTO_PLUGIN`, `HAVE_COMDAT_GROUP`, `HAVE_GAS_CFI_DIRECTIVE`, `HAVE_AS_LEB128`, `HAVE_LD_EH_FRAME_HDR` and more. nixpkgs' hardening flags were quietly inert, LTO unavailable, C++ without COMDAT. `HAVE_GAS_HIDDEN` is how it surfaced: without it `-fvisibility=hidden` is not rejected but becomes a no-op that merely warns, so every symbol stays preemptible while GCC still emits direct `R_X86_64_PC32` references, which the linker then rejects: libc_pic.a(stats.pico): relocation R_X86_64_PC32 against symbol `opt_stats_interval_opts' can not be used when making a shared object Found on NetBSD, where it stops `libc.so` linking at all. Targets matching configure's hardcoded `*-*-solaris2*` case escape it, which is what made it look target-specific. Put the unwrapped bintools on `PATH` via `depsBuildTarget` -- they run on the build machine and act on target artifacts -- so the probes ask the real tools. Unwrapped keeps the earlier decoupling: `as` and `ld` proper carry no target-libc reference, unlike the bintools wrapper. Drop `--with-as` rather than adding `--with-ld`. Those bake `DEFAULT_ASSEMBLER`/`DEFAULT_LINKER` as absolute store paths, so the driver runs exactly those binaries instead of deferring to the wrapped ones. Finding them at use time is what the three `find_a_program` patches are for: `PATH` was left to `execvp`, which matches `NAME` alone, and `PATH` is exactly where we expose a cross toolchain under prefixed names. They come from the posting to `gcc-patches`; the second needs a `postFetch` tweak, being against trunk where one cast is spelled with the C++ operator rather than `CONST_CAST`. All three configurations were built and compared: - `--with-as` only (before): 31 macros wrong, `libc.so` unlinkable - `--with-as` + `--with-ld`: capabilities recovered, but ten probes still fail, because probes need the rest of binutils on `PATH`, not one absolute path - `PATH` only (this): all 31 recovered, `DEFAULT_ASSEMBLER` and `DEFAULT_LINKER` undefined, `-print-prog-name=as`/`ld` return bare names, so the wrapper stays in charge Assisted-by: Claude Code (Claude Opus 5) --- .../compilers/gcc/ng/common/gcc/default.nix | 63 ++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) diff --git a/pkgs/development/compilers/gcc/ng/common/gcc/default.nix b/pkgs/development/compilers/gcc/ng/common/gcc/default.nix index 1c7a57d9a6cc..d74be1b6a521 100644 --- a/pkgs/development/compilers/gcc/ng/common/gcc/default.nix +++ b/pkgs/development/compilers/gcc/ng/common/gcc/default.nix @@ -81,6 +81,36 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-54/HzM+aeWq8CTkQu8Pualqc/LgRLS0+8EY8uPUsD+s="; }) + # Not upstream yet; a follow-up to the series above (drop the `/raw` to + # read them). They extend that series' `-as` preference to `PATH`, + # where we put the cross toolchain, so a cross compiler finds its tools + # the way a native one does. See below for the problems `--with-as` and + # `--with-ld` cause, and thus why we want to avoid them. + (fetchpatch { + name = "driver-factor-out-env-path-parsing.patch"; + url = "https://inbox.sourceware.org/gcc-patches/20260810065714.2215299-1-git@JohnEricson.me/raw"; + hash = "sha256-2qUUMWuyxX4mVaBPeNnHIiMl/aN7ejWM5stTSFWxD7g="; + }) + (fetchpatch { + name = "driver-search-PATH-ourselves.patch"; + url = "https://inbox.sourceware.org/gcc-patches/20260810065714.2215299-2-git@JohnEricson.me/raw"; + # The posted patch is against trunk, which spells this cast with the C++ + # operator. GCC 15 still uses the CONST_CAST macro, and the line is + # context rather than a change, so it cannot fuzz-match. Rewrite it + # here rather than keeping a forked copy of the whole patch. + postFetch = '' + substituteInPlace "$out" \ + --replace-fail 'string, const_cast (commands[i].argv),' \ + 'string, CONST_CAST (char **, commands[i].argv),' + ''; + hash = "sha256-uD8xJxQus2qyNgNDN/63WnURNuUJFDkhaXPph7g/DIk="; + }) + (fetchpatch { + name = "driver-search-PATH-machine-prefix.patch"; + url = "https://inbox.sourceware.org/gcc-patches/20260810065714.2215299-3-git@JohnEricson.me/raw"; + hash = "sha256-Q5CJpJKD11kadIKselQdHgNe26GqojpyAAmlAyHnsB0="; + }) + (getVersionFile "gcc/fix-collect2-paths.diff") ]; @@ -93,6 +123,29 @@ stdenv.mkDerivation (finalAttrs: { strictDeps = true; depsBuildBuild = [ buildPackages.stdenv.cc ]; + + # The target assembler and linker have to be *runnable here*, during + # configure. GCC probes them for capabilities, and a probe it cannot run is + # not an error -- it silently records "no". Without the target `ld` on + # `PATH`, every `gcc_cv_ld_*` probe fails that way, and the two that matter + # most are `HAVE_GAS_HIDDEN` (which needs `gcc_cv_as_hidden` *and* + # `gcc_cv_ld_hidden`) and `HAVE_LD_EH_FRAME_HDR`. + # + # Losing `HAVE_GAS_HIDDEN` is the nasty one: `-fvisibility=hidden` degrades + # into a no-op that merely warns, so every symbol stays preemptible and GCC's + # own same-translation-unit `R_X86_64_PC32` references become invalid when + # linking a shared library. + # + # The *unwrapped* bintools: `as` and `ld` proper carry no target-libc + # reference, so the decoupling this package set exists for still holds. + # + # Note this is `PATH` rather than `--with-as`/`--with-ld` on purpose. We want + # configure to *ask* the real tools what they support, and we want it to bake + # nothing else: those flags record `DEFAULT_ASSEMBLER`/`DEFAULT_LINKER` as + # absolute store paths, and the driver then runs exactly those binaries + # instead of the wrapped ones it is meant to defer to. + depsBuildTarget = [ (bintools.bintools or bintools) ]; + nativeBuildInputs = [ texinfo which @@ -218,7 +271,15 @@ stdenv.mkDerivation (finalAttrs: { "--without-headers" "--with-gnu-as" "--with-gnu-ld" - "--with-as=${lib.getExe' bintools "${bintools.targetPrefix}as"}" + # Deliberately no `--with-as` / `--with-ld`. Those bake + # `DEFAULT_ASSEMBLER` and `DEFAULT_LINKER` -- absolute store paths -- into + # the compiler, so the driver runs exactly those binaries and stops + # deferring to the wrapped tools it is meant to use. + # + # Nothing has to be baked. At configure time the tools are on `PATH` via + # `depsBuildTarget`, which is what the capability probes need; at use time + # the driver finds them on `PATH` under their target-prefixed names, via + # the `find_a_program` patches above. "--with-system-zlib" "--without-included-gettext" "--enable-linker-build-id" From be82056397df8e2e4ba1ed2caa09237ca3fa94c5 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Mon, 10 Aug 2026 03:22:39 -0400 Subject: [PATCH 128/148] gcc/ng: cope with a source tree that is a VCS checkout A release tarball carries generated files that a git tree does not, and two of those bit us. `MD5SUMS` is generated when a tarball is rolled. Each sub-source extractor asserted `[[ -f MD5SUMS ]]` before copying it, so every one of them failed outright the moment `monorepoSrc` was a git tree: unpacking source archive /nix/store/...-source source root is source Copy it only when it is there. The generated sources are the other half: a checkout lacks `gengtype-lex.cc` and friends, which a tarball ships pre-built, so they have to be regenerated. Take flex and bison as native inputs when `fromVCS` says the source is a checkout. Tarball builds are unaffected either way. Assisted-by: Claude Code (Claude Opus 5) --- .../compilers/gcc/ng/common/gcc/default.nix | 12 ++++- .../gcc/ng/common/libatomic/default.nix | 41 ++++++++------- .../gcc/ng/common/libbacktrace/default.nix | 41 ++++++++------- .../gcc/ng/common/libgomp/default.nix | 43 +++++++++------- .../gcc/ng/common/libiberty/default.nix | 37 ++++++++------ .../gcc/ng/common/libquadmath/default.nix | 35 +++++++------ .../gcc/ng/common/libsanitizer/default.nix | 35 +++++++------ .../gcc/ng/common/libssp/default.nix | 39 +++++++------- .../gcc/ng/common/libstdcxx/default.nix | 51 ++++++++++--------- 9 files changed, 192 insertions(+), 142 deletions(-) diff --git a/pkgs/development/compilers/gcc/ng/common/gcc/default.nix b/pkgs/development/compilers/gcc/ng/common/gcc/default.nix index d74be1b6a521..48b3401d21c8 100644 --- a/pkgs/development/compilers/gcc/ng/common/gcc/default.nix +++ b/pkgs/development/compilers/gcc/ng/common/gcc/default.nix @@ -27,6 +27,12 @@ texinfo, which, gettext, + flex, + bison, + # Whether `monorepoSrc` is a VCS checkout rather than a release tarball. A + # checkout lacks the generated sources (gengtype-lex.cc and friends) that a + # tarball ships pre-built, so they have to be regenerated with flex and bison. + fromVCS ? false, getVersionFile, buildGccPackages, targetPackages, @@ -151,7 +157,11 @@ stdenv.mkDerivation (finalAttrs: { which gettext ] - ++ lib.optional (perl != null) perl; + ++ lib.optional (perl != null) perl + ++ lib.optionals fromVCS [ + flex + bison + ]; buildInputs = [ gmp diff --git a/pkgs/development/compilers/gcc/ng/common/libatomic/default.nix b/pkgs/development/compilers/gcc/ng/common/libatomic/default.nix index db4261a186cc..ce51cf4dd520 100644 --- a/pkgs/development/compilers/gcc/ng/common/libatomic/default.nix +++ b/pkgs/development/compilers/gcc/ng/common/libatomic/default.nix @@ -14,29 +14,34 @@ stdenv.mkDerivation (finalAttrs: { pname = "libatomic"; inherit version; - src = runCommand "libatomic-src-${version}" { src = monorepoSrc; } '' - runPhase unpackPhase + src = runCommand "libatomic-src-${version}" { src = monorepoSrc; } ( + '' + runPhase unpackPhase - mkdir -p "$out/gcc" - cp gcc/BASE-VER "$out/gcc" - cp gcc/DATESTAMP "$out/gcc" + mkdir -p "$out/gcc" + cp gcc/BASE-VER "$out/gcc" + cp gcc/DATESTAMP "$out/gcc" - cp -r libatomic "$out" + cp -r libatomic "$out" - cp -r config "$out" - cp -r multilib.am "$out" - cp -r libtool.m4 "$out" + cp -r config "$out" + cp -r multilib.am "$out" + cp -r libtool.m4 "$out" - cp config.guess "$out" - cp config.rpath "$out" - cp config.sub "$out" - cp config-ml.in "$out" - cp ltmain.sh "$out" - cp install-sh "$out" - cp mkinstalldirs "$out" + cp config.guess "$out" + cp config.rpath "$out" + cp config.sub "$out" + cp config-ml.in "$out" + cp ltmain.sh "$out" + cp install-sh "$out" + cp mkinstalldirs "$out" - [[ -f MD5SUMS ]]; cp MD5SUMS "$out" - ''; + '' + # `MD5SUMS` exists only in release tarballs, not in a VCS checkout. + + '' + if [[ -f MD5SUMS ]]; then cp MD5SUMS "$out"; fi + '' + ); patches = [ (fetchpatch { diff --git a/pkgs/development/compilers/gcc/ng/common/libbacktrace/default.nix b/pkgs/development/compilers/gcc/ng/common/libbacktrace/default.nix index 307a7061bc57..75cf777746a7 100644 --- a/pkgs/development/compilers/gcc/ng/common/libbacktrace/default.nix +++ b/pkgs/development/compilers/gcc/ng/common/libbacktrace/default.nix @@ -11,28 +11,33 @@ stdenv.mkDerivation (finalAttrs: { pname = "libbacktrace"; inherit version; - src = runCommand "libbacktrace-src-${version}" { src = monorepoSrc; } '' - runPhase unpackPhase + src = runCommand "libbacktrace-src-${version}" { src = monorepoSrc; } ( + '' + runPhase unpackPhase - mkdir -p "$out/gcc" - cp gcc/BASE-VER "$out/gcc" - cp gcc/DATESTAMP "$out/gcc" + mkdir -p "$out/gcc" + cp gcc/BASE-VER "$out/gcc" + cp gcc/DATESTAMP "$out/gcc" - cp -r include "$out" - cp -r libbacktrace "$out" + cp -r include "$out" + cp -r libbacktrace "$out" - cp config.guess "$out" - cp config.rpath "$out" - cp config.sub "$out" - cp config-ml.in "$out" - cp ltmain.sh "$out" - cp install-sh "$out" - cp move-if-change "$out" - cp mkinstalldirs "$out" - cp test-driver "$out" + cp config.guess "$out" + cp config.rpath "$out" + cp config.sub "$out" + cp config-ml.in "$out" + cp ltmain.sh "$out" + cp install-sh "$out" + cp move-if-change "$out" + cp mkinstalldirs "$out" + cp test-driver "$out" - [[ -f MD5SUMS ]]; cp MD5SUMS "$out" - ''; + '' + # `MD5SUMS` exists only in release tarballs, not in a VCS checkout. + + '' + if [[ -f MD5SUMS ]]; then cp MD5SUMS "$out"; fi + '' + ); outputs = [ "out" diff --git a/pkgs/development/compilers/gcc/ng/common/libgomp/default.nix b/pkgs/development/compilers/gcc/ng/common/libgomp/default.nix index 9053e88a80f9..19b74a3da0d9 100644 --- a/pkgs/development/compilers/gcc/ng/common/libgomp/default.nix +++ b/pkgs/development/compilers/gcc/ng/common/libgomp/default.nix @@ -13,30 +13,35 @@ stdenv.mkDerivation (finalAttrs: { pname = "libgomp"; inherit version; - src = runCommand "libgomp-src-${version}" { src = monorepoSrc; } '' - runPhase unpackPhase + src = runCommand "libgomp-src-${version}" { src = monorepoSrc; } ( + '' + runPhase unpackPhase - mkdir -p "$out/gcc" - cp gcc/BASE-VER "$out/gcc" - cp gcc/DATESTAMP "$out/gcc" + mkdir -p "$out/gcc" + cp gcc/BASE-VER "$out/gcc" + cp gcc/DATESTAMP "$out/gcc" - cp -r libgomp "$out" - cp -r include "$out" + cp -r libgomp "$out" + cp -r include "$out" - cp -r config "$out" - cp -r multilib.am "$out" - cp -r libtool.m4 "$out" + cp -r config "$out" + cp -r multilib.am "$out" + cp -r libtool.m4 "$out" - cp config.guess "$out" - cp config.rpath "$out" - cp config.sub "$out" - cp config-ml.in "$out" - cp ltmain.sh "$out" - cp install-sh "$out" - cp mkinstalldirs "$out" + cp config.guess "$out" + cp config.rpath "$out" + cp config.sub "$out" + cp config-ml.in "$out" + cp ltmain.sh "$out" + cp install-sh "$out" + cp mkinstalldirs "$out" - [[ -f MD5SUMS ]]; cp MD5SUMS "$out" - ''; + '' + # `MD5SUMS` exists only in release tarballs, not in a VCS checkout. + + '' + if [[ -f MD5SUMS ]]; then cp MD5SUMS "$out"; fi + '' + ); outputs = [ "out" diff --git a/pkgs/development/compilers/gcc/ng/common/libiberty/default.nix b/pkgs/development/compilers/gcc/ng/common/libiberty/default.nix index a83d9580dabc..28a099b9f9fb 100644 --- a/pkgs/development/compilers/gcc/ng/common/libiberty/default.nix +++ b/pkgs/development/compilers/gcc/ng/common/libiberty/default.nix @@ -11,26 +11,31 @@ stdenv.mkDerivation (finalAttrs: { pname = "libiberty"; inherit version; - src = runCommand "libiberty-src-${version}" { src = monorepoSrc; } '' - runPhase unpackPhase + src = runCommand "libiberty-src-${version}" { src = monorepoSrc; } ( + '' + runPhase unpackPhase - mkdir -p "$out/gcc" - cp gcc/BASE-VER "$out/gcc" - cp gcc/DATESTAMP "$out/gcc" + mkdir -p "$out/gcc" + cp gcc/BASE-VER "$out/gcc" + cp gcc/DATESTAMP "$out/gcc" - cp -r include "$out" - cp -r libiberty "$out" + cp -r include "$out" + cp -r libiberty "$out" - cp config.guess "$out" - cp config.rpath "$out" - cp config.sub "$out" - cp config-ml.in "$out" - cp ltmain.sh "$out" - cp install-sh "$out" - cp mkinstalldirs "$out" + cp config.guess "$out" + cp config.rpath "$out" + cp config.sub "$out" + cp config-ml.in "$out" + cp ltmain.sh "$out" + cp install-sh "$out" + cp mkinstalldirs "$out" - [[ -f MD5SUMS ]]; cp MD5SUMS "$out" - ''; + '' + # `MD5SUMS` exists only in release tarballs, not in a VCS checkout. + + '' + if [[ -f MD5SUMS ]]; then cp MD5SUMS "$out"; fi + '' + ); outputs = [ "out" diff --git a/pkgs/development/compilers/gcc/ng/common/libquadmath/default.nix b/pkgs/development/compilers/gcc/ng/common/libquadmath/default.nix index 982b4177b749..41e309459027 100644 --- a/pkgs/development/compilers/gcc/ng/common/libquadmath/default.nix +++ b/pkgs/development/compilers/gcc/ng/common/libquadmath/default.nix @@ -11,25 +11,30 @@ stdenv.mkDerivation (finalAttrs: { pname = "libquadmath"; inherit version; - src = runCommand "libquadmath-src-${version}" { src = monorepoSrc; } '' - runPhase unpackPhase + src = runCommand "libquadmath-src-${version}" { src = monorepoSrc; } ( + '' + runPhase unpackPhase - mkdir -p "$out/gcc" - cp gcc/BASE-VER "$out/gcc" - cp gcc/DATESTAMP "$out/gcc" + mkdir -p "$out/gcc" + cp gcc/BASE-VER "$out/gcc" + cp gcc/DATESTAMP "$out/gcc" - cp -r libquadmath "$out" + cp -r libquadmath "$out" - cp config.guess "$out" - cp config.rpath "$out" - cp config.sub "$out" - cp config-ml.in "$out" - cp ltmain.sh "$out" - cp install-sh "$out" - cp mkinstalldirs "$out" + cp config.guess "$out" + cp config.rpath "$out" + cp config.sub "$out" + cp config-ml.in "$out" + cp ltmain.sh "$out" + cp install-sh "$out" + cp mkinstalldirs "$out" - [[ -f MD5SUMS ]]; cp MD5SUMS "$out" - ''; + '' + # `MD5SUMS` exists only in release tarballs, not in a VCS checkout. + + '' + if [[ -f MD5SUMS ]]; then cp MD5SUMS "$out"; fi + '' + ); sourceRoot = "${finalAttrs.src.name}/libquadmath"; diff --git a/pkgs/development/compilers/gcc/ng/common/libsanitizer/default.nix b/pkgs/development/compilers/gcc/ng/common/libsanitizer/default.nix index b42736d122bd..c90ed42e5848 100644 --- a/pkgs/development/compilers/gcc/ng/common/libsanitizer/default.nix +++ b/pkgs/development/compilers/gcc/ng/common/libsanitizer/default.nix @@ -12,25 +12,30 @@ stdenv.mkDerivation (finalAttrs: { pname = "libsanitizer"; inherit version; - src = runCommand "libsanitizer-src-${version}" { src = monorepoSrc; } '' - runPhase unpackPhase + src = runCommand "libsanitizer-src-${version}" { src = monorepoSrc; } ( + '' + runPhase unpackPhase - mkdir -p "$out/gcc" - cp gcc/BASE-VER "$out/gcc" - cp gcc/DATESTAMP "$out/gcc" + mkdir -p "$out/gcc" + cp gcc/BASE-VER "$out/gcc" + cp gcc/DATESTAMP "$out/gcc" - cp -r libsanitizer "$out" + cp -r libsanitizer "$out" - cp config.guess "$out" - cp config.rpath "$out" - cp config.sub "$out" - cp config-ml.in "$out" - cp ltmain.sh "$out" - cp install-sh "$out" - cp mkinstalldirs "$out" + cp config.guess "$out" + cp config.rpath "$out" + cp config.sub "$out" + cp config-ml.in "$out" + cp ltmain.sh "$out" + cp install-sh "$out" + cp mkinstalldirs "$out" - [[ -f MD5SUMS ]]; cp MD5SUMS "$out" - ''; + '' + # `MD5SUMS` exists only in release tarballs, not in a VCS checkout. + + '' + if [[ -f MD5SUMS ]]; then cp MD5SUMS "$out"; fi + '' + ); sourceRoot = "${finalAttrs.src.name}/libsanitizer"; diff --git a/pkgs/development/compilers/gcc/ng/common/libssp/default.nix b/pkgs/development/compilers/gcc/ng/common/libssp/default.nix index bcc5d4b9c2e3..45840d75f3bb 100644 --- a/pkgs/development/compilers/gcc/ng/common/libssp/default.nix +++ b/pkgs/development/compilers/gcc/ng/common/libssp/default.nix @@ -14,28 +14,33 @@ stdenv.mkDerivation (finalAttrs: { pname = "libssp"; inherit version; - src = runCommand "libssp-src-${version}" { src = monorepoSrc; } '' - runPhase unpackPhase + src = runCommand "libssp-src-${version}" { src = monorepoSrc; } ( + '' + runPhase unpackPhase - mkdir -p "$out/gcc" - cp gcc/BASE-VER "$out/gcc" - cp gcc/DATESTAMP "$out/gcc" + mkdir -p "$out/gcc" + cp gcc/BASE-VER "$out/gcc" + cp gcc/DATESTAMP "$out/gcc" - cp -r libssp "$out" + cp -r libssp "$out" - cp -r config "$out" - cp -r multilib.am "$out" + cp -r config "$out" + cp -r multilib.am "$out" - cp config.guess "$out" - cp config.rpath "$out" - cp config.sub "$out" - cp config-ml.in "$out" - cp ltmain.sh "$out" - cp install-sh "$out" - cp mkinstalldirs "$out" + cp config.guess "$out" + cp config.rpath "$out" + cp config.sub "$out" + cp config-ml.in "$out" + cp ltmain.sh "$out" + cp install-sh "$out" + cp mkinstalldirs "$out" - [[ -f MD5SUMS ]]; cp MD5SUMS "$out" - ''; + '' + # `MD5SUMS` exists only in release tarballs, not in a VCS checkout. + + '' + if [[ -f MD5SUMS ]]; then cp MD5SUMS "$out"; fi + '' + ); outputs = [ "out" diff --git a/pkgs/development/compilers/gcc/ng/common/libstdcxx/default.nix b/pkgs/development/compilers/gcc/ng/common/libstdcxx/default.nix index 8e43df2ab635..48309b851e68 100644 --- a/pkgs/development/compilers/gcc/ng/common/libstdcxx/default.nix +++ b/pkgs/development/compilers/gcc/ng/common/libstdcxx/default.nix @@ -15,36 +15,41 @@ stdenv.mkDerivation (finalAttrs: { pname = "libstdcxx"; inherit version; - src = runCommand "libstdcxx-src-${version}" { src = monorepoSrc; } '' - runPhase unpackPhase + src = runCommand "libstdcxx-src-${version}" { src = monorepoSrc; } ( + '' + runPhase unpackPhase - mkdir -p "$out/gcc" - cp gcc/BASE-VER "$out/gcc" - cp gcc/DATESTAMP "$out/gcc" + mkdir -p "$out/gcc" + cp gcc/BASE-VER "$out/gcc" + cp gcc/DATESTAMP "$out/gcc" - mkdir -p "$out/libgcc" - cp libgcc/gthr*.h "$out/libgcc" - cp libgcc/unwind-pe.h "$out/libgcc" + mkdir -p "$out/libgcc" + cp libgcc/gthr*.h "$out/libgcc" + cp libgcc/unwind-pe.h "$out/libgcc" - cp -r libstdc++-v3 "$out" + cp -r libstdc++-v3 "$out" - cp -r libiberty "$out" - cp -r include "$out" - cp -r contrib "$out" + cp -r libiberty "$out" + cp -r include "$out" + cp -r contrib "$out" - cp -r config "$out" - cp -r multilib.am "$out" + cp -r config "$out" + cp -r multilib.am "$out" - cp config.guess "$out" - cp config.rpath "$out" - cp config.sub "$out" - cp config-ml.in "$out" - cp ltmain.sh "$out" - cp install-sh "$out" - cp mkinstalldirs "$out" + cp config.guess "$out" + cp config.rpath "$out" + cp config.sub "$out" + cp config-ml.in "$out" + cp ltmain.sh "$out" + cp install-sh "$out" + cp mkinstalldirs "$out" - [[ -f MD5SUMS ]]; cp MD5SUMS "$out" - ''; + '' + # `MD5SUMS` exists only in release tarballs, not in a VCS checkout. + + '' + if [[ -f MD5SUMS ]]; then cp MD5SUMS "$out"; fi + '' + ); outputs = [ "out" From 3f8e1ff98b9089b1197bf5e53f78ea46a86d7822 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Sun, 9 Aug 2026 15:30:22 -0400 Subject: [PATCH 129/148] gcc/ng: add `gccWithLibgcc`, the compiler for the libc bootstrap step MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The package set offered two compilers either side of a gap: - `gccNoLibgcc` — no libgcc, no libc. Builds libgcc. - `gccWithLibc` — libgcc *and* libc. Builds libssp and everything above. Nothing in between, and the missing stage is the one a libc is compiled with. A libc's own sources call into libgcc — 128-bit and soft-float helpers, `__stack_chk`-adjacent bits, unwinder support — so `gccNoLibgcc` cannot compile it. `gccWithLibc` obviously cannot either: it is defined in terms of the libc that does not exist yet. Any platform bringing up a new libc therefore has no compiler to express the step with, and the bootstrap simply cannot be written down. Add `gccWithLibgcc`: libgcc present, libc absent. `binutilsNoLibc` is what enforces the second half — it supplies the header-only `preLibcHeaders` rather than a real libc, so the derivation refers to no libc at all and the dependency cycle stays broken. Verified on a cross target: the wrapper's `orig-libc` is the headers package, and a translation unit needing `__udivti3` compiles and links against libgcc. This is additive; no existing derivation changes. Assisted-by: Claude Code (Claude Opus 5) --- .../compilers/gcc/ng/common/default.nix | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/pkgs/development/compilers/gcc/ng/common/default.nix b/pkgs/development/compilers/gcc/ng/common/default.nix index 0e040fdb1320..6812f6ffec26 100644 --- a/pkgs/development/compilers/gcc/ng/common/default.nix +++ b/pkgs/development/compilers/gcc/ng/common/default.nix @@ -181,6 +181,27 @@ makeScopeWithSplicing' { stdenv = overrideCC stdenv buildGccPackages.gccNoLibgcc; }; + # The bootstrap step between `gccNoLibgcc` and `gccWithLibc`: libgcc is + # available, libc is not yet. Compiling a libc needs exactly this — libc's + # own sources call into libgcc (integer/floating-point helpers, stack + # unwinding), so `gccNoLibgcc` is not enough, while `gccWithLibc` cannot + # be used to build the very libc it depends on. + # + # `binutilsNoLibc` is what keeps libc out: it supplies the header-only + # `preLibcHeaders` instead of a real libc, so nothing here refers to a + # libc derivation and the cycle stays broken. + gccWithLibgcc = wrapCCWith { + cc = gccPackages.gcc-unwrapped; + libcxx = null; + bintools = binutilsNoLibc; + extraPackages = [ + targetGccPackages.libgcc + ]; + nixSupport.cc-cflags = [ + "-B${targetGccPackages.libgcc}/lib" + ]; + }; + gccWithLibc = wrapCCWith { cc = gccPackages.gcc-unwrapped; libcxx = null; From 83cb487509c83ff6427d2ac738bb1ef37584f474 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Tue, 11 Aug 2026 09:41:28 -0400 Subject: [PATCH 130/148] gcc/ng: build `libgcc` twice, once for the libc and once against it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The libc bootstrap had every stage except the last. `gccNoLibgcc` builds libgcc, `gccWithLibgcc` builds the libc with it — and then nothing goes back to rebuild libgcc now that the libc exists. So the only libgcc anyone ever got was the one from before there was a libc, which is necessarily single-threaded: `gthr-posix.h` includes `` unconditionally, and at that point there is no libc to provide it. `libstdcxx` above it assumed `posix` regardless, so the two disagreed by construction — the unwinder's registry locking compiled away to nothing underneath a `libstdc++` handing out `std::thread`. Add the last stage the way the LLVM package set does with `compiler-rt-no-libc` and `compiler-rt-libc`: instantiate the same package twice. `libgcc-no-libc` is the existing one and now feeds only the three bootstrap compilers. `libgcc-libc` is built after the libc, by a new `gccWithLibcAndBasicLibgcc` — real libc, bootstrap libgcc — and is what `libgcc` resolves to for any platform that has a libc. Nothing is passed to the package to say which of the two it is. The distinction is the compiler it is handed, exactly as in the LLVM set: `gccNoLibgcc` is wrapped with `binutilsNoLibc`, whose `libc` is `preLibcHeaders` -- the header-only stand-in, or nothing at all on platforms without one -- and `wrapCCWith` defaults a wrapper's `libc` to its bintools'. So the package reads `stdenv.cc.libc` and needs no bootstrap flag of its own. Which threading model is available is a property of the libc, so the libc declares it as `passthru.threadModel` and `libgcc` reads it from there. That is what makes the pre-libc build single-threaded without being told to be: a headers-only package declares no `threadModel`, a real libc does. `libstdcxx` in turn takes both the model and the generated `gthr-default.h` from `libgcc`, replacing a `$CXX -v` probe that asked the compiler — which in this package set is configured separately from libgcc and so answers for the wrong component. Platforms that declare nothing keep the single-threaded model they already had. The second libgcc is also the first one that can be shared. Previously only the static library was built, and the compiler was configured `--disable-shared` for every target, which is compiled into the driver's specs, so it named bare `-lgcc` and never `-lgcc_s`: $ x86_64-unknown-netbsd-g++ -### eh.cc collect2 ... -lstdc++ -lm -lgcc -lc -lgcc Both halves have to move together. Build the shared library without changing the specs and the unwinder leaves `libgcc.a` while the specs still name it: libgcc.a _Unwind_RaiseException: absent libgcc_eh.a _Unwind_RaiseException: present libgcc_s.so.1 _Unwind_RaiseException: present so every throwing C++ program fails to link and `rustc` fails on `-lgcc_s` outright. Either standard arm would do, `-lgcc_s -lgcc` shared or `-lgcc -lgcc_eh` static; the halves disagreeing is what breaks. `--disable-shared` was passed to libgcc with the comment "Do not have dynamic linker without libc". That does not hold: the monolithic build ships `libgcc_s` even from its *nolibc* cross stage, and the result needs nothing at run time -- $ readelf -d .../nolibc-gcc-15.3.0-libgcc/.../libgcc_s.so.1 0x...0e (SONAME) Library soname: [libgcc_s.so.1] (no NEEDED entries at all) What genuinely blocks it is libgcc's own makefile: `SHLIB_LC` defaults to `-lc`, so the `libgcc_s.so` rule links against a libc that does not exist yet and fails with `cannot find -lc`. The monolithic build clobbers that variable -- see `common/libgcc-buildstuff.nix` -- so reuse that helper rather than reinventing it. On the compiler side the flag derives from `hasSharedLibraries`, as the monolithic build does, so a target genuinely without shared libraries keeps the old behaviour; it is spelled `enableTargetShared` there because it describes the target's libgcc rather than anything about the compiler being built. Verified on `x86_64-unknown-netbsd`, where `libgcc_s.so.1` and the `GROUP ( libgcc_s.so.1 -lgcc )` script now appear in the output, and by building `stdenv.cc` for `aarch64-unknown-linux-gnu` and `aarch64-unknown-linux-musl`. Assisted-by: Claude Code (Claude Opus 5) --- pkgs/by-name/mu/musl/package.nix | 9 ++- .../compilers/gcc/ng/common/default.nix | 44 ++++++++++++++- .../compilers/gcc/ng/common/gcc/default.nix | 9 ++- .../gcc/ng/common/libgcc/default.nix | 55 ++++++++++++++++--- .../gcc/ng/common/libstdcxx/default.nix | 40 +++++++++++++- pkgs/development/libraries/glibc/common.nix | 5 ++ pkgs/os-specific/bsd/netbsd/pkgs/libc.nix | 6 ++ pkgs/top-level/all-packages.nix | 21 +++++-- 8 files changed, 170 insertions(+), 19 deletions(-) diff --git a/pkgs/by-name/mu/musl/package.nix b/pkgs/by-name/mu/musl/package.nix index 3df1b2289934..3cfdae35710a 100644 --- a/pkgs/by-name/mu/musl/package.nix +++ b/pkgs/by-name/mu/musl/package.nix @@ -174,7 +174,14 @@ stdenv.mkDerivation (finalAttrs: { install -D ${tree_h} $dev/include/sys/tree.h ''; - passthru.linuxHeaders = linuxHeaders; + passthru = { + linuxHeaders = linuxHeaders; + + # musl's threads are POSIX threads. `libgcc` and `libstdc++` have to be + # configured for the same threading model as each other, so rather than + # have each guess, they take it from the libc they are built against. + threadModel = "posix"; + }; meta = { description = "Efficient, small, quality libc implementation"; diff --git a/pkgs/development/compilers/gcc/ng/common/default.nix b/pkgs/development/compilers/gcc/ng/common/default.nix index 6812f6ffec26..9ae438ff5e32 100644 --- a/pkgs/development/compilers/gcc/ng/common/default.nix +++ b/pkgs/development/compilers/gcc/ng/common/default.nix @@ -167,6 +167,12 @@ makeScopeWithSplicing' { ]; }; + # `binutilsNoLibc` carries `preLibcHeaders` as its `libc` — the + # header-only stand-in for platforms that have one, and nothing at all + # for platforms that do not. `wrapCCWith` defaults `libc` to + # `bintools.libc`, so this wrapper carries it too, and that is the only + # place the pre-libc stage is written down: everything built with this + # compiler reads `stdenv.cc.libc` and needs no flag of its own. gccNoLibgcc = wrapCCWith { cc = gccPackages.gcc-unwrapped; libcxx = null; @@ -177,10 +183,26 @@ makeScopeWithSplicing' { ]; }; - libgcc = callPackage ./libgcc { + # Built before there is a libc, and good for nothing but getting one + # built: single-threaded, and compiled against `preLibcHeaders` at best. + # Never hand this to users. + # + # Nothing is passed here to say which stage this is; it follows from the + # compiler, exactly as the LLVM set distinguishes `compiler-rt-no-libc` + # from `compiler-rt-libc`. + libgcc-no-libc = callPackage ./libgcc { stdenv = overrideCC stdenv buildGccPackages.gccNoLibgcc; }; + # The real one, built against the finished libc, so it can use that + # libc's threads. This is what everything above the libc gets. + libgcc-libc = callPackage ./libgcc { + stdenv = overrideCC stdenv buildGccPackages.gccWithLibcAndBasicLibgcc; + }; + + libgcc = + if stdenv.hostPlatform.libc == null then gccPackages.libgcc-no-libc else gccPackages.libgcc-libc; + # The bootstrap step between `gccNoLibgcc` and `gccWithLibc`: libgcc is # available, libc is not yet. Compiling a libc needs exactly this — libc's # own sources call into libgcc (integer/floating-point helpers, stack @@ -195,10 +217,26 @@ makeScopeWithSplicing' { libcxx = null; bintools = binutilsNoLibc; extraPackages = [ - targetGccPackages.libgcc + targetGccPackages.libgcc-no-libc ]; nixSupport.cc-cflags = [ - "-B${targetGccPackages.libgcc}/lib" + "-B${targetGccPackages.libgcc-no-libc}/lib" + ]; + }; + + # The rung after `gccWithLibgcc`: the libc it was used to build now + # exists, so this has a real libc, but still only the bootstrap libgcc — + # the finished one is what it is about to build. That is `libgcc-libc`, + # which unlike its predecessor can use the libc's threads. + gccWithLibcAndBasicLibgcc = wrapCCWith { + cc = gccPackages.gcc-unwrapped; + libcxx = null; + bintools = binutils; + extraPackages = [ + targetGccPackages.libgcc-no-libc + ]; + nixSupport.cc-cflags = [ + "-B${targetGccPackages.libgcc-no-libc}/lib" ]; }; diff --git a/pkgs/development/compilers/gcc/ng/common/gcc/default.nix b/pkgs/development/compilers/gcc/ng/common/gcc/default.nix index 48b3401d21c8..d37a89aa83db 100644 --- a/pkgs/development/compilers/gcc/ng/common/gcc/default.nix +++ b/pkgs/development/compilers/gcc/ng/common/gcc/default.nix @@ -38,6 +38,9 @@ targetPackages, libc, bintools, + # Build the shared runtime libraries, and so have the driver's specs emit + # `-lgcc_s`. Derived the way the monolithic build derives it. + enableTargetShared ? stdenv.targetPlatform.hasSharedLibraries, }: let inherit (stdenv) targetPlatform hostPlatform; @@ -260,7 +263,11 @@ stdenv.mkDerivation (finalAttrs: { "--disable-install-libiberty" "--disable-multilib" "--disable-nls" - "--disable-shared" + # Derived rather than forced off: the driver's specs only emit `-lgcc_s` + # for a target that has shared libraries, so hardcoding this leaves every + # throwing C++ program unlinkable even though `libgcc_s.so` is built and + # findable. Same predicate the monolithic build uses. + (lib.enableFeature enableTargetShared "shared") "--enable-default-pie" "--enable-languages=${ lib.concatStrings ( diff --git a/pkgs/development/compilers/gcc/ng/common/libgcc/default.nix b/pkgs/development/compilers/gcc/ng/common/libgcc/default.nix index 9cd1561d76ff..9c5979ef255c 100644 --- a/pkgs/development/compilers/gcc/ng/common/libgcc/default.nix +++ b/pkgs/development/compilers/gcc/ng/common/libgcc/default.nix @@ -12,9 +12,37 @@ buildPackages, which, python3, + # Build `libgcc_s` as well as `libgcc.a`, deriving it the way the monolithic + # build does rather than forcing it off. + enableShared ? stdenv.hostPlatform.hasSharedLibraries, }: +let + # A libc needs libgcc to build, and a libgcc that can use the libc's threads + # needs the libc, so this package is instantiated twice — see + # `libgcc-no-libc` and `libgcc-libc` in the package set, the same split the + # LLVM package set makes with `compiler-rt-no-libc` and `compiler-rt-libc`. + # + # Nothing here says which of the two it is. The difference is entirely in the + # compiler it is handed: the bootstrap wrapper's `libc` is `preLibcHeaders` + # (or nothing at all, on platforms without one), the later wrapper's is the + # finished libc. Everything below reads that one value. + libc = stdenv.cc.libc or null; + + # Which threading model may be used is decided by the libc, so take it from + # there rather than guess — and pass it on in `passthru` so that `libstdcxx`, + # which has to agree, reads the same answer instead of probing for its own. + # + # This is what makes the bootstrap build single-threaded without being told + # to be: a headers-only package declares no `threadModel`, and a real libc + # does. That build exists only to get the libc built and is thrown away + # afterwards, so there is nothing to be gained from threading it, and plenty + # to go wrong: `gthr-posix.h` includes `` unconditionally, which + # at that point is either absent or a stand-in for a libc that does not exist + # yet. + threadModel = if libc == null then "single" else libc.threadModel or "single"; +in stdenv.mkDerivation (finalAttrs: { - pname = "libgcc"; + pname = "libgcc" + lib.optionalString (libc == null) "-no-libc"; inherit version; src = monorepoSrc; @@ -83,9 +111,18 @@ stdenv.mkDerivation (finalAttrs: { buildRoot=$(readlink -e "./build") ''; - postPatch = '' - sourceRoot=$(readlink -e "./libgcc") - ''; + postPatch = + # `SHLIB_LC` defaults to `-lc`, so the `libgcc_s.so` rule cannot link + # before libc exists. The monolithic build clobbers it for exactly this + # reason; do the same rather than giving up on shared libgcc. Runs while + # the working directory is still the monorepo root, before `sourceRoot` + # is repointed below. + lib.optionalString enableShared ( + import ../../../common/libgcc-buildstuff.nix { inherit lib stdenv; } + ) + + '' + sourceRoot=$(readlink -e "./libgcc") + ''; enableParallelBuilding = true; @@ -231,13 +268,14 @@ stdenv.mkDerivation (finalAttrs: { configureFlags = [ "--disable-dependency-tracking" - "gcc_cv_target_thread_file=single" + "gcc_cv_target_thread_file=${threadModel}" # $CC cannot link binaries, let alone run then "cross_compiling=true" - # Do not have dynamic linker without libc "--enable-static" - "--disable-shared" - ]; + ] + # `libgcc_s` needs no libc: it comes out with an empty `DT_NEEDED`, which is + # why the monolithic build ships one even from its nolibc stage. + ++ lib.optional (!enableShared) "--disable-shared"; # Set the variable back the way it was, see corresponding code in # `preConfigure`. @@ -255,6 +293,7 @@ stdenv.mkDerivation (finalAttrs: { passthru = { isGNU = true; + inherit threadModel; }; meta = gcc_meta // { diff --git a/pkgs/development/compilers/gcc/ng/common/libstdcxx/default.nix b/pkgs/development/compilers/gcc/ng/common/libstdcxx/default.nix index 48309b851e68..e40af4021aa4 100644 --- a/pkgs/development/compilers/gcc/ng/common/libstdcxx/default.nix +++ b/pkgs/development/compilers/gcc/ng/common/libstdcxx/default.nix @@ -10,6 +10,7 @@ autoreconfHook269, runCommand, gettext, + libgcc, }: stdenv.mkDerivation (finalAttrs: { pname = "libstdcxx"; @@ -44,6 +45,14 @@ stdenv.mkDerivation (finalAttrs: { cp install-sh "$out" cp mkinstalldirs "$out" + '' + # `src/Makefile` runs this to compute `LTLDFLAGS`, reaching out of the + # subdirectory for it as `$(top_srcdir)/../libtool-ldflags`. Missing, the + # shell says "No such file or directory" and `LTLDFLAGS` silently comes out + # empty, dropping our `LDFLAGS` from every library link. + + '' + cp libtool-ldflags "$out" + '' # `MD5SUMS` exists only in release tarballs, not in a VCS checkout. + '' @@ -90,6 +99,32 @@ stdenv.mkDerivation (finalAttrs: { cd "$buildRoot" configureScript=$sourceRoot/configure chmod +x "$configureScript" + + '' + # Put libgcc's `gthr-default.h` where libstdc++ expects to find it. + # + # It is not a source file. In a monolithic build libgcc's Makefile creates + # it by copying whichever `gthr-.h` matches the target's thread + # model, and libstdc++ -- configured inside that same build tree -- picks + # it up. Standalone there is no such tree, so take the one `libgcc` + # installed. The two implement a single threading model between them, and + # copying libgcc's own answer is what makes them agree by construction + # rather than by two independent guesses that can drift apart. `libgcc` + # decided it from the libc; `gcc_cv_target_thread_file` below repeats the + # same value. + # + # The consequence of getting this wrong is worth spelling out, because the + # installed headers do not show it. `GLIBCXX_CHECK_GTHREADS` compiles + # `#include "gthr.h"` and requires `__GTHREADS_CXX0X`, which + # `gthr-posix.h` defines unconditionally. With no posix `gthr-default.h` + # on the include path that test fails, configure concludes there are no + # gthreads, and `_GLIBCXX_HAS_GTHREADS` is left undefined in + # `c++config.h` -- so `` compiles away and `std::mutex` does not + # exist. Stating the intent with `--enable-threads=posix` does not help: + # the probe overrides intent with an empirical answer, so the header has + # to actually be there. + + '' + cp ${lib.getDev libgcc}/include/gthr-default.h "$sourceRoot/../libgcc/gthr-default.h" ''; configurePlatforms = [ @@ -99,7 +134,10 @@ stdenv.mkDerivation (finalAttrs: { configureFlags = [ "--disable-dependency-tracking" - "gcc_cv_target_thread_file=posix" + # The same answer `libgcc` used, and the model of the `gthr-default.h` + # copied in above. A mismatch here is silent: the unwinder's locks vanish + # while `libstdc++` still hands out `std::thread`. + "gcc_cv_target_thread_file=${libgcc.threadModel}" "cross_compiling=true" "--disable-multilib" diff --git a/pkgs/development/libraries/glibc/common.nix b/pkgs/development/libraries/glibc/common.nix index 5e391970a271..6ce41321494e 100644 --- a/pkgs/development/libraries/glibc/common.nix +++ b/pkgs/development/libraries/glibc/common.nix @@ -278,6 +278,11 @@ stdenv.mkDerivation ( passthru = { inherit version; minorRelease = version; + + # glibc's threads are POSIX threads. `libgcc` and `libstdc++` have to be + # configured for the same threading model as each other, so rather than + # have each guess, they take it from the libc they are built against. + threadModel = "posix"; }; } diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/libc.nix b/pkgs/os-specific/bsd/netbsd/pkgs/libc.nix index e23ba1a4fd36..a67bc775f92e 100644 --- a/pkgs/os-specific/bsd/netbsd/pkgs/libc.nix +++ b/pkgs/os-specific/bsd/netbsd/pkgs/libc.nix @@ -47,5 +47,11 @@ symlinkJoin { fixupPhase ''; + # NetBSD's threads are POSIX threads — `libpthread` is joined in above. + # `libgcc` and `libstdc++` have to be configured for the same threading model + # as each other, so rather than have each guess, they take it from the libc + # they are built against. + passthru.threadModel = "posix"; + meta.platforms = lib.platforms.netbsd; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3bc94c889614..479ef887d380 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5631,11 +5631,22 @@ with pkgs; if stdenv.hostPlatform != stdenv.buildPlatform then { stdenv = gccCrossLibcStdenv; # doesn't compile without gcc - libgcc = callPackage ../development/libraries/gcc/libgcc { - gcc = gccCrossLibcStdenv.cc; - glibc = glibc.override { libgcc = null; }; - stdenvNoLibs = gccCrossLibcStdenv; - }; + # glibc `dlopen`s `libgcc_s.so` without consulting the usual search + # path, so it has to name one that already exists. The monolithic + # build gets there by building glibc twice: the inner `libgcc = null` + # one names no libgcc at all, and is used for nothing but building the + # libgcc the real one names. The split package set already has that + # rung as a package of its own — `libgcc-no-libc` is what exists + # before any libc does — so there is nothing left to open-code here. + libgcc = + if stdenv.hostPlatform.useGccNG or false then + gccNGPackages.libgcc-no-libc + else + callPackage ../development/libraries/gcc/libgcc { + gcc = gccCrossLibcStdenv.cc; + glibc = glibc.override { libgcc = null; }; + stdenvNoLibs = gccCrossLibcStdenv; + }; } else { From f39d68cbf9b40e5355af59e14928250d3110bfef Mon Sep 17 00:00:00 2001 From: John Ericson Date: Mon, 10 Aug 2026 18:37:32 -0400 Subject: [PATCH 131/148] gcc/ng: put the target libc's headers where they belong One question in three places: which part of the split set carries the target libc, and what happens where there is none yet. The compiler was configured with `--with-sysroot=${lib.getDev targetPackages.libc}`, so every libc change moved `gcc-unwrapped` -- the most expensive thing here to rebuild, and exactly the coupling this split exists to remove. cc-wrapper already supplies the target libc, the same way the LLVM set leaves `clang` carrying none. Measured with a behaviour-free libc change: before, `gcc-unwrapped` moves, hours; after, `gcc-unwrapped` and `libgcc` are byte-identical and only `libstdcxx` and the wrapper move, minutes. libgcc is where the headers are wanted, and it wants them twice. First, `gcc/configure` sets `inhibit_libc=true` when host != target and `$target_header_dir/stdio.h` is absent, which makes `tsystem.h` skip `` and friends. That is fine for the generic sources and fatal for the target-specific ones that need libc declarations, which fail as `implicit declaration of function 'profil'` and the like. `target_header_dir` comes from `--with-sysroot`, not `--with-headers`, so point the sysroot pair at whichever libc the compiler carries -- read off `stdenv.cc.libc`, which in the pre-libc build is `preLibcHeaders`, the header-only package nixpkgs already keeps for this stage (NetBSD, MinGW, Cygwin), and nothing at all elsewhere. Being headers-only, a libc change still leaves the pre-libc libgcc byte-identical. Reading it off the compiler rather than naming `preLibcHeaders` also fixes glibc and musl, which matched no branch of `preLibcHeaders`, got no sysroot at all, and so built their real libgcc with `inhibit_libc` set. That is silent -- it compiles, links and installs cleanly, and `_eprintf.o` simply comes out empty: aarch64-unknown-linux-gnu libgcc.a before 413014 bytes, `__eprintf` absent after 415276 bytes, `__eprintf` present The real libc is already an input to that build through `stdenv.cc`, so naming it here adds no coupling. Dropping the flag instead was the other option; NetBSD shows the cost, where all 334 libgcc compiles gain `-Dinhibit_libc` and the same symbol disappears there too. Second, `limits.h`. gcc's chains to the target libc's with `#include_next`, and that is the right header to ship: it names no libc, so it stays correct for whatever is on the include path later. Where the compiler has a libc -- headers-only or real -- the chain resolves, and must: those same sources want `PATH_MAX` from it. Where it does not, the chain has nowhere to land and even configure's `AC_PROG_CPP` probe fails, since it includes `` precisely because that "exists even on freestanding compilers", after which it falls back to `/lib/cpp` and reports that: checking how to run the C preprocessor... /lib/cpp configure: error: C preprocessor "/lib/cpp" fails sanity check Only then, put gcc's own `glimits.h` earlier on the include path for this build. That is the self-contained variant, the same file gcc installs when configured against no libc. It is build-local: the compiler keeps shipping the chained header. Fixing the compiler instead is wrong, and glibc catches it at once -- `bits/stdlib.h:98: #error "Assumed value of MB_LEN_MAX wrong"` while building libgomp. `limits.h` is the only header libgcc wanted on glibc and musl, which is why this is one build-local include path rather than a header package per libc. Verified by building `stdenv.cc` for `aarch64-unknown-linux-gnu` and `aarch64-unknown-linux-musl`, neither of which worked before; `x86_64-unknown-netbsd`, whose bootstrap compiler carries `preLibcHeaders`, uses those headers and carries no freestanding include path. Assisted-by: Claude Code (Claude Opus 5) --- .../compilers/gcc/ng/common/gcc/default.nix | 26 +++++++++++--- .../gcc/ng/common/libgcc/default.nix | 34 +++++++++++++++++++ 2 files changed, 56 insertions(+), 4 deletions(-) diff --git a/pkgs/development/compilers/gcc/ng/common/gcc/default.nix b/pkgs/development/compilers/gcc/ng/common/gcc/default.nix index d37a89aa83db..fd282acfda67 100644 --- a/pkgs/development/compilers/gcc/ng/common/gcc/default.nix +++ b/pkgs/development/compilers/gcc/ng/common/gcc/default.nix @@ -35,8 +35,6 @@ fromVCS ? false, getVersionFile, buildGccPackages, - targetPackages, - libc, bintools, # Build the shared runtime libraries, and so have the driver's specs emit # `-lgcc_s`. Derived the way the monolithic build derives it. @@ -300,8 +298,14 @@ stdenv.mkDerivation (finalAttrs: { "--with-system-zlib" "--without-included-gettext" "--enable-linker-build-id" - "--with-sysroot=${lib.getDev (targetPackages.libc or libc)}" - "--with-native-system-header-dir=/include" + # Deliberately *no* `--with-sysroot` / `--with-native-system-header-dir` + # pointing at the target libc. Baking a libc store path into the compiler + # makes every libc change rebuild the compiler, which is precisely the + # coupling this split package set exists to remove. cc-wrapper already + # supplies the target libc (`-idirafter /include` and the + # corresponding `-B`/`-L` flags), so the compiler proper does not need to + # know about it -- exactly as in the LLVM package set, where `clang` + # likewise carries no libc reference (`--without-headers` above). ] ++ lib.optionals enablePlugin [ "--enable-plugin" @@ -314,6 +318,20 @@ stdenv.mkDerivation (finalAttrs: { "--with-multilib-list=" ]; + # `LIMITS_H_TEST` decides whether gcc's generated `syslimits.h` chains to the + # target libc's `limits.h` (`#include_next`) or is emitted self-contained. It + # defaults to a `[ -f $(BUILD_SYSTEM_HEADER_DIR)/limits.h ]` probe, which + # necessarily fails here: we deliberately do not point the compiler at a + # sysroot (see `configureFlags`), so there is no libc for it to find at build + # time. + # + # Self-contained is the wrong answer regardless. Every target in this package + # set is hosted, and cc-wrapper always supplies a libc, so the chained header + # is what resolves correctly at *use* time. Without it, anything the libc's + # `limits.h` defines and gcc's does not -- `PATH_MAX` being the common one -- + # goes missing from every libgcc source that needs it. + makeFlags = [ "LIMITS_H_TEST=true" ]; + doCheck = false; postInstall = '' diff --git a/pkgs/development/compilers/gcc/ng/common/libgcc/default.nix b/pkgs/development/compilers/gcc/ng/common/libgcc/default.nix index 9c5979ef255c..29220191a26d 100644 --- a/pkgs/development/compilers/gcc/ng/common/libgcc/default.nix +++ b/pkgs/development/compilers/gcc/ng/common/libgcc/default.nix @@ -120,6 +120,25 @@ stdenv.mkDerivation (finalAttrs: { lib.optionalString enableShared ( import ../../../common/libgcc-buildstuff.nix { inherit lib stdenv; } ) + # gcc's installed `limits.h` chains to the target libc's with + # `#include_next`. Where the compiler has a libc — headers-only or real — + # that resolves, and it has to: some targets build libgcc sources that need + # what only the libc header defines. Where it does not, the chain has + # nowhere to land, and + # even configure's `AC_PROG_CPP` probe fails -- it includes `` + # precisely because that "exists even on freestanding compilers" -- after + # which configure falls back to `/lib/cpp` and reports that as the error. + # + # Only in that case, put gcc's own `glimits.h` earlier on the include path + # for this build. That is the self-contained variant, the same file gcc + # installs when configured against no libc, so nothing is invented here. + # The compiler keeps shipping the chained header either way, which is what + # has to stay correct for everything compiled against a real libc later. + + lib.optionalString (libc == null) '' + mkdir -p "$NIX_BUILD_TOP/freestanding-include" + cp gcc/glimits.h "$NIX_BUILD_TOP/freestanding-include/limits.h" + export NIX_CFLAGS_COMPILE="-isystem $NIX_BUILD_TOP/freestanding-include ''${NIX_CFLAGS_COMPILE-}" + '' + '' sourceRoot=$(readlink -e "./libgcc") ''; @@ -250,6 +269,21 @@ stdenv.mkDerivation (finalAttrs: { "--with-system-zlib" ] + # `gcc/configure` sets `inhibit_libc=true` when host != target and + # `$target_header_dir/stdio.h` does not exist. `inhibit_libc` makes + # `tsystem.h` skip and friends, which is fine for the generic + # sources but breaks the target-specific ones that genuinely need libc + # declarations -- the profiling support files are the usual casualty. + # + # `target_header_dir` is derived from `--with-sysroot`, *not* from + # `--with-headers`, so the sysroot pair is what has to be set. Point it at + # whichever libc the compiler carries, which in the bootstrap build is the + # headers-only one. This affects only the `gcc/configure` run that generates + # libgcc's makefile fragments, not the compiler that gets shipped. + ++ lib.optionals (libc != null) [ + "--with-sysroot=${lib.getDev libc}" + "--with-native-system-header-dir=/include" + ] ++ lib.optional (!stdenv.hostPlatform.isRiscV) # RISC-V does not like it being empty From a1a1eb029ba0963d006caea3e42541b5ee72b1ac Mon Sep 17 00:00:00 2001 From: John Ericson Date: Mon, 10 Aug 2026 18:37:32 -0400 Subject: [PATCH 132/148] gcc/ng: put libstdc++'s library and headers where each belongs Two halves of how the compiler finds libstdc++. The library was not on the link path. `wrapCCWith` was given `libcxx = libstdcxx`, which tells cc-wrapper where the C++ headers live but does not put the library where a GNU compiler looks, so every C++ link failed with `cannot find -lstdc++`. Add `-B${libstdcxx}/lib`, as libgcc, libssp, libatomic and libgomp already are. The headers had the opposite problem: found too eagerly, by the wrong language. libstdc++ deliberately ships headers named after C headers -- `math.h`, `stdlib.h`, `complex.h`, `stdckdint.h`, `stdbit.h`, `stdatomic.h`, `tgmath.h`, `fenv.h` -- whose purpose is to shadow the C ones when compiling C++. Installed into `$dev/include` they shadowed unconditionally, since `libcxx` is a propagated target-target dep of cc-wrapper and the setup hook puts that directory on the **C** include path of everything built with the compiler. Under C, libstdc++'s `` is an empty shell, so its functions vanish: bash: braces.c: implicit declaration of function 'ckd_sub' coreutils: randperm.c: implicit declaration of function 'stdc_bit_width' Both build fine with monolithic GCC, whose libstdc++ headers live in `include/c++/$ver` and are added by the g++ driver alone. Install them into a sibling `include-cxx`, which keeps them off C's include path while staying findable for C++; no version or target subdirectory is needed, since the store path already separates one libstdc++ from another. Assisted-by: Claude Code (Claude Opus 5) --- pkgs/build-support/cc-wrapper/default.nix | 10 ++++++++-- .../gcc/ng/15/libstdcxx/force-regular-dirs.patch | 16 ++++++++++++++-- .../compilers/gcc/ng/common/default.nix | 6 ++++++ 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix index bf079f1b0e53..d926d85425a3 100644 --- a/pkgs/build-support/cc-wrapper/default.nix +++ b/pkgs/build-support/cc-wrapper/default.nix @@ -804,9 +804,15 @@ stdenvNoCC.mkDerivation { include -cxx-isystem "${getDev libcxx}/include/c++/v1" >> $out/nix-support/libcxx-cxxflags echo "-stdlib=libc++" >> $out/nix-support/libcxx-ldflags '' - # GCC NG friendly libc++ + # This is the GCC NG case, libstdc++ is being built as a separate package. + # + # Point at `include-cxx`, not `include`. `libcxx` is also a propagated + # target-target dep, so the generic setup hook puts its `include` on the *C* + # include path -- and libstdc++ ships headers named after C headers + # (`math.h`, `stdlib.h`, `stdckdint.h`, ...) that are only meant to shadow + # the C ones in C++. A sibling directory the setup hook ignores is enough. + optionalString (libcxx != null && libcxx.isGNU or false) '' - include -isystem "${getDev libcxx}/include" >> $out/nix-support/libcxx-cxxflags + include -isystem "${getDev libcxx}/include-cxx" >> $out/nix-support/libcxx-cxxflags '' ## diff --git a/pkgs/development/compilers/gcc/ng/15/libstdcxx/force-regular-dirs.patch b/pkgs/development/compilers/gcc/ng/15/libstdcxx/force-regular-dirs.patch index e80cffdce1e7..2812ba748e80 100644 --- a/pkgs/development/compilers/gcc/ng/15/libstdcxx/force-regular-dirs.patch +++ b/pkgs/development/compilers/gcc/ng/15/libstdcxx/force-regular-dirs.patch @@ -1,9 +1,21 @@ From db427c55334dd2edc11397d3a92d55dc9c06d1c3 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Sun, 20 Jul 2025 14:20:00 -0400 -Subject: [PATCH] libstdc++: Force regular include/lib dir +Subject: [PATCH] libstdc++: Force regular lib dir, headers in include-cxx Delete a bunch of unneeded logic to do this. + +The library goes straight in $(libdir), with no version-specific or +target-specific subdirectory. + +The headers go in $(includedir)-cxx rather than $(includedir). libstdc++ +intentionally ships headers named after C headers -- `math.h`, `stdlib.h`, +`complex.h`, `stdckdint.h` and friends -- whose whole purpose is to shadow +the C ones when compiling C++. Installed into the ordinary include dir they +shadow them when compiling *C* too, because the generic setup hook puts that +directory on the C include path. A sibling directory keeps them out of C's +way while staying findable for C++; no version or target subdirectory is +needed, since the store path already separates one libstdc++ from another. --- libstdc++-v3/acinclude.m4 | 80 ++------------------------------ libstdc++-v3/include/Makefile.am | 2 +- @@ -21,7 +33,7 @@ index a0094c2dd95..a0718dff394 100644 - glibcxx_toolexeclibdir=no + glibcxx_toolexecdir='$(libdir)' + glibcxx_toolexeclibdir='$(libdir)' -+ gxx_include_dir='$(includedir)' ++ gxx_include_dir='$(includedir)-cxx' glibcxx_prefixdir=$prefix - AC_MSG_CHECKING([for gxx-include-dir]) diff --git a/pkgs/development/compilers/gcc/ng/common/default.nix b/pkgs/development/compilers/gcc/ng/common/default.nix index 9ae438ff5e32..84c31c3bf9d6 100644 --- a/pkgs/development/compilers/gcc/ng/common/default.nix +++ b/pkgs/development/compilers/gcc/ng/common/default.nix @@ -131,6 +131,7 @@ makeScopeWithSplicing' { "-B${targetGccPackages.libssp}/lib" "-B${targetGccPackages.libatomic}/lib" "-B${targetGccPackages.libgomp}/lib" + "-B${targetGccPackages.libstdcxx}/lib" "-B${targetGccPackages.libgfortran}/lib/" ]; }; @@ -163,6 +164,11 @@ makeScopeWithSplicing' { "-B${targetGccPackages.libssp}/lib" "-B${targetGccPackages.libatomic}/lib" "-B${targetGccPackages.libgomp}/lib" + # `libcxx` above tells cc-wrapper where the C++ *headers* are; it does + # not put the library itself on the link path for a GNU compiler. So + # every C++ link failed with `cannot find -lstdc++` until this was + # added, in the same style as the other runtime libraries. + "-B${targetGccPackages.libstdcxx}/lib" "-I${targetGccPackages.libgomp}/lib/gcc/${metadata.release_version}/include" ]; }; From fcde6eb30df0a8233060b89ba4c683e31169dd75 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Mon, 10 Aug 2026 18:37:42 -0400 Subject: [PATCH 133/148] gcc/ng: build libstdc++ with the C driver, and ship `libtool-ldflags` Two things a monolithic build does implicitly that the split set had nobody to do. Linking `libstdc++.so` with `g++` fails, because that driver implies `-lstdc++` and the library being linked is the one that would provide it: ld: cannot find -lstdc++: No such file or directory `libstdc++-v3/src/Makefile.am` names the remedy where it defines `CXXLINK`: use `gcc` as the C++ compilation driver, which the top level arranges via `RAW_CXX_FOR_TARGET` -- `xgcc`, not `xg++`, plus `-shared-libgcc` and `-nostdinc++`. Configured standalone there is no top level to arrange it, so arrange it here. The C driver still compiles `.cc` as C++ by extension; what it drops is the implicit `-lstdc++`. `-shared-libgcc` restores the linkage `g++` would have chosen, and `-nostdinc++` keeps already-installed C++ headers out of the build whose purpose is to produce them. `src/Makefile` also computes `LTLDFLAGS` by shelling out to `$(top_srcdir)/../libtool-ldflags`, reaching out of `libstdc++-v3` into the GCC top level. Our trimmed source tree never copied it, so the shell reported `No such file or directory`, `LTLDFLAGS` came out empty, and `LDFLAGS` was quietly dropped from every library link. Same failure mode as the `gthr-default.h` bug: a file that exists only because a monolithic tree has it, missing without anything treating its absence as an error. Assisted-by: Claude Code (Claude Opus 5) --- .../gcc/ng/common/libstdcxx/default.nix | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/pkgs/development/compilers/gcc/ng/common/libstdcxx/default.nix b/pkgs/development/compilers/gcc/ng/common/libstdcxx/default.nix index e40af4021aa4..654c4992e47b 100644 --- a/pkgs/development/compilers/gcc/ng/common/libstdcxx/default.nix +++ b/pkgs/development/compilers/gcc/ng/common/libstdcxx/default.nix @@ -100,6 +100,30 @@ stdenv.mkDerivation (finalAttrs: { configureScript=$sourceRoot/configure chmod +x "$configureScript" + '' + # Build libstdc++ with the *C* driver, not `g++`. `g++` implies `-lstdc++`, + # which cannot be satisfied while building the very library that provides + # it, and the link fails with `cannot find -lstdc++`. + # + # This is not our invention; it is what a monolithic build does, and + # `libstdc++-v3/src/Makefile.am` says so where it defines `CXXLINK`: + # + # We cannot allow g++ to be used since this would add -lstdc++ to the + # link line which of course is problematic at this point. So, we get + # the top-level directory to configure libstdc++-v3 to use gcc as the + # C++ compilation driver. + # + # The top level does that through `RAW_CXX_FOR_TARGET`, which is `xgcc` + # -- not `xg++` -- plus `-shared-libgcc` and `-nostdinc++`. Building + # standalone there is no top level to arrange it, so arrange it here. The + # C driver still compiles `.cc` as C++ by extension; what it drops is the + # implicit `-lstdc++`. `-shared-libgcc` puts back the linkage `g++` would + # have chosen, which the C driver does not default to, and `-nostdinc++` + # keeps any already-installed C++ headers out of a build whose whole + # purpose is to produce them. + + '' + cxxForLibstdcxx="$CC -shared-libgcc -nostdinc++" + '' # Put libgcc's `gthr-default.h` where libstdc++ expects to find it. # @@ -125,6 +149,9 @@ stdenv.mkDerivation (finalAttrs: { # to actually be there. + '' cp ${lib.getDev libgcc}/include/gthr-default.h "$sourceRoot/../libgcc/gthr-default.h" + + export CXX="$cxxForLibstdcxx" + echo "libstdcxx: building with CXX=$CXX" ''; configurePlatforms = [ From 85edf2c64fc7280d594cc92981d5f23a9e8c2990 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Mon, 10 Aug 2026 14:25:45 -0400 Subject: [PATCH 134/148] gcc/ng: let libstdc++ pick its own locale model `--enable-clocale=gnu` was passed for every target. That selects `config/locale/gnu`, the glibc locale model, whose `ctype_members.cc` reads `__ctype_b` -- a glibc symbol. On any other libc the build fails on the type the table is not: ctype_members.cc:50:51: error: cannot convert 'const short unsigned int*' to 'const std::ctype_base::mask*' {aka 'const unsigned int*'} in assignment libstdc++ works this out for itself from the host triple, as it does for the OS layer next door -- `configure.host:262` maps `linux-musl*` to `os/generic` -- and the monolithic build passes no `--enable-clocale` at all, leaving that to configure. Do the same here. Verified by building the full cross toolchain, `stdenv.cc`, for `aarch64-unknown-linux-musl`, which builds libstdc++ and previously failed on exactly this. Assisted-by: Claude Code (Claude Opus 5) --- .../compilers/gcc/ng/common/libstdcxx/default.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkgs/development/compilers/gcc/ng/common/libstdcxx/default.nix b/pkgs/development/compilers/gcc/ng/common/libstdcxx/default.nix index 654c4992e47b..08865b5ff519 100644 --- a/pkgs/development/compilers/gcc/ng/common/libstdcxx/default.nix +++ b/pkgs/development/compilers/gcc/ng/common/libstdcxx/default.nix @@ -168,7 +168,12 @@ stdenv.mkDerivation (finalAttrs: { "cross_compiling=true" "--disable-multilib" - "--enable-clocale=gnu" + # `gnu` is the glibc locale model: `config/locale/gnu/ctype_members.cc` + # reads `__ctype_b`, which only glibc has. Forcing it everywhere breaks any + # other libc -- on musl the build fails converting `const unsigned short *` + # to `const ctype_base::mask *`. Configure picks the right model from the + # host triple on its own, as it does for the monolithic build, which passes + # no `--enable-clocale` at all. "--disable-libstdcxx-pch" "--disable-vtable-verify" "--enable-libstdcxx-visibility" From a089de30fa56821ae42163f01e6f46b10ba7724b Mon Sep 17 00:00:00 2001 From: John Ericson Date: Tue, 11 Aug 2026 13:41:03 -0400 Subject: [PATCH 135/148] gcc/ng: describe the bootstrap chain in the README The chain is the part of this package set that cannot be read off any one file: four compilers, each a step further along, and two `libgcc`s either side of the libc. Until now it was only recoverable by reading the `overrideCC` call sites in order and reconstructing the argument. Write it down once, as a table, next to why the cycle needs breaking at all -- a libc's sources call into libgcc, and a libgcc that can use the libc's threads needs the libc. Also record the two things that are easy to get wrong and hard to notice: that the pre-libc stage is written down in exactly one place (`binutilsNoLibc` carrying `preLibcHeaders` as its `libc`), and that a libgcc built with `inhibit_libc` still compiles, links and installs, just with pieces silently missing. The per-wrapper comments shrink to what is local to each -- which stage it is and what keeps the libc out -- since the chain-wide narrative now has somewhere better to live. Assisted-by: Claude Code (Claude Opus 5) --- pkgs/development/compilers/gcc/ng/README.md | 57 ++++++++++++++++++- .../compilers/gcc/ng/common/default.nix | 39 +++++-------- 2 files changed, 69 insertions(+), 27 deletions(-) diff --git a/pkgs/development/compilers/gcc/ng/README.md b/pkgs/development/compilers/gcc/ng/README.md index b40070caebc6..0bbde4ef5cbf 100644 --- a/pkgs/development/compilers/gcc/ng/README.md +++ b/pkgs/development/compilers/gcc/ng/README.md @@ -1,3 +1,58 @@ # GCC Next-Generation -Experimental split GCC package set based on the LLVM package set design. +Experimental split GCC package set, based on the LLVM package set design. + +The monolithic `gcc` derivation builds the compiler and every runtime library in one go, so a change to the target libc rebuilds the compiler too. +This set separates them — `gcc`, `libgcc`, `libstdcxx` and the rest are individual packages — so the compiler stops depending on the libc, and each piece can be rebuilt on its own. +Because GCC is not a multi-target compiler — a single target is baked into the binary with CPP — we still need to rebuild it more than we do LLVM, but someday that should change. + +A platform opts in with `useGccNG`, in the same way it would opt into `useLLVM`. + +## The bootstrap chain + +The libc and libgcc depend on each other: a libc's own sources call into libgcc for integer and floating-point helpers and for stack unwinding, and a libgcc that can use the libc's threads needs the libc. + +The way out we currently use is the same one the LLVM set takes with `compiler-rt-no-libc` and `compiler-rt-libc` — build the runtime twice, either side of the libc. +It is unclear whether this works in general to resolve the circularity, but we shall see. + +That gives four compilers, each one step further along: + +| compiler | libc | libgcc | used to build | +|---|---|---|---| +| `gccNoLibgcc` | headers, or nothing | — | `libgcc-no-libc` | +| `gccWithLibgcc` | headers, or nothing | `libgcc-no-libc` | the libc | +| `gccWithLibcAndBasicLibgcc` | real | `libgcc-no-libc` | `libgcc-libc` | +| `gccWithLibc` / `gcc` | real | `libgcc-libc` | everything else | + +`libgcc` resolves to `libgcc-libc` wherever a libc exists; only those first three stages ever see `libgcc-no-libc`. +The bootstrap one is single-threaded and compiled against the libc's headers at best, so it is not intended for use beyond building the libc. + +Nothing is passed down to say which stage is which. +It follows from the compiler: each package reads `stdenv.cc.libc` and needs no flag of its own. +That is also how the two `libgcc`s differ — same expression, different `stdenv`. + +## Where the pre-libc stage is written down + +`binutilsNoLibc` carries `preLibcHeaders` as its `libc`: the header-only stand-in for platforms that have one, and nothing at all for platforms that do not. +`wrapCCWith` defaults `libc` to `bintools.libc`, so the bootstrap compilers inherit it, and everything built with them reads `stdenv.cc.libc`. + +Setting a sysroot as well is unusual for nixpkgs, since headers normally reach a compiler through the wrapper, as they do here. +It is needed because `gcc/configure` takes `target_header_dir` from `--with-sysroot`, and `target_header_dir` is what decides `inhibit_libc`. +A libgcc built with `inhibit_libc` still compiles, links and installs, just with pieces silently missing. + +Given that, the sysroot is derived from `stdenv.cc.libc` too, so it cannot disagree with the headers. + +## Threading + +Which threading model is available is a property of the libc, so the libc declares it as `passthru.threadModel`; `libgcc` reads it from there, and `libstdcxx` takes both the model and the generated `gthr-default.h` from `libgcc`. + +Reading it from the compiler instead, with `$CC -v | sed -n 's/^Thread model: //p'`, reports the wrong component: in this set the compiler is configured separately from libgcc, so the two can disagree. +A platform whose libc declares nothing gets `single`. + +## Relationship to the monolithic set + +Both are packaged from the same sources and, for now, the same version: `gccNGPackages` tracks `default-gcc-version` with no fallback, so bumping the monolithic default past what is packaged here is an evaluation error rather than a silent version skew. + +Nothing selects GGN NG yet by default. +The plan is for very exotic package sets to switch to this first. +The main tier-1 native Linux package sets cached on `cache.nixos.org` will come later. diff --git a/pkgs/development/compilers/gcc/ng/common/default.nix b/pkgs/development/compilers/gcc/ng/common/default.nix index 84c31c3bf9d6..9929fee1e655 100644 --- a/pkgs/development/compilers/gcc/ng/common/default.nix +++ b/pkgs/development/compilers/gcc/ng/common/default.nix @@ -173,12 +173,11 @@ makeScopeWithSplicing' { ]; }; - # `binutilsNoLibc` carries `preLibcHeaders` as its `libc` — the - # header-only stand-in for platforms that have one, and nothing at all - # for platforms that do not. `wrapCCWith` defaults `libc` to - # `bintools.libc`, so this wrapper carries it too, and that is the only - # place the pre-libc stage is written down: everything built with this - # compiler reads `stdenv.cc.libc` and needs no flag of its own. + # Stage 1 of the bootstrap chain; see ../README.md. + # + # No `libc` is passed: `wrapCCWith` defaults it to `bintools.libc`, and + # `binutilsNoLibc` carries `preLibcHeaders`. That is the only place the + # pre-libc stage is written down. gccNoLibgcc = wrapCCWith { cc = gccPackages.gcc-unwrapped; libcxx = null; @@ -189,13 +188,9 @@ makeScopeWithSplicing' { ]; }; - # Built before there is a libc, and good for nothing but getting one - # built: single-threaded, and compiled against `preLibcHeaders` at best. - # Never hand this to users. - # - # Nothing is passed here to say which stage this is; it follows from the - # compiler, exactly as the LLVM set distinguishes `compiler-rt-no-libc` - # from `compiler-rt-libc`. + # Built before there is a libc, and not intended for use beyond getting + # one built. Note the two differ only by `stdenv`: which stage this is + # follows from the compiler, never from an argument. libgcc-no-libc = callPackage ./libgcc { stdenv = overrideCC stdenv buildGccPackages.gccNoLibgcc; }; @@ -209,15 +204,9 @@ makeScopeWithSplicing' { libgcc = if stdenv.hostPlatform.libc == null then gccPackages.libgcc-no-libc else gccPackages.libgcc-libc; - # The bootstrap step between `gccNoLibgcc` and `gccWithLibc`: libgcc is - # available, libc is not yet. Compiling a libc needs exactly this — libc's - # own sources call into libgcc (integer/floating-point helpers, stack - # unwinding), so `gccNoLibgcc` is not enough, while `gccWithLibc` cannot - # be used to build the very libc it depends on. - # - # `binutilsNoLibc` is what keeps libc out: it supplies the header-only - # `preLibcHeaders` instead of a real libc, so nothing here refers to a - # libc derivation and the cycle stays broken. + # Stage 2: libgcc available, libc not yet — what compiling a libc needs. + # `binutilsNoLibc` is what keeps the libc out, so nothing here refers to + # a libc derivation and the cycle stays broken. gccWithLibgcc = wrapCCWith { cc = gccPackages.gcc-unwrapped; libcxx = null; @@ -230,10 +219,8 @@ makeScopeWithSplicing' { ]; }; - # The rung after `gccWithLibgcc`: the libc it was used to build now - # exists, so this has a real libc, but still only the bootstrap libgcc — - # the finished one is what it is about to build. That is `libgcc-libc`, - # which unlike its predecessor can use the libc's threads. + # Stage 3: real libc, bootstrap libgcc still. The finished libgcc is what + # this is about to build. gccWithLibcAndBasicLibgcc = wrapCCWith { cc = gccPackages.gcc-unwrapped; libcxx = null; From d9de145969d5888271125053ab3a6066f1af9616 Mon Sep 17 00:00:00 2001 From: Zerodya Date: Wed, 12 Aug 2026 23:45:52 +0200 Subject: [PATCH 136/148] wl-freeze: 2.0.2 -> 2.1.0 --- pkgs/by-name/wl/wl-freeze/package.nix | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/wl/wl-freeze/package.nix b/pkgs/by-name/wl/wl-freeze/package.nix index e9dfdae1bb96..74466397909d 100644 --- a/pkgs/by-name/wl/wl-freeze/package.nix +++ b/pkgs/by-name/wl/wl-freeze/package.nix @@ -8,11 +8,14 @@ procps, psmisc, libnotify, + xdotool, + kdotool, + kdePackages, }: stdenv.mkDerivation (finalAttrs: { pname = "wl-freeze"; - version = "2.0.2"; + version = "2.1.0"; strictDeps = true; __structuredAttrs = true; @@ -21,7 +24,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "Zerodya"; repo = "wl-freeze"; tag = "v${finalAttrs.version}"; - hash = "sha256-miyDiUN86Zy9RfVm1MefKrYihX4+bFv6Jr4Cl4GzGz8="; + hash = "sha256-WY1XB17ARU34dAlU7CqMg3AXVlE0qilXwfGMpYeeiwk="; }; dontConfigure = true; @@ -55,6 +58,9 @@ stdenv.mkDerivation (finalAttrs: { procps psmisc libnotify + xdotool + kdotool + kdePackages.qttools ] } ''; From 763fd676169cf77cfd25008cc7116375fbfcc961 Mon Sep 17 00:00:00 2001 From: Sigmanificient Date: Wed, 12 Aug 2026 23:48:29 +0200 Subject: [PATCH 137/148] nix-direnv: use tag instead of rev Co-authored-by: Ross George --- pkgs/by-name/ni/nix-direnv/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/ni/nix-direnv/package.nix b/pkgs/by-name/ni/nix-direnv/package.nix index d460b11e3eb0..a52ca907e8f4 100644 --- a/pkgs/by-name/ni/nix-direnv/package.nix +++ b/pkgs/by-name/ni/nix-direnv/package.nix @@ -14,7 +14,7 @@ resholve.mkDerivation (finalAttrs: { src = fetchFromGitHub { owner = "nix-community"; repo = "nix-direnv"; - rev = finalAttrs.version; + tag = finalAttrs.version; hash = "sha256-dNJeSRuuqA2avtLpTse7mTTmnYdVnC5BxRsofuLXiqE="; }; From aa97414e9811e786789decf01930ad55395b61ea Mon Sep 17 00:00:00 2001 From: Defelo Date: Wed, 12 Aug 2026 21:52:54 +0000 Subject: [PATCH 138/148] radicle-node: 1.10.0 -> 1.10.1 Changelog: https://radicle.network/nodes/seed.radicle.dev/rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5/tree/CHANGELOG.md --- pkgs/by-name/ra/radicle-node/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ra/radicle-node/package.nix b/pkgs/by-name/ra/radicle-node/package.nix index d42e6c7ba95d..a1b450ae3617 100644 --- a/pkgs/by-name/ra/radicle-node/package.nix +++ b/pkgs/by-name/ra/radicle-node/package.nix @@ -15,9 +15,9 @@ xdg-utils, versionCheckHook, - version ? "1.10.0", - srcHash ? "sha256-msKnRL6T9Z+bSxknRvhKSE6rDlGA0e8aWwM1/PhUzZw=", - cargoHash ? "sha256-g23LqCXZt+/JX+1Nb9JCORxI0P/LJL2MZHg3lATKLd8=", + version ? "1.10.1", + srcHash ? "sha256-F+64o9z/al0iaLFyQHAYk/3jjf5T0FdgqaU3nEWIheg=", + cargoHash ? "sha256-TLffetbkVwIbUDoI+96T99+lfYu2SIpGtwC0DbuJXnU=", updateScript ? ./update.sh, }: From b5c455162761ac7b06bf7aace39b7b888f58402f Mon Sep 17 00:00:00 2001 From: Defelo Date: Wed, 12 Aug 2026 21:53:26 +0000 Subject: [PATCH 139/148] radicle-node-unstable: 1.10.0 -> 1.10.1 Changelog: https://radicle.network/nodes/seed.radicle.dev/rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5/tree/CHANGELOG.md --- pkgs/by-name/ra/radicle-node/unstable.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ra/radicle-node/unstable.nix b/pkgs/by-name/ra/radicle-node/unstable.nix index 6461906e6651..e4b98a70f3be 100644 --- a/pkgs/by-name/ra/radicle-node/unstable.nix +++ b/pkgs/by-name/ra/radicle-node/unstable.nix @@ -1,8 +1,8 @@ { radicle-node }: radicle-node.override { - version = "1.10.0"; - srcHash = "sha256-msKnRL6T9Z+bSxknRvhKSE6rDlGA0e8aWwM1/PhUzZw="; - cargoHash = "sha256-g23LqCXZt+/JX+1Nb9JCORxI0P/LJL2MZHg3lATKLd8="; + version = "1.10.1"; + srcHash = "sha256-F+64o9z/al0iaLFyQHAYk/3jjf5T0FdgqaU3nEWIheg="; + cargoHash = "sha256-TLffetbkVwIbUDoI+96T99+lfYu2SIpGtwC0DbuJXnU="; updateScript = ./update-unstable.sh; } From 89a98a8f7a81aba98ab96ce5e809504ba6d7a1ad Mon Sep 17 00:00:00 2001 From: Yohann Boniface Date: Wed, 12 Aug 2026 23:58:11 +0200 Subject: [PATCH 140/148] hunk: inline use of pname Co-authored-by: Ethan Carter Edwards --- pkgs/by-name/hu/hunk/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/hu/hunk/package.nix b/pkgs/by-name/hu/hunk/package.nix index 93035361efc0..51ce4609c060 100644 --- a/pkgs/by-name/hu/hunk/package.nix +++ b/pkgs/by-name/hu/hunk/package.nix @@ -78,7 +78,7 @@ stdenv.mkDerivation { --replace-fail \ 'join("node_modules", "hunkdiff", HUNK_REVIEW_SKILL_RELATIVE_PATH),' \ 'join("node_modules", "hunkdiff", HUNK_REVIEW_SKILL_RELATIVE_PATH), - join("share", "skills", "${pname}", "hunk-review", "SKILL.md"),' + join("share", "skills", "hunk", "hunk-review", "SKILL.md"),' ''; configurePhase = '' @@ -110,8 +110,8 @@ stdenv.mkDerivation { runHook preInstall install -Dm755 hunk $out/bin/hunk - mkdir -p $out/share/skills/$pname/hunk-review - cp skills/hunk-review/SKILL.md $out/share/skills/$pname/hunk-review/SKILL.md + mkdir -p $out/share/skills/hunk/hunk-review + cp skills/hunk-review/SKILL.md $out/share/skills/hunk/hunk-review/SKILL.md runHook postInstall ''; From 20cf7fb86b159be42e4c0d6141afb8dd6688a3dd Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 22:58:17 +0000 Subject: [PATCH 141/148] terraform-providers.fastly_fastly: 9.4.0 -> 9.6.0 --- .../networking/cluster/terraform-providers/providers.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json index 3ef1c691bc9b..6db12ba78c5f 100644 --- a/pkgs/applications/networking/cluster/terraform-providers/providers.json +++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json @@ -409,13 +409,13 @@ "vendorHash": null }, "fastly_fastly": { - "hash": "sha256-fblscW6k/iWGr3HTLASrfD11asYsssDuXkGUnzGoUFY=", + "hash": "sha256-n1C/sRIPaZJJ/0irMNhDbi+hzXaof0+Kgu7XgDkGS3o=", "homepage": "https://registry.terraform.io/providers/fastly/fastly", "owner": "fastly", "repo": "terraform-provider-fastly", - "rev": "v9.4.0", + "rev": "v9.6.0", "spdx": "MPL-2.0", - "vendorHash": "sha256-DhETt9f9GaAI5V/A53H3Bhph9uZyffUM1bsWDrW4CLE=" + "vendorHash": "sha256-tDiNj7Xbda10gUBYJ1bwzlYsrwa2ZSK9ZxsbXziI2pU=" }, "flexibleenginecloud_flexibleengine": { "hash": "sha256-yEZ9JiUSqFFbfqzOOD59ZBv4yFCeUBBKlp6aiUqDqiM=", From 610d96198070e201f93e4833a35c477463bb5f80 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 12 Aug 2026 22:58:57 +0000 Subject: [PATCH 142/148] python3Packages.py-dactyl: 2.1.2 -> 2.1.3 --- pkgs/development/python-modules/py-dactyl/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/py-dactyl/default.nix b/pkgs/development/python-modules/py-dactyl/default.nix index 8bed0ba855bc..6b5e3b929c43 100644 --- a/pkgs/development/python-modules/py-dactyl/default.nix +++ b/pkgs/development/python-modules/py-dactyl/default.nix @@ -11,14 +11,14 @@ buildPythonPackage rec { pname = "py-dactyl"; - version = "2.1.2"; + version = "2.1.3"; pyproject = true; src = fetchFromGitHub { owner = "iamkubi"; repo = "pydactyl"; tag = "v${version}"; - hash = "sha256-/bmk4RIS8pEi+RbJ+6tOchwFj246hdoTXv6WBNisKuc="; + hash = "sha256-WgsykxwcpUasbYJdhM2s/+a7SaORzA7mW+9AhORxcbA="; }; build-system = [ setuptools ]; From 2ef1b3763c962665844d8e695971cfc2f05dc7da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Thu, 13 Aug 2026 01:04:49 +0200 Subject: [PATCH 143/148] python314Packages.docling-slim: use pytest-xdist to half test time On my machine this speeds up tests from ~147s to ~71s. --- pkgs/development/python-modules/docling-slim/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/development/python-modules/docling-slim/default.nix b/pkgs/development/python-modules/docling-slim/default.nix index 368a0e9cf5a5..8ab9c98d5f45 100644 --- a/pkgs/development/python-modules/docling-slim/default.nix +++ b/pkgs/development/python-modules/docling-slim/default.nix @@ -87,6 +87,7 @@ # tests ffmpeg-headless, gitMinimal, + pytest-xdist, pytestCheckHook, writableTmpDirAsHomeHook, }: @@ -283,6 +284,7 @@ buildPythonPackage (finalAttrs: { openpyxl pylatexenc pypdfium2 + pytest-xdist pytestCheckHook python-docx python-pptx From 3d43da3db6ce0e201e886765b3d52dfae5c0d608 Mon Sep 17 00:00:00 2001 From: Ryan Omasta Date: Fri, 31 Jul 2026 03:05:16 -0600 Subject: [PATCH 144/148] shadps4: 0.16.0 -> 0.17.0 https://github.com/shadps4-emu/shadPS4/releases/tag/v.0.17.0 Diff: https://github.com/shadps4-emu/shadPS4/compare/v.0.16.0...v.0.17.0 --- pkgs/by-name/sh/shadps4/package.nix | 64 ++++++++++++++++++++++------- 1 file changed, 50 insertions(+), 14 deletions(-) diff --git a/pkgs/by-name/sh/shadps4/package.nix b/pkgs/by-name/sh/shadps4/package.nix index 250bcf430d9a..4a3df8dc495b 100644 --- a/pkgs/by-name/sh/shadps4/package.nix +++ b/pkgs/by-name/sh/shadps4/package.nix @@ -2,6 +2,7 @@ lib, clangStdenv, fetchFromGitHub, + fetchpatch2, makeWrapper, nixosTests, @@ -12,7 +13,9 @@ cryptopp, ffmpeg, fmt, + freetype, half, + httplib, jack2, libdecor, libpng, @@ -21,6 +24,7 @@ libusb1, magic-enum, minimp3, + miniupnpc, miniz, nlohmann_json, libgbm, @@ -49,27 +53,37 @@ vulkan-memory-allocator, xbyak, xxhash, + zarchive, + zstd, zlib, nix-update-script, + + withRpc ? true, }: +let + abseilCppSrc = fetchFromGitHub { + owner = "abseil"; + repo = "abseil-cpp"; + tag = "20250512.1"; + hash = "sha256-eB7OqTO9Vwts9nYQ/Mdq0Ds4T1KgmmpYdzU09VPWOhk="; + }; +in clangStdenv.mkDerivation (finalAttrs: { pname = "shadps4"; - version = "0.16.0"; + version = "0.17.0"; src = fetchFromGitHub { owner = "shadps4-emu"; repo = "shadPS4"; tag = "v.${finalAttrs.version}"; - hash = "sha256-SavSUHtnJeRi2mzIyUhLfLk37Y/PSuI3bbbqWA7qVbg="; + hash = "sha256-Z3UwxK+0D3RXKTM0ybYG4U42bInjF05KlMXzxN4UcNg="; postCheckout = '' - cd "$out" + git -C "$out" rev-parse --short=8 HEAD > $out/COMMIT + date -u -d "@$(git -C "$out" log -1 --pretty=%ct)" "+%Y-%m-%dT%H:%M:%SZ" > $out/SOURCE_DATE_EPOCH - git rev-parse --short=8 HEAD > $out/COMMIT - date -u -d "@$(git log -1 --pretty=%ct)" "+%Y-%m-%dT%H:%M:%SZ" > $out/SOURCE_DATE_EPOCH - - git -C externals submodule update --init --recursive \ + git -C "$out/externals" submodule update --init --recursive \ glslang \ zydis \ sirit \ @@ -83,10 +97,20 @@ clangStdenv.mkDerivation (finalAttrs: { aacdec/fdk-aac \ spdlog \ libressl \ - ImGuiFileDialog + ImGuiFileDialog \ + protobuf ''; }; + patches = [ + # https://github.com/shadps4-emu/shadPS4/pull/4786 + (fetchpatch2 { + name = "use-system-zarchive.patch"; + url = "https://github.com/shadps4-emu/shadPS4/commit/71c48b43570ac8df545d3d96261b0ec7fa37c808.patch?full_index=1"; + hash = "sha256-MQiw+DGi/85nTSAVrNw2GmwhbBD7/Xy3lCIDMg1HxxU="; + }) + ]; + postPatch = '' substituteInPlace src/common/scm_rev.cpp.in \ --replace-fail @APP_VERSION@ ${finalAttrs.version} \ @@ -96,6 +120,15 @@ clangStdenv.mkDerivation (finalAttrs: { --replace-fail @BUILD_DATE@ $(cat SOURCE_DATE_EPOCH) ''; + # System Zstd is not linked by default + env.NIX_LDFLAGS = "-lzstd"; + + nativeBuildInputs = [ + cmake + pkg-config + makeWrapper + ]; + buildInputs = [ alsa-lib boost @@ -103,7 +136,9 @@ clangStdenv.mkDerivation (finalAttrs: { cryptopp ffmpeg fmt + freetype half + httplib jack2 libdecor libpng @@ -120,6 +155,7 @@ clangStdenv.mkDerivation (finalAttrs: { libxtst magic-enum minimp3 + miniupnpc miniz libgbm nlohmann_json @@ -139,17 +175,17 @@ clangStdenv.mkDerivation (finalAttrs: { vulkan-memory-allocator xbyak xxhash + zarchive + zstd zlib ]; - nativeBuildInputs = [ - cmake - pkg-config - makeWrapper - ]; - cmakeFlags = [ + (lib.cmakeBool "ENABLE_DISCORD_RPC" withRpc) + (lib.cmakeBool "ENABLE_TESTS" false) (lib.cmakeBool "ENABLE_UPDATER" false) + (lib.cmakeBool "ENABLE_SYSTEM_LIBRARIES" true) + (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_ABSL" "${abseilCppSrc}") ]; # Still in development, help with debugging From ed0318621d83b0b5a5d43dc74bb1c32d90e33688 Mon Sep 17 00:00:00 2001 From: Ryan Omasta Date: Fri, 31 Jul 2026 04:04:22 -0600 Subject: [PATCH 145/148] shadps4-qtlauncher: 0-unstable-2026-06-07 -> 0-unstable-2026-08-08 --- .../by-name/sh/shadps4-qtlauncher/package.nix | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/pkgs/by-name/sh/shadps4-qtlauncher/package.nix b/pkgs/by-name/sh/shadps4-qtlauncher/package.nix index 943d5c60e7ea..751034e4b70b 100644 --- a/pkgs/by-name/sh/shadps4-qtlauncher/package.nix +++ b/pkgs/by-name/sh/shadps4-qtlauncher/package.nix @@ -10,26 +10,26 @@ fmt, sdl3, toml11, + zarchive, + zstd, shadps4, }: clangStdenv.mkDerivation (finalAttrs: { pname = "shadps4-qtlauncher"; - version = "0-unstable-2026-06-07"; + version = "0-unstable-2026-08-08"; src = fetchFromGitHub { owner = "shadps4-emu"; repo = "shadps4-qtlauncher"; - rev = "eadffe744d6f2bb7b21aedeef2cc0f66cdffd6ed"; - hash = "sha256-tlCP8Cu3UVoclaQ0cIVr89q7wwgkzFVwhMSqpVB6FnM="; + rev = "a12b988ef35d98f2222a614c05498b27fef87121"; + hash = "sha256-ux9iXNV5QiBCyLCyDYTN1WtO+DyMlXrr+8xWX/4TmD4="; postCheckout = '' - cd "$out" + git -C "$out" rev-parse --short=8 HEAD > $out/COMMIT + date -u -d "@$(git -C "$out" log -1 --pretty=%ct)" "+%Y-%m-%dT%H:%M:%SZ" > $out/SOURCE_DATE_EPOCH - git rev-parse --short=8 HEAD > $out/COMMIT - date -u -d "@$(git log -1 --pretty=%ct)" "+%Y-%m-%dT%H:%M:%SZ" > $out/SOURCE_DATE_EPOCH - - git -C externals submodule update --init --recursive \ + git -C "$out/externals" submodule update --init --recursive \ volk \ json \ openal-soft \ @@ -64,6 +64,9 @@ clangStdenv.mkDerivation (finalAttrs: { --replace-fail "@shadps4-qt@" "$out" ''; + # System Zstd is not linked by default + env.NIX_LDFLAGS = "-lzstd"; + nativeBuildInputs = [ cmake pkg-config @@ -74,6 +77,8 @@ clangStdenv.mkDerivation (finalAttrs: { fmt sdl3 toml11 + zarchive + zstd qt6.qtbase qt6.qttools qt6.qtmultimedia From f03b66c61ad0801cf6ac55241b2ab1e9bc90afc8 Mon Sep 17 00:00:00 2001 From: Ryan Omasta Date: Wed, 12 Aug 2026 17:11:11 -0600 Subject: [PATCH 146/148] shadps4{,-qtlauncher}: modernize --- pkgs/by-name/sh/shadps4-qtlauncher/package.nix | 4 +++- pkgs/by-name/sh/shadps4/package.nix | 7 ++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/sh/shadps4-qtlauncher/package.nix b/pkgs/by-name/sh/shadps4-qtlauncher/package.nix index 751034e4b70b..ffce5fba7fb1 100644 --- a/pkgs/by-name/sh/shadps4-qtlauncher/package.nix +++ b/pkgs/by-name/sh/shadps4-qtlauncher/package.nix @@ -99,13 +99,15 @@ clangStdenv.mkDerivation (finalAttrs: { meta = { inherit (shadps4.meta) + homepage + downloadPage + donationPage platforms license maintainers ; description = shadps4.meta.description + " (Qt UI)"; - homepage = "https://github.com/shadps4-emu/shadps4-qtlauncher"; mainProgram = "shadPS4QtLauncher"; }; }) diff --git a/pkgs/by-name/sh/shadps4/package.nix b/pkgs/by-name/sh/shadps4/package.nix index 4a3df8dc495b..4111f4b3ca71 100644 --- a/pkgs/by-name/sh/shadps4/package.nix +++ b/pkgs/by-name/sh/shadps4/package.nix @@ -102,6 +102,9 @@ clangStdenv.mkDerivation (finalAttrs: { ''; }; + strictDeps = true; + __structuredAttrs = true; + patches = [ # https://github.com/shadps4-emu/shadPS4/pull/4786 (fetchpatch2 { @@ -219,7 +222,9 @@ clangStdenv.mkDerivation (finalAttrs: { meta = { description = "Early in development PS4 emulator"; - homepage = "https://github.com/shadps4-emu/shadPS4"; + homepage = "https://shadps4.net"; + downloadPage = "https://shadps4.net/downloads"; + donationPage = "https://ko-fi.com/shadps4"; license = lib.licenses.gpl2Plus; maintainers = with lib.maintainers; [ ryand56 From ef34f35e454a9c035b7edbeebea23f529f86e296 Mon Sep 17 00:00:00 2001 From: Eman Resu Date: Wed, 12 Aug 2026 14:51:50 -0400 Subject: [PATCH 147/148] lib.fileset: start by recursing into the initial element This is guaranteed to be safe. The tree can be a simple string if the fileset is the same as the root, but the `or` takes care of that. In the `or` case, the tree is guaranteed to fail the isAttrs check, and so even though the index is invalid, it won't matter. --- lib/fileset/internal.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/fileset/internal.nix b/lib/fileset/internal.nix index 704fd10835da..3d32c5fc3ef7 100644 --- a/lib/fileset/internal.nix +++ b/lib/fileset/internal.nix @@ -563,7 +563,12 @@ rec { # or a string ("directory" or "regular", etc.) in which case it's included localTree != null; in - recurse 0 tree; + # Start by recursing into the first element. This is guaranteed to be + # safe. components will never be empty (builtins.split can't make an + # empty list). Tree can be something other than an attrset, but if so, + # the isAttrs check will fail when being passed `or tree`, and the index + # being ahead doesn't matter. + recurse 2 (tree.${head components} or tree); # Filter suited when there's no files empty = _: _: false; From 33589cc0c6fd4e0325bb5310fffd2ecf707db2fa Mon Sep 17 00:00:00 2001 From: John Ericson Date: Wed, 12 Aug 2026 19:12:22 -0400 Subject: [PATCH 148/148] lib/systems: derive more platform metadata instead of restating it `examples.nix` had settings that only repeated what the `config` already implied. They read as if the platform were special, when it ought to be the default. Now the default logic in `default.nix` ought to handle the setting in question in a rule-based way so it is. Change: - `useLLVM` now covers - UEFI - MSVC CRT and C++ ABI - Windows on AArch64 as well as FreeBSD and OpenBSD - `libc` gains a UEFI case hat retires seven `useLLVM` settings, eighteen `libc = "newlib"`, one `libc = "bionic"`, and the `libc`/`linker` pair on the UEFI examples. The remaining `libc`s in examples now means"this differs from what the triple implies", which is true of the seven left: `newlib-nano`, the mingw `msvcrt`/`ucrt` pairs those entries exist to distinguish, and `mmix`, whose OS is `mmixware` rather than `none` so the bare-metal default does not reach it. That one gains a comment. No functional change. Elaborating all 87 platforms in `lib.systems.examples` before and after gives byte-identical `config`, `system`, `useLLVM`, `useGccNG`, `libc`, `linker` and `rust.rustcTarget`. `mmix` surfaced that way, having regressed to `native/impure`. Assisted-by: Claude Code (Claude Opus 5) --- lib/systems/default.nix | 15 +++++++++++---- lib/systems/examples.nix | 33 +++------------------------------ 2 files changed, 14 insertions(+), 34 deletions(-) diff --git a/lib/systems/default.nix b/lib/systems/default.nix index 0d00ff953530..77e7a8f99ef4 100644 --- a/lib/systems/default.nix +++ b/lib/systems/default.nix @@ -151,7 +151,14 @@ let ); # Derived meta-data - useLLVM = final.isFreeBSD || final.isOpenBSD; + useLLVM = + final.isFreeBSD + || final.isOpenBSD + || final.isUefi + || final.isMsvc + || + # because GCC does not support this platform yet + (with final; isWindows && isAarch64); # Use the split GCC package set (`gccNGPackages`) instead of the # monolithic `gcc`. No platform selects it yet; it is opt-in, set @@ -186,9 +193,7 @@ let "uclibc" else if final.isAndroid then "bionic" - else if - final.isLinux # default - then + else if final.isLinux then "glibc" else if final.isFreeBSD then "fblibc" @@ -200,6 +205,8 @@ let "avrlibc" else if final.isGhcjs then null + else if final.isUefi then + null else if final.isNone then "newlib" # TODO(@Ericson2314) think more about other operating systems diff --git a/lib/systems/examples.nix b/lib/systems/examples.nix index d0eac0eb030a..88207cb845c1 100644 --- a/lib/systems/examples.nix +++ b/lib/systems/examples.nix @@ -93,7 +93,6 @@ rec { config = "aarch64-unknown-linux-android"; androidSdkVersion = "35"; androidNdkVersion = "27"; - libc = "bionic"; useAndroidPrebuilt = false; useLLVM = true; }; @@ -169,22 +168,18 @@ rec { riscv64-embedded = { config = "riscv64-none-elf"; - libc = "newlib"; }; riscv32-embedded = { config = "riscv32-none-elf"; - libc = "newlib"; }; mips64-embedded = { config = "mips64-none-elf"; - libc = "newlib"; }; mips-embedded = { config = "mips-none-elf"; - libc = "newlib"; }; # https://github.com/loongson/la-softdev-convention/blob/master/la-softdev-convention.adoc#10-operating-system-package-build-requirements @@ -201,17 +196,17 @@ rec { mmix = { config = "mmix-unknown-mmixware"; + # Not `isNone`: the OS here is `mmixware`, so the bare-metal default does + # not apply. libc = "newlib"; }; rx-embedded = { config = "rx-none-elf"; - libc = "newlib"; }; msp430 = { config = "msp430-elf"; - libc = "newlib"; }; avr = { @@ -220,12 +215,10 @@ rec { vc4 = { config = "vc4-elf"; - libc = "newlib"; }; or1k = { config = "or1k-elf"; - libc = "newlib"; }; m68k = { @@ -250,7 +243,6 @@ rec { arm-embedded = { config = "arm-none-eabi"; - libc = "newlib"; }; arm-embedded-nano = { config = "arm-none-eabi"; @@ -258,7 +250,6 @@ rec { }; armhf-embedded = { config = "arm-none-eabihf"; - libc = "newlib"; # GCC8+ does not build without this # (https://www.mail-archive.com/gcc-bugs@gcc.gnu.org/msg552339.html): gcc = { @@ -269,38 +260,31 @@ rec { aarch64-embedded = { config = "aarch64-none-elf"; - libc = "newlib"; rust.rustcTarget = "aarch64-unknown-none"; }; aarch64be-embedded = { config = "aarch64_be-none-elf"; - libc = "newlib"; }; ppc-embedded = { config = "powerpc-none-eabi"; - libc = "newlib"; }; ppcle-embedded = { config = "powerpcle-none-eabi"; - libc = "newlib"; }; i686-embedded = { config = "i686-elf"; - libc = "newlib"; }; x86_64-embedded = { config = "x86_64-elf"; - libc = "newlib"; }; microblaze-embedded = { config = "microblazeel-none-elf"; - libc = "newlib"; }; # @@ -338,16 +322,10 @@ rec { x86_64-unknown-uefi = { config = "x86_64-unknown-uefi"; - libc = null; - useLLVM = true; - linker = "lld"; }; aarch64-unknown-uefi = { config = "aarch64-unknown-uefi"; - libc = null; - useLLVM = true; - linker = "lld"; }; # @@ -382,12 +360,11 @@ rec { }; # mingw-w64 with ucrt for Aarch64, default compiler (which is LLVM - # because GCC does not support this platform yet). + # see ./default.nix). mingw-ucrt-aarch64 = { config = "aarch64-w64-mingw32"; libc = "ucrt"; rust.rustcTarget = "aarch64-pc-windows-gnullvm"; - useLLVM = true; }; # mingw-64 back compat @@ -400,12 +377,10 @@ rec { # Target the MSVC ABI x86_64-windows = { config = "x86_64-pc-windows-msvc"; - useLLVM = true; }; aarch64-windows = { config = "aarch64-pc-windows-msvc"; - useLLVM = true; }; x86_64-cygwin = { @@ -416,12 +391,10 @@ rec { aarch64-freebsd = { config = "aarch64-unknown-freebsd"; - useLLVM = true; }; x86_64-freebsd = { config = "x86_64-unknown-freebsd"; - useLLVM = true; }; x86_64-netbsd = {