From 2350c95fa5dc98c421d3bfcbabe051b5f42c5c4f Mon Sep 17 00:00:00 2001 From: Jordan Doyle Date: Wed, 18 Dec 2024 09:37:16 +0700 Subject: [PATCH 01/94] nixos/soju: remove default db definition from generated config In older versions of Soju, it was possible to override this value however setting `db` in `extraConfig` now results in an error during start: ``` Dec 18 02:21:14 bnc soju[4107]: 2024/12/18 02:21:14 failed to load config file: line 10, directive "db": directive must not be specified more than once ``` The [soju documentation] states that opening an sqlite database in the working directory is the default functionality if `db` isn't specified [soju documentation]: https://codeberg.org/emersion/soju/src/commit/a30cda74061414b7d829a41eff7b47ee2e5560c3/doc/soju.1.scd#L139 --- nixos/modules/services/networking/soju.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/services/networking/soju.nix b/nixos/modules/services/networking/soju.nix index 808c708163b2..ec7e4828e225 100644 --- a/nixos/modules/services/networking/soju.nix +++ b/nixos/modules/services/networking/soju.nix @@ -18,7 +18,6 @@ let ${listenCfg} hostname ${cfg.hostName} ${tlsCfg} - db sqlite3 ${stateDir}/soju.db ${logCfg} http-origin ${concatStringsSep " " cfg.httpOrigins} accept-proxy-ip ${concatStringsSep " " cfg.acceptProxyIP} @@ -137,6 +136,7 @@ in ExecStart = "${cfg.package}/bin/soju -config ${configFile}"; StateDirectory = "soju"; RuntimeDirectory = "soju"; + WorkingDirectory = stateDir; }; }; }; From d9e2937de3e4319919d03a3e40c3c2adb1cf9f57 Mon Sep 17 00:00:00 2001 From: Alex James Date: Wed, 4 Jun 2025 20:49:55 -0500 Subject: [PATCH 02/94] =?UTF-8?q?dovi-tool:=202.2.0=20=E2=86=92=202.3.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changelog: https://github.com/quietvoid/dovi_tool/releases/tag/2.3.1 --- pkgs/by-name/do/dovi-tool/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/do/dovi-tool/package.nix b/pkgs/by-name/do/dovi-tool/package.nix index c39a26409531..97749ac7b2b0 100644 --- a/pkgs/by-name/do/dovi-tool/package.nix +++ b/pkgs/by-name/do/dovi-tool/package.nix @@ -10,16 +10,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "dovi-tool"; - version = "2.2.0"; + version = "2.3.1"; src = fetchFromGitHub { owner = "quietvoid"; repo = "dovi_tool"; tag = finalAttrs.version; - hash = "sha256-z783L6gBr9o44moKYZGwymWEMp5ZW7yOhZcpvbznXK4="; + hash = "sha256-4C9d8Rt1meV6Pcdnf2SaiWGA97sRj2WmvKsf1rC01Bs="; }; - cargoHash = "sha256-pwB6QBLeHALbYZHzTBm/ODLPHhxM3B5n+B/0iXYNuVc="; + cargoHash = "sha256-Dg6IDcYm3qTSyE5kVgZ8Yka8538KDFyBN+weUyAfQT8="; nativeBuildInputs = [ pkg-config From d7c8d487cacf0eaa2b773b5d33e4102a2f63cc04 Mon Sep 17 00:00:00 2001 From: Alex James Date: Wed, 4 Jun 2025 22:22:28 -0500 Subject: [PATCH 03/94] dovi-tool: avoid `pkg-config`/`fontconfig` on Darwin --- pkgs/by-name/do/dovi-tool/package.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/do/dovi-tool/package.nix b/pkgs/by-name/do/dovi-tool/package.nix index 97749ac7b2b0..a70df3e456dc 100644 --- a/pkgs/by-name/do/dovi-tool/package.nix +++ b/pkgs/by-name/do/dovi-tool/package.nix @@ -1,5 +1,6 @@ { lib, + stdenv, rustPlatform, fetchFromGitHub, pkg-config, @@ -21,11 +22,11 @@ rustPlatform.buildRustPackage (finalAttrs: { cargoHash = "sha256-Dg6IDcYm3qTSyE5kVgZ8Yka8538KDFyBN+weUyAfQT8="; - nativeBuildInputs = [ + nativeBuildInputs = lib.optionals (!stdenv.hostPlatform.isDarwin) [ pkg-config ]; - buildInputs = [ + buildInputs = lib.optionals (!stdenv.hostPlatform.isDarwin) [ fontconfig ]; From 5e4f04ac55444f215ea56829dda7fc773377769c Mon Sep 17 00:00:00 2001 From: Alex James Date: Thu, 5 Jun 2025 00:03:40 -0500 Subject: [PATCH 04/94] dovi-tool: enable rpu::plot::plot_p7 test --- pkgs/by-name/do/dovi-tool/package.nix | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/do/dovi-tool/package.nix b/pkgs/by-name/do/dovi-tool/package.nix index a70df3e456dc..b3b8244785a8 100644 --- a/pkgs/by-name/do/dovi-tool/package.nix +++ b/pkgs/by-name/do/dovi-tool/package.nix @@ -5,10 +5,16 @@ fetchFromGitHub, pkg-config, fontconfig, + makeFontsConf, versionCheckHook, nix-update-script, }: +let + fontsConf = makeFontsConf { + fontDirectories = [ ]; + }; +in rustPlatform.buildRustPackage (finalAttrs: { pname = "dovi-tool"; version = "2.3.1"; @@ -30,9 +36,16 @@ rustPlatform.buildRustPackage (finalAttrs: { fontconfig ]; - checkFlags = [ - # fails because nix-store is read only - "--skip=rpu::plot::plot_p7" + preCheck = lib.optionals (!stdenv.hostPlatform.isDarwin) '' + # Fontconfig error: Cannot load default config file: No such file: (null) + export FONTCONFIG_FILE="${fontsConf}" + # Fontconfig error: No writable cache directories + export XDG_CACHE_HOME="$(mktemp -d)" + ''; + + # Needed for rpu::plot::plot_p7 to pass in the sandbox. + __impureHostDeps = lib.optionals stdenv.hostPlatform.isDarwin [ + "/System/Library/Fonts/Supplemental/Arial.ttf" ]; nativeInstallCheckInputs = [ From 6f059086af1a5c98c5a928180829e7d1eb77c54d Mon Sep 17 00:00:00 2001 From: andre4ik3 Date: Mon, 29 Sep 2025 14:53:13 +0000 Subject: [PATCH 05/94] libvirt-dbus: init at 1.4.1 --- pkgs/by-name/li/libvirt-dbus/package.nix | 75 ++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 pkgs/by-name/li/libvirt-dbus/package.nix diff --git a/pkgs/by-name/li/libvirt-dbus/package.nix b/pkgs/by-name/li/libvirt-dbus/package.nix new file mode 100644 index 000000000000..a898b51bf923 --- /dev/null +++ b/pkgs/by-name/li/libvirt-dbus/package.nix @@ -0,0 +1,75 @@ +{ + stdenv, + fetchFromGitLab, + meson, + pkg-config, + docutils, + ninja, + glib, + libvirt, + libvirt-glib, + systemd, + gitUpdater, + lib, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "libvirt-dbus"; + version = "1.4.1"; + + outputs = [ + "out" + "man" + ]; + + src = fetchFromGitLab { + owner = "libvirt"; + repo = "libvirt-dbus"; + tag = "v${finalAttrs.version}"; + hash = "sha256-S4QktQmcnTte4XsIcgc5dkA8LjMJaOD2lljS01WT0dk="; + }; + + postPatch = '' + substituteInPlace "data/system/meson.build" \ + --replace-fail ": systemd_system_unit_dir" ": '$out/lib/systemd/system'" + + substituteInPlace "data/session/meson.build" \ + --replace-fail ": systemd_user_unit_dir" ": '$out/lib/systemd/user'" + ''; + + nativeBuildInputs = [ + meson + pkg-config + docutils + ninja + ]; + + buildInputs = [ + glib + libvirt + libvirt-glib + systemd + ]; + + mesonFlags = [ + (lib.mesonOption "init_script" "systemd") + (lib.mesonOption "unix_socket_group" "qemu-libvirtd") + # TODO: uncomment below on next release + # (lib.mesonOption "sysusersdir" "${placeholder "out"}/lib/sysusers.d") + ]; + + doCheck = false; # needs running D-Bus and libvirt + + passthru.updateScript = gitUpdater { + rev-prefix = "v"; + }; + + meta = { + description = "libvirt D-Bus API binding"; + homepage = "https://libvirt.org/dbus.html"; + changelog = "https://gitlab.com/libvirt/libvirt-dbus/-/blob/v${finalAttrs.version}/NEWS.rst"; + license = lib.licenses.lgpl2Plus; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ andre4ik3 ]; + }; +}) From 32fdb8fc1884322ff43c68c1708e7770a95eb000 Mon Sep 17 00:00:00 2001 From: Weijia Wang <9713184+wegank@users.noreply.github.com> Date: Mon, 6 Oct 2025 00:28:26 +0200 Subject: [PATCH 06/94] assimp: disable check on darwin --- pkgs/by-name/as/assimp/package.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/as/assimp/package.nix b/pkgs/by-name/as/assimp/package.nix index 183254f19388..a28053da6644 100644 --- a/pkgs/by-name/as/assimp/package.nix +++ b/pkgs/by-name/as/assimp/package.nix @@ -34,12 +34,17 @@ stdenv.mkDerivation (finalAttrs: { cmakeFlags = [ (lib.cmakeBool "ASSIMP_BUILD_ASSIMP_TOOLS" true) + (lib.cmakeBool "ASSIMP_BUILD_TESTS" finalAttrs.finalPackage.doCheck) ]; # Some matrix tests fail on non-86_64-linux: # https://github.com/assimp/assimp/issues/6246 # https://github.com/assimp/assimp/issues/6247 - doCheck = !(stdenv.hostPlatform.isLinux && !stdenv.hostPlatform.isx86_64); + # On Darwin, the bundled googletest is not compatible with Clang 21. + # contrib/googletest/googletest/include/gtest/gtest-printers.h:498:35: + # error: implicit conversion from 'char16_t' to 'char32_t' may change the meaning of the represented code unit + # [-Werror,-Wcharacter-conversion] + doCheck = stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isx86_64; checkPhase = '' runHook preCheck bin/unit From cd39b7f5131e868691eee9409f5d0bb0d62276ef Mon Sep 17 00:00:00 2001 From: Thomas Gerbet Date: Fri, 10 Oct 2025 22:03:02 +0200 Subject: [PATCH 07/94] cosign: 2.6.1 -> 3.0.2 Changes: https://github.com/sigstore/cosign/releases/tag/v3.0.2 https://github.com/sigstore/cosign/releases/tag/v3.0.1 Release announcement: https://blog.sigstore.dev/cosign-3-0-available/ --- pkgs/by-name/co/cosign/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/co/cosign/package.nix b/pkgs/by-name/co/cosign/package.nix index 2a628b6f43e7..6961fed1c765 100644 --- a/pkgs/by-name/co/cosign/package.nix +++ b/pkgs/by-name/co/cosign/package.nix @@ -13,13 +13,13 @@ buildGoModule (finalAttrs: { pname = "cosign"; - version = "2.6.1"; + version = "3.0.2"; src = fetchFromGitHub { owner = "sigstore"; repo = "cosign"; rev = "v${finalAttrs.version}"; - hash = "sha256-JQxVO7wZFyRovst3qb0EErDyIIhPNsIpBq/iQVf6djY="; + hash = "sha256-5jCO2LW7nzbzo+de0fpxBcVASDmINB6yFerkQZlo2o8="; }; buildInputs = lib.optional (stdenv.hostPlatform.isLinux && pivKeySupport) (lib.getDev pcsclite); @@ -29,7 +29,7 @@ buildGoModule (finalAttrs: { installShellFiles ]; - vendorHash = "sha256-7qVJMQI5htqMavrxFP2lQfQ/7b27bRWnNYg2cHmTZYE="; + vendorHash = "sha256-hedkslhyAsictu9Cbw7CgreoWa1StLpTt8oTPNLr5fc="; subPackages = [ "cmd/cosign" From 987e5a27497173b8d6fa5a11efa7fa4b57b849c3 Mon Sep 17 00:00:00 2001 From: Luna Nova Date: Sat, 11 Oct 2025 15:31:57 -0700 Subject: [PATCH 08/94] rocmPackages.hipblaslt: add zstd to nativeBuildInputs without this zstd compression of msgpack .dats silently failed --- pkgs/development/rocm-modules/6/hipblaslt/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/rocm-modules/6/hipblaslt/default.nix b/pkgs/development/rocm-modules/6/hipblaslt/default.nix index 8e68e0f9e623..61328d5cd867 100644 --- a/pkgs/development/rocm-modules/6/hipblaslt/default.nix +++ b/pkgs/development/rocm-modules/6/hipblaslt/default.nix @@ -136,6 +136,7 @@ stdenv.mkDerivation (finalAttrs: { pkg-config ninja rocm-smi + zstd ]; buildInputs = [ From 7baf5a984d40618abc1a53de6c678d2ba8cd7bbe Mon Sep 17 00:00:00 2001 From: Luna Nova Date: Sat, 11 Oct 2025 15:32:42 -0700 Subject: [PATCH 09/94] rocmPackages.hipblaslt: verify .dat files aren't huge in preInstallCheck let's avoid regressing compression in future, oops --- .../rocm-modules/6/hipblaslt/default.nix | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/pkgs/development/rocm-modules/6/hipblaslt/default.nix b/pkgs/development/rocm-modules/6/hipblaslt/default.nix index 61328d5cd867..e8061a50b92f 100644 --- a/pkgs/development/rocm-modules/6/hipblaslt/default.nix +++ b/pkgs/development/rocm-modules/6/hipblaslt/default.nix @@ -125,7 +125,7 @@ stdenv.mkDerivation (finalAttrs: { ''; doCheck = false; - doInstallCheck = false; + doInstallCheck = true; nativeBuildInputs = [ cmake @@ -213,6 +213,18 @@ stdenv.mkDerivation (finalAttrs: { rmdir $out/bin ''; + installCheckPhase = + # Verify compression worked and .dat files aren't huge + '' + runHook preInstallCheck + find "$out" -type f -name "*.dat" -size "+2M" -exec sh -c ' + echo "ERROR: oversized .dat file, check for issues with install compression: {}" >&2 + exit 1 + ' {} \; + echo "Verified .dat files in $out are not huge" + runHook postInstallCheck + ''; + # If this is false there are no kernels in the output lib # supporting the target device # so if it's an optional dep it's best to not depend on it From 52b1d68a03c5c94fc0b617c78fa9aacabebbde27 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 12 Oct 2025 12:02:52 +0000 Subject: [PATCH 10/94] peergos: 1.11.0 -> 1.12.0 --- pkgs/by-name/pe/peergos/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/pe/peergos/package.nix b/pkgs/by-name/pe/peergos/package.nix index 9e86fb9349c8..c0ac21fe07ac 100644 --- a/pkgs/by-name/pe/peergos/package.nix +++ b/pkgs/by-name/pe/peergos/package.nix @@ -41,12 +41,12 @@ let in stdenv.mkDerivation rec { pname = "peergos"; - version = "1.11.0"; + version = "1.12.0"; src = fetchFromGitHub { owner = "Peergos"; repo = "web-ui"; rev = "v${version}"; - hash = "sha256-JUeNNBWzIZlC1+sc1YV+3iPg4PMt+BevG5dDi4JybPk="; + hash = "sha256-PwjSMW5d/M/IShclyFqAZJ75+dq0xSCnZmYsdKN5/O0="; fetchSubmodules = true; }; From 5c4181f08dc3ca9ae042aa0a1eb6a0c83b4763c6 Mon Sep 17 00:00:00 2001 From: FlameFlag <57304299+FlameFlag@users.noreply.github.com> Date: Sun, 12 Oct 2025 19:06:03 +0300 Subject: [PATCH 11/94] koboldcpp: apple-sdk_12 -> apple-sdk_13 Fix build on Darwin --- pkgs/by-name/ko/koboldcpp/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ko/koboldcpp/package.nix b/pkgs/by-name/ko/koboldcpp/package.nix index d82dfba76b08..b21669dee58b 100644 --- a/pkgs/by-name/ko/koboldcpp/package.nix +++ b/pkgs/by-name/ko/koboldcpp/package.nix @@ -7,7 +7,7 @@ tk, addDriverRunpath, - apple-sdk_12, + apple-sdk_13, koboldLiteSupport ? true, @@ -63,7 +63,7 @@ effectiveStdenv.mkDerivation (finalAttrs: { tk ] ++ finalAttrs.pythonInputs - ++ lib.optionals stdenv.hostPlatform.isDarwin [ apple-sdk_12 ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ apple-sdk_13 ] ++ lib.optionals cublasSupport [ cudaPackages.libcublas cudaPackages.cuda_nvcc From baad0182f107bf7cae4c24212e76a90aef98b7bf Mon Sep 17 00:00:00 2001 From: Tristan Ross Date: Sun, 12 Oct 2025 22:13:34 -0700 Subject: [PATCH 12/94] llvmPackages_git: 22.0.0-unstable-2025-10-05 -> 22.0.0-unstable-2025-10-12 --- pkgs/development/compilers/llvm/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/compilers/llvm/default.nix b/pkgs/development/compilers/llvm/default.nix index efdf35dcbcc3..e6d8601a1c7a 100644 --- a/pkgs/development/compilers/llvm/default.nix +++ b/pkgs/development/compilers/llvm/default.nix @@ -27,9 +27,9 @@ let "20.1.8".officialRelease.sha256 = "sha256-ysyB/EYxi2qE9fD5x/F2zI4vjn8UDoo1Z9ukiIrjFGw="; "21.1.1".officialRelease.sha256 = "sha256-IB9Z3bIMwfgw2W2Vxo89CmtCM9DfOyV2Ei64nqgHrgc="; "22.0.0-git".gitRelease = { - rev = "550b2ef041ba16ee8b5f55b5f2307f501b2c15a0"; - rev-version = "22.0.0-unstable-2025-10-05"; - sha256 = "sha256-K3wjvVFCjFpEDLdLWGWvAoAFGWWAKoD8a6xgXDslC7M="; + rev = "1d0a85a78b7ec7b994b280d30ca125fe58dbbd84"; + rev-version = "22.0.0-unstable-2025-10-12"; + sha256 = "sha256-68GnNkVPQ9NGyowndSpqqVBb/2AF9gmSwm38bjxmErQ="; }; } // llvmVersions; From 94adf98d32b6e208f42ecc2cdcaddb821c31d655 Mon Sep 17 00:00:00 2001 From: eljamm Date: Mon, 13 Oct 2025 07:19:35 +0000 Subject: [PATCH 13/94] linux_xanmod: 6.12.51 -> 6.12.52 - Changelog: https://dl.xanmod.org/changelog/6.12/ChangeLog-6.12.52-xanmod1.gz - Diff: https://gitlab.com/xanmod/linux/-/compare/6.12.51-xanmod1..6.12.52-xanmod1?from_project_id=51590166 --- pkgs/os-specific/linux/kernel/xanmod-kernels.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix index 6ccf978c9517..c8cfb8ecffbc 100644 --- a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix +++ b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix @@ -15,8 +15,8 @@ let variants = { # ./update-xanmod.sh lts lts = { - version = "6.12.51"; - hash = "sha256-7fIOQ7VctDhueoOnZA8/7Dc7gxAl+vKgO/X5Oa4Z8kE="; + version = "6.12.52"; + hash = "sha256-r9FntI8F0ri01lnFH7VYdQj8xR5gT+iInuDWv16oXJA="; isLTS = true; }; # ./update-xanmod.sh main From 0e46539b6ca39c605a075168a805db8f9c82da7e Mon Sep 17 00:00:00 2001 From: eljamm Date: Mon, 13 Oct 2025 07:23:13 +0000 Subject: [PATCH 14/94] linux_xanmod_latest: 6.16.11 -> 6.16.12 - Changelog: https://dl.xanmod.org/changelog/6.16/ChangeLog-6.16.12-xanmod1.gz - Diff: https://gitlab.com/xanmod/linux/-/compare/6.16.11-xanmod1..6.16.12-xanmod1?from_project_id=51590166 --- pkgs/os-specific/linux/kernel/xanmod-kernels.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix index c8cfb8ecffbc..e4e8419bff2f 100644 --- a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix +++ b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix @@ -21,8 +21,8 @@ let }; # ./update-xanmod.sh main main = { - version = "6.16.11"; - hash = "sha256-EZjH22q8JvlbFpab4rdrA24kf+r9heneiwy5YM4WfYk="; + version = "6.16.12"; + hash = "sha256-m2aepV++9RwobXOTxiLJaUV8TnPvBkZzNooKQR4nRtA="; }; }; From 4cea628d489cdaef3f43cae9048338f6594715ed Mon Sep 17 00:00:00 2001 From: Luna Nova Date: Sat, 11 Oct 2025 09:44:19 -0700 Subject: [PATCH 15/94] rocmPackages.hipblaslt: apply PR to massively reduce peak disk space usage Peak build dir usage is now 25GB Partially applies [hipblaslt] Refactor Parallel.py to drop joblib, decimate resource usage --- .../6/hipblaslt/Tensile-interning.patch | 181 ++++ .../TensileCreateLibrary-refactor.patch | 868 ++++++++++++++++++ .../rocm-modules/6/hipblaslt/default.nix | 9 +- 3 files changed, 1056 insertions(+), 2 deletions(-) create mode 100644 pkgs/development/rocm-modules/6/hipblaslt/Tensile-interning.patch create mode 100644 pkgs/development/rocm-modules/6/hipblaslt/TensileCreateLibrary-refactor.patch diff --git a/pkgs/development/rocm-modules/6/hipblaslt/Tensile-interning.patch b/pkgs/development/rocm-modules/6/hipblaslt/Tensile-interning.patch new file mode 100644 index 000000000000..acf44437520d --- /dev/null +++ b/pkgs/development/rocm-modules/6/hipblaslt/Tensile-interning.patch @@ -0,0 +1,181 @@ +diff --git a/tensilelite/Tensile/Common/Utilities.py b/tensilelite/Tensile/Common/Utilities.py +index 0a9d9db5b3..cb9779eaac 100644 +--- a/tensilelite/Tensile/Common/Utilities.py ++++ b/tensilelite/Tensile/Common/Utilities.py +@@ -24,6 +24,7 @@ + + import functools + import math ++import operator + import os + import sys + import time +@@ -269,8 +270,20 @@ def state(obj): + + + def state_key_ordering(cls): +- def tup(obj): +- return tuple([getattr(obj, k) for k in cls.StateKeys]) ++ # Use operator.attrgetter for efficiency if __slots__ is defined ++ if hasattr(cls, '__slots__'): ++ # attrgetter is faster for slotted classes ++ getter = operator.attrgetter(*cls.StateKeys) ++ if len(cls.StateKeys) == 1: ++ # attrgetter returns scalar for single key, we need tuple ++ def tup(obj): ++ return (getter(obj),) ++ else: ++ tup = getter ++ else: ++ # Fallback for regular classes ++ def tup(obj): ++ return tuple([getattr(obj, k) for k in cls.StateKeys]) + + def lt(a, b): + return tup(a) < tup(b) +diff --git a/tensilelite/Tensile/Contractions.py b/tensilelite/Tensile/Contractions.py +index c0d4e851b1..3f2c2e98c6 100644 +--- a/tensilelite/Tensile/Contractions.py ++++ b/tensilelite/Tensile/Contractions.py +@@ -37,9 +37,60 @@ from Tensile.Toolchain.Component import Assembler + from math import ceil + + MIN_K_FOR_GSU = 32 ++ ++# Interning helpers to reduce memory usage by reusing identical objects ++_free_index_cache = {} ++def intern_free_index(isA, i=None, c=None, d=None, a=None, b=None): ++ key = (isA, i, c, d, a, b) ++ if key not in _free_index_cache: ++ obj = FreeIndex(isA, i, c, d) ++ obj.a = a ++ if b is not None: ++ obj.b = b ++ _free_index_cache[key] = obj ++ return _free_index_cache[key] ++ ++_batch_index_cache = {} ++def intern_batch_index(a=None, b=None, c=None, d=None): ++ key = (a, b, c, d) ++ if key not in _batch_index_cache: ++ obj = BatchIndex(c=c, d=d) ++ obj.a = a ++ obj.b = b ++ _batch_index_cache[key] = obj ++ return _batch_index_cache[key] ++ ++_bound_index_cache = {} ++def intern_bound_index(a=None, b=None, aMirror=False, bMirror=False): ++ key = (a, b, aMirror, bMirror) ++ if key not in _bound_index_cache: ++ obj = BoundIndex(aMirror=aMirror, bMirror=bMirror) ++ obj.a = a ++ obj.b = b ++ _bound_index_cache[key] = obj ++ return _bound_index_cache[key] ++ ++_size_mapping_cache = {} ++def intern_size_mapping(size_mapping): ++ """Intern a SizeMapping instance to reduce redundancy.""" ++ # Build hashable key from StateKeys, converting lists to tuples ++ key_parts = [] ++ for attr in size_mapping.StateKeys: ++ val = getattr(size_mapping, attr) ++ # Convert lists to tuples for hashing ++ if isinstance(val, list): ++ val = tuple(val) ++ key_parts.append(val) ++ key = tuple(key_parts) ++ ++ if key not in _size_mapping_cache: ++ _size_mapping_cache[key] = size_mapping ++ return _size_mapping_cache[key] ++ + @state_key_ordering + class FreeIndex: + StateKeys = ['isA', 'i', 'c', 'd'] ++ __slots__ = ['isA', 'i', 'c', 'd', 'a', 'b'] + + def __init__(self, isA, i=None, c=None, d=None): + self.isA = isA +@@ -50,6 +101,7 @@ class FreeIndex: + @state_key_ordering + class BatchIndex: + StateKeys = ['a', 'b', 'c', 'd'] ++ __slots__ = ['a', 'b', 'c', 'd'] + def __init__(self, a=None, b=None, c=None, d=None): + self.a = a + self.b = b +@@ -59,6 +111,7 @@ class BatchIndex: + @state_key_ordering + class BoundIndex: + StateKeys = ['a', 'b', 'aMirror', 'bMirror'] ++ __slots__ = ['a', 'b', 'aMirror', 'bMirror'] + def __init__(self, a=None, b=None, aMirror=False, bMirror=False): + self.a = a + self.b = b +@@ -107,6 +160,23 @@ class ProblemType: + for ib, ic in enumerate(d['IndexAssignmentsB']): + indices[ic].b = ib + ++ # Now intern all indices with their final state (including .a and .b) ++ for i, idx in enumerate(indices): ++ if isinstance(idx, FreeIndex): ++ indices[i] = intern_free_index(idx.isA, idx.i, idx.c, idx.d, ++ getattr(idx, 'a', None), getattr(idx, 'b', None)) ++ elif isinstance(idx, BatchIndex): ++ indices[i] = intern_batch_index(getattr(idx, 'a', None), getattr(idx, 'b', None), ++ idx.c, idx.d) ++ elif isinstance(idx, BoundIndex): ++ indices[i] = intern_bound_index(getattr(idx, 'a', None), getattr(idx, 'b', None), ++ idx.aMirror, idx.bMirror) ++ ++ # Update the lists with interned versions ++ freeIndices = [idx for idx in indices if isinstance(idx, FreeIndex)] ++ batchIndices = [idx for idx in indices if isinstance(idx, BatchIndex)] ++ boundIndices = [idx for idx in indices if isinstance(idx, BoundIndex)] ++ + for idx in indices: + assert idx is not None + idxState = state(idx) +@@ -596,6 +666,7 @@ class SizeMapping: + 'nonTemporalA', + 'nonTemporalB', + ] ++ __slots__ = StateKeys + + @classmethod + def FromOriginalState(cls, d): +@@ -751,7 +822,7 @@ class Solution: + info = cls.ReadOriginalInfo(d) + rv.libraryLogicIndex = int(info.get("SolutionIndex", -1)) + +- rv.sizeMapping = SizeMapping.FromOriginalState(d) ++ rv.sizeMapping = intern_size_mapping(SizeMapping.FromOriginalState(d)) + + rv.internalArgsSupport = InternalArgsSupport.FromOriginalState(d) + +diff --git a/tensilelite/Tensile/TensileCreateLibrary/Run.py b/tensilelite/Tensile/TensileCreateLibrary/Run.py +index 730b6b1fff..b0068563a0 100644 +--- a/tensilelite/Tensile/TensileCreateLibrary/Run.py ++++ b/tensilelite/Tensile/TensileCreateLibrary/Run.py +@@ -104,7 +104,6 @@ class KernelCodeGenResult(NamedTuple): + src: str + header: Optional[str] + name: str +- targetObjFilename: str + isa: IsaVersion + wavefrontSize: int + cuoccupancy: int +@@ -127,10 +126,9 @@ def processKernelSource(kernelWriterAssembly, data, splitGSU, kernel) -> KernelC + asmFilename = getKernelFileBase(splitGSU, kernel) + err, src = kernelWriter.getSourceFileString(kernel) + header = kernelWriter.getHeaderFileString(kernel) +- objFilename = kernel._state.get("codeObjectFile", None) + pgr = int(kernel["PrefetchGlobalRead"]) + return KernelCodeGenResult( +- err, src, header, asmFilename, objFilename, tuple(kernel["ISA"]), \ ++ err, src, header, asmFilename, tuple(kernel["ISA"]), \ + kernel["WavefrontSize"], kernel["CUOccupancy"], \ + pgr, kernel["MathClocksUnrolledLoop"] + ) diff --git a/pkgs/development/rocm-modules/6/hipblaslt/TensileCreateLibrary-refactor.patch b/pkgs/development/rocm-modules/6/hipblaslt/TensileCreateLibrary-refactor.patch new file mode 100644 index 000000000000..eb50942a095d --- /dev/null +++ b/pkgs/development/rocm-modules/6/hipblaslt/TensileCreateLibrary-refactor.patch @@ -0,0 +1,868 @@ +diff --git a/tensilelite/Tensile/SolutionStructs/Naming.py b/tensilelite/Tensile/SolutionStructs/Naming.py +index 4f220960db1d..99535e246650 100644 +--- a/tensilelite/Tensile/SolutionStructs/Naming.py ++++ b/tensilelite/Tensile/SolutionStructs/Naming.py +@@ -105,7 +105,6 @@ def _getName(state, requiredParameters: frozenset, splitGSU: bool, ignoreInterna + if splitGSU: + state["GlobalSplitU"] = "M" if (state["GlobalSplitU"] > 1 or state["GlobalSplitU"] == -1) else state["GlobalSplitU"] + +- + requiredParametersTemp = set(requiredParameters.union(["GlobalSplitU"])) + + if ignoreInternalArgs: +diff --git a/tensilelite/Tensile/CustomYamlLoader.py b/tensilelite/Tensile/CustomYamlLoader.py +index bab8c687509..e03f456fbec 100644 +--- a/tensilelite/Tensile/CustomYamlLoader.py ++++ b/tensilelite/Tensile/CustomYamlLoader.py +@@ -1,3 +1,6 @@ ++# Copyright © Advanced Micro Devices, Inc., or its affiliates. ++# SPDX-License-Identifier: MIT ++ + import yaml + from pathlib import Path + +Author: Luna Nova +Date: Sun Oct 12 11:52:10 2025 -0700 + + [hipblaslt] intern strings to reduce duplicate memory for solution keys + +diff --git a/tensilelite/Tensile/CustomYamlLoader.py b/tensilelite/Tensile/CustomYamlLoader.py +index 685e69220c..9fdf38d8e5 100644 +--- a/tensilelite/Tensile/CustomYamlLoader.py ++++ b/tensilelite/Tensile/CustomYamlLoader.py +@@ -1,6 +1,7 @@ + # Copyright © Advanced Micro Devices, Inc., or its affiliates. + # SPDX-License-Identifier: MIT + ++import sys + import yaml + from pathlib import Path + +@@ -85,7 +86,7 @@ def parse_scalar(loader: yaml.Loader): + if not evt.style: + return None + +- return value ++ return sys.intern(value) + + def load_yaml_stream(yaml_path: Path, loader_type: yaml.Loader): + with open(yaml_path, 'r') as f: + +diff --git a/tensilelite/Tensile/Common/Parallel.py b/tensilelite/Tensile/Common/Parallel.py +index 1a2bf9e119..f46100c7b8 100644 +--- a/tensilelite/Tensile/Common/Parallel.py ++++ b/tensilelite/Tensile/Common/Parallel.py +@@ -22,43 +22,58 @@ + # + ################################################################################ + +-import concurrent.futures +-import itertools ++import multiprocessing + import os ++import re + import sys + import time +- +-from joblib import Parallel, delayed ++from functools import partial ++from typing import Any, Callable + + from .Utilities import tqdm + + +-def joblibParallelSupportsGenerator(): +- import joblib +- from packaging.version import Version ++def get_inherited_job_limit() -> int: ++ # 1. Check CMAKE_BUILD_PARALLEL_LEVEL (CMake 3.12+) ++ if 'CMAKE_BUILD_PARALLEL_LEVEL' in os.environ: ++ try: ++ return int(os.environ['CMAKE_BUILD_PARALLEL_LEVEL']) ++ except ValueError: ++ pass + +- joblibVer = joblib.__version__ +- return Version(joblibVer) >= Version("1.4.0") ++ # 2. Parse MAKEFLAGS for -jN ++ makeflags = os.environ.get('MAKEFLAGS', '') ++ match = re.search(r'-j\s*(\d+)', makeflags) ++ if match: ++ return int(match.group(1)) + ++ return -1 + +-def CPUThreadCount(enable=True): +- from .GlobalParameters import globalParameters + ++def CPUThreadCount(enable=True): + if not enable: + return 1 +- else: ++ from .GlobalParameters import globalParameters ++ ++ # Priority order: ++ # 1. Inherited from build system (CMAKE_BUILD_PARALLEL_LEVEL or MAKEFLAGS) ++ # 2. Explicit --jobs flag ++ # 3. Auto-detect ++ inherited_limit = get_inherited_job_limit() ++ cpuThreads = inherited_limit if inherited_limit > 0 else globalParameters["CpuThreads"] ++ ++ if cpuThreads < 1: + if os.name == "nt": +- # Windows supports at most 61 workers because the scheduler uses +- # WaitForMultipleObjects directly, which has the limit (the limit +- # is actually 64, but some handles are needed for accounting). +- cpu_count = min(os.cpu_count(), 61) ++ cpuThreads = os.cpu_count() + else: +- cpu_count = len(os.sched_getaffinity(0)) +- cpuThreads = globalParameters["CpuThreads"] +- if cpuThreads == -1: +- return cpu_count ++ cpuThreads = len(os.sched_getaffinity(0)) + +- return min(cpu_count, cpuThreads) ++ if os.name == "nt": ++ # Windows supports at most 61 workers because the scheduler uses ++ # WaitForMultipleObjects directly, which has the limit (the limit ++ # is actually 64, but some handles are needed for accounting). ++ cpuThreads = min(cpuThreads, 61) ++ return max(1, cpuThreads) + + + def pcallWithGlobalParamsMultiArg(f, args, newGlobalParameters): +@@ -71,19 +86,22 @@ def pcallWithGlobalParamsSingleArg(f, arg, newGlobalParameters): + return f(arg) + + +-def apply_print_exception(item, *args): +- # print(item, args) ++def OverwriteGlobalParameters(newGlobalParameters): ++ from . import GlobalParameters ++ ++ GlobalParameters.globalParameters.clear() ++ GlobalParameters.globalParameters.update(newGlobalParameters) ++ ++ ++def worker_function(args, function, multiArg): ++ """Worker function that executes in the pool process.""" + try: +- if len(args) > 0: +- func = item +- args = args[0] +- return func(*args) ++ if multiArg: ++ return function(*args) + else: +- func, item = item +- return func(item) ++ return function(args) + except Exception: + import traceback +- + traceback.print_exc() + raise + finally: +@@ -98,154 +116,121 @@ def OverwriteGlobalParameters(newGlobalParameters): + GlobalParameters.globalParameters.update(newGlobalParameters) + + +-def ProcessingPool(enable=True, maxTasksPerChild=None): +- import multiprocessing +- import multiprocessing.dummy +- +- threadCount = CPUThreadCount() +- +- if (not enable) or threadCount <= 1: +- return multiprocessing.dummy.Pool(1) +- +- if multiprocessing.get_start_method() == "spawn": +- from . import GlobalParameters +- +- return multiprocessing.Pool( +- threadCount, +- initializer=OverwriteGlobalParameters, +- maxtasksperchild=maxTasksPerChild, +- initargs=(GlobalParameters.globalParameters,), +- ) +- else: +- return multiprocessing.Pool(threadCount, maxtasksperchild=maxTasksPerChild) ++def progress_logger(iterable, total, message, min_log_interval=5.0): ++ """ ++ Generator that wraps an iterable and logs progress with time-based throttling. + ++ Only logs progress if at least min_log_interval seconds have passed since last log. ++ Only prints completion message if task took >= min_log_interval seconds. + +-def ParallelMap(function, objects, message="", enable=True, method=None, maxTasksPerChild=None): ++ Yields (index, item) tuples. + """ +- Generally equivalent to list(map(function, objects)), possibly executing in parallel. +- +- message: A message describing the operation to be performed. +- enable: May be set to false to disable parallelism. +- method: A function which can fetch the mapping function from a processing pool object. +- Leave blank to use .map(), other possiblities: +- - `lambda x: x.starmap` - useful if `function` takes multiple parameters. +- - `lambda x: x.imap` - lazy evaluation +- - `lambda x: x.imap_unordered` - lazy evaluation, does not preserve order of return value. +- """ +- from .GlobalParameters import globalParameters ++ start_time = time.time() ++ last_log_time = start_time ++ log_interval = 1 + (total // 100) + +- threadCount = CPUThreadCount(enable) +- pool = ProcessingPool(enable, maxTasksPerChild) +- +- if threadCount <= 1 and globalParameters["ShowProgressBar"]: +- # Provide a progress bar for single-threaded operation. +- # This works for method=None, and for starmap. +- mapFunc = map +- if method is not None: +- # itertools provides starmap which can fill in for pool.starmap. It provides imap on Python 2.7. +- # If this works, we will use it, otherwise we will fallback to the "dummy" pool for single threaded +- # operation. +- try: +- mapFunc = method(itertools) +- except NameError: +- mapFunc = None +- +- if mapFunc is not None: +- return list(mapFunc(function, tqdm(objects, message))) +- +- mapFunc = pool.map +- if method: +- mapFunc = method(pool) +- +- objects = zip(itertools.repeat(function), objects) +- function = apply_print_exception +- +- countMessage = "" +- try: +- countMessage = " for {} tasks".format(len(objects)) +- except TypeError: +- pass ++ for idx, item in enumerate(iterable): ++ if idx % log_interval == 0: ++ current_time = time.time() ++ if (current_time - last_log_time) >= min_log_interval: ++ print(f"{message}\t{idx+1: 5d}/{total: 5d}") ++ last_log_time = current_time ++ yield idx, item + +- if message != "": +- message += ": " ++ elapsed = time.time() - start_time ++ final_idx = idx + 1 if 'idx' in locals() else 0 + +- print("{0}Launching {1} threads{2}...".format(message, threadCount, countMessage)) +- sys.stdout.flush() +- currentTime = time.time() +- rv = mapFunc(function, objects) +- totalTime = time.time() - currentTime +- print("{0}Done. ({1:.1f} secs elapsed)".format(message, totalTime)) +- sys.stdout.flush() +- pool.close() +- return rv ++ if elapsed >= min_log_interval or last_log_time > start_time: ++ print(f"{message} done in {elapsed:.1f}s!\t{final_idx: 5d}/{total: 5d}") + + +-def ParallelMapReturnAsGenerator(function, objects, message="", enable=True, multiArg=True): +- from .GlobalParameters import globalParameters ++def imap_with_progress(pool, func, iterable, total, message, chunksize): ++ results = [] ++ for _, result in progress_logger(pool.imap(func, iterable, chunksize=chunksize), total, message): ++ results.append(result) ++ return results + +- threadCount = CPUThreadCount(enable) +- print("{0}Launching {1} threads...".format(message, threadCount)) + +- if threadCount <= 1 and globalParameters["ShowProgressBar"]: +- # Provide a progress bar for single-threaded operation. +- callFunc = lambda args: function(*args) if multiArg else lambda args: function(args) +- return [callFunc(args) for args in tqdm(objects, message)] ++def _ParallelMap_generator(worker, objects, objLen, message, chunksize, threadCount, globalParameters, maxtasksperchild): ++ # separate fn because yield makes the entire fn a generator even if unreachable ++ ctx = multiprocessing.get_context('forkserver' if os.name != 'nt' else 'spawn') + +- with concurrent.futures.ProcessPoolExecutor(max_workers=threadCount) as executor: +- resultFutures = (executor.submit(function, *arg if multiArg else arg) for arg in objects) +- for result in concurrent.futures.as_completed(resultFutures): +- yield result.result() ++ with ctx.Pool(processes=threadCount, maxtasksperchild=maxtasksperchild, ++ initializer=OverwriteGlobalParameters, initargs=(globalParameters,)) as pool: ++ for _, result in progress_logger(pool.imap_unordered(worker, objects, chunksize=chunksize), objLen, message): ++ yield result + + + def ParallelMap2( +- function, objects, message="", enable=True, multiArg=True, return_as="list", procs=None ++ function: Callable, ++ objects: Any, ++ message: str = "", ++ enable: bool = True, ++ multiArg: bool = True, ++ minChunkSize: int = 1, ++ maxWorkers: int = -1, ++ maxtasksperchild: int = 1024, ++ return_as: str = "list" + ): ++ """Executes a function over a list of objects in parallel or sequentially. ++ ++ This function is generally equivalent to ``list(map(function, objects))``. However, it provides ++ additional functionality to run in parallel, depending on the 'enable' flag and available CPU ++ threads. ++ ++ Args: ++ function: The function to apply to each item in 'objects'. If 'multiArg' is True, 'function' ++ should accept multiple arguments. ++ objects: An iterable of objects to be processed by 'function'. If 'multiArg' is True, each ++ item in 'objects' should be an iterable of arguments for 'function'. ++ message: Optional; a message describing the operation. Default is an empty string. ++ enable: Optional; if False, disables parallel execution and runs sequentially. Default is True. ++ multiArg: Optional; if True, treats each item in 'objects' as multiple arguments for ++ 'function'. Default is True. ++ return_as: Optional; "list" (default) or "generator_unordered" for streaming results ++ ++ Returns: ++ A list or generator containing the results of applying **function** to each item in **objects**. + """ +- Generally equivalent to list(map(function, objects)), possibly executing in parallel. ++ from .GlobalParameters import globalParameters + +- message: A message describing the operation to be performed. +- enable: May be set to false to disable parallelism. +- multiArg: True if objects represent multiple arguments +- (differentiates multi args vs single collection arg) +- """ +- if return_as in ("generator", "generator_unordered") and not joblibParallelSupportsGenerator(): +- return ParallelMapReturnAsGenerator(function, objects, message, enable, multiArg) ++ threadCount = CPUThreadCount(enable) + +- from .GlobalParameters import globalParameters ++ if not hasattr(objects, "__len__"): ++ objects = list(objects) + +- threadCount = procs if procs else CPUThreadCount(enable) ++ objLen = len(objects) ++ if objLen == 0: ++ return [] if return_as == "list" else iter([]) + +- threadCount = CPUThreadCount(enable) ++ f = (lambda x: function(*x)) if multiArg else function ++ if objLen == 1: ++ print(f"{message}: (1 task)") ++ result = [f(x) for x in objects] ++ return result if return_as == "list" else iter(result) + +- if threadCount <= 1 and globalParameters["ShowProgressBar"]: +- # Provide a progress bar for single-threaded operation. +- return [function(*args) if multiArg else function(args) for args in tqdm(objects, message)] ++ extra_message = ( ++ f": {threadCount} thread(s)" + f", {objLen} tasks" ++ if objLen ++ else "" ++ ) + +- countMessage = "" +- try: +- countMessage = " for {} tasks".format(len(objects)) +- except TypeError: +- pass +- +- if message != "": +- message += ": " +- print("{0}Launching {1} threads{2}...".format(message, threadCount, countMessage)) +- sys.stdout.flush() +- currentTime = time.time() +- +- pcall = pcallWithGlobalParamsMultiArg if multiArg else pcallWithGlobalParamsSingleArg +- pargs = zip(objects, itertools.repeat(globalParameters)) +- +- if joblibParallelSupportsGenerator(): +- rv = Parallel(n_jobs=threadCount, timeout=99999, return_as=return_as)( +- delayed(pcall)(function, a, params) for a, params in pargs +- ) ++ print(f"ParallelMap {message}{extra_message}") ++ ++ if threadCount <= 1: ++ result = [f(x) for x in objects] ++ return result if return_as == "list" else iter(result) ++ ++ if maxWorkers > 0: ++ threadCount = min(maxWorkers, threadCount) ++ ++ chunksize = max(minChunkSize, objLen // 2000) ++ worker = partial(worker_function, function=function, multiArg=multiArg) ++ if return_as == "generator_unordered": ++ # yield results as they complete without buffering ++ return _ParallelMap_generator(worker, objects, objLen, message, chunksize, threadCount, globalParameters, maxtasksperchild) + else: +- rv = Parallel(n_jobs=threadCount, timeout=99999)( +- delayed(pcall)(function, a, params) for a, params in pargs +- ) +- +- totalTime = time.time() - currentTime +- print("{0}Done. ({1:.1f} secs elapsed)".format(message, totalTime)) +- sys.stdout.flush() +- return rv ++ ctx = multiprocessing.get_context('forkserver' if os.name != 'nt' else 'spawn') ++ with ctx.Pool(processes=threadCount, maxtasksperchild=maxtasksperchild, ++ initializer=OverwriteGlobalParameters, initargs=(globalParameters,)) as pool: ++ return list(imap_with_progress(pool, worker, objects, objLen, message, chunksize)) +diff --git a/tensilelite/Tensile/CustomKernels.py b/tensilelite/Tensile/CustomKernels.py +index ffceb636f5..127b3386a1 100644 +--- a/tensilelite/Tensile/CustomKernels.py ++++ b/tensilelite/Tensile/CustomKernels.py +@@ -24,7 +24,9 @@ + + from . import CUSTOM_KERNEL_PATH + from Tensile.Common.ValidParameters import checkParametersAreValid, validParameters, newMIValidParameters ++from Tensile.CustomYamlLoader import DEFAULT_YAML_LOADER + ++from functools import lru_cache + import yaml + + import os +@@ -58,10 +60,13 @@ def getCustomKernelConfigAndAssembly(name, directory=CUSTOM_KERNEL_PATH): + + return (config, assembly) + ++# getCustomKernelConfig will get called repeatedly on the same file ++# 20x logic loading speedup for aquavanjaram_Cijk_Ailk_Bljk_F8NH_HHS_BH_Bias_HAS_SAB_SAV_freesize_custom_GSUs ++@lru_cache + def readCustomKernelConfig(name, directory=CUSTOM_KERNEL_PATH): + rawConfig, _ = getCustomKernelConfigAndAssembly(name, directory) + try: +- return yaml.safe_load(rawConfig)["custom.config"] ++ return yaml.load(rawConfig, Loader=DEFAULT_YAML_LOADER)["custom.config"] + except yaml.scanner.ScannerError as e: + raise RuntimeError("Failed to read configuration for custom kernel: {0}\nDetails:\n{1}".format(name, e)) + +diff --git a/tensilelite/Tensile/TensileCreateLibrary/Run.py b/tensilelite/Tensile/TensileCreateLibrary/Run.py +index 835ed9c019..024c6c49c1 100644 +--- a/tensilelite/Tensile/TensileCreateLibrary/Run.py ++++ b/tensilelite/Tensile/TensileCreateLibrary/Run.py +@@ -26,8 +26,10 @@ import rocisa + + import functools + import glob ++import gc + import itertools + import os ++import resource + import shutil + from pathlib import Path + from timeit import default_timer as timer +@@ -78,6 +80,25 @@ from Tensile.Utilities.Decorators.Timing import timing + from .ParseArguments import parseArguments + + ++def getMemoryUsage(): ++ """Get peak and current memory usage in MB.""" ++ rusage = resource.getrusage(resource.RUSAGE_SELF) ++ peak_memory_mb = rusage.ru_maxrss / 1024 # KB to MB on Linux ++ ++ # Get current memory from /proc/self/status ++ current_memory_mb = 0 ++ try: ++ with open('/proc/self/status') as f: ++ for line in f: ++ if line.startswith('VmRSS:'): ++ current_memory_mb = int(line.split()[1]) / 1024 # KB to MB ++ break ++ except: ++ current_memory_mb = peak_memory_mb # Fallback ++ ++ return (peak_memory_mb, current_memory_mb) ++ ++ + class KernelCodeGenResult(NamedTuple): + err: int + src: str +@@ -115,6 +136,29 @@ def processKernelSource(kernelWriterAssembly, data, splitGSU, kernel) -> KernelC + ) + + ++def processAndAssembleKernelTCL(kernelWriterAssembly, rocisa_data, splitGSU, kernel, assemblyTmpPath, assembler): ++ """ ++ Pipeline function for TCL mode that: ++ 1. Generates kernel source ++ 2. Writes .s file to disk ++ 3. Assembles to .o file ++ 4. Deletes .s file ++ """ ++ result = processKernelSource(kernelWriterAssembly, rocisa_data, splitGSU, kernel) ++ return writeAndAssembleKernel(result, assemblyTmpPath, assembler) ++ ++ ++def writeMasterSolutionLibrary(name_lib_tuple, newLibraryDir, splitGSU, libraryFormat): ++ """ ++ Write a master solution library to disk. ++ Module-level function to support multiprocessing. ++ """ ++ name, lib = name_lib_tuple ++ filename = os.path.join(newLibraryDir, name) ++ lib.applyNaming(splitGSU) ++ LibraryIO.write(filename, state(lib), libraryFormat) ++ ++ + def removeInvalidSolutionsAndKernels(results, kernels, solutions, errorTolerant, printLevel: bool, splitGSU: bool): + removeKernels = [] + removeKernelNames = [] +@@ -189,6 +233,24 @@ def writeAssembly(asmPath: Union[Path, str], result: KernelCodeGenResult): + return path, isa, wfsize, minResult + + ++def writeAndAssembleKernel(result: KernelCodeGenResult, asmPath: Union[Path, str], assembler): ++ """Write assembly file and immediately assemble it to .o file""" ++ if result.err: ++ printExit(f"Failed to build kernel {result.name} because it has error code {result.err}") ++ ++ path = Path(asmPath) / f"{result.name}.s" ++ with open(path, "w", encoding="utf-8") as f: ++ f.write(result.src) ++ ++ # Assemble .s -> .o ++ assembler(isaToGfx(result.isa), result.wavefrontSize, str(path), str(path.with_suffix(".o"))) ++ ++ # Delete assembly file immediately to save disk space ++ path.unlink() ++ ++ return KernelMinResult(result.err, result.cuoccupancy, result.pgr, result.mathclk) ++ ++ + def writeHelpers( + outputPath, kernelHelperObjs, KERNEL_HELPER_FILENAME_CPP, KERNEL_HELPER_FILENAME_H + ): +@@ -268,13 +330,14 @@ def writeSolutionsAndKernels( + numAsmKernels = len(asmKernels) + numKernels = len(asmKernels) + assert numKernels == numAsmKernels, "Only assembly kernels are supported in TensileLite" +- asmIter = zip( +- itertools.repeat(kernelWriterAssembly), +- itertools.repeat(rocisa.rocIsa.getInstance().getData()), +- itertools.repeat(splitGSU), +- asmKernels ++ ++ processKernelFn = functools.partial( ++ processKernelSource, ++ kernelWriterAssembly=kernelWriterAssembly, ++ data=rocisa.rocIsa.getInstance().getData(), ++ splitGSU=splitGSU + ) +- asmResults = ParallelMap2(processKernelSource, asmIter, "Generating assembly kernels", return_as="list") ++ asmResults = ParallelMap2(processKernelFn, asmKernels, "Generating assembly kernels", return_as="list", multiArg=False) + removeInvalidSolutionsAndKernels( + asmResults, asmKernels, solutions, errorTolerant, getVerbosity(), splitGSU + ) +@@ -282,19 +345,21 @@ def writeSolutionsAndKernels( + asmResults, asmKernels, solutions, splitGSU + ) + +- def assemble(ret): +- p, isa, wavefrontsize, result = ret +- asmToolchain.assembler(isaToGfx(isa), wavefrontsize, str(p), str(p.with_suffix(".o"))) +- +- unaryWriteAssembly = functools.partial(writeAssembly, assemblyTmpPath) +- compose = lambda *F: functools.reduce(lambda f, g: lambda x: f(g(x)), F) ++ # Use functools.partial to bind assemblyTmpPath and assembler ++ writeAndAssembleFn = functools.partial( ++ writeAndAssembleKernel, ++ asmPath=assemblyTmpPath, ++ assembler=asmToolchain.assembler ++ ) + ret = ParallelMap2( +- compose(assemble, unaryWriteAssembly), ++ writeAndAssembleFn, + asmResults, + "Writing assembly kernels", + return_as="list", + multiArg=False, + ) ++ del asmResults ++ gc.collect() + + writeHelpers(outputPath, kernelHelperObjs, KERNEL_HELPER_FILENAME_CPP, KERNEL_HELPER_FILENAME_H) + srcKernelFile = Path(outputPath) / "Kernels.cpp" +@@ -369,32 +434,31 @@ def writeSolutionsAndKernelsTCL( + + uniqueAsmKernels = [k for k in asmKernels if not k.duplicate] + +- def assemble(ret): +- p, isa, wavefrontsize, result = ret +- asmToolchain.assembler(isaToGfx(isa), wavefrontsize, str(p), str(p.with_suffix(".o"))) +- return result +- +- unaryProcessKernelSource = functools.partial( +- processKernelSource, ++ processKernelFn = functools.partial( ++ processAndAssembleKernelTCL, + kernelWriterAssembly, + rocisa.rocIsa.getInstance().getData(), + splitGSU, ++ assemblyTmpPath=assemblyTmpPath, ++ assembler=asmToolchain.assembler + ) + +- unaryWriteAssembly = functools.partial(writeAssembly, assemblyTmpPath) +- compose = lambda *F: functools.reduce(lambda f, g: lambda x: f(g(x)), F) +- ret = ParallelMap2( +- compose(assemble, unaryWriteAssembly, unaryProcessKernelSource), ++ results = ParallelMap2( ++ processKernelFn, + uniqueAsmKernels, + "Generating assembly kernels", + multiArg=False, + return_as="list" + ) ++ del processKernelFn ++ gc.collect() ++ + passPostKernelInfoToSolution( +- ret, uniqueAsmKernels, solutions, splitGSU ++ results, uniqueAsmKernels, solutions, splitGSU + ) +- # result.src is very large so let garbage collector know to clean up +- del ret ++ del results ++ gc.collect() ++ + buildAssemblyCodeObjectFiles( + asmToolchain.linker, + asmToolchain.bundler, +@@ -493,6 +557,15 @@ def generateKernelHelperObjects(solutions: List[Solution], cxxCompiler: str, isa + return sorted(khos, key=sortByEnum, reverse=True) # Ensure that we write Enum kernel helpers are first in list + + ++def libraryIter(lib: MasterSolutionLibrary): ++ if len(lib.solutions): ++ for i, s in enumerate(lib.solutions.items()): ++ yield (i, *s) ++ else: ++ for _, lazyLib in lib.lazyLibraries.items(): ++ yield from libraryIter(lazyLib) ++ ++ + @timing + def generateLogicDataAndSolutions(logicFiles, args, assembler: Assembler, isaInfoMap): + +@@ -508,26 +581,23 @@ def generateLogicDataAndSolutions(logicFiles, args, assembler: Assembler, isaInf + printSolutionRejectionReason = True + printIndexAssignmentInfo = False + +- fIter = zip( +- logicFiles, +- itertools.repeat(assembler), +- itertools.repeat(splitGSU), +- itertools.repeat(printSolutionRejectionReason), +- itertools.repeat(printIndexAssignmentInfo), +- itertools.repeat(isaInfoMap), +- itertools.repeat(args["LazyLibraryLoading"]), ++ parseLogicFn = functools.partial( ++ LibraryIO.parseLibraryLogicFile, ++ assembler=assembler, ++ splitGSU=splitGSU, ++ printSolutionRejectionReason=printSolutionRejectionReason, ++ printIndexAssignmentInfo=printIndexAssignmentInfo, ++ isaInfoMap=isaInfoMap, ++ lazyLibraryLoading=args["LazyLibraryLoading"] + ) + +- def libraryIter(lib: MasterSolutionLibrary): +- if len(lib.solutions): +- for i, s in enumerate(lib.solutions.items()): +- yield (i, *s) +- else: +- for _, lazyLib in lib.lazyLibraries.items(): +- yield from libraryIter(lazyLib) +- + for library in ParallelMap2( +- LibraryIO.parseLibraryLogicFile, fIter, "Loading Logics...", return_as="generator_unordered" ++ parseLogicFn, logicFiles, "Loading Logics...", ++ return_as="generator_unordered", ++ minChunkSize=24, ++ maxWorkers=32, ++ maxtasksperchild=1, ++ multiArg=False, + ): + _, architectureName, _, _, _, newLibrary = library + +@@ -539,6 +609,9 @@ def generateLogicDataAndSolutions(logicFiles, args, assembler: Assembler, isaInf + else: + masterLibraries[architectureName] = newLibrary + masterLibraries[architectureName].version = args["CodeObjectVersion"] ++ del library, newLibrary ++ ++ gc.collect() + + # Sort masterLibraries to make global soln index values deterministic + solnReIndex = 0 +@@ -734,6 +807,9 @@ def run(): + ) + stop_wsk = timer() + print(f"Time to generate kernels (s): {(stop_wsk-start_wsk):3.2f}") ++ numKernelHelperObjs = len(kernelHelperObjs) ++ del kernelWriterAssembly, kernelHelperObjs ++ gc.collect() + + archs = [ # is this really different than the other archs above? + isaToGfx(arch) +@@ -751,13 +827,10 @@ def run(): + if kName not in solDict: + solDict["%s"%kName] = kernel + +- def writeMsl(name, lib): +- filename = os.path.join(newLibraryDir, name) +- lib.applyNaming(splitGSU) +- LibraryIO.write(filename, state(lib), arguments["LibraryFormat"]) +- + filename = os.path.join(newLibraryDir, "TensileLiteLibrary_lazy_Mapping") + LibraryIO.write(filename, libraryMapping, "msgpack") ++ del libraryMapping ++ gc.collect() + + start_msl = timer() + for archName, newMasterLibrary in masterLibraries.items(): +@@ -774,12 +847,22 @@ def run(): + kName = getKeyNoInternalArgs(s.originalSolution, splitGSU) + s.sizeMapping.CUOccupancy = solDict["%s"%kName]["CUOccupancy"] + +- ParallelMap2(writeMsl, ++ writeFn = functools.partial( ++ writeMasterSolutionLibrary, ++ newLibraryDir=newLibraryDir, ++ splitGSU=splitGSU, ++ libraryFormat=arguments["LibraryFormat"] ++ ) ++ ++ ParallelMap2(writeFn, + newMasterLibrary.lazyLibraries.items(), + "Writing master solution libraries", ++ multiArg=False, + return_as="list") + stop_msl = timer() + print(f"Time to write master solution libraries (s): {(stop_msl-start_msl):3.2f}") ++ del masterLibraries, solutions, kernels, solDict ++ gc.collect() + + if not arguments["KeepBuildTmp"]: + buildTmp = Path(arguments["OutputPath"]).parent / "library" / "build_tmp" +@@ -796,8 +879,11 @@ def run(): + print("") + + stop = timer() ++ peak_memory_mb, current_memory_mb = getMemoryUsage() + + print(f"Total time (s): {(stop-start):3.2f}") + print(f"Total kernels processed: {numKernels}") + print(f"Kernels processed per second: {(numKernels/(stop-start)):3.2f}") +- print(f"KernelHelperObjs: {len(kernelHelperObjs)}") ++ print(f"KernelHelperObjs: {numKernelHelperObjs}") ++ print(f"Peak memory usage (MB): {peak_memory_mb:,.1f}") ++ print(f"Current memory usage (MB): {current_memory_mb:,.1f}") +diff --git a/tensilelite/Tensile/TensileMergeLibrary.py b/tensilelite/Tensile/TensileMergeLibrary.py +index e33c617b6f..ba163e9918 100644 +--- a/tensilelite/Tensile/TensileMergeLibrary.py ++++ b/tensilelite/Tensile/TensileMergeLibrary.py +@@ -303,8 +303,7 @@ def avoidRegressions(originalDir, incrementalDir, outputPath, forceMerge, noEff= + logicsFiles[origFile] = origFile + logicsFiles[incFile] = incFile + +- iters = zip(logicsFiles.keys()) +- logicsList = ParallelMap2(loadData, iters, "Loading Logics...", return_as="list") ++ logicsList = ParallelMap2(loadData, logicsFiles.keys(), "Loading Logics...", return_as="list", multiArg=False) + logicsDict = {} + for i, _ in enumerate(logicsList): + logicsDict[logicsList[i][0]] = logicsList[i][1] +diff --git a/tensilelite/Tensile/TensileUpdateLibrary.py b/tensilelite/Tensile/TensileUpdateLibrary.py +index 5ff265d0ed..c1803a6349 100644 +--- a/tensilelite/Tensile/TensileUpdateLibrary.py ++++ b/tensilelite/Tensile/TensileUpdateLibrary.py +@@ -26,7 +26,7 @@ from . import LibraryIO + from .Tensile import addCommonArguments, argUpdatedGlobalParameters + + from .Common import assignGlobalParameters, print1, restoreDefaultGlobalParameters, HR, \ +- globalParameters, architectureMap, ensurePath, ParallelMap, __version__ ++ globalParameters, architectureMap, ensurePath, ParallelMap2, __version__ + + import argparse + import copy +@@ -149,7 +149,7 @@ def TensileUpdateLibrary(userArgs): + for logicFile in logicFiles: + print("# %s" % logicFile) + fIter = zip(logicFiles, itertools.repeat(args.logic_path), itertools.repeat(outputPath)) +- libraries = ParallelMap(UpdateLogic, fIter, "Updating logic files", method=lambda x: x.starmap) ++ libraries = ParallelMap2(UpdateLogic, fIter, "Updating logic files", multiArg=True, return_as="list") + + + def main(): +diff --git a/tensilelite/Tensile/Toolchain/Assembly.py b/tensilelite/Tensile/Toolchain/Assembly.py +index a8b91e8d62..265e1d532c 100644 +--- a/tensilelite/Tensile/Toolchain/Assembly.py ++++ b/tensilelite/Tensile/Toolchain/Assembly.py +@@ -30,7 +30,7 @@ import subprocess + from pathlib import Path + from typing import List, Union, NamedTuple + +-from Tensile.Common import print2 ++from Tensile.Common import print1, print2 + from Tensile.Common.Architectures import isaToGfx + from ..SolutionStructs import Solution + +@@ -92,8 +92,26 @@ def buildAssemblyCodeObjectFiles( + if coName: + coFileMap[asmDir / (coName + extCoRaw)].add(str(asmDir / (kernel["BaseName"] + extObj))) + ++ # Build reference count map for .o files to handle shared object files ++ # (.o files from kernels marked .duplicate in TensileCreateLibrary) ++ objFileRefCount = collections.Counter() ++ for coFileRaw, objFiles in coFileMap.items(): ++ for objFile in objFiles: ++ objFileRefCount[objFile] += 1 ++ ++ sharedObjFiles = {objFile: count for objFile, count in objFileRefCount.items() if count > 1} ++ if sharedObjFiles: ++ print1(f"Found {len(sharedObjFiles)} .o files shared across multiple code objects:") ++ + for coFileRaw, objFiles in coFileMap.items(): + linker(objFiles, str(coFileRaw)) ++ ++ # Delete .o files after linking once usage count reaches 0 ++ for objFile in objFiles: ++ objFileRefCount[objFile] -= 1 ++ if objFileRefCount[objFile] == 0: ++ Path(objFile).unlink() ++ + coFile = destDir / coFileRaw.name.replace(extCoRaw, extCo) + if compress: + bundler.compress(str(coFileRaw), str(coFile), gfx) +diff --git a/tensilelite/Tensile/Toolchain/Component.py b/tensilelite/Tensile/Toolchain/Component.py +index 67fa35e2d8..dde83af4c3 100644 +--- a/tensilelite/Tensile/Toolchain/Component.py ++++ b/tensilelite/Tensile/Toolchain/Component.py +@@ -355,6 +355,7 @@ class Linker(Component): + when invoking the linker, LLVM allows the provision of arguments via a "response file" + Reference: https://llvm.org/docs/CommandLine.html#response-files + """ ++ # FIXME: this prevents threading as clang_args.txt is overwritten + with open(Path.cwd() / "clang_args.txt", "wt") as file: + file.write(" ".join(srcPaths).replace('\\', '\\\\') if os_name == "nt" else " ".join(srcPaths)) + return [*(self.default_args), "-o", destPath, "@clang_args.txt"] +diff --git a/tensilelite/requirements.txt b/tensilelite/requirements.txt +index 60c4c11445..5c8fd66a88 100644 +--- a/tensilelite/requirements.txt ++++ b/tensilelite/requirements.txt +@@ -2,8 +2,6 @@ dataclasses; python_version == '3.6' + packaging + pyyaml + msgpack +-joblib>=1.4.0; python_version >= '3.8' +-joblib>=1.1.1; python_version < '3.8' + simplejson + ujson + orjson diff --git a/pkgs/development/rocm-modules/6/hipblaslt/default.nix b/pkgs/development/rocm-modules/6/hipblaslt/default.nix index e8061a50b92f..c5f69d37906e 100644 --- a/pkgs/development/rocm-modules/6/hipblaslt/default.nix +++ b/pkgs/development/rocm-modules/6/hipblaslt/default.nix @@ -22,6 +22,7 @@ ncurses, ninja, libffi, + jemalloc, zlib, zstd, rocmUpdateScript, @@ -54,7 +55,6 @@ let ps.setuptools ps.packaging ps.nanobind - ps.joblib ps.msgpack ]); # workaround: build for one working target if no targets are supported @@ -86,6 +86,8 @@ stdenv.mkDerivation (finalAttrs: { env.ROCM_PATH = "${clr}"; env.TENSILE_ROCM_ASSEMBLER_PATH = lib.getExe' clr "amdclang++"; env.TENSILE_GEN_ASSEMBLY_TOOLCHAIN = lib.getExe' clr "amdclang++"; + env.LD_PRELOAD = "${jemalloc}/lib/libjemalloc.so"; + env.MALLOC_CONF = "background_thread:true,metadata_thp:auto,dirty_decay_ms:10000,muzzy_decay_ms:10000"; requiredSystemFeatures = [ "big-parallel" ]; __structuredAttrs = true; @@ -114,6 +116,10 @@ stdenv.mkDerivation (finalAttrs: { # excessive comments are written to temporary asm files in build dir # TODO: report upstream, find a better solution ./reduce-comment-spam.patch + # [hipblaslt] Refactor Parallel.py to drop joblib, massively reduce peak disk space usage + # https://github.com/ROCm/rocm-libraries/pull/2073 + ./TensileCreateLibrary-refactor.patch + ./Tensile-interning.patch ]; postPatch = '' @@ -155,7 +161,6 @@ stdenv.mkDerivation (finalAttrs: { msgpack-cxx libxml2 python3Packages.msgpack - python3Packages.joblib zlib zstd ] From bfd0d13dc984b8f6fcedccd2c26f1a2c7b5e3261 Mon Sep 17 00:00:00 2001 From: Luna Nova Date: Sat, 11 Oct 2025 18:07:26 -0700 Subject: [PATCH 16/94] rocmPackages.hipblaslt: remove comment patch no longer needed now we unlink .s / .o files as soon as possible --- .../rocm-modules/6/hipblaslt/default.nix | 3 -- .../6/hipblaslt/reduce-comment-spam.patch | 47 ------------------- 2 files changed, 50 deletions(-) delete mode 100644 pkgs/development/rocm-modules/6/hipblaslt/reduce-comment-spam.patch diff --git a/pkgs/development/rocm-modules/6/hipblaslt/default.nix b/pkgs/development/rocm-modules/6/hipblaslt/default.nix index c5f69d37906e..fe395d874d15 100644 --- a/pkgs/development/rocm-modules/6/hipblaslt/default.nix +++ b/pkgs/development/rocm-modules/6/hipblaslt/default.nix @@ -113,9 +113,6 @@ stdenv.mkDerivation (finalAttrs: { # Support loading zstd compressed .dat files, required to keep output under # hydra size limit ./messagepack-compression-support.patch - # excessive comments are written to temporary asm files in build dir - # TODO: report upstream, find a better solution - ./reduce-comment-spam.patch # [hipblaslt] Refactor Parallel.py to drop joblib, massively reduce peak disk space usage # https://github.com/ROCm/rocm-libraries/pull/2073 ./TensileCreateLibrary-refactor.patch diff --git a/pkgs/development/rocm-modules/6/hipblaslt/reduce-comment-spam.patch b/pkgs/development/rocm-modules/6/hipblaslt/reduce-comment-spam.patch deleted file mode 100644 index 32969c517781..000000000000 --- a/pkgs/development/rocm-modules/6/hipblaslt/reduce-comment-spam.patch +++ /dev/null @@ -1,47 +0,0 @@ -diff --git a/projects/hipblaslt/tensilelite/rocisa/rocisa/include/format.hpp b/projects/hipblaslt/tensilelite/rocisa/rocisa/include/format.hpp -index b7dcb6f59a..b0625ba769 100644 ---- a/tensilelite/rocisa/rocisa/include/format.hpp -+++ b/tensilelite/rocisa/rocisa/include/format.hpp -@@ -8,11 +8,13 @@ namespace rocisa - // Text format functions - inline std::string slash(const std::string& comment) - { -+ return ""; - return "// " + comment + "\n"; - } - - inline std::string slash50(const std::string& comment) - { -+ return ""; - std::ostringstream oss; - oss << std::setw(50) << "" - << " // " << comment << "\n"; -@@ -21,16 +23,19 @@ namespace rocisa - - inline std::string block(const std::string& comment) - { -+ return ""; - return "/* " + comment + " */\n"; - } - - inline std::string blockNewLine(const std::string& comment) - { -+ return ""; - return "\n/* " + comment + " */\n"; - } - - inline std::string block3Line(const std::string& comment) - { -+ return ""; - std::ostringstream oss; - oss << "\n/******************************************/\n"; - std::istringstream iss(comment); -@@ -52,7 +57,7 @@ namespace rocisa - { - formattedStr = "\"" + formattedStr + "\\n\\t\""; - } -- if(!comment.empty()) -+ if(false) - { - std::string buffer = formattedStr - + std::string(std::max(0, 50 - int(formattedStr.length())), ' ') From 2698eb7ea56b8fa170eb8a6aea5ced2c5a060b91 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 14 Oct 2025 22:46:54 +0000 Subject: [PATCH 17/94] bootspec: 1.1.0 -> 2.0.0 --- pkgs/by-name/bo/bootspec/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/bo/bootspec/package.nix b/pkgs/by-name/bo/bootspec/package.nix index 307733da90f4..208d5ed30900 100644 --- a/pkgs/by-name/bo/bootspec/package.nix +++ b/pkgs/by-name/bo/bootspec/package.nix @@ -6,16 +6,16 @@ }: rustPlatform.buildRustPackage rec { pname = "bootspec"; - version = "1.1.0"; + version = "2.0.0"; src = fetchFromGitHub { owner = "DeterminateSystems"; repo = "bootspec"; rev = "v${version}"; - hash = "sha256-WDEaTxj5iT8tvasd6gnMhRgNoEdDi9Wi4ke8sVtNpt8="; + hash = "sha256-FeNBn/HeOanvFSCH9gNBCwlSJx1EhhEdrgX2rbXdZgI="; }; - cargoHash = "sha256-ZJKoL1vYfAG1rpCcE1jRm7Yj2dhooJ6iQ91c6EGF83E="; + cargoHash = "sha256-vJVOseAvIGNxos180Z5OHgo3u/2iyeOgOetXTJxyZx0="; passthru.updateScript = nix-update-script { }; From e06ed02e352a8ea3cda45ea9d5eb091c35be9160 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 15 Oct 2025 07:30:03 +0000 Subject: [PATCH 18/94] kurve: 2.0.0 -> 2.1.0 --- pkgs/by-name/ku/kurve/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ku/kurve/package.nix b/pkgs/by-name/ku/kurve/package.nix index 5bb27e5c5dd0..3f451c74928d 100644 --- a/pkgs/by-name/ku/kurve/package.nix +++ b/pkgs/by-name/ku/kurve/package.nix @@ -13,14 +13,14 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "kurve"; - version = "2.0.0"; + version = "2.1.0"; dontWrapQtApps = true; src = fetchFromGitHub { owner = "luisbocanegra"; repo = "kurve"; tag = "v${finalAttrs.version}"; - hash = "sha256-qw/6V3TWGZFL8dgyDUxzBr4U6/jaX9uwpyg3Bd3pKdg="; + hash = "sha256-Fm2HoD3W/MymUr3JiVxssHvxwIGQ7jri0iz+asSS1eY="; }; installPhase = '' From 7b8bea0cd7432cbf9485640718c15285c453464c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 15 Oct 2025 11:16:59 +0000 Subject: [PATCH 19/94] virtnbdbackup: 2.37 -> 2.38 --- 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 5e502efc2162..613e3f63f66f 100644 --- a/pkgs/by-name/vi/virtnbdbackup/package.nix +++ b/pkgs/by-name/vi/virtnbdbackup/package.nix @@ -7,14 +7,14 @@ python3Packages.buildPythonApplication rec { pname = "virtnbdbackup"; - version = "2.37"; + version = "2.38"; pyproject = true; src = fetchFromGitHub { owner = "abbbi"; repo = "virtnbdbackup"; tag = "v${version}"; - hash = "sha256-G3nDaAIWxSA6EsqiVpdouBRWprSbogcMTTroquK8Big="; + hash = "sha256-GKFMldHqIVi8PjnfYjj1nyS6hDH9ANHEm4kH9K+Al9E="; }; build-system = with python3Packages; [ From fb6d92f96f4c1c35912e781c5a5b3596a72c0af8 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 15 Oct 2025 20:44:15 +0800 Subject: [PATCH 20/94] spidermonkey_140: 140.3.1 -> 140.4.0 https://github.com/mozilla-firefox/firefox/commits/FIREFOX_140_4_0esr_RELEASE/js/src/build https://github.com/mozilla-firefox/firefox/commits/FIREFOX_140_4_0esr_RELEASE/build --- pkgs/development/interpreters/spidermonkey/140.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/interpreters/spidermonkey/140.nix b/pkgs/development/interpreters/spidermonkey/140.nix index f96c8d6ce696..af269d60324a 100644 --- a/pkgs/development/interpreters/spidermonkey/140.nix +++ b/pkgs/development/interpreters/spidermonkey/140.nix @@ -1,4 +1,4 @@ import ./common.nix { - version = "140.3.1"; - hash = "sha512-qTAtmdfwf0slCqIUY1gUlk3QgyBCaOBf6Hej2DMLnAyqbCntGdpxvYiXm3zzntUvF2mJaLDaWw10MLZ2S0O2zA=="; + version = "140.4.0"; + hash = "sha512-z84L3PbUWZx7lrzNn9E5C/s2RduSdqNpowdgzmgZhQqqQlGGnmvTxdhYLqNyi5IHYsXxb3zhLOFRw+dDJ7jIEQ=="; } From f3ebaf44ae58796cc91a4831c8c1d3097294df03 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Wed, 15 Oct 2025 20:48:12 +0800 Subject: [PATCH 21/94] mate.mate-panel: 1.28.6 -> 1.28.7 https://github.com/mate-desktop/mate-panel/compare/v1.28.6...v1.28.7 --- pkgs/desktops/mate/mate-panel/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/mate/mate-panel/default.nix b/pkgs/desktops/mate/mate-panel/default.nix index abbe84809a73..49320fa936ca 100644 --- a/pkgs/desktops/mate/mate-panel/default.nix +++ b/pkgs/desktops/mate/mate-panel/default.nix @@ -31,14 +31,14 @@ stdenv.mkDerivation rec { pname = "mate-panel"; - version = "1.28.6"; + version = "1.28.7"; src = fetchFromGitHub { owner = "mate-desktop"; repo = "mate-panel"; tag = "v${version}"; fetchSubmodules = true; - hash = "sha256-jfPXvb/iQGP+WwhquKtQICDUtjMhBY10YY8+dMfM8S8="; + hash = "sha256-8GS6JY5kS2YKscItAo8dzudgkZeG51JsSBUj0EfLiZQ="; }; nativeBuildInputs = [ From 374c29349a11738277b59a46cb7623f6720e82cd Mon Sep 17 00:00:00 2001 From: Thomas Gerbet Date: Sat, 4 Oct 2025 16:37:08 +0200 Subject: [PATCH 22/94] zizmor: 1.13.0 -> 1.15.2 Changes: https://github.com/zizmorcore/zizmor/releases/tag/v1.15.2 https://github.com/zizmorcore/zizmor/releases/tag/v1.15.1 https://github.com/zizmorcore/zizmor/releases/tag/v1.15.0 https://github.com/zizmorcore/zizmor/releases/tag/v1.14.2 https://github.com/zizmorcore/zizmor/releases/tag/v1.14.1 https://github.com/zizmorcore/zizmor/releases/tag/v1.14.0 --- pkgs/by-name/zi/zizmor/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/zi/zizmor/package.nix b/pkgs/by-name/zi/zizmor/package.nix index db8f2685ba1b..5fc7dbadb45d 100644 --- a/pkgs/by-name/zi/zizmor/package.nix +++ b/pkgs/by-name/zi/zizmor/package.nix @@ -10,16 +10,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "zizmor"; - version = "1.13.0"; + version = "1.15.2"; src = fetchFromGitHub { owner = "zizmorcore"; repo = "zizmor"; tag = "v${finalAttrs.version}"; - hash = "sha256-D4SJFueWUUABkJeKpgVywoJcQETVKCFA9dYisFIh11I="; + hash = "sha256-fl3Z4jgeqNxNjcdYQRt02oR7nDrYPN2dhzKeBium7Ug="; }; - cargoHash = "sha256-7MKTw1XeZk4VYRA3q24iEGD/gXs+Uy0XC090kx+/Z5I="; + cargoHash = "sha256-4+1EURDrDYG4luaNV9KdRVojXY++H9LNNl2oINfWeLc="; nativeBuildInputs = lib.optionals (stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ installShellFiles From 7a3eeaaac65d8a99b6bdcc79aa5082c80050f992 Mon Sep 17 00:00:00 2001 From: Franz Pletz Date: Wed, 15 Oct 2025 17:58:58 +0200 Subject: [PATCH 23/94] librewolf-unwrapped: 143.0.4-1 -> 144.0-1 --- .../networking/browsers/librewolf/src.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/applications/networking/browsers/librewolf/src.json b/pkgs/applications/networking/browsers/librewolf/src.json index be1a3e715912..f6708469edda 100644 --- a/pkgs/applications/networking/browsers/librewolf/src.json +++ b/pkgs/applications/networking/browsers/librewolf/src.json @@ -1,11 +1,11 @@ { - "packageVersion": "143.0.4-1", + "packageVersion": "144.0-1", "source": { - "rev": "143.0.4-1", - "hash": "sha256-RyLz5se2AqXAmsa/MckiUgcBfRxZVVsrNg2L757qOuo=" + "rev": "144.0-1", + "hash": "sha256-5LE8VUKQUua8l/mZN8a7MQCr3uPWJuFZ2WfhJyt14bE=" }, "firefox": { - "version": "143.0.4", - "hash": "sha512-K8veTnLqQenMyYg2kBY1NQtdx7UMYY4Zq2EDonrcDwF8o/p1VTeMivbuHzoU0Ck1KJ/isNNdhA1hD1rAeojktg==" + "version": "144.0", + "hash": "sha512-4fkk7QBqMfUzPqavIZwfuQ1IZuWImsY0wySj6AsEKn4LK5rreYZy6hpDT7+Bf8C4KhLsD7QFpI46LKIcw5REXg==" } } From d59000cc1afb5ec366e97e27be5c6fd5e0203584 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Wed, 24 Sep 2025 18:46:15 +0200 Subject: [PATCH 24/94] jrl-cmakemodules: 0-unstable-2025-05-04 -> 1.1.0 --- pkgs/by-name/jr/jrl-cmakemodules/package.nix | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/jr/jrl-cmakemodules/package.nix b/pkgs/by-name/jr/jrl-cmakemodules/package.nix index caf1828b090c..f8858ef14c3d 100644 --- a/pkgs/by-name/jr/jrl-cmakemodules/package.nix +++ b/pkgs/by-name/jr/jrl-cmakemodules/package.nix @@ -2,27 +2,31 @@ lib, stdenv, fetchFromGitHub, + nix-update-script, cmake, }: -stdenv.mkDerivation { +stdenv.mkDerivation (finalAttrs: { pname = "jrl-cmakemodules"; - version = "0-unstable-2025-05-04"; + version = "1.1.0"; src = fetchFromGitHub { owner = "jrl-umi3218"; repo = "jrl-cmakemodules"; - rev = "2dd858f5a71d8224f178fb3dc0bcd95256ba10e7"; - hash = "sha256-Iq9IuhEJBmDd14FhQ3wb94AoJDUjJ1h1D3qCdQYCnUc="; + tag = "v${finalAttrs.version}"; + hash = "sha256-WQiAAexshQ4zgaBNo/CD91XV+PAeoPZatmehSA14aPM="; }; nativeBuildInputs = [ cmake ]; + passthru.updateScript = nix-update-script { }; + meta = { description = "CMake utility toolbox"; homepage = "https://github.com/jrl-umi3218/jrl-cmakemodules"; + changelog = "https://github.com/jrl-umi3218/jrl-cmakemodules/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.lgpl3Plus; maintainers = [ lib.maintainers.nim65s ]; platforms = lib.platforms.all; }; -} +}) From 8d70225c8885f1c5f6234b26d303edf23a5e7eca Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Tue, 7 Oct 2025 15:07:45 +0200 Subject: [PATCH 25/94] jrl-cmakemodules: fix permissions of installed scripts --- pkgs/by-name/jr/jrl-cmakemodules/package.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkgs/by-name/jr/jrl-cmakemodules/package.nix b/pkgs/by-name/jr/jrl-cmakemodules/package.nix index f8858ef14c3d..b3ba427511e6 100644 --- a/pkgs/by-name/jr/jrl-cmakemodules/package.nix +++ b/pkgs/by-name/jr/jrl-cmakemodules/package.nix @@ -2,6 +2,7 @@ lib, stdenv, fetchFromGitHub, + fetchpatch, nix-update-script, cmake, }: @@ -17,6 +18,15 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-WQiAAexshQ4zgaBNo/CD91XV+PAeoPZatmehSA14aPM="; }; + patches = [ + # ref. https://github.com/jrl-umi3218/jrl-cmakemodules/pull/783 + (fetchpatch { + name = "fix-permissions.patch"; + url = "https://github.com/jrl-umi3218/jrl-cmakemodules/commit/defed70c8a7c5e4bd5b26006bef26e3fb22c3b26.patch"; + hash = "sha256-muO6DwQhNPCv6DPmnHnEHjsh/FSj0ljgNCb+ZowLRaY="; + }) + ]; + nativeBuildInputs = [ cmake ]; passthru.updateScript = nix-update-script { }; From 6edce88f40dda051371f63101eb8ed3ff472e4bf Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 29 Sep 2025 20:43:54 +0000 Subject: [PATCH 26/94] coal: 3.0.1 -> 3.0.2 --- pkgs/by-name/co/coal/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/co/coal/package.nix b/pkgs/by-name/co/coal/package.nix index 22c9d456f0c1..a02726d89596 100644 --- a/pkgs/by-name/co/coal/package.nix +++ b/pkgs/by-name/co/coal/package.nix @@ -17,13 +17,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "coal"; - version = "3.0.1"; + version = "3.0.2"; src = fetchFromGitHub { owner = "coal-library"; repo = "coal"; tag = "v${finalAttrs.version}"; - hash = "sha256-2X1chL4tYQXo50W/C5z+IVA1DGPcPdA378lh+7Bs2OE="; + hash = "sha256-7Ww1vAzKaCccBpBQU1hzI7Jk+oXw73zhnH594Xn9gbw="; }; strictDeps = true; From c75703a51a18d78e205e3413fc9886d6895f6d86 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 29 Sep 2025 20:32:16 +0000 Subject: [PATCH 27/94] example-robot-data: 4.3.0 -> 4.4.0 --- pkgs/by-name/ex/example-robot-data/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ex/example-robot-data/package.nix b/pkgs/by-name/ex/example-robot-data/package.nix index 20a2b2366b8f..ffe2af1be919 100644 --- a/pkgs/by-name/ex/example-robot-data/package.nix +++ b/pkgs/by-name/ex/example-robot-data/package.nix @@ -12,13 +12,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "example-robot-data"; - version = "4.3.0"; + version = "4.4.0"; src = fetchFromGitHub { owner = "Gepetto"; repo = "example-robot-data"; tag = "v${finalAttrs.version}"; - hash = "sha256-i5YU5lcbB3gm8/YrRRiE2NDcLEq7+eF7GtIrJ1DF1cU="; + hash = "sha256-HnI1EaTSqk7mbihwFTgnMxgPZxMSYnAwaCLEXS3LUbE="; }; outputs = [ From a67f291c259d56284a9199a54c20868f47230a96 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 18 Sep 2025 12:50:52 +0000 Subject: [PATCH 28/94] pinocchio: 3.7.0 -> 3.8.0 --- pkgs/by-name/pi/pinocchio/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/pi/pinocchio/package.nix b/pkgs/by-name/pi/pinocchio/package.nix index 3d58ce177cd8..366f17d77374 100644 --- a/pkgs/by-name/pi/pinocchio/package.nix +++ b/pkgs/by-name/pi/pinocchio/package.nix @@ -21,13 +21,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "pinocchio"; - version = "3.7.0"; + version = "3.8.0"; src = fetchFromGitHub { owner = "stack-of-tasks"; repo = "pinocchio"; rev = "v${finalAttrs.version}"; - hash = "sha256-MykHbHSXY/eJ1+8v0hptiXeVmglU9/wImimiuByw0tE="; + hash = "sha256-2oMP653fJ7Msk+IB8whRk2L8xkAmRdDeMLPJyyD99OQ="; }; outputs = [ From a68a3996b39b84cd05a09c70ae03570c5312e31f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 7 Oct 2025 01:39:43 +0000 Subject: [PATCH 29/94] ndcurves: 2.0.0 -> 2.1.0 --- pkgs/by-name/nd/ndcurves/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/nd/ndcurves/package.nix b/pkgs/by-name/nd/ndcurves/package.nix index 1e796003d29c..ba6732ab08e6 100644 --- a/pkgs/by-name/nd/ndcurves/package.nix +++ b/pkgs/by-name/nd/ndcurves/package.nix @@ -13,13 +13,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "ndcurves"; - version = "2.0.0"; + version = "2.1.0"; src = fetchFromGitHub { owner = "loco-3d"; repo = "ndcurves"; rev = "v${finalAttrs.version}"; - hash = "sha256-dDH2XpnlBlhG5Q8N9Aljxvf/K9jFuiAx0lyBIcXNOZE="; + hash = "sha256-VHxGm6fzoS51PtTj/qeZumz58ZHtxy28ihbzbnoHvHg="; }; outputs = [ From 52ec1f4635724ba00cf1bf641381f8c7a4d54746 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 29 Sep 2025 18:48:02 +0000 Subject: [PATCH 30/94] tsid: 1.8.0 -> 1.9.0 --- pkgs/by-name/ts/tsid/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ts/tsid/package.nix b/pkgs/by-name/ts/tsid/package.nix index bdc1bae1acd9..fc7457be1e35 100644 --- a/pkgs/by-name/ts/tsid/package.nix +++ b/pkgs/by-name/ts/tsid/package.nix @@ -15,13 +15,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "tsid"; - version = "1.8.0"; + version = "1.9.0"; src = fetchFromGitHub { owner = "stack-of-tasks"; repo = "tsid"; rev = "v${finalAttrs.version}"; - hash = "sha256-SS6JhU4fuZtTzv/EY31ixwwLOzmO/dN3H5HEMh/URTA="; + hash = "sha256-enSYneV/Av7lF8ADdLqU1Wj2z8/ePocgecFtOBXS0EY="; }; cmakeFlags = [ From 271a66406884bf1f2b2f270f553fb0a5c7560100 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 3 Oct 2025 14:55:52 +0000 Subject: [PATCH 31/94] crocoddyl: 3.0.1 -> 3.1.0 --- pkgs/by-name/cr/crocoddyl/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/cr/crocoddyl/package.nix b/pkgs/by-name/cr/crocoddyl/package.nix index 4962baa7287b..98e3d79b12e3 100644 --- a/pkgs/by-name/cr/crocoddyl/package.nix +++ b/pkgs/by-name/cr/crocoddyl/package.nix @@ -16,13 +16,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "crocoddyl"; - version = "3.0.1"; + version = "3.1.0"; src = fetchFromGitHub { owner = "loco-3d"; repo = "crocoddyl"; tag = "v${finalAttrs.version}"; - hash = "sha256-eUH9fMhuIUp5kuDKNo4B8iJ3JlMIqv7wX6meOpyPTJk="; + hash = "sha256-m7UiCa8ydjsAIhsFiShTi3/JaKgq2TCQ1XYAMyTNg1U="; }; outputs = [ From 8a09ddc4e2301883ee64cbe48b0b6f8b87c5a41c Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Tue, 14 Oct 2025 19:26:51 +0200 Subject: [PATCH 32/94] crocoddyl: add missing include --- pkgs/by-name/cr/crocoddyl/package.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkgs/by-name/cr/crocoddyl/package.nix b/pkgs/by-name/cr/crocoddyl/package.nix index 98e3d79b12e3..ccc05b0297f1 100644 --- a/pkgs/by-name/cr/crocoddyl/package.nix +++ b/pkgs/by-name/cr/crocoddyl/package.nix @@ -4,6 +4,7 @@ doxygen, example-robot-data, fetchFromGitHub, + fetchpatch, ipopt, lapack, lib, @@ -25,6 +26,15 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-m7UiCa8ydjsAIhsFiShTi3/JaKgq2TCQ1XYAMyTNg1U="; }; + patches = [ + # ref. https://github.com/loco-3d/crocoddyl/pull/1440 merged upstream + (fetchpatch { + name = "add-missing-include.patch"; + url = "https://github.com/loco-3d/crocoddyl/commit/6994bea7bb3ae6027f5b611ef1635768538150fd.patch"; + hash = "sha256-XbQKRWpWm5Rk4figoA2swId4Pz2xKDpU4NFP46p8WO0="; + }) + ]; + outputs = [ "out" "doc" From c57655b6a4b0c591f14b292d6ed7c3488d3ec9cc Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Wed, 15 Oct 2025 16:05:55 +0200 Subject: [PATCH 33/94] aligator: 0.15.0 -> 0.16.0 Diff: https://github.com/Simple-Robotics/aligator/compare/v0.15.0...v0.16.0 Changelog: https://github.com/Simple-Robotics/aligator/blob/v0.16.0/CHANGELOG.md --- pkgs/by-name/al/aligator/package.nix | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/al/aligator/package.nix b/pkgs/by-name/al/aligator/package.nix index 9b4057e58267..5e09bc3f847d 100644 --- a/pkgs/by-name/al/aligator/package.nix +++ b/pkgs/by-name/al/aligator/package.nix @@ -23,18 +23,19 @@ pinocchio, # checkInputs + catch2_3, gbenchmark, }: stdenv.mkDerivation (finalAttrs: { pname = "aligator"; - version = "0.15.0"; + version = "0.16.0"; src = fetchFromGitHub { owner = "Simple-Robotics"; repo = "aligator"; tag = "v${finalAttrs.version}"; - hash = "sha256-x9vOj5Dy2SaQOLBCM13wZ/4SxgBz+99K/UxJqhKTg3c="; + hash = "sha256-OyCJa2iTkCxVLooSKdVgBd0y7rHObo4vFcc56t48TSY="; }; outputs = [ @@ -73,11 +74,8 @@ stdenv.mkDerivation (finalAttrs: { pinocchio ]; checkInputs = [ + catch2_3 gbenchmark - ] - ++ lib.optionals pythonSupport [ - python3Packages.matplotlib - python3Packages.pytest ]; cmakeFlags = [ From 9157d74c00cced82dca4fa0524f00dca745b421b Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Wed, 24 Sep 2025 23:31:31 +0200 Subject: [PATCH 34/94] proxsuite: update for jrl-cmakemodules v1 --- pkgs/by-name/pr/proxsuite/package.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkgs/by-name/pr/proxsuite/package.nix b/pkgs/by-name/pr/proxsuite/package.nix index d1e5dca8dfce..fc56b8ef0e5d 100644 --- a/pkgs/by-name/pr/proxsuite/package.nix +++ b/pkgs/by-name/pr/proxsuite/package.nix @@ -36,6 +36,13 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-1+a5tFOlEwzhGZtll35EMFceD0iUOOQCbwJd9NcFDlk="; }; + # ref. https://github.com/Simple-Robotics/proxsuite/pull/408 merged upstream + postPatch = '' + substituteInPlace CMakeLists.txt --replace-fail \ + "cmake_minimum_required(VERSION 3.10)" \ + "cmake_minimum_required(VERSION 3.22)" + ''; + outputs = [ "doc" "out" From 3b0f4e48b260cee51bb6969587ae3fe39e1bfed9 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Thu, 25 Sep 2025 02:24:49 +0200 Subject: [PATCH 35/94] proxsuite-nlp: drop project is archived upstream: > This repository is archived. Development on nonlinear solvers for control (on Lie groups for robotics) continues on the aligator repository. and has a dumb config error. (yes, I'm part of the wrong decisions that lead to this dumb config error. Sorry for that.) --- pkgs/by-name/pr/proxsuite-nlp/package.nix | 79 ----------------------- pkgs/top-level/python-packages.nix | 7 -- 2 files changed, 86 deletions(-) delete mode 100644 pkgs/by-name/pr/proxsuite-nlp/package.nix diff --git a/pkgs/by-name/pr/proxsuite-nlp/package.nix b/pkgs/by-name/pr/proxsuite-nlp/package.nix deleted file mode 100644 index 8ec4d08628f0..000000000000 --- a/pkgs/by-name/pr/proxsuite-nlp/package.nix +++ /dev/null @@ -1,79 +0,0 @@ -{ - cmake, - doxygen, - eigenrand, - example-robot-data, - fetchFromGitHub, - fmt, - fontconfig, - graphviz, - lib, - stdenv, - pinocchio, - pkg-config, - proxsuite, - python3Packages, - pythonSupport ? false, -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "proxsuite-nlp"; - version = "0.11.0"; - - src = fetchFromGitHub { - owner = "Simple-Robotics"; - repo = "proxsuite-nlp"; - rev = "v${finalAttrs.version}"; - hash = "sha256-ae8o0R+79qetAsc/KmvtBSVfH9695Cg4bcDBAEzKr6A="; - }; - - outputs = [ - "out" - "doc" - ]; - - nativeBuildInputs = [ - cmake - doxygen - graphviz - pkg-config - ] - ++ lib.optional pythonSupport python3Packages.pythonImportsCheckHook; - checkInputs = [ eigenrand ] ++ lib.optional pythonSupport python3Packages.pytest; - propagatedBuildInputs = [ - example-robot-data - fmt - ] - ++ lib.optionals pythonSupport [ - python3Packages.pinocchio - python3Packages.proxsuite - ] - ++ lib.optionals (!pythonSupport) [ - pinocchio - proxsuite - ]; - - cmakeFlags = [ - (lib.cmakeBool "BUILD_PYTHON_INTERFACE" pythonSupport) - (lib.cmakeBool "BUILD_WITH_PINOCCHIO_SUPPORT" true) - (lib.cmakeBool "BUILD_WITH_PROXSUITE_SUPPORT" true) - ]; - - # Fontconfig error: Cannot load default config file: No such file: (null) - env.FONTCONFIG_FILE = "${fontconfig.out}/etc/fonts/fonts.conf"; - - # Fontconfig error: No writable cache directories - preBuild = "export XDG_CACHE_HOME=$(mktemp -d)"; - - doCheck = true; - pythonImportsCheck = [ "proxsuite_nlp" ]; - - meta = { - description = "Primal-dual augmented Lagrangian solver for nonlinear programming on manifolds"; - homepage = "https://github.com/Simple-Robotics/proxsuite-nlp"; - changelog = "https://github.com/Simple-Robotics/proxsuite-nlp/blob/v${finalAttrs.version}/CHANGELOG.md"; - license = lib.licenses.bsd2; - maintainers = with lib.maintainers; [ nim65s ]; - platforms = lib.platforms.unix; - }; -}) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 8eb2ed8fda8a..f5db5c011203 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -12304,13 +12304,6 @@ self: super: with self; { } ); - proxsuite-nlp = toPythonModule ( - pkgs.proxsuite-nlp.override { - pythonSupport = true; - python3Packages = self; - } - ); - proxy-db = callPackage ../development/python-modules/proxy-db { }; proxy-py = callPackage ../development/python-modules/proxy-py { }; From 42d1ec4afbf3e69b35f9b77d5163e1ba53f2ca3e Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Wed, 24 Sep 2025 19:04:53 +0200 Subject: [PATCH 36/94] python3Packages.eigenpy: clean --- .../development/python-modules/eigenpy/default.nix | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/pkgs/development/python-modules/eigenpy/default.nix b/pkgs/development/python-modules/eigenpy/default.nix index 6f74e193cfb3..f675729ef502 100644 --- a/pkgs/development/python-modules/eigenpy/default.nix +++ b/pkgs/development/python-modules/eigenpy/default.nix @@ -1,14 +1,16 @@ { lib, + buildPythonPackage, fetchFromGitHub, - + writableTmpDirAsHomeHook, fontconfig, # nativeBuildInputs cmake, doxygen, graphviz, + pkg-config, scipy, # buildInputs @@ -18,7 +20,6 @@ eigen, jrl-cmakemodules, numpy, - }: buildPythonPackage rec { @@ -47,9 +48,6 @@ buildPythonPackage rec { strictDeps = true; - # Fontconfig error: No writable cache directories - preBuild = "export XDG_CACHE_HOME=$(mktemp -d)"; - # Fontconfig error: Cannot load default config file: No such file: (null) env.FONTCONFIG_FILE = "${fontconfig.out}/etc/fonts/fonts.conf"; @@ -57,7 +55,9 @@ buildPythonPackage rec { cmake doxygen graphviz + pkg-config scipy + writableTmpDirAsHomeHook ]; buildInputs = [ boost ]; @@ -68,7 +68,9 @@ buildPythonPackage rec { numpy ]; - preInstallCheck = "make test"; + preInstallCheck = '' + make test + ''; pythonImportsCheck = [ "eigenpy" ]; From 1870b234c518361970fb0dc10102780abab6dd2f Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Wed, 24 Sep 2025 18:53:29 +0200 Subject: [PATCH 37/94] python3Packages.coal: depend on pkgs.coal instead of rebuild, use the new BUILD_STANDALONE_PYTHON_INTERFACE feature. --- pkgs/by-name/co/coal/package.nix | 20 ++------- .../python-modules/coal/default.nix | 44 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 7 +-- 3 files changed, 48 insertions(+), 23 deletions(-) create mode 100644 pkgs/development/python-modules/coal/default.nix diff --git a/pkgs/by-name/co/coal/package.nix b/pkgs/by-name/co/coal/package.nix index a02726d89596..c06b312e5ef9 100644 --- a/pkgs/by-name/co/coal/package.nix +++ b/pkgs/by-name/co/coal/package.nix @@ -9,9 +9,8 @@ jrl-cmakemodules, assimp, octomap, + pkg-config, qhull, - pythonSupport ? false, - python3Packages, zlib, }: @@ -31,10 +30,7 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ cmake doxygen - ] - ++ lib.optionals pythonSupport [ - python3Packages.numpy - python3Packages.pythonImportsCheckHook + pkg-config ]; propagatedBuildInputs = [ @@ -43,28 +39,18 @@ stdenv.mkDerivation (finalAttrs: { octomap qhull zlib - ] - ++ lib.optionals (!pythonSupport) [ boost eigen - ] - ++ lib.optionals pythonSupport [ - python3Packages.boost - python3Packages.eigenpy ]; cmakeFlags = [ (lib.cmakeBool "COAL_BACKWARD_COMPATIBILITY_WITH_HPP_FCL" true) (lib.cmakeBool "COAL_HAS_QHULL" true) (lib.cmakeBool "INSTALL_DOCUMENTATION" true) - (lib.cmakeBool "BUILD_PYTHON_INTERFACE" pythonSupport) + (lib.cmakeBool "BUILD_PYTHON_INTERFACE" false) ]; doCheck = true; - pythonImportsCheck = [ - "coal" - "hppfcl" - ]; outputs = [ "dev" diff --git a/pkgs/development/python-modules/coal/default.nix b/pkgs/development/python-modules/coal/default.nix new file mode 100644 index 000000000000..773de813e0da --- /dev/null +++ b/pkgs/development/python-modules/coal/default.nix @@ -0,0 +1,44 @@ +{ + lib, + + toPythonModule, + pythonImportsCheckHook, + + coal, + + boost, + eigenpy, + pylatexenc, + numpy, +}: +toPythonModule ( + coal.overrideAttrs (super: { + pname = "py-${super.pname}"; + + cmakeFlags = super.cmakeFlags ++ [ + (lib.cmakeBool "BUILD_PYTHON_INTERFACE" true) + (lib.cmakeBool "BUILD_STANDALONE_PYTHON_INTERFACE" true) + ]; + + # those are used by CMake at configure/build time + nativeBuildInputs = super.nativeBuildInputs ++ [ + numpy + pylatexenc + ]; + + propagatedBuildInputs = super.propagatedBuildInputs ++ [ + boost + coal + eigenpy + ]; + + nativeCheckInputs = [ + pythonImportsCheckHook + ]; + + pythonImportsCheck = [ + "coal" + "hppfcl" + ]; + }) +) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index f5db5c011203..d2326c4fc879 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -2774,12 +2774,7 @@ self: super: with self; { co2signal = callPackage ../development/python-modules/co2signal { }; - coal = toPythonModule ( - pkgs.coal.override { - pythonSupport = true; - python3Packages = self; - } - ); + coal = callPackage ../development/python-modules/coal { inherit (pkgs) coal;}; coapthon3 = callPackage ../development/python-modules/coapthon3 { }; From 42d63426798833fee1c7c67dabdf54cc163dd371 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Wed, 24 Sep 2025 21:16:37 +0200 Subject: [PATCH 38/94] python3Packages.pinocchio: depend on pkgs.pinocchio instead of rebuild, use the new BUILD_STANDALONE_PYTHON_INTERFACE feature. --- pkgs/by-name/pi/pinocchio/package.nix | 63 ++++++++----------- .../python-modules/pinocchio/default.nix | 45 +++++++++++++ pkgs/top-level/python-packages.nix | 9 +-- 3 files changed, 72 insertions(+), 45 deletions(-) create mode 100644 pkgs/development/python-modules/pinocchio/default.nix diff --git a/pkgs/by-name/pi/pinocchio/package.nix b/pkgs/by-name/pi/pinocchio/package.nix index 366f17d77374..b04e7a25491a 100644 --- a/pkgs/by-name/pi/pinocchio/package.nix +++ b/pkgs/by-name/pi/pinocchio/package.nix @@ -5,6 +5,7 @@ cmake, collisionSupport ? true, console-bridge, + ctestCheckHook, doxygen, eigen, example-robot-data, @@ -13,8 +14,6 @@ jrl-cmakemodules, lib, pkg-config, - pythonSupport ? false, - python3Packages, stdenv, urdfdom, }: @@ -35,18 +34,7 @@ stdenv.mkDerivation (finalAttrs: { "doc" ]; - # test failure, ref https://github.com/stack-of-tasks/pinocchio/issues/2277 - prePatch = lib.optionalString (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) '' - substituteInPlace unittest/algorithm/utils/CMakeLists.txt \ - --replace-fail "add_pinocchio_unit_test(force)" "" - ''; - postPatch = '' - # example-robot-data models are used in checks. - # Upstream provide them as git submodule, but we can use our own version instead. - test -d models/example-robot-data && rmdir models/example-robot-data - ln -s ${example-robot-data.src} models/example-robot-data - # allow package:// uri use in examples export ROS_PACKAGE_PATH=${example-robot-data}/share @@ -60,47 +48,46 @@ stdenv.mkDerivation (finalAttrs: { cmake doxygen pkg-config - ] - ++ lib.optionals pythonSupport [ - python3Packages.python - python3Packages.pythonImportsCheckHook ]; propagatedBuildInputs = [ + boost + coal console-bridge + eigen jrl-cmakemodules urdfdom ] - ++ lib.optionals (!pythonSupport) [ - boost - eigen - ] - ++ lib.optionals (!pythonSupport && collisionSupport) [ coal ] - ++ lib.optionals pythonSupport [ - python3Packages.boost - python3Packages.eigenpy - ] - ++ lib.optionals (pythonSupport && collisionSupport) [ python3Packages.coal ] - ++ lib.optionals (!pythonSupport && casadiSupport) [ casadi ] - ++ lib.optionals (pythonSupport && casadiSupport) [ python3Packages.casadi ]; + ++ lib.optionals collisionSupport [ coal ] + ++ lib.optionals casadiSupport [ casadi ]; - checkInputs = lib.optionals (pythonSupport && casadiSupport) [ python3Packages.matplotlib ]; + nativeCheckInputs = [ + ctestCheckHook + ]; + + checkInputs = [ + example-robot-data + ]; + + disabledTests = + lib.optionals stdenv.hostPlatform.isDarwin [ + # Disable test that fails on darwin + # https://github.com/stack-of-tasks/pinocchio/blob/42306ed023b301aafef91e2e76cb070c5e9c3f7d/flake.nix#L24C1-L27C17 + "pinocchio-example-py-casadi-quadrotor-ocp" + ] + ++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) [ + # test failure, ref https://github.com/stack-of-tasks/pinocchio/issues/2277 + "test-cpp-algorithm-utils-force" + ]; cmakeFlags = [ - (lib.cmakeBool "BUILD_PYTHON_INTERFACE" pythonSupport) - (lib.cmakeBool "BUILD_WITH_LIBPYTHON" pythonSupport) + (lib.cmakeBool "BUILD_PYTHON_INTERFACE" false) (lib.cmakeBool "BUILD_WITH_CASADI_SUPPORT" casadiSupport) (lib.cmakeBool "BUILD_WITH_COLLISION_SUPPORT" collisionSupport) (lib.cmakeBool "INSTALL_DOCUMENTATION" true) - # Disable test that fails on darwin - # https://github.com/stack-of-tasks/pinocchio/blob/42306ed023b301aafef91e2e76cb070c5e9c3f7d/flake.nix#L24C1-L27C17 - ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ - (lib.cmakeFeature "CMAKE_CTEST_ARGUMENTS" "--exclude-regex;pinocchio-example-py-casadi-quadrotor-ocp") ]; doCheck = true; - pythonImportsCheck = [ "pinocchio" ]; meta = { description = "Fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives"; diff --git a/pkgs/development/python-modules/pinocchio/default.nix b/pkgs/development/python-modules/pinocchio/default.nix new file mode 100644 index 000000000000..d2f722d9ee5c --- /dev/null +++ b/pkgs/development/python-modules/pinocchio/default.nix @@ -0,0 +1,45 @@ +{ + lib, + + toPythonModule, + pythonImportsCheckHook, + + pinocchio, + + coal, + casadi, + matplotlib, + python, +}: +toPythonModule ( + pinocchio.overrideAttrs (super: { + pname = "py-${super.pname}"; + + cmakeFlags = super.cmakeFlags ++ [ + (lib.cmakeBool "BUILD_PYTHON_INTERFACE" true) + (lib.cmakeBool "BUILD_STANDALONE_PYTHON_INTERFACE" true) + ]; + + nativeBuildInputs = super.nativeBuildInputs ++ [ + python + ]; + + propagatedBuildInputs = super.propagatedBuildInputs ++ [ + casadi + coal + pinocchio + ]; + + checkInputs = super.checkInputs ++ [ + matplotlib + ]; + + nativeCheckInputs = super.nativeCheckInputs ++ [ + pythonImportsCheckHook + ]; + + pythonImportsCheck = [ + "pinocchio" + ]; + }) +) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index d2326c4fc879..3b72dfba853f 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -2774,7 +2774,7 @@ self: super: with self; { co2signal = callPackage ../development/python-modules/co2signal { }; - coal = callPackage ../development/python-modules/coal { inherit (pkgs) coal;}; + coal = callPackage ../development/python-modules/coal { inherit (pkgs) coal; }; coapthon3 = callPackage ../development/python-modules/coapthon3 { }; @@ -11835,12 +11835,7 @@ self: super: with self; { ping3 = callPackage ../development/python-modules/ping3 { }; - pinocchio = toPythonModule ( - pkgs.pinocchio.override { - pythonSupport = true; - python3Packages = self; - } - ); + pinocchio = callPackage ../development/python-modules/pinocchio { inherit (pkgs) pinocchio; }; pins = callPackage ../development/python-modules/pins { }; From 603a9133f73859586a6ec86421d7ccffbafbc985 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Sat, 27 Sep 2025 10:43:01 +0200 Subject: [PATCH 39/94] python3Packages.pinocchio: fix viser example --- pkgs/by-name/pi/pinocchio/package.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkgs/by-name/pi/pinocchio/package.nix b/pkgs/by-name/pi/pinocchio/package.nix index b04e7a25491a..54e35f5775be 100644 --- a/pkgs/by-name/pi/pinocchio/package.nix +++ b/pkgs/by-name/pi/pinocchio/package.nix @@ -10,6 +10,7 @@ eigen, example-robot-data, fetchFromGitHub, + fetchpatch, coal, jrl-cmakemodules, lib, @@ -34,6 +35,15 @@ stdenv.mkDerivation (finalAttrs: { "doc" ]; + patches = [ + # ref. https://github.com/stack-of-tasks/pinocchio/pull/2771 + (fetchpatch { + name = "fix-viser-path.patch"; + url = "https://github.com/stack-of-tasks/pinocchio/commit/36a04bddb6980a7bcd28ebcc55d4e442f7920d87.patch"; + hash = "sha256-9oENiMmRqJLU4ZiyGojm7suqdwTDGfk56aS2kcZiGaI="; + }) + ]; + postPatch = '' # allow package:// uri use in examples export ROS_PACKAGE_PATH=${example-robot-data}/share From da6f8bee2ac7ae1a1b016f4a4562c1fb782a3038 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Wed, 24 Sep 2025 23:31:06 +0200 Subject: [PATCH 40/94] python3Packages.example-robot-data: depend on pkgs.example-robot-data instead of rebuild, use the new BUILD_STANDALONE_PYTHON_INTERFACE feature. this also allow to break the circular depency and use: example-robot-data -> pinocchio -> python3Packages.pinocchio -> python3Packages.example-robot-data --- .../by-name/ex/example-robot-data/package.nix | 16 +------ .../example-robot-data/default.nix | 43 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 9 ++-- 3 files changed, 48 insertions(+), 20 deletions(-) create mode 100644 pkgs/development/python-modules/example-robot-data/default.nix diff --git a/pkgs/by-name/ex/example-robot-data/package.nix b/pkgs/by-name/ex/example-robot-data/package.nix index ffe2af1be919..321503b0cafe 100644 --- a/pkgs/by-name/ex/example-robot-data/package.nix +++ b/pkgs/by-name/ex/example-robot-data/package.nix @@ -5,8 +5,6 @@ lib, jrl-cmakemodules, pkg-config, - pythonSupport ? false, - python3Packages, stdenv, }: @@ -32,25 +30,15 @@ stdenv.mkDerivation (finalAttrs: { cmake doxygen pkg-config - ] - ++ lib.optionals pythonSupport [ - python3Packages.python - python3Packages.pythonImportsCheckHook ]; propagatedBuildInputs = [ jrl-cmakemodules - ] - ++ lib.optionals pythonSupport [ python3Packages.pinocchio ]; + ]; - cmakeFlags = [ (lib.cmakeBool "BUILD_PYTHON_INTERFACE" pythonSupport) ]; + cmakeFlags = [ (lib.cmakeBool "BUILD_PYTHON_INTERFACE" false) ]; doCheck = true; - # The package expect to find an `example-robot-data/robots` folder somewhere - # either in install prefix or in the sources - # where it can find the meshes for unit tests - preCheck = "ln -s source ../../example-robot-data"; - pythonImportsCheck = [ "example_robot_data" ]; meta = with lib; { description = "Set of robot URDFs for benchmarking and developed examples"; diff --git a/pkgs/development/python-modules/example-robot-data/default.nix b/pkgs/development/python-modules/example-robot-data/default.nix new file mode 100644 index 000000000000..3a9bfc18b39d --- /dev/null +++ b/pkgs/development/python-modules/example-robot-data/default.nix @@ -0,0 +1,43 @@ +{ + lib, + + toPythonModule, + pythonImportsCheckHook, + + example-robot-data, + + python, + pinocchio, +}: +toPythonModule ( + example-robot-data.overrideAttrs (super: { + pname = "py-${super.pname}"; + + cmakeFlags = super.cmakeFlags ++ [ + (lib.cmakeBool "BUILD_PYTHON_INTERFACE" true) + (lib.cmakeBool "BUILD_STANDALONE_PYTHON_INTERFACE" true) + ]; + + nativeBuildInputs = super.nativeBuildInputs ++ [ + python + ]; + + propagatedBuildInputs = super.propagatedBuildInputs ++ [ + example-robot-data + pinocchio + ]; + + nativeCheckInputs = [ + pythonImportsCheckHook + ]; + + # The package expect to find an `example-robot-data/robots` folder somewhere + # either in install prefix or in the sources + # where it can find the meshes for unit tests + preCheck = '' + ln -s source ../../example-robot-data + ''; + + pythonImportsCheck = [ "example_robot_data" ]; + }) +) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 3b72dfba853f..39ee4ccf6217 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4898,12 +4898,9 @@ self: super: with self; { ewmhlib = callPackage ../development/python-modules/ewmhlib { }; - example-robot-data = toPythonModule ( - pkgs.example-robot-data.override { - pythonSupport = true; - python3Packages = self; - } - ); + example-robot-data = callPackage ../development/python-modules/example-robot-data { + inherit (pkgs) example-robot-data; + }; exceptiongroup = callPackage ../development/python-modules/exceptiongroup { }; From 71bdd9a09f4f6ddab2417d6d31f237a5bc2600c4 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Wed, 24 Sep 2025 23:37:04 +0200 Subject: [PATCH 41/94] python3Packages.crocoddyl: depend on pkgs.crocoddyl instead of rebuild, use the new BUILD_STANDALONE_PYTHON_INTERFACE feature. --- pkgs/by-name/cr/crocoddyl/package.nix | 19 +------ .../python-modules/crocoddyl/default.nix | 54 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 7 +-- 3 files changed, 57 insertions(+), 23 deletions(-) create mode 100644 pkgs/development/python-modules/crocoddyl/default.nix diff --git a/pkgs/by-name/cr/crocoddyl/package.nix b/pkgs/by-name/cr/crocoddyl/package.nix index ccc05b0297f1..87aa4b589409 100644 --- a/pkgs/by-name/cr/crocoddyl/package.nix +++ b/pkgs/by-name/cr/crocoddyl/package.nix @@ -10,8 +10,6 @@ lib, pinocchio, pkg-config, - pythonSupport ? false, - python3Packages, stdenv, }: @@ -46,31 +44,20 @@ stdenv.mkDerivation (finalAttrs: { cmake doxygen pkg-config - ] - ++ lib.optionals pythonSupport [ - python3Packages.python - python3Packages.pythonImportsCheckHook ]; propagatedBuildInputs = [ blas ipopt lapack - ] - ++ lib.optionals (!pythonSupport) [ example-robot-data pinocchio - ] - ++ lib.optionals pythonSupport [ - python3Packages.example-robot-data - python3Packages.pinocchio - python3Packages.scipy ]; cmakeFlags = [ (lib.cmakeBool "INSTALL_DOCUMENTATION" true) - (lib.cmakeBool "BUILD_EXAMPLES" pythonSupport) - (lib.cmakeBool "BUILD_PYTHON_INTERFACE" pythonSupport) + (lib.cmakeBool "BUILD_EXAMPLES" false) + (lib.cmakeBool "BUILD_PYTHON_INTERFACE" false) ]; prePatch = '' @@ -81,8 +68,6 @@ stdenv.mkDerivation (finalAttrs: { ''; doCheck = true; - pythonImportsCheck = [ "crocoddyl" ]; - checkInputs = lib.optionals pythonSupport [ python3Packages.scipy ]; meta = with lib; { description = "Crocoddyl optimal control library"; diff --git a/pkgs/development/python-modules/crocoddyl/default.nix b/pkgs/development/python-modules/crocoddyl/default.nix new file mode 100644 index 000000000000..5e5e449899f0 --- /dev/null +++ b/pkgs/development/python-modules/crocoddyl/default.nix @@ -0,0 +1,54 @@ +{ + lib, + + toPythonModule, + pythonImportsCheckHook, + + crocoddyl, + + example-robot-data, + ffmpeg, + matplotlib, + nbconvert, + nbformat, + ipykernel, + python, + scipy, +}: +toPythonModule ( + crocoddyl.overrideAttrs (super: { + pname = "py-${super.pname}"; + + cmakeFlags = super.cmakeFlags ++ [ + (lib.cmakeBool "BUILD_PYTHON_INTERFACE" true) + (lib.cmakeBool "BUILD_STANDALONE_PYTHON_INTERFACE" true) + ]; + + # those are used by CMake at configure/build time + nativeBuildInputs = super.nativeBuildInputs ++ [ + python + ]; + + propagatedBuildInputs = super.propagatedBuildInputs ++ [ + crocoddyl + example-robot-data + ]; + + nativeCheckInputs = [ + ffmpeg + pythonImportsCheckHook + ]; + + checkInputs = [ + matplotlib + nbconvert + nbformat + ipykernel + scipy + ]; + + pythonImportsCheck = [ + "crocoddyl" + ]; + }) +) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 39ee4ccf6217..c77ad5075b6e 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -3108,12 +3108,7 @@ self: super: with self; { crochet = callPackage ../development/python-modules/crochet { }; - crocoddyl = toPythonModule ( - pkgs.crocoddyl.override { - pythonSupport = true; - python3Packages = self; - } - ); + crocoddyl = callPackage ../development/python-modules/crocoddyl { inherit (pkgs) crocoddyl; }; cron-converter = callPackage ../development/python-modules/cron-converter { }; From c8b1b01d95eef1c061b44164dff94cf38ad175cd Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Thu, 25 Sep 2025 00:27:36 +0200 Subject: [PATCH 42/94] python3Packages.tsid: depend on pkgs.tsid instead of rebuild, use the new BUILD_STANDALONE_PYTHON_INTERFACE feature. --- pkgs/by-name/ts/tsid/package.nix | 14 ++----- .../python-modules/tsid/default.nix | 39 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 7 +--- 3 files changed, 43 insertions(+), 17 deletions(-) create mode 100644 pkgs/development/python-modules/tsid/default.nix diff --git a/pkgs/by-name/ts/tsid/package.nix b/pkgs/by-name/ts/tsid/package.nix index fc7457be1e35..d9d38e929fcd 100644 --- a/pkgs/by-name/ts/tsid/package.nix +++ b/pkgs/by-name/ts/tsid/package.nix @@ -9,8 +9,6 @@ pinocchio, proxsuite, stdenv, - pythonSupport ? false, - python3Packages, }: stdenv.mkDerivation (finalAttrs: { @@ -25,7 +23,7 @@ stdenv.mkDerivation (finalAttrs: { }; cmakeFlags = [ - (lib.cmakeBool "BUILD_PYTHON_INTERFACE" pythonSupport) + (lib.cmakeBool "BUILD_PYTHON_INTERFACE" false) (lib.cmakeBool "BUILD_WITH_OSQP" true) (lib.cmakeBool "BUILD_WITH_PROXQP" true) (lib.cmakeBool "INSTALL_DOCUMENTATION" true) @@ -40,22 +38,16 @@ stdenv.mkDerivation (finalAttrs: { doxygen cmake pkg-config - ] - ++ lib.optionals pythonSupport [ - python3Packages.python - python3Packages.pythonImportsCheckHook ]; propagatedBuildInputs = [ eiquadprog osqp-eigen + pinocchio proxsuite - ] - ++ lib.optional (!pythonSupport) pinocchio - ++ lib.optional pythonSupport python3Packages.pinocchio; + ]; doCheck = true; - pythonImportsCheck = [ "tsid" ]; meta = { description = "Efficient Task Space Inverse Dynamics (TSID) based on Pinocchio"; diff --git a/pkgs/development/python-modules/tsid/default.nix b/pkgs/development/python-modules/tsid/default.nix new file mode 100644 index 000000000000..3894c80d2854 --- /dev/null +++ b/pkgs/development/python-modules/tsid/default.nix @@ -0,0 +1,39 @@ +{ + lib, + + toPythonModule, + pythonImportsCheckHook, + + tsid, + + pinocchio, + python, +}: +toPythonModule ( + tsid.overrideAttrs (super: { + pname = "py-${super.pname}"; + + cmakeFlags = super.cmakeFlags ++ [ + (lib.cmakeBool "BUILD_PYTHON_INTERFACE" true) + (lib.cmakeBool "BUILD_STANDALONE_PYTHON_INTERFACE" true) + ]; + + # those are used by CMake at configure/build time + nativeBuildInputs = super.nativeBuildInputs ++ [ + python + ]; + + propagatedBuildInputs = super.propagatedBuildInputs ++ [ + pinocchio + tsid + ]; + + nativeCheckInputs = [ + pythonImportsCheckHook + ]; + + pythonImportsCheck = [ + "tsid" + ]; + }) +) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index c77ad5075b6e..7eedb93fbd2c 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -18825,12 +18825,7 @@ self: super: with self; { tsfresh = callPackage ../development/python-modules/tsfresh { }; - tsid = toPythonModule ( - pkgs.tsid.override { - pythonSupport = true; - python3Packages = self; - } - ); + tsid = callPackage ../development/python-modules/tsid { inherit (pkgs) tsid; }; tskit = callPackage ../development/python-modules/tskit { }; From 07ca2f3184712519b5668ac16d54aabf29874447 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Mon, 6 Oct 2025 15:43:16 +0200 Subject: [PATCH 43/94] python3Packages.aligator: depend on pkgs.aligator --- pkgs/by-name/al/aligator/package.nix | 25 ++------- .../python-modules/aligator/default.nix | 54 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 7 +-- 3 files changed, 60 insertions(+), 26 deletions(-) create mode 100644 pkgs/development/python-modules/aligator/default.nix diff --git a/pkgs/by-name/al/aligator/package.nix b/pkgs/by-name/al/aligator/package.nix index 5e09bc3f847d..0fdd49972d1c 100644 --- a/pkgs/by-name/al/aligator/package.nix +++ b/pkgs/by-name/al/aligator/package.nix @@ -4,8 +4,6 @@ fontconfig, llvmPackages, nix-update-script, - python3Packages, - pythonSupport ? false, stdenv, # nativeBuildInputs @@ -50,45 +48,33 @@ stdenv.mkDerivation (finalAttrs: { cmake graphviz pkg-config - ] - ++ lib.optionals pythonSupport [ - python3Packages.python - python3Packages.pythonImportsCheckHook ]; + buildInputs = [ fmt ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ llvmPackages.openmp ]; + propagatedBuildInputs = [ - suitesparse - ] - ++ lib.optionals pythonSupport [ - python3Packages.crocoddyl - python3Packages.matplotlib - python3Packages.pinocchio - ] - ++ lib.optionals (!pythonSupport) [ crocoddyl pinocchio + suitesparse ]; + checkInputs = [ catch2_3 gbenchmark ]; cmakeFlags = [ - (lib.cmakeBool "BUILD_PYTHON_INTERFACE" pythonSupport) + (lib.cmakeBool "BUILD_PYTHON_INTERFACE" false) (lib.cmakeBool "BUILD_WITH_PINOCCHIO_SUPPORT" true) (lib.cmakeBool "BUILD_CROCODDYL_COMPAT" true) (lib.cmakeBool "BUILD_WITH_OPENMP_SUPPORT" true) (lib.cmakeBool "BUILD_WITH_CHOLMOD_SUPPORT" true) (lib.cmakeBool "GENERATE_PYTHON_STUBS" false) # this need git at configure time - ] - ++ lib.optionals (stdenv.hostPlatform.isDarwin && pythonSupport) [ - # ignore one failing test for now - (lib.cmakeFeature "CMAKE_CTEST_ARGUMENTS" "--exclude-regex;'aligator-test-py-rollout|aligator-test-py-frames'") ]; # Fontconfig error: Cannot load default config file: No such file: (null) @@ -103,7 +89,6 @@ stdenv.mkDerivation (finalAttrs: { ''; doCheck = true; - pythonImportsCheck = [ "aligator" ]; passthru.updateScript = nix-update-script { }; diff --git a/pkgs/development/python-modules/aligator/default.nix b/pkgs/development/python-modules/aligator/default.nix new file mode 100644 index 000000000000..6ef954f53a0e --- /dev/null +++ b/pkgs/development/python-modules/aligator/default.nix @@ -0,0 +1,54 @@ +{ + lib, + + toPythonModule, + pythonImportsCheckHook, + stdenv, + + aligator, + + crocoddyl, + pinocchio, + python, + matplotlib, + pytest, +}: +toPythonModule ( + aligator.overrideAttrs (super: { + pname = "py-${super.pname}"; + + cmakeFlags = super.cmakeFlags ++ [ + (lib.cmakeBool "BUILD_PYTHON_INTERFACE" true) + (lib.cmakeBool "BUILD_STANDALONE_PYTHON_INTERFACE" true) + ]; + + # this is used by CMake at configure/build time + nativeBuildInputs = super.nativeBuildInputs ++ [ + python + ]; + + propagatedBuildInputs = super.propagatedBuildInputs ++ [ + aligator + crocoddyl + pinocchio + ]; + + nativeCheckInputs = [ + pythonImportsCheckHook + ]; + + checkInputs = super.checkInputs ++ [ + matplotlib + pytest + ]; + + disabledTests = lib.optionals stdenv.hostPlatform.isDarwin [ + # SIGTRAP + "aligator-test-py-rollout" + ]; + + pythonImportsCheck = [ + "aligator" + ]; + }) +) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 7eedb93fbd2c..78d92b941423 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -594,12 +594,7 @@ self: super: with self; { algebraic-data-types = callPackage ../development/python-modules/algebraic-data-types { }; - aligator = toPythonModule ( - pkgs.aligator.override { - python3Packages = self; - pythonSupport = true; - } - ); + aligator = callPackage ../development/python-modules/aligator { inherit (pkgs) aligator; }; alive-progress = callPackage ../development/python-modules/alive-progress { }; From e5179b5531da9abca731d9d962a3e6295ff176c6 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Tue, 14 Oct 2025 19:06:22 +0200 Subject: [PATCH 44/94] python3Packages.mim-solvers: depend on pkgs.mim-solvers --- pkgs/by-name/mi/mim-solvers/package.nix | 53 +++++++---------- .../python-modules/mim-solvers/default.nix | 57 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 7 +-- 3 files changed, 79 insertions(+), 38 deletions(-) create mode 100644 pkgs/development/python-modules/mim-solvers/default.nix diff --git a/pkgs/by-name/mi/mim-solvers/package.nix b/pkgs/by-name/mi/mim-solvers/package.nix index 2705a5e8f7fd..216d7376640a 100644 --- a/pkgs/by-name/mi/mim-solvers/package.nix +++ b/pkgs/by-name/mi/mim-solvers/package.nix @@ -3,12 +3,11 @@ crocoddyl, ctestCheckHook, fetchFromGitHub, + fetchpatch, lib, llvmPackages, pkg-config, proxsuite, - python3Packages, - pythonSupport ? false, stdenv, nix-update-script, }: @@ -24,49 +23,41 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-1Mqu9Hfy65HUIOVG/gJBpSMlOwDWVcH+LrR8CaWz0BE="; }; - # eigenpy is not used without python support - postPatch = lib.optionalString (!pythonSupport) '' - substituteInPlace CMakeLists.txt --replace-fail \ - "add_project_dependency(eigenpy 2.7.10 REQUIRED)" \ - "" - ''; + patches = [ + # ref. https://github.com/machines-in-motion/mim_solvers/pull/71 merged upstream + (fetchpatch { + name = "build-standalone-python-interface.patch"; + url = "https://github.com/machines-in-motion/mim_solvers/commit/796eecf05dd9165dd0795aa562ead17de4f19633.patch"; + hash = "sha256-/OiMzyDVEbpC/Dr/HcguwAdhmbQNxnIRsHAVkX68xqA="; + }) + ]; nativeBuildInputs = [ cmake pkg-config - ] - ++ lib.optional pythonSupport python3Packages.pythonImportsCheckHook; + ]; + buildInputs = lib.optional stdenv.hostPlatform.isDarwin llvmPackages.openmp; - propagatedBuildInputs = - lib.optionals pythonSupport [ - python3Packages.crocoddyl - python3Packages.osqp - python3Packages.proxsuite - python3Packages.scipy - ] - ++ lib.optionals (!pythonSupport) [ - crocoddyl - proxsuite - ]; + + propagatedBuildInputs = [ + crocoddyl + proxsuite + ]; cmakeFlags = [ - (lib.cmakeBool "BUILD_PYTHON_INTERFACE" pythonSupport) + (lib.cmakeBool "BUILD_PYTHON_INTERFACE" false) (lib.cmakeBool "BUILD_WITH_PROXSUITE" true) - ] - ++ lib.optional (stdenv.hostPlatform.isDarwin) ( - lib.cmakeFeature "CMAKE_CTEST_ARGUMENTS" "--exclude-regex;'py-test-clqr-osqp'" - ) - ++ lib.optional (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) ( - lib.cmakeFeature "CMAKE_CTEST_ARGUMENTS" "--exclude-regex;'test_solvers'" - ); + ]; nativeCheckInputs = [ ctestCheckHook ]; disabledTests = [ # Fails with osqp>=1.0.0 - # See https://github.com/machines-in-motion/mim_solvers/pull/66 + # See https://github.com/machines-in-motion/mim_solvers/pull/67 "py-test-clqr-osqp" + # need removed ActuationModelMultiCopterBase in crocoddyl 3.1.0 + "py-test-sqp-no-reg" ] ++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) [ # Several errors such as: @@ -78,8 +69,6 @@ stdenv.mkDerivation (finalAttrs: { ]; doCheck = true; - pythonImportsCheck = [ "mim_solvers" ]; - passthru.updateScript = nix-update-script { }; meta = { diff --git a/pkgs/development/python-modules/mim-solvers/default.nix b/pkgs/development/python-modules/mim-solvers/default.nix new file mode 100644 index 000000000000..ebb18af22dfd --- /dev/null +++ b/pkgs/development/python-modules/mim-solvers/default.nix @@ -0,0 +1,57 @@ +{ + lib, + + toPythonModule, + pythonImportsCheckHook, + + mim-solvers, + + # nativeBuildInputs + python, + + # propagatedBuildInputs + boost, + crocoddyl, + eigenpy, + osqp, + proxsuite, + scipy, + + # nativeCheckInputs + pytest, +}: +toPythonModule ( + mim-solvers.overrideAttrs (super: { + pname = "py-${super.pname}"; + + cmakeFlags = super.cmakeFlags ++ [ + (lib.cmakeBool "BUILD_PYTHON_INTERFACE" true) + (lib.cmakeBool "BUILD_STANDALONE_PYTHON_INTERFACE" true) + ]; + + # this is used by CMake at configure/build time + nativeBuildInputs = super.nativeBuildInputs ++ [ + python + ]; + + propagatedBuildInputs = [ + boost + crocoddyl + eigenpy + mim-solvers + osqp + proxsuite + scipy + ] + ++ super.propagatedBuildInputs; + + nativeCheckInputs = super.nativeCheckInputs ++ [ + pythonImportsCheckHook + pytest + ]; + + pythonImportsCheck = [ + "mim_solvers" + ]; + }) +) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 78d92b941423..ec08c5af59cf 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -9354,12 +9354,7 @@ self: super: with self; { millheater = callPackage ../development/python-modules/millheater { }; - mim-solvers = toPythonModule ( - pkgs.mim-solvers.override { - python3Packages = self; - pythonSupport = true; - } - ); + mim-solvers = callPackage ../development/python-modules/mim-solvers { inherit (pkgs) mim-solvers; }; minari = callPackage ../development/python-modules/minari { }; From 43f736f7babbb30da102e069e28969d5039eb7c7 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Wed, 15 Oct 2025 17:07:11 +0200 Subject: [PATCH 45/94] python3Packages.ndcurves: depend on pkgs.ndcurves --- .../python-modules/ndcurves/default.nix | 37 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 7 +--- 2 files changed, 38 insertions(+), 6 deletions(-) create mode 100644 pkgs/development/python-modules/ndcurves/default.nix diff --git a/pkgs/development/python-modules/ndcurves/default.nix b/pkgs/development/python-modules/ndcurves/default.nix new file mode 100644 index 000000000000..885cfa64a024 --- /dev/null +++ b/pkgs/development/python-modules/ndcurves/default.nix @@ -0,0 +1,37 @@ +{ + lib, + + toPythonModule, + pythonImportsCheckHook, + + ndcurves, + + boost, + pinocchio, + python, +}: +toPythonModule ( + ndcurves.overrideAttrs (super: { + pname = "py-${super.pname}"; + cmakeFlags = super.cmakeFlags ++ [ + (lib.cmakeBool "BUILD_PYTHON_INTERFACE" true) + (lib.cmakeBool "BUILD_STANDALONE_PYTHON_INTERFACE" true) + ]; + # those are used by CMake at configure/build time + nativeBuildInputs = super.nativeBuildInputs ++ [ + python + ]; + propagatedBuildInputs = [ + boost + pinocchio + ndcurves + ] + ++ super.propagatedBuildInputs; + nativeCheckInputs = [ + pythonImportsCheckHook + ]; + pythonImportsCheck = [ + "ndcurves" + ]; + }) +) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index ec08c5af59cf..81428981d112 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -10361,12 +10361,7 @@ self: super: with self; { nclib = callPackage ../development/python-modules/nclib { }; - ndcurves = toPythonModule ( - pkgs.ndcurves.override { - python3Packages = self; - pythonSupport = true; - } - ); + ndcurves = callPackage ../development/python-modules/ndcurves { inherit (pkgs) ndcurves; }; ndeflib = callPackage ../development/python-modules/ndeflib { }; From 62397c873657bfa326a45f4ec0d1c9acd76f6054 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Wed, 15 Oct 2025 20:01:50 +0200 Subject: [PATCH 46/94] mim-solvers: fix for crocoddyl 3.1.0 --- .../mi/mim-solvers/fix-croco-310.patch | 52 +++++++++++++++++++ pkgs/by-name/mi/mim-solvers/package.nix | 3 ++ 2 files changed, 55 insertions(+) create mode 100644 pkgs/by-name/mi/mim-solvers/fix-croco-310.patch diff --git a/pkgs/by-name/mi/mim-solvers/fix-croco-310.patch b/pkgs/by-name/mi/mim-solvers/fix-croco-310.patch new file mode 100644 index 000000000000..d6e39d068b7d --- /dev/null +++ b/pkgs/by-name/mi/mim-solvers/fix-croco-310.patch @@ -0,0 +1,52 @@ +From 1cb7fe38e3ec43117c646cae521eb8347145965a Mon Sep 17 00:00:00 2001 +From: Guilhem Saurel +Date: Tue, 14 Oct 2025 19:37:16 +0200 +Subject: [PATCH] fix for crocoddyl v3.1.0 explicit template instanciation + +ref. https://github.com/loco-3d/crocoddyl/pull/1367 + +Yes, that was a breaking change +--- + tests/factory/point-mass.hpp | 22 ++++++++++++++++++++++ + 1 file changed, 22 insertions(+) + +diff --git a/tests/factory/point-mass.hpp b/tests/factory/point-mass.hpp +index e82c977..c2e93af 100644 +--- a/tests/factory/point-mass.hpp ++++ b/tests/factory/point-mass.hpp +@@ -60,6 +60,17 @@ class DAMPointMass1D : public crocoddyl::DifferentialActionModelAbstract { + // Destructor + virtual ~DAMPointMass1D(); + ++ // Explicit template instanciation ++ std::shared_ptr cloneAsDouble() ++ const override { ++ return std::make_shared(*this); ++ } ++ ++ std::shared_ptr cloneAsFloat() ++ const override { ++ return std::make_shared(*this); ++ } ++ + // Cost & dynamics + void calc(const std::shared_ptr& data, + const Eigen::Ref& x, +@@ -135,6 +146,17 @@ class DAMPointMass2D : public crocoddyl::DifferentialActionModelAbstract { + // Destructor + virtual ~DAMPointMass2D(); + ++ // Explicit template instanciation ++ std::shared_ptr cloneAsDouble() ++ const override { ++ return std::make_shared(*this); ++ } ++ ++ std::shared_ptr cloneAsFloat() ++ const override { ++ return std::make_shared(*this); ++ } ++ + // Cost & dynamics + void calc(const std::shared_ptr& data, + const Eigen::Ref& x, diff --git a/pkgs/by-name/mi/mim-solvers/package.nix b/pkgs/by-name/mi/mim-solvers/package.nix index 216d7376640a..44483056d44a 100644 --- a/pkgs/by-name/mi/mim-solvers/package.nix +++ b/pkgs/by-name/mi/mim-solvers/package.nix @@ -30,6 +30,9 @@ stdenv.mkDerivation (finalAttrs: { url = "https://github.com/machines-in-motion/mim_solvers/commit/796eecf05dd9165dd0795aa562ead17de4f19633.patch"; hash = "sha256-/OiMzyDVEbpC/Dr/HcguwAdhmbQNxnIRsHAVkX68xqA="; }) + # Fix for crocoddyl 3.1.0 + # ref. https://github.com/machines-in-motion/mim_solvers/pull/72 + ./fix-croco-310.patch ]; nativeBuildInputs = [ From 3b2a552ad14f76199a1d24d7b7c29dd98262b63f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 15 Oct 2025 20:30:05 +0000 Subject: [PATCH 47/94] prom2json: 1.4.2 -> 1.5.0 --- pkgs/servers/monitoring/prometheus/prom2json.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/servers/monitoring/prometheus/prom2json.nix b/pkgs/servers/monitoring/prometheus/prom2json.nix index 72aa74ae48f4..5a5420149c4d 100644 --- a/pkgs/servers/monitoring/prometheus/prom2json.nix +++ b/pkgs/servers/monitoring/prometheus/prom2json.nix @@ -6,16 +6,16 @@ buildGoModule rec { pname = "prom2json"; - version = "1.4.2"; + version = "1.5.0"; src = fetchFromGitHub { rev = "v${version}"; owner = "prometheus"; repo = "prom2json"; - sha256 = "sha256-3A26xMXJv2MMpFoc0zKZdSLg9WCueIsKdRdyM2NsUJw="; + sha256 = "sha256-Zd3p1anHleKAkFcHEx7tgpxjTlb5OvdWXFNNyfJ63+w="; }; - vendorHash = "sha256-2XZYc6byupFTR2HCAVSL3wLYWwuzkkhqegzZRTakcgI="; + vendorHash = "sha256-PZXuhPpO02ix88RtBpsGaQxgQNVn+LW09rrN66+mCpw="; meta = with lib; { description = "Tool to scrape a Prometheus client and dump the result as JSON"; From c3a6c278fe2e624685e30c5741d7d5db658a6ec0 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 15 Oct 2025 21:56:55 +0000 Subject: [PATCH 48/94] grype: 0.100.0 -> 0.101.0 --- pkgs/by-name/gr/grype/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/gr/grype/package.nix b/pkgs/by-name/gr/grype/package.nix index 5cbf85382a4a..9debe2a11bab 100644 --- a/pkgs/by-name/gr/grype/package.nix +++ b/pkgs/by-name/gr/grype/package.nix @@ -10,13 +10,13 @@ buildGoModule (finalAttrs: { pname = "grype"; - version = "0.100.0"; + version = "0.101.0"; src = fetchFromGitHub { owner = "anchore"; repo = "grype"; tag = "v${finalAttrs.version}"; - hash = "sha256-POGGhZ2uTqWjUsl1zR4eirb+Daji+igTtUNwTte7gPA="; + hash = "sha256-20nl2mfU5PeEtUwyOUrKZ58nHyVvxZol4M37IPabx3A="; # populate values that require us to use git. By doing this in postFetch we # can delete .git afterwards and maintain better reproducibility of the src. leaveDotGit = true; @@ -31,7 +31,7 @@ buildGoModule (finalAttrs: { proxyVendor = true; - vendorHash = "sha256-QGGY88CELV9e5UxtfDXKmShnKiP8i+0f8iA9pOTirzc="; + vendorHash = "sha256-VbJKdd04S1aXXnflEZTtpIh4eJFe17WXZXqWDDo9YiI="; nativeBuildInputs = [ installShellFiles ]; From 6737d7167bca2bd8dfb9df510f069ec31770069a Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 15 Oct 2025 23:38:14 +0000 Subject: [PATCH 49/94] python3Packages.llama-index-vector-stores-milvus: 0.9.2 -> 0.9.3 --- .../llama-index-vector-stores-milvus/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/llama-index-vector-stores-milvus/default.nix b/pkgs/development/python-modules/llama-index-vector-stores-milvus/default.nix index d1738cbb470b..e29574277fe2 100644 --- a/pkgs/development/python-modules/llama-index-vector-stores-milvus/default.nix +++ b/pkgs/development/python-modules/llama-index-vector-stores-milvus/default.nix @@ -9,13 +9,13 @@ buildPythonPackage rec { pname = "llama-index-vector-stores-milvus"; - version = "0.9.2"; + version = "0.9.3"; pyproject = true; src = fetchPypi { pname = "llama_index_vector_stores_milvus"; inherit version; - hash = "sha256-qIGFmmiet1VXkQLyy72l2ub5ePyYwozTzisVhQkWmoY="; + hash = "sha256-JiGsSKKlwV3efEkT5p3lXcEY7hCbVWRdCAX9X539Ke0="; }; build-system = [ hatchling ]; From c87a3454f7170ff547e22944cb4457637b3be138 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 16 Oct 2025 00:09:51 +0000 Subject: [PATCH 50/94] python3Packages.lacuscore: 1.18.0 -> 1.19.1 --- pkgs/development/python-modules/lacuscore/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/lacuscore/default.nix b/pkgs/development/python-modules/lacuscore/default.nix index da4959bdea4d..70b208bd794d 100644 --- a/pkgs/development/python-modules/lacuscore/default.nix +++ b/pkgs/development/python-modules/lacuscore/default.nix @@ -18,14 +18,14 @@ buildPythonPackage rec { pname = "lacuscore"; - version = "1.18.0"; + version = "1.19.1"; pyproject = true; src = fetchFromGitHub { owner = "ail-project"; repo = "LacusCore"; tag = "v${version}"; - hash = "sha256-+K2zfUGhjQNGIxsh3YHYAH4G3mAoysdpMnscshwl7xI="; + hash = "sha256-5cMgeZlbgK+YixHiwnolqxLUVNbfVdabtVZWZIGzjdk="; }; pythonRelaxDeps = [ From 2529b8e1a2563b8a401d4cb76388bbfebcafce8c Mon Sep 17 00:00:00 2001 From: eljamm Date: Thu, 16 Oct 2025 06:02:25 +0000 Subject: [PATCH 51/94] linux_xanmod: 6.12.52 -> 6.12.53 - Changelog: https://dl.xanmod.org/changelog/6.12/ChangeLog-6.12.53-xanmod1.gz - Diff: https://gitlab.com/xanmod/linux/-/compare/6.12.52-xanmod1..6.12.53-xanmod1?from_project_id=51590166 --- pkgs/os-specific/linux/kernel/xanmod-kernels.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix index e4e8419bff2f..e4996958b366 100644 --- a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix +++ b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix @@ -15,8 +15,8 @@ let variants = { # ./update-xanmod.sh lts lts = { - version = "6.12.52"; - hash = "sha256-r9FntI8F0ri01lnFH7VYdQj8xR5gT+iInuDWv16oXJA="; + version = "6.12.53"; + hash = "sha256-BhaWUdfCgIvD0LA69I1NVIW0rv6JWQs+7HNLxOkrmGc="; isLTS = true; }; # ./update-xanmod.sh main From 185ed21533b6f1a41993bab1a327231f2c8e2563 Mon Sep 17 00:00:00 2001 From: eljamm Date: Thu, 16 Oct 2025 06:05:24 +0000 Subject: [PATCH 52/94] linux_xanmod_latest: 6.16.12 -> 6.17.3 - Changelog: https://dl.xanmod.org/changelog/6.17/ChangeLog-6.17.3-xanmod1.gz - Diff: https://gitlab.com/xanmod/linux/-/compare/6.16.12-xanmod1..6.17.3-xanmod1?from_project_id=51590166 --- pkgs/os-specific/linux/kernel/xanmod-kernels.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix index e4996958b366..80beae4c400d 100644 --- a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix +++ b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix @@ -21,8 +21,8 @@ let }; # ./update-xanmod.sh main main = { - version = "6.16.12"; - hash = "sha256-m2aepV++9RwobXOTxiLJaUV8TnPvBkZzNooKQR4nRtA="; + version = "6.17.3"; + hash = "sha256-VL1SCMB89P0UcCbtPdkjxcCZqQZpnSTlzzf9e8uzkyA="; }; }; From f9a8a894b8c25f37684f6e8373f7b0467d5e4e0c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 16 Oct 2025 06:24:49 +0000 Subject: [PATCH 53/94] gradle-completion: 1.4.1 -> 1.5.2 --- pkgs/by-name/gr/gradle-completion/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/gr/gradle-completion/package.nix b/pkgs/by-name/gr/gradle-completion/package.nix index 1a67b9c278df..228b89f3b4db 100644 --- a/pkgs/by-name/gr/gradle-completion/package.nix +++ b/pkgs/by-name/gr/gradle-completion/package.nix @@ -8,13 +8,13 @@ stdenvNoCC.mkDerivation (finalAttrs: { pname = "gradle-completion"; - version = "1.4.1"; + version = "1.5.2"; src = fetchFromGitHub { owner = "gradle"; repo = "gradle-completion"; rev = "v${finalAttrs.version}"; - sha256 = "15b0692i3h8h7b95465b2aw9qf5qjmjag5n62347l8yl7zbhv3l2"; + sha256 = "u3bnvNkjKzNp604hnPoAT3YY3Xf9eJlAe174YnM2RMQ="; }; nativeBuildInputs = [ From 51785d8f0c33ebdd768dcabb7afe4d4a722c6e76 Mon Sep 17 00:00:00 2001 From: David Morgan Date: Thu, 11 Sep 2025 07:46:28 +0100 Subject: [PATCH 54/94] orbstack: init at 2.0.3-19876 Co-authored-by: Noa Virellia Co-authored-by: Sizhe Zhao --- pkgs/by-name/or/orbstack/package.nix | 79 ++++++++++++++++++++++++++++ pkgs/by-name/or/orbstack/update.sh | 24 +++++++++ 2 files changed, 103 insertions(+) create mode 100644 pkgs/by-name/or/orbstack/package.nix create mode 100755 pkgs/by-name/or/orbstack/update.sh diff --git a/pkgs/by-name/or/orbstack/package.nix b/pkgs/by-name/or/orbstack/package.nix new file mode 100644 index 000000000000..64e916d49c3f --- /dev/null +++ b/pkgs/by-name/or/orbstack/package.nix @@ -0,0 +1,79 @@ +{ + lib, + stdenvNoCC, + fetchurl, + _7zz, +}: +let + inherit (stdenvNoCC.hostPlatform) system; + version = "2.0.3-19876"; + sourceData = { + aarch64-darwin = { + arch = "arm64"; + hash = "sha256-3Ppc0zWEgR/nTS7R9uAkUYYgYu5q2TWmfd3evT+Z8g4="; + }; + x86_64-darwin = { + arch = "amd64"; + hash = "sha256-+JpyynFKmDjHLetvvEpQ0qw4crAVmx0ucWm+bvtZ2Fg="; + }; + }; + sources = lib.mapAttrs ( + system: + { arch, hash }: + fetchurl { + url = "https://cdn-updates.orbstack.dev/${arch}/OrbStack_v${ + lib.replaceString "-" "_" version + }_${arch}.dmg"; + inherit hash; + } + ) sourceData; +in +stdenvNoCC.mkDerivation (finalAttrs: { + pname = "orbstack"; + inherit version; + + src = finalAttrs.passthru.sources.${system} or (throw "unsupported system ${system}"); + + # -snld prevents "ERROR: Dangerous symbolic link path was ignored" + # -xr'!*:com.apple.*' prevents macOS extended attributes (e.g. macl or + # quarantine) being turned into real files when extracting an APFS .dmg + # (e.g. Info.plist:com.apple.macl or Info.plist:com.apple.quarantine). + # These bogus files corrupt the .app bundle and prevent it from launching. + unpackCmd = "7zz x -snld -xr'!*:com.apple.*' $curSrc"; + + nativeBuildInputs = [ _7zz ]; + + sourceRoot = "."; + + installPhase = '' + runHook preInstall + + mkdir -p "$out/Applications" + cp -R OrbStack.app "$out/Applications" + + mkdir -p "$out/bin" + for binary in "$out"/Applications/OrbStack.app/Contents/MacOS/{bin,xbin}/*; do + ln -s "$binary" "$out/bin/$(basename "$binary")" + done + + runHook postInstall + ''; + + passthru = { + inherit sources; + updateScript = ./update.sh; + }; + + meta = { + changelog = "https://docs.orbstack.dev/release-notes#${ + builtins.replaceStrings [ "." ] [ "-" ] version + }"; + description = "Fast, light, and easy way to run Docker containers and Linux machines"; + homepage = "https://orbstack.dev/"; + license = lib.licenses.unfree; + mainProgram = "orb"; + maintainers = with lib.maintainers; [ deejayem ]; + platforms = lib.platforms.darwin; + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; + }; +}) diff --git a/pkgs/by-name/or/orbstack/update.sh b/pkgs/by-name/or/orbstack/update.sh new file mode 100755 index 000000000000..39c1c2ffe787 --- /dev/null +++ b/pkgs/by-name/or/orbstack/update.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p coreutils curl gawk gnugrep gnused common-updater-scripts +#shellcheck shell=bash + +set -eu -o pipefail + +update_arch() { + local arch="$1" + local system="$2" + + local source_url + source_url="$(curl -L -I "https://orbstack.dev/download/stable/latest/$arch" | grep -i "location:" | awk '{print $2}' | tr -d '\r')" + + local version + version="$(echo "$source_url" | grep -o '\([0-9]\+\.\)\{2\}[0-9]\+_[0-9]\+' | sed 's/_/-/')" + + local hash + hash=$(nix --extra-experimental-features nix-command hash convert --to sri --hash-algo sha256 "$(nix-prefetch-url --type sha256 "$source_url")") + + update-source-version orbstack "$version" "$hash" --system="$system" --source-key="sources.$system" --ignore-same-version +} + +update_arch "arm64" "aarch64-darwin" +update_arch "amd64" "x86_64-darwin" From cf0c9920e254003b15b11bd02bf6cf43034e463b Mon Sep 17 00:00:00 2001 From: Thomas Gerbet Date: Thu, 16 Oct 2025 08:55:28 +0200 Subject: [PATCH 55/94] redict: drop The package did not has a lot of care in nixpkgs in the last year. We were quite behind on security fixes before #451471. Also upstream does not seem very active. All the recent releases seems to only be backport of security fixes. --- pkgs/by-name/re/redict/package.nix | 119 ----------------------------- pkgs/top-level/aliases.nix | 1 + 2 files changed, 1 insertion(+), 119 deletions(-) delete mode 100644 pkgs/by-name/re/redict/package.nix diff --git a/pkgs/by-name/re/redict/package.nix b/pkgs/by-name/re/redict/package.nix deleted file mode 100644 index 544a7edd7952..000000000000 --- a/pkgs/by-name/re/redict/package.nix +++ /dev/null @@ -1,119 +0,0 @@ -{ - lib, - stdenv, - fetchFromGitea, - fetchurl, - lua, - jemalloc, - pkg-config, - tcl, - which, - ps, - getconf, - withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd, - systemd, - # dependency ordering is broken at the moment when building with openssl - tlsSupport ? !stdenv.hostPlatform.isStatic, - openssl, - - # Using system jemalloc fixes cross-compilation and various setups. - # However the experimental 'active defragmentation' feature of redict requires - # their custom patched version of jemalloc. - useSystemJemalloc ? true, -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "redict"; - version = "7.3.6"; - - src = fetchFromGitea { - domain = "codeberg.org"; - owner = "redict"; - repo = "redict"; - tag = finalAttrs.version; - hash = "sha256-ye2uO6EQzfyonRvM0/+pVPoNZe2f9WO/2yafy52G10M="; - }; - - patches = lib.optionals useSystemJemalloc [ - # use system jemalloc - (fetchurl { - url = "https://gitlab.archlinux.org/archlinux/packaging/packages/redis/-/raw/102cc861713c796756abd541bf341a4512eb06e6/redis-5.0-use-system-jemalloc.patch"; - hash = "sha256-VPRfoSnctkkkzLrXEWQX3Lh5HmZaCXoJafyOG007KzM="; - }) - ]; - - nativeBuildInputs = [ pkg-config ]; - - buildInputs = [ - lua - ] - ++ lib.optional useSystemJemalloc jemalloc - ++ lib.optional withSystemd systemd - ++ lib.optionals tlsSupport [ openssl ]; - - preBuild = lib.optionalString stdenv.hostPlatform.isDarwin '' - substituteInPlace src/Makefile --replace-fail "-flto" "" - ''; - - # More cross-compiling fixes. - makeFlags = [ - "PREFIX=${placeholder "out"}" - ] - ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ - "AR=${stdenv.cc.targetPrefix}ar" - "RANLIB=${stdenv.cc.targetPrefix}ranlib" - ] - ++ lib.optionals withSystemd [ "USE_SYSTEMD=yes" ] - ++ lib.optionals tlsSupport [ "BUILD_TLS=yes" ]; - - enableParallelBuilding = true; - - hardeningEnable = lib.optionals (!stdenv.hostPlatform.isDarwin) [ "pie" ]; - - env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.cc.isClang [ "-std=c11" ]); - - # darwin currently lacks a pure `pgrep` which is extensively used here - doCheck = !stdenv.hostPlatform.isDarwin; - - nativeCheckInputs = [ - which - tcl - ps - ] - ++ lib.optionals stdenv.hostPlatform.isStatic [ getconf ]; - - checkPhase = '' - runHook preCheck - - # disable test "Connect multiple replicas at the same time": even - # upstream find this test too timing-sensitive - substituteInPlace tests/integration/replication.tcl \ - --replace-fail "foreach mdl {no yes}" "foreach mdl {}" - - substituteInPlace tests/support/server.tcl \ - --replace-fail "exec /usr/bin/env" "exec env" - - sed -i '/^proc wait_load_handlers_disconnected/{n ; s/wait_for_condition 50 100/wait_for_condition 50 500/; }' \ - tests/support/util.tcl - - ./runtest \ - --no-latency \ - --timeout 2000 \ - --clients $NIX_BUILD_CORES \ - --tags -leaks \ - --skipunit integration/failover \ - --skipunit integration/aof-multi-part - - runHook postCheck - ''; - - meta = { - homepage = "https://redict.io"; - description = "Distributed key/value store"; - license = lib.licenses.lgpl3Only; - platforms = lib.platforms.all; - changelog = "https://codeberg.org/redict/redict/releases/tag/${finalAttrs.version}"; - maintainers = with lib.maintainers; [ yuka ]; - mainProgram = "redict-cli"; - }; -}) diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 100178208b70..f7633dfb2ee1 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -2289,6 +2289,7 @@ mapAliases { rapidjson-unstable = lib.warnOnInstantiate "'rapidjson-unstable' has been renamed to 'rapidjson'" rapidjson; # Added 2024-07-28 rargs = throw "'rargs' has been removed due to lack of upstream maintenance"; # Added 2025-01-25 rebazel = throw "'rebazel' has been removed due to lack of upstream maintenance"; # Added 2025-01-26 + redict = throw "'redict' has been removed due to lack of nixpkgs maintenance and a slow upstream development pace. Consider using 'valkey'."; # Added 2025-10-16 redoc-cli = throw "'redoc-cli' been removed because it has been marked as broken since at least November 2024. Consider using 'redocly' instead."; # Added 2025-10-01 redocly-cli = redocly; # Added 2024-04-14 redpanda = redpanda-client; # Added 2023-10-14 From 0897ebc3e24c396c03a4a0b37062e081472017ab Mon Sep 17 00:00:00 2001 From: Sigmanificient Date: Thu, 16 Oct 2025 11:08:38 +0200 Subject: [PATCH 56/94] edlib: fix build with cmake --- pkgs/by-name/ed/edlib/package.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkgs/by-name/ed/edlib/package.nix b/pkgs/by-name/ed/edlib/package.nix index 9358ca49435c..58db3cfc218d 100644 --- a/pkgs/by-name/ed/edlib/package.nix +++ b/pkgs/by-name/ed/edlib/package.nix @@ -2,6 +2,7 @@ lib, stdenv, fetchFromGitHub, + fetchpatch, cmake, }: @@ -16,6 +17,15 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-XejxohLVdBBzpYZ//OpqC1ActmCaZ8tunJyhOYtZmKQ="; }; + patches = [ + # Bump minimum CMake version to 3.20 + (fetchpatch { + name = "bump-cmake-version.patch"; + url = "https://github.com/Martinsos/edlib/commit/47359e591f3861f12105fa8e72242de64d5597c4.patch?full_index=1"; + hash = "sha256-Efbv8XYF1jOz6MypIyhfFJGQQt8gTYNZRd+R8ukIf3o="; + }) + ]; + nativeBuildInputs = [ cmake ]; doCheck = true; From bb058c63ed06394e6efd892f8a134c3c61ce5645 Mon Sep 17 00:00:00 2001 From: Guanran Wang Date: Thu, 16 Oct 2025 17:10:47 +0800 Subject: [PATCH 57/94] foot: 1.24.0 -> 1.25.0 Diff: https://codeberg.org/dnkl/foot/compare/1.24.0...1.25.0 Changelog: https://codeberg.org/dnkl/foot/releases/tag/1.25.0 --- pkgs/by-name/fo/foot/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/fo/foot/package.nix b/pkgs/by-name/fo/foot/package.nix index 0b2f1cdf6fc8..bafdde217258 100644 --- a/pkgs/by-name/fo/foot/package.nix +++ b/pkgs/by-name/fo/foot/package.nix @@ -27,7 +27,7 @@ }: let - version = "1.24.0"; + version = "1.25.0"; # build stimuli file for PGO build and the script to generate it # independently of the foot's build, so we can cache the result @@ -104,7 +104,7 @@ stdenv.mkDerivation { owner = "dnkl"; repo = "foot"; tag = version; - hash = "sha256-uex2p28rKBwnqPjO1Pen1GA3a9mEnrcpIb1oIUJv/Lk="; + hash = "sha256-s7SwIdkWhBKcq9u4V0FLKW6CA36MBvDyB9ELB0V52O0="; }; separateDebugInfo = true; From 3017b2746c425943f575e79130214657ad3c525e Mon Sep 17 00:00:00 2001 From: Diogo Correia Date: Sun, 2 Feb 2025 18:57:51 +0000 Subject: [PATCH 58/94] nixos/pairdrop: init module --- nixos/modules/module-list.nix | 1 + nixos/modules/services/web-apps/pairdrop.nix | 152 +++++++++++++++++++ 2 files changed, 153 insertions(+) create mode 100644 nixos/modules/services/web-apps/pairdrop.nix diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 871244a929c0..01e55d267bf2 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -1671,6 +1671,7 @@ ./services/web-apps/openvscode-server.nix ./services/web-apps/openwebrx.nix ./services/web-apps/outline.nix + ./services/web-apps/pairdrop.nix ./services/web-apps/part-db.nix ./services/web-apps/peering-manager.nix ./services/web-apps/peertube-runner.nix diff --git a/nixos/modules/services/web-apps/pairdrop.nix b/nixos/modules/services/web-apps/pairdrop.nix new file mode 100644 index 000000000000..56de9b252e45 --- /dev/null +++ b/nixos/modules/services/web-apps/pairdrop.nix @@ -0,0 +1,152 @@ +{ + config, + lib, + pkgs, + ... +}: +let + inherit (lib) + boolToString + getExe + isBool + maintainers + mapAttrs + mkEnableOption + mkIf + mkOption + mkPackageOption + optionalAttrs + optionals + types + ; + + cfg = config.services.pairdrop; + + json = pkgs.formats.json { }; +in +{ + options.services.pairdrop = { + enable = mkEnableOption "pairdrop"; + + package = mkPackageOption pkgs "pairdrop" { }; + + port = mkOption { + type = types.port; + default = 3000; + example = 3010; + description = "The port to listen on."; + }; + + rtcConfig = mkOption { + type = json.type; + default = null; + example = { + sdpSemantics = "unified-plan"; + iceServers = [ + { + urls = "stun:stun.example.com:19302"; + } + ]; + }; + description = '' + Configuration for STUN/TURN servers. + This is converted to JSON and written into a file automatically. + If you want to provide a file path instead, set `RTC_CONFIG` in {option}`services.pairdrop.environment`. + ''; + }; + + environment = mkOption { + description = '' + Additional configuration (environment variables) for PairDrop, see + + for supported values. + ''; + + type = types.submodule { + freeformType = + with types; + attrsOf (oneOf [ + bool + int + str + ]); + + options = { }; + }; + + default = { }; + + example = { + DEBUG_MODE = true; + RATE_LIMIT = 1; + IPV6_LOCALIZE = 4; + WS_FALLBACK = true; + SIGNALING_SERVER = "pairdrop.net"; + RTC_CONFIG = "/etc/pairdrop/rtc-config.json"; + + DONATION_BUTTON_ACTIVE = false; + TWITTER_BUTTON_ACTIVE = false; + MASTODON_BUTTON_ACTIVE = false; + BLUESKY_BUTTON_ACTIVE = false; + CUSTOM_BUTTON_ACTIVE = false; + PRIVACYPOLICY_BUTTON_ACTIVE = false; + }; + }; + }; + + config = mkIf cfg.enable { + warnings = optionals (cfg.rtcConfig != null && cfg.environment ? RTC_CONFIG) [ + "Both services.pairdrop.rtcConfig and services.pairdrop.environment.RTC_CONFIG are set. The environment variable will take precedence." + ]; + + systemd.services.pairdrop = + let + environment = { + PORT = toString cfg.port; + } + // (optionalAttrs (cfg.rtcConfig != null) { + RTC_CONFIG = json.generate "rtc-config.json" cfg.rtcConfig; + }) + // (mapAttrs (_: v: if isBool v then boolToString v else toString v) cfg.environment); + in + { + inherit environment; + + description = "PairDrop: Transfer Files Cross-Platform"; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + ExecStart = getExe cfg.package; + + Type = "simple"; + Restart = "on-failure"; + RestartSec = 3; + DynamicUser = true; + + # Hardening + CapabilityBoundingSet = ""; + NoNewPrivileges = true; + PrivateUsers = true; + PrivateTmp = true; + PrivateDevices = true; + PrivateMounts = true; + ProtectClock = true; + ProtectControlGroups = true; + ProtectHome = true; + ProtectHostname = true; + ProtectKernelLogs = true; + ProtectKernelModules = true; + ProtectKernelTunables = true; + RestrictAddressFamilies = [ + "AF_INET" + "AF_INET6" + ]; + RestrictNamespaces = true; + RestrictRealtime = true; + RestrictSUIDSGID = true; + }; + }; + }; + + meta.maintainers = with maintainers; [ diogotcorreia ]; +} From 4cc3d732ca0f31affa75a565596fa05bf3f86e17 Mon Sep 17 00:00:00 2001 From: Diogo Correia Date: Sun, 2 Feb 2025 18:58:36 +0000 Subject: [PATCH 59/94] doc: add services.pairdrop to 25.11 release notes --- nixos/doc/manual/release-notes/rl-2511.section.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nixos/doc/manual/release-notes/rl-2511.section.md b/nixos/doc/manual/release-notes/rl-2511.section.md index a030c95c8f8e..e0dd13567a43 100644 --- a/nixos/doc/manual/release-notes/rl-2511.section.md +++ b/nixos/doc/manual/release-notes/rl-2511.section.md @@ -112,6 +112,8 @@ - [ente](https://github.com/ente-io/ente), a service that provides a fully open source, end-to-end encrypted platform for photos and videos. Available as [services.ente.api](#opt-services.ente.api.enable) and [services.ente.web](#opt-services.ente.web.enable). +- [PairDrop](https://github.com/schlagmichdoch/pairdrop), a peer-to-peer file transfer web app. Available as [services.pairdrop](#opt-services.pairdrop.enable). + - [SuiteNumérique Docs](https://github.com/suitenumerique/docs), a collaborative note taking, wiki and documentation web platform and alternative to Notion or Outline. Available as [services.lasuite-docs](#opt-services.lasuite-docs.enable). - [dwl](https://codeberg.org/dwl/dwl), a compact, hackable compositor for Wayland based on wlroots. Available as [programs.dwl](#opt-programs.dwl.enable). From 9569752c0a9cf46d5eaf8e8c1229f2fb7a2c202c Mon Sep 17 00:00:00 2001 From: Diogo Correia Date: Sun, 2 Feb 2025 19:01:30 +0000 Subject: [PATCH 60/94] nixos/tests/pairdrop: init --- nixos/tests/all-tests.nix | 1 + nixos/tests/web-apps/pairdrop.nix | 32 ++++++++++++++++++++++++++++ pkgs/by-name/pa/pairdrop/package.nix | 7 ++++++ 3 files changed, 40 insertions(+) create mode 100644 nixos/tests/web-apps/pairdrop.nix diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 86b223ad06f2..5ddcd2484b4a 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -1149,6 +1149,7 @@ in oxidized = handleTest ./oxidized.nix { }; pacemaker = runTest ./pacemaker.nix; packagekit = runTest ./packagekit.nix; + pairdrop = runTest ./web-apps/pairdrop.nix; paisa = runTest ./paisa.nix; pam-file-contents = runTest ./pam/pam-file-contents.nix; pam-lastlog = runTest ./pam/pam-lastlog.nix; diff --git a/nixos/tests/web-apps/pairdrop.nix b/nixos/tests/web-apps/pairdrop.nix new file mode 100644 index 000000000000..bf404edfa7eb --- /dev/null +++ b/nixos/tests/web-apps/pairdrop.nix @@ -0,0 +1,32 @@ +{ ... }: +{ + name = "pairdrop-nixos"; + + nodes.machine = + { pkgs, ... }: + { + services.pairdrop = { + enable = true; + port = 1337; + environment = { + SIGNALING_SERVER = "pairdrop.net"; + CUSTOM_BUTTON_ACTIVE = false; + }; + }; + }; + + testScript = '' + import json + + machine.wait_for_unit("pairdrop.service") + + machine.wait_for_open_port(1337) + machine.succeed("curl --fail http://localhost:1337/") + + res = machine.succeed("curl --fail http://localhost:1337/config") + print(res) + cfg = json.loads(res) + assert cfg["signalingServer"] == "pairdrop.net/" + assert cfg["buttons"]["custom_button"]["active"] == "false" + ''; +} diff --git a/pkgs/by-name/pa/pairdrop/package.nix b/pkgs/by-name/pa/pairdrop/package.nix index d4b2aa08b70c..1fa983f47b26 100644 --- a/pkgs/by-name/pa/pairdrop/package.nix +++ b/pkgs/by-name/pa/pairdrop/package.nix @@ -2,6 +2,7 @@ lib, buildNpmPackage, fetchFromGitHub, + nixosTests, nodejs, }: @@ -36,6 +37,12 @@ buildNpmPackage rec { runHook postInstall ''; + passthru = { + tests = { + inherit (nixosTests) pairdrop; + }; + }; + meta = with lib; { description = "Local file sharing in your browser"; mainProgram = "pairdrop"; From 9b503f65b1cd34578c38917e2f7290e4bc0af346 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 16 Oct 2025 10:43:07 +0000 Subject: [PATCH 61/94] python3Packages.elevenlabs: 2.17.0 -> 2.18.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 a7290769ad12..affab66c0803 100644 --- a/pkgs/development/python-modules/elevenlabs/default.nix +++ b/pkgs/development/python-modules/elevenlabs/default.nix @@ -13,7 +13,7 @@ }: let - version = "2.17.0"; + version = "2.18.0"; tag = "v${version}"; in buildPythonPackage { @@ -25,7 +25,7 @@ buildPythonPackage { owner = "elevenlabs"; repo = "elevenlabs-python"; inherit tag; - hash = "sha256-nIIUMz43o3C7nMMpBnPAPFLTcK3WJyW0v4Vb29yRa88="; + hash = "sha256-FSUKKYG9cMuh4AcU6nYBtzjt+znfel3SHLRDDWPNCv8="; }; build-system = [ poetry-core ]; From 804cdf88a6c02fcd0fd35345083da4bcb076d53a Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 16 Oct 2025 12:05:12 +0000 Subject: [PATCH 62/94] python3Packages.smp: 3.3.2 -> 4.0.0 --- pkgs/development/python-modules/smp/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/smp/default.nix b/pkgs/development/python-modules/smp/default.nix index 37eb2452d93f..6f91918ec1b9 100644 --- a/pkgs/development/python-modules/smp/default.nix +++ b/pkgs/development/python-modules/smp/default.nix @@ -12,14 +12,14 @@ buildPythonPackage rec { pname = "smp"; - version = "3.3.2"; + version = "4.0.0"; pyproject = true; src = fetchFromGitHub { owner = "JPHutchins"; repo = "smp"; tag = version; - hash = "sha256-klMFJOKGSy6s16M+9wQhSvLSWdNPO/IMNdY5RW+wyFc="; + hash = "sha256-V6TGDG05sebn0IF3j0EbkozfO4X1DL3nnwrGOSh+Wuc="; }; build-system = [ From e18ad9a31a281f3a26a99bd3ce4b9f96b9953a7f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 16 Oct 2025 12:26:44 +0000 Subject: [PATCH 63/94] dockerfile-language-server: 0.14.1 -> 0.15.0 --- pkgs/by-name/do/dockerfile-language-server/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/do/dockerfile-language-server/package.nix b/pkgs/by-name/do/dockerfile-language-server/package.nix index 4508fd42739c..660d02da0028 100644 --- a/pkgs/by-name/do/dockerfile-language-server/package.nix +++ b/pkgs/by-name/do/dockerfile-language-server/package.nix @@ -6,20 +6,20 @@ buildNpmPackage rec { pname = "dockerfile-language-server"; - version = "0.14.1"; + version = "0.15.0"; src = fetchFromGitHub { owner = "rcjsuen"; repo = "dockerfile-language-server"; tag = "v${version}"; - hash = "sha256-oPU9XVxD9GbXMWkeGKncriFi1oP3YlkWnjxzltaz/iU="; + hash = "sha256-olgOUbVHHj9vD7upswqVJYBRIRb+kg6uXC2y5shnM+g="; }; preBuild = '' npm run prepublishOnly ''; - npmDepsHash = "sha256-p5BBKoq+ANR8z4YWsjmKaNqkyQGETwG5OmdapasLk+c="; + npmDepsHash = "sha256-cJ11l2NF/sCzPw/eQNFon5oKRM+KPoy4lxLz0yivHTo="; meta = { changelog = "https://github.com/rcjsuen/dockerfile-language-server/blob/${src.tag}/CHANGELOG.md"; From 181281370c644162312d2d72e9e4038e09318e61 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 16 Oct 2025 12:39:23 +0000 Subject: [PATCH 64/94] qmapshack: 1.18.0 -> 1.18.1 --- pkgs/by-name/qm/qmapshack/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/qm/qmapshack/package.nix b/pkgs/by-name/qm/qmapshack/package.nix index d8644c2aadbb..6b1b3afff205 100644 --- a/pkgs/by-name/qm/qmapshack/package.nix +++ b/pkgs/by-name/qm/qmapshack/package.nix @@ -13,13 +13,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "qmapshack"; - version = "1.18.0"; + version = "1.18.1"; src = fetchFromGitHub { owner = "Maproom"; repo = "qmapshack"; tag = "V_${finalAttrs.version}"; - hash = "sha256-+M76EZeZOsBQ7RXtVplsrbrDgU0plRAht4/jz/GpIhM="; + hash = "sha256-uJO0WBA8/PAvO3yFE7O2Ncz801UBoL2Nf7Dv61yxQag="; }; nativeBuildInputs = [ From 0f2310070f250da33ca7330eed55c8f57b5b4933 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 16 Oct 2025 12:40:26 +0000 Subject: [PATCH 65/94] python3Packages.ocrmypdf: 16.11.0 -> 16.11.1 --- pkgs/development/python-modules/ocrmypdf/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/ocrmypdf/default.nix b/pkgs/development/python-modules/ocrmypdf/default.nix index e8ada9f849c4..c984b2213cdb 100644 --- a/pkgs/development/python-modules/ocrmypdf/default.nix +++ b/pkgs/development/python-modules/ocrmypdf/default.nix @@ -28,7 +28,7 @@ buildPythonPackage rec { pname = "ocrmypdf"; - version = "16.11.0"; + version = "16.11.1"; pyproject = true; src = fetchFromGitHub { @@ -41,7 +41,7 @@ buildPythonPackage rec { postFetch = '' rm "$out/.git_archival.txt" ''; - hash = "sha256-seylNBl29+QxN+3SbgRUdtTo1JwvW1sODpsz7Gwer3E="; + hash = "sha256-EPGAM7hRmhKTk4NZz529yC0j5uJjB2Q/00tU1sjx1Zw="; }; patches = [ From ef62549accdb352b77706fcd0024fce59c984d6b Mon Sep 17 00:00:00 2001 From: Franz Pletz Date: Thu, 16 Oct 2025 12:36:13 +0200 Subject: [PATCH 66/94] obs-studio: fix build with Qt 6.10 --- pkgs/applications/video/obs-studio/default.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/applications/video/obs-studio/default.nix b/pkgs/applications/video/obs-studio/default.nix index 850d6b5a520d..64938df8bbbd 100644 --- a/pkgs/applications/video/obs-studio/default.nix +++ b/pkgs/applications/video/obs-studio/default.nix @@ -6,6 +6,7 @@ ninja, nv-codec-headers-12, fetchFromGitHub, + fetchpatch2, addDriverRunpath, autoAddDriverRunpath, cudaSupport ? config.cudaSupport, @@ -97,6 +98,11 @@ stdenv.mkDerivation (finalAttrs: { patches = [ ./fix-nix-plugin-path.patch + # Fix build with Qt 6.10 https://github.com/obsproject/obs-studio/pull/12328 + (fetchpatch2 { + url = "https://github.com/obsproject/obs-studio/commit/26dfacbd4f5217258a2f1c5472a544c65a182d10.patch?full_index=1"; + hash = "sha256-gEWDzZ+GPCR+rmytXcbiBcvzLg8VwZCveMKkvho3COI="; + }) ]; nativeBuildInputs = [ From f351f78d94ee5ef5de5e3189fdb5edf4c74c0095 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 16 Oct 2025 12:47:10 +0000 Subject: [PATCH 67/94] vscode-extensions.saoudrizwan.claude-dev: 3.32.7 -> 3.32.8 --- .../vscode/extensions/saoudrizwan.claude-dev/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/editors/vscode/extensions/saoudrizwan.claude-dev/default.nix b/pkgs/applications/editors/vscode/extensions/saoudrizwan.claude-dev/default.nix index 318667ab88e5..42e5683b4e64 100644 --- a/pkgs/applications/editors/vscode/extensions/saoudrizwan.claude-dev/default.nix +++ b/pkgs/applications/editors/vscode/extensions/saoudrizwan.claude-dev/default.nix @@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension { mktplcRef = { name = "claude-dev"; publisher = "saoudrizwan"; - version = "3.32.7"; - hash = "sha256-cnjF/laOw7A+nAtBOMWXi4M6NoOK/4kWHne4qlyn4wM="; + version = "3.32.8"; + hash = "sha256-IwWAk8Awi6JNDQbJ7XX2wiFVsEYKzIBHqynig5W5Dtg="; }; meta = { From c22b76d760241df91b720207478f11e5739b3c4d Mon Sep 17 00:00:00 2001 From: Florian RICHER Date: Tue, 14 Oct 2025 13:44:53 +0200 Subject: [PATCH 68/94] ocamlPackages.ubase: Init at 0.20 --- .../ocaml-modules/ubase/default.nix | 28 +++++++++++++++++++ pkgs/top-level/ocaml-packages.nix | 2 ++ 2 files changed, 30 insertions(+) create mode 100644 pkgs/development/ocaml-modules/ubase/default.nix diff --git a/pkgs/development/ocaml-modules/ubase/default.nix b/pkgs/development/ocaml-modules/ubase/default.nix new file mode 100644 index 000000000000..daa7fc35617d --- /dev/null +++ b/pkgs/development/ocaml-modules/ubase/default.nix @@ -0,0 +1,28 @@ +{ + buildDunePackage, + fetchFromGitHub, + lib, +}: + +buildDunePackage rec { + pname = "ubase"; + version = "0.20"; + + minimalOCamlVersion = "4.14.0"; + + src = fetchFromGitHub { + owner = "sanette"; + repo = "ubase"; + tag = version; + sha256 = "sha256-zmYjWEk0r1h87RczCJu2tYlS79F/pAiBt16BplPmA7c="; + }; + + doCheck = true; + + meta = { + description = "Remove accents from utf8 strings"; + license = lib.licenses.gpl3; + homepage = "https://github.com/sanette/ubase"; + maintainers = with lib.maintainers; [ mrdev023 ]; + }; +} diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 4784eff0e841..114d33c70567 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -2087,6 +2087,8 @@ let ### U ### + ubase = callPackage ../development/ocaml-modules/ubase { }; + uchar = callPackage ../development/ocaml-modules/uchar { }; uecc = callPackage ../development/ocaml-modules/uecc { }; From 47af83123e686d40966c720daf01b1fa6bd2af0f Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 16 Oct 2025 15:20:12 +0200 Subject: [PATCH 69/94] python313Packages.aioshelly: 13.12.0 -> 13.14.0 Diff: https://github.com/home-assistant-libs/aioshelly/compare/13.12.0...13.14.0 Changelog: https://github.com/home-assistant-libs/aioshelly/releases/tag/13.14.0 --- pkgs/development/python-modules/aioshelly/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/aioshelly/default.nix b/pkgs/development/python-modules/aioshelly/default.nix index 3ce0aea5b6c0..d14346e06d53 100644 --- a/pkgs/development/python-modules/aioshelly/default.nix +++ b/pkgs/development/python-modules/aioshelly/default.nix @@ -16,7 +16,7 @@ buildPythonPackage rec { pname = "aioshelly"; - version = "13.12.0"; + version = "13.14.0"; pyproject = true; disabled = pythonOlder "3.11"; @@ -25,7 +25,7 @@ buildPythonPackage rec { owner = "home-assistant-libs"; repo = "aioshelly"; tag = version; - hash = "sha256-ajo7Uu9U2Xowncb4hF95Gx6YbVjTxY4a52mlU4yOy/0="; + hash = "sha256-yhmX5TFikTP9JbO089sHqm8QzC52z9f9JxK19qHhDyI="; }; build-system = [ setuptools ]; From 075a6b198df5e86c9cd1036284d421c5a8a6a421 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 16 Oct 2025 15:21:05 +0200 Subject: [PATCH 70/94] python312Packages.mypy-boto3-docdb: 1.40.16 -> 1.40.53 --- pkgs/development/python-modules/mypy-boto3/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/mypy-boto3/default.nix b/pkgs/development/python-modules/mypy-boto3/default.nix index ccdd0c16c049..d208a6151399 100644 --- a/pkgs/development/python-modules/mypy-boto3/default.nix +++ b/pkgs/development/python-modules/mypy-boto3/default.nix @@ -418,8 +418,8 @@ in "sha256-Is9yMouO7WxY/P7ViK+s8Y1q8Y7KvTvY7X/H4ndeG6s="; mypy-boto3-docdb = - buildMypyBoto3Package "docdb" "1.40.16" - "sha256-qpxQc8Zq/XAJJBKaAVFnoGlfVL/08lh+HqT2ix/UDOc="; + buildMypyBoto3Package "docdb" "1.40.53" + "sha256-yHfHczjN4v+5IoQy9WuSEGWnhKiF70xJxsxiYHj/s+Y="; mypy-boto3-docdb-elastic = buildMypyBoto3Package "docdb-elastic" "1.40.0" From 93bb75a041df21e81b7c25a7c5a1ae5e1d5f95aa Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 16 Oct 2025 15:21:07 +0200 Subject: [PATCH 71/94] python312Packages.mypy-boto3-ec2: 1.40.52 -> 1.40.53 --- pkgs/development/python-modules/mypy-boto3/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/mypy-boto3/default.nix b/pkgs/development/python-modules/mypy-boto3/default.nix index d208a6151399..0f523ddfbd61 100644 --- a/pkgs/development/python-modules/mypy-boto3/default.nix +++ b/pkgs/development/python-modules/mypy-boto3/default.nix @@ -446,8 +446,8 @@ in "sha256-jtkx0kbI7SB74U5uWyGdVhKMlsy/T82lz3P89k8LMPA="; mypy-boto3-ec2 = - buildMypyBoto3Package "ec2" "1.40.52" - "sha256-5X7I+IrUOxothFVyw3gPP7xCq5gPXTQplA372U6rwRc="; + buildMypyBoto3Package "ec2" "1.40.53" + "sha256-SCjXpXIBjg31/0OknDgJfBBvVCf8gUSDiuD4IGETGeA="; mypy-boto3-ec2-instance-connect = buildMypyBoto3Package "ec2-instance-connect" "1.40.20" From f5b3c9d6b8eb3fe44941302593b47a1d96754740 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 16 Oct 2025 15:21:10 +0200 Subject: [PATCH 72/94] python312Packages.mypy-boto3-elbv2: 1.40.0 -> 1.40.53 --- pkgs/development/python-modules/mypy-boto3/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/mypy-boto3/default.nix b/pkgs/development/python-modules/mypy-boto3/default.nix index 0f523ddfbd61..caa385ff73c0 100644 --- a/pkgs/development/python-modules/mypy-boto3/default.nix +++ b/pkgs/development/python-modules/mypy-boto3/default.nix @@ -494,8 +494,8 @@ in "sha256-9LKKt1qGw/gWS+XtNzmnjk0WOFHAmTuzkj9D3tYuMtU="; mypy-boto3-elbv2 = - buildMypyBoto3Package "elbv2" "1.40.0" - "sha256-zxpAc7Z4Vm6Bzdq7bhdekg6HAUKe/3PXRviQ0f8p7NE="; + buildMypyBoto3Package "elbv2" "1.40.53" + "sha256-TGc78KsQ4y8QSFutN+/cj/gr2iJWi7fYh52OYFCFwho="; mypy-boto3-emr = buildMypyBoto3Package "emr" "1.40.0" From 63f424aaaa1d37c98d58512503da09b1523d4fe6 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 16 Oct 2025 15:21:16 +0200 Subject: [PATCH 73/94] python312Packages.mypy-boto3-guardduty: 1.40.44 -> 1.40.53 --- pkgs/development/python-modules/mypy-boto3/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/mypy-boto3/default.nix b/pkgs/development/python-modules/mypy-boto3/default.nix index caa385ff73c0..ca1756eb271b 100644 --- a/pkgs/development/python-modules/mypy-boto3/default.nix +++ b/pkgs/development/python-modules/mypy-boto3/default.nix @@ -593,8 +593,8 @@ in "sha256-/LlMFYC7cJWb9C5JIt0dTEPtl2sPsalSq7mYaFSf3c4="; mypy-boto3-guardduty = - buildMypyBoto3Package "guardduty" "1.40.44" - "sha256-vOTVkra2RG5DPgcegpDij+6tjWkY01b6zXoSIze8AZ8="; + buildMypyBoto3Package "guardduty" "1.40.53" + "sha256-gTfRwvZekeaQ8V7QgepE4S+i134YQiJ1UXDTU+otVZ8="; mypy-boto3-health = buildMypyBoto3Package "health" "1.40.0" From f05f1ed474b1ed421ad51eb056ef54908a844a11 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 16 Oct 2025 15:21:28 +0200 Subject: [PATCH 74/94] python312Packages.mypy-boto3-lightsail: 1.40.39 -> 1.40.53 --- pkgs/development/python-modules/mypy-boto3/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/mypy-boto3/default.nix b/pkgs/development/python-modules/mypy-boto3/default.nix index ca1756eb271b..ca65f60c6de1 100644 --- a/pkgs/development/python-modules/mypy-boto3/default.nix +++ b/pkgs/development/python-modules/mypy-boto3/default.nix @@ -801,8 +801,8 @@ in "sha256-hp2jCL1IkXluhEyexdawQvwLfk+9pUVjKlnE9dkVnxc="; mypy-boto3-lightsail = - buildMypyBoto3Package "lightsail" "1.40.39" - "sha256-9FTMfIe6W22GTcULfhDYsYojrXXOq30TQygctO15+24="; + buildMypyBoto3Package "lightsail" "1.40.53" + "sha256-UzFFqox5VlOBemuJ7oPybKtNx+y9yNlC9wc3r1FidEw="; mypy-boto3-location = buildMypyBoto3Package "location" "1.40.0" From 1e3ac43e3f19d117c0e1162a6b960bd67b3a9361 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 16 Oct 2025 15:22:05 +0200 Subject: [PATCH 75/94] python313Packages.botocore-stubs: 1.40.52 -> 1.40.53 --- pkgs/development/python-modules/botocore-stubs/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/botocore-stubs/default.nix b/pkgs/development/python-modules/botocore-stubs/default.nix index 0b825f221d5f..f45032f4c68e 100644 --- a/pkgs/development/python-modules/botocore-stubs/default.nix +++ b/pkgs/development/python-modules/botocore-stubs/default.nix @@ -10,7 +10,7 @@ buildPythonPackage rec { pname = "botocore-stubs"; - version = "1.40.52"; + version = "1.40.53"; pyproject = true; disabled = pythonOlder "3.7"; @@ -18,7 +18,7 @@ buildPythonPackage rec { src = fetchPypi { pname = "botocore_stubs"; inherit version; - hash = "sha256-npgJ5WPrLJJQUdhJJXvcdgV2C8u2Kz1f4xF/k4U0VIg="; + hash = "sha256-xcui4fH7S0GUWnPN+ZmlRESB5K0AnKVNLA2WsPRzUi8="; }; nativeBuildInputs = [ setuptools ]; From 097c835e178120ee6d61bd47e2027bd6992f93c2 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 16 Oct 2025 15:22:08 +0200 Subject: [PATCH 76/94] python313Packages.boto3-stubs: 1.40.52 -> 1.40.53 --- pkgs/development/python-modules/boto3-stubs/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/boto3-stubs/default.nix b/pkgs/development/python-modules/boto3-stubs/default.nix index f15b3968b201..be9f078d7d05 100644 --- a/pkgs/development/python-modules/boto3-stubs/default.nix +++ b/pkgs/development/python-modules/boto3-stubs/default.nix @@ -358,13 +358,13 @@ buildPythonPackage rec { pname = "boto3-stubs"; - version = "1.40.52"; + version = "1.40.53"; pyproject = true; src = fetchPypi { pname = "boto3_stubs"; inherit version; - hash = "sha256-vSCnvJEiuxuTkZVDG50/VAse8FAQO8FyDXhpYJB0ZP0="; + hash = "sha256-LbtJZCEkoIFdJx3elrnSTNSpCMlrt7483GMbUxaaLZI="; }; build-system = [ setuptools ]; From 4c2d35b5872e15a73a91f6bbffd9c8c8a0c943df Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 16 Oct 2025 15:24:59 +0200 Subject: [PATCH 77/94] python313Packages.env-canada: 0.11.3 -> 0.12.1 Diff: https://github.com/michaeldavie/env_canada/compare/v0.11.3...v0.12.1 Changelog: https://github.com/michaeldavie/env_canada/blob/v0.12.1/CHANGELOG.md --- pkgs/development/python-modules/env-canada/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/env-canada/default.nix b/pkgs/development/python-modules/env-canada/default.nix index 217af3e76b97..c053da5a13f5 100644 --- a/pkgs/development/python-modules/env-canada/default.nix +++ b/pkgs/development/python-modules/env-canada/default.nix @@ -20,14 +20,14 @@ buildPythonPackage rec { pname = "env-canada"; - version = "0.11.3"; + version = "0.12.1"; pyproject = true; src = fetchFromGitHub { owner = "michaeldavie"; repo = "env_canada"; tag = "v${version}"; - hash = "sha256-9sgdoHsYklszt1y63WQ4BkIGLxprILx2kh7+BmmUlqE="; + hash = "sha256-DTrlis7YDWk8SNmDBnbHk4XEu+SCrXLPLZMb5f+ynY8="; }; build-system = [ setuptools ]; From 01b9013bd43d5dbd2f5972d3235d59fae78edc62 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 16 Oct 2025 15:25:22 +0200 Subject: [PATCH 78/94] python313Packages.iamdata: 0.1.202510151 -> 0.1.202510161 Diff: https://github.com/cloud-copilot/iam-data-python/compare/v0.1.202510151...v0.1.202510161 Changelog: https://github.com/cloud-copilot/iam-data-python/releases/tag/v0.1.202510161 --- pkgs/development/python-modules/iamdata/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/iamdata/default.nix b/pkgs/development/python-modules/iamdata/default.nix index bbf164c5276e..f390bb5ca0c7 100644 --- a/pkgs/development/python-modules/iamdata/default.nix +++ b/pkgs/development/python-modules/iamdata/default.nix @@ -8,14 +8,14 @@ buildPythonPackage rec { pname = "iamdata"; - version = "0.1.202510151"; + version = "0.1.202510161"; pyproject = true; src = fetchFromGitHub { owner = "cloud-copilot"; repo = "iam-data-python"; tag = "v${version}"; - hash = "sha256-lP0l3U1Jdy+wpgyBUqMrd3Cm3/PdQd2WKMdaFClMhws="; + hash = "sha256-v0asi+lPYKUUo90tbZ+ZjRt0J29gwzJbRg2t7GOuHbI="; }; build-system = [ hatchling ]; From cbc2f68c7526920f4d3d6a999519ddce1b7683d9 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 16 Oct 2025 13:35:18 +0000 Subject: [PATCH 79/94] python3Packages.momonga: 0.1.5 -> 0.2.0 --- pkgs/development/python-modules/momonga/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/momonga/default.nix b/pkgs/development/python-modules/momonga/default.nix index d894d4f698e6..6bf9248cb9de 100644 --- a/pkgs/development/python-modules/momonga/default.nix +++ b/pkgs/development/python-modules/momonga/default.nix @@ -8,14 +8,14 @@ buildPythonPackage rec { pname = "momonga"; - version = "0.1.5"; + version = "0.2.0"; pyproject = true; src = fetchFromGitHub { owner = "nbtk"; repo = "momonga"; tag = "v${version}"; - hash = "sha256-sc81L71DJq+XiIYUSMH6knfaPfV7cng/Sp0ZTY6N7ZI="; + hash = "sha256-afPTJH1cVG4Ts6k1GwTJmSZgVZa0ejUERWgNumIUkbs="; }; build-system = [ setuptools ]; From 1600ab265c0d327d5150aeae417962361436ba7f Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 16 Oct 2025 15:37:17 +0200 Subject: [PATCH 80/94] python313Packages.epson-projector: 0.5.1 -> 0.6.0 Changelog: https://github.com/pszafer/epson_projector/releases/tag/v.0.6.0 --- .../python-modules/epson-projector/default.nix | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/pkgs/development/python-modules/epson-projector/default.nix b/pkgs/development/python-modules/epson-projector/default.nix index 93afde3804c5..ba4a526d7e96 100644 --- a/pkgs/development/python-modules/epson-projector/default.nix +++ b/pkgs/development/python-modules/epson-projector/default.nix @@ -3,25 +3,26 @@ buildPythonPackage, fetchPypi, aiohttp, - async-timeout, - pyserial-asyncio, + pyserial-asyncio-fast, + setuptools, }: buildPythonPackage rec { pname = "epson-projector"; - version = "0.5.1"; - format = "setuptools"; + version = "0.6.0"; + pyproject = true; src = fetchPypi { pname = "epson_projector"; inherit version; - hash = "sha256-LwsdMuwvLifIP1PRNhfLi4TTZRp/cw9Bcf57vrsNrbI="; + hash = "sha256-/9Nc3xOxnXFfTsS8s83MXTkVAhqLwrKnmfR/E87s+Bk="; }; - propagatedBuildInputs = [ + build-system = [ setuptools ]; + + dependencies = [ aiohttp - async-timeout - pyserial-asyncio + pyserial-asyncio-fast ]; # tests need real device @@ -38,6 +39,7 @@ buildPythonPackage rec { meta = with lib; { description = "Epson projector support for Python"; homepage = "https://github.com/pszafer/epson_projector"; + changelog = "https://github.com/pszafer/epson_projector/releases/tag/v.${version}"; license = licenses.mit; maintainers = with maintainers; [ dotlambda ]; }; From 689fe111a2b6cc490227ddc899672e24ed2d83f8 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 14 Oct 2025 23:09:57 +0000 Subject: [PATCH 81/94] envoy-bin: 1.35.4 -> 1.36.0 Signed-off-by: R. Ryantm --- pkgs/by-name/en/envoy-bin/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/en/envoy-bin/package.nix b/pkgs/by-name/en/envoy-bin/package.nix index f447be7d017d..17f978d95bd6 100644 --- a/pkgs/by-name/en/envoy-bin/package.nix +++ b/pkgs/by-name/en/envoy-bin/package.nix @@ -8,7 +8,7 @@ versionCheckHook, }: let - version = "1.35.4"; + version = "1.36.0"; inherit (stdenv.hostPlatform) system; throwSystem = throw "envoy-bin is not available for ${system}."; @@ -21,8 +21,8 @@ let hash = { - aarch64-linux = "sha256-iTZilcY0Tc6xjMCSOEdwyzyJeRhd+5A4WIhq89817bc="; - x86_64-linux = "sha256-hBy2DmJlTADt9E3V81CKlFXkM17q52gN5Eq/l4F+qcw="; + aarch64-linux = "sha256-AQFQbCksOJshIzSPvkixRd2jq+hT8+/B5yw1iFzdNqY="; + x86_64-linux = "sha256-2fAq74ha9P3KUukQcmu2HxJ7iLAdmAZm/DF832oqMME="; } .${system} or throwSystem; in From e7fb61a37c66b4b2cd949379fabe41646df37e52 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 16 Oct 2025 14:38:36 +0000 Subject: [PATCH 82/94] python3Packages.stringzilla: 4.2.0 -> 4.2.1 --- pkgs/development/python-modules/stringzilla/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/stringzilla/default.nix b/pkgs/development/python-modules/stringzilla/default.nix index ca028101df23..b3d093d603ee 100644 --- a/pkgs/development/python-modules/stringzilla/default.nix +++ b/pkgs/development/python-modules/stringzilla/default.nix @@ -11,14 +11,14 @@ buildPythonPackage rec { pname = "stringzilla"; - version = "4.2.0"; + version = "4.2.1"; pyproject = true; src = fetchFromGitHub { owner = "ashvardanian"; repo = "stringzilla"; tag = "v${version}"; - hash = "sha256-YREm8VAO+oD/NV+vgnZo39vcPdaxY9wWwWgoOTG03QA="; + hash = "sha256-0CIekVxChvH912vFnBF2FR1YyIpxi3SD7KhBlh7yFGA="; }; postPatch = lib.optionalString stdenv.hostPlatform.isDarwin '' From 76ad7bd9fadcf7a103549c1c94cd23bb450777b9 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 16 Oct 2025 15:00:02 +0000 Subject: [PATCH 83/94] balena-cli: 22.4.10 -> 22.4.13 --- pkgs/by-name/ba/balena-cli/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ba/balena-cli/package.nix b/pkgs/by-name/ba/balena-cli/package.nix index 70829af2c23e..c0b8534382ac 100644 --- a/pkgs/by-name/ba/balena-cli/package.nix +++ b/pkgs/by-name/ba/balena-cli/package.nix @@ -22,16 +22,16 @@ let in buildNpmPackage' rec { pname = "balena-cli"; - version = "22.4.10"; + version = "22.4.13"; src = fetchFromGitHub { owner = "balena-io"; repo = "balena-cli"; rev = "v${version}"; - hash = "sha256-KvFyqVrb5C89B4BeZCqdDZtneX7kWyaLF0oI8SqrsGw="; + hash = "sha256-nke7EQscVPu1A/d4DKi7pSb6/MQgeFtG+zhMZT+bhWk="; }; - npmDepsHash = "sha256-ty+D/p4cDlWkruUD0J4IzaEWIFp/fe4KBGqorV+qmrw="; + npmDepsHash = "sha256-GQXbXkOt8nkOB2OeEcKsp1yJd5lXS+KKout/5ffLgD0="; postPatch = '' ln -s npm-shrinkwrap.json package-lock.json From 4a6910ee39790aba516b99f16f103a85f71f3ba9 Mon Sep 17 00:00:00 2001 From: Gliczy <129636582+Gliczy@users.noreply.github.com> Date: Thu, 16 Oct 2025 17:43:09 +0200 Subject: [PATCH 84/94] vencord: 1.13.3 -> 1.13.4 --- pkgs/by-name/ve/vencord/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ve/vencord/package.nix b/pkgs/by-name/ve/vencord/package.nix index fcc43ce64836..5379ce534490 100644 --- a/pkgs/by-name/ve/vencord/package.nix +++ b/pkgs/by-name/ve/vencord/package.nix @@ -18,13 +18,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "vencord"; - version = "1.13.3"; + version = "1.13.4"; src = fetchFromGitHub { owner = "Vendicated"; repo = "Vencord"; tag = "v${finalAttrs.version}"; - hash = "sha256-wKLI2YE1rEzkRjDeM85XAx2DIrWYGoZrQT8OHtsNJ7E="; + hash = "sha256-NZuZ3WRHsM94PaGfikwB0Y7RRRPe+64FAfx80kRrQ1U="; }; patches = [ ./fix-deps.patch ]; From 3f4171b8b38d716ae3a20ee12083f04c12bbb1fa Mon Sep 17 00:00:00 2001 From: John Titor <50095635+JohnRTitor@users.noreply.github.com> Date: Wed, 15 Oct 2025 22:38:43 +0530 Subject: [PATCH 85/94] bcachefs-tools: use versionCheckHook instead of a passthru.tests --- pkgs/by-name/bc/bcachefs-tools/package.nix | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/pkgs/by-name/bc/bcachefs-tools/package.nix b/pkgs/by-name/bc/bcachefs-tools/package.nix index e4f2f7659109..55bc7b9bcd4f 100644 --- a/pkgs/by-name/bc/bcachefs-tools/package.nix +++ b/pkgs/by-name/bc/bcachefs-tools/package.nix @@ -19,7 +19,7 @@ rustPlatform, makeWrapper, nix-update-script, - testers, + versionCheckHook, nixosTests, installShellFiles, fuseSupport ? false, @@ -45,7 +45,6 @@ stdenv.mkDerivation (finalAttrs: { rustPlatform.bindgenHook makeWrapper installShellFiles - udevCheckHook ]; buildInputs = [ @@ -98,6 +97,11 @@ stdenv.mkDerivation (finalAttrs: { doCheck = false; # needs bcachefs module loaded on builder doInstallCheck = true; + nativeInstallCheckInputs = [ + udevCheckHook + versionCheckHook + ]; + versionCheckProgramArg = "version"; postPatch = '' substituteInPlace Makefile \ @@ -121,11 +125,6 @@ stdenv.mkDerivation (finalAttrs: { kernelModule = import ./kernel-module.nix finalAttrs.finalPackage; tests = { - version = testers.testVersion { - package = finalAttrs.finalPackage; - command = "${finalAttrs.meta.mainProgram} version"; - version = "${finalAttrs.version}"; - }; smoke-test = nixosTests.bcachefs; inherit (nixosTests.installer) bcachefsSimple bcachefsEncrypted bcachefsMulti; }; From 425791033b036b343fab074165be59fa677b13a4 Mon Sep 17 00:00:00 2001 From: John Titor <50095635+JohnRTitor@users.noreply.github.com> Date: Wed, 15 Oct 2025 16:58:02 +0000 Subject: [PATCH 86/94] bcachefs-tools: 1.31.7 -> 1.31.11 --- pkgs/by-name/bc/bcachefs-tools/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/bc/bcachefs-tools/package.nix b/pkgs/by-name/bc/bcachefs-tools/package.nix index 55bc7b9bcd4f..be3dd4d2f6bd 100644 --- a/pkgs/by-name/bc/bcachefs-tools/package.nix +++ b/pkgs/by-name/bc/bcachefs-tools/package.nix @@ -28,13 +28,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "bcachefs-tools"; - version = "1.31.7"; + version = "1.31.11"; src = fetchFromGitHub { owner = "koverstreet"; repo = "bcachefs-tools"; tag = "v${finalAttrs.version}"; - hash = "sha256-gKtOyaDN9hQo45Rk9hMabKRefOG+ooaCrtLBCPx0fT8="; + hash = "sha256-CnRB/iS1NZ0Ebsi12wXFvVb0qdv0V9q1oC3nLj13mqs="; }; nativeBuildInputs = [ @@ -64,7 +64,7 @@ stdenv.mkDerivation (finalAttrs: { cargoDeps = rustPlatform.fetchCargoVendor { src = finalAttrs.src; - hash = "sha256-INnv9kRgM8RRMwBnC6Vwj9S5FfI5gMscU//aNzHF+8w="; + hash = "sha256-50xy1nqDctgz/lXd5JsfaU6yxDoRCQRtiYBwuEuiKFA="; }; outputs = [ From 4c6e1894f5c419a412d59ec3ea39d42d8e0675b8 Mon Sep 17 00:00:00 2001 From: John Titor <50095635+JohnRTitor@users.noreply.github.com> Date: Thu, 16 Oct 2025 21:30:43 +0530 Subject: [PATCH 87/94] bcachefs-tools: cleanup, reorganise add github repo as downloadPage --- pkgs/by-name/bc/bcachefs-tools/package.nix | 47 +++++++++++----------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/pkgs/by-name/bc/bcachefs-tools/package.nix b/pkgs/by-name/bc/bcachefs-tools/package.nix index be3dd4d2f6bd..7aea4cb71836 100644 --- a/pkgs/by-name/bc/bcachefs-tools/package.nix +++ b/pkgs/by-name/bc/bcachefs-tools/package.nix @@ -37,6 +37,16 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-CnRB/iS1NZ0Ebsi12wXFvVb0qdv0V9q1oC3nLj13mqs="; }; + cargoDeps = rustPlatform.fetchCargoVendor { + inherit (finalAttrs) src; + hash = "sha256-50xy1nqDctgz/lXd5JsfaU6yxDoRCQRtiYBwuEuiKFA="; + }; + + postPatch = '' + substituteInPlace Makefile \ + --replace-fail "target/release/bcachefs" "target/${stdenv.hostPlatform.rust.rustcTargetSpec}/release/bcachefs" + ''; + nativeBuildInputs = [ pkg-config cargo @@ -51,7 +61,6 @@ stdenv.mkDerivation (finalAttrs: { libaio keyutils lz4 - libsodium liburcu libuuid @@ -62,16 +71,6 @@ stdenv.mkDerivation (finalAttrs: { ] ++ lib.optional fuseSupport fuse3; - cargoDeps = rustPlatform.fetchCargoVendor { - src = finalAttrs.src; - hash = "sha256-50xy1nqDctgz/lXd5JsfaU6yxDoRCQRtiYBwuEuiKFA="; - }; - - outputs = [ - "out" - "dkms" - ]; - makeFlags = [ "PREFIX=${placeholder "out"}" "VERSION=${finalAttrs.version}" @@ -83,6 +82,9 @@ stdenv.mkDerivation (finalAttrs: { "PKGCONFIG_UDEVDIR=$(out)/lib/udev" ] ++ lib.optional fuseSupport "BCACHEFS_FUSE=1"; + + enableParallelBuilding = true; + installFlags = [ "install" "install_dkms" @@ -96,6 +98,11 @@ stdenv.mkDerivation (finalAttrs: { # FIXME: Try enabling this once the default linux kernel is at least 6.7 doCheck = false; # needs bcachefs module loaded on builder + preCheck = lib.optionalString (!fuseSupport) '' + rm tests/test_fuse.py + ''; + checkFlags = [ "BCACHEFS_TEST_USE_VALGRIND=no" ]; + doInstallCheck = true; nativeInstallCheckInputs = [ udevCheckHook @@ -103,16 +110,6 @@ stdenv.mkDerivation (finalAttrs: { ]; versionCheckProgramArg = "version"; - postPatch = '' - substituteInPlace Makefile \ - --replace-fail "target/release/bcachefs" "target/${stdenv.hostPlatform.rust.rustcTargetSpec}/release/bcachefs" - ''; - - preCheck = lib.optionalString (!fuseSupport) '' - rm tests/test_fuse.py - ''; - checkFlags = [ "BCACHEFS_TEST_USE_VALGRIND=no" ]; - postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' installShellCompletion --cmd bcachefs \ --bash <($out/sbin/bcachefs completions bash) \ @@ -120,6 +117,11 @@ stdenv.mkDerivation (finalAttrs: { --fish <($out/sbin/bcachefs completions fish) ''; + outputs = [ + "out" + "dkms" + ]; + passthru = { # See NOTE in linux-kernels.nix kernelModule = import ./kernel-module.nix finalAttrs.finalPackage; @@ -132,11 +134,10 @@ stdenv.mkDerivation (finalAttrs: { updateScript = nix-update-script { }; }; - enableParallelBuilding = true; - meta = { description = "Tool for managing bcachefs filesystems"; homepage = "https://bcachefs.org/"; + downloadPage = "https://github.com/koverstreet/bcachefs-tools"; license = lib.licenses.gpl2Only; maintainers = with lib.maintainers; [ davidak From 80776b6dc9d0259e81a3cfded28afaf1d84ce292 Mon Sep 17 00:00:00 2001 From: John Titor <50095635+JohnRTitor@users.noreply.github.com> Date: Thu, 16 Oct 2025 21:38:21 +0530 Subject: [PATCH 88/94] linuxPackages_latest.bcachefs: update for 6.18 https://github.com/koverstreet/bcachefs-tools/commit/456f73c36e0776f8da9ded8f0977fbce417beca0 Tools is now compatible with Kernel version 6.18 --- pkgs/by-name/bc/bcachefs-tools/kernel-module.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/bc/bcachefs-tools/kernel-module.nix b/pkgs/by-name/bc/bcachefs-tools/kernel-module.nix index e2eab3c2b944..b9b4667a4d99 100644 --- a/pkgs/by-name/bc/bcachefs-tools/kernel-module.nix +++ b/pkgs/by-name/bc/bcachefs-tools/kernel-module.nix @@ -38,11 +38,12 @@ stdenv.mkDerivation { inherit (bcachefs-tools.meta) homepage + downloadPage license maintainers platforms ; - broken = !(lib.versionAtLeast kernel.version "6.16" && lib.versionOlder kernel.version "6.18"); + broken = !(lib.versionAtLeast kernel.version "6.16" && lib.versionOlder kernel.version "6.19"); }; } From f38c1b672cd25278954172518959d09184a007bc Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 16 Oct 2025 16:33:09 +0000 Subject: [PATCH 89/94] opentabletdriver: 0.6.6.0 -> 0.6.6.1 --- pkgs/by-name/op/opentabletdriver/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/op/opentabletdriver/package.nix b/pkgs/by-name/op/opentabletdriver/package.nix index 5856d185d9b2..2e5a79bdb483 100644 --- a/pkgs/by-name/op/opentabletdriver/package.nix +++ b/pkgs/by-name/op/opentabletdriver/package.nix @@ -23,13 +23,13 @@ buildDotnetModule (finalAttrs: { pname = "OpenTabletDriver"; - version = "0.6.6.0"; + version = "0.6.6.1"; src = fetchFromGitHub { owner = "OpenTabletDriver"; repo = "OpenTabletDriver"; tag = "v${finalAttrs.version}"; - hash = "sha256-NS/r4FU3dT7UT+R7NryRnU5RfLEN0E6pSqtNDpKMS7U="; + hash = "sha256-ixckDFE/LCSncNGjXqPT5GurPhm5aSVALOw4ZrBa5Ww="; }; dotnet-sdk = dotnetCorePackages.sdk_8_0; From bc37e667c4d5f134f4b9d4a12101d13a74614e9c Mon Sep 17 00:00:00 2001 From: Wolfgang Walther Date: Thu, 16 Oct 2025 18:45:46 +0200 Subject: [PATCH 90/94] Revert "workflows/eval: run Lix in the merge queue" This reverts commit 7ed2c7e297db3cd90e7e3e952e5068eb24ec6aef. This breaks the performance report, because it compares Lix vs Nix and needs more thought before re-application. --- .github/workflows/eval.yml | 9 ++------- .github/workflows/merge-group.yml | 2 -- .github/workflows/pr.yml | 1 - 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/.github/workflows/eval.yml b/.github/workflows/eval.yml index f2c7a2c13568..daa587908f98 100644 --- a/.github/workflows/eval.yml +++ b/.github/workflows/eval.yml @@ -11,9 +11,6 @@ on: systems: required: true type: string - defaultVersion: - required: true - type: string testVersions: required: false default: false @@ -108,7 +105,7 @@ jobs: - name: Evaluate the ${{ matrix.system }} output paths at the merge commit env: MATRIX_SYSTEM: ${{ matrix.system }} - MATRIX_VERSION: ${{ matrix.version || inputs.defaultVersion }} + MATRIX_VERSION: ${{ matrix.version || 'nixVersions.latest' }} run: | nix-build nixpkgs/untrusted/ci --arg nixpkgs ./nixpkgs/untrusted-pinned -A eval.singleSystem \ --argstr evalSystem "$MATRIX_SYSTEM" \ @@ -122,14 +119,12 @@ jobs: if: inputs.targetSha env: MATRIX_SYSTEM: ${{ matrix.system }} - # This must match the default version set in the Merge Queue. - VERSION: lixPackageSets.latest.lix # This is very quick, because it pulls the eval results from Cachix. run: | nix-build nixpkgs/trusted/ci --arg nixpkgs ./nixpkgs/trusted-pinned -A eval.singleSystem \ --argstr evalSystem "$MATRIX_SYSTEM" \ --arg chunkSize 8000 \ - --argstr nixPath "$VERSION" \ + --argstr nixPath "nixVersions.latest" \ --out-link target - name: Compare outpaths against the target branch diff --git a/.github/workflows/merge-group.yml b/.github/workflows/merge-group.yml index 6298aaa4424d..6ae96f0900f7 100644 --- a/.github/workflows/merge-group.yml +++ b/.github/workflows/merge-group.yml @@ -55,8 +55,6 @@ jobs: with: mergedSha: ${{ inputs.mergedSha || github.event.merge_group.head_sha }} systems: ${{ needs.prepare.outputs.systems }} - # This must match the version in Eval's target step. - defaultVersion: lixPackageSets.latest.lix # This job's only purpose is to create the target for the "Required Status Checks" branch ruleset. # It "needs" all the jobs that should block the Merge Queue. diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index a9d40fcdcf5d..9f4a2ba4d0b4 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -86,7 +86,6 @@ jobs: mergedSha: ${{ needs.prepare.outputs.mergedSha }} targetSha: ${{ needs.prepare.outputs.targetSha }} systems: ${{ needs.prepare.outputs.systems }} - defaultVersion: nixVersions.latest testVersions: ${{ contains(fromJSON(needs.prepare.outputs.touched), 'pinned') && !contains(fromJSON(needs.prepare.outputs.headBranch).type, 'development') }} labels: From 1c628df31939cd75540b3dfcf5b3ec988fe13ff6 Mon Sep 17 00:00:00 2001 From: Wolfgang Walther Date: Thu, 16 Oct 2025 18:47:51 +0200 Subject: [PATCH 91/94] workflows/eval: remove exception for devShellTools from report These were fixed recently, so we don't need the exception anymore. --- .github/workflows/eval.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/eval.yml b/.github/workflows/eval.yml index daa587908f98..7e96518b590e 100644 --- a/.github/workflows/eval.yml +++ b/.github/workflows/eval.yml @@ -284,10 +284,6 @@ jobs: diff.removed, diff.changed, diff.rebuilds - ).filter(attr => - // Exceptions related to dev shells, which changed at some time between 2.18 and 2.24. - !attr.startsWith('tests.devShellTools.nixos.') && - !attr.startsWith('tests.devShellTools.unstructuredDerivationInputEnv.') ) if (attrs.length > 0) { core.setFailed( From cfc1b4de701bb03ee2f6ed08ad845d06f67d35e9 Mon Sep 17 00:00:00 2001 From: misuzu Date: Fri, 23 May 2025 20:30:37 +0300 Subject: [PATCH 92/94] qsv: enable all features --- pkgs/by-name/qs/qsv/package.nix | 49 +++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 20 deletions(-) diff --git a/pkgs/by-name/qs/qsv/package.nix b/pkgs/by-name/qs/qsv/package.nix index 1e0f3a043df7..849f86fb4704 100644 --- a/pkgs/by-name/qs/qsv/package.nix +++ b/pkgs/by-name/qs/qsv/package.nix @@ -1,4 +1,5 @@ { + stdenv, fetchFromGitHub, file, lib, @@ -7,6 +8,27 @@ sqlite, zstd, cmake, + python3, + wayland, + withPolars ? true, + withPython ? stdenv.buildPlatform == stdenv.hostPlatform, + withUi ? true, + buildFeatures ? + # enable all features except self_update by default + # https://github.com/dathere/qsv/blob/7.1.0/Cargo.toml#L370 + [ + "apply" + "feature_capable" + "fetch" + "foreach" + "geocode" + "luau" + "to" + ] + ++ lib.optional withPolars "polars" + ++ lib.optional withPython "python" + ++ lib.optional withUi "ui", + mainProgram ? "qsv", }: let @@ -14,7 +36,7 @@ let version = "7.1.0"; in rustPlatform.buildRustPackage { - inherit pname version; + inherit pname version buildFeatures; src = fetchFromGitHub { owner = "dathere"; @@ -29,30 +51,15 @@ rustPlatform.buildRustPackage { file sqlite zstd - ]; + ] + ++ lib.optional (lib.elem "ui" buildFeatures && stdenv.hostPlatform.isLinux) wayland; nativeBuildInputs = [ pkg-config rustPlatform.bindgenHook cmake - ]; - - buildFeatures = [ - "apply" - "feature_capable" - "fetch" - "foreach" - "geocode" - "to" - ]; - - checkFeatures = [ - "apply" - "feature_capable" - "fetch" - "foreach" - "geocode" - ]; + ] + ++ lib.optional (lib.elem "python" buildFeatures) python3; doCheck = false; @@ -69,8 +76,10 @@ rustPlatform.buildRustPackage { # or unlicense ]; + inherit mainProgram; maintainers = with lib.maintainers; [ detroyejr + misuzu ]; }; } From 6cbf9eed62de44ff3d0d022957396c33a9441a3e Mon Sep 17 00:00:00 2001 From: misuzu Date: Fri, 23 May 2025 20:31:12 +0300 Subject: [PATCH 93/94] qsvlite: init at 7.1.0 --- pkgs/by-name/qs/qsvlite/package.nix | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 pkgs/by-name/qs/qsvlite/package.nix diff --git a/pkgs/by-name/qs/qsvlite/package.nix b/pkgs/by-name/qs/qsvlite/package.nix new file mode 100644 index 000000000000..9e82c69730f2 --- /dev/null +++ b/pkgs/by-name/qs/qsvlite/package.nix @@ -0,0 +1,5 @@ +{ qsv }: +qsv.override { + buildFeatures = [ "lite" ]; + mainProgram = "qsvlite"; +} From cf387b1aed88657a933769bf2e05e23641324d47 Mon Sep 17 00:00:00 2001 From: Farid Zakaria Date: Wed, 15 Oct 2025 19:24:22 -0700 Subject: [PATCH 94/94] httplib: added pkgconfig nix: update to inherit Co-authored-by: Masum Reza <50095635+JohnRTitor@users.noreply.github.com> --- pkgs/by-name/ht/httplib/package.nix | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ht/httplib/package.nix b/pkgs/by-name/ht/httplib/package.nix index 655bcd363afe..60cab3dd28ac 100644 --- a/pkgs/by-name/ht/httplib/package.nix +++ b/pkgs/by-name/ht/httplib/package.nix @@ -4,8 +4,9 @@ fetchFromGitHub, openssl, stdenv, + copyPkgconfigItems, + makePkgconfigItem, }: - stdenv.mkDerivation (finalAttrs: { pname = "httplib"; version = "0.19.0"; @@ -17,18 +18,36 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-OLwD7mpwqG7BUugUca+CJpPMaabJzUMC0zYzJK9PBCg="; }; - nativeBuildInputs = [ cmake ]; + nativeBuildInputs = [ + cmake + copyPkgconfigItems + ]; buildInputs = [ openssl ]; strictDeps = true; + pkgconfigItems = [ + (makePkgconfigItem rec { + name = "httplib"; + inherit (finalAttrs) version; + cflags = [ "-I${variables.includedir}" ]; + variables = rec { + prefix = placeholder "out"; + includedir = "${prefix}/include"; + }; + inherit (finalAttrs.meta) description; + }) + ]; + meta = { homepage = "https://github.com/yhirose/cpp-httplib"; description = "C++ header-only HTTP/HTTPS server and client library"; changelog = "https://github.com/yhirose/cpp-httplib/releases/tag/${finalAttrs.src.rev}"; license = lib.licenses.mit; - maintainers = [ ]; + maintainers = with lib.maintainers; [ + fzakaria + ]; platforms = lib.platforms.all; }; })