From 027419d257c9c6147b33f3c0461195caac6c716c Mon Sep 17 00:00:00 2001 From: Alois Wohlschlager Date: Sun, 27 Jul 2025 16:14:19 +0200 Subject: [PATCH 01/45] 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/45] 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/45] 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/45] 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 82115da3eff2232edc52190318854c443264097b Mon Sep 17 00:00:00 2001 From: Thomas Gerbet Date: Sun, 26 Oct 2025 18:53:39 +0100 Subject: [PATCH 05/45] courier-unicode: 2.3.2 -> 2.4.0 Changes: ``` 2.4.0 2025-08-24 Sam Varshavchik * Updated to the Unicode 16 standard. 2025-08-10 Sam Varshavchik * unicode.c: when a conversion error is encountered try to include the unconverted input in the output, as <##> sequences. 2025-08-07 Sam Varshavchik * unicodecpp.C (unicode::iconvert::convert): Fix null ptr dereference. 2025-05-25 Sam Varshavchik * Use C++17 features for templates. 2025-05-11 Sam Varshavchik * ABI break. Update the C++ API to C++17. Several functions' std::u32string parameter replaced with a std::u32string_view, where possible. Fill in a small functional gap, implement unicode::totitle(). ``` --- pkgs/by-name/co/courier-unicode/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/co/courier-unicode/package.nix b/pkgs/by-name/co/courier-unicode/package.nix index e8c757e1a395..c62ac7747720 100644 --- a/pkgs/by-name/co/courier-unicode/package.nix +++ b/pkgs/by-name/co/courier-unicode/package.nix @@ -7,11 +7,11 @@ stdenv.mkDerivation rec { pname = "courier-unicode"; - version = "2.3.2"; + version = "2.4.0"; src = fetchurl { url = "mirror://sourceforge/courier/courier-unicode/${version}/courier-unicode-${version}.tar.bz2"; - sha256 = "sha256-tkXS8AqrvGgjIO3mlspQIBJm9xChvOxKxQQmlcmef2k="; + hash = "sha256-6Ay88OOmzC56Z+waGDDWxOiqD/aXcy7B0R5UTg5kVw8="; }; nativeBuildInputs = [ From e62b630bcfc15e69dd57b4c227cbf93f894de20b Mon Sep 17 00:00:00 2001 From: Thomas Gerbet Date: Sun, 26 Oct 2025 18:56:33 +0100 Subject: [PATCH 06/45] maildrop: 3.1.8 -> 3.2.1 https://sourceforge.net/p/courier/mailman/message/59250698/ https://www.openwall.com/lists/oss-security/2025/10/26/1 Changes: ``` 3.2.1 2025-10-23 Sam Varshavchik * Fix MIME parsing bugs 3.2.0 2025-09-09 Sam Varshavchik * mailbot: reimplemented in C++ using the new C++ MIME library. 2025-08-31 Sam Varshavchik * reformail: reimplemented in C++ using the new C++ MIME library. Compare E-mail addresses (for -r, and other options), case-insensitively. 2025-08-16 Sam Varshavchik * reformime: reimplemented in C++ using the new C++ MIME library. 2025-04-27 Sam Varshavchik * all: low level MIME parsing code reimplemented in C++, the C code remains in place, with some changes. * maildrop: update the low-level message header parsing code, used by getaddr() and hasaddr() functions, and the reformail tool. 2024-09-21 Sam Varshavchik * packaging: Fix rpm packaging, use a synthesized changelog entry with the current date, to set the rpmbuild epoch date. 2024-09-07 Sam Varshavchik * packaging: deb packaging fixes. ``` --- pkgs/by-name/ma/maildrop/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ma/maildrop/package.nix b/pkgs/by-name/ma/maildrop/package.nix index 3f222a427293..3dc4970918d7 100644 --- a/pkgs/by-name/ma/maildrop/package.nix +++ b/pkgs/by-name/ma/maildrop/package.nix @@ -11,11 +11,11 @@ stdenv.mkDerivation rec { pname = "maildrop"; - version = "3.1.8"; + version = "3.2.1"; src = fetchurl { url = "mirror://sourceforge/courier/maildrop/${version}/maildrop-${version}.tar.bz2"; - sha256 = "sha256-foJsAxkXRE8berccH82QODWVZEhG4rOyYONSsc4D6VA="; + hash = "sha256-PFiQ9NQzItTmPz6Aw6YJzeYF9ylm1iNPyIZBjZSdJLk="; }; nativeBuildInputs = [ pkg-config ]; From ba23f63886f5778b8cd5b0637199ea369559754b Mon Sep 17 00:00:00 2001 From: Kenichi Kamiya Date: Tue, 4 Nov 2025 00:54:28 +0900 Subject: [PATCH 07/45] artichoke: drop The upstream repository was archived in 2025-11. https://web.archive.org/web/20251103161827/https://github.com/artichoke/artichoke --- pkgs/by-name/ar/artichoke/package.nix | 58 --------------------------- pkgs/top-level/aliases.nix | 1 + 2 files changed, 1 insertion(+), 58 deletions(-) delete mode 100644 pkgs/by-name/ar/artichoke/package.nix diff --git a/pkgs/by-name/ar/artichoke/package.nix b/pkgs/by-name/ar/artichoke/package.nix deleted file mode 100644 index d4d1c5e90c95..000000000000 --- a/pkgs/by-name/ar/artichoke/package.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ - lib, - rustPlatform, - fetchFromGitHub, - llvmPackages, - _experimental-update-script-combinators, - unstableGitUpdater, - nix-update-script, -}: - -rustPlatform.buildRustPackage { - pname = "artichoke"; - version = "0-unstable-2025-09-07"; - - src = fetchFromGitHub { - owner = "artichoke"; - repo = "artichoke"; - rev = "8227e6dbb298631c67b4ca2cc4c911d0ef87f38a"; - hash = "sha256-Pyffs4QB/SkayRwlMmIVagNiamznJp4Dt3nqRDJYfqU="; - }; - - cargoHash = "sha256-JD+qt0pu5wxIuLa3Bd9eadQFE7dyKzqxsAKPebG7+Zg="; - - nativeBuildInputs = [ - rustPlatform.bindgenHook - ]; - - doInstallCheck = true; - installCheckPhase = '' - runHook preInstallCheck - - stdout="$("$out/bin/artichoke" -e 'puts "Hello World!"')" - [[ "$stdout" == 'Hello World!' ]] - - runHook postInstallCheck - ''; - - passthru = { - updateScript = _experimental-update-script-combinators.sequence [ - (unstableGitUpdater { }) - (nix-update-script { - # Updating `cargoHash` - extraArgs = [ "--version=skip" ]; - }) - ]; - }; - - meta = { - description = "Ruby implementation written in Rust and Ruby"; - homepage = "https://www.artichokeruby.org/"; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ - kachick - ]; - mainProgram = "artichoke"; - platforms = with lib.platforms; unix ++ windows; - }; -} diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index ba2b7755c455..92183487e2f5 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -303,6 +303,7 @@ mapAliases { argo = throw "'argo' has been renamed to/replaced by 'argo-workflows'"; # Converted to throw 2025-10-27 aria = throw "'aria' has been renamed to/replaced by 'aria2'"; # Converted to throw 2025-10-27 arrayfire = throw "arrayfire was removed due to numerous vulnerabilities in freeimage"; # Added 2025-10-23 + artichoke = throw "artichoke has been removed due to being archived upstream."; # Added 2025-11-04 artim-dark = aritim-dark; # Added 2025-07-27 aseprite-unfree = throw "'aseprite-unfree' has been renamed to/replaced by 'aseprite'"; # Converted to throw 2025-10-27 asitop = throw "'asitop' has been renamed to/replaced by 'macpm'"; # Converted to throw 2025-10-27 From b9464c6a20274246fe4290c6dc8565ce4f800f82 Mon Sep 17 00:00:00 2001 From: Adam Dinwoodie Date: Sun, 2 Nov 2025 20:29:50 +0000 Subject: [PATCH 08/45] 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 09/45] 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 1b80404731003c35c0fa217f000b0f9fc3e453d6 Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Wed, 5 Nov 2025 23:28:47 +0100 Subject: [PATCH 10/45] logrotate: Enable tests --- pkgs/by-name/lo/logrotate/package.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkgs/by-name/lo/logrotate/package.nix b/pkgs/by-name/lo/logrotate/package.nix index 3f454af211ab..9db688ab8ac1 100644 --- a/pkgs/by-name/lo/logrotate/package.nix +++ b/pkgs/by-name/lo/logrotate/package.nix @@ -7,6 +7,7 @@ autoreconfHook, aclSupport ? stdenv.hostPlatform.isLinux, acl, + coreutils, nixosTests, }: @@ -30,6 +31,14 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ autoreconfHook ]; buildInputs = [ popt ] ++ lib.optionals aclSupport [ acl ]; + preCheck = '' + sed -i 's#/bin/date#${lib.getExe' coreutils "date"}#' test/*.sh + # Skip this test because it depends on a working root user, which we don't have in the sandbox + # Exiting with 77 signals that the test is skipped, and we only place it on line 2 because the shebang is on line 1 + sed -i '2iexit 77' test/test-0110.sh + ''; + doCheck = true; + passthru.tests = { nixos-logrotate = nixosTests.logrotate; }; From b93a33146d1fadc53a77304fdab78d2a05e1f6d6 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 7 Nov 2025 15:49:43 +0000 Subject: [PATCH 11/45] keychain: 2.9.7 -> 2.9.8 --- pkgs/by-name/ke/keychain/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ke/keychain/package.nix b/pkgs/by-name/ke/keychain/package.nix index 35523f15ab94..ee1200809fb4 100644 --- a/pkgs/by-name/ke/keychain/package.nix +++ b/pkgs/by-name/ke/keychain/package.nix @@ -17,13 +17,13 @@ stdenv.mkDerivation rec { pname = "keychain"; - version = "2.9.7"; + version = "2.9.8"; src = fetchFromGitHub { owner = "funtoo"; repo = "keychain"; rev = version; - sha256 = "sha256-/8OY/URIhVl8bTlJPRGidExHzkwzckm/v3QUq7Fxe04="; + sha256 = "sha256-xk3ooFhBkgv93Po5oC4TZRmMhJJXDv7yekoE102FQd8="; }; nativeBuildInputs = [ From 32a1219b32dd8f2aab9ae34679ca667260eaced4 Mon Sep 17 00:00:00 2001 From: Rafael Ieda Date: Fri, 7 Nov 2025 19:28:14 -0300 Subject: [PATCH 12/45] microsoft-edge: 142.0.3595.53 -> 142.0.3595.65 --- pkgs/by-name/mi/microsoft-edge/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/mi/microsoft-edge/package.nix b/pkgs/by-name/mi/microsoft-edge/package.nix index bd98470847ec..35b07f7afe98 100644 --- a/pkgs/by-name/mi/microsoft-edge/package.nix +++ b/pkgs/by-name/mi/microsoft-edge/package.nix @@ -162,11 +162,11 @@ let in stdenvNoCC.mkDerivation (finalAttrs: { pname = "microsoft-edge"; - version = "142.0.3595.53"; + version = "142.0.3595.65"; src = fetchurl { url = "https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_${finalAttrs.version}-1_amd64.deb"; - hash = "sha256-cSSKWxIkQe8jrv7gL5lX2Cs9roU8eD2MIHuLGQMnycM="; + hash = "sha256-aqQH4ttBWTjpzAEeWpheEJiu1FUMKMJu9j8Gu2pldbA="; }; # With strictDeps on, some shebangs were not being patched correctly From 12a6dd2f30944a0bfc73f9f33857d70ea8f76ab3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Fri, 7 Nov 2025 14:56:17 -0800 Subject: [PATCH 13/45] python3Packages.pymobiledevice3: 5.0.3 -> 5.1.2 Diff: https://github.com/doronz88/pymobiledevice3/compare/v5.0.3...v5.1.2 Changelog: https://github.com/doronz88/pymobiledevice3/releases/tag/v5.0.4 https://github.com/doronz88/pymobiledevice3/releases/tag/v5.1.0 https://github.com/doronz88/pymobiledevice3/releases/tag/v5.1.1 https://github.com/doronz88/pymobiledevice3/releases/tag/v5.1.2 --- pkgs/development/python-modules/pymobiledevice3/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pymobiledevice3/default.nix b/pkgs/development/python-modules/pymobiledevice3/default.nix index 5812bdbff51c..582f2da789b0 100644 --- a/pkgs/development/python-modules/pymobiledevice3/default.nix +++ b/pkgs/development/python-modules/pymobiledevice3/default.nix @@ -47,14 +47,14 @@ buildPythonPackage rec { pname = "pymobiledevice3"; - version = "5.0.3"; + version = "5.1.2"; pyproject = true; src = fetchFromGitHub { owner = "doronz88"; repo = "pymobiledevice3"; tag = "v${version}"; - hash = "sha256-fw7KGijIgIXXFbtNpq1QBrxUP4F6ivLQXQn94YZnQL4="; + hash = "sha256-HKkLkkPCu9d7iBy7FEPWR6cnNuYFgxSGN6beMCCiuyo="; }; 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 14/45] 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 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 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 15/45] 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 39750bff983510df1efc705f17acf2f16e4699d7 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 8 Nov 2025 18:56:21 +0000 Subject: [PATCH 16/45] sarasa-gothic: 1.0.33 -> 1.0.34 --- pkgs/by-name/sa/sarasa-gothic/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/sa/sarasa-gothic/package.nix b/pkgs/by-name/sa/sarasa-gothic/package.nix index 9514d0a2a102..48192fa2eb07 100644 --- a/pkgs/by-name/sa/sarasa-gothic/package.nix +++ b/pkgs/by-name/sa/sarasa-gothic/package.nix @@ -7,13 +7,13 @@ stdenvNoCC.mkDerivation (finalAttrs: { pname = "sarasa-gothic"; - version = "1.0.33"; + version = "1.0.34"; src = fetchurl { # Use the 'ttc' files here for a smaller closure size. # (Using 'ttf' files gives a closure size about 15x larger, as of November 2021.) url = "https://github.com/be5invis/Sarasa-Gothic/releases/download/v${finalAttrs.version}/Sarasa-TTC-${finalAttrs.version}.zip"; - hash = "sha256-aIZWTrG1NimE6cPzs1drrTfvbHAuObUOjlPgZv3PaSg="; + hash = "sha256-wCUKEGq6qL+rsRXEuLOqfRLWsWkMd8khfQ+rFKfEkRQ="; }; sourceRoot = "."; From dc249fa9b321804460c82356fce126f2e4702f3f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 8 Nov 2025 19:21:43 +0000 Subject: [PATCH 17/45] cursor-cli: 0-unstable-2025-10-28 -> 0-unstable-2025-11-06 --- pkgs/by-name/cu/cursor-cli/package.nix | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pkgs/by-name/cu/cursor-cli/package.nix b/pkgs/by-name/cu/cursor-cli/package.nix index bdb8015ce19e..558e212344f1 100644 --- a/pkgs/by-name/cu/cursor-cli/package.nix +++ b/pkgs/by-name/cu/cursor-cli/package.nix @@ -9,26 +9,26 @@ let inherit (stdenv) hostPlatform; sources = { x86_64-linux = fetchurl { - url = "https://downloads.cursor.com/lab/2025.10.28-0a91dc2/linux/x64/agent-cli-package.tar.gz"; - hash = "sha256-mZ0T7rrKzwvaNUbrHBy3XO04vZSO6RQ4RmJmrdfaoJA="; + url = "https://downloads.cursor.com/lab/2025.11.06-8fe8a63/linux/x64/agent-cli-package.tar.gz"; + hash = "sha256-otTYUTmGqqXT4Jx+r1RlFjJD7FYU62QRl+y69eo/khs="; }; aarch64-linux = fetchurl { - url = "https://downloads.cursor.com/lab/2025.10.28-0a91dc2/linux/arm64/agent-cli-package.tar.gz"; - hash = "sha256-bchHYPQ0O/0YWiPdj3wnq43p/fKFoP4KXpeSVWpLYpE="; + url = "https://downloads.cursor.com/lab/2025.11.06-8fe8a63/linux/arm64/agent-cli-package.tar.gz"; + hash = "sha256-jPqgGdtjLg4qZWktz1/X1LI0+e6RYcCtuLw91k1Xofg="; }; x86_64-darwin = fetchurl { - url = "https://downloads.cursor.com/lab/2025.10.28-0a91dc2/darwin/x64/agent-cli-package.tar.gz"; - hash = "sha256-PWx5QAs84gWNOHYZL20uFnW+m4rApRT6g4LtabjL+lw="; + url = "https://downloads.cursor.com/lab/2025.11.06-8fe8a63/darwin/x64/agent-cli-package.tar.gz"; + hash = "sha256-UVR+iomdZzmPfj4o4N4FfUSCa9ttJre7Ipso5weIn1k="; }; aarch64-darwin = fetchurl { - url = "https://downloads.cursor.com/lab/2025.10.28-0a91dc2/darwin/arm64/agent-cli-package.tar.gz"; - hash = "sha256-VW76Lx2VKspiGkphp74ib4+F5FCdu8793f+xvD67OpM="; + url = "https://downloads.cursor.com/lab/2025.11.06-8fe8a63/darwin/arm64/agent-cli-package.tar.gz"; + hash = "sha256-t5s9TfLLA/VLCYNF+fsf9wgfk2W96eQSIbW/cdUKMuY="; }; }; in stdenv.mkDerivation { pname = "cursor-cli"; - version = "0-unstable-2025-10-28"; + version = "0-unstable-2025-11-06"; src = sources.${hostPlatform.system}; From 9477be20e1b1963c347cd2c44b03190a4099cd0a Mon Sep 17 00:00:00 2001 From: Thierry Delafontaine Date: Sat, 8 Nov 2025 20:24:26 +0100 Subject: [PATCH 18/45] mods: remove maintainer delafthi --- pkgs/by-name/mo/mods/package.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/by-name/mo/mods/package.nix b/pkgs/by-name/mo/mods/package.nix index da9250260f89..34d96d91b44e 100644 --- a/pkgs/by-name/mo/mods/package.nix +++ b/pkgs/by-name/mo/mods/package.nix @@ -77,7 +77,6 @@ buildGoModule (finalAttrs: { maintainers = with lib.maintainers; [ dit7ya caarlos0 - delafthi ]; mainProgram = "mods"; }; From d51ca62a5d927a6193c4c560d10b8aba57467756 Mon Sep 17 00:00:00 2001 From: Yiyu Zhou Date: Fri, 7 Nov 2025 15:28:22 -0800 Subject: [PATCH 19/45] miro: 0.7.0 -> 0.7.2 bump --- pkgs/by-name/mi/miro/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/mi/miro/package.nix b/pkgs/by-name/mi/miro/package.nix index 2b54d70c09a3..3543f9f9baec 100644 --- a/pkgs/by-name/mi/miro/package.nix +++ b/pkgs/by-name/mi/miro/package.nix @@ -13,16 +13,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "miro"; - version = "0.7.0"; + version = "0.7.2"; src = fetchFromGitHub { owner = "vincent-uden"; repo = "miro"; tag = "v${finalAttrs.version}"; - hash = "sha256-tkZSyxdcHeumBMlinwA3DT2Y/FgLzbeuVbsFbTfvINg="; + hash = "sha256-2RyBjWeb94bxiZ7hy//654YP1bc6bl13slNxRwrhtyk="; }; - cargoHash = "sha256-4NE9nMmOTQpWvMsGexW6GpBGao4yQoofrzGaaM4+rWE="; + cargoHash = "sha256-wRlze8VZ9I4O/eycWvlNPUsa/ucBeZ8SWtD9eJ+Uxvs="; nativeBuildInputs = [ rustPlatform.bindgenHook From 3974c53827d125d006662ea3ccda8391b9a11932 Mon Sep 17 00:00:00 2001 From: Alexis Williams Date: Thu, 16 Oct 2025 16:27:15 -0700 Subject: [PATCH 20/45] croncpp: init at 2023.03.30 --- pkgs/by-name/cr/croncpp/package.nix | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 pkgs/by-name/cr/croncpp/package.nix diff --git a/pkgs/by-name/cr/croncpp/package.nix b/pkgs/by-name/cr/croncpp/package.nix new file mode 100644 index 000000000000..db6430949da0 --- /dev/null +++ b/pkgs/by-name/cr/croncpp/package.nix @@ -0,0 +1,28 @@ +{ + stdenv, + lib, + fetchFromGitHub, + cmake, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "croncpp"; + version = "2023.03.30"; + + src = fetchFromGitHub { + owner = "mariusbancila"; + repo = "croncpp"; + tag = "v${finalAttrs.version}"; + hash = "sha256-SBjNzy54OGEMemBp+c1gaH90Dc7ySL915z4E64cBWTI="; + }; + + nativeBuildInputs = [ cmake ]; + + meta = with lib; { + description = "C++11/14/17 header-only cross-platform library for handling CRON expressions"; + homepage = "https://github.com/mariusbancila/croncpp"; + license = licenses.mit; + platforms = platforms.all; + maintainers = with maintainers; [ typedrat ]; + }; +}) From b3605e26ae5becc3706698342bde34b5ffc54dbf Mon Sep 17 00:00:00 2001 From: Alexis Williams Date: Thu, 16 Oct 2025 16:27:31 -0700 Subject: [PATCH 21/45] uni-algo: init at 1.2.0 --- pkgs/by-name/un/uni-algo/package.nix | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 pkgs/by-name/un/uni-algo/package.nix diff --git a/pkgs/by-name/un/uni-algo/package.nix b/pkgs/by-name/un/uni-algo/package.nix new file mode 100644 index 000000000000..fcb105180de9 --- /dev/null +++ b/pkgs/by-name/un/uni-algo/package.nix @@ -0,0 +1,28 @@ +{ + lib, + stdenv, + fetchFromGitHub, + cmake, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "uni-algo"; + version = "1.2.0"; + + src = fetchFromGitHub { + owner = "uni-algo"; + repo = "uni-algo"; + tag = "v${finalAttrs.version}"; + hash = "sha256-IyQrL/DWDj87GplSGJC4iQJAzNURLh9TRko5l+EIfuU="; + }; + + nativeBuildInputs = [ cmake ]; + + meta = with lib; { + description = "Unicode Algorithms Implementation for C/C++"; + homepage = "https://github.com/uni-algo/uni-algo"; + license = licenses.mit; + platforms = platforms.all; + maintainers = with maintainers; [ typedrat ]; + }; +}) From c3f511b9e6780f7d7c920ab173420539d8fa8ef8 Mon Sep 17 00:00:00 2001 From: Alexis Williams Date: Thu, 16 Oct 2025 19:19:55 -0700 Subject: [PATCH 22/45] dragonflydb: 0.1.0 -> 1.34.2 --- .../dr/dragonflydb/external-libs.patch | 115 ++++ pkgs/by-name/dr/dragonflydb/fixes.patch | 132 ----- pkgs/by-name/dr/dragonflydb/glog.patch | 553 ------------------ .../dr/dragonflydb/helio-third-party.patch | 150 +++++ pkgs/by-name/dr/dragonflydb/package.nix | 244 ++++++-- 5 files changed, 460 insertions(+), 734 deletions(-) create mode 100644 pkgs/by-name/dr/dragonflydb/external-libs.patch delete mode 100644 pkgs/by-name/dr/dragonflydb/fixes.patch delete mode 100644 pkgs/by-name/dr/dragonflydb/glog.patch create mode 100644 pkgs/by-name/dr/dragonflydb/helio-third-party.patch diff --git a/pkgs/by-name/dr/dragonflydb/external-libs.patch b/pkgs/by-name/dr/dragonflydb/external-libs.patch new file mode 100644 index 000000000000..368c0b2a139e --- /dev/null +++ b/pkgs/by-name/dr/dragonflydb/external-libs.patch @@ -0,0 +1,115 @@ +diff --git a/src/external_libs.cmake b/src/external_libs.cmake +index 62e6e879..8934777f 100644 +--- a/src/external_libs.cmake ++++ b/src/external_libs.cmake +@@ -1,7 +1,6 @@ + add_third_party( + lua +- GIT_REPOSITORY https://github.com/dragonflydb/lua +- GIT_TAG Dragonfly-5.4.6a ++ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/lua/. + CONFIGURE_COMMAND echo + BUILD_IN_SOURCE 1 + BUILD_COMMAND ${DFLY_TOOLS_MAKE} all +@@ -19,18 +18,16 @@ endif() + + add_third_party( + dconv +- URL https://github.com/google/double-conversion/archive/refs/tags/v3.3.0.tar.gz +- PATCH_COMMAND ${SED_REPL} "/static const std::ctype/d" +- /double-conversion/string-to-double.cc +- COMMAND ${SED_REPL} "/std::use_facet/double-conversion/string-to-double.cc +- COMMAND ${SED_REPL} "s/cType.tolower/std::tolower/g" /double-conversion/string-to-double.cc ++ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/dconv/. ++ PATCH_COMMAND echo ++ CMAKE_PASS_FLAGS "-DCMAKE_POLICY_VERSION_MINIMUM=3.5" + LIB libdouble-conversion.a + ) + + add_third_party( + reflex +- URL https://github.com/Genivia/RE-flex/archive/refs/tags/v5.2.2.tar.gz +- PATCH_COMMAND autoreconf -fi ++ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/reflex/. ++ PATCH_COMMAND echo + CONFIGURE_COMMAND /configure --disable-avx2 --prefix=${THIRD_PARTY_LIB_DIR}/reflex + CXX=${CMAKE_CXX_COMPILER} CC=${CMAKE_C_COMPILER} + ) +@@ -41,16 +38,14 @@ set(REFLEX "${THIRD_PARTY_LIB_DIR}/reflex/bin/reflex") + + add_third_party( + jsoncons +- GIT_REPOSITORY https://github.com/dragonflydb/jsoncons +- GIT_TAG Dragonfly.178 +- GIT_SHALLOW 1 ++ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/jsoncons/. + CMAKE_PASS_FLAGS "-DJSONCONS_BUILD_TESTS=OFF -DJSONCONS_HAS_POLYMORPHIC_ALLOCATOR=ON" + LIB "none" + ) + + add_third_party( + lz4 +- URL https://github.com/lz4/lz4/archive/refs/tags/v1.10.0.tar.gz ++ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/lz4/. + + BUILD_IN_SOURCE 1 + CONFIGURE_COMMAND echo skip +@@ -65,7 +60,7 @@ set(MIMALLOC_C_FLAGS "-O3 -g -DMI_STAT=1 -DNDEBUG") + file(MAKE_DIRECTORY ${MIMALLOC_INCLUDE_DIR}) + + ExternalProject_Add(mimalloc2_project +- URL https://github.com/microsoft/mimalloc/archive/refs/tags/v2.2.4.tar.gz ++ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/mimalloc224/. + DOWNLOAD_DIR ${THIRD_PARTY_DIR}/mimalloc2 + SOURCE_DIR ${THIRD_PARTY_DIR}/mimalloc2 + # INSTALL_DIR ${MIMALLOC_ROOT_DIR} +@@ -118,21 +113,21 @@ set_target_properties(TRDP::mimalloc2 PROPERTIES IMPORTED_LOCATION ${MIMALLOC_RO + + add_third_party( + croncpp +- URL https://github.com/mariusbancila/croncpp/archive/refs/tags/v2023.03.30.tar.gz ++ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/croncpp/. + LIB "none" + ) + + if (WITH_SEARCH) + add_third_party( + uni-algo +- URL https://github.com/uni-algo/uni-algo/archive/refs/tags/v1.0.0.tar.gz ++ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/uni-algo/. + + CMAKE_PASS_FLAGS "-DCMAKE_CXX_STANDARD:STRING=17" + ) + + add_third_party( + hnswlib +- URL https://github.com/nmslib/hnswlib/archive/refs/tags/v0.7.0.tar.gz ++ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/hnswlib/. + + BUILD_COMMAND echo SKIP + INSTALL_COMMAND cp -R /hnswlib ${THIRD_PARTY_LIB_DIR}/hnswlib/include/ +@@ -142,21 +137,20 @@ endif() + + add_third_party( + fast_float +- URL https://github.com/fastfloat/fast_float/archive/refs/tags/v5.2.0.tar.gz ++ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/fast_float/. + LIB "none" + ) + + add_third_party( + flatbuffers +- URL https://github.com/google/flatbuffers/archive/refs/tags/v23.5.26.tar.gz ++ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/flatbuffers/. + CMAKE_PASS_FLAGS "-DFLATBUFFERS_BUILD_TESTS=OFF -DFLATBUFFERS_LIBCXX_WITH_CLANG=OFF + -DFLATBUFFERS_BUILD_FLATC=OFF" + ) + + add_third_party( + hdr_histogram +- GIT_REPOSITORY https://github.com/HdrHistogram/HdrHistogram_c/ +- GIT_TAG 652d51bcc36744fd1a6debfeb1a8a5f58b14022c ++ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/hdr_histogram/. + CMAKE_PASS_FLAGS "-DHDR_LOG_REQUIRED=OFF -DHDR_HISTOGRAM_BUILD_PROGRAMS=OFF + -DHDR_HISTOGRAM_INSTALL_SHARED=OFF" + LIB libhdr_histogram_static.a diff --git a/pkgs/by-name/dr/dragonflydb/fixes.patch b/pkgs/by-name/dr/dragonflydb/fixes.patch deleted file mode 100644 index d2992fbbaf82..000000000000 --- a/pkgs/by-name/dr/dragonflydb/fixes.patch +++ /dev/null @@ -1,132 +0,0 @@ -diff --git a/helio/cmake/third_party.cmake b/helio/cmake/third_party.cmake -index aeb78d9..e9d4e6b 100644 ---- a/helio/cmake/third_party.cmake -+++ b/helio/cmake/third_party.cmake -@@ -143,7 +143,7 @@ endfunction() - - FetchContent_Declare( - gtest -- URL https://github.com/google/googletest/archive/release-1.11.0.zip -+ DOWNLOAD_COMMAND true - ) - - FetchContent_GetProperties(gtest) -@@ -154,7 +154,7 @@ endif () - - FetchContent_Declare( - benchmark -- URL https://github.com/google/benchmark/archive/v1.6.1.tar.gz -+ DOWNLOAD_COMMAND true - ) - - FetchContent_GetProperties(benchmark) -@@ -169,7 +169,7 @@ endif () - - FetchContent_Declare( - abseil_cpp -- URL https://github.com/abseil/abseil-cpp/archive/20211102.0.tar.gz -+ DOWNLOAD_COMMAND true - PATCH_COMMAND patch -p1 < "${CMAKE_CURRENT_LIST_DIR}/../patches/abseil-20211102.patch" - ) - -@@ -183,11 +183,7 @@ endif() - - FetchContent_Declare( - glog -- GIT_REPOSITORY https://github.com/romange/glog -- GIT_TAG Absl -- -- GIT_PROGRESS TRUE -- GIT_SHALLOW TRUE -+ DOWNLOAD_COMMAND true - ) - - FetchContent_GetProperties(glog) -@@ -233,10 +229,7 @@ endif() - - add_third_party( - gperf -- URL https://github.com/gperftools/gperftools/archive/gperftools-2.9.1.tar.gz -- #GIT_REPOSITORY https://github.com/gperftools/gperftools -- #GIT_TAG gperftools-2.9.1 -- GIT_SHALLOW TRUE -+ DOWNLOAD_COMMAND true - PATCH_COMMAND autoreconf -i # update runs every time for some reason - # CMAKE_PASS_FLAGS "-DGPERFTOOLS_BUILD_HEAP_PROFILER=OFF -DGPERFTOOLS_BUILD_HEAP_CHECKER=OFF \ - # -DGPERFTOOLS_BUILD_DEBUGALLOC=OFF -DBUILD_TESTING=OFF \ -@@ -260,11 +253,12 @@ else() - endif() - - add_third_party(mimalloc -- URL https://github.com/microsoft/mimalloc/archive/refs/tags/v2.0.5.tar.gz -+ DOWNLOAD_COMMAND true - - # Add -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_FLAGS=-O0 to debug - CMAKE_PASS_FLAGS "-DCMAKE_BUILD_TYPE=Release -DMI_BUILD_SHARED=OFF -DMI_BUILD_TESTS=OFF \ -- -DMI_INSTALL_TOPLEVEL=ON -DMI_OVERRIDE=${MI_OVERRIDE} -DCMAKE_C_FLAGS=-g" -+ -DMI_INSTALL_TOPLEVEL=ON -DMI_OVERRIDE=${MI_OVERRIDE} -DCMAKE_C_FLAGS=-g \ -+ -DCMAKE_INSTALL_LIBDIR=${THIRD_PARTY_LIB_DIR}/mimalloc/lib" - - BUILD_COMMAND make -j4 mimalloc-static - INSTALL_COMMAND make install -@@ -274,7 +268,7 @@ add_third_party(mimalloc - ) - - add_third_party(jemalloc -- URL https://github.com/jemalloc/jemalloc/releases/download/5.2.1/jemalloc-5.2.1.tar.bz2 -+ URL REPLACEJEMALLOCURL - PATCH_COMMAND ./autogen.sh - CONFIGURE_COMMAND /configure --prefix=${THIRD_PARTY_LIB_DIR}/jemalloc --with-jemalloc-prefix=je_ --disable-libdl - ) -@@ -282,24 +276,23 @@ add_third_party(jemalloc - - add_third_party( - xxhash -- URL https://github.com/Cyan4973/xxHash/archive/v0.8.0.tar.gz -+ DOWNLOAD_COMMAND true - SOURCE_SUBDIR cmake_unofficial -- CMAKE_PASS_FLAGS "-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=OFF" -+ CMAKE_PASS_FLAGS "-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=OFF \ -+ -DCMAKE_INSTALL_LIBDIR=${THIRD_PARTY_LIB_DIR}/xxhash/lib" - ) - - - add_third_party( - uring -- GIT_REPOSITORY https://github.com/axboe/liburing.git -- GIT_TAG liburing-2.1 -+ DOWNLOAD_COMMAND true - CONFIGURE_COMMAND /configure --prefix=${THIRD_PARTY_LIB_DIR}/uring - BUILD_IN_SOURCE 1 - ) - - add_third_party( - rapidjson -- GIT_REPOSITORY https://github.com/Tencent/rapidjson.git -- GIT_TAG 1a803826f1197b5e30703afe4b9c0e7dd48074f5 -+ DOWNLOAD_COMMAND true - CMAKE_PASS_FLAGS "-DRAPIDJSON_BUILD_TESTS=OFF -DRAPIDJSON_BUILD_EXAMPLES=OFF \ - -DRAPIDJSON_BUILD_DOC=OFF" - LIB "none" -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 0dc0824..d5b38b3 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -1,6 +1,6 @@ - add_third_party( - lua -- URL https://github.com/lua/lua/archive/refs/tags/v5.4.4.tar.gz -+ URL REPLACELUAURL - PATCH_COMMAND patch -p1 -i "${CMAKE_SOURCE_DIR}/patches/lua-v5.4.4.patch" - CONFIGURE_COMMAND echo - BUILD_IN_SOURCE 1 -@@ -11,7 +11,8 @@ add_third_party( - - add_third_party( - dconv -- URL https://github.com/google/double-conversion/archive/refs/tags/v3.2.0.tar.gz -+ DOWNLOAD_COMMAND true -+ CMAKE_PASS_FLAGS "-DCMAKE_INSTALL_LIBDIR=${THIRD_PARTY_LIB_DIR}/dconv/lib" - LIB libdouble-conversion.a - ) - diff --git a/pkgs/by-name/dr/dragonflydb/glog.patch b/pkgs/by-name/dr/dragonflydb/glog.patch deleted file mode 100644 index 2fb9c0733b87..000000000000 --- a/pkgs/by-name/dr/dragonflydb/glog.patch +++ /dev/null @@ -1,553 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 846b4448..b4900ead 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -39,6 +39,7 @@ option (PRINT_UNSYMBOLIZED_STACK_TRACES - "Print file offsets in traces instead of symbolizing" OFF) - option (WITH_CUSTOM_PREFIX "Enable support for user-generated message prefixes" ON) - option (WITH_GFLAGS "Use gflags" ON) -+option (WITH_ABSL "Use absl flags" OFF) - option (WITH_GTEST "Use Google Test" ON) - option (WITH_PKGCONFIG "Enable pkg-config support" ON) - option (WITH_SYMBOLIZE "Enable symbolize module" ON) -@@ -87,6 +88,13 @@ if (WITH_GFLAGS) - endif (gflags_FOUND) - endif (WITH_GFLAGS) - -+if (WITH_ABSL) -+ set (HAVE_ABSL_FLAGS 1) -+ set (ac_cv_have_abslflags 1) -+else (WITH_ABSL) -+set (ac_cv_have_abslflags 0) -+endif (WITH_ABSL) -+ - find_package (Threads) - find_package (Unwind) - -@@ -1025,7 +1033,7 @@ write_basic_package_version_file ( - ${CMAKE_CURRENT_BINARY_DIR}/glog-config-version.cmake - COMPATIBILITY SameMajorVersion) - --export (TARGETS glog NAMESPACE glog:: FILE glog-targets.cmake) -+# export (TARGETS glog NAMESPACE glog:: FILE glog-targets.cmake) - export (PACKAGE glog) - - get_filename_component (_PREFIX "${CMAKE_INSTALL_PREFIX}" ABSOLUTE) -diff --git a/src/base/commandlineflags.h b/src/base/commandlineflags.h -index bcb12dea..1c9d9294 100644 ---- a/src/base/commandlineflags.h -+++ b/src/base/commandlineflags.h -@@ -57,6 +57,25 @@ - - #include - -+#else -+#ifdef HAVE_ABSL_FLAGS -+#include -+ -+#define FLAG(name) absl::GetFlag(FLAGS_##name) -+ -+#define DEFINE_bool(name, value, meaning) \ -+ ABSL_FLAG(bool, name, value, meaning) -+ -+#define DEFINE_int32(name, value, meaning) \ -+ ABSL_FLAG(GOOGLE_NAMESPACE::int32, name, value, meaning) -+ -+#define DEFINE_uint32(name, value, meaning) \ -+ ABSL_FLAG(GOOGLE_NAMESPACE::uint32, name, value, meaning) -+ -+#define DEFINE_string(name, value, meaning) \ -+ ABSL_FLAG(std::string, name, value, meaning) -+ -+ - #else - - #include -@@ -108,6 +127,7 @@ - } \ - using fLS::FLAGS_##name - -+#endif - #endif // HAVE_LIB_GFLAGS - - // Define GLOG_DEFINE_* using DEFINE_* . By using these macros, we -diff --git a/src/base/mutex.h b/src/base/mutex.h -index e82c597f..a58c1412 100644 ---- a/src/base/mutex.h -+++ b/src/base/mutex.h -@@ -319,11 +319,6 @@ class WriterMutexLock { - void operator=(const WriterMutexLock&); - }; - --// Catch bug where variable name is omitted, e.g. MutexLock (&mu); --#define MutexLock(x) COMPILE_ASSERT(0, mutex_lock_decl_missing_var_name) --#define ReaderMutexLock(x) COMPILE_ASSERT(0, rmutex_lock_decl_missing_var_name) --#define WriterMutexLock(x) COMPILE_ASSERT(0, wmutex_lock_decl_missing_var_name) -- - } // namespace MUTEX_NAMESPACE - - using namespace MUTEX_NAMESPACE; -diff --git a/src/config.h.cmake.in b/src/config.h.cmake.in -index b225b7ec..a4c58c96 100644 ---- a/src/config.h.cmake.in -+++ b/src/config.h.cmake.in -@@ -34,6 +34,8 @@ - /* define if you have google gflags library */ - #cmakedefine HAVE_LIB_GFLAGS - -+#cmakedefine HAVE_ABSL_FLAGS -+ - /* define if you have google gmock library */ - #cmakedefine HAVE_LIB_GMOCK - -diff --git a/src/glog/logging.h.in b/src/glog/logging.h.in -index 95a573b1..54cd838f 100644 ---- a/src/glog/logging.h.in -+++ b/src/glog/logging.h.in -@@ -89,6 +89,10 @@ - #include - #endif - -+#if @ac_cv_have_abslflags@ -+#include -+#endif -+ - #if @ac_cv_cxx11_atomic@ && __cplusplus >= 201103L - #include - #elif defined(GLOG_OS_WINDOWS) -@@ -395,6 +399,14 @@ typedef void(*CustomPrefixCallback)(std::ostream& s, const LogMessageInfo& l, vo - #undef DECLARE_uint32 - #endif - -+#if @ac_cv_have_abslflags@ -+#define DECLARE_VARIABLE 1 -+#define DECLARE_bool(name) ABSL_DECLARE_FLAG(bool, name) -+#define DECLARE_int32(name) ABSL_DECLARE_FLAG(@ac_google_namespace@::int32, name) -+#define DECLARE_uint32(name) ABSL_DECLARE_FLAG(@ac_google_namespace@::uint32, name) -+#define DECLARE_string(name) ABSL_DECLARE_FLAG(std::string, name) -+#endif -+ - #ifndef DECLARE_VARIABLE - #define DECLARE_VARIABLE(type, shorttype, name, tn) \ - namespace fL##shorttype { \ -diff --git a/src/glog/vlog_is_on.h.in b/src/glog/vlog_is_on.h.in -index 7526fc34..16e60f46 100644 ---- a/src/glog/vlog_is_on.h.in -+++ b/src/glog/vlog_is_on.h.in -@@ -64,6 +64,14 @@ - #include - - #if defined(__GNUC__) -+ -+#if @ac_cv_have_abslflags@ -+ extern int32_t absl_proxy_v; -+ #define VLEVEL (@ac_google_namespace@::absl_proxy_v) -+#else -+ #define VLEVEL (FLAGS_v) -+#endif -+ - // We emit an anonymous static int* variable at every VLOG_IS_ON(n) site. - // (Normally) the first time every VLOG_IS_ON(n) site is hit, - // we determine what variable will dynamically control logging at this site: -@@ -74,7 +82,7 @@ - __extension__ \ - ({ static @ac_google_namespace@::SiteFlag vlocal__ = {NULL, NULL, 0, NULL}; \ - @ac_google_namespace@::int32 verbose_level__ = (verboselevel); \ -- (vlocal__.level == NULL ? @ac_google_namespace@::InitVLOG3__(&vlocal__, &FLAGS_v, \ -+ (vlocal__.level == NULL ? @ac_google_namespace@::InitVLOG3__(&vlocal__, &VLEVEL, \ - __FILE__, verbose_level__) : *vlocal__.level >= verbose_level__); \ - }) - #else -diff --git a/src/logging.cc b/src/logging.cc -index 4028ccc0..fc618d3a 100644 ---- a/src/logging.cc -+++ b/src/logging.cc -@@ -103,7 +103,9 @@ using std::fdopen; - #endif - - // There is no thread annotation support. -+#ifndef EXCLUSIVE_LOCKS_REQUIRED - #define EXCLUSIVE_LOCKS_REQUIRED(mu) -+#endif - - static bool BoolFromEnv(const char *varname, bool defval) { - const char* const valstr = getenv(varname); -@@ -351,8 +353,9 @@ static const char* GetAnsiColorCode(GLogColor color) { - - // Safely get max_log_size, overriding to 1 if it somehow gets defined as 0 - static uint32 MaxLogSize() { -- return (FLAGS_max_log_size > 0 && FLAGS_max_log_size < 4096 -- ? FLAGS_max_log_size -+ uint32 maxlogsize = FLAG(max_log_size); -+ return (maxlogsize > 0 && maxlogsize < 4096 -+ ? maxlogsize - : 1); - } - -@@ -721,7 +724,7 @@ inline void LogDestination::SetStderrLogging(LogSeverity min_severity) { - // Prevent any subtle race conditions by wrapping a mutex lock around - // all this stuff. - MutexLock l(&log_mutex); -- FLAGS_stderrthreshold = min_severity; -+ absl::SetFlag(&FLAGS_stderrthreshold, min_severity); - } - - inline void LogDestination::LogToStderr() { -@@ -747,8 +750,8 @@ static void ColoredWriteToStderrOrStdout(FILE* output, LogSeverity severity, - const char* message, size_t len) { - bool is_stdout = (output == stdout); - const GLogColor color = (LogDestination::terminal_supports_color() && -- ((!is_stdout && FLAGS_colorlogtostderr) || -- (is_stdout && FLAGS_colorlogtostdout))) -+ ((!is_stdout && FLAG(colorlogtostderr)) || -+ (is_stdout && FLAG(colorlogtostdout)))) - ? SeverityToColor(severity) - : COLOR_DEFAULT; - -@@ -789,7 +792,7 @@ static void ColoredWriteToStdout(LogSeverity severity, const char* message, - FILE* output = stdout; - // We also need to send logs to the stderr when the severity is - // higher or equal to the stderr threshold. -- if (severity >= FLAGS_stderrthreshold) { -+ if (severity >= FLAG(stderrthreshold)) { - output = stderr; - } - ColoredWriteToStderrOrStdout(output, severity, message, len); -@@ -808,7 +811,7 @@ static void WriteToStderr(const char* message, size_t len) { - - inline void LogDestination::MaybeLogToStderr(LogSeverity severity, - const char* message, size_t message_len, size_t prefix_len) { -- if ((severity >= FLAGS_stderrthreshold) || FLAGS_alsologtostderr) { -+ if ((severity >= FLAG(stderrthreshold)) || FLAG(alsologtostderr)) { - ColoredWriteToStderr(severity, message, message_len); - #ifdef GLOG_OS_WINDOWS - (void) prefix_len; -@@ -835,8 +838,8 @@ inline void LogDestination::MaybeLogToStderr(LogSeverity severity, - inline void LogDestination::MaybeLogToEmail(LogSeverity severity, - const char* message, size_t len) { - if (severity >= email_logging_severity_ || -- severity >= FLAGS_logemaillevel) { -- string to(FLAGS_alsologtoemail); -+ severity >= FLAG(logemaillevel)) { -+ string to(FLAG(alsologtoemail)); - if (!addresses_.empty()) { - if (!to.empty()) { - to += ","; -@@ -862,7 +865,7 @@ inline void LogDestination::MaybeLogToLogfile(LogSeverity severity, - time_t timestamp, - const char* message, - size_t len) { -- const bool should_flush = severity > FLAGS_logbuflevel; -+ const bool should_flush = severity > FLAG(logbuflevel); - LogDestination* destination = log_destination(severity); - destination->logger_->Write(should_flush, timestamp, message, len); - } -@@ -871,9 +874,9 @@ inline void LogDestination::LogToAllLogfiles(LogSeverity severity, - time_t timestamp, - const char* message, - size_t len) { -- if (FLAGS_logtostdout) { // global flag: never log to file -+ if (FLAG(logtostdout)) { // global flag: never log to file - ColoredWriteToStdout(severity, message, len); -- } else if (FLAGS_logtostderr) { // global flag: never log to file -+ } else if (FLAG(logtostderr)) { // global flag: never log to file - ColoredWriteToStderr(severity, message, len); - } else { - for (int i = severity; i >= 0; --i) { -@@ -1032,25 +1035,25 @@ void LogFileObject::FlushUnlocked(){ - bytes_since_flush_ = 0; - } - // Figure out when we are due for another flush. -- const int64 next = (FLAGS_logbufsecs -+ const int64 next = (FLAG(logbufsecs) - * static_cast(1000000)); // in usec - next_flush_time_ = CycleClock_Now() + UsecToCycles(next); - } - - bool LogFileObject::CreateLogfile(const string& time_pid_string) { - string string_filename = base_filename_; -- if (FLAGS_timestamp_in_logfile_name) { -+ if (FLAG(timestamp_in_logfile_name)) { - string_filename += time_pid_string; - } - string_filename += filename_extension_; - const char* filename = string_filename.c_str(); - //only write to files, create if non-existant. - int flags = O_WRONLY | O_CREAT; -- if (FLAGS_timestamp_in_logfile_name) { -+ if (FLAG(timestamp_in_logfile_name)) { - //demand that the file is unique for our timestamp (fail if it exists). - flags = flags | O_EXCL; - } -- int fd = open(filename, flags, FLAGS_logfile_mode); -+ int fd = open(filename, flags, FLAG(logfile_mode)); - if (fd == -1) return false; - #ifdef HAVE_FCNTL - // Mark the file close-on-exec. We don't really care if this fails -@@ -1083,7 +1086,7 @@ bool LogFileObject::CreateLogfile(const string& time_pid_string) { - file_ = fdopen(fd, "a"); // Make a FILE*. - if (file_ == NULL) { // Man, we're screwed! - close(fd); -- if (FLAGS_timestamp_in_logfile_name) { -+ if (FLAG(timestamp_in_logfile_name)) { - unlink(filename); // Erase the half-baked evidence: an unusable log file, only if we just created it. - } - return false; -@@ -1125,8 +1128,8 @@ bool LogFileObject::CreateLogfile(const string& time_pid_string) { - - // Make an additional link to the log file in a place specified by - // FLAGS_log_link, if indicated -- if (!FLAGS_log_link.empty()) { -- linkpath = FLAGS_log_link + "/" + linkname; -+ if (!FLAG(log_link).empty()) { -+ linkpath = FLAG(log_link) + "/" + linkname; - unlink(linkpath.c_str()); // delete old one if it exists - if (symlink(filename, linkpath.c_str()) != 0) { - // silently ignore failures -@@ -1165,7 +1168,7 @@ void LogFileObject::Write(bool force_flush, - rollover_attempt_ = 0; - - struct ::tm tm_time; -- if (FLAGS_log_utc_time) { -+ if (FLAG(log_utc_time)) { - gmtime_r(×tamp, &tm_time); - } else { - localtime_r(×tamp, &tm_time); -@@ -1253,14 +1256,14 @@ void LogFileObject::Write(bool force_flush, - << ' ' - << setw(2) << tm_time.tm_hour << ':' - << setw(2) << tm_time.tm_min << ':' -- << setw(2) << tm_time.tm_sec << (FLAGS_log_utc_time ? " UTC\n" : "\n") -+ << setw(2) << tm_time.tm_sec << (FLAG(log_utc_time) ? " UTC\n" : "\n") - << "Running on machine: " - << LogDestination::hostname() << '\n'; - - if(!g_application_fingerprint.empty()) { - file_header_stream << "Application fingerprint: " << g_application_fingerprint << '\n'; - } -- const char* const date_time_format = FLAGS_log_year_in_prefix -+ const char* const date_time_format = FLAG(log_year_in_prefix) - ? "yyyymmdd hh:mm:ss.uuuuuu" - : "mmdd hh:mm:ss.uuuuuu"; - file_header_stream << "Running duration (h:mm:ss): " -@@ -1284,7 +1287,7 @@ void LogFileObject::Write(bool force_flush, - // greater than 4096, thereby indicating an error. - errno = 0; - fwrite(message, 1, message_len, file_); -- if ( FLAGS_stop_logging_if_full_disk && -+ if ( FLAG(stop_logging_if_full_disk) && - errno == ENOSPC ) { // disk full, stop writing to disk - stop_writing = true; // until the disk is - return; -@@ -1307,7 +1310,7 @@ void LogFileObject::Write(bool force_flush, - FlushUnlocked(); - #ifdef GLOG_OS_LINUX - // Only consider files >= 3MiB -- if (FLAGS_drop_log_memory && file_length_ >= (3U << 20U)) { -+ if (FLAG(drop_log_memory) && file_length_ >= (3U << 20U)) { - // Don't evict the most recent 1-2MiB so as not to impact a tailer - // of the log file and to avoid page rounding issue on linux < 4.7 - uint32 total_drop_length = -@@ -1348,7 +1351,7 @@ void LogCleaner::Disable() { - } - - void LogCleaner::UpdateCleanUpTime() { -- const int64 next = (FLAGS_logcleansecs -+ const int64 next = (FLAG(logcleansecs) - * 1000000); // in usec - next_cleanup_time_ = CycleClock_Now() + UsecToCycles(next); - } -@@ -1664,7 +1667,7 @@ void LogMessage::Init(const char* file, - // I20201018 160715 f5d4fbb0 logging.cc:1153] - // (log level, GMT year, month, date, time, thread_id, file basename, line) - // We exclude the thread_id for the default thread. -- if (FLAGS_log_prefix && (line != kNoLogPrefix)) { -+ if (FLAG(log_prefix) && (line != kNoLogPrefix)) { - std::ios saved_fmt(NULL); - saved_fmt.copyfmt(stream()); - stream().fill('0'); -@@ -1672,7 +1675,7 @@ void LogMessage::Init(const char* file, - if (custom_prefix_callback == NULL) { - #endif - stream() << LogSeverityNames[severity][0]; -- if (FLAGS_log_year_in_prefix) { -+ if (FLAG(log_year_in_prefix)) { - stream() << setw(4) << 1900 + logmsgtime_.year(); - } - stream() << setw(2) << 1 + logmsgtime_.month() -@@ -1703,11 +1706,11 @@ void LogMessage::Init(const char* file, - } - data_->num_prefix_chars_ = data_->stream_.pcount(); - -- if (!FLAGS_log_backtrace_at.empty()) { -+ if (!FLAG(log_backtrace_at).empty()) { - char fileline[128]; - snprintf(fileline, sizeof(fileline), "%s:%d", data_->basename_, line); - #ifdef HAVE_STACKTRACE -- if (FLAGS_log_backtrace_at == fileline) { -+ if (FLAG(log_backtrace_at) == fileline) { - string stacktrace; - DumpStackTraceToString(&stacktrace); - stream() << " (stacktrace:\n" << stacktrace << ") "; -@@ -1746,7 +1749,7 @@ ostream& LogMessage::stream() { - // Flush buffered message, called by the destructor, or any other function - // that needs to synchronize the log. - void LogMessage::Flush() { -- if (data_->has_been_flushed_ || data_->severity_ < FLAGS_minloglevel) { -+ if (data_->has_been_flushed_ || data_->severity_ < FLAG(minloglevel)) { - return; - } - -@@ -1808,7 +1811,7 @@ static char fatal_message[256]; - void ReprintFatalMessage() { - if (fatal_message[0]) { - const size_t n = strlen(fatal_message); -- if (!FLAGS_logtostderr) { -+ if (!FLAG(logtostderr)) { - // Also write to stderr (don't color to avoid terminal checks) - WriteToStderr(fatal_message, n); - } -@@ -1837,8 +1840,8 @@ void LogMessage::SendToLog() EXCLUSIVE_LOCKS_REQUIRED(log_mutex) { - // global flag: never log to file if set. Also -- don't log to a - // file if we haven't parsed the command line flags to get the - // program name. -- if (FLAGS_logtostderr || FLAGS_logtostdout || !IsGoogleLoggingInitialized()) { -- if (FLAGS_logtostdout) { -+ if (FLAG(logtostderr) || FLAG(logtostdout) || !IsGoogleLoggingInitialized()) { -+ if (FLAG(logtostdout)) { - ColoredWriteToStdout(data_->severity_, data_->message_text_, - data_->num_chars_to_log_); - } else { -@@ -1891,7 +1894,7 @@ void LogMessage::SendToLog() EXCLUSIVE_LOCKS_REQUIRED(log_mutex) { - fatal_time = logmsgtime_.timestamp(); - } - -- if (!FLAGS_logtostderr && !FLAGS_logtostdout) { -+ if (!FLAG(logtostderr) && !FLAG(logtostdout)) { - for (int i = 0; i < NUM_SEVERITIES; ++i) { - if (LogDestination::log_destinations_[i]) { - LogDestination::log_destinations_[i]->logger_->Write(true, 0, "", 0); -@@ -2238,7 +2241,7 @@ static bool SendEmailInternal(const char*dest, const char *subject, - subject, body, dest); - } - -- string logmailer = FLAGS_logmailer; -+ string logmailer = FLAG(logmailer); - if (logmailer.empty()) { - logmailer = "/bin/mail"; - } -@@ -2338,9 +2341,9 @@ const vector& GetLoggingDirectories() { - if (logging_directories_list == NULL) { - logging_directories_list = new vector; - -- if ( !FLAGS_log_dir.empty() ) { -+ if ( !FLAG(log_dir).empty() ) { - // A dir was specified, we should use it -- logging_directories_list->push_back(FLAGS_log_dir); -+ logging_directories_list->push_back(FLAG(log_dir)); - } else { - GetTempDirectories(logging_directories_list); - #ifdef GLOG_OS_WINDOWS -@@ -2654,7 +2657,7 @@ LogMessageTime::LogMessageTime(std::tm t) { - - LogMessageTime::LogMessageTime(std::time_t timestamp, WallTime now) { - std::tm t; -- if (FLAGS_log_utc_time) -+ if (FLAG(log_utc_time)) - gmtime_r(×tamp, &t); - else - localtime_r(×tamp, &t); -@@ -2673,7 +2676,7 @@ void LogMessageTime::init(const std::tm& t, std::time_t timestamp, - void LogMessageTime::CalcGmtOffset() { - std::tm gmt_struct; - int isDst = 0; -- if ( FLAGS_log_utc_time ) { -+ if ( FLAG(log_utc_time )) { - localtime_r(×tamp_, &gmt_struct); - isDst = gmt_struct.tm_isdst; - gmt_struct = time_struct_; -diff --git a/src/raw_logging.cc b/src/raw_logging.cc -index 43159832..8532362b 100644 ---- a/src/raw_logging.cc -+++ b/src/raw_logging.cc -@@ -123,8 +123,8 @@ static char crash_buf[kLogBufSize + 1] = { 0 }; // Will end in '\0' - GLOG_ATTRIBUTE_FORMAT(printf, 4, 5) - void RawLog__(LogSeverity severity, const char* file, int line, - const char* format, ...) { -- if (!(FLAGS_logtostdout || FLAGS_logtostderr || -- severity >= FLAGS_stderrthreshold || FLAGS_alsologtostderr || -+ if (!(FLAG(logtostdout) || FLAG(logtostderr) || -+ severity >= FLAG(stderrthreshold) || FLAG(alsologtostderr) || - !IsGoogleLoggingInitialized())) { - return; // this stderr log message is suppressed - } -diff --git a/src/utilities.cc b/src/utilities.cc -index a332f1a1..a9d5102a 100644 ---- a/src/utilities.cc -+++ b/src/utilities.cc -@@ -141,7 +141,7 @@ static void DumpStackTrace(int skip_count, DebugWriter *writerfn, void *arg) { - int depth = GetStackTrace(stack, ARRAYSIZE(stack), skip_count+1); - for (int i = 0; i < depth; i++) { - #if defined(HAVE_SYMBOLIZE) -- if (FLAGS_symbolize_stacktrace) { -+ if (FLAG(symbolize_stacktrace)) { - DumpPCAndSymbol(writerfn, arg, stack[i], " "); - } else { - DumpPC(writerfn, arg, stack[i], " "); -diff --git a/src/vlog_is_on.cc b/src/vlog_is_on.cc -index e478a366..4b7a5cae 100644 ---- a/src/vlog_is_on.cc -+++ b/src/vlog_is_on.cc -@@ -43,14 +43,24 @@ - #include - #include - #include "base/googleinit.h" -+#include "config.h" - - // glog doesn't have annotation - #define ANNOTATE_BENIGN_RACE(address, description) - - using std::string; - -+#ifdef HAVE_ABSL_FLAGS -+ -+ABSL_FLAG(int32_t, v, 0, "Show all VLOG(m) messages for m <= this." -+" Overridable by --vmodule.").OnUpdate([] { -+ GOOGLE_NAMESPACE::absl_proxy_v = absl::GetFlag(FLAGS_v); -+ }); -+ -+#else - GLOG_DEFINE_int32(v, 0, "Show all VLOG(m) messages for m <= this." - " Overridable by --vmodule."); -+#endif - - GLOG_DEFINE_string(vmodule, "", "per-module verbose level." - " Argument is a comma-separated list of =." -@@ -60,6 +70,8 @@ GLOG_DEFINE_string(vmodule, "", "per-module verbose level." - - _START_GOOGLE_NAMESPACE_ - -+int32_t absl_proxy_v = 0; -+ - namespace glog_internal_namespace_ { - - // Used by logging_unittests.cc so can't make it static here. -@@ -132,7 +144,8 @@ static void VLOG2Initializer() { - // Can now parse --vmodule flag and initialize mapping of module-specific - // logging levels. - inited_vmodule = false; -- const char* vmodule = FLAGS_vmodule.c_str(); -+ string vmodule_str = FLAG(vmodule); -+ const char* vmodule = vmodule_str.c_str(); - const char* sep; - VModuleInfo* head = NULL; - VModuleInfo* tail = NULL; -@@ -164,7 +177,7 @@ static void VLOG2Initializer() { - - // This can be called very early, so we use SpinLock and RAW_VLOG here. - int SetVLOGLevel(const char* module_pattern, int log_level) { -- int result = FLAGS_v; -+ int result = FLAG(v); - size_t const pattern_len = strlen(module_pattern); - bool found = false; - { diff --git a/pkgs/by-name/dr/dragonflydb/helio-third-party.patch b/pkgs/by-name/dr/dragonflydb/helio-third-party.patch new file mode 100644 index 000000000000..c10bd8e89871 --- /dev/null +++ b/pkgs/by-name/dr/dragonflydb/helio-third-party.patch @@ -0,0 +1,150 @@ +diff --git a/helio/cmake/third_party.cmake b/helio/cmake/third_party.cmake +index 810a8fa..8b11922 100644 +--- a/helio/cmake/third_party.cmake ++++ b/helio/cmake/third_party.cmake +@@ -151,7 +151,7 @@ endfunction() + + FetchContent_Declare( + gtest +- URL https://github.com/google/googletest/archive/v1.15.2.tar.gz ++ DOWNLOAD_COMMAND true + ) + + FetchContent_GetProperties(gtest) +@@ -162,7 +162,7 @@ endif () + + FetchContent_Declare( + benchmark +- URL https://github.com/google/benchmark/archive/v1.9.1.tar.gz ++ DOWNLOAD_COMMAND true + ) + + FetchContent_GetProperties(benchmark) +@@ -181,7 +181,7 @@ endif () + + FetchContent_Declare( + abseil_cpp +- URL https://github.com/abseil/abseil-cpp/releases/download/20250512.1/abseil-cpp-20250512.1.tar.gz ++ DOWNLOAD_COMMAND true + PATCH_COMMAND patch -p1 < "${CMAKE_CURRENT_LIST_DIR}/../patches/abseil-20250512.1.patch" + ) + +@@ -204,11 +204,7 @@ if (LEGACY_GLOG) + + FetchContent_Declare( + glog +- GIT_REPOSITORY https://github.com/romange/glog +- GIT_TAG Absl +- +- GIT_PROGRESS TRUE +- GIT_SHALLOW TRUE ++ DOWNLOAD_COMMAND true + ) + + FetchContent_GetProperties(glog) +@@ -278,7 +274,7 @@ if (WITH_GPERF) + + add_third_party( + gperf +- URL https://github.com/gperftools/gperftools/archive/gperftools-2.16.tar.gz ++ DOWNLOAD_COMMAND cp -r ${CMAKE_CURRENT_BINARY_DIR}/deps-nixpkgs/gperf/. + + # GIT_SHALLOW TRUE + # Remove building the unneeded programs (they fail on macos) +@@ -312,9 +308,7 @@ set(MIMALLOC_INCLUDE_DIR ${THIRD_PARTY_LIB_DIR}/mimalloc/include) + set (MIMALLOC_PATCH_COMMAND patch -p1 -d ${THIRD_PARTY_DIR}/mimalloc/ -i ${CMAKE_CURRENT_LIST_DIR}/../patches/mimalloc-v2.1.6.patch) + + add_third_party(mimalloc +- #GIT_REPOSITORY https://github.com/microsoft/mimalloc.git +- #GIT_TAG 0f6d8293c74796fa913e4b5eb4361f1e4734f7c6 +- URL https://github.com/microsoft/mimalloc/archive/refs/tags/v2.1.6.tar.gz ++ DOWNLOAD_COMMAND cp -r ${CMAKE_CURRENT_BINARY_DIR}/deps-nixpkgs/mimalloc216/. + PATCH_COMMAND "${MIMALLOC_PATCH_COMMAND}" + # -DCMAKE_BUILD_TYPE=Release + # Add -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_FLAGS=-O0 to debug +@@ -328,7 +322,7 @@ add_third_party(mimalloc + ) + + add_third_party(jemalloc +- URL https://github.com/jemalloc/jemalloc/releases/download/5.2.1/jemalloc-5.2.1.tar.bz2 ++ DOWNLOAD_COMMAND cp -r ${CMAKE_CURRENT_BINARY_DIR}/deps-nixpkgs/jemalloc/. + PATCH_COMMAND ./autogen.sh + CONFIGURE_COMMAND /configure --prefix=${THIRD_PARTY_LIB_DIR}/jemalloc --with-jemalloc-prefix=je_ --disable-libdl + ) +@@ -336,7 +330,7 @@ add_third_party(jemalloc + + add_third_party( + xxhash +- URL https://github.com/Cyan4973/xxHash/archive/v0.8.3.tar.gz ++ DOWNLOAD_COMMAND cp -r ${CMAKE_CURRENT_BINARY_DIR}/deps-nixpkgs/xxhash/. + + # A bug in xxhash 0.8.1 that searches for a file that doesn't exist + PATCH_COMMAND touch /xxhsum.1 +@@ -347,7 +341,7 @@ add_third_party( + + add_third_party( + uring +- URL https://github.com/axboe/liburing/archive/refs/tags/liburing-2.8.tar.gz ++ DOWNLOAD_COMMAND cp -r ${CMAKE_CURRENT_BINARY_DIR}/deps-nixpkgs/uring/. + + CONFIGURE_COMMAND /configure --prefix=${THIRD_PARTY_LIB_DIR}/uring + BUILD_COMMAND make -C src +@@ -356,7 +350,7 @@ add_third_party( + + add_third_party( + pugixml +- URL https://github.com/zeux/pugixml/archive/refs/tags/v1.15.tar.gz ++ DOWNLOAD_COMMAND cp -r ${CMAKE_CURRENT_BINARY_DIR}/deps-nixpkgs/pugixml/. + ) + + if (WITH_AWS) +@@ -364,9 +358,7 @@ if (WITH_AWS) + + add_third_party( + aws +- GIT_REPOSITORY https://github.com/aws/aws-sdk-cpp.git +- GIT_TAG 3e51fa016655eeb6b6610bdf8fe7cf33ebbf3e00 +- GIT_SHALLOW TRUE ++ DOWNLOAD_COMMAND cp -r ${CMAKE_CURRENT_BINARY_DIR}/deps-nixpkgs/aws-sdk-cpp/. + PATCH_COMMAND "${AWS_PATCH_COMMAND}" + CMAKE_PASS_FLAGS "-DBUILD_ONLY=s3 -DNO_HTTP_CLIENT=ON -DENABLE_TESTING=OFF -DAUTORUN_UNIT_TESTS=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_POLICY_VERSION_MINIMUM=3.5" + LIB libaws-cpp-sdk-s3.a libaws-cpp-sdk-core.a libaws-crt-cpp.a libaws-c-mqtt.a libaws-c-event-stream.a libaws-c-s3.a libaws-c-auth.a libaws-c-http.a libaws-c-io.a libs2n.a libaws-c-compression.a libaws-c-cal.a libaws-c-sdkutils.a libaws-checksums.a libaws-c-common.a +@@ -376,8 +368,7 @@ endif() + if (WITH_GCP) + add_third_party( + rapidjson +- GIT_REPOSITORY https://github.com/Tencent/rapidjson.git +- GIT_TAG ab1842a ++ DOWNLOAD_COMMAND cp -r ${CMAKE_BINARY_DIR}/deps-nixpkgs/rapidjson/. + CMAKE_PASS_FLAGS "-DRAPIDJSON_BUILD_TESTS=OFF -DRAPIDJSON_BUILD_EXAMPLES=OFF \ + -DRAPIDJSON_BUILD_DOC=OFF -DCMAKE_POLICY_VERSION_MINIMUM=3.5" + LIB "none" +@@ -386,24 +377,23 @@ endif() + + add_third_party( + cares +- URL https://codeload.github.com/c-ares/c-ares/tar.gz/refs/tags/v1.34.5 ++ DOWNLOAD_COMMAND cp -r ${CMAKE_CURRENT_BINARY_DIR}/deps-nixpkgs/cares/. + CMAKE_PASS_FLAGS "-DCARES_SHARED:BOOL=OFF -DCARES_STATIC:BOOL=ON -DCARES_STATIC_PIC:BOOL=ON \ + -DCMAKE_INSTALL_LIBDIR=lib" + ) + + add_third_party( + zstd +- URL https://github.com/facebook/zstd/releases/download/v1.5.7/zstd-1.5.7.tar.zst ++ DOWNLOAD_COMMAND cp -r ${CMAKE_CURRENT_BINARY_DIR}/deps-nixpkgs/zstd/. + SOURCE_SUBDIR "build/cmake" +- ++ + # for debug pass : "CFLAGS=-fPIC -O0 -ggdb" + CMAKE_PASS_FLAGS "-DZSTD_BUILD_SHARED=OFF -DZSTD_BUILD_PROGRAMS=OFF -DZSTD_BUILD_TESTS=OFF" + ) + + add_third_party( + expected +- GIT_REPOSITORY https://github.com/martinmoene/expected-lite.git +- GIT_TAG f17940fabae07063cabb67abf2c8d164d3146044 # Important fixes for monadic functions ++ DOWNLOAD_COMMAND cp -r ${CMAKE_CURRENT_BINARY_DIR}/deps-nixpkgs/expected/. + CMAKE_PASS_FLAGS "-DEXPECTED_LITE_OPT_BUILD_TESTS=0" + LIB "none" + ) diff --git a/pkgs/by-name/dr/dragonflydb/package.nix b/pkgs/by-name/dr/dragonflydb/package.nix index 18ffa5379a97..79cfba633713 100644 --- a/pkgs/by-name/dr/dragonflydb/package.nix +++ b/pkgs/by-name/dr/dragonflydb/package.nix @@ -1,109 +1,252 @@ { fetchFromGitHub, - fetchurl, lib, stdenv, + + # Dependencies + abseil-cpp, + c-ares, + croncpp, double-conversion, - gperftools, - mimalloc, - rapidjson, - liburing, - xxHash, + expected-lite, + fast-float, + flatbuffers_23, gbenchmark, - glog, + gperftools, gtest, + hdrhistogram_c, + hnswlib, jemalloc, - gcc-unwrapped, + liburing, + lz4, + pcre2, + pugixml, + rapidjson, + re2, + re-flex, + uni-algo, + xxHash, + zstd, + + # Build tools autoconf, autoconf-archive, - automake, + automake116x, + bison, cmake, + gcc-unwrapped, ninja, + + # Runtime dependencies boost, - libunwind, libtool, + libunwind, openssl, + zlib, + + # Options + withAws ? true, + withGcp ? true, + withGperf ? true, + withPcre ? true, + withRe2 ? true, + withSearch ? true, + withAsan ? false, + withUsan ? false, }: let pname = "dragonflydb"; - version = "0.1.0"; + version = "1.34.2"; src = fetchFromGitHub { - owner = pname; + owner = "dragonflydb"; repo = "dragonfly"; tag = "v${version}"; - hash = "sha256-P6WMW/n+VezWDXGagT4B+ZYyCp8oufDV6MTrpKpLZcs="; + hash = "sha256-n70IB32tZDe665hVLrKC0BSSJutmYhtPJvfNa48xaqA="; fetchSubmodules = true; }; - # Needed exactly 5.4.4 for patch to work - lua = fetchurl { - url = "https://github.com/lua/lua/archive/refs/tags/v5.4.4.tar.gz"; - hash = "sha256-L/ibvqIqfIuRDWsAb1ukVZ7c9GiiVTfO35mI7ZD2tFA="; + aws-sdk-cpp-1-11-162 = fetchFromGitHub { + owner = "aws"; + repo = "aws-sdk-cpp"; + tag = "1.11.162"; + hash = "sha256-NxVE7H8BOetpbBkB2PTVBoHSXYm6cTp41F1LJmhtBbs="; + fetchSubmodules = true; }; - # Needed exactly 20211102.0 for patch to work - abseil-cpp_202111 = fetchFromGitHub { - owner = "abseil"; - repo = "abseil-cpp"; - rev = "20211102.0"; - sha256 = "sha256-sSXT6D4JSrk3dA7kVaxfKkzOMBpqXQb0WbMYWG+nGwk="; + glog-absl = fetchFromGitHub { + owner = "romange"; + repo = "glog"; + rev = "Absl"; + hash = "sha256-68Hx3kIPgyMSdHCUpYr68Cw8V4Umtyd+4VLZc3zUb1s="; }; + + jsoncons-dragonfly = fetchFromGitHub { + owner = "dragonflydb"; + repo = "jsoncons"; + rev = "Dragonfly.178"; + hash = "sha256-cxM95DFFo5z+eImgZzJw+ykaeSDtBF+hw5qo6gnL53s="; + }; + + lua-dragonfly = fetchFromGitHub { + owner = "dragonflydb"; + repo = "lua"; + rev = "Dragonfly-5.4.6a"; + hash = "sha256-uLNe+hLihu4wMW/wstGnYdPa2bGPC5UiNE+VyNIYY2c="; + }; + + mimalloc216 = fetchFromGitHub { + owner = "microsoft"; + repo = "mimalloc"; + tag = "v2.1.6"; + hash = "sha256-Ff3+RP+lAXCOeHJ87oG3c02rPP4WQIbg5L/CVe6gA3M="; + }; + + mimalloc224 = fetchFromGitHub { + owner = "microsoft"; + repo = "mimalloc"; + tag = "v2.2.4"; + hash = "sha256-+8xZT+mVEqlqabQc+1buVH/X6FZxvCd0rWMyjPu9i4o="; + }; + + withUnwind = !stdenv.targetPlatform.isAarch64; in stdenv.mkDerivation { inherit pname version src; + patches = [ + ./external-libs.patch + ./helio-third-party.patch + ]; + postPatch = '' - mkdir -p ./build/{third_party,_deps} - ln -s ${double-conversion.src} ./build/third_party/dconv - ln -s ${mimalloc.src} ./build/third_party/mimalloc - ln -s ${rapidjson.src} ./build/third_party/rapidjson - ln -s ${gbenchmark.src} ./build/_deps/benchmark-src - ln -s ${gtest.src} ./build/_deps/gtest-src - cp -R --no-preserve=mode,ownership ${gperftools.src} ./build/third_party/gperf - cp -R --no-preserve=mode,ownership ${liburing.src} ./build/third_party/uring - cp -R --no-preserve=mode,ownership ${xxHash.src} ./build/third_party/xxhash - cp -R --no-preserve=mode,ownership ${abseil-cpp_202111} ./build/_deps/abseil_cpp-src - cp -R --no-preserve=mode,ownership ${glog.src} ./build/_deps/glog-src - chmod u+x ./build/third_party/uring/configure - cp ./build/third_party/xxhash/cli/xxhsum.{1,c} ./build/third_party/xxhash - patch -p1 -d ./build/_deps/glog-src < ${./glog.patch} - sed ' - s@REPLACEJEMALLOCURL@file://${jemalloc.src}@ - s@REPLACELUAURL@file://${lua}@ - ' ${./fixes.patch} | patch -p1 + chmod +x helio/blaze.sh + ''; + + preConfigure = '' + # Create directory for nixpkgs dependencies + mkdir -p build/_deps build/deps-nixpkgs + + # Copy FetchContent dependencies (in helio/cmake/third_party.cmake) + # These go to build/_deps/ where FetchContent expects them + cp -r --no-preserve=mode,ownership ${abseil-cpp.src} build/_deps/abseil_cpp-src + cp -r --no-preserve=mode,ownership ${gbenchmark.src} build/_deps/benchmark-src + cp -r --no-preserve=mode,ownership ${glog-absl} build/_deps/glog-src + cp -r --no-preserve=mode,ownership ${gtest.src} build/_deps/gtest-src + + # Copy add_third_party dependencies to deps-nixpkgs + cp -r --no-preserve=mode,ownership ${croncpp.src} build/deps-nixpkgs/croncpp + cp -r --no-preserve=mode,ownership ${double-conversion.src} build/deps-nixpkgs/dconv + cp -r --no-preserve=mode,ownership ${expected-lite.src} build/deps-nixpkgs/expected + cp -r --no-preserve=mode,ownership ${fast-float.src} build/deps-nixpkgs/fast_float + cp -r --no-preserve=mode,ownership ${flatbuffers_23.src} build/deps-nixpkgs/flatbuffers + cp -r --no-preserve=mode,ownership ${hdrhistogram_c.src} build/deps-nixpkgs/hdr_histogram + cp -r --no-preserve=mode,ownership ${jemalloc.src} build/deps-nixpkgs/jemalloc + cp -r --no-preserve=mode,ownership ${jsoncons-dragonfly} build/deps-nixpkgs/jsoncons + cp -r --no-preserve=mode,ownership ${liburing.src} build/deps-nixpkgs/uring + cp -r --no-preserve=mode,ownership ${lua-dragonfly} build/deps-nixpkgs/lua + cp -r --no-preserve=mode,ownership ${lz4.src} build/deps-nixpkgs/lz4 + cp -r --no-preserve=mode,ownership ${mimalloc216} build/deps-nixpkgs/mimalloc216 + cp -r --no-preserve=mode,ownership ${mimalloc224} build/deps-nixpkgs/mimalloc224 + cp -r --no-preserve=mode,ownership ${pugixml.src} build/deps-nixpkgs/pugixml + cp -r --no-preserve=mode,ownership ${re-flex.src} build/deps-nixpkgs/reflex + cp -r --no-preserve=mode,ownership ${xxHash.src} build/deps-nixpkgs/xxhash + cp -r --no-preserve=mode,ownership ${zstd.src} build/deps-nixpkgs/zstd + + # c-ares is provided as a tarball, extract it + mkdir -p build/deps-nixpkgs/cares + tar -xzf ${c-ares.src} -C build/deps-nixpkgs/cares --strip-components=1 + + ${ + if withAws then + '' + cp -r --no-preserve=mode,ownership ${aws-sdk-cpp-1-11-162} build/deps-nixpkgs/aws-sdk-cpp + '' + else + "" + } + + ${ + if withGcp then + '' + cp -r --no-preserve=mode,ownership ${rapidjson.src} build/deps-nixpkgs/rapidjson + '' + else + "" + } + + ${ + if withGperf then + '' + cp -r --no-preserve=mode,ownership ${gperftools.src} build/deps-nixpkgs/gperf + '' + else + "" + } + + ${ + if withSearch then + '' + cp -r --no-preserve=mode,ownership ${hnswlib.src} build/deps-nixpkgs/hnswlib + cp -r --no-preserve=mode,ownership ${uni-algo.src} build/deps-nixpkgs/uni-algo + '' + else + "" + } + + # Fix permissions + chmod -R u+w build/deps-nixpkgs build/_deps + chmod u+x build/deps-nixpkgs/reflex/configure + chmod u+x build/deps-nixpkgs/uring/configure + touch build/deps-nixpkgs/xxhash/xxhsum.1 ''; nativeBuildInputs = [ autoconf autoconf-archive - automake + automake116x + bison cmake ninja ]; buildInputs = [ boost - libunwind libtool openssl - ]; + zlib + ] + ++ lib.optional withPcre pcre2 + ++ lib.optional withRe2 re2 + ++ lib.optional withUnwind libunwind; cmakeFlags = [ - "-DCMAKE_AR=${gcc-unwrapped}/bin/gcc-ar" - "-DCMAKE_RANLIB=${gcc-unwrapped}/bin/gcc-ranlib" + (lib.cmakeFeature "CMAKE_AR" "${gcc-unwrapped}/bin/gcc-ar") + (lib.cmakeFeature "CMAKE_RANLIB" "${gcc-unwrapped}/bin/gcc-ranlib") + (lib.cmakeBool "ENABLE_GIT_VERSION" false) + (lib.cmakeBool "WITH_ASAN" withAsan) + (lib.cmakeBool "WITH_AWS" withAws) + (lib.cmakeBool "WITH_GCP" withGcp) + (lib.cmakeBool "WITH_GPERF" withGperf) + (lib.cmakeBool "WITH_SEARCH" withSearch) + (lib.cmakeBool "WITH_USAN" withUsan) ]; ninjaFlags = [ "dragonfly" ]; + # dragonflydb's tests rely heavily on outdated Python packages we don't + # have in nixpkgs, and it would be a highly non-trivial endeavor to + # recreate all of them locally to get them to run properly. doCheck = false; - dontUseNinjaInstall = true; + dontUseNinjaInstall = true; installPhase = '' runHook preInstall + mkdir -p $out/bin - cp ./dragonfly $out/bin + install -Dm755 ./dragonfly $out/bin/dragonfly + runHook postInstall ''; @@ -112,6 +255,9 @@ stdenv.mkDerivation { homepage = "https://dragonflydb.io/"; license = licenses.bsl11; platforms = platforms.linux; - maintainers = with maintainers; [ yureien ]; + maintainers = with maintainers; [ + typedrat + yureien + ]; }; } From 5f938a94bcfa4151f24652359745504f4786a449 Mon Sep 17 00:00:00 2001 From: Alexis Williams Date: Fri, 31 Oct 2025 21:23:34 -0700 Subject: [PATCH 23/45] dragonflydb: add release notes mention --- doc/release-notes/rl-2511.section.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/release-notes/rl-2511.section.md b/doc/release-notes/rl-2511.section.md index 5192f7a7d48b..75336f597b3a 100644 --- a/doc/release-notes/rl-2511.section.md +++ b/doc/release-notes/rl-2511.section.md @@ -353,6 +353,8 @@ - `plasma6`: Fixed the `ksycoca` cache not being re-built when `$XDG_CACHE_HOME` is set to something that isn't `$HOME/.cache`. +- `dragonflydb` has been updated from version 0.1.0 to version 1.34.2. + ## Nixpkgs Library {#sec-nixpkgs-release-25.11-lib} From 14826cc558d7023da18fbc3701c4a8ca44a20d59 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 9 Nov 2025 01:31:23 +0000 Subject: [PATCH 24/45] remnote: 1.21.24 -> 1.22.0 --- pkgs/by-name/re/remnote/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/re/remnote/package.nix b/pkgs/by-name/re/remnote/package.nix index aeeaaf4751df..24592f216214 100644 --- a/pkgs/by-name/re/remnote/package.nix +++ b/pkgs/by-name/re/remnote/package.nix @@ -6,10 +6,10 @@ }: let pname = "remnote"; - version = "1.21.24"; + version = "1.22.0"; src = fetchurl { url = "https://download2.remnote.io/remnote-desktop2/RemNote-${version}.AppImage"; - hash = "sha256-jJ7I5Xgq6RHZ4pT8VTMikX1f38C9FqLtJaSSgc2rWHA="; + hash = "sha256-4zIUPAQV814fmvIrHP+Dvn9eNeSY/Zmn0G2nr7llto8="; }; appimageContents = appimageTools.extractType2 { inherit pname version src; }; in From 0ee005db2ae9cc55d2d9b3f6bc40f9e5954907b2 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 9 Nov 2025 03:13:50 +0000 Subject: [PATCH 25/45] amp-cli: 0.0.1762056193-g37ad2e -> 0.0.1762646500-gac8d42 --- pkgs/by-name/am/amp-cli/package-lock.json | 9 +++++---- pkgs/by-name/am/amp-cli/package.nix | 6 +++--- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/pkgs/by-name/am/amp-cli/package-lock.json b/pkgs/by-name/am/amp-cli/package-lock.json index 7a393abfde79..07772645fe4e 100644 --- a/pkgs/by-name/am/amp-cli/package-lock.json +++ b/pkgs/by-name/am/amp-cli/package-lock.json @@ -5,7 +5,7 @@ "packages": { "": { "dependencies": { - "@sourcegraph/amp": "^0.0.1762056193-g37ad2e" + "@sourcegraph/amp": "^0.0.1762646500-gac8d42" } }, "node_modules/@napi-rs/keyring": { @@ -228,9 +228,10 @@ } }, "node_modules/@sourcegraph/amp": { - "version": "0.0.1762056193-g37ad2e", - "resolved": "https://registry.npmjs.org/@sourcegraph/amp/-/amp-0.0.1762056193-g37ad2e.tgz", - "integrity": "sha512-dWhc7ajnw1QGCYwrOGwCbpyzedf5n2RoTCM97ibpzgpphDLCdyGTXh2XTC6mrxM2CNQLp5jJaWxvcDk9nM80Vg==", + "version": "0.0.1762646500-gac8d42", + "resolved": "https://registry.npmjs.org/@sourcegraph/amp/-/amp-0.0.1762646500-gac8d42.tgz", + "integrity": "sha512-+1w32tuDcCTUSULBwWeVrOLYGIvS1z/hNWSG4p9v5TC40asudJ6DVHSgIEO4alY4v8lJ3NnDQ1t8FrdwClZi6g==", + "license": "Sourcegraph Commercial License", "dependencies": { "@napi-rs/keyring": "1.1.9" }, diff --git a/pkgs/by-name/am/amp-cli/package.nix b/pkgs/by-name/am/amp-cli/package.nix index 0dfeb0d3eac1..887211dc4916 100644 --- a/pkgs/by-name/am/amp-cli/package.nix +++ b/pkgs/by-name/am/amp-cli/package.nix @@ -9,11 +9,11 @@ buildNpmPackage (finalAttrs: { pname = "amp-cli"; - version = "0.0.1762056193-g37ad2e"; + version = "0.0.1762646500-gac8d42"; src = fetchzip { url = "https://registry.npmjs.org/@sourcegraph/amp/-/amp-${finalAttrs.version}.tgz"; - hash = "sha256-so/nlX4N9qhNLsK0OllmpfiqzyEBtPrt7KD/MoAChGc="; + hash = "sha256-jChd6cb2IBmEBu/gbCywaHJpN2Mj3EUp8YSKQ9HQd0A="; }; postPatch = '' @@ -45,7 +45,7 @@ buildNpmPackage (finalAttrs: { chmod +x bin/amp-wrapper.js ''; - npmDepsHash = "sha256-xhN5XJs8E7yCRQWRPlH9iZyh5FocUjFMto5QweaV8aI="; + npmDepsHash = "sha256-uuGqTutlApLDDFHlK+ACrox5B2KpJGYJP6M4CeCj2v0="; propagatedBuildInputs = [ ripgrep From 6ef8723d29ebd80d79477f619f164d2db6c651d0 Mon Sep 17 00:00:00 2001 From: Kenichi Kamiya Date: Sun, 9 Nov 2025 14:05:14 +0900 Subject: [PATCH 26/45] ox: remove kachick from maintainers --- pkgs/by-name/ox/ox/package.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/by-name/ox/ox/package.nix b/pkgs/by-name/ox/ox/package.nix index 25faedde1b69..d9252d2d35a0 100644 --- a/pkgs/by-name/ox/ox/package.nix +++ b/pkgs/by-name/ox/ox/package.nix @@ -37,7 +37,6 @@ rustPlatform.buildRustPackage rec { license = lib.licenses.gpl2Only; maintainers = with lib.maintainers; [ moni - kachick ]; mainProgram = "ox"; }; From e2bef78bfecfd3bad84a93dab2ee6c1fbb507a10 Mon Sep 17 00:00:00 2001 From: Kenichi Kamiya Date: Sun, 9 Nov 2025 14:06:12 +0900 Subject: [PATCH 27/45] morewaita-icon-theme: remove kachick from maintainers The temporary workarounds were removed in 5e0368d0ce41a10c1f2ca7b4474745f6775c8835. --- pkgs/by-name/mo/morewaita-icon-theme/package.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/by-name/mo/morewaita-icon-theme/package.nix b/pkgs/by-name/mo/morewaita-icon-theme/package.nix index 409e80bb3d52..b587cd65ee6f 100644 --- a/pkgs/by-name/mo/morewaita-icon-theme/package.nix +++ b/pkgs/by-name/mo/morewaita-icon-theme/package.nix @@ -45,7 +45,6 @@ stdenvNoCC.mkDerivation (finalAttrs: { platforms = lib.platforms.linux; maintainers = with lib.maintainers; [ pkosel - kachick ]; }; }) From 889e2ca41f944b4b7961ff6f057baa8d7061b09d Mon Sep 17 00:00:00 2001 From: ryneeverett Date: Sun, 9 Nov 2025 00:31:02 -0500 Subject: [PATCH 28/45] orjail: remove Maintainer @onny gave the thumbs up to the suggestion of removing since the project seems unmaintained and the build is broken on the latest firejail release: https://github.com/NixOS/nixpkgs/pull/429616#issuecomment-3254177901 --- .../manual/release-notes/rl-2511.section.md | 2 + pkgs/by-name/or/orjail/package.nix | 57 ------------------- 2 files changed, 2 insertions(+), 57 deletions(-) delete mode 100644 pkgs/by-name/or/orjail/package.nix diff --git a/nixos/doc/manual/release-notes/rl-2511.section.md b/nixos/doc/manual/release-notes/rl-2511.section.md index 65001eb9b172..96659c6cbdd0 100644 --- a/nixos/doc/manual/release-notes/rl-2511.section.md +++ b/nixos/doc/manual/release-notes/rl-2511.section.md @@ -281,6 +281,8 @@ - `services.quorum` has been removed as the `quorum` package was broken and abandoned upstream. +- `orjail` package has been removed as it is broken by the latest firejail release and seems unmaintained. + - `teleport` has been upgraded from major version 17 to major version 18. Refer to [upstream upgrade instructions](https://goteleport.com/docs/upgrading/overview/) and [release notes for v18](https://goteleport.com/docs/changelog/#1800-070325). diff --git a/pkgs/by-name/or/orjail/package.nix b/pkgs/by-name/or/orjail/package.nix deleted file mode 100644 index 52e189b131d4..000000000000 --- a/pkgs/by-name/or/orjail/package.nix +++ /dev/null @@ -1,57 +0,0 @@ -{ - lib, - stdenv, - fetchFromGitHub, - tor, - firejail, - iptables, - makeWrapper, -}: - -stdenv.mkDerivation rec { - pname = "orjail"; - version = "1.1"; - - src = fetchFromGitHub { - owner = "orjail"; - repo = "orjail"; - rev = "v${version}"; - sha256 = "06bwqb3l7syy4c1d8xynxwakmdxvm3qfm8r834nidsknvpdckd9z"; - }; - - nativeBuildInputs = [ makeWrapper ]; - - postPatch = '' - patchShebangs make-helper.bsh - mkdir bin - mv usr/sbin/orjail bin/orjail - rm -r usr - ''; - - makeFlags = [ - "DESTDIR=${placeholder "out"}" - ]; - - postInstall = '' - # Specify binary paths: tor, firejail, iptables - # mktemp fails with /tmp path prefix, will work without it anyway - # https://github.com/orjail/orjail/issues/78 - # firejail will fail reading /etc/hosts, therefore remove --hostname arg - # https://github.com/netblue30/firejail/issues/2758 - substituteInPlace $out/bin/orjail \ - --replace ''$'TORBIN=\n' ''$'TORBIN=${tor}/bin/tor\n' \ - --replace ''$'FIREJAILBIN=\n' ''$'FIREJAILBIN=${firejail}/bin/firejail\n' \ - --replace 'iptables -' '${iptables}/bin/iptables -' \ - --replace 'mktemp /tmp/' 'mktemp ' \ - --replace '--hostname=host ' "" - ''; - - meta = with lib; { - description = "Force programs to exclusively use tor network"; - mainProgram = "orjail"; - homepage = "https://github.com/orjail/orjail"; - license = licenses.wtfpl; - maintainers = with maintainers; [ onny ]; - platforms = platforms.linux; - }; -} From e21fb87fdfebbba8571d570f85d5ef42aab1657c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 9 Nov 2025 06:45:01 +0000 Subject: [PATCH 29/45] cloud-hypervisor: 48.0 -> 49.0 --- pkgs/by-name/cl/cloud-hypervisor/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/cl/cloud-hypervisor/package.nix b/pkgs/by-name/cl/cloud-hypervisor/package.nix index 8557b1659f40..61934b2a2bb4 100644 --- a/pkgs/by-name/cl/cloud-hypervisor/package.nix +++ b/pkgs/by-name/cl/cloud-hypervisor/package.nix @@ -10,16 +10,16 @@ rustPlatform.buildRustPackage rec { pname = "cloud-hypervisor"; - version = "48.0"; + version = "49.0"; src = fetchFromGitHub { owner = "cloud-hypervisor"; repo = "cloud-hypervisor"; rev = "v${version}"; - hash = "sha256-cfS3sO1GQIxF9UlzKP9iE/UuJwGVIkNBN7GDF/ltn4Q="; + hash = "sha256-bPPs/4XMcvOH4BGfQrjQdvgjGWae4UEZjzPKjalDN3w="; }; - cargoHash = "sha256-QvW1loljt9KzY0h2pG7n9NCkJJOYr/VxftsyqATm9DA="; + cargoHash = "sha256-5EK9V9yiF/UjmlYSKBIJgQOA1YU33ezicLikWYnKFAo="; separateDebugInfo = true; From 7fa73c524b6ed52df0d3cf8aa8dd86f5996e49d2 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 9 Nov 2025 07:14:55 +0000 Subject: [PATCH 30/45] dprint-plugins.dprint-plugin-biome: 0.11.1 -> 0.11.3 --- pkgs/by-name/dp/dprint/plugins/dprint-plugin-biome.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/dp/dprint/plugins/dprint-plugin-biome.nix b/pkgs/by-name/dp/dprint/plugins/dprint-plugin-biome.nix index f7d97d9acbfa..4688cbc353ea 100644 --- a/pkgs/by-name/dp/dprint/plugins/dprint-plugin-biome.nix +++ b/pkgs/by-name/dp/dprint/plugins/dprint-plugin-biome.nix @@ -1,7 +1,7 @@ { mkDprintPlugin }: mkDprintPlugin { description = "Biome (JS/TS) wrapper plugin"; - hash = "sha256-kelyuSZpbah1l+qVZMIK9VhWLr7DWjZIm9HwD64bCTw="; + hash = "sha256-WEabcffl/sARrVc00Qr6QdEjFG4BZgHRrk3eeEfFV4g="; initConfig = { configExcludes = [ "**/node_modules" ]; configKey = "biome"; @@ -16,6 +16,6 @@ mkDprintPlugin { }; pname = "dprint-plugin-biome"; updateUrl = "https://plugins.dprint.dev/dprint/biome/latest.json"; - url = "https://plugins.dprint.dev/biome-0.11.1.wasm"; - version = "0.11.1"; + url = "https://plugins.dprint.dev/biome-0.11.3.wasm"; + version = "0.11.3"; } From 08a540984c7a1def6bfeb4c1c7f0526edfa2b1d3 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 9 Nov 2025 07:40:33 +0000 Subject: [PATCH 31/45] 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 9a17278a5cebec1d39d68055fbca320ac805a498 Mon Sep 17 00:00:00 2001 From: Yarny0 <41838844+Yarny0@users.noreply.github.com> Date: Sun, 9 Nov 2025 10:27:10 +0100 Subject: [PATCH 32/45] zoom-us: simplify updater script This uses pkgsCross to help the general update script find and update the various zoom versions for the various architectures. That way, we no longer need to calculate the source hashes in the update script. Credits: The commit at hand is inspired by https://github.com/NixOS/nixpkgs/blob/c656e00a21df6c42d6b57e9f8abf6cdf20e7b1ce/pkgs/by-name/ch/chataigne/update.sh#L24 (note: not merged into nixpkgs yet, so that link might disappear), after a friendly note by axelkar https://github.com/NixOS/nixpkgs/pull/429215#discussion_r2255114820 and a helpful hint by magistau https://github.com/NixOS/nixpkgs/pull/429215#discussion_r2506957507 Thanks to both of you! --- pkgs/by-name/zo/zoom-us/update.sh | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/pkgs/by-name/zo/zoom-us/update.sh b/pkgs/by-name/zo/zoom-us/update.sh index d307058ceb5d..25e8d58eb9a2 100755 --- a/pkgs/by-name/zo/zoom-us/update.sh +++ b/pkgs/by-name/zo/zoom-us/update.sh @@ -14,21 +14,10 @@ version_aarch64_darwin=$(jq -r .zoomArm64.version <<<"$mac_data") version_x86_64_darwin=$(jq -r .zoom.version <<<"$mac_data") version_x86_64_linux=$(jq -r .zoom.version <<<"$linux_data") -echo >&2 "=== Downloading packages and computing hashes..." -# We precalculate the hashes before calling update-source-version -# because it attempts to calculate each architecture's package's hash -# by running `nix-build --system -A zoom-us.src` which -# causes cross compiling headaches; using nix-prefetch-url with -# hard-coded URLs is simpler. Keep these URLs in sync with the ones -# in package.nix where `srcs` is defined. -hash_aarch64_darwin=$(nix --extra-experimental-features nix-command hash to-sri --type sha256 $(nix-prefetch-url --type sha256 "https://zoom.us/client/${version_aarch64_darwin}/zoomusInstallerFull.pkg?archType=arm64")) -hash_x86_64_darwin=$(nix --extra-experimental-features nix-command hash to-sri --type sha256 $(nix-prefetch-url --type sha256 "https://zoom.us/client/${version_x86_64_darwin}/zoomusInstallerFull.pkg")) -hash_x86_64_linux=$(nix --extra-experimental-features nix-command hash to-sri --type sha256 $(nix-prefetch-url --type sha256 "https://zoom.us/client/${version_x86_64_linux}/zoom_x86_64.pkg.tar.xz")) - echo >&2 "=== Updating package.nix ..." # update-source-version expects to be at the root of nixpkgs -(cd "$nixpkgs" && update-source-version zoom-us "$version_aarch64_darwin" $hash_aarch64_darwin --system=aarch64-darwin --version-key=versions.aarch64-darwin) -(cd "$nixpkgs" && update-source-version zoom-us "$version_x86_64_darwin" $hash_x86_64_darwin --system=x86_64-darwin --version-key=versions.x86_64-darwin) -(cd "$nixpkgs" && update-source-version zoom-us "$version_x86_64_linux" $hash_x86_64_linux --system=x86_64-linux --version-key=versions.x86_64-linux --source-key=unpacked.src) +(cd "$nixpkgs" && update-source-version --ignore-same-version --print-changes --version-key=versions.aarch64-darwin pkgsCross.aarch64-darwin.zoom-us "$version_aarch64_darwin") +(cd "$nixpkgs" && update-source-version --ignore-same-version --print-changes --version-key=versions.x86_64-darwin pkgsCross.x86_64-darwin.zoom-us "$version_x86_64_darwin") +(cd "$nixpkgs" && update-source-version --ignore-same-version --print-changes --version-key=versions.x86_64-linux pkgsCross.gnu64.zoom-us "$version_x86_64_linux" --source-key=unpacked.src) echo >&2 "=== Done!" From f251c167806936b8f97613d0af29fcc241aad668 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 9 Nov 2025 11:39:06 +0000 Subject: [PATCH 33/45] libretro.puae: 0-unstable-2025-08-19 -> 0-unstable-2025-11-02 --- pkgs/applications/emulators/libretro/cores/puae.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/emulators/libretro/cores/puae.nix b/pkgs/applications/emulators/libretro/cores/puae.nix index 505289eec8a1..62c9a4f8b0d7 100644 --- a/pkgs/applications/emulators/libretro/cores/puae.nix +++ b/pkgs/applications/emulators/libretro/cores/puae.nix @@ -5,13 +5,13 @@ }: mkLibretroCore { core = "puae"; - version = "0-unstable-2025-08-19"; + version = "0-unstable-2025-11-02"; src = fetchFromGitHub { owner = "libretro"; repo = "libretro-uae"; - rev = "9e2aa770a9b6b0a4e1f4fc05eb0db6c8e7aba8ee"; - hash = "sha256-YTS0OgYJCGawpsDHvU79dDA+iePna5Fcab2Le3vdVSk="; + rev = "0043cf9c061bd9b81dbc1869c2761017139cfc63"; + hash = "sha256-xi/7zT+4LNfSMwfA+rvxdvsgpQRHceK6Heqrcy84RVk="; }; makefile = "Makefile"; From 3c1c5dbd251594188a12fdf0d07ebf099bacb745 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 9 Nov 2025 11:56:06 +0000 Subject: [PATCH 34/45] equicord: 2025-11-02 -> 2025-11-09 --- pkgs/by-name/eq/equicord/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/eq/equicord/package.nix b/pkgs/by-name/eq/equicord/package.nix index fae5e5d0a724..e70c6365bc34 100644 --- a/pkgs/by-name/eq/equicord/package.nix +++ b/pkgs/by-name/eq/equicord/package.nix @@ -18,13 +18,13 @@ stdenv.mkDerivation (finalAttrs: { # the Equicord repository. Dates as tags (and automatic releases) were the compromise # we came to with upstream. Please do not change the version schema (e.g., to semver) # unless upstream changes the tag schema from dates. - version = "2025-11-02"; + version = "2025-11-09"; src = fetchFromGitHub { owner = "Equicord"; repo = "Equicord"; tag = "${finalAttrs.version}"; - hash = "sha256-SThWYUi4h3OpsP28ouHW1f8+m1dr+wMAYhA/90LBYPg="; + hash = "sha256-tddAMGNcaFj1hygrkQZfutWtgI+JHdYN5BHeW37562w="; }; pnpmDeps = pnpm_10.fetchDeps { From 175492b610151d1a2341bfec913b19cacf4c33dc Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 9 Nov 2025 12:10:30 +0000 Subject: [PATCH 35/45] vscode-extensions.wgsl-analyzer.wgsl-analyzer: 0.11.94 -> 0.11.130 --- .../vscode/extensions/wgsl-analyzer.wgsl-analyzer/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/editors/vscode/extensions/wgsl-analyzer.wgsl-analyzer/default.nix b/pkgs/applications/editors/vscode/extensions/wgsl-analyzer.wgsl-analyzer/default.nix index 85aa7eb9f808..9114b98200b0 100644 --- a/pkgs/applications/editors/vscode/extensions/wgsl-analyzer.wgsl-analyzer/default.nix +++ b/pkgs/applications/editors/vscode/extensions/wgsl-analyzer.wgsl-analyzer/default.nix @@ -10,8 +10,8 @@ vscode-utils.buildVscodeMarketplaceExtension { mktplcRef = { name = "wgsl-analyzer"; publisher = "wgsl-analyzer"; - version = "0.11.94"; - hash = "sha256-FfQnNFAEh1PwT2M25km+7nEO70mDDQ75p0KHjBlAcLE="; + version = "0.11.130"; + hash = "sha256-bwtyLkMo9+3XQwUzKqSHOlCrSPqJMqKAPF17aeyr4QI="; }; nativeBuildInputs = [ From 6a3505d256aab5be0ff2c604c2a3447d3d0cfaf0 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Sun, 9 Nov 2025 12:45:40 +0000 Subject: [PATCH 36/45] python3Packages.pygerber: skip failing test on darwin --- pkgs/development/python-modules/pygerber/default.nix | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/pygerber/default.nix b/pkgs/development/python-modules/pygerber/default.nix index 41484bbede36..fa4a9331517e 100644 --- a/pkgs/development/python-modules/pygerber/default.nix +++ b/pkgs/development/python-modules/pygerber/default.nix @@ -1,8 +1,9 @@ { lib, + stdenv, buildPythonPackage, fetchFromGitHub, - pythonOlder, + # build-system poetry-core, @@ -38,8 +39,6 @@ buildPythonPackage rec { version = "2.4.3"; pyproject = true; - disabled = pythonOlder "3.8"; - src = fetchFromGitHub { owner = "Argmaster"; repo = "pygerber"; @@ -92,6 +91,11 @@ buildPythonPackage rec { "test/gerberx3/test_language_server/tests.py" ]; + disabledTests = lib.optionals stdenv.hostPlatform.isDarwin [ + # FileNotFoundError: [Errno 2] No such file or directory: 'open' + "test_project_render_with_file_type_tags" + ]; + pytestFlags = [ "--override-ini=required_plugins=" ]; pythonImportsCheck = [ "pygerber" ]; 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 37/45] 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 9c8f04498d91e86e5eea20efb081a5c2f1dce27e Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 9 Nov 2025 13:15:55 +0000 Subject: [PATCH 38/45] python3Packages.pueblo: 0.0.11 -> 0.0.12 --- pkgs/development/python-modules/pueblo/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pueblo/default.nix b/pkgs/development/python-modules/pueblo/default.nix index 926b16e96e26..6a38aa69eec2 100644 --- a/pkgs/development/python-modules/pueblo/default.nix +++ b/pkgs/development/python-modules/pueblo/default.nix @@ -12,7 +12,7 @@ buildPythonPackage rec { pname = "pueblo"; - version = "0.0.11"; + version = "0.0.12"; pyproject = true; disabled = pythonOlder "3.11"; @@ -25,7 +25,7 @@ buildPythonPackage rec { # should work for us as well. src = fetchPypi { inherit pname version; - hash = "sha256-IQ5NFn1EMh5oLgRlth7VWQmSyMx2/7cmC/U1VW1B4OE="; + hash = "sha256-oo2RNJQUVDqxhfBI6h1KCAgsMjDe7ns3F9qD4eKLVic="; }; build-system = [ From eb8cfea79d7cee6287e4752452824c00963a5f87 Mon Sep 17 00:00:00 2001 From: Diogo Correia Date: Sun, 9 Nov 2025 13:11:14 +0000 Subject: [PATCH 39/45] ci: fix "needs: reviewer" label being removed after self review --- ci/github-script/bot.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ci/github-script/bot.js b/ci/github-script/bot.js index 2b52955307ae..65db03ffaee5 100644 --- a/ci/github-script/bot.js +++ b/ci/github-script/bot.js @@ -210,7 +210,7 @@ module.exports = async ({ github, context, core, dry }) => { } } - // Check for any human reviews other than GitHub actions and other GitHub apps. + // Check for any human reviews other than the PR author, GitHub actions and other GitHub apps. // Accounts could be deleted as well, so don't count them. const reviews = ( await github.paginate(github.rest.pulls.listReviews, { @@ -218,7 +218,11 @@ module.exports = async ({ github, context, core, dry }) => { pull_number, }) ).filter( - (r) => r.user && !r.user.login.endsWith('[bot]') && r.user.type !== 'Bot', + (r) => + r.user && + !r.user.login.endsWith('[bot]') && + r.user.type !== 'Bot' && + r.user.id !== pull_request.user?.id, ) const approvals = new Set( From 8e9939c0c779d1900153761bddbc7945392fddce Mon Sep 17 00:00:00 2001 From: Sam Estep Date: Tue, 14 Oct 2025 17:53:50 -0400 Subject: [PATCH 40/45] 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 ]; + }; +}) From 5d858facb2af0b04c90ab65cd1c72bb553bdcd45 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sun, 9 Nov 2025 14:42:09 +0100 Subject: [PATCH 41/45] nixos/nix-channel: default to channels.nixos.org Infra is interested in deprecating the redirect over the domain apex eventually, since it is just a redirect to channels.nixos.org, which we can more reliably redistribute with a CDN. The nixos.org domain currently offers no IPv6 due to issues we've had with our DNS hoster. (cf. nixos/infra#873) --- nixos/modules/config/nix-channel.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/config/nix-channel.nix b/nixos/modules/config/nix-channel.nix index 23b414f8194b..b05505687193 100644 --- a/nixos/modules/config/nix-channel.nix +++ b/nixos/modules/config/nix-channel.nix @@ -71,7 +71,7 @@ in defaultChannel = mkOption { internal = true; type = types.str; - default = "https://nixos.org/channels/nixos-unstable"; + default = "https://channels.nixos.org/nixos-unstable"; description = "Default NixOS channel to which the root user is subscribed."; }; }; From c0886dcd92cf588822859d60dce39ee29c710fdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Sun, 9 Nov 2025 14:46:54 +0100 Subject: [PATCH 42/45] joplin-desktop: update electron 36 -> 37 Fixes the build, as electron_36 is EOL and use of it results in eval error. --- pkgs/by-name/jo/joplin-desktop/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/jo/joplin-desktop/package.nix b/pkgs/by-name/jo/joplin-desktop/package.nix index ec93ead2a33d..683875115f42 100644 --- a/pkgs/by-name/jo/joplin-desktop/package.nix +++ b/pkgs/by-name/jo/joplin-desktop/package.nix @@ -13,7 +13,7 @@ cairo, pixman, libsecret, - electron_36, + electron_37, xcbuild, buildPackages, callPackage, @@ -23,7 +23,7 @@ }: let - electron = electron_36; + electron = electron_37; yarn-berry = yarn-berry_4; releaseData = lib.importJSON ./release-data.json; From 29cc731fac78f8de726f9bba867f6f96f8274a74 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sun, 9 Nov 2025 15:01:11 +0100 Subject: [PATCH 43/45] frigate: use python 3.13 --- pkgs/by-name/fr/frigate/package.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/fr/frigate/package.nix b/pkgs/by-name/fr/frigate/package.nix index 0d6bfc29aa1d..56dc274ae585 100644 --- a/pkgs/by-name/fr/frigate/package.nix +++ b/pkgs/by-name/fr/frigate/package.nix @@ -2,7 +2,7 @@ lib, stdenv, callPackage, - python312Packages, + python313Packages, fetchFromGitHub, fetchurl, ffmpeg-headless, @@ -27,7 +27,7 @@ let inherit version src; }; - python = python312Packages.python.override { + python = python313Packages.python.override { packageOverrides = self: super: { joserfc = super.joserfc.overridePythonAttrs (oldAttrs: { version = "1.1.0"; @@ -141,7 +141,6 @@ python3Packages.buildPythonApplication rec { distlib fastapi filelock - future importlib-metadata importlib-resources google-generativeai From 47b8be7fe54379048eb856a07fae0172e3fb24b0 Mon Sep 17 00:00:00 2001 From: "Katja Ramona Sophie Kwast (zaphyra)" Date: Sat, 8 Nov 2025 23:54:55 +0100 Subject: [PATCH 44/45] gomuks-web: 0.4.0-unstable-2025-04-22 -> 0.2025.11-unstable-2025-11-01 --- maintainers/maintainer-list.nix | 12 +- pkgs/by-name/go/gomuks-web/package.nix | 145 ++++++++++++++----------- 2 files changed, 89 insertions(+), 68 deletions(-) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 535ef1d43934..1213e167aa29 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -5417,12 +5417,6 @@ githubId = 202474; name = "Jens Reimann"; }; - ctucx = { - email = "katja@ctu.cx"; - github = "katjakwast"; - githubId = 176372446; - name = "Katja Kwast"; - }; cupcakearmy = { name = "Niccolo Borgioli"; email = "nix@nicco.io"; @@ -29002,6 +28996,12 @@ githubId = 450885; name = "Francesco Zanini"; }; + zaphyra = { + email = "katja@zaphyra.eu"; + github = "katjakwast"; + githubId = 176372446; + name = "Katja Kwast"; + }; zareix = { email = "contact@raphael-catarino.fr"; github = "zareix"; diff --git a/pkgs/by-name/go/gomuks-web/package.nix b/pkgs/by-name/go/gomuks-web/package.nix index 487b90b5d8e4..f1fa466e1325 100644 --- a/pkgs/by-name/go/gomuks-web/package.nix +++ b/pkgs/by-name/go/gomuks-web/package.nix @@ -1,74 +1,95 @@ { lib, fetchFromGitHub, + fetchNpmDeps, buildGoModule, - buildNpmPackage, - stdenv, - olm, + nodejs, + npmHooks, unstableGitUpdater, - withGoolm ? false, }: -let - cppStdLib = if stdenv.hostPlatform.isDarwin then "-lc++" else "-lstdc++"; +buildGoModule ( + finalAttrs: + let + ver = "0.2025.11"; + revDate = "2025-11-01"; + rev = "be0d4487871c196d0c47bb1b6ac7ce9252d424de"; + srcHash = "sha256-x7M7d8obnt8mpH1ZRev8c39PE5ZlgssgusGvrLaF/vg="; + vendorHash = "sha256-TDvTZ0n324pNPAPMZMhWq0LdDUqFrzBXNVNdfMlxqeQ="; + npmDepsHash = "sha256-4Ir4uq9Hg6Hwj21P/H7xWdVPzYrDrXiouEtjnLJj4Ko="; -in -buildGoModule (finalAttrs: { - pname = "gomuks-web"; - version = "0.4.0-unstable-2025-04-22"; + in + { + pname = "gomuks-web"; + version = "${ver}-unstable-${revDate}"; - src = fetchFromGitHub { - owner = "tulir"; - repo = "gomuks"; - rev = "fd257ed74c9df42e5b6d14d3c6a283f557f61666"; - hash = "sha256-jMDLfiwkUme2bxE+ZEtUoNMwZ7GuGGzCV2dH1V87YtQ="; - }; + inherit vendorHash; - frontend = buildNpmPackage { - name = "${finalAttrs.pname}_${finalAttrs.version}-frontend"; - src = "${finalAttrs.src}/web"; - inherit (finalAttrs) version; - - npmDepsHash = "sha256-Mt2gJ1lLT3oQ3RKr3XTVFXkS/Xmjy0gahbdaxxrO+6g="; - - installPhase = '' - cp -r dist $out - ''; - }; - - vendorHash = "sha256-qeSxxd9ml2ENAYSPkdd1OWqy2DULnwLUVkKje47uT/I="; - - buildInputs = [ - (if withGoolm then stdenv.cc.cc.lib else olm) - ]; - - CGO_LDFLAGS = lib.optional withGoolm cppStdLib; - - tags = lib.optional withGoolm "goolm"; - - subPackages = [ "cmd/gomuks" ]; - - preBuild = '' - cp -r ${finalAttrs.frontend} ./web/dist - ''; - - postInstall = '' - mv $out/bin/gomuks $out/bin/gomuks-web - ''; - - passthru.updateScript = { - inherit (finalAttrs) frontend; - updateScript = unstableGitUpdater { - branch = "main"; + src = fetchFromGitHub { + owner = "gomuks"; + repo = "gomuks"; + hash = srcHash; + inherit rev; }; - }; - meta = { - mainProgram = "gomuks-web"; - description = "Matrix client written in Go"; - homepage = "https://github.com/tulir/gomuks"; - license = lib.licenses.agpl3Only; - maintainers = with lib.maintainers; [ ctucx ]; - platforms = lib.platforms.unix; - }; -}) + nativeBuildInputs = [ + nodejs + npmHooks.npmConfigHook + ]; + + env = { + npmRoot = "web"; + npmDeps = fetchNpmDeps { + src = "${finalAttrs.src}/web"; + hash = npmDepsHash; + }; + }; + + postPatch = '' + substituteInPlace ./web/build-wasm.sh \ + --replace-fail 'go.mau.fi/gomuks/version.Tag=$(git describe --exact-match --tags 2>/dev/null)' "go.mau.fi/gomuks/version.Tag=v${ver}" \ + --replace-fail 'go.mau.fi/gomuks/version.Commit=$(git rev-parse HEAD)' "go.mau.fi/gomuks/version.Commit=${rev}" + ''; + + doCheck = false; + + tags = [ "goolm" ]; + + ldflags = [ + "-X 'go.mau.fi/gomuks/version.Tag=v${ver}'" + "-X 'go.mau.fi/gomuks/version.Commit=${rev}'" + "-X \"go.mau.fi/gomuks/version.BuildTime=$(date -Iseconds)\"" + "-X \"maunium.net/go/mautrix.GoModVersion=$(cat go.mod | grep 'maunium.net/go/mautrix ' | head -n1 | awk '{ print $2 })\"" + ]; + + subPackages = [ + "cmd/gomuks" + "cmd/gomuks-terminal" + "cmd/archivemuks" + ]; + + preBuild = '' + CGO_ENABLED=0 go generate ./web + ''; + + postInstall = '' + mv $out/bin/gomuks $out/bin/gomuks-web + ''; + + passthru.updateScript = { + inherit (finalAttrs) frontend; + updateScript = unstableGitUpdater { + branch = "main"; + }; + }; + + meta = { + mainProgram = "gomuks-web"; + description = "Matrix client written in Go"; + homepage = "https://github.com/tulir/gomuks"; + license = lib.licenses.agpl3Only; + maintainers = [ lib.maintainers.zaphyra ]; + platforms = lib.platforms.unix; + }; + } +) From 4b04af0c21c4d0243b57c66092e415acf09e5372 Mon Sep 17 00:00:00 2001 From: Nona Date: Sun, 9 Nov 2025 16:27:15 +0100 Subject: [PATCH 45/45] blueprint-compiler: update src to point to GNOME gitlab jwestman/blueprint-compiler has been moved to GNOME/blueprint-compiler. updates the package src (fetchFromGitLab) and homepage URLs to point to the new URL. --- pkgs/by-name/bl/blueprint-compiler/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/bl/blueprint-compiler/package.nix b/pkgs/by-name/bl/blueprint-compiler/package.nix index ff9b8ab44a22..8de33e20aa1b 100644 --- a/pkgs/by-name/bl/blueprint-compiler/package.nix +++ b/pkgs/by-name/bl/blueprint-compiler/package.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation (finalAttrs: { src = fetchFromGitLab { domain = "gitlab.gnome.org"; - owner = "jwestman"; + owner = "GNOME"; repo = "blueprint-compiler"; rev = "v${finalAttrs.version}"; hash = "sha256-3vAFkP/psM/IsFtzVOIVSU77Z+RV4d3N70U7ggrDqfo="; @@ -83,7 +83,7 @@ stdenv.mkDerivation (finalAttrs: { meta = with lib; { description = "Markup language for GTK user interface files"; mainProgram = "blueprint-compiler"; - homepage = "https://gitlab.gnome.org/jwestman/blueprint-compiler"; + homepage = "https://gitlab.gnome.org/GNOME/blueprint-compiler"; license = licenses.lgpl3Plus; maintainers = with maintainers; [ benediktbroich