From 1aaf9e432a34631d3ba3086a34b6f327c683b135 Mon Sep 17 00:00:00 2001 From: Adrian Perez Date: Sun, 30 Nov 2025 21:36:42 -0800 Subject: [PATCH 01/19] daisydisk: 4.3.1 -> 4.3.2 --- pkgs/by-name/da/daisydisk/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/da/daisydisk/package.nix b/pkgs/by-name/da/daisydisk/package.nix index c6309a84d5c0..eeea25bd4731 100644 --- a/pkgs/by-name/da/daisydisk/package.nix +++ b/pkgs/by-name/da/daisydisk/package.nix @@ -11,11 +11,11 @@ stdenvNoCC.mkDerivation (finalAttrs: { pname = "daisydisk"; - version = "4.31"; + version = "4.32"; src = fetchzip { url = "https://daisydiskapp.com/download/DaisyDisk.zip"; - hash = "sha256-z0F1sHihmXR5hN/AwrxLr9ZxfcCN+OSeWvWBe+qwWMU="; + hash = "sha256-HRW851l3zCq43WmLkElvVlIEmfCsCUMFw/LL2cPa2Xk="; stripRoot = false; }; From 4aca2026af35814346452da3c366ece6a348d338 Mon Sep 17 00:00:00 2001 From: ElXreno Date: Thu, 4 Dec 2025 06:19:33 +0300 Subject: [PATCH 02/19] freelens-bin: 1.6.1 -> 1.7.0 --- pkgs/by-name/fr/freelens-bin/package.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/fr/freelens-bin/package.nix b/pkgs/by-name/fr/freelens-bin/package.nix index 2b59383dd753..56f6e955226c 100644 --- a/pkgs/by-name/fr/freelens-bin/package.nix +++ b/pkgs/by-name/fr/freelens-bin/package.nix @@ -11,24 +11,24 @@ let pname = "freelens-bin"; - version = "1.6.1"; + version = "1.7.0"; sources = { x86_64-linux = { url = "https://github.com/freelensapp/freelens/releases/download/v${version}/Freelens-${version}-linux-amd64.AppImage"; - hash = "sha256-RiA9OWcs6goRPN8dGsLV3ViBe/ZWB3M7yzTmDHgB3mo="; + hash = "sha256-VeWTfJf66Cq4ZyR/mO0kzm8wD+Auo1MZvXPYC1Bbf7U="; }; aarch64-linux = { url = "https://github.com/freelensapp/freelens/releases/download/v${version}/Freelens-${version}-linux-arm64.AppImage"; - hash = "sha256-hYkI9N8fnEIcj7bPp0lXcB89OZ0kzcd2RrJs3htg6Qo="; + hash = "sha256-KzX9GEaAVRWUYjaj31PVc4OQvFScXsZqZMR+baPADZA="; }; x86_64-darwin = { url = "https://github.com/freelensapp/freelens/releases/download/v${version}/Freelens-${version}-macos-amd64.dmg"; - hash = "sha256-JXqMaw5KlronrpNYNU0YcVwRddHRrK/Y5b5NE3y5BA8="; + hash = "sha256-qtfOf14gmH4HAA/UZ86QR1sA75lzXVaoWNb0N+mJWPw="; }; aarch64-darwin = { url = "https://github.com/freelensapp/freelens/releases/download/v${version}/Freelens-${version}-macos-arm64.dmg"; - hash = "sha256-0Eg3xBE+yjNvNjloUAJJMpY9h7ifgV+4G3a+EvbXL+Q="; + hash = "sha256-U6Oj+ip/srVzfyE04rJSZgaAtIt7y0X8nLgHeIvB/So="; }; }; From 474e091eddd999e721e25d7400d927ebe50d3a80 Mon Sep 17 00:00:00 2001 From: WheelsForReals Date: Mon, 8 Dec 2025 19:14:14 -0600 Subject: [PATCH 03/19] obs-studio-plugins.droidcam-obs: switch to ffmpeg 8 --- .../obs-studio/plugins/droidcam-obs/default.nix | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/video/obs-studio/plugins/droidcam-obs/default.nix b/pkgs/applications/video/obs-studio/plugins/droidcam-obs/default.nix index b536a92691d7..d296352940d5 100644 --- a/pkgs/applications/video/obs-studio/plugins/droidcam-obs/default.nix +++ b/pkgs/applications/video/obs-studio/plugins/droidcam-obs/default.nix @@ -2,8 +2,9 @@ lib, stdenv, fetchFromGitHub, + fetchpatch, obs-studio, - ffmpeg_7, + ffmpeg, libjpeg, libimobiledevice, libusbmuxd, @@ -21,6 +22,15 @@ stdenv.mkDerivation (finalAttrs: { sha256 = "sha256-hxG/v15Q4D+6LU4BNV6ErSa1WvPk4kMPl07pIqiMcc4="; }; + patches = [ + # Fix build with ffmpeg 8 / libavcodec 62 + # TODO: Drop this once v2.4.3+ is released + (fetchpatch { + url = "https://github.com/dev47apps/droidcam-obs-plugin/commit/73ec2a01e234e6b2287866c25b4242dca6d9d2f6.patch"; + hash = "sha256-AI2Z9i3+KfvmpyVX9WwX3jcA1hyUZiFO7kWRsb+8/10="; + }) + ]; + preBuild = '' mkdir ./build ''; @@ -31,7 +41,7 @@ stdenv.mkDerivation (finalAttrs: { libusbmuxd libplist obs-studio - ffmpeg_7 + ffmpeg ]; nativeBuildInputs = [ @@ -47,7 +57,7 @@ stdenv.mkDerivation (finalAttrs: { "IMOBILEDEV_DIR=${lib.getDev libimobiledevice}" "IMOBILEDEV_DIR=${lib.getLib libimobiledevice}" "LIBOBS_INCLUDES=${obs-studio}/include/obs" - "FFMPEG_INCLUDES=${lib.getLib ffmpeg_7}" + "FFMPEG_INCLUDES=${lib.getLib ffmpeg}" "LIBUSBMUXD=libusbmuxd-2.0" "LIBIMOBILEDEV=libimobiledevice-1.0" ]; From 4ad7db5d92ba412371d718375fd26b441c7f8f86 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 14 Dec 2025 01:07:17 +0000 Subject: [PATCH 04/19] vscode-extensions.detachhead.basedpyright: 1.34.0 -> 1.36.1 --- .../vscode/extensions/detachhead.basedpyright/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/editors/vscode/extensions/detachhead.basedpyright/default.nix b/pkgs/applications/editors/vscode/extensions/detachhead.basedpyright/default.nix index 645ce4dcf450..d83b8fbb533a 100644 --- a/pkgs/applications/editors/vscode/extensions/detachhead.basedpyright/default.nix +++ b/pkgs/applications/editors/vscode/extensions/detachhead.basedpyright/default.nix @@ -8,8 +8,8 @@ vscode-utils.buildVscodeMarketplaceExtension { mktplcRef = { name = "basedpyright"; publisher = "detachhead"; - version = "1.34.0"; - hash = "sha256-XAP26fmn5GM1sRZMF9uTAOTp+5DLjRjr8nO8Vdh/UpQ="; + version = "1.36.1"; + hash = "sha256-D3bKfUb/cm9zGfUCl0G/X2nxylZqSNv406BQ8c5GtgI="; }; meta = { changelog = "https://github.com/detachhead/basedpyright/releases"; From 85413300e76ee951b3a433f2480824b8af2d6478 Mon Sep 17 00:00:00 2001 From: Kyle Sferrazza Date: Sun, 30 Nov 2025 16:33:08 -0500 Subject: [PATCH 05/19] memos: 0.25.2 -> 0.25.3 --- pkgs/by-name/me/memos/package.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/me/memos/package.nix b/pkgs/by-name/me/memos/package.nix index e7bf782eb759..437c2dc9ba2b 100644 --- a/pkgs/by-name/me/memos/package.nix +++ b/pkgs/by-name/me/memos/package.nix @@ -14,12 +14,12 @@ protoc-gen-validate, }: let - version = "0.25.2"; + version = "0.25.3"; src = fetchFromGitHub { owner = "usememos"; repo = "memos"; rev = "v${version}"; - hash = "sha256-Yag+OxhlWEhWumnB620QREm4G99osKzQNlGN+1YBMTQ="; + hash = "sha256-lAKzPteGjGa7fnbB0Pm3oWId5DJekbVWI9dnPEGbiBo="; }; memos-protobuf-gen = stdenvNoCC.mkDerivation { @@ -52,7 +52,7 @@ let outputHashMode = "recursive"; outputHashAlgo = "sha256"; - outputHash = "sha256-j9jBxhDi1COowOh5sDjOuVJdHf2/RSwZ0cQUD/j2jt0="; + outputHash = "sha256-im9eVhsJ7sIxdYPugUP5Gi/ugr4I1c8aa3UzuArOxp8="; }; memos-web = stdenvNoCC.mkDerivation (finalAttrs: { @@ -62,7 +62,7 @@ let inherit (finalAttrs) pname version src; sourceRoot = "${finalAttrs.src.name}/web"; fetcherVersion = 1; - hash = "sha256-qvxOY7ASAlYbT5Ju/8b3qiE9KgXkDIj1MZuVH0hmCOA="; + hash = "sha256-k+pykzAiZ72cMMH+6qtnNxjaq4m4QyCQuWvQPbZSZho="; }; pnpmRoot = "web"; nativeBuildInputs = [ @@ -93,7 +93,7 @@ buildGoModule { memos-protobuf-gen ; - vendorHash = "sha256-Eihp7Kcu8AiPL2VEypxx8+8JwjHI8htoOv69xGrp560="; + vendorHash = "sha256-BoJxFpfKS/LByvK4AlTNc4gA/aNIvgLzoFOgyal+aF8="; preBuild = '' rm -rf server/router/frontend/dist From 5af53f1b4145dd9c759f7336c012f7143fd4a70f Mon Sep 17 00:00:00 2001 From: Kyle Sferrazza Date: Sun, 14 Dec 2025 21:44:05 -0500 Subject: [PATCH 06/19] memos: remove unnecessary protobuf generation --- pkgs/by-name/me/memos/package.nix | 46 ------------------------------- 1 file changed, 46 deletions(-) diff --git a/pkgs/by-name/me/memos/package.nix b/pkgs/by-name/me/memos/package.nix index 437c2dc9ba2b..f70ebfdb3b49 100644 --- a/pkgs/by-name/me/memos/package.nix +++ b/pkgs/by-name/me/memos/package.nix @@ -6,12 +6,6 @@ nodejs, lib, pnpm, - buf, - cacert, - grpc-gateway, - protoc-gen-go, - protoc-gen-go-grpc, - protoc-gen-validate, }: let version = "0.25.3"; @@ -22,39 +16,6 @@ let hash = "sha256-lAKzPteGjGa7fnbB0Pm3oWId5DJekbVWI9dnPEGbiBo="; }; - memos-protobuf-gen = stdenvNoCC.mkDerivation { - pname = "memos-protobuf-gen"; - inherit version src; - - nativeBuildInputs = [ - buf - cacert - grpc-gateway - protoc-gen-go - protoc-gen-go-grpc - protoc-gen-validate - ]; - - buildPhase = '' - runHook preBuild - pushd proto - HOME=$TMPDIR buf generate - popd - runHook postBuild - ''; - installPhase = '' - runHook preInstall - mkdir -p $out/{proto,web/src/types} - cp -r {.,$out}/proto/gen - cp -r {.,$out}/web/src/types/proto - runHook postInstall - ''; - - outputHashMode = "recursive"; - outputHashAlgo = "sha256"; - outputHash = "sha256-im9eVhsJ7sIxdYPugUP5Gi/ugr4I1c8aa3UzuArOxp8="; - }; - memos-web = stdenvNoCC.mkDerivation (finalAttrs: { pname = "memos-web"; inherit version src; @@ -69,9 +30,6 @@ let nodejs pnpm.configHook ]; - preBuild = '' - cp -r {${memos-protobuf-gen},.}/web/src/types/proto - ''; buildPhase = '' runHook preBuild pnpm -C web build @@ -90,7 +48,6 @@ buildGoModule { version src memos-web - memos-protobuf-gen ; vendorHash = "sha256-BoJxFpfKS/LByvK4AlTNc4gA/aNIvgLzoFOgyal+aF8="; @@ -98,15 +55,12 @@ buildGoModule { preBuild = '' rm -rf server/router/frontend/dist cp -r ${memos-web} server/router/frontend/dist - cp -r {${memos-protobuf-gen},.}/proto/gen ''; passthru.updateScript = nix-update-script { extraArgs = [ "--subpackage" "memos-web" - "--subpackage" - "memos-protobuf-gen" ]; }; From c621c15cd2115526bb61ba8ec97a64c39956cb16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Thu, 18 Dec 2025 14:13:17 -0800 Subject: [PATCH 07/19] python3Packages.submitit: remove setuptools from dependencies Upstream migrated from pkg_resources to importlib. --- pkgs/development/python-modules/submitit/default.nix | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/submitit/default.nix b/pkgs/development/python-modules/submitit/default.nix index 6911aad06a99..550db28bdfe4 100644 --- a/pkgs/development/python-modules/submitit/default.nix +++ b/pkgs/development/python-modules/submitit/default.nix @@ -2,12 +2,11 @@ lib, buildPythonPackage, fetchFromGitHub, - setuptools, cloudpickle, flit-core, typing-extensions, pytestCheckHook, - pytest-asyncio_0, + pytest-asyncio, }: buildPythonPackage rec { @@ -26,14 +25,13 @@ buildPythonPackage rec { dependencies = [ cloudpickle - setuptools typing-extensions ]; nativeCheckInputs = [ pytestCheckHook # event_loop was removed in pytest-asyncio 1.x - pytest-asyncio_0 + pytest-asyncio ]; pythonImportsCheck = [ From 72629cf4a69c545682c5513119d26c762147c84b Mon Sep 17 00:00:00 2001 From: Morgan Helton Date: Thu, 18 Dec 2025 21:07:48 -0600 Subject: [PATCH 08/19] release-cuda: remove gimp3 --- pkgs/top-level/release-cuda.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/top-level/release-cuda.nix b/pkgs/top-level/release-cuda.nix index 9ca2ab7dc30f..f127fea62d18 100644 --- a/pkgs/top-level/release-cuda.nix +++ b/pkgs/top-level/release-cuda.nix @@ -91,7 +91,6 @@ let firefox-devedition-unwrapped = linux; freecad = linux; gimp = linux; - gimp3 = linux; gpu-screen-recorder = linux; gst_all_1.gst-plugins-bad = linux; jellyfin-ffmpeg = linux; From ed9857820a180eaea08886ea65395b8fce4e4842 Mon Sep 17 00:00:00 2001 From: Phillip Seeber Date: Wed, 17 Dec 2025 10:00:39 +0100 Subject: [PATCH 09/19] python3Packages.libxc: init at 7.0.0 --- pkgs/by-name/li/libxc/python.nix | 34 ++++++++++++++++++++++++++++++ pkgs/top-level/python-packages.nix | 4 ++++ 2 files changed, 38 insertions(+) create mode 100644 pkgs/by-name/li/libxc/python.nix diff --git a/pkgs/by-name/li/libxc/python.nix b/pkgs/by-name/li/libxc/python.nix new file mode 100644 index 000000000000..86d9fb4aaace --- /dev/null +++ b/pkgs/by-name/li/libxc/python.nix @@ -0,0 +1,34 @@ +{ + buildPythonPackage, + lib, + libxc, + setuptools, + cmake, + numpy, +}: + +buildPythonPackage { + inherit (libxc) + pname + version + src + patches + meta + nativeBuildInputs + ; + + pyproject = true; + + build-system = [ + setuptools + cmake + ]; + + dependencies = [ + numpy + ]; + + dontUseCmakeConfigure = true; + + pythonImportsCheck = [ "pylibxc" ]; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index c9649073b073..81af92b20483 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -8655,6 +8655,10 @@ self: super: with self; { libvirt = callPackage ../development/python-modules/libvirt { inherit (pkgs) libvirt; }; + libxc = callPackage ../by-name/li/libxc/python.nix { + libxc = pkgs.libxc_7; + }; + libxml2 = (toPythonModule ( pkgs.libxml2.override { From 990a5022f739d971fd8a5e02fbdadcd9170a1e85 Mon Sep 17 00:00:00 2001 From: Phillip Seeber Date: Fri, 19 Dec 2025 15:10:10 +0100 Subject: [PATCH 10/19] libxc: use upstream patch for cmake compatibility --- pkgs/by-name/li/libxc/package.nix | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/li/libxc/package.nix b/pkgs/by-name/li/libxc/package.nix index cfbdd693d154..4a70bc0610c3 100644 --- a/pkgs/by-name/li/libxc/package.nix +++ b/pkgs/by-name/li/libxc/package.nix @@ -2,6 +2,7 @@ lib, stdenv, fetchFromGitLab, + fetchpatch, cmake, gfortran, perl, @@ -26,6 +27,14 @@ stdenv.mkDerivation rec { hash = versionHashes."${version}"; }; + patches = [ + # Fix build with newer CMake versions + (fetchpatch { + url = "https://gitlab.com/libxc/libxc/-/commit/450202adb8a3d698841dca853f2999b1befd932e.patch"; + sha256 = "sha256-XDt7+TzszSu+X6/PS+T8Q9BP76+bAXC9FzkA6ueo/OA="; + }) + ]; + # Timeout increase has already been included upstream in master. # Check upon updates if this can be removed. postPatch = '' @@ -49,7 +58,6 @@ stdenv.mkDerivation rec { ''; cmakeFlags = [ - "-DCMAKE_POLICY_VERSION_MINIMUM=3.5" "-DENABLE_FORTRAN=ON" "-DBUILD_SHARED_LIBS=ON" "-DENABLE_XHOST=OFF" From 5ca6f02cdbb79c280f76493c94435c99948df0dc Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 19 Dec 2025 18:56:01 +0000 Subject: [PATCH 11/19] stackit-cli: 0.49.0 -> 0.50.0 --- pkgs/by-name/st/stackit-cli/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/st/stackit-cli/package.nix b/pkgs/by-name/st/stackit-cli/package.nix index 2eb58454f729..d5b9dc05c50c 100644 --- a/pkgs/by-name/st/stackit-cli/package.nix +++ b/pkgs/by-name/st/stackit-cli/package.nix @@ -12,16 +12,16 @@ buildGoModule rec { pname = "stackit-cli"; - version = "0.49.0"; + version = "0.50.0"; src = fetchFromGitHub { owner = "stackitcloud"; repo = "stackit-cli"; rev = "v${version}"; - hash = "sha256-hhsiFfDrxuBIOWX2tHCMGBRP7z04dmwH4V6KicxzsDc="; + hash = "sha256-+bBXpsdF9VSephh8mw8X5ysy+iOCsCEy4Pc9N4IJ42M="; }; - vendorHash = "sha256-6AcSPt5CVFUPpP0ve7XtxbM1pJlPrdi3nKtzgeu649Y="; + vendorHash = "sha256-QR4/f02vtYLaxP+g0Nm87BFUANcjp72psdbtrmfnmAM="; subPackages = [ "." ]; From 257ac1945f7567077a43921f5ef8bb48f0790fdd Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 20 Dec 2025 01:35:18 +0000 Subject: [PATCH 12/19] vimPlugins.avante-nvim: 0.0.27-unstable-2025-12-09 -> 0.0.27-unstable-2025-12-19 --- .../vim/plugins/non-generated/avante-nvim/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/editors/vim/plugins/non-generated/avante-nvim/default.nix b/pkgs/applications/editors/vim/plugins/non-generated/avante-nvim/default.nix index 252f3d396330..881a6561656d 100644 --- a/pkgs/applications/editors/vim/plugins/non-generated/avante-nvim/default.nix +++ b/pkgs/applications/editors/vim/plugins/non-generated/avante-nvim/default.nix @@ -12,12 +12,12 @@ pkgs, }: let - version = "0.0.27-unstable-2025-12-09"; + version = "0.0.27-unstable-2025-12-19"; src = fetchFromGitHub { owner = "yetone"; repo = "avante.nvim"; - rev = "bbf6d8f0d9aa072a2ccffc7701936eaa71985f92"; - hash = "sha256-Ig4yMpoNEWMIHqh3Cq6taAkyBFesLk+C+nb/Kld18ag="; + rev = "15548d50fcfb2ebda173bff0d751a1b0bc53e4c5"; + hash = "sha256-jTXV/IV/vIu+pWL/C1OkWvrVRg39yGalfC28VIfDvqI="; }; avante-nvim-lib = rustPlatform.buildRustPackage { pname = "avante-nvim-lib"; From f14b363e93ef1b1c8e0e84005a1188000b81837f Mon Sep 17 00:00:00 2001 From: aleksana Date: Sat, 20 Dec 2025 10:43:54 +0800 Subject: [PATCH 13/19] turntable: 0.3.3 -> 0.4.0 --- pkgs/by-name/tu/turntable/package.nix | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/tu/turntable/package.nix b/pkgs/by-name/tu/turntable/package.nix index 44066eaf0c13..078190806a3c 100644 --- a/pkgs/by-name/tu/turntable/package.nix +++ b/pkgs/by-name/tu/turntable/package.nix @@ -12,7 +12,9 @@ libsoup_3, json-glib, libsecret, + libglycin, glib-networking, + glycin-loaders, # Per the upstream request. Key owned by Aleksana lastfmKey ? "b5027c5178ca2abfcc31bd04397c3c0e", @@ -21,14 +23,14 @@ stdenv.mkDerivation (finalAttrs: { pname = "turntable"; - version = "0.3.3"; + version = "0.4.0"; src = fetchFromGitea { domain = "codeberg.org"; owner = "GeopJr"; repo = "Turntable"; tag = "v${finalAttrs.version}"; - hash = "sha256-fBduW49eNOEzRVBb72zcB5arTjTiRUy8jE3sSMjPITE="; + hash = "sha256-Rvkzh2Cila6ZhQZyX5zzUrWane6nLAjrwnKk0LPWKuE="; }; nativeBuildInputs = [ @@ -45,6 +47,7 @@ stdenv.mkDerivation (finalAttrs: { libsoup_3 json-glib libsecret + libglycin glib-networking ]; @@ -55,6 +58,12 @@ stdenv.mkDerivation (finalAttrs: { strictDeps = true; + preFixup = '' + gappsWrapperArgs+=( + --prefix XDG_DATA_DIRS : "${glycin-loaders}/share" + ) + ''; + meta = { description = "Scrobbles your music to multiple services with playback controls for MPRIS players"; longDescription = '' From 57aba3833eae83773f383f427c8abfc0099fc322 Mon Sep 17 00:00:00 2001 From: Jason Yundt Date: Fri, 19 Dec 2025 10:35:50 -0500 Subject: [PATCH 14/19] nixos/syncthing: Fix race condition when updating from 1.x to 2.x Before this change, if you had a NixOS configuration that used an older version of Nixpkgs that provides Syncthing version 1.x, and you upgraded to a newer version of Nixpkgs that provides Syncthing version 2.x, then you might have encountered a race condition which causes syncthing-init.service to fail. This commit prevents that race condition from happening. This should make it safer for users to upgrade from Syncthing version 1.x to Syncthing version 2.x. Fixes #465573. --- .../modules/services/networking/syncthing.nix | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/nixos/modules/services/networking/syncthing.nix b/nixos/modules/services/networking/syncthing.nix index 9bc65451a1e0..9cb19e4ff527 100644 --- a/nixos/modules/services/networking/syncthing.nix +++ b/nixos/modules/services/networking/syncthing.nix @@ -72,6 +72,7 @@ let ) (filterAttrs (_: folder: folder.enable) cfg.settings.folders); jq = "${pkgs.jq}/bin/jq"; + grep = lib.getExe pkgs.gnugrep; updateConfig = pkgs.writers.writeBash "merge-syncthing-config" ( '' set -efu @@ -92,6 +93,61 @@ let --retry 1000 --retry-delay 1 --retry-all-errors \ "$@" } + + # Before version 2.0.0, Syncthing used LevelDB. In version 2.0.0, + # Syncthing started using SQLite. If you upgrade from an older version of + # Syncthing that uses LevelDB to a newer version of Syncthing that uses + # SQLite, then Syncthing will automatically do a one time database + # migration [1]. While the migration is happening, the regular Syncthing + # REST API is not available. Instead, a temporary API is made available + # in its place. + # + # The rest of this script depends on Syncthing’s regular REST API. This + # next part checks to see if Syncthing is currently providing the + # temporary API. If it is, this next part will wait until the regular API + # is available. + # + # [1]: + while true + do + # We can use pretty much any API endpoint here. I chose to use + # /rest/noauth/health because it doesn’t return a lot of data and + # because doing a “health check” seems like an appropriate way to check + # to see if the regular API is “alive” or not. + content_type="$(curl \ + -o /dev/null \ + -w '%header{Content-Type}' \ + ${curlAddressArgs "/rest/noauth/health"} + )" + # The “($|([ \t]*;.*))” part at the end allows us to not worry about + # whether or not the Content-Type contains any parameters. “$” matches + # the end of the string which indicates that no parameters were used + # [1][2]. The “[ \t]*;” part matches OWS [3] followed by a semicolon + # which indicates that at least one parameter was used [4]. + # + # We use “grep -i” here because media types are case-insensitive [2]. + # + # [1]: + # [2]: + # [3]: + # [4]: + if printf %s "$content_type" | ${lib.escapeShellArg grep} -qiP '^text/plain($|([ \t]*;.*))' + then + echo Waiting for Syncthing to finish its database migration… + sleep 30 + # TODO: This next regex pattern can be simplified if this Syncthing bug gets fixed [1]. + # + # [1]: + elif printf %s "$content_type" | ${lib.escapeShellArg grep} -qiP '^application/json($|([ \t]*;.*))' + then + echo 'Syncthing is not doing a database migration (anymore).' + break + else + printf 'ERROR: Syncthing responded with an unexpected Content-Type: %s\n' "$content_type" + # This is the EX_PROTOCOL exit status from . + exit 76 + fi + done '' + From f8278b468fa319d19fc6846a8456353c0ece5276 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 20 Dec 2025 09:09:39 +0000 Subject: [PATCH 15/19] cargo-deny: 0.18.6 -> 0.18.9 --- pkgs/by-name/ca/cargo-deny/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ca/cargo-deny/package.nix b/pkgs/by-name/ca/cargo-deny/package.nix index 114277da5360..da9f27c63749 100644 --- a/pkgs/by-name/ca/cargo-deny/package.nix +++ b/pkgs/by-name/ca/cargo-deny/package.nix @@ -8,16 +8,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "cargo-deny"; - version = "0.18.6"; + version = "0.18.9"; src = fetchFromGitHub { owner = "EmbarkStudios"; repo = "cargo-deny"; tag = finalAttrs.version; - hash = "sha256-w3SFU0FSX7nmqzyxey0erJfq8YsFEEukfNhDg5g0I04="; + hash = "sha256-2ZexBVt3+tnEwxtRuzS6f7BQyu/nvjC098221hadKw8="; }; - cargoHash = "sha256-yrVSXrxfJ4vB85rARq6g71AswRMXhn25tfYZqXm1zoo="; + cargoHash = "sha256-2u1DQtvjRfwbCXnX70M7drrMEvNsrVxsbikgrnNOkUE="; nativeBuildInputs = [ pkg-config From b86b2a80c7914c68f3fd64342adfa3f56d2446c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Silva?= Date: Sat, 20 Dec 2025 09:44:21 +0000 Subject: [PATCH 16/19] vscode-extensions.anthropic.claude-code: 2.0.74 -> 2.0.75 --- .../vscode/extensions/anthropic.claude-code/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix b/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix index 087547586b3a..6eab5329cf37 100644 --- a/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix +++ b/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix @@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension { mktplcRef = { name = "claude-code"; publisher = "anthropic"; - version = "2.0.74"; - hash = "sha256-2GhutC0n56fd3+GwLJQFYKuhUOiYWW6S5M3GlsYOEMM="; + version = "2.0.75"; + hash = "sha256-PA7eL4TZTFYVlImXnZCw6aWjrLXl7/KndnkU3D2t1jw="; }; meta = { From 6d9aa3f80ee6aa87b54e0786d3932e4076a0d21a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Silva?= Date: Sat, 20 Dec 2025 09:44:27 +0000 Subject: [PATCH 17/19] claude-code: 2.0.73 -> 2.0.74 --- pkgs/by-name/cl/claude-code/package-lock.json | 4 ++-- pkgs/by-name/cl/claude-code/package.nix | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/cl/claude-code/package-lock.json b/pkgs/by-name/cl/claude-code/package-lock.json index 889102bc4213..14fb07b88ae0 100644 --- a/pkgs/by-name/cl/claude-code/package-lock.json +++ b/pkgs/by-name/cl/claude-code/package-lock.json @@ -1,12 +1,12 @@ { "name": "@anthropic-ai/claude-code", - "version": "2.0.73", + "version": "2.0.74", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@anthropic-ai/claude-code", - "version": "2.0.73", + "version": "2.0.74", "license": "SEE LICENSE IN README.md", "bin": { "claude": "cli.js" diff --git a/pkgs/by-name/cl/claude-code/package.nix b/pkgs/by-name/cl/claude-code/package.nix index f96d87924592..323d75a6476e 100644 --- a/pkgs/by-name/cl/claude-code/package.nix +++ b/pkgs/by-name/cl/claude-code/package.nix @@ -11,14 +11,14 @@ }: buildNpmPackage (finalAttrs: { pname = "claude-code"; - version = "2.0.73"; + version = "2.0.74"; src = fetchzip { url = "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-${finalAttrs.version}.tgz"; - hash = "sha256-kQRj8Vd735KyPzPZnoieE4TxUKHoCpnC62Blsh5dbWw="; + hash = "sha256-J3m1KUO8Bkzwh3fLI96LoWw6VsSwoETcSq2IufeRW9E="; }; - npmDepsHash = "sha256-H6EqVQ7DpccxDzlMu9GuRIAQao8m3AO36mQUh1J0TRI="; + npmDepsHash = "sha256-kwJDSBAepJ1IVLzf4sydTZpvr6pERD9d7kr+KYC5Y/o="; postPatch = '' cp ${./package-lock.json} package-lock.json From 65e7bdea95a0a6dacab7511ce6890a56089a8949 Mon Sep 17 00:00:00 2001 From: Sefa Eyeoglu Date: Sat, 20 Dec 2025 11:47:46 +0100 Subject: [PATCH 18/19] pnpm.fetchDeps: fix overriding pnpm version for backwards compatibility Signed-off-by: Sefa Eyeoglu --- pkgs/development/tools/pnpm/generic.nix | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pkgs/development/tools/pnpm/generic.nix b/pkgs/development/tools/pnpm/generic.nix index 35bf64af696e..7326d9930933 100644 --- a/pkgs/development/tools/pnpm/generic.nix +++ b/pkgs/development/tools/pnpm/generic.nix @@ -80,10 +80,12 @@ stdenvNoCC.mkDerivation (finalAttrs: { "pnpm.fetchDeps: The package attribute is deprecated. Use the top-level fetchPnpmDeps attribute instead" ( { ... }@args: - fetchPnpmDeps args - // { - pnpm = pnpm'; - } + fetchPnpmDeps ( + args + // { + pnpm = pnpm'; + } + ) ); configHook = lib.warn From c9e5afc11b6225a3b871dd47dca16aed02a471bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20N=C3=BCtzi?= Date: Sat, 20 Dec 2025 12:24:54 +0100 Subject: [PATCH 19/19] gitlab: fix VM tests --- nixos/tests/all-tests.nix | 2 +- nixos/tests/gitlab/gitlab.nix | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 8ab11239fadf..cb7282078499 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -643,7 +643,7 @@ in gitdaemon = runTest ./gitdaemon.nix; gitea = handleTest ./gitea.nix { giteaPackage = pkgs.gitea; }; github-runner = runTest ./github-runner.nix; - gitlab = import ./gitlab/default.nix { + gitlab = import ./gitlab { inherit runTest; }; gitolite = runTest ./gitolite.nix; diff --git a/nixos/tests/gitlab/gitlab.nix b/nixos/tests/gitlab/gitlab.nix index bd74f2345871..762d0a572854 100644 --- a/nixos/tests/gitlab/gitlab.nix +++ b/nixos/tests/gitlab/gitlab.nix @@ -12,7 +12,7 @@ { pkgs, lib, ... }: let - inherit (import ./ssh-keys.nix pkgs) snakeOilPrivateKey snakeOilPublicKey; + inherit (import ../ssh-keys.nix pkgs) snakeOilPrivateKey snakeOilPublicKey; initialRootPassword = "notproduction"; rootProjectId = "2"; @@ -37,7 +37,7 @@ in gitlab = { ... }: { - imports = [ common/user-account.nix ]; + imports = [ ../common/user-account.nix ]; environment.systemPackages = with pkgs; [ git ];