From 027419d257c9c6147b33f3c0461195caac6c716c Mon Sep 17 00:00:00 2001 From: Alois Wohlschlager Date: Sun, 27 Jul 2025 16:14:19 +0200 Subject: [PATCH 01/11] treewide: fix inappropriate usage of rust.envVars.setEnv It was designed for the Cargo build hook, which goes into `nativeBuildInputs`. Direct usage leads to an incorrect platform offset, which can for example be observed by the package `pkgsStatic.buildPackages` differing from the native one due to accidentally receiving the wrong environment variables. Fix the issue by using `buildPackages` as `nativeBuildInputs` would. --- pkgs/by-name/hd/hdr10plus/package.nix | 4 ++-- pkgs/by-name/li/libdovi/package.nix | 8 ++++---- pkgs/by-name/li/libimagequant/package.nix | 6 +++--- pkgs/by-name/ra/rav1e/package.nix | 6 +++--- pkgs/by-name/ru/rustls-ffi/package.nix | 8 ++++---- pkgs/by-name/ya/yara-x/package.nix | 6 +++--- 6 files changed, 19 insertions(+), 19 deletions(-) diff --git a/pkgs/by-name/hd/hdr10plus/package.nix b/pkgs/by-name/hd/hdr10plus/package.nix index 9358179afd41..54f2bfe44e81 100644 --- a/pkgs/by-name/hd/hdr10plus/package.nix +++ b/pkgs/by-name/hd/hdr10plus/package.nix @@ -1,7 +1,7 @@ { lib, stdenv, - rust, + buildPackages, rustPlatform, hdr10plus_tool, fetchFromGitHub, @@ -11,7 +11,7 @@ let inherit (lib) optionals concatStringsSep; - inherit (rust.envVars) setEnv; + inherit (buildPackages.rust.envVars) setEnv; in rustPlatform.buildRustPackage (finalAttrs: { __structuredAttrs = true; diff --git a/pkgs/by-name/li/libdovi/package.nix b/pkgs/by-name/li/libdovi/package.nix index 055c90f7d9c4..a1dad59c0652 100644 --- a/pkgs/by-name/li/libdovi/package.nix +++ b/pkgs/by-name/li/libdovi/package.nix @@ -3,7 +3,7 @@ rustPlatform, fetchCrate, cargo-c, - rust, + buildPackages, stdenv, }: @@ -27,19 +27,19 @@ rustPlatform.buildRustPackage rec { buildPhase = '' runHook preBuild - ${rust.envVars.setEnv} cargo cbuild -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget} + ${buildPackages.rust.envVars.setEnv} cargo cbuild -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget} runHook postBuild ''; installPhase = '' runHook preInstall - ${rust.envVars.setEnv} cargo cinstall -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget} + ${buildPackages.rust.envVars.setEnv} cargo cinstall -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget} runHook postInstall ''; checkPhase = '' runHook preCheck - ${rust.envVars.setEnv} cargo ctest -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget} + ${buildPackages.rust.envVars.setEnv} cargo ctest -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget} runHook postCheck ''; diff --git a/pkgs/by-name/li/libimagequant/package.nix b/pkgs/by-name/li/libimagequant/package.nix index b9a4acaf44fe..a1faacec910f 100644 --- a/pkgs/by-name/li/libimagequant/package.nix +++ b/pkgs/by-name/li/libimagequant/package.nix @@ -2,7 +2,7 @@ lib, stdenv, fetchFromGitHub, - rust, + buildPackages, rustPlatform, cargo-c, python3, @@ -37,13 +37,13 @@ rustPlatform.buildRustPackage rec { postBuild = '' pushd imagequant-sys - ${rust.envVars.setEnv} cargo cbuild --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget} + ${buildPackages.rust.envVars.setEnv} cargo cbuild --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget} popd ''; postInstall = '' pushd imagequant-sys - ${rust.envVars.setEnv} cargo cinstall --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget} + ${buildPackages.rust.envVars.setEnv} cargo cinstall --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget} popd ''; diff --git a/pkgs/by-name/ra/rav1e/package.nix b/pkgs/by-name/ra/rav1e/package.nix index cd4e0e92260e..5efce1866054 100644 --- a/pkgs/by-name/ra/rav1e/package.nix +++ b/pkgs/by-name/ra/rav1e/package.nix @@ -1,6 +1,6 @@ { lib, - rust, + buildPackages, stdenv, rustPlatform, fetchCrate, @@ -43,11 +43,11 @@ rustPlatform.buildRustPackage rec { checkType = "debug"; postBuild = '' - ${rust.envVars.setEnv} cargo cbuild --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget} + ${buildPackages.rust.envVars.setEnv} cargo cbuild --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget} ''; postInstall = '' - ${rust.envVars.setEnv} cargo cinstall --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget} + ${buildPackages.rust.envVars.setEnv} cargo cinstall --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget} ''; passthru = { diff --git a/pkgs/by-name/ru/rustls-ffi/package.nix b/pkgs/by-name/ru/rustls-ffi/package.nix index d86c53fd8441..b3b78948696c 100644 --- a/pkgs/by-name/ru/rustls-ffi/package.nix +++ b/pkgs/by-name/ru/rustls-ffi/package.nix @@ -6,7 +6,7 @@ rustPlatform, cargo-c, validatePkgConfig, - rust, + buildPackages, libiconv, curl, apacheHttpd, @@ -42,19 +42,19 @@ stdenv.mkDerivation (finalAttrs: { buildPhase = '' runHook preBuild - ${rust.envVars.setEnv} cargo cbuild -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget} + ${buildPackages.rust.envVars.setEnv} cargo cbuild -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget} runHook postBuild ''; installPhase = '' runHook preInstall - ${rust.envVars.setEnv} cargo cinstall -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget} + ${buildPackages.rust.envVars.setEnv} cargo cinstall -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget} runHook postInstall ''; checkPhase = '' runHook preCheck - ${rust.envVars.setEnv} cargo ctest -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget} + ${buildPackages.rust.envVars.setEnv} cargo ctest -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget} runHook postCheck ''; diff --git a/pkgs/by-name/ya/yara-x/package.nix b/pkgs/by-name/ya/yara-x/package.nix index 9972818aa0da..ccaebd4bca7a 100644 --- a/pkgs/by-name/ya/yara-x/package.nix +++ b/pkgs/by-name/ya/yara-x/package.nix @@ -1,6 +1,6 @@ { lib, - rust, + buildPackages, stdenv, fetchFromGitHub, rustPlatform, @@ -29,11 +29,11 @@ rustPlatform.buildRustPackage (finalAttrs: { ]; postBuild = '' - ${rust.envVars.setEnv} cargo cbuild --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget} + ${buildPackages.rust.envVars.setEnv} cargo cbuild --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget} ''; postInstall = '' - ${rust.envVars.setEnv} cargo cinstall --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget} + ${buildPackages.rust.envVars.setEnv} cargo cinstall --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget} '' + lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' installShellCompletion --cmd yr \ From 037491370c1df6206b289914ff543ce193993cb1 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Fri, 24 Oct 2025 10:28:54 +0300 Subject: [PATCH 02/11] python3.pkgs.pyglossary: remove unused patch --- .../pyglossary/fix-install-issues.patch | 93 ------------------- 1 file changed, 93 deletions(-) delete mode 100644 pkgs/development/python-modules/pyglossary/fix-install-issues.patch diff --git a/pkgs/development/python-modules/pyglossary/fix-install-issues.patch b/pkgs/development/python-modules/pyglossary/fix-install-issues.patch deleted file mode 100644 index d9e5db1a8111..000000000000 --- a/pkgs/development/python-modules/pyglossary/fix-install-issues.patch +++ /dev/null @@ -1,93 +0,0 @@ -diff --git c/pyproject.toml w/pyproject.toml -index abfb59ac..8f9c2121 100644 ---- c/pyproject.toml -+++ w/pyproject.toml -@@ -416,11 +416,10 @@ version = "5.1.1" - description = "A tool for converting dictionary files aka glossaries." - readme = "README.md" - authors = [{ name = "Saeed Rasooli", email = "saeed.gnu@gmail.com" }] --license = { text = "GPLv3+" } -+license = "GPL-3.0-or-later" - keywords = ["dictionary", "glossary"] - classifiers = [ - "Development Status :: 5 - Production/Stable", -- "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", - "Operating System :: OS Independent", - "Typing :: Typed", - "Programming Language :: Python :: 3.11", -@@ -430,6 +429,9 @@ classifiers = [ - requires-python = ">= 3.11" - dependencies = [] - -+[project.scripts] -+pyglossary = "pyglossary.ui.main:main" -+ - [project.optional-dependencies] - all = ["PyICU", "lxml", "beautifulsoup4"] - -diff --git c/setup.py w/setup.py -index fd38a060..19df9ee3 100755 ---- c/setup.py -+++ w/setup.py -@@ -8,8 +8,7 @@ import sys - from glob import glob - from os.path import dirname, exists, isdir, join - --from setuptools import setup --from setuptools.command.install import install -+from setuptools import setup, find_packages - - VERSION = "5.1.1" - log = logging.getLogger("root") -@@ -46,29 +45,6 @@ def getPipSafeVersion() -> str: - return VERSION - - --class my_install(install): -- def run(self) -> None: -- install.run(self) -- if os.sep == "/": -- binPath = join(self.install_scripts, "pyglossary") -- log.info(f"creating script file {binPath!r}") -- if not exists(self.install_scripts): -- os.makedirs(self.install_scripts) -- # let it fail on wrong permissions. -- elif not isdir(self.install_scripts): -- raise OSError( -- "installation path already exists " -- f"but is not a directory: {self.install_scripts}", -- ) -- open(binPath, "w", encoding="ascii").write("""#!/usr/bin/env -S python3 -O --import sys --from os.path import dirname --sys.path.insert(0, dirname(__file__)) --from pyglossary.ui.main import main --main()""") -- os.chmod(binPath, 0o755) -- -- - root_data_file_names = [ - "about", - "LICENSE", -@@ -146,19 +122,14 @@ setup( - name="pyglossary", - version=getPipSafeVersion(), - python_requires=">=3.10.0", -- cmdclass={ -- "install": my_install, -- }, - description="A tool for converting dictionary files aka glossaries.", - long_description_content_type="text/markdown", - long_description=long_description, - author="Saeed Rasooli", - author_email="saeed.gnu@gmail.com", -- license="GPLv3+", -+ license="GPL-3.0-or-later", - url="https://github.com/ilius/pyglossary", -- packages=[ -- "pyglossary", -- ], -+ packages=find_packages(), - entry_points={ - "console_scripts": [ - "pyglossary = pyglossary.ui.main:main", From 423c5bab5fab960d9ed3e1a8a44407f86a00d828 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Fri, 24 Oct 2025 10:38:24 +0300 Subject: [PATCH 03/11] pyglossary: enable cmd UI features --- pkgs/by-name/py/pyglossary/package.nix | 6 +++++- pkgs/development/python-modules/pyglossary/default.nix | 7 +++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/py/pyglossary/package.nix b/pkgs/by-name/py/pyglossary/package.nix index 8c96c385d8a2..3f763dc617c0 100644 --- a/pkgs/by-name/py/pyglossary/package.nix +++ b/pkgs/by-name/py/pyglossary/package.nix @@ -2,4 +2,8 @@ python3, }: -python3.pkgs.toPythonApplication python3.pkgs.pyglossary +python3.pkgs.toPythonApplication ( + python3.pkgs.pyglossary.override { + enableCmd = true; + } +) diff --git a/pkgs/development/python-modules/pyglossary/default.nix b/pkgs/development/python-modules/pyglossary/default.nix index 9f9012c06d4a..6617af80e51d 100644 --- a/pkgs/development/python-modules/pyglossary/default.nix +++ b/pkgs/development/python-modules/pyglossary/default.nix @@ -21,6 +21,9 @@ # for GUI only pygobject3, gtk3, + enableCmd ? false, + prompt-toolkit, + tqdm, }: buildPythonPackage rec { @@ -58,6 +61,10 @@ buildPythonPackage rec { ] ++ lib.optionals enableGui [ pygobject3 + ] + ++ lib.optionals enableCmd [ + prompt-toolkit + tqdm ]; buildInputs = lib.optionals enableGui [ From baf3ae626d9060b896ae1c39163da35eea7a0351 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Fri, 24 Oct 2025 10:42:14 +0300 Subject: [PATCH 04/11] pyglossary-gui: add cmd interface as well --- pkgs/by-name/py/pyglossary-gui/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/py/pyglossary-gui/package.nix b/pkgs/by-name/py/pyglossary-gui/package.nix index b9f68d286190..71b74f9cb113 100644 --- a/pkgs/by-name/py/pyglossary-gui/package.nix +++ b/pkgs/by-name/py/pyglossary-gui/package.nix @@ -5,5 +5,6 @@ python3.pkgs.toPythonApplication ( python3.pkgs.pyglossary.override { enableGui = true; + enableCmd = true; } ) From b9464c6a20274246fe4290c6dc8565ce4f800f82 Mon Sep 17 00:00:00 2001 From: Adam Dinwoodie Date: Sun, 2 Nov 2025 20:29:50 +0000 Subject: [PATCH 05/11] tests.fetchtorrent: verify and delete in postFetch The Sintel torrent used for testing fetchtorrent is about 124MB, which is downloaded and cached for every test every time the test inputs change. Avoid that by instead validating the file hashes in the postFetch stage, then deleting the downloaded files, so the only thing that needs to be stored is an empty directory. --- .../fetchtorrent/test-hashes.sha512sum | 11 +++ pkgs/build-support/fetchtorrent/tests.nix | 88 ++++++++++++++----- 2 files changed, 75 insertions(+), 24 deletions(-) create mode 100644 pkgs/build-support/fetchtorrent/test-hashes.sha512sum diff --git a/pkgs/build-support/fetchtorrent/test-hashes.sha512sum b/pkgs/build-support/fetchtorrent/test-hashes.sha512sum new file mode 100644 index 000000000000..fe378eb1c5f8 --- /dev/null +++ b/pkgs/build-support/fetchtorrent/test-hashes.sha512sum @@ -0,0 +1,11 @@ +1755c55e08aec3872db177464e0bc3f48c89aa40c1ec32605b472d88f6e92963eb08a10aa37bc47e837ae693db18652f40dfbcd6bf26f07278f0566a19c72cd5 poster.jpg +3ec33eae8153b6e2bdfff8157b332e6f0cfbc14d0c30e6a34042deecf0cff01ee19ca54314678b5ad970ae669da8cb91425e96253caf91d95ae01a62917827b7 Sintel.de.srt +ceac1ea59a9224b26946c6683acfaae27e1551c696fb2c632b55151c17f3faa8f930bbd93904cd7a13a896ad3d670b01e2f2bc1a8851060e05fedd85f804ba17 Sintel.en.srt +6efbc68f872c212f6579c5a5d42d6c2a60d775d32be8a7badcd147dbfc07b24cb2cc97e04a796af4002fcd4c8860a7061aed5d59a1280e4352d1bbd701d612a8 Sintel.es.srt +5619ad5bc7ca82e7f1f3b5e9197ab6ef6f5edd7293d396a3c036fef95d5ef592cf9e8d403e8532f4ba71a93fc9556614bfba3473eceae392d2e3175116c06f95 Sintel.fr.srt +fa93c051491b4e11f8e7a643c2138198f795315c942134b94ceace1adda4a5b28dc58b01b507e0da4c26784fc968f47bca1409f985eec2bf80c3e694662ed7c5 Sintel.it.srt +63426110ed7aa60ed3525078fa324cef4276393b4ada55e0a8cf8292500fdd59c2984e299a4e4f65e4f273b8ae2624da22700de4a55054b00e9d987f606c3c7f Sintel.mp4 +5fb04c25fda9dada8c808a9f289cec2cca001d60966b69d61ad663240a869c76dd0aff605122823ccbe199e266331f6a4b11a414bba92999a7041c4b534ef432 Sintel.nl.srt +510f052cbbda0b9fc31679b9a26cc16766df9054fc15b66cff475975725a1e8452e69a28a6f90bb965330a49e49bbf42a90efb13de07eaece7d273ef1ca7978a Sintel.pl.srt +510dc0eca608bd0fdd9633ea80365c916f8c4f0fd8e2fdf77534f455f03814401d210df47d940be4fd2fb7ab4c3ff5038a548846c5fa9badbe77b1731b3cae29 Sintel.pt.srt +57c014bd3d781a94850f85fd6c9364421e17cb2c4e25e22c0a8578f50c874e3f2eaf5a0b3da615db7dc95efbe2e6be7c7238e2e1ba27671c818b9e34b05ee1d0 Sintel.ru.srt diff --git a/pkgs/build-support/fetchtorrent/tests.nix b/pkgs/build-support/fetchtorrent/tests.nix index 18774ba1d503..210a4d3bf9dd 100644 --- a/pkgs/build-support/fetchtorrent/tests.nix +++ b/pkgs/build-support/fetchtorrent/tests.nix @@ -2,15 +2,29 @@ lib, testers, fetchtorrent, + emptyDirectory, ... }: let + # This meta attribute isn't used anywhere, as the actual derivation + # realizations are only empty directories. It's maintained here as a record + # of the details of the intermediate product that exists briefly while + # building the test derivations. + # + # Ideally we'd use a smaller download, but neither of the Bittorrent backends + # supported by fetchtorrent appear to support torrents that are only reliably + # seeded by HTTP sources rather than other people using Bittorrent clients. + # Sintel was the smallest torrent I could find that had a free license and + # was reliably seeded by other Bittorrent clients. + # + # For more information, see the discussion at + # https://github.com/NixOS/nixpkgs/pull/432091/files/bd13421b2b70f3f125061018c800439ef2d43e8d#r2264073113 sintel.meta = { description = "An open source short film to show off open source technologies."; longDescription = '' An independently produced short film, initiated by the Blender Foundation - as a means to further improve andvalidate the free/open source 3D + as a means to further improve and validate the free/open source 3D creation suite Blender. ''; license = lib.licenses.cc-by-30; @@ -21,71 +35,97 @@ let http.url = "https://webtorrent.io/torrents/sintel.torrent"; magnet.url = "magnet:?xt=urn:btih:08ada5a7a6183aae1e09d831df6748d566095a10&dn=Sintel&tr=udp%3A%2F%2Fexplodie.org%3A6969&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.empire-js.us%3A1337&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2F&xs=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fsintel.torrent"; - flattened.hash = "sha256-EzbmBiTEWOlFUNaV5R4eDeD9EBbp6d93rfby88ACg0s="; - unflattened.hash = "sha256-lVrlo1AwmFcxwsIsY976VYqb3hAprFH1xWYdmlTuw0U="; + # Sintel isn't a massive download, but it's not small. There's also no real + # value in storing copies of it in Nix caches, which is what happens by + # default when this test succeeds. Avoid that by verifying the downloaded + # files using `sha512sum` in the post-fetch hook, then deleting the files so + # the actual derivation result is an empty directory. + # + # Chain `&&` in the postFetch phase because the transmission backend does not + # run that phase with `errexit` enabled. + flattened.postFetch = '' + pushd "$out" && + sha512sum --check --strict ${./test-hashes.sha512sum} && + sed 's/.* //' ${./test-hashes.sha512sum} | xargs rm --verbose && + popd + ''; + unflattened.postFetch = '' + pushd "$out" && + pushd Sintel && + sha512sum --check --strict ${./test-hashes.sha512sum} && + sed 's/.* //' ${./test-hashes.sha512sum} | xargs rm --verbose && + popd && + rm --dir --verbose Sintel && + popd + ''; + + # Fixed output derivation hash is identical for all derivations: the empty + # directory. + fetchtorrentWithHash = + args: + fetchtorrent ( + { + hash = builtins.convertHash { + hash = emptyDirectory.outputHash; + toHashFormat = "sri"; + hashAlgo = emptyDirectory.outputHashAlgo; + }; + } + // args + ); in # Seems almost but not quite worth using lib.mapCartesianProduct... -builtins.mapAttrs (n: v: testers.invalidateFetcherByDrvHash fetchtorrent v) { +builtins.mapAttrs (n: v: testers.invalidateFetcherByDrvHash fetchtorrentWithHash v) { http-link = { inherit (http) url; - inherit (flattened) hash; - inherit (sintel) meta; + inherit (flattened) postFetch; }; http-link-transmission = { inherit (http) url; backend = "transmission"; - inherit (flattened) hash; - inherit (sintel) meta; + inherit (flattened) postFetch; }; magnet-link = { inherit (magnet) url; - inherit (flattened) hash; - inherit (sintel) meta; + inherit (flattened) postFetch; }; magnet-link-transmission = { inherit (magnet) url; backend = "transmission"; - inherit (flattened) hash; - inherit (sintel) meta; + inherit (flattened) postFetch; }; http-link-rqbit = { inherit (http) url; backend = "rqbit"; - inherit (flattened) hash; - inherit (sintel) meta; + inherit (flattened) postFetch; }; magnet-link-rqbit = { inherit (magnet) url; backend = "rqbit"; - inherit (flattened) hash; - inherit (sintel) meta; + inherit (flattened) postFetch; }; http-link-rqbit-flattened = { inherit (http) url; backend = "rqbit"; flatten = true; - inherit (flattened) hash; - inherit (sintel) meta; + inherit (flattened) postFetch; }; magnet-link-rqbit-flattened = { inherit (magnet) url; backend = "rqbit"; flatten = true; - inherit (flattened) hash; - inherit (sintel) meta; + inherit (flattened) postFetch; }; http-link-rqbit-unflattened = { inherit (http) url; backend = "rqbit"; flatten = false; - inherit (unflattened) hash; - inherit (sintel) meta; + inherit (unflattened) postFetch; }; magnet-link-rqbit-unflattened = { inherit (magnet) url; backend = "rqbit"; flatten = false; - inherit (unflattened) hash; - inherit (sintel) meta; + inherit (unflattened) postFetch; }; } From deff76bf59851254d292906ca731eb4eeada1fbd Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Mon, 3 Nov 2025 23:17:01 +0200 Subject: [PATCH 06/11] python312Packages.scipp: 25.08.0 -> 25.11.0 Diff: https://github.com/scipp/Scipp/compare/25.08.0...25.11.0 --- pkgs/development/python-modules/scipp/default.nix | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/scipp/default.nix b/pkgs/development/python-modules/scipp/default.nix index a308e8078d07..20b85a5e02ad 100644 --- a/pkgs/development/python-modules/scipp/default.nix +++ b/pkgs/development/python-modules/scipp/default.nix @@ -39,18 +39,17 @@ buildPythonPackage rec { pname = "scipp"; - version = "25.08.0"; + version = "25.11.0"; pyproject = true; src = fetchFromGitHub { owner = "scipp"; repo = "Scipp"; - # https://github.com/scipp/scipp/pull/3722 tag = version; - hash = "sha256-nLccJlFnnVTpamph2oIaMxRD5ljrw6GlCnnTx7LfrO0="; + hash = "sha256-/gCLWRpBnOjNMBEpJe0JSda496iXDFnCE+R+zIaRkWo="; }; env = { - SKIP_CONAN = "true"; + SKIP_REMOTE_SOURCES = "true"; }; build-system = [ From 92fe9345e507bfe47e7ed59237784fa1c1f43bd3 Mon Sep 17 00:00:00 2001 From: Adam Dinwoodie Date: Sat, 8 Nov 2025 17:20:29 +0000 Subject: [PATCH 07/11] tests.fetchtorrent: store torrent file locally Avoid being unnecessarily dependent on webtorrent.io being available. --- .../fetchtorrent/test-sintel.torrent | Bin 0 -> 20792 bytes pkgs/build-support/fetchtorrent/tests.nix | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 pkgs/build-support/fetchtorrent/test-sintel.torrent diff --git a/pkgs/build-support/fetchtorrent/test-sintel.torrent b/pkgs/build-support/fetchtorrent/test-sintel.torrent new file mode 100644 index 0000000000000000000000000000000000000000..c3775deb9e2bba4d38805d99bf995fa1168505ca GIT binary patch literal 20792 zcmYeXuu9C!%P-AKPBk&GDorV{($_C3N=(j9Ez-+LO-;^7Eh^S6NGwWB$t+IQ%P&f| zGP5+ZG&F|m(#^>%F3HIuL33)3u?d<@$@v8ZsYS)5MQN!;dL`LlJ5qCujnS0l7o_Ha z9ajW)iJ`Hvd1{UkOjT+{K~8>3Cc>4eImU))CZy&TWEQ3BW)IB@Ks}N(w+0Bbk<&Z)a#=m0XmXSdyBekW@*W4r7Rp%=|osl*E$M zOhXe(14~0QGh_2q3#-(;(PhoYdl+6f>)w)V%bP zj7&o_Q=?Q9tAfOmj2uH_tKiJMlGGf%lvKUqqLS29Bz2~SCYb6{^Dxz!VpCU)q0Y?E z0@J*-A`Eq=CT5uGGD|Sj8Ce>c7@8w_#sKD-+yWC+pBS5CnwXb^VWO!q7MlyOs53Rh zG_L@|g+>O3Sj;ObMYq?)%+SyjZlHlxL4I*bYLQ-6L3(Oxs)6StwYaYR>DaC0d18mGlIgpd68r3==k3})E&E`dp-si-$kUF$ zZ^nF|Wc~B^+#aRXECL_C-9FVa{Vl&k*rkotk17}@UolC%5h^kmYzqgh>I9GgpV?e3MBaJD^ss{6a-Q@b3`>oM-<2>)c(iI_`M}IGCbCB2X z^;Fw&YUS*x&%7tst=AMYouvM8qixjZ8U80%FS+~EXV2>iKRyPfFa-ZsS;O)CWuuzt zuDGh;1>5VVIBzTbzT(*5?>RojZ^T`f=&~+idtkh1TAjisWo;)hS<5)D zb%x23Ta%+82XF0VF@>U0wLd(G!h<&2)R>0c%< zU2-;O#dJ2Mu&TRfo}AtC#{JNvtJS~jyKZlpEo1Ft(SPbJ9uu>lN;~Sz98u6nqxuzl%MReQCn<7x6jVx|+? zE}Z+c;h(#)&mzfX_wWBL`)$P}u;)_C;fC`c=9D{D%w{=L74PZEr5$Qy@O=5XT_%&$ zejVQ~)^p|Iu|KBwI_JwAa!+IN?dX>|80&kKf5EFu8Vwr))ylv9t>X8%`ud1bEaTZP zZQS2|Blh>U-Q?dCt>F-_bEci|tLky<=Z$+Z&*XlTH5UtiAHiSr{Xu2qC-2F%EBLA> zUA?wuPWF``hbD!yEK6sd+cs@&y`kmwy8@v)lP*`q*@gT3KkR>J!u8OF+Vj4v$s11o zT_2|#_w%{)Qz@|?<1@1w*X^G=wPy9qBL{m<^h$2r-+S+j!QqK}ANaj}k){7DCO|2# z(m3+_&hKxsclLhQo?QMwYOh6%L>T*8jZ@q&EtOOrSTfu!ozTp3+G3VZ*_xS0PS&hU ztE!p#py_y)ZF`r-q}}R?%vRA-ncf?kZ}BKK{VuyI?fQ~ehU4?RYRPXK=EU>l9kP1w z>1o{&wb*JmFGEy<=ElwyN)P9DJ8h7wkjZ#9->y8x{d0eNbf6l?-CB#ufW?xSS3fyV0^S_;Sq)=hYMtgfp2^H~68yXmEW-S&v#{B#v zHFJjEr_j~A!P)~E)r z-zFpWX?~hbS%c>K_T)(p8C)@Y*G!wEEL~71@OjF_ycAa1qPtq2|8{=uPyg>N)NN-j z(*MDwMxs4<_VZ(xt*5-b*50Y{#niwiX9EAy#`Nh9YaPy=TF;+)Q9R(ocl~@vdwU)q z4Lj%5LU#UE#_kB`_8*%>%CbYw9}H~S?0EDwyG)V0-?Jy*rlhWlWv+ankn;aRjN`;) ziCvP{KfX!-|K`x5t*2t8&;HxgP}!Vn^XRt25wGyYu4lR87iH87?~I5vHNSqwO>hn>;CyI^-j~g!K7xq zf2ZM;%596?Hg65@*O6D6D^ck#WzzrT*N@7kx2A_*-AORrUA#L}u>J830pV#Ew8bqx z@Lg5(x^}qv_Z5|nJ)tF9&8b3s8I6lCz2aHvtZMFC`lId?gYZeKrpl*mryI6DXj$m^ z^zu{T%6*?-22R~5SD&@Gxy`ZeNZR|Vf3j`n)Akk2?m28>Dj8uCbf{F;e}6ZpiAt=1PKvQ*73k9}m9a%ubXhzGF? zG`~C&n0#@4+03Iix-QSwj@-%X@cIAI53=h|+I2S_`{}>EgyT=YkE-m~-Cwo}n#FC5 z5|3d2_wZx0=>20G3(9s>{&}D;bRlH? zZwsy|<%b=_)^CqI6ndkYVj&)*ZY0PfJYo z_51sT`Af<7>oyzpqj=0q|CxP~vz2-+-T!sL+zaw-Cw^{v-z_7`R$;Ey+0Zhbp)FZ> z)qZjBq~)FhA~z1*3d~n$w%>Njuc*VcIWtFM?&eRk&v_qqw_N*B@8!{xr7G24??Y7s zgJl9NX9Q#{c7G>ft-T~?^3zY5ErEGrQw4LT%x~{HR_*fYik%Hlz~i3X?^5pXetqe* zgRp-=w)XNTjyg+YHM6}wU5K+SpBr+*rh4nF)|}=wpQc+C8`XR+{j~3Y@@31@-`9(! zbvsYhy78s&^P4X?4;sg<_s0 z9QYD#U6DPF-RiaJq1?AS6u(5d^Zwoz=ewjv_Ab-c`X;~qy;{1TnV#K>Q~dFRFHG;C zv1-ltw*?CpWD7sa&-G!Px!xhMXrJ#o!4m75-Q6dDSk0HKa^oxX-7uG5-+GqTP9OcP zsWUGRvJEddGFD}TLx#^jfbaNtC@X>j5Hr-k0bXZ`f*sacMOEM$! zC#M@+yt7qYH00?Me$60(W2WLNFYP1d_J3Zm7M#3sP$Z{(&y#xtG9Kkdgi~~>Xfc%H9g;XLdJ8pY3Hmqe4Nts_tB3% ze;ivpbbf!nllwB=cfD`QUA4qqQDe!I=`(ICi(Xu#{LL`*`^W1JeZ2?Poj7;9Dd_k= z_g#nMx^`v=*7vd%bNs0NDr~Ttd*0G?C%2Q_6AaEyG}_Q2e8FB&?Wu8!ZCv83J&cU1 zY4ycCPAQeIFHZMXoNc~GWc@5*tDJ<7S6JImpnvw9?cvcO zZ{n*K9%cS>xJ$++KmMFh0PE*%@)b+j5567l`P{Q|W zt$BPjM@LBPyuyi}1pYnNNZR$}$hSFGtK(U;v^)<*C;oO`$b6tRUrO_35Ff{P-p+%M z)MB$=xCdK?b#)1Ee#BOMJ;iIOzynV)Kh59Xp65)scYfP1_i|S5+^pa6s&!G!qE9(5 z?u~4y`7ibD_Zr0@@f?|7>Q8^^{Y&Vd?)324(TxRfGz7E1m;ROiIPFTzOii`F^LROz zt$oM%)WpcAIyK0h&280gmoqKptDkB1uxg7ezxC$i%)PDqIN86y;0OqI^z*-9HZ58{ z`}EK28=e(DRQ(^G^YxtBq6+@MlYZaPo_3_cpw{Nhtexj}z2pjalj1VJpZvn)9&g3} z>t|)Uq!*XE6i>VPdD)5P_{EbBrfsW=I>wW^_>$1$_nNIX!t$a!g1+BarX5z*d-<$b zNk(36ZgR->VD$&lRWpxF{`V!eRm^VjQrUYmZbxfs^d^Mq-M-6LD9U7hds2b=3@zX5 z4)RLhB0r0NI@|CiJT_rtRhoD3jH^96J^L#}k8vD(QD$__^LV|#Rm=a@MbSTAU!PZI z)_0UwbY{5kLD%LZZLjo$Ro^a@&hG8EkvsSDec;}vn`OKOyLohuv8V6uSbbXJz4Po( z0-Mfx?Yne&!m9P1DTk8}Z!11Av-HJ+!pGKnjr*Eh%g&{J-FPsC*Yv#j&5r`R_CJ5t zba36v{kwl_KYFX+FlqXtm&Ota-}k<(x-y@I@uFm|UX-x-o~xqM7hU+kcwnBu;$=b# z`&fQA+v%Ox6KYd6<%)9G`tVB1>S$nf2($8^HWsPfr>D ztrFin?R#9sW-lEl>|<7Q$is1J_HPC|Wv0WI+Jg2Q%$5snD|}`qA#&qVU1s?D`$jB$ z&Ylxy2_L#S>xFFn{_GFWSsZh(DsR_V*uVSx(NjFh6%#J~e4CQJ?#x=FtUS}kaJ@!P zzSrw7v-0|SeqTB7+9`)Qk7_;44!=_n*p>ROszy9|Me22N$=VIGVwTJ6+MMS2@?C`=rof_v}{IB#3cxId6Egdcp^Mz4WUw+H! zD>HpUi)TbX?_bcR^K-GN#w)Qi;X5w({`55Dp1kDYMy;kdr>AQ_lDbxQa?vDS?@rfS zpO36sbkp!fXy1z;((5x`I^WNzDqUT#W~lxpDbeHp$F~c9Z=Snac<<(|1>6^$v{vYE zw|O{aAIH?p)MpkuGfvKJ>(I!5H9bA@=DMuU$~?(B;e=I?=8z>Z$QI7doIsPuWs;NHg(=H36)Js ze;H4<$fkPf3!DnLyEISEW2S#H-_?EFzBueX`nMvnKY5=0!BFj4m)X=V+&oj%)Azx?;P0eP%}q;k%xHZvN5IspMlgp;&qAc)_n}ZHrZ( z{_+>{gBikh-|U%zTQX>9m9c3xhi z=2NjBTJ3i(-*pbn+>zT?C8X!IWMk&u-M`l*>^jUfRchBSD~~r^^Yw0c8EoL+D6ZFa zYu}2uk5a7DfBrTRdwB8G-<*YKmEL$>I5Bg6hQh0_GmHu=_A6_t-}rlOz2{xm+ZJoJ z8`r$d{c>qFx8V26;Nw4CeXd+*S5UfOt!#Mg>$#XH+n@I?T%LQX!|B=C$)6$%QeD^B ztYz36x8`Vp>h);xv_~7P8jJgrigwx@-Zg*yjJU@6)2D9Qu+q7A`p)yJ%jP`$WWV>L z)56a43el6f`ro_1QK)$;o5gXmt3Ycf%cEGn%}-Q&YSq&1%8#x}zv3vQvD~#|({^9W zi|79yI41t0!tZ#0-Lsl$ceNake{7YooPFnG;-k&MDGpD9KQ=j~bVtO7J;&B&9KBPTqRCxWJ30Lr>$|hpzcIYn_viAL^eJ}h zTB~ngVbZkpzOl-WSAoTO$~Dy(UsK6gvrGXVK#WxRGC+2@h-M++hV)G)texcZ` zXy^EUmql4OsH}C|_-axhcgh=9dOP|TQxVdTsiUY);Z6wzB{xorfaQdVRQQPCAM0|M+~j1cU0I;4)d2jqadB1;bT`( zk+fJ)}4-DE2 zE1szEee<4pb^3jldFu}Zhi^LIA$alYhO7POTtA&Px14FUe_H7#cSwXcWF<2d%{a&t|ROqiR%)RQ3+Tld!=fBA4GgQiDjhv>Ht;n%OeJoY-N!Qif?ZgO*weh#p<)yrg?|T4$oY~AE5FwOIklu=Xpd=)uqmD?$@3^SND6c zZ-L6THC#!*mbXp&z^v?hIC6L6q2$KK=W16zhsRyWoL_VD`S110w~S4MOInSXgAP}7 zxvRR&*bw$M;X{8r&#m{pZeMuh)~HA95-u%!IsMve-bF%E*&FAY`v$JM9KCV=f9F@s zR=;buXv-=twR98p+9~9_XX?W%wO!`_rCGjhOl6;#$>A&CJT zzFXr!>y7XwTUIn}WXUp^HMch9uT%Avy`h)x-ErLbI=5k4X^!Kbwa;zBvyZRmyFD|Z zQsMROdBV#55mI}?3-pZEY@NH%>uE{bG@HHiR&HaTIpLe^VV=qNZZiH~9xyjpAY1*; z@-P23Et3BAHqYnro!udBX1sUpeohF^d(3+;XD!FxKB0w~jl$>F`iOYN@oqUdHS}(a zXx5U26J(kUh~>?^DKGeTs&0OmwaBbM!$K5j46Nh#USk}z60X6U*GUwIIFic|2TK#|D%b& zC7!Mljr7-x=r3s5H(mbWtBL9g>ZSEdUS%x&+IYSAP@ek#P5&+89j<=3!7@|x(}mVO zxAh-PRtv8Cyd==4>iY9Zt-lIi$i8@f>fp3DAKO|NG+gGm`zv@Z-@4nsEc`=%RGi%N zR@|`iNz+Ac&vVE3{aP!iq%nne?~i9jTh}sPxe(0AZDMUE6=2paF0eQB(!PI}Q@Og` zeA$Ck1-HkStvKj?!65Or@sz#X#WWO;Jwdn2@lEk>ql9&HPp@bdRI7UnA|c{%;>w+vI(q_o6d;T`ICoxlOo7nOtv7c5L9z1<|L*^r!m&@iE z3ax&%E_0si%pIQ?z`1$4=+j~L|&j}U#5O}wKVd$mh zTU2~HJbFZ5*W7wrkl+fQ@;Tv5!RJmEGI*V(r(-cE53n$XL7 z$F^{HyOhE-{Rz6w;hND~58Vs9cxG?hJTHyLaLXKXZJQUy~4< z^IpKuJ#6dZIS(%%|MqT2GwVF}a<@PoF+PKJ4aZI11k^=o-+`Jn^TW3)aqdezvr)x_vA^l>x{O1dowk`QrypEAcmG2w0a&9(X?0oFGE1|!Re~FJ*&`#O; zvB!dKgcfk$H;`Iydeok~cE_uDNow zYvqZT$^940r9aI+=6LP=souSl*YEqW>wMe^W~TXwaD_lWVX@V znfoT^*8SD0)*mLs9NwkBdy4$-$5Kxi6U{!Hw=SuEU?^Kraaj6dZ-C~)?b6+Uemg&7 zx@3B|?)!#Io=m$Zar&sek#ESmo|0qgdLXza=l*2D6Cd9_`p$W2PR~s*g$eRO4ZTx$ z&b6NJwEn`~uY8MFh<@PPZMSFr;u~GNy7&Aja-KBlRb6hX2768yPr>_3bIRp1pV{wz z|Ka$@UDJNv;5athf$K-plT??~{KY>%&+9VeS6dQ${lq$hsNY);KYQI#(&wG-xb6Upwpq!<5G*!MI()YM{X#Pv3 zONIwLFD+lq5cf**`D~?vdCLN0G?#Vkdypkv-s4xZxpL;LOZg0UpU=eY(7lf`ba}_xk;eSrAa3*XL0^obo`>C*B8SOc}~eCdqiJ-=Q&vPy!U>s@*&+1 zHOIS7D~lhJTF({JdfO-9_Z=0VBPSBfC)vLA(VQ&sUsfaX|9^&@m49rGu9mCo?D+O^ zkxS?D_KtnG?6Y`mePd_(y!8ID_~!RpQ~l=Oy|8Ki{J&cd9*e2}^m#`8vj1Dy{-u3+ zCLFzDo!;R%lkU6mT{*LqGY`6#sWconT>mNNyp#85E_UY31WUu&MM=W0N9XUGRUEYc z=HHO8kCPjMFWQAieY>-g`$g+!rJJwVbzc5Td_TRlHu6yL_JchaHYze|{xRNF-@D5* z=~k4^={E5#?ps;C*B5IqVCB0f#Wr`r!r0`_q<}>!H|9vITa364JyR$3wSM(>%*AthpO{v|{%;s}HJisj7_PCMcjmjxI ze>ir|+IpZ*QU9XC)x-w3_#Thv?a@MKcQeJ+9W-NF@%`tCpRcQbCRRUMX%Z+L%iC9Y z-RhOk%9IfE-$hOve;1~y8hS9+^Rzt(^8zJ3#7OE3wiZy zU7xk?TwF-UxATXuE!#~thB-z~|jU&!uH zH;t^9?DDm`zT*CZW~Xz4&UdeJWqNHZK0jG^6@SQD?yQZLiT3yESr2Yq$y--l*Hx%$ z>2Rd*wfR- zZX?d%?yr4*P1pO(toX&s;-+3?s+=o-^OWqu`7{wu_mtb4xkY0(bnMTX7Co82VaDw`#wj^R*IO!{oo?Bg7`Noe z&N&yAY8wlE|CP<*U!8WKGd4%zMf&VRTWqbv6(?u#{n1a!4LdLG6Tf1ANXcoLaE{A& zPCxk*96H(ham?A;$6p@Jlhd5VcgrSszNAF_n|CgcY$kZIZeVriZI8KMr_b#>Au-*P zyTE+K8m4_R8_jM9x%I4M)Ia+yeZ#x>a*;~ii1u@?r;lr?Idt5q;k&HPF#nP1)5-{s zTb9fDPB80Q-%rdn2wv~%+V8w?mf0NRzB=tM8;VN%z65YYt@KzGw&Bye z=dUEr-8&^Ua7lglJ#M}Q_H$xqig#KytMPO5^-NT+Q0>23@%59;TWbyu?~-}3(k3gc za<66oJ!rpo!q=X7$Hz~-;vvu_-?sjm(-NEbf%`Dz!xli!M) zX4BXB8Xb7S{P$b;=c@RmPjh^2cSc_N_`=KWvj^XImi_PZrmxtdkok>i(*`TWshSHK zeu-`8*u}lZw!24<#a{i*N8!22=L;8xg@5tN$VXS z$3}m-tO5p+b8VfK0sasE=9+g%UWs@ zTDJIh)BLTsi=(7lWO=gJWiHrw>$A<#KhK-oJ9>izlUk*srF{ItIU?_CrK+W}${4s` z)y!>9uvbyr<)I^SgjHu6fBXMU3zmIKyy7pCW;FA)!s$Ks_A&)RGeYA%GQ`}&tofoF zYTNccdVKei>U2Ltb0giEm1o{=n;LNBw9yw2f8i~?VS2mjyEj@CykxI@^2B1s!wPS` zl?rouE;LU2_~6gGk28*~{Fzl!W@FBjvf$^luT!Ri<*E%}gty#Kmp}x&qrM}{Z z`$so#lzrY>==|P}HMUrC-K@K+*^vgC_tS#c-&plf6Xm4-qhF~zV2JfhL&yBN>at!S>CB>e^*u6`g@B+*C~w!V%b7**Pcxf z_j6k*C~LDZb+2Lqi@X=Zlo{ML=TiEQSEkxaNnU>+B{=`htaJMl56#N0JS3dFbd__* z3n}JsPS0~OdmX1cy7l;fZCT52tR*3HK*07!=ZB4cvKe1XZhA!fOX@rjaVyZe@lyEK z^Nse7U*>a%gw(dWl|^6v%`Rzv?t}f~?=e5;3VaY_vYGqlJ*x?ClHiM+Yg1=3i@IN_ z<(+qNaiE@#PD=HK=Nh4rXN1Mp#C+Sde5v#ot|O&U8>X|Q3$(j*KbxO~rt#KNJ-YLJ%H@7#c1GznTTcDFR;4VbTS z_627gW4u=HRXBG>V2|%qUdtCdYCAO&Bi=i9cm7nnB-OuoN$;Y_R_m4{G8fiQ5twE; zLC!HXzNyBLt$5G1sQFVS3%=#4k6yR`uCb_q;ZyNz+it7IyxhA$`D3=n>F)~XHDxvz z+~2o$Nzkc-y&k!@&uH>g8Cs?9{&h=A`o!(ss!EoR9vG&*y?gV1&ds=k8z;-EUVO2e zr)>I(M^bTHH2y7#<*$GEPf=N@+1FrO{8VX%%iLz{kFT;s%+PSUwKe)BkC@=om;Bc^ zd$b!pn3&Ul{b^#k{pFah2Q$y^56g+qKeoE`U#v)JZhrc$d9|OP-EXM&5_4HQPfAS8 zVv3uMR?wU)MoT_g{?7k-{=?SJT>%2C=boL?>U{eCRA)7&h#L)^%Vv06Ycic!E&0>N zuv#Ng=!2C^WK2rYrAe*L-l76_x6iiCUv&S?)&HiVHNL;nH7=B`T5x-flA@f& z$Iks{I1KNe-eWVb@^-+Snmxy|y=LAlH`t#pAh9o~LQqWc3A2r1?oy#GA@|aJSt~Eb z-tfCv_3LcgLCc6+LMdO~&C;(3bo{N(rX6!3`L(Iyafc5%B^u5>tXk{qm&6wjx6fTSd}tkopi6y?YoiR3$AD0nbvA#C?WLL-|W3t_)M|W zcRGZe{x{WZ{5K=w`;Xh={v0=-rS3fVLfCB9+?h=;UhZ%?qU*O`&+y>J(>Iotc}7my zlU({;>0wY(vR#UM{e`C!vwv%U6N|d}IAde&B=sK!)$Clxo?5dHyjyo8B~o%%=&G}i zN)7DiE}gY*)%9{U^NQbMDg58OlsJ3mH@xNG+i~^Crz3t9w+`k!S~1z__X;UybzAk) zq}@+%xd}<7)pPm8z4;aTX0K^NMT5i=+J za=e$pOD5M7wNc3vSZAH>Snt;NpQ~Zf`n+Y=c0^72?D_0WX!+NLexI)7%srpn{BRk& zb!TvVsHNe1wZ|{cZ2P#x;Bz5g+pqT@f_AJ@(W==J_WJd*#Qjc>6P}#rX>sO$o+o_d z&#kQ@d)yywEmOcK?<9#qm5)2J{0A1k7$!_pW~PHfs$j57h;mO<1zDv(72Jd0pwK z&8FIWMyw&-Yiro#g`ZE=J-OjrE2_K2qv6%@jQpM@TXW9*_+|XZ`TS93g*RDt7pnhU zoN(}xRAz~YQ%&+w+YKTsa}+|pZr^04DW4|x`q{Tz*EDu^GxbHU5m&r;L9k|aU8R_n zqol`sZ9xkU>kr4Y64a+mIwcp^=3KF$;)0Owg}HA&vUYYQEi=a=m} z>i<->to`?{m&^}#yu48rEFrnf!T63lpYOgC#}4pDUwgIDYun)yt5{En7k})5j#*uQD1Z1C(_x+1f6 zLR3A&^(z}gUO%;(yxyhvi$I3M5#^}TI}cxOva8+pMMT}PafT|(miIgw$@AD|r!+W6 zsy^YLB{bRMlr7hRXN8NB1KdmHU;U{(``z){hjk8bInY03+jXz3f4PmzZ5>Ka(#BL(!CNx|7OHc7MuMy82{J(Ji6Sq|YA}UUx5H&^75{Tx|QuM9FtS(zBXN z*SVymCU<)MVe(g>@TL7C|Fp>MEKlqw9-L_HQhsfTT%g34?%RC7rm#-Eydp)3hoP=V z@c$)VQ>#5kZ;P+adh)&@Wy5_T6Ww{m-;%mRwz%$NKjyId;=h#WcQQ4hwgP9&SO341 zy0P*1-|Y5X`;6!LUz2Zc>9V+W(@%7!)9GL@f3v$iuEqw_OPFRKI_;-A;ob2Er~dF} z9C|)aW6LAm33|_*@BcpcO?SrC?!=o%O_D38UiVliIze{H1K<8gaXF_D%cfHnXICvf zDOg#-YtTOFPxO~lO$j);+2U%s=fcZg&G0H~ z)v1Zuy3JNIe#=>k32+v&e>G-#>bK2ut7hnY&;G)dadMf@xjqXW-r?VHuP-(!MczO( z;=$K9HO+TUX}C{y)pwIVb0gZ%_WqsIjSM;-Q#5K<85rAFe0jX!Tte=|L+5#R1@*q> zQVd9bVZ~9r*KlhmUkvlrGb?=?xALwmFyVi2G4RO?*NIaLt^1!gCEZ<_uA*YA{>QxR z{F-xZ>)!M4oMJKY+2egLdNTiWSbN=)YF?H1wooELHC#9PDdV?%)=w#Zl5UAP{+D}w z3-_(FxYz%7TWio%*~fpQy#Fn@xwW0kjLmH0uK3QaQk#xUVzLvPd3)O=Wwqubi~+oB zzJ7VJa=O3B3A6giH*4<9@;-FhXtiJc>EkYWM~r_3%=|X_&YK2q*%eXW9XryWJn`ID zs+51yICQ^!#^etySv^Vr!nhKA)sKhn{Vce~ugPXruz~ODA0gecFU&n`uW#`=?YGh< zu;Gl#GsBFSLpJ$F>mODjtL%m{Q^Pxb#==uRO{3i|$UoVO|v$ zvQ=%L&zh&!hkbvazbj+3=6y@*+pAwXCcBmY?20^5_*$!KC37}1b8kE`O?_>bO3%CFE3SBMd(pJ)jq!==doHNW`2S$ulmG6gVozPx zIs97Fu1M*r;*Mg^)d`PgYDBIU*?72P>F=K$z07()twWmM?007wtFSwdIS=4%;;k0=mw6$8sns&tdz@n9e%C^4aAN30ca=0uq-jIjZ^o z#-yhV)~Db4sehl|edC0&Pgqvu@V$A(F1z=s=JL~W z`#z7*W&Yrhe<%ffI>zmKNUt7iX{=L7VEZnaoqdsV1r}*;6UE5E2=&2?%&OW+PlwG9g z$U7sokJf#x)t~=f`TuC!l1qnP8BhMSN-mGtcCY8I>Pvf>4wmV^<+}4vAUW#W{|tqm zPV+PMJ||}M_hd0}J!?)+wEy5C_a*$^GAGG30WMopXRcr1TUY+^O2~@f#jj#NH*kvm zDrdPgS?TyuSBdo9f4)AnFESRFi)vximMq*x8qm!4qZoYcM z;<5D14RKCYkv?jrUv+nzy!JSi9I{2jUVQSDzdCb5rnIm$S*<^ylgAi){%^>#zAo$c z{0qNHZxK^fnVS z`caYbuvB7A@#dyOdq4g!UlsEF)V7#ckKSE8ar}~1_Tes-xvK=6R&1#<{@<3&FnL3B zj(5es>4A5;vKMZ4ev+23EJmK)>`{)@K_knpDhciH0=;-*H=g6UWwh@@!Q5{yLBl5l@dWBuz`4{>1v$y7ik1Ke1Qb zeS0vn_MEoujalm52kjOH-*#NQNw)I5VO)#xwlKZ~x2ds{-!D3LN}P2|v{p<)^>pr& zm)hSp=ucZXFRNwITh8B$w>TWUIc4*`t+9GaYyaraJYQeBMcD0btI%G%MgONU@aKtZ zYjHg6v%eME$6FnDw`azWcfBtcepY2KuJAbY__ZX%u?LmB%qh3(&z~)h6l%*d`M|=R ze4_OKt;+r9{YqM#!(KjVR2RSGFUL|>N^G{apwMJ}PbJyIfEBM6bn^Ej@Z1L913?FS0cWXD@ zj9VLfg?DOEMA-U3=hx*ojei@y+$Y4T_V&raUiO2nu?rgym)!sK<-o&3?fdgKMV&j+ zA^h5oLu0-e_$wYf_{wP2XF+mnnH z^6cw(wRTu0Mm+g7_5U$@jcXA*SAAH*v#c)D@WsXL9g^#RExY=!|A6t?iPu*Dd%OA3 zjBDI??^lK#Gtjk-7nC-Ad3b@^W4V{dMc+6_$v*aP%vrU>v%@^h>6HJgpx0GX86Umx zVfw+DJ4Z^uGBfi%n?;v{g21ddyG$=mPP38bZE#n6bokNoos%v#{g@@aqk3hYJey9j z$kOjj)}iaJzDld~6MT0!ILRh(#~Jk^4e>dL&Z(Idt~C~`_EU_LT=bPOlS5$9uL|jt zO5ZOmvuJTI?hajB~0|>AN(u{ZtPqe%t1Kvw6z7 z)RoOgGfJ+OG|kzzzF~6OKe=Cv7R#64&)1w|67+Z#-`nto%GL!r*^8>ZHmqAcCr|a@ z+waqp?Kdso5F#9zlYe=8@B4zCGxQg{bFQ3wMci!r40d+Cbg|w3rVnTK9(`$~e|p}u zca87)x%aIMS==-&Kz;dNmRI{s>a|mvFQ3ucZ^c{oPHA(*|0l0p7ED|ksAOKwE@^OS z+wc9a_(f#yYOhU5ZVr5LmZM7Uz;7>x=;a50Bo}|WVX9phTX(8*{?5m zpSf4GF~X|nfc~$G%o&=$g;)GuXOpp{`dXLh97B(;DbEf{X&W2fidn+9C^R_DFSlr$ zLxRi%r#sdUmaomz?A_%wTW!awdz)0RGL}!Dv*4wc@@)2}*FMzbvpuYt6Q!_$&B?Li z)k2|z#nb9j&dXKjX0}cERv$Lo>-EXb%bUNwT09{>N%XXAX|I;lhQi!wlVaZn)fDIz zO6;&-R(2%U$82J-OzMP5W*PI&*etR-HOE$UAK#1%a|JRdn)qM)_eHn#DEH&X6}!Hf zthms2=Gm`V&vpORx_#HS=XuJ)<(+B%rDCP|-OuWw4{iRgn(q^kz!zKM`+5rh6zSF; z>uaao9?j9>l)WOP`hJc0#A~k-ySFSV&J7nxj-Sdhc?QdL)=T?+Ir{E3s5{j&h(u+V zN!gw~9jBRe`RQYm8*%Yc3q!uUX|v8c9Wmp6VXeXubN5o+@MYTfFL6(u+wSZg1tq|RRdcHYc=TccHswwT{dH03`pzp%#qWTU4>J|p)#Uf&x&KhJCa@H#E^ zG_d)_f=72eayG0N{}y=UZq*0b)tOtK|5WZ=v*W{;&2qA_sb5Xlo;#FvGcTFUcK^~b zVc!qMlCIAmx2Ul-a8IB4^6tko347N0e`-=Zen*30ZOS%%+ntBsoRm5syqb6Nj6-}X za#QpIh0ne@YWRDNS4aIkTOE#b%62v8?nllsP8547zG-^%rj1^XFHGF#$qI)q+x35b zb>U&D$Ze%`_C=*I4||iK3CRtz29#18L)RUUp%<}gM9R!te%_OtFOi~ z1kDv*ed^4aTS8Ms7?>_3T6}rU&pWXp;(Wk{4;H_aJ~((~SWkV}D7xiROz}OPnSbX8 zIj(s>cQLpB)km4%ChywOS$yMgH>3S0`Qum9uG&boJvCBrs{VJx>^1inr&EGAG=CsQ2cRYD{xT4MPeToFjhttlR ztX-Guv6v?{-;0$#K5fxGtw*1iUTfV|*;jFWmeb+M=I)zQFBL3gd=zNu(r{Pu(Z%<@ z=O$Khw;!Kd*TiL0u|K);KcfU&vnwxiSvRb=eVLKb=HJ2-gToAm%Yq(MFN zJHe|qH%uLGHY`%=SYjU_*&lJ(=1f^o=<(tu&M6EZkI#LszFy_m=`h2a!OBqv23o#+ ze^-BEFi$<5P@6vjb+=f60;GqrLOv z*?Vgj++*tB5}7~$@szcp%J;&aCqD>fJ!F1+X0)`dv1#IlM@-D?zdVijG0Xp*l~eZW zpnE4IB7JwSzrAnQ(vO>O)Fj-CXYgXdf3#J1NZ(bDe0)wW^13nrqq1Wx7TY$&GSA;v4t-Q^9&GL%G|oMT_OH* zeAV6eZ8K)Z)UH2evbQ(!^}be};P$ug+i$n;VW^iA;n)_>qf)%}>;6(VPdi4d-^ONa z0=v7;2|X<^m)+Z0B*Rwr^xzZ~hwEQ&|1R-5e1W-!)x!C=oa!g9)b;YOWEnX8qSCfG zGENrLIU?Q@a_;q+-s0Oa4C#`^IWHM`ch8x2bu!PZC6OKuH%%7Cq;EYSj+E~A7k>mro6fEkY}RWG4(4OrWqNQYjv!? zu~UAF$BlcTg+HwgW^Fle#p6iCFYYfNnAbYRC9h!j@~GM^Kg;9Z0@=*y-M15Z46j@5 zj0m15=Bx9`_)^ioLhDyYtYX)(iXMJlDivDsMsz`TN2P53nS*(rC-lCB=)X%SwT^MU z6Pzn>F2$sX@ovqrVnuPhZaeTS?y!#@b^gW z^I{LsuM0l(z(62F^wqMnPjptQr_W%RmZ~B1%Yx;npz=2-V+*!+*|Q8QJ})sZyd6AC z>B+hS{^wKI7hA8XJD>3?D8i66^yKN9&itt_)YmYte&N7=c~SlR;;l28L*0_h!=q2d zuly19h}Td&M9bI$KC;Z~cSE|tXuar`p7y>k7^ ztvvTRr)B@)d9+3UYR$HL2eOtL6(}(@JI;T*R_{W~e1;Q#SH2z3J$kf$|C1{#yLVeU zl*nam3XYj1Svg0iaoORs0U6KR__~-Tez?*7>fUpa%ph}BjXmBR4PsI29kXvd>)ag0 zwPoEEmjB&tS8M|lC#V)rSoOQ3y#6Mmzg*|5Guvmhu9?5GG)K1d&v%2Y`I?(%&-y4~tdn+jy&NltfL+bh-3K;WxjPDSJ$rq3=UjJp zE3WXiFrC#WOg8XpFL<}?`qUdhPyPoV$L_uEGQ z3-_v-Oi7D4^6%dT*@*N16EEy$y+2QRfA7XCeJpSEJeTfm3F$Q!bv==EE2X(q+JE;; zzsRoJ3QTi<&*`7s%>C86Qr)`7cguP{zJ`a9YQIHvV|WC4vw!g3lel_i&2xKxwY3qq z#DXn$|GM)kNBzyER*k|n6Bd|vSHIilI&;#RGhcQeO>YcGt14o%cv@zk;J``Tdr=iM{)Jt6Wu#_bz=mL3q;jjs=cU?J|$kZ#XY0J$QJ| z;dG(yb4~WQ`m=ZK`}Q+=&)m&+dD%j(ZPGiPw{d5EV2z6CFnHUg|JNqjov)t-BeQ#^Ul2R%JQ~^^q?zlOCD*)8oWDdW3<+WDP70kCB#Oh zJ)>o}^kL7bi|@`A^mv%k(eb6D;-2R1Sq}ey)<`x9CjArK#h>E#Gwj&~Yb&S8*Z7`T znmQ&=6EqR&a$T*ZenMlD+>V=>`#=;bC}mHs+k<;_=Dk0p0o zE2X|RD0a>~%zWf;yX6qJKeb;CH%3iA?B=dqrk!|jyr7nTe?3~<1o;>IO z8yQ&0U;L6N>!EMV->P)|l^IKQM1&#hnfZp0`AgXY=D#&&EO+16AygG~ zSvE~~>olkNhVDH}&8~3Vms+v1OWW$-k>~QNYmYCg{ULtwir}o(D?)kg-|5`5`0%R4 z;ohl@6XWGO8#@i(94vH?K5lvELCeGFTN92(*y{)`DOQqAI-luVbg2FK)?MG{^;v8& ze5=1}-YdyFwzF^9x4phA@p+y+V@=aPx!;E?%J!ZT*~zh6^=y*=)8q$wHXDWOW~>(1 zEv;G}J0oNEWl7Obt1F*hDm$5=ILEJstwUYH#L`7V)^FX7jf*c^y)Lr2T7Jyu&BU z?-_LD#*1T?8(trou=UiQ53iRrPM%)n9)8VA>`_hptS!c#`bSOHCiuN&Sr)T#Pr|N^ z){WDjEBN5&!8TWRt zs5}+4e%{R|{#g?^n9h_RPP*P$IeA@s|6kU%{d!Act>V6GthvCtiFuORhrbLDI3s88tSeX#e4;-A;j4xi6W^|yL4@9z6(SFa7ZpE@-v+h1);`If4;YV*yf^Q&ej z?6hDnT%D<@+t|GG*s-T=%b(mbvr>z)xNr7nUEYO!Z?|7x?6ud^J+wGDbc3HM+kP4SgE<@i zFBUle?#8P}A)GcLOn>LIS^bi!EdMF`@%_=_E!lfoq>Q9@x;9^&aMM+3f=~D@cTbU? zP5UPBPkS1uEOh6A^Gboo_y6=Zv1swCoW5D{bn=7G<&y%R-_@{P_l{@EisZs&w<8a% zE4MFkTzB~LH?yqvZ=YtalAobnb8v3gFSm87i8g{K-1Fb{rEGrlX~Czy7ddmLcuoI) zr{`tx2Z2|{RW?Y||`drfDpoPvc#~ot1jf-~g|c| za`0Z*d}hiF9mUTNET54j&lN%UOPSd?Jsn+dw$HZIWO&e4m__}G=1Tp z6F0JVe9=B-rQptGQMF-FP5NGEj(2aSq-xIX&icRdWb)Sy_TN3Umsf^(3p#vT?4#Tk zvhu;JJV~YBWeZA8k9TCSy6Yry%>D6OccMb&8;)mh9DX(jO+WqRs><7R#S<-ccA-@( zMDAJ}rm|`W6*{e}KN)+iWoA)wkhavurQZ~9bBl1_v`CWOFRXWecIcN)lP8{EopMZb z>4}T}OOKV5onF87=-s->?s5D2n{WNx_|1Gtphvi*S;ee#t?OPKD|~LSX4ap(`hTB2 zpUW$nH~FyXkBa_9r|!?%w}LU%`jNa8569~bYF84&=Dn?|65tIty;t{nNj=M=Bdw3W z-PLoJ;tu4@sZY{4EV1NIGW%P$Eay#5Co>;zx-h>{Sf+A%NVX++^DSmG~~?zy}*8tmPIo>yE_?-Lm z(R2mF){B=aqOHF!a`7m>ZJha}O@!U!5CdoQY*#x$;s2KJr@#EIy|h2!&HU6AF8Lo< zYesDRr+V~V_RZ*QMvvZZ)6>=u=P!Se)+MIl_Dj~KQ&x9dM)F#hSJl_1yOnKVW^}uA zKVA0Px}@hx;%O^%{8agKex)y58x(wDuC2I&_U%~RkBJwSwn)r<#nuz8)grRgF^Yfs z@j6att-mkD!tF%j@=xtvvQ+HK+b`3L+2CmrN-ShU`UVHDxV&iM|HD{i!fAGYp`i;6?PvW6JN7L$xp8b#D z75&X@$M))#&$QGZ#xH06&QY72ZV!la*lr= z)^!-Xc%2(y)SU1BET?D2cD?lLOXGe8MP2k_v$Q>K|Nq%@(aOwu;b-SuG4`)H_G=I8 zhebO$zV7@R|I|+PFk^M><&U1G*++}Tvb~qf?iIfGQlByYZ+1dc%e(rUKmM$G<^KCW zgVUXg`sZGc=d4H-a^CFL_&9s@{%Ezcr?$v_+ZTFan!;^&7P)8@VKa-C#-C4`^Bg;U zUOt&L;lZKKDPGe}qOY?@JU0`#=grKwaV`JpZSE=7B}=3f0$49q*jnUFU)#v{*Gzq< z`kGftFJYoEIpy6hiJIG~)%PBh{wk{8?3aFQ!xxt?o3~xP&m}*hbK$C*a2x)x zH}B&5ziG7<88Kdp2$MZnnyr&tGWFynt+!LwWo>Jc@BY8)zv5kcfd?}lh?}JwyeMFr zq;>1SXBq7YY_;iGmZs_N?tTrieqnCfyL<8y{>q8h860`naD9>Apc}rR`JPRz#P7YQ zXSZ4}ElgPUfNXFI=9UFnIBxz>PtBZX2-PB UGc-1|!g@5HKJ;L~V*S)q09GjUY5)KL literal 0 HcmV?d00001 diff --git a/pkgs/build-support/fetchtorrent/tests.nix b/pkgs/build-support/fetchtorrent/tests.nix index 210a4d3bf9dd..c0ef386e2098 100644 --- a/pkgs/build-support/fetchtorrent/tests.nix +++ b/pkgs/build-support/fetchtorrent/tests.nix @@ -32,7 +32,7 @@ let }; # Via https://webtorrent.io/free-torrents - http.url = "https://webtorrent.io/torrents/sintel.torrent"; + http.url = "${./test-sintel.torrent}"; magnet.url = "magnet:?xt=urn:btih:08ada5a7a6183aae1e09d831df6748d566095a10&dn=Sintel&tr=udp%3A%2F%2Fexplodie.org%3A6969&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.empire-js.us%3A1337&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2F&xs=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fsintel.torrent"; # Sintel isn't a massive download, but it's not small. There's also no real From 32e145b3ca308653782d183c610657a72d55e281 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 8 Nov 2025 17:55:58 +0000 Subject: [PATCH 08/11] python3Packages.ax-platform: 1.1.2 -> 1.2.0 --- pkgs/development/python-modules/ax-platform/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/ax-platform/default.nix b/pkgs/development/python-modules/ax-platform/default.nix index b853ccf3858e..8808854e3550 100644 --- a/pkgs/development/python-modules/ax-platform/default.nix +++ b/pkgs/development/python-modules/ax-platform/default.nix @@ -29,14 +29,14 @@ buildPythonPackage rec { pname = "ax-platform"; - version = "1.1.2"; + version = "1.2.0"; pyproject = true; src = fetchFromGitHub { owner = "facebook"; repo = "ax"; tag = version; - hash = "sha256-DHB/BcD913gano5N7dlAbB+Tfg1dMTRP3AR1HwJjkLg="; + hash = "sha256-HZRo7jo5f3nnAha3evLTmI3caLhz7kIbP9CA6zaH4Zg="; }; env.ALLOW_BOTORCH_LATEST = "1"; From 08a540984c7a1def6bfeb4c1c7f0526edfa2b1d3 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 9 Nov 2025 07:40:33 +0000 Subject: [PATCH 09/11] mailpit: 1.27.10 -> 1.27.11 --- pkgs/by-name/ma/mailpit/source.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/ma/mailpit/source.nix b/pkgs/by-name/ma/mailpit/source.nix index b144b483e571..9de7cff7fa03 100644 --- a/pkgs/by-name/ma/mailpit/source.nix +++ b/pkgs/by-name/ma/mailpit/source.nix @@ -1,6 +1,6 @@ { - version = "1.27.10"; - hash = "sha256-O/gU5EKeEoyQDsO1aJh3twbZzSnKb1pLt9t4GfYlHEE="; - npmDepsHash = "sha256-r4hategU6aE05fvpXkgMNtFyWTv6eumLzlevjOT0/dM="; - vendorHash = "sha256-TM8b16Y+629gBz5XlXXimDWBAfOq9w8es4v984zVUbk="; + version = "1.27.11"; + hash = "sha256-0moTf5DEI+tw6Kx6/6cWzGdgem7rAfsj4iJg9I7Pjbk="; + npmDepsHash = "sha256-P9uTFeJ8ikK3Hp9bFt33mIzqp9duvMs1fYw1ErwXg1A="; + vendorHash = "sha256-MgxpoNj8Rv98AnqvWWewoFgvHWSD16MXLlkkVoQRGTE="; } From f94eec282edd8c88665781ab6b758dc66de3390c Mon Sep 17 00:00:00 2001 From: Gregor Kleen <20089782+gkleen@users.noreply.github.com> Date: Sun, 9 Nov 2025 13:00:07 +0100 Subject: [PATCH 10/11] nixos/pam: fix infinite recursion --- nixos/modules/security/pam.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/nixos/modules/security/pam.nix b/nixos/modules/security/pam.nix index c10449454c50..d313187d9fe9 100644 --- a/nixos/modules/security/pam.nix +++ b/nixos/modules/security/pam.nix @@ -2312,8 +2312,7 @@ in environment.etc = lib.mapAttrs' makePAMService enabledServices; systemd = - lib.optionalAttrs - (lib.any (service: service.updateWtmp) (lib.attrValues config.security.pam.services)) + lib.mkIf (lib.any (service: service.updateWtmp) (lib.attrValues config.security.pam.services)) { tmpfiles.packages = [ pkgs.util-linux.lastlog ]; # /lib/tmpfiles.d/lastlog2-tmpfiles.conf services.lastlog2-import = { From 8e9939c0c779d1900153761bddbc7945392fddce Mon Sep 17 00:00:00 2001 From: Sam Estep Date: Tue, 14 Oct 2025 17:53:50 -0400 Subject: [PATCH 11/11] svg-term: init at 2.1.1 --- pkgs/by-name/sv/svg-term/package.nix | 54 ++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 pkgs/by-name/sv/svg-term/package.nix diff --git a/pkgs/by-name/sv/svg-term/package.nix b/pkgs/by-name/sv/svg-term/package.nix new file mode 100644 index 000000000000..403880384937 --- /dev/null +++ b/pkgs/by-name/sv/svg-term/package.nix @@ -0,0 +1,54 @@ +{ + asciinema, + fetchFromGitHub, + fetchYarnDeps, + lib, + makeWrapper, + nodejs, + stdenv, + versionCheckHook, + yarnBuildHook, + yarnConfigHook, + yarnInstallHook, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "svg-term"; + version = "2.1.1"; + + src = fetchFromGitHub { + owner = "marionebl"; + repo = "svg-term-cli"; + tag = "v${finalAttrs.version}"; + hash = "sha256-sB4/SM48UmqaYKj6kzfjzITroL0l/QL4Gg5GSrQ+pdk="; + }; + + yarnOfflineCache = fetchYarnDeps { + inherit (finalAttrs) src; + hash = "sha256-4Q1NP3VhnACcrZ1XUFPtgSlk1Eh8Kp02rOgijoRJFcI="; + }; + + nativeBuildInputs = [ + makeWrapper + nodejs + yarnBuildHook + yarnConfigHook + yarnInstallHook + ]; + + nativeInstallCheckInputs = [ versionCheckHook ]; + doInstallCheck = true; + + # Some things work without asciinema on the PATH, but --command does not. + postInstall = '' + wrapProgram $out/bin/svg-term --prefix PATH : ${lib.makeBinPath [ asciinema ]} + ''; + + meta = { + description = "Share terminal sessions as razor-sharp animated SVG everywhere"; + homepage = "https://github.com/marionebl/svg-term-cli"; + license = lib.licenses.mit; + mainProgram = "svg-term"; + maintainers = with lib.maintainers; [ samestep ]; + }; +})