From d496ac967d03f84bb6abc42fd96005c49332ecc4 Mon Sep 17 00:00:00 2001 From: kyehn Date: Mon, 27 Oct 2025 20:14:23 +0800 Subject: [PATCH 001/101] xmind: 25.07.03033-202507241842 -> 26.01.03145-202510170359 --- pkgs/by-name/xm/xmind/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/xm/xmind/package.nix b/pkgs/by-name/xm/xmind/package.nix index fa05346abf4e..fafd6faf69af 100644 --- a/pkgs/by-name/xm/xmind/package.nix +++ b/pkgs/by-name/xm/xmind/package.nix @@ -25,11 +25,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "xmind"; - version = "25.07.03033-202507241842"; + version = "26.01.03145-202510170359"; src = fetchurl { url = "https://dl3.xmind.app/Xmind-for-Linux-amd64bit-${finalAttrs.version}.deb"; - hash = "sha256-ZD5sFILeMgyO+jV+oArGqqDogW33JE8y49KkclEUHzE="; + hash = "sha256-h7qxDf219+t8oAk8IABs7MyasNd3K/PAM6a79kyaLdw="; }; nativeBuildInputs = [ @@ -95,7 +95,7 @@ stdenv.mkDerivation (finalAttrs: { sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; mainProgram = "xmind"; license = lib.licenses.unfree; - platforms = lib.platforms.linux; + platforms = [ "x86_64-linux" ]; maintainers = with lib.maintainers; [ michalrus ]; }; }) From 24dd94fb62c0b305f94a51b6480b9617ddee554a Mon Sep 17 00:00:00 2001 From: kyehn <228304369+kyehn@users.noreply.github.com> Date: Tue, 4 Nov 2025 17:46:41 +0800 Subject: [PATCH 002/101] yubioath-flutter: 7.3.0 -> 7.3.1 --- pkgs/by-name/yu/yubioath-flutter/package.nix | 36 +++++++++----------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/pkgs/by-name/yu/yubioath-flutter/package.nix b/pkgs/by-name/yu/yubioath-flutter/package.nix index 4cc2f0100e89..f3a4b4725e9c 100644 --- a/pkgs/by-name/yu/yubioath-flutter/package.nix +++ b/pkgs/by-name/yu/yubioath-flutter/package.nix @@ -1,31 +1,28 @@ { lib, flutter335, - python3, + python3Packages, fetchFromGitHub, pcre2, libnotify, libappindicator, - pkg-config, gnome-screenshot, - makeWrapper, removeReferencesTo, runCommand, - yq, - yubioath-flutter, + yq-go, _experimental-update-script-combinators, - gitUpdater, + nix-update-script, }: flutter335.buildFlutterApplication rec { pname = "yubioath-flutter"; - version = "7.3.0"; + version = "7.3.1"; src = fetchFromGitHub { owner = "Yubico"; repo = "yubioath-flutter"; tag = version; - hash = "sha256-1Hr8ZDHXiLiYfQg4PEpmIuIJR/USbsGCgI4YZSex2Eg="; + hash = "sha256-jfWLj5pN1NGfnmYQ0lYeKwlc0v7pCdvAjmmWX5GP7aM="; }; pubspecLock = lib.importJSON ./pubspec.lock.json; @@ -39,11 +36,7 @@ flutter335.buildFlutterApplication rec { --replace-fail "../build/linux/helper" "${passthru.helper}/libexec/helper" ''; - nativeBuildInputs = [ - makeWrapper - removeReferencesTo - pkg-config - ]; + nativeBuildInputs = [ removeReferencesTo ]; buildInputs = [ pcre2 @@ -86,19 +79,24 @@ flutter335.buildFlutterApplication rec { ''; passthru = { - helper = python3.pkgs.callPackage ./helper.nix { inherit src version meta; }; + helper = python3Packages.callPackage ./helper.nix { inherit src version meta; }; pubspecSource = runCommand "pubspec.lock.json" { - nativeBuildInputs = [ yq ]; - inherit (yubioath-flutter) src; + inherit src; + nativeBuildInputs = [ yq-go ]; } '' - cat $src/pubspec.lock | yq > $out + yq eval --output-format=json --prettyPrint $src/pubspec.lock > "$out" ''; updateScript = _experimental-update-script-combinators.sequence [ - (gitUpdater { }) - (_experimental-update-script-combinators.copyAttrOutputToFile "yubioath-flutter.pubspecSource" ./pubspec.lock.json) + (nix-update-script { extraArgs = [ "--use-github-releases" ]; }) + ( + (_experimental-update-script-combinators.copyAttrOutputToFile "yubioath-flutter.pubspecSource" ./pubspec.lock.json) + // { + supportedFeatures = [ ]; + } + ) ]; }; From 3bb3721c2fd0b48255006a0f825bf9accb0c9be4 Mon Sep 17 00:00:00 2001 From: kyehn <228304369+kyehn@users.noreply.github.com> Date: Mon, 10 Nov 2025 00:57:22 +0800 Subject: [PATCH 003/101] sparkle: 1.6.12 -> 1.6.14 --- pkgs/by-name/sp/sparkle/package.nix | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/sp/sparkle/package.nix b/pkgs/by-name/sp/sparkle/package.nix index 5679b347c2ef..913216643e6a 100644 --- a/pkgs/by-name/sp/sparkle/package.nix +++ b/pkgs/by-name/sp/sparkle/package.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "sparkle"; - version = "1.6.12"; + version = "1.6.14"; src = let @@ -40,8 +40,8 @@ stdenv.mkDerivation (finalAttrs: { fetchurl { url = "https://github.com/xishang0128/sparkle/releases/download/${finalAttrs.version}/sparkle-linux-${finalAttrs.version}-${arch}.deb"; hash = selectSystem { - x86_64-linux = "sha256-jExqA15faSvkjXMAvKMwDwsdBjijG3hOyf0j1J7jH/A="; - aarch64-linux = "sha256-1hZa5Dr+Fh9vc+066TNcvgH44Lgx5sebvMKSO+bh9B4="; + x86_64-linux = "sha256-F9vk/N2Pgjicn8hpChg7NY/Crlxiaz9c3GKuRJnqE8Y="; + aarch64-linux = "sha256-bifIBL893YetyYeAKCWiHHP0mCpM+XOxrXrTdUvI1cU="; }; }; @@ -81,7 +81,6 @@ stdenv.mkDerivation (finalAttrs: { runHook preInstall mkdir -p $out/bin - chmod 0755 opt/sparkle/resources/files/sysproxy cp -r opt $out/opt substituteInPlace usr/share/applications/sparkle.desktop \ --replace-fail "/opt/sparkle/sparkle" "sparkle" From cb7455c2ab5cef28213fe5fb11dd54b0f3463603 Mon Sep 17 00:00:00 2001 From: kyehn <228304369+kyehn@users.noreply.github.com> Date: Thu, 13 Nov 2025 02:52:21 +0800 Subject: [PATCH 004/101] iconic: 2025.3.2 -> 2025.9.1 --- pkgs/by-name/ic/iconic/package.nix | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/ic/iconic/package.nix b/pkgs/by-name/ic/iconic/package.nix index 293de5d6c18e..9bf12f4a5bf8 100644 --- a/pkgs/by-name/ic/iconic/package.nix +++ b/pkgs/by-name/ic/iconic/package.nix @@ -19,13 +19,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "iconic"; - version = "2025.3.2"; + version = "2025.9.1"; src = fetchFromGitHub { owner = "youpie"; repo = "Iconic"; tag = "v${finalAttrs.version}"; - hash = "sha256-mj95GShV/PxFXweL14zTVANO10CGpXyktJjJGtD1XS8="; + hash = "sha256-vjtPVE+n1p5DB+KewhylA9w1kVkpKyDz0WF5Mrd+BBM="; }; postPatch = '' @@ -33,15 +33,13 @@ stdenv.mkDerivation (finalAttrs: { --replace-fail "/app" "$out" substituteInPlace src/windows/regeneration.rs \ --replace-fail "/app" "$out" - substituteInPlace src/config.rs \ - --replace-fail "/app" "$out" substituteInPlace src/window.rs \ --replace-fail "create_dir" "create_dir_all" ''; cargoDeps = rustPlatform.fetchCargoVendor { inherit (finalAttrs) pname version src; - hash = "sha256-/D4l85PO2h+172f8AgQFze665otIeouxEdVL56f+hoM="; + hash = "sha256-Ma+ryvDaFfP3BYrtuPPKMVjF2l83xP+T7GlIiOenRAo="; }; nativeBuildInputs = [ From b9ee32bc28835c5674d26fe8cd56028b9478cf4e Mon Sep 17 00:00:00 2001 From: kyehn <228304369+kyehn@users.noreply.github.com> Date: Mon, 17 Nov 2025 07:36:01 +0800 Subject: [PATCH 005/101] sqlpage: 0.39.0 -> 0.39.1 Diff: https://github.com/lovasoa/SQLpage/compare/v0.39.0...v0.39.1 Changelog: https://github.com/lovasoa/SQLpage/blob/refs/tags/v0.39.1/CHANGELOG.md --- pkgs/by-name/sq/sqlpage/package.nix | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/sq/sqlpage/package.nix b/pkgs/by-name/sq/sqlpage/package.nix index bef63a5b00e4..61176075f713 100644 --- a/pkgs/by-name/sq/sqlpage/package.nix +++ b/pkgs/by-name/sq/sqlpage/package.nix @@ -42,13 +42,13 @@ in rustPlatform.buildRustPackage (finalAttrs: { pname = "sqlpage"; - version = "0.39.0"; + version = "0.39.1"; src = fetchFromGitHub { owner = "lovasoa"; repo = "SQLpage"; tag = "v${finalAttrs.version}"; - hash = "sha256-M9WtpDc067G/EfRTJBoDxBrdXRMqOwVTdGgyXSdHlhE="; + hash = "sha256-Hj3tMi+3tZ4r/Jpf0PZiWykJsAPItkR/BPwFHYoEOi8="; }; postPatch = '' @@ -71,9 +71,12 @@ rustPlatform.buildRustPackage (finalAttrs: { substituteInPlace sqlpage/tomselect.js \ --replace-fail '/* !include https://cdn.jsdelivr.net/npm/tom-select@2.4.1/dist/js/tom-select.popular.min.js */' \ "$(cat ${tomselect})" + substituteInPlace build.rs \ + --replace-fail "https://cdn.jsdelivr.net/npm/@tabler/icons-sprite@3.35.0/dist/tabler-sprite.svg" "${tablerIcons}" \ + --replace-fail "copy_url_to_opened_file(&client, sprite_url, &mut sprite_content).await;" "sprite_content = std::fs::read(sprite_url).unwrap();" ''; - cargoHash = "sha256-lUQ1j2f/LXpqpb6VK4Bq2NI0L9KoyEdlPkENMOKkt0w="; + cargoHash = "sha256-yTavtt5D0vfcMSvQnBQrIfSfssJ0Ld3O3q4lLSgrgIk="; nativeBuildInputs = [ pkg-config ]; From e0f5402c5f1e0527c5820bf7990106dd27a18a43 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Thu, 30 Oct 2025 17:21:15 +0200 Subject: [PATCH 006/101] mpd: use lib.meson* functions --- pkgs/by-name/mp/mpd/package.nix | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/pkgs/by-name/mp/mpd/package.nix b/pkgs/by-name/mp/mpd/package.nix index 661f95ed122b..cb398047f587 100644 --- a/pkgs/by-name/mp/mpd/package.nix +++ b/pkgs/by-name/mp/mpd/package.nix @@ -262,17 +262,19 @@ stdenv.mkDerivation (finalAttrs: { ]; mesonFlags = [ - "-Dtest=true" - "-Dmanpages=true" - "-Dhtml_manual=true" + (lib.mesonBool "test" true) + (lib.mesonBool "manpages" true) + (lib.mesonBool "html_manual" true) ] - ++ map (x: "-D${x}=enabled") features_ - ++ map (x: "-D${x}=disabled") (lib.subtractLists features_ knownFeatures) + ++ map (x: lib.mesonEnable x true) features_ + ++ map (x: lib.mesonEnable x false) (lib.subtractLists features_ knownFeatures) ++ lib.optional (builtins.elem "zeroconf" features_) ( - "-Dzeroconf=" + (if stdenv.hostPlatform.isDarwin then "bonjour" else "avahi") + lib.mesonOption "zeroconf" (if stdenv.hostPlatform.isDarwin then "bonjour" else "avahi") ) - ++ lib.optional (builtins.elem "systemd" features_) "-Dsystemd_system_unit_dir=etc/systemd/system" - ++ lib.optional (builtins.elem "qobuz" features_) "-Dnlohmann_json=enabled"; + ++ lib.optional (builtins.elem "systemd" features_) ( + lib.mesonOption "systemd_system_unit_dir" "etc/systemd/system" + ) + ++ lib.optional (builtins.elem "qobuz" features_) (lib.mesonEnable "nlohmann_json" true); passthru.tests.nixos = nixosTests.mpd; From 3fee4e6609791343ad9b60d968a4e13009e81644 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Mon, 17 Nov 2025 08:58:19 +0200 Subject: [PATCH 007/101] mpd: use --replace-fail in darwin postPatch substitution --- pkgs/by-name/mp/mpd/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/mp/mpd/package.nix b/pkgs/by-name/mp/mpd/package.nix index cb398047f587..ce78c25494c4 100644 --- a/pkgs/by-name/mp/mpd/package.nix +++ b/pkgs/by-name/mp/mpd/package.nix @@ -232,8 +232,8 @@ stdenv.mkDerivation (finalAttrs: { (stdenv.hostPlatform.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinSdkVersion "12.0") '' substituteInPlace src/output/plugins/OSXOutputPlugin.cxx \ - --replace kAudioObjectPropertyElement{Main,Master} \ - --replace kAudioHardwareServiceDeviceProperty_Virtual{Main,Master}Volume + --replace-fail kAudioObjectPropertyElement{Main,Master} \ + --replace-fail kAudioHardwareServiceDeviceProperty_Virtual{Main,Master}Volume '' + lib.optionalString From 35efcb442532612d7df8e8b589f90290569c7441 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Thu, 30 Oct 2025 15:15:23 +0200 Subject: [PATCH 008/101] mpd: add doronbehar as maintainer --- pkgs/by-name/mp/mpd/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/mp/mpd/package.nix b/pkgs/by-name/mp/mpd/package.nix index ce78c25494c4..0620c6e60c71 100644 --- a/pkgs/by-name/mp/mpd/package.nix +++ b/pkgs/by-name/mp/mpd/package.nix @@ -284,6 +284,7 @@ stdenv.mkDerivation (finalAttrs: { license = lib.licenses.gpl2Only; maintainers = with lib.maintainers; [ tobim + doronbehar ]; platforms = lib.platforms.unix; mainProgram = "mpd"; From d8b10b226fd2a2ed67015c90355ac4328b8a79e9 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Thu, 30 Oct 2025 10:52:57 +0200 Subject: [PATCH 009/101] nixosTests.mpd: refresh example music track The previous track was 404 probably due to changes in the website. --- nixos/tests/mpd.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nixos/tests/mpd.nix b/nixos/tests/mpd.nix index f80c6658c621..c5144c900cb2 100644 --- a/nixos/tests/mpd.nix +++ b/nixos/tests/mpd.nix @@ -1,11 +1,11 @@ { pkgs, lib, ... }: let track = pkgs.fetchurl { - # Sourced from http://freemusicarchive.org/music/Blue_Wave_Theory/Surf_Music_Month_Challenge/Skyhawk_Beach_fade_in + # Sourced from https://freemusicarchive.org/music/Jazz_at_Mladost_Club/Jazz_Night/Blue_bossa/ - name = "Blue_Wave_Theory-Skyhawk_Beach.mp3"; - url = "https://freemusicarchive.org/file/music/ccCommunity/Blue_Wave_Theory/Surf_Music_Month_Challenge/Blue_Wave_Theory_-_04_-_Skyhawk_Beach.mp3"; - hash = "sha256-91VDWwrcP6Cw4rk72VHvZ8RGfRBrpRE8xo/02dcJhHc="; + name = "Blue bossa - Jazz at Miadost Club.mp3"; + url = "https://files.freemusicarchive.org/storage-freemusicarchive-org/music/no_curator/Jazz_at_Mladost_Club/Jazz_Night/Jazz_at_Mladost_Club_-_07_-_Blue_bossa.mp3?download=1&name=Jazz%20at%20Mladost%20Club%20-%20Blue%20bossa.mp3"; + hash = "sha256-cAG4nBuc97J3ZJc9cm/6vWTgnPL/Hfkar7cA3+89rto="; meta.license = lib.licenses.cc-by-sa-40; }; From 7a16232be9c3b31dd7405832df4984c356ab5d9b Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Thu, 30 Oct 2025 10:51:07 +0200 Subject: [PATCH 010/101] nixosTests.mpd: squash defaultCfg into defaultMpdCfg --- nixos/tests/mpd.nix | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/nixos/tests/mpd.nix b/nixos/tests/mpd.nix index c5144c900cb2..347bcff1b829 100644 --- a/nixos/tests/mpd.nix +++ b/nixos/tests/mpd.nix @@ -9,20 +9,11 @@ let meta.license = lib.licenses.cc-by-sa-40; }; - defaultCfg = rec { + defaultMpdCfg = rec { user = "mpd"; group = "mpd"; dataDir = "/var/lib/mpd"; musicDirectory = "${dataDir}/music"; - }; - - defaultMpdCfg = { - inherit (defaultCfg) - dataDir - musicDirectory - user - group - ; enable = true; }; From 97e96b7f45e1762cfe197e1a89ed96c48c099dba Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Thu, 30 Oct 2025 10:52:17 +0200 Subject: [PATCH 011/101] nixosTests.mpd: don't explicitly set default musicDirectory --- nixos/tests/mpd.nix | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/nixos/tests/mpd.nix b/nixos/tests/mpd.nix index 347bcff1b829..9fe1579169d4 100644 --- a/nixos/tests/mpd.nix +++ b/nixos/tests/mpd.nix @@ -9,11 +9,10 @@ let meta.license = lib.licenses.cc-by-sa-40; }; - defaultMpdCfg = rec { + defaultMpdCfg = { user = "mpd"; group = "mpd"; dataDir = "/var/lib/mpd"; - musicDirectory = "${dataDir}/music"; enable = true; }; @@ -21,7 +20,7 @@ let { user, group, - musicDirectory, + dataDir, }: { description = "Sets up the music file(s) for MPD to use."; @@ -29,7 +28,7 @@ let after = [ "mpd.service" ]; wantedBy = [ "default.target" ]; script = '' - cp ${track} ${musicDirectory} + cp ${track} ${dataDir}/music ''; serviceConfig = { User = user; @@ -68,7 +67,7 @@ in } ''; }; - musicService = musicService { inherit (defaultMpdCfg) user group musicDirectory; }; + musicService = musicService { inherit (defaultMpdCfg) user group dataDir; }; }) { networking.firewall.allowedTCPPorts = [ 6600 ]; } ]; @@ -86,7 +85,7 @@ in ''; }; - musicService = musicService { inherit (defaultMpdCfg) user group musicDirectory; }; + musicService = musicService { inherit (defaultMpdCfg) user group dataDir; }; }) { services.pulseaudio = { From 2df4d2030f0312725c168d2c4768d6dec443fe3c Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Thu, 30 Oct 2025 11:39:59 +0200 Subject: [PATCH 012/101] nixosTests.mpd: put mpd.conf files in $out --- nixos/tests/mpd.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nixos/tests/mpd.nix b/nixos/tests/mpd.nix index 9fe1579169d4..a6fce888375f 100644 --- a/nixos/tests/mpd.nix +++ b/nixos/tests/mpd.nix @@ -134,5 +134,8 @@ in # The PulseAudio-based server is configured not to accept external client connections # to perform the following test: client.fail(f"{mpc} -h serverPulseAudio status") + # For inspecting these files + serverALSA.copy_from_vm("/run/mpd/mpd.conf", "ALSA") + serverPulseAudio.copy_from_vm("/run/mpd/mpd.conf", "PulseAudio") ''; } From 623427215d5828b834c2a1a2fd1acb0507a04b4f Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Thu, 30 Oct 2025 14:14:30 +0200 Subject: [PATCH 013/101] nixosTests.mpd: add doronbehar as maintainer --- nixos/tests/mpd.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nixos/tests/mpd.nix b/nixos/tests/mpd.nix index a6fce888375f..77e2065fca43 100644 --- a/nixos/tests/mpd.nix +++ b/nixos/tests/mpd.nix @@ -47,7 +47,10 @@ in { name = "mpd"; meta = { - maintainers = with lib.maintainers; [ emmanuelrosa ]; + maintainers = with lib.maintainers; [ + emmanuelrosa + doronbehar + ]; }; nodes = { From fce8ebf4d1fd79eb7b9289cd31302b63db0e9228 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Wed, 29 Oct 2025 16:53:16 +0200 Subject: [PATCH 014/101] nixos/mpd: move user, group & dataDir upwards (preparation commit) --- nixos/modules/services/audio/mpd.nix | 46 ++++++++++++++-------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/nixos/modules/services/audio/mpd.nix b/nixos/modules/services/audio/mpd.nix index 904b0a8c60a4..6f1d5d307a20 100644 --- a/nixos/modules/services/audio/mpd.nix +++ b/nixos/modules/services/audio/mpd.nix @@ -80,6 +80,29 @@ in ''; }; + user = lib.mkOption { + type = lib.types.str; + default = name; + description = "User account under which MPD runs."; + }; + + group = lib.mkOption { + type = lib.types.str; + default = name; + description = "Group account under which MPD runs."; + }; + + dataDir = lib.mkOption { + type = lib.types.path; + default = "/var/lib/${name}"; + description = '' + The directory where MPD stores its state, tag cache, playlists etc. If + left as the default value this directory will automatically be created + before the MPD server starts, otherwise the sysadmin is responsible for + ensuring the directory exists with appropriate ownership and permissions. + ''; + }; + musicDirectory = lib.mkOption { type = with lib.types; either path (strMatching "(http|https|nfs|smb)://.+"); default = "${cfg.dataDir}/music"; @@ -115,29 +138,6 @@ in ''; }; - dataDir = lib.mkOption { - type = lib.types.path; - default = "/var/lib/${name}"; - description = '' - The directory where MPD stores its state, tag cache, playlists etc. If - left as the default value this directory will automatically be created - before the MPD server starts, otherwise the sysadmin is responsible for - ensuring the directory exists with appropriate ownership and permissions. - ''; - }; - - user = lib.mkOption { - type = lib.types.str; - default = name; - description = "User account under which MPD runs."; - }; - - group = lib.mkOption { - type = lib.types.str; - default = name; - description = "Group account under which MPD runs."; - }; - network = { listenAddress = lib.mkOption { From 90d162890d712b48a056f8e0c00376390a06aec9 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Wed, 29 Oct 2025 17:00:11 +0200 Subject: [PATCH 015/101] nixos/mpd: rename some settings to fit upstream's names --- nixos/modules/services/audio/mpd.nix | 58 ++++++++++++++++++---------- nixos/tests/mpd.nix | 2 +- 2 files changed, 38 insertions(+), 22 deletions(-) diff --git a/nixos/modules/services/audio/mpd.nix b/nixos/modules/services/audio/mpd.nix index 6f1d5d307a20..6897c9bfb34c 100644 --- a/nixos/modules/services/audio/mpd.nix +++ b/nixos/modules/services/audio/mpd.nix @@ -29,18 +29,18 @@ let # via NixOS' configuration.nix, as this file will be rewritten upon mpd's # restart. - music_directory "${cfg.musicDirectory}" - playlist_directory "${cfg.playlistDirectory}" - ${lib.optionalString (cfg.dbFile != null) '' - db_file "${cfg.dbFile}" + music_directory "${cfg.music_directory}" + playlist_directory "${cfg.playlist_directory}" + ${lib.optionalString (cfg.db_file != null) '' + db_file "${cfg.db_file}" ''} state_file "${cfg.dataDir}/state" sticker_file "${cfg.dataDir}/sticker.sql" ${lib.optionalString ( - cfg.network.listenAddress != "any" - ) ''bind_to_address "${cfg.network.listenAddress}"''} - ${lib.optionalString (cfg.network.port != 6600) ''port "${toString cfg.network.port}"''} + cfg.bind_to_address != "any" + ) ''bind_to_address "${cfg.bind_to_address}"''} + ${lib.optionalString (cfg.port != 6600) ''port "${toString cfg.port}"''} ${lib.optionalString (cfg.fluidsynth) '' decoder { plugin "fluidsynth" @@ -103,7 +103,7 @@ in ''; }; - musicDirectory = lib.mkOption { + music_directory = lib.mkOption { type = with lib.types; either path (strMatching "(http|https|nfs|smb)://.+"); default = "${cfg.dataDir}/music"; defaultText = lib.literalExpression ''"''${dataDir}/music"''; @@ -115,7 +115,7 @@ in ''; }; - playlistDirectory = lib.mkOption { + playlist_directory = lib.mkOption { type = lib.types.path; default = "${cfg.dataDir}/playlists"; defaultText = lib.literalExpression ''"''${dataDir}/playlists"''; @@ -138,9 +138,7 @@ in ''; }; - network = { - - listenAddress = lib.mkOption { + bind_to_address = lib.mkOption { type = lib.types.str; default = "127.0.0.1"; example = "any"; @@ -159,9 +157,7 @@ in ''; }; - }; - - dbFile = lib.mkOption { + db_file = lib.mkOption { type = lib.types.nullOr lib.types.str; default = "${cfg.dataDir}/tag_cache"; defaultText = lib.literalExpression ''"''${dataDir}/tag_cache"''; @@ -235,6 +231,26 @@ in ###### implementation + imports = [ + (lib.mkRenamedOptionModule + [ "services" "mpd" "musicDirectory" ] + [ "services" "mpd" "music_directory" ] + ) + (lib.mkRenamedOptionModule + [ "services" "mpd" "playlistDirectory" ] + [ "services" "mpd" "playlist_directory" ] + ) + (lib.mkRenamedOptionModule [ "services" "mpd" "dbFile" ] [ "services" "mpd" "db_file" ]) + (lib.mkRenamedOptionModule + [ "services" "mpd" "network" "listenAddress" ] + [ "services" "mpd" "bind_to_address" ] + ) + (lib.mkRenamedOptionModule + [ "services" "mpd" "network" "port" ] + [ "services" "mpd" "port" ] + ) + ]; + config = lib.mkIf cfg.enable { # install mpd units @@ -245,12 +261,12 @@ in listenStreams = [ "" # Note: this is needed to override the upstream unit ( - if pkgs.lib.hasPrefix "/" cfg.network.listenAddress then - cfg.network.listenAddress + if pkgs.lib.hasPrefix "/" cfg.bind_to_address then + cfg.bind_to_address else "${ - lib.optionalString (cfg.network.listenAddress != "any") "${cfg.network.listenAddress}:" - }${toString cfg.network.port}" + lib.optionalString (cfg.bind_to_address != "any") "${cfg.bind_to_address}:" + }${toString cfg.port}" ) ]; }; @@ -282,11 +298,11 @@ in StateDirectory = [ ] ++ lib.optionals (cfg.dataDir == "/var/lib/${name}") [ name ] - ++ lib.optionals (cfg.playlistDirectory == "/var/lib/${name}/playlists") [ + ++ lib.optionals (cfg.playlist_directory == "/var/lib/${name}/playlists") [ name "${name}/playlists" ] - ++ lib.optionals (cfg.musicDirectory == "/var/lib/${name}/music") [ + ++ lib.optionals (cfg.music_directory == "/var/lib/${name}/music") [ name "${name}/music" ]; diff --git a/nixos/tests/mpd.nix b/nixos/tests/mpd.nix index 77e2065fca43..4d8cf4cdbb02 100644 --- a/nixos/tests/mpd.nix +++ b/nixos/tests/mpd.nix @@ -61,7 +61,7 @@ in lib.mkMerge [ (mkServer { mpd = defaultMpdCfg // { - network.listenAddress = "any"; + bind_to_address = "any"; extraConfig = '' audio_output { type "alsa" From 5759fff21b3eb19d9cbd74cce205c5629e2cace6 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Wed, 29 Oct 2025 17:06:37 +0200 Subject: [PATCH 016/101] nixos/mpd: small indentation fix --- nixos/modules/services/audio/mpd.nix | 34 ++++++++++++++-------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/nixos/modules/services/audio/mpd.nix b/nixos/modules/services/audio/mpd.nix index 6897c9bfb34c..0e58ca1e100f 100644 --- a/nixos/modules/services/audio/mpd.nix +++ b/nixos/modules/services/audio/mpd.nix @@ -138,24 +138,24 @@ in ''; }; - bind_to_address = lib.mkOption { - type = lib.types.str; - default = "127.0.0.1"; - example = "any"; - description = '' - The address for the daemon to listen on. - Use `any` to listen on all addresses. - ''; - }; + bind_to_address = lib.mkOption { + type = lib.types.str; + default = "127.0.0.1"; + example = "any"; + description = '' + The address for the daemon to listen on. + Use `any` to listen on all addresses. + ''; + }; - port = lib.mkOption { - type = lib.types.port; - default = 6600; - description = '' - This setting is the TCP port that is desired for the daemon to get assigned - to. - ''; - }; + port = lib.mkOption { + type = lib.types.port; + default = 6600; + description = '' + This setting is the TCP port that is desired for the daemon to get assigned + to. + ''; + }; db_file = lib.mkOption { type = lib.types.nullOr lib.types.str; From 9279e2a51ce64757999531a85de0f2093e9444f2 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Wed, 29 Oct 2025 17:07:01 +0200 Subject: [PATCH 017/101] nixos/mpd: small db_file type fix --- nixos/modules/services/audio/mpd.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/services/audio/mpd.nix b/nixos/modules/services/audio/mpd.nix index 0e58ca1e100f..04941fefa1eb 100644 --- a/nixos/modules/services/audio/mpd.nix +++ b/nixos/modules/services/audio/mpd.nix @@ -158,7 +158,7 @@ in }; db_file = lib.mkOption { - type = lib.types.nullOr lib.types.str; + type = lib.types.nullOr lib.types.path; default = "${cfg.dataDir}/tag_cache"; defaultText = lib.literalExpression ''"''${dataDir}/tag_cache"''; description = '' From eff6e4f42c9397b227fc2a5be7c3088e1cbeee65 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Mon, 17 Nov 2025 11:45:56 +0200 Subject: [PATCH 018/101] nixos/mpd: allow any URI schema in music_directory There are many more URI schemas possible, and it depends on storage plugins activated etc. --- nixos/modules/services/audio/mpd.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nixos/modules/services/audio/mpd.nix b/nixos/modules/services/audio/mpd.nix index 04941fefa1eb..2f1012ae3d85 100644 --- a/nixos/modules/services/audio/mpd.nix +++ b/nixos/modules/services/audio/mpd.nix @@ -104,11 +104,11 @@ in }; music_directory = lib.mkOption { - type = with lib.types; either path (strMatching "(http|https|nfs|smb)://.+"); + type = with lib.types; either path (strMatching "([a-z]+)://.+"); default = "${cfg.dataDir}/music"; defaultText = lib.literalExpression ''"''${dataDir}/music"''; description = '' - The directory or NFS/SMB network share where MPD reads music from. If left + The directory or URI where MPD reads music from. If left as the default value this directory will automatically be created before the MPD server starts, otherwise the sysadmin is responsible for ensuring the directory exists with appropriate ownership and permissions. From c8047f7b83b63de0194e3dc3d4228d387017d2bc Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Wed, 29 Oct 2025 17:14:26 +0200 Subject: [PATCH 019/101] nixos/mpd: always set all options explicitly --- nixos/modules/services/audio/mpd.nix | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/nixos/modules/services/audio/mpd.nix b/nixos/modules/services/audio/mpd.nix index 2f1012ae3d85..692e52f6788d 100644 --- a/nixos/modules/services/audio/mpd.nix +++ b/nixos/modules/services/audio/mpd.nix @@ -31,16 +31,12 @@ let music_directory "${cfg.music_directory}" playlist_directory "${cfg.playlist_directory}" - ${lib.optionalString (cfg.db_file != null) '' - db_file "${cfg.db_file}" - ''} + db_file "${cfg.db_file}" state_file "${cfg.dataDir}/state" sticker_file "${cfg.dataDir}/sticker.sql" - ${lib.optionalString ( - cfg.bind_to_address != "any" - ) ''bind_to_address "${cfg.bind_to_address}"''} - ${lib.optionalString (cfg.port != 6600) ''port "${toString cfg.port}"''} + bind_to_address "${cfg.bind_to_address}" + port "${toString cfg.port}" ${lib.optionalString (cfg.fluidsynth) '' decoder { plugin "fluidsynth" @@ -158,12 +154,11 @@ in }; db_file = lib.mkOption { - type = lib.types.nullOr lib.types.path; + type = lib.types.path; default = "${cfg.dataDir}/tag_cache"; defaultText = lib.literalExpression ''"''${dataDir}/tag_cache"''; description = '' - The path to MPD's database. If set to `null` the - parameter is omitted from the configuration. + The path to MPD's database. ''; }; From 0a95ce3f479f9f1f88e3d09dd98166b31f52e513 Mon Sep 17 00:00:00 2001 From: Ciznia Date: Wed, 5 Nov 2025 14:58:32 +0100 Subject: [PATCH 020/101] vscode-extensions.wakatime.vscode-wakatime: 25.3.2 -> 25.4.0 Co-authored-by: qzylinra <225773816+qzylinra@users.noreply.github.com> --- .../WakaTime.vscode-wakatime/default.nix | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/pkgs/applications/editors/vscode/extensions/WakaTime.vscode-wakatime/default.nix b/pkgs/applications/editors/vscode/extensions/WakaTime.vscode-wakatime/default.nix index b520cce8670a..224b7b3595cf 100644 --- a/pkgs/applications/editors/vscode/extensions/WakaTime.vscode-wakatime/default.nix +++ b/pkgs/applications/editors/vscode/extensions/WakaTime.vscode-wakatime/default.nix @@ -1,14 +1,13 @@ -{ lib, vscode-utils }: - -let - inherit (vscode-utils) buildVscodeMarketplaceExtension; -in -buildVscodeMarketplaceExtension { +{ + lib, + vscode-utils, +}: +vscode-utils.buildVscodeMarketplaceExtension { mktplcRef = { name = "vscode-wakatime"; publisher = "WakaTime"; - version = "25.3.2"; - hash = "sha256-xX1vejS8zoidcI6fnp7vvtSw4rMHIe2IF4JQJB5hvqs="; + version = "25.4.0"; + hash = "sha256-furuRhQPcK9r4G878WKD9BiQuiwRbn+pJpNWAbpIgOw="; }; meta = { From 18b3c4cdcc322efb6e735fbccb81c03e54373a38 Mon Sep 17 00:00:00 2001 From: Ciznia Date: Tue, 18 Nov 2025 13:47:27 +0100 Subject: [PATCH 021/101] python3packages.countryinfo: init at 1.0.0 --- .../python-modules/countryinfo/default.nix | 45 +++++++++++++++++++ .../countryinfo/fix-pyproject-file.patch | 11 +++++ pkgs/top-level/python-packages.nix | 2 + 3 files changed, 58 insertions(+) create mode 100644 pkgs/development/python-modules/countryinfo/default.nix create mode 100644 pkgs/development/python-modules/countryinfo/fix-pyproject-file.patch diff --git a/pkgs/development/python-modules/countryinfo/default.nix b/pkgs/development/python-modules/countryinfo/default.nix new file mode 100644 index 000000000000..0db9aead3932 --- /dev/null +++ b/pkgs/development/python-modules/countryinfo/default.nix @@ -0,0 +1,45 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + poetry-core, + pydantic, + typer, + pytestCheckHook, +}: +buildPythonPackage rec { + pname = "countryinfo"; + version = "1.0.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "porimol"; + repo = "countryinfo"; + tag = "v${version}"; + hash = "sha256-Y4nJnjXg8raJx2f00DFMktdcWoLO09wqTFK6Fc8RKSI="; + }; + + build-system = [ poetry-core ]; + + patches = [ ./fix-pyproject-file.patch ]; + + dependencies = [ + pydantic + typer + ]; + + pythonRelaxDeps = [ "typer" ]; + + pythonImportsCheck = [ "countryinfo" ]; + + nativeCheckInputs = [ pytestCheckHook ]; + + meta = { + homepage = "https://github.com/porimol/countryinfo"; + description = "Data about countries, ISO info and states/provinces within them"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ + cizniarova + ]; + }; +} diff --git a/pkgs/development/python-modules/countryinfo/fix-pyproject-file.patch b/pkgs/development/python-modules/countryinfo/fix-pyproject-file.patch new file mode 100644 index 000000000000..a07a02b15d26 --- /dev/null +++ b/pkgs/development/python-modules/countryinfo/fix-pyproject-file.patch @@ -0,0 +1,11 @@ +diff --git a/pyproject.toml b/pyproject.toml +index f31c9e3..31fa9c8 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -1,3 +1,6 @@ ++[project] ++name = "countryinfo" ++ + [tool.poetry] + name = "countryinfo" + version = "1.0.0" diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index f22805eed7cc..679339b85565 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -3073,6 +3073,8 @@ self: super: with self; { countryguess = callPackage ../development/python-modules/countryguess { }; + countryinfo = callPackage ../development/python-modules/countryinfo { }; + courlan = callPackage ../development/python-modules/courlan { }; coverage = callPackage ../development/python-modules/coverage { }; From 9e97bd0ee61b071219eb5d07275960046cfcf4d7 Mon Sep 17 00:00:00 2001 From: kyehn Date: Tue, 28 Oct 2025 06:43:49 +0800 Subject: [PATCH 022/101] python313Packages.paddlepaddle: 3.0.0 -> 3.2.0 --- .../paddlepaddle/binary-hashes.nix | 34 ----- .../python-modules/paddlepaddle/default.nix | 120 ++++++++++-------- .../python-modules/paddlepaddle/sources.nix | 28 ++++ .../python-modules/paddlepaddle/update.sh | 21 +++ 4 files changed, 117 insertions(+), 86 deletions(-) delete mode 100644 pkgs/development/python-modules/paddlepaddle/binary-hashes.nix create mode 100644 pkgs/development/python-modules/paddlepaddle/sources.nix create mode 100755 pkgs/development/python-modules/paddlepaddle/update.sh diff --git a/pkgs/development/python-modules/paddlepaddle/binary-hashes.nix b/pkgs/development/python-modules/paddlepaddle/binary-hashes.nix deleted file mode 100644 index 2b205f662d5b..000000000000 --- a/pkgs/development/python-modules/paddlepaddle/binary-hashes.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ - x86_64-linux = { - platform = "manylinux1_x86_64"; - cpu = { - cp312 = "sha256-gafFsQFQsHUh0c0Ukdyh+3b/YhsU2xDomdlZ86d5Neo="; - cp313 = "sha256-j8SGXv02Vu6ZQkEkeSy4imQhUbTVkafW1KXGr9rpWVk="; - }; - gpu = { - cp311 = "sha256-KWlGhjg9k1+wlm3Tk/mvMqh9LWZ0yGA1g99bCPlFf0U="; - cp312 = "sha256-KJ2drJWLuwdaYsCj7egh1nQV4j35vT+UgH0qTdxoyHk="; - }; - }; - aarch64-linux = { - platform = "manylinux2014_aarch64"; - cpu = { - cp312 = "sha256-3aqZaosKANvkJp2iHWUFKHfsNpOiLswHucraPs0RaIY="; - cp313 = "sha256-u8TVc7NdJKJi4C1yaW6A9bSu5B9phnGvlXTe6xqD5vc="; - }; - }; - x86_64-darwin = { - platform = "macosx_10_9_x86_64"; - cpu = { - cp312 = "sha256-3P6/sQ3rFaoz0qLWbVoS2d5lRh2KQNJofi+zIhFQ0Lo="; - cp313 = "sha256-UsQB/+Sq5WMWZgozAVpv11XNoj09cKKLE7c9cMvbuMs="; - }; - }; - aarch64-darwin = { - platform = "macosx_11_0_arm64"; - cpu = { - cp312 = "sha256-hnfo1C/2b3T7yjL/Mti2S749Vu0pqS1D3EGPDxaPy2k="; - cp313 = "sha256-nRBR8uII2h1Dna7nyGG8tQJA8JcSSW62Hpzoxhj68vk="; - }; - }; -} diff --git a/pkgs/development/python-modules/paddlepaddle/default.nix b/pkgs/development/python-modules/paddlepaddle/default.nix index a4f5d7b09515..05342e2fb68e 100644 --- a/pkgs/development/python-modules/paddlepaddle/default.nix +++ b/pkgs/development/python-modules/paddlepaddle/default.nix @@ -3,10 +3,13 @@ lib, stdenv, buildPythonPackage, + fetchurl, fetchPypi, python, pythonOlder, pythonAtLeast, + autoPatchelfHook, + bash, zlib, setuptools, cudaSupport ? config.cudaSupport or false, @@ -25,27 +28,34 @@ let pname = "paddlepaddle" + lib.optionalString cudaSupport "-gpu"; - version = if cudaSupport then "2.6.2" else "3.0.0"; + sources = import ./sources.nix; + version = sources.version; format = "wheel"; pyShortVersion = "cp${builtins.replaceStrings [ "." ] [ "" ] python.pythonVersion}"; cpuOrGpu = if cudaSupport then "gpu" else "cpu"; - allHashAndPlatform = import ./binary-hashes.nix; hash = - allHashAndPlatform."${stdenv.hostPlatform.system}"."${cpuOrGpu}"."${pyShortVersion}" - or (throw "${pname} has no binary-hashes.nix entry for '${stdenv.hostPlatform.system}.${cpuOrGpu}.${pyShortVersion}' attribute"); - platform = allHashAndPlatform."${stdenv.hostPlatform.system}".platform; - src = fetchPypi { - inherit - version - format - hash - platform - ; - pname = builtins.replaceStrings [ "-" ] [ "_" ] pname; - dist = pyShortVersion; - python = pyShortVersion; - abi = pyShortVersion; - }; + sources."${stdenv.hostPlatform.system}"."${cpuOrGpu}"."${pyShortVersion}" + or (throw "${pname} has no sources.nix entry for '${stdenv.hostPlatform.system}.${cpuOrGpu}.${pyShortVersion}' attribute"); + platform = sources."${stdenv.hostPlatform.system}".platform; + src = + if cudaSupport then + (fetchurl { + url = "https://paddle-whl.bj.bcebos.com/stable/cu128/paddlepaddle-gpu/paddlepaddle-${version}-${pyShortVersion}-${pyShortVersion}-linux_x86_64.whl"; + inherit hash; + }) + else + (fetchPypi { + inherit + version + format + hash + platform + ; + pname = "paddlepaddle"; + dist = pyShortVersion; + python = pyShortVersion; + abi = pyShortVersion; + }); in buildPythonPackage { inherit @@ -55,13 +65,12 @@ buildPythonPackage { src ; - disabled = - if cudaSupport then - (pythonOlder "3.11" || pythonAtLeast "3.13") - else - (pythonOlder "3.12" || pythonAtLeast "3.14"); + disabled = pythonOlder "3.12" || pythonAtLeast "3.14"; - nativeBuildInputs = [ addDriverRunpath ]; + nativeBuildInputs = [ + addDriverRunpath + ] + ++ lib.optionals cudaSupport [ autoPatchelfHook ]; dependencies = [ setuptools @@ -75,40 +84,48 @@ buildPythonPackage { typing-extensions ]; - pythonImportsCheck = [ "paddle" ]; + # Segmentation fault in darwin sandbox + pythonImportsCheck = lib.optionals stdenv.hostPlatform.isLinux [ "paddle" ]; # no tests doCheck = false; - postFixup = lib.optionalString stdenv.hostPlatform.isLinux ( - let - libraryPath = lib.makeLibraryPath ( - [ - zlib - (lib.getLib stdenv.cc.cc) - ] - ++ lib.optionals cudaSupport ( - with cudaPackages; + postFixup = + lib.optionalString stdenv.hostPlatform.isLinux ( + let + libraryPath = lib.makeLibraryPath ( [ - cudatoolkit.lib - cudatoolkit.out - cudnn + zlib + (lib.getLib stdenv.cc.cc) ] - ) - ); - in - '' - function fixRunPath { - p=$(patchelf --print-rpath $1) - patchelf --set-rpath "$p:${libraryPath}" $1 - ${lib.optionalString cudaSupport '' - addDriverRunpath $1 - ''} - } - fixRunPath $out/${python.sitePackages}/paddle/base/libpaddle.so - fixRunPath $out/${python.sitePackages}/paddle/libs/lib*.so - '' - ); + ++ lib.optionals cudaSupport ( + with cudaPackages; + [ + cudatoolkit.lib + cudatoolkit.out + cudnn + ] + ) + ); + in + '' + function fixRunPath { + patchelf --add-rpath ${libraryPath} $1 + ${lib.optionalString cudaSupport '' + addDriverRunpath $1 + ''} + } + fixRunPath $out/${python.sitePackages}/paddle/base/libpaddle.so + fixRunPath $out/${python.sitePackages}/paddle/libs/lib*.so + '' + ) + + '' + substituteInPlace $out/bin/paddle \ + --replace-fail "/bin/bash" "${lib.getExe bash}" \ + --replace-fail "python -" "${lib.getExe (python.withPackages (ps: with ps; [ distutils ]))} -" + sed -i '/# Check python lib installed or not./,/^fi$/d' $out/bin/paddle + sed -i 's/^INSTALLED_VERSION=.*/INSTALLED_VERSION="${version}"/' $out/bin/paddle + ''; meta = { description = "Machine Learning Framework from Industrial Practice"; @@ -120,7 +137,6 @@ buildPythonPackage { ] ++ lib.optionals (!cudaSupport) [ "aarch64-linux" - "x86_64-darwin" "aarch64-darwin" ]; sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; diff --git a/pkgs/development/python-modules/paddlepaddle/sources.nix b/pkgs/development/python-modules/paddlepaddle/sources.nix new file mode 100644 index 000000000000..1f2588fd3aaa --- /dev/null +++ b/pkgs/development/python-modules/paddlepaddle/sources.nix @@ -0,0 +1,28 @@ +{ + version = "3.2.0"; + x86_64-linux = { + platform = "manylinux1_x86_64"; + cpu = { + cp312 = "sha256-LBf2daJevQZ19wP3uCd36pLbDDYL1Vpcay36rXvD8mA="; + cp313 = "sha256-+irs0GFCQ1D2dwqD3aB5aR9yJGNc/ydurvTj4XRAA50="; + }; + gpu = { + cp312 = "sha256-YqxAWSvjhYOQUCiUPtjC3PdRxFeWGm/be8FxOrpaLZo="; + cp313 = "sha256-TdFx5Ut3iOTRg8USL2eIHyRYv8QT4KrLBPdiPkaK+Nc="; + }; + }; + aarch64-linux = { + platform = "manylinux2014_aarch64"; + cpu = { + cp312 = "sha256-TOUUEUr3Zxh1/Ekn6gBa+51dD9d3rrVqEHjSL39Os/s="; + cp313 = "sha256-KqDlAvbdKE7aIcKH0yZFTfomrMqIwjqgrFgdHvmDGMU="; + }; + }; + aarch64-darwin = { + platform = "macosx_11_0_arm64"; + cpu = { + cp312 = "sha256-rDNK9y0bDUnUyTPP1OtC1z7C3HpqryJIxihkPUGbbac="; + cp313 = "sha256-OBhOHqf9e/A4g+ph9FYZuXEtksE60foWk06p4NbT6ZE="; + }; + }; +} diff --git a/pkgs/development/python-modules/paddlepaddle/update.sh b/pkgs/development/python-modules/paddlepaddle/update.sh new file mode 100755 index 000000000000..ecf3bcce0f97 --- /dev/null +++ b/pkgs/development/python-modules/paddlepaddle/update.sh @@ -0,0 +1,21 @@ +#! /usr/bin/env nix-shell +#!nix-shell -i bash -p bash nix-update common-updater-scripts jq + +set -eou pipefail + +nix-update --system=x86_64-linux --url=https://github.com/PaddlePaddle/Paddle --override-filename=pkgs/development/python-modules/paddlepaddle/sources.nix --use-github-releases python313Packages.paddlepaddle || true + +latestVersion=$(nix eval --raw --file . python313Packages.paddlepaddle.version) + +systems=$(nix eval --json -f . python313Packages.paddlepaddle.meta.platforms | jq --raw-output '.[]') +for system in $systems; do + for pythonPackages in "python313Packages" "python312Packages"; do + hash=$(nix --extra-experimental-features nix-command hash convert --to sri --hash-algo sha256 $(nix-prefetch-url $(nix eval --raw --file . $pythonPackages.paddlepaddle.src.url --system "$system"))) + update-source-version $pythonPackages.paddlepaddle $latestVersion $hash --file=pkgs/development/python-modules/paddlepaddle/sources.nix --system=$system --ignore-same-version --ignore-same-hash + done +done + +for pythonPackages in "python313Packages" "python312Packages"; do + hash=$(nix --extra-experimental-features nix-command hash convert --to sri --hash-algo sha256 $(nix-prefetch-url $(nix eval --raw --file . pkgsCuda.$pythonPackages.paddlepaddle.src.url --system x86_64-linux))) + update-source-version pkgsCuda.$pythonPackages.paddlepaddle $latestVersion $hash --file=pkgs/development/python-modules/paddlepaddle/sources.nix --system=x86_64-linux --ignore-same-version --ignore-same-hash +done From 56e44c5ec57ac62f4f340b2c1d40798f5031340c Mon Sep 17 00:00:00 2001 From: kyehn Date: Tue, 28 Oct 2025 07:16:25 +0800 Subject: [PATCH 023/101] python313Packages.modelscope: init at 1.31.0 --- .../python-modules/modelscope/default.nix | 52 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 54 insertions(+) create mode 100644 pkgs/development/python-modules/modelscope/default.nix diff --git a/pkgs/development/python-modules/modelscope/default.nix b/pkgs/development/python-modules/modelscope/default.nix new file mode 100644 index 000000000000..cfbd2791d11b --- /dev/null +++ b/pkgs/development/python-modules/modelscope/default.nix @@ -0,0 +1,52 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + setuptools, + filelock, + requests, + tqdm, +}: + +let + version = "1.31.0"; +in +buildPythonPackage { + pname = "modelscope"; + inherit version; + pyproject = true; + + src = fetchFromGitHub { + owner = "modelscope"; + repo = "modelscope"; + tag = "v${version}"; + hash = "sha256-3o3iI4LGDSsF36jnrUTN3bBaM8XGCw+msIPS3WauMNQ="; + }; + + postPatch = '' + substituteInPlace setup.py \ + --replace-fail "exec(compile(f.read(), version_file, 'exec'))" "ns = {}; exec(compile(f.read(), version_file, 'exec'), ns)" \ + --replace-fail "return locals()['__version__']" "return ns['__version__']" + ''; + + build-system = [ setuptools ]; + + dependencies = [ + filelock + requests + setuptools + tqdm + ]; + + doCheck = false; # need network + + pythonImportsCheck = [ "modelscope" ]; + + meta = { + description = "Bring the notion of Model-as-a-Service to life"; + homepage = "https://github.com/modelscope/modelscope"; + license = lib.licenses.asl20; + mainProgram = "modelscope"; + maintainers = with lib.maintainers; [ kyehn ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 52102aced862..ddad1006871a 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -9745,6 +9745,8 @@ self: super: with self; { modeled = callPackage ../development/python-modules/modeled { }; + modelscope = callPackage ../development/python-modules/modelscope { }; + modern-colorthief = callPackage ../development/python-modules/modern-colorthief { }; moderngl = callPackage ../development/python-modules/moderngl { }; From 7ba01d5025150ef4580e99251092564c033e97aa Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 27 Nov 2025 13:22:21 +0000 Subject: [PATCH 024/101] opa-envoy-plugin: 1.10.0-envoy -> 1.11.0-envoy --- pkgs/by-name/op/opa-envoy-plugin/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/op/opa-envoy-plugin/package.nix b/pkgs/by-name/op/opa-envoy-plugin/package.nix index b63bca544378..dea0fd6cfb3c 100644 --- a/pkgs/by-name/op/opa-envoy-plugin/package.nix +++ b/pkgs/by-name/op/opa-envoy-plugin/package.nix @@ -14,16 +14,16 @@ assert buildGoModule rec { pname = "opa-envoy-plugin"; - version = "1.10.0-envoy"; + version = "1.11.0-envoy"; src = fetchFromGitHub { owner = "open-policy-agent"; repo = "opa-envoy-plugin"; tag = "v${version}"; - hash = "sha256-qKLeSpVy/ImeJ2WPLa3uQSHA/6Y4Visb9lgC4PkURkI="; + hash = "sha256-BYNwr4smlY5evtja1CdCeVzKZIY0pFjiJwwhWOFHIm0="; }; - vendorHash = "sha256-l/0IaHz1wTNqX/Im8g0fjTqVOtMHSdqSpl0Oo1ByyxA="; + vendorHash = "sha256-wwXl115vhqUro5yhaMmlR8ms/uJMhFw9IzsX9mGRy+0="; nativeBuildInputs = [ installShellFiles ]; From 30a5f2cd160b3c0ba4cd8accaec1e5e2c68b5e7f Mon Sep 17 00:00:00 2001 From: kyehn Date: Wed, 3 Dec 2025 16:25:22 +0000 Subject: [PATCH 025/101] sqlpage: 0.39.1 -> 0.40.0 Diff: https://github.com/lovasoa/SQLpage/compare/v0.39.1...v0.40.0 Changelog: https://github.com/lovasoa/SQLpage/blob/refs/tags/v0.40.0/CHANGELOG.md --- pkgs/by-name/sq/sqlpage/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/sq/sqlpage/package.nix b/pkgs/by-name/sq/sqlpage/package.nix index 61176075f713..31c6706bb988 100644 --- a/pkgs/by-name/sq/sqlpage/package.nix +++ b/pkgs/by-name/sq/sqlpage/package.nix @@ -42,13 +42,13 @@ in rustPlatform.buildRustPackage (finalAttrs: { pname = "sqlpage"; - version = "0.39.1"; + version = "0.40.0"; src = fetchFromGitHub { owner = "lovasoa"; repo = "SQLpage"; tag = "v${finalAttrs.version}"; - hash = "sha256-Hj3tMi+3tZ4r/Jpf0PZiWykJsAPItkR/BPwFHYoEOi8="; + hash = "sha256-CmsAImnySdXlPQGWNMkPYhVj0HsvCzFB2LXeqFnjWG4="; }; postPatch = '' @@ -76,7 +76,7 @@ rustPlatform.buildRustPackage (finalAttrs: { --replace-fail "copy_url_to_opened_file(&client, sprite_url, &mut sprite_content).await;" "sprite_content = std::fs::read(sprite_url).unwrap();" ''; - cargoHash = "sha256-yTavtt5D0vfcMSvQnBQrIfSfssJ0Ld3O3q4lLSgrgIk="; + cargoHash = "sha256-CTJYFzSOLYFq7I9lJhD3JcO2PuqQjqtXnBCEk2VfLfI="; nativeBuildInputs = [ pkg-config ]; From 0f7d385d8590e644dd6c9ec6769cbbd2f3d097aa Mon Sep 17 00:00:00 2001 From: kyehn Date: Thu, 4 Dec 2025 07:19:01 +0000 Subject: [PATCH 026/101] sparkle: 1.6.14 -> 1.6.15 --- pkgs/by-name/sp/sparkle/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/sp/sparkle/package.nix b/pkgs/by-name/sp/sparkle/package.nix index 913216643e6a..8af81c16c516 100644 --- a/pkgs/by-name/sp/sparkle/package.nix +++ b/pkgs/by-name/sp/sparkle/package.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "sparkle"; - version = "1.6.14"; + version = "1.6.15"; src = let @@ -40,8 +40,8 @@ stdenv.mkDerivation (finalAttrs: { fetchurl { url = "https://github.com/xishang0128/sparkle/releases/download/${finalAttrs.version}/sparkle-linux-${finalAttrs.version}-${arch}.deb"; hash = selectSystem { - x86_64-linux = "sha256-F9vk/N2Pgjicn8hpChg7NY/Crlxiaz9c3GKuRJnqE8Y="; - aarch64-linux = "sha256-bifIBL893YetyYeAKCWiHHP0mCpM+XOxrXrTdUvI1cU="; + x86_64-linux = "sha256-6WGMFmsUr/17lxZd+Q2Ellgs8ftn2YRb/lwmSR7uqLE="; + aarch64-linux = "sha256-lo19xwSqNgTxBxZuNIV7cq2qE93xtbxnsn7K3vROmrc="; }; }; From 4b9430a629331d8660d061be5c4f7587a073e82b Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Wed, 29 Oct 2025 17:25:01 +0200 Subject: [PATCH 027/101] nixos/mpd: add openFirewall option --- nixos/modules/services/audio/mpd.nix | 19 +++++++++++++++++++ nixos/tests/mpd.nix | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/audio/mpd.nix b/nixos/modules/services/audio/mpd.nix index 692e52f6788d..835009f6b081 100644 --- a/nixos/modules/services/audio/mpd.nix +++ b/nixos/modules/services/audio/mpd.nix @@ -99,6 +99,12 @@ in ''; }; + openFirewall = lib.mkOption { + type = lib.types.bool; + default = false; + description = "Open ports in the firewall for mpd."; + }; + music_directory = lib.mkOption { type = with lib.types; either path (strMatching "([a-z]+)://.+"); default = "${cfg.dataDir}/music"; @@ -248,6 +254,17 @@ in config = lib.mkIf cfg.enable { + warnings = + lib.optional + ( + !(builtins.elem cfg.bind_to_address [ + "localhost" + "127.0.0.1" + ]) + && !cfg.openFirewall + ) + "Using '${cfg.bind_to_address}' as services.mpd.bind_to_address without enabling services.mpd.openFirewall, might prevent you from accessing MPD from other clients."; + # install mpd units systemd.packages = [ pkgs.mpd ]; @@ -304,6 +321,8 @@ in }; }; + networking.firewall.allowedTCPPorts = lib.optionals cfg.openFirewall [ cfg.port ]; + users.users = lib.optionalAttrs (cfg.user == name) { ${name} = { inherit uid; diff --git a/nixos/tests/mpd.nix b/nixos/tests/mpd.nix index 4d8cf4cdbb02..571c1428b972 100644 --- a/nixos/tests/mpd.nix +++ b/nixos/tests/mpd.nix @@ -69,10 +69,10 @@ in mixer_type "null" } ''; + openFirewall = true; }; musicService = musicService { inherit (defaultMpdCfg) user group dataDir; }; }) - { networking.firewall.allowedTCPPorts = [ 6600 ]; } ]; serverPulseAudio = From 0d168edb2876014627a56b787e3c75a7ec60ef7c Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Mon, 17 Nov 2025 22:08:29 +0200 Subject: [PATCH 028/101] nixos/mpd: use pkgs.writeTextFile, with a checkPhase --- nixos/modules/services/audio/mpd.nix | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/audio/mpd.nix b/nixos/modules/services/audio/mpd.nix index 835009f6b081..2f5e8c1a2bcd 100644 --- a/nixos/modules/services/audio/mpd.nix +++ b/nixos/modules/services/audio/mpd.nix @@ -24,7 +24,9 @@ let lib.concatStringsSep "\n" placeholders ); - mpdConf = pkgs.writeText "mpd.conf" '' + mpdConf = pkgs.writeTextFile { + name = "mpd.conf"; + text = '' # This file was automatically generated by NixOS. Edit mpd's configuration # via NixOS' configuration.nix, as this file will be rewritten upon mpd's # restart. @@ -48,6 +50,27 @@ let ${cfg.extraConfig} ''; + derivationArgs = { + expectScript = '' + spawn ${lib.getExe pkgs.buildPackages.mpd} --no-daemon "$env(out)" + expect { + "exception: Error in \"$env(out)\"" { + puts "Config file invalid\n" + exit 1 + } + "exception:" { + exit 0 + } + } + ''; + passAsFile = [ + "expectScript" + ]; + }; + checkPhase = '' + ${lib.getExe pkgs.buildPackages.expect} -f "$expectScriptPath" + ''; + }; in { From 523eaab940353b8236791874dbd42e6b4b35f97f Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Mon, 17 Nov 2025 22:14:06 +0200 Subject: [PATCH 029/101] nixos/mpd: small formatting to mpdConf --- nixos/modules/services/audio/mpd.nix | 38 ++++++++++++++-------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/nixos/modules/services/audio/mpd.nix b/nixos/modules/services/audio/mpd.nix index 2f5e8c1a2bcd..b57ec9b9f7aa 100644 --- a/nixos/modules/services/audio/mpd.nix +++ b/nixos/modules/services/audio/mpd.nix @@ -27,29 +27,29 @@ let mpdConf = pkgs.writeTextFile { name = "mpd.conf"; text = '' - # This file was automatically generated by NixOS. Edit mpd's configuration - # via NixOS' configuration.nix, as this file will be rewritten upon mpd's - # restart. + # This file was automatically generated by NixOS. Edit mpd's configuration + # via NixOS' configuration.nix, as this file will be rewritten upon mpd's + # restart. - music_directory "${cfg.music_directory}" - playlist_directory "${cfg.playlist_directory}" - db_file "${cfg.db_file}" - state_file "${cfg.dataDir}/state" - sticker_file "${cfg.dataDir}/sticker.sql" + music_directory "${cfg.music_directory}" + playlist_directory "${cfg.playlist_directory}" + db_file "${cfg.db_file}" + state_file "${cfg.dataDir}/state" + sticker_file "${cfg.dataDir}/sticker.sql" - bind_to_address "${cfg.bind_to_address}" - port "${toString cfg.port}" - ${lib.optionalString (cfg.fluidsynth) '' - decoder { - plugin "fluidsynth" - soundfont "${pkgs.soundfont-fluid}/share/soundfonts/FluidR3_GM2-2.sf2" - } - ''} + bind_to_address "${cfg.bind_to_address}" + port "${toString cfg.port}" + ${lib.optionalString (cfg.fluidsynth) '' + decoder { + plugin "fluidsynth" + soundfont "${pkgs.soundfont-fluid}/share/soundfonts/FluidR3_GM2-2.sf2" + } + ''} - ${lib.optionalString (cfg.credentials != [ ]) (credentialsPlaceholder cfg.credentials)} + ${lib.optionalString (cfg.credentials != [ ]) (credentialsPlaceholder cfg.credentials)} - ${cfg.extraConfig} - ''; + ${cfg.extraConfig} + ''; derivationArgs = { expectScript = '' spawn ${lib.getExe pkgs.buildPackages.mpd} --no-daemon "$env(out)" From aed4ee1a79ef1321c2ba5b1efa34481f8ab0c6c6 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Wed, 29 Oct 2025 17:38:46 +0200 Subject: [PATCH 030/101] nixos/mpd: apply RFC 42 Also use `config.services.mpd.settings` directly in the documentation of mpdscribble. --- nixos/modules/services/audio/mpd.nix | 203 ++++++++++++++----- nixos/modules/services/audio/mpdscribble.nix | 11 +- nixos/modules/services/audio/ympd.nix | 4 +- nixos/tests/mpd.nix | 28 +-- 4 files changed, 169 insertions(+), 77 deletions(-) diff --git a/nixos/modules/services/audio/mpd.nix b/nixos/modules/services/audio/mpd.nix index b57ec9b9f7aa..af6961692ee0 100644 --- a/nixos/modules/services/audio/mpd.nix +++ b/nixos/modules/services/audio/mpd.nix @@ -12,44 +12,64 @@ let gid = config.ids.gids.mpd; cfg = config.services.mpd; - credentialsPlaceholder = ( - creds: - let - placeholders = ( - lib.imap0 ( - i: c: ''password "{{password-${toString i}}}@${lib.concatStringsSep "," c.permissions}"'' - ) creds - ); - in - lib.concatStringsSep "\n" placeholders - ); - + mkKeyValue = + a: + lib.mapAttrsToList ( + k: v: + k + + " " + + ( + if builtins.isBool v then + # Mainly for https://mpd.readthedocs.io/en/stable/user.html#zeroconf + "\"" + (lib.boolToYesNo v) + "\"" + else + "\"" + (toString v) + "\"" + ) + ) a; + nonBlockSettings = lib.filterAttrs (n: v: !(builtins.isAttrs v || builtins.isList v)) cfg.settings; + pureBlockSettings = builtins.removeAttrs cfg.settings (builtins.attrNames nonBlockSettings); + blocks = + pureBlockSettings + // lib.optionalAttrs cfg.fluidsynth { + decoder = (pureBlockSettings.decoder or [ ]) ++ [ + { + plugin = "fluidsynth"; + soundfont = "${pkgs.soundfont-fluid}/share/soundfonts/FluidR3_GM2-2.sf2"; + } + ]; + }; + processSingleBlock = + n: v: + [ + (n + " {") + ] + # Add indentation, for better readability + ++ (map (l: " " + l) (mkKeyValue v)) + ++ [ "}" ]; mpdConf = pkgs.writeTextFile { name = "mpd.conf"; text = '' # This file was automatically generated by NixOS. Edit mpd's configuration # via NixOS' configuration.nix, as this file will be rewritten upon mpd's # restart. - - music_directory "${cfg.music_directory}" - playlist_directory "${cfg.playlist_directory}" - db_file "${cfg.db_file}" - state_file "${cfg.dataDir}/state" - sticker_file "${cfg.dataDir}/sticker.sql" - - bind_to_address "${cfg.bind_to_address}" - port "${toString cfg.port}" - ${lib.optionalString (cfg.fluidsynth) '' - decoder { - plugin "fluidsynth" - soundfont "${pkgs.soundfont-fluid}/share/soundfonts/FluidR3_GM2-2.sf2" + '' + + lib.concatStringsSep "\n" ( + mkKeyValue ( + { + state_file = "${cfg.dataDir}/state"; + sticker_file = "${cfg.dataDir}/sticker.sql"; } - ''} - - ${lib.optionalString (cfg.credentials != [ ]) (credentialsPlaceholder cfg.credentials)} - - ${cfg.extraConfig} - ''; + // nonBlockSettings + ) + ++ lib.flatten ( + lib.mapAttrsToList ( + n: v: if builtins.isList v then (map (b: processSingleBlock n b) v) else (processSingleBlock n v) + ) blocks + ) + ++ lib.imap0 ( + i: a: "password \"{{password-${toString i}}}@${lib.concatStringsSep "," a.permissions}\"" + ) cfg.credentials + ); derivationArgs = { expectScript = '' spawn ${lib.getExe pkgs.buildPackages.mpd} --no-daemon "$env(out)" @@ -128,6 +148,31 @@ in description = "Open ports in the firewall for mpd."; }; + settings = lib.mkOption { + type = lib.types.submodule { + freeformType = + let + inherit (lib.types) + oneOf + attrsOf + listOf + str + int + bool + path + ; + atomType = oneOf [ + str + int + bool + path + ]; + in + attrsOf (oneOf [ + atomType + (listOf (attrsOf atomType)) + ]); + options = { music_directory = lib.mkOption { type = with lib.types; either path (strMatching "([a-z]+)://.+"); default = "${cfg.dataDir}/music"; @@ -152,17 +197,6 @@ in ''; }; - extraConfig = lib.mkOption { - type = lib.types.lines; - default = ""; - description = '' - Extra directives added to to the end of MPD's configuration file, - mpd.conf. Basic configuration like file location and uid/gid - is added automatically to the beginning of the file. For available - options see {manpage}`mpd.conf(5)`. - ''; - }; - bind_to_address = lib.mkOption { type = lib.types.str; default = "127.0.0.1"; @@ -190,6 +224,55 @@ in The path to MPD's database. ''; }; + }; + }; + default = { }; + description = '' + Configuration for MPD. MPD supports key-value like blocks for settings + like `audio_output` and `neighbor`. Some of these blocks can be + specified multiple times, so the following configuration: + + ```txt + audio_output { + device "iec958:CARD=Intel,DEV=0" + mixer_control "PCM" + name "My specific ALSA output" + type "alsa" + } + audio_output { + mixer_type "null" + name "ALSA Null" + type "alsa" + } + audio_output { + name "The Pulse" + type "pulse" + } + ``` + + Can be inserted with: + + ```nix + audio_output = [ + { + type = "alsa"; + name = "My specific ALSA output"; + device = "iec958:CARD=Intel,DEV=0"; + mixer_control = "PCM"; + } + { + type = "alsa"; + name = "ALSA Null"; + mixer_type = "null"; + } + { + type = "pulse"; + name = "The Pulse"; + } + ]; + ``` + ''; + }; credentials = lib.mkOption { type = lib.types.listOf ( @@ -246,7 +329,7 @@ in type = lib.types.bool; default = false; description = '' - If set, add fluidsynth soundfont and configure the plugin. + If set, add fluidsynth soundfont `decoder` block. ''; }; }; @@ -258,20 +341,28 @@ in imports = [ (lib.mkRenamedOptionModule [ "services" "mpd" "musicDirectory" ] - [ "services" "mpd" "music_directory" ] + [ "services" "mpd" "settings" "music_directory" ] ) (lib.mkRenamedOptionModule [ "services" "mpd" "playlistDirectory" ] - [ "services" "mpd" "playlist_directory" ] + [ "services" "mpd" "settings" "playlist_directory" ] ) - (lib.mkRenamedOptionModule [ "services" "mpd" "dbFile" ] [ "services" "mpd" "db_file" ]) + (lib.mkRenamedOptionModule [ "services" "mpd" "dbFile" ] [ "services" "mpd" "settings" "db_file" ]) (lib.mkRenamedOptionModule [ "services" "mpd" "network" "listenAddress" ] - [ "services" "mpd" "bind_to_address" ] + [ "services" "mpd" "settings" "bind_to_address" ] ) (lib.mkRenamedOptionModule [ "services" "mpd" "network" "port" ] - [ "services" "mpd" "port" ] + [ "services" "mpd" "settings" "port" ] + ) + (lib.mkRemovedOptionModule + [ + "services" + "mpd" + "extraConfig" + ] + "services.mpd.extraConfig was replaced by the declarative services.mpd.settings option, per RFC42." ) ]; @@ -286,7 +377,7 @@ in ]) && !cfg.openFirewall ) - "Using '${cfg.bind_to_address}' as services.mpd.bind_to_address without enabling services.mpd.openFirewall, might prevent you from accessing MPD from other clients."; + "Using '${cfg.bind_to_address}' as services.mpd.settings.bind_to_address without enabling services.mpd.openFirewall, might prevent you from accessing MPD from other clients."; # install mpd units systemd.packages = [ pkgs.mpd ]; @@ -296,12 +387,12 @@ in listenStreams = [ "" # Note: this is needed to override the upstream unit ( - if pkgs.lib.hasPrefix "/" cfg.bind_to_address then - cfg.bind_to_address + if pkgs.lib.hasPrefix "/" cfg.settings.bind_to_address then + cfg.settings.bind_to_address else "${ - lib.optionalString (cfg.bind_to_address != "any") "${cfg.bind_to_address}:" - }${toString cfg.port}" + lib.optionalString (cfg.settings.bind_to_address != "any") "${cfg.settings.bind_to_address}:" + }${toString cfg.settings.port}" ) ]; }; @@ -333,18 +424,18 @@ in StateDirectory = [ ] ++ lib.optionals (cfg.dataDir == "/var/lib/${name}") [ name ] - ++ lib.optionals (cfg.playlist_directory == "/var/lib/${name}/playlists") [ + ++ lib.optionals (cfg.settings.playlist_directory == "/var/lib/${name}/playlists") [ name "${name}/playlists" ] - ++ lib.optionals (cfg.music_directory == "/var/lib/${name}/music") [ + ++ lib.optionals (cfg.settings.music_directory == "/var/lib/${name}/music") [ name "${name}/music" ]; }; }; - networking.firewall.allowedTCPPorts = lib.optionals cfg.openFirewall [ cfg.port ]; + networking.firewall.allowedTCPPorts = lib.optionals cfg.openFirewall [ cfg.settings.port ]; users.users = lib.optionalAttrs (cfg.user == name) { ${name} = { diff --git a/nixos/modules/services/audio/mpdscribble.nix b/nixos/modules/services/audio/mpdscribble.nix index 39dab7105968..cd874f000b3a 100644 --- a/nixos/modules/services/audio/mpdscribble.nix +++ b/nixos/modules/services/audio/mpdscribble.nix @@ -8,7 +8,6 @@ let cfg = config.services.mpdscribble; mpdCfg = config.services.mpd; - mpdOpt = options.services.mpd; endpointUrls = { "last.fm" = "http://post.audioscrobbler.com"; @@ -114,11 +113,11 @@ in host = lib.mkOption { default = ( - if mpdCfg.network.listenAddress != "any" then mpdCfg.network.listenAddress else "localhost" + if mpdCfg.settings.bind_to_address != "any" then mpdCfg.settings.bind_to_address else "localhost" ); defaultText = lib.literalExpression '' - if config.${mpdOpt.network.listenAddress} != "any" - then config.${mpdOpt.network.listenAddress} + if config.services.mpd.settings.bind_to_address != "any" + then config.services.mpd.settings.bind_to_address else "localhost" ''; type = lib.types.str; @@ -148,8 +147,8 @@ in }; port = lib.mkOption { - default = mpdCfg.network.port; - defaultText = lib.literalExpression "config.${mpdOpt.network.port}"; + default = mpdCfg.settings.port; + defaultText = lib.literalExpression "config.services.mpd.settings.port"; type = lib.types.port; description = '' Port for the mpdscribble daemon to search for a mpd daemon on. diff --git a/nixos/modules/services/audio/ympd.nix b/nixos/modules/services/audio/ympd.nix index 12672eb935f1..0999291ca0da 100644 --- a/nixos/modules/services/audio/ympd.nix +++ b/nixos/modules/services/audio/ympd.nix @@ -33,8 +33,8 @@ in port = lib.mkOption { type = lib.types.port; - default = config.services.mpd.network.port; - defaultText = lib.literalExpression "config.services.mpd.network.port"; + default = config.services.mpd.settings.port; + defaultText = lib.literalExpression "config.services.mpd.settings.port"; description = "The port where MPD is listening."; example = 6600; }; diff --git a/nixos/tests/mpd.nix b/nixos/tests/mpd.nix index 571c1428b972..36337bfbb4de 100644 --- a/nixos/tests/mpd.nix +++ b/nixos/tests/mpd.nix @@ -61,14 +61,16 @@ in lib.mkMerge [ (mkServer { mpd = defaultMpdCfg // { - bind_to_address = "any"; - extraConfig = '' - audio_output { - type "alsa" - name "ALSA" - mixer_type "null" - } - ''; + settings = { + bind_to_address = "any"; + audio_output = [ + { + type = "alsa"; + name = "ALSA"; + mixer_type = "null"; + } + ]; + }; openFirewall = true; }; musicService = musicService { inherit (defaultMpdCfg) user group dataDir; }; @@ -80,12 +82,12 @@ in lib.mkMerge [ (mkServer { mpd = defaultMpdCfg // { - extraConfig = '' - audio_output { - type "pulse" - name "The Pulse" + settings.audio_output = [ + { + type = "pulse"; + name = "The Pulse"; } - ''; + ]; }; musicService = musicService { inherit (defaultMpdCfg) user group dataDir; }; From 53943b006f4a493fdeb83f4f8d6b0ec4895dfbc3 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Mon, 17 Nov 2025 23:40:36 +0200 Subject: [PATCH 031/101] nixos/mpd: nixfmt --- nixos/modules/services/audio/mpd.nix | 94 ++++++++++++++-------------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/nixos/modules/services/audio/mpd.nix b/nixos/modules/services/audio/mpd.nix index af6961692ee0..1a58732ca944 100644 --- a/nixos/modules/services/audio/mpd.nix +++ b/nixos/modules/services/audio/mpd.nix @@ -173,57 +173,57 @@ in (listOf (attrsOf atomType)) ]); options = { - music_directory = lib.mkOption { - type = with lib.types; either path (strMatching "([a-z]+)://.+"); - default = "${cfg.dataDir}/music"; - defaultText = lib.literalExpression ''"''${dataDir}/music"''; - description = '' - The directory or URI where MPD reads music from. If left - as the default value this directory will automatically be created before - the MPD server starts, otherwise the sysadmin is responsible for ensuring - the directory exists with appropriate ownership and permissions. - ''; - }; + music_directory = lib.mkOption { + type = with lib.types; either path (strMatching "([a-z]+)://.+"); + default = "${cfg.dataDir}/music"; + defaultText = lib.literalExpression ''"''${dataDir}/music"''; + description = '' + The directory or URI where MPD reads music from. If left + as the default value this directory will automatically be created before + the MPD server starts, otherwise the sysadmin is responsible for ensuring + the directory exists with appropriate ownership and permissions. + ''; + }; - playlist_directory = lib.mkOption { - type = lib.types.path; - default = "${cfg.dataDir}/playlists"; - defaultText = lib.literalExpression ''"''${dataDir}/playlists"''; - description = '' - The directory where MPD stores playlists. If left as the default value - this directory will automatically be created before the MPD server starts, - otherwise the sysadmin is responsible for ensuring the directory exists - with appropriate ownership and permissions. - ''; - }; + playlist_directory = lib.mkOption { + type = lib.types.path; + default = "${cfg.dataDir}/playlists"; + defaultText = lib.literalExpression ''"''${dataDir}/playlists"''; + description = '' + The directory where MPD stores playlists. If left as the default value + this directory will automatically be created before the MPD server starts, + otherwise the sysadmin is responsible for ensuring the directory exists + with appropriate ownership and permissions. + ''; + }; - bind_to_address = lib.mkOption { - type = lib.types.str; - default = "127.0.0.1"; - example = "any"; - description = '' - The address for the daemon to listen on. - Use `any` to listen on all addresses. - ''; - }; + bind_to_address = lib.mkOption { + type = lib.types.str; + default = "127.0.0.1"; + example = "any"; + description = '' + The address for the daemon to listen on. + Use `any` to listen on all addresses. + ''; + }; - port = lib.mkOption { - type = lib.types.port; - default = 6600; - description = '' - This setting is the TCP port that is desired for the daemon to get assigned - to. - ''; - }; + port = lib.mkOption { + type = lib.types.port; + default = 6600; + description = '' + This setting is the TCP port that is desired for the daemon to get assigned + to. + ''; + }; - db_file = lib.mkOption { - type = lib.types.path; - default = "${cfg.dataDir}/tag_cache"; - defaultText = lib.literalExpression ''"''${dataDir}/tag_cache"''; - description = '' - The path to MPD's database. - ''; - }; + db_file = lib.mkOption { + type = lib.types.path; + default = "${cfg.dataDir}/tag_cache"; + defaultText = lib.literalExpression ''"''${dataDir}/tag_cache"''; + description = '' + The path to MPD's database. + ''; + }; }; }; default = { }; From 4d1288cba132b9f60f2b3fe67e55a1a9160205f5 Mon Sep 17 00:00:00 2001 From: Chris Moultrie <821688+tebriel@users.noreply.github.com> Date: Wed, 5 Nov 2025 23:00:52 -0500 Subject: [PATCH 032/101] lego: 4.27.0 -> 4.29.0 changelog: https://github.com/go-acme/lego/releases/tag/v4.28.0 changelog: https://github.com/go-acme/lego/releases/tag/v4.28.1 changelog: https://github.com/go-acme/lego/releases/tag/v4.29.0 --- pkgs/by-name/le/lego/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/le/lego/package.nix b/pkgs/by-name/le/lego/package.nix index cef96732f65f..e2dcc20aaa07 100644 --- a/pkgs/by-name/le/lego/package.nix +++ b/pkgs/by-name/le/lego/package.nix @@ -7,16 +7,16 @@ buildGoModule rec { pname = "lego"; - version = "4.27.0"; + version = "4.29.0"; src = fetchFromGitHub { owner = "go-acme"; repo = "lego"; tag = "v${version}"; - hash = "sha256-mc/aWjYvgF5PSl6Ng9oLNWAlGDjnhzEouo9LXh/PFsE="; + hash = "sha256-czCOrgC3Xy42KigAe+tsPRdWqxgdHFl0KN3Ei2zeyy8="; }; - vendorHash = "sha256-648FrZqSatEYONzj03x8z8pV0WIvfYnIOcxERxYxSPw="; + vendorHash = "sha256-OnCtobizqDrqZTQenRPBTlUHvNx/xX34PYw8K4rgxSk="; doCheck = false; From 6c40306e7b2b6630c29909e1e1788cc1908b301a Mon Sep 17 00:00:00 2001 From: Vikingnope Date: Wed, 10 Dec 2025 18:00:24 +0100 Subject: [PATCH 033/101] homepage-dashboard: 1.7.0 -> 1.8.0 --- pkgs/by-name/ho/homepage-dashboard/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ho/homepage-dashboard/package.nix b/pkgs/by-name/ho/homepage-dashboard/package.nix index 901792fe5e31..072fff4b2aca 100644 --- a/pkgs/by-name/ho/homepage-dashboard/package.nix +++ b/pkgs/by-name/ho/homepage-dashboard/package.nix @@ -29,13 +29,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "homepage-dashboard"; - version = "1.7.0"; + version = "1.8.0"; src = fetchFromGitHub { owner = "gethomepage"; repo = "homepage"; tag = "v${finalAttrs.version}"; - hash = "sha256-03am9z381UozNsmWZefopMp8/tLycXJyiZ5BUGaV1kY="; + hash = "sha256-T2bAN8ucCjcWhXScTI8YxtfrwK9NEfHGHIE8xJgD6Bs="; }; pnpmDeps = pnpm_10.fetchDeps { @@ -45,7 +45,7 @@ stdenv.mkDerivation (finalAttrs: { src ; fetcherVersion = 1; - hash = "sha256-svkqmRFwZpcExFWtAbLL0lpHhzsI2s7RiLfQajIqjck="; + hash = "sha256-42dT1za9M4DowBh27UYh2QDyoVoNWA/L/9lyIY5OVwM="; }; nativeBuildInputs = [ From a2fa3506ab17d946c358a0df3fbabf7807003fcd Mon Sep 17 00:00:00 2001 From: redianthus Date: Thu, 4 Dec 2025 22:19:46 +0100 Subject: [PATCH 034/101] ocamlPackages.extunix: init at 0.4.4 --- .../ocaml-modules/extunix/default.nix | 42 +++++++++++++++++++ pkgs/top-level/ocaml-packages.nix | 2 + 2 files changed, 44 insertions(+) create mode 100644 pkgs/development/ocaml-modules/extunix/default.nix diff --git a/pkgs/development/ocaml-modules/extunix/default.nix b/pkgs/development/ocaml-modules/extunix/default.nix new file mode 100644 index 000000000000..da2bc782a2a1 --- /dev/null +++ b/pkgs/development/ocaml-modules/extunix/default.nix @@ -0,0 +1,42 @@ +{ + lib, + buildDunePackage, + fetchFromGitHub, + dune-configurator, + ppxlib, +}: + +buildDunePackage (finalAttrs: { + pname = "extunix"; + version = "0.4.4"; + + src = fetchFromGitHub { + owner = "ygrek"; + repo = "extunix"; + tag = "v${finalAttrs.version}"; + hash = "sha256-7wJDGv19etkDHRwwQ+WONtJswxNMjr2Q2Vhis4WgFek="; + }; + + postPatch = '' + substituteInPlace src/dune --replace-fail 'libraries unix bigarray bytes' 'libraries unix bigarray' + ''; + + buildInputs = [ + dune-configurator + ]; + + propagatedBuildInputs = [ + ppxlib + ]; + + # need absolute paths outside from sandbox + doCheck = false; + + meta = { + description = "Collection of thin bindings to various low-level system API"; + homepage = "https://github.com/ygrek/extunix"; + changelog = "https://github.com/ygrek/extunix/releases/tag/v${finalAttrs.version}"; + license = lib.licenses.lgpl21Only; + maintainers = with lib.maintainers; [ redianthus ]; + }; +}) diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index f109780364a2..c562d1c57f01 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -574,6 +574,8 @@ let extlib-1-7-7 = callPackage ../development/ocaml-modules/extlib/1.7.7.nix { }; + extunix = callPackage ../development/ocaml-modules/extunix/default.nix { }; + ezjsonm = callPackage ../development/ocaml-modules/ezjsonm { }; ezjsonm-encoding = callPackage ../development/ocaml-modules/ezjsonm-encoding { }; From 0c92a9fa2a91cb18f0ffd7cb24408d5223829bf2 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 12 Dec 2025 05:20:40 +0000 Subject: [PATCH 035/101] remnote: 1.22.28 -> 1.22.31 --- 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 b46b79bb0b2e..42c34372b33d 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.22.28"; + version = "1.22.31"; src = fetchurl { url = "https://download2.remnote.io/remnote-desktop2/RemNote-${version}.AppImage"; - hash = "sha256-suYd2IK/lwPd0sEoRmKPydgyExX5aRNyBLikubBmMpI="; + hash = "sha256-P2kjlskK+rrLWHMebt2UcbE0mJDOEa/OnAuRQGODkSA="; }; appimageContents = appimageTools.extractType2 { inherit pname version src; }; in From 777a75dc4066df2e0da7f0ea204686d514bf0c21 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 12 Dec 2025 09:37:48 +0000 Subject: [PATCH 036/101] python3Packages.meshcore: 2.2.2 -> 2.2.3 --- pkgs/development/python-modules/meshcore/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/meshcore/default.nix b/pkgs/development/python-modules/meshcore/default.nix index 0fb38fbcb28f..03b67619309f 100644 --- a/pkgs/development/python-modules/meshcore/default.nix +++ b/pkgs/development/python-modules/meshcore/default.nix @@ -14,12 +14,12 @@ buildPythonPackage rec { pname = "meshcore"; - version = "2.2.2"; + version = "2.2.3"; pyproject = true; src = fetchPypi { inherit pname version; - sha256 = "sha256-vn/vF4avMDwDLL0EMVrrMWkZrZ1GTiUxGyTBOtKvG1I="; + sha256 = "sha256-lmMflAlrNnfsc10J3CBxor9ftHK10bWyGTbjASJv82s="; }; build-system = [ hatchling ]; From 3f5a5eae389d4b72951191218a89797beea6c44a Mon Sep 17 00:00:00 2001 From: Johan Thomsen Date: Fri, 12 Dec 2025 11:39:57 +0100 Subject: [PATCH 037/101] coredns: 1.13.1 -> 1.13.2 --- pkgs/by-name/co/coredns/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/co/coredns/package.nix b/pkgs/by-name/co/coredns/package.nix index 449c0ee660d8..e18316be9e1b 100644 --- a/pkgs/by-name/co/coredns/package.nix +++ b/pkgs/by-name/co/coredns/package.nix @@ -6,7 +6,7 @@ installShellFiles, nixosTests, externalPlugins ? [ ], - vendorHash ? "sha256-pU8INVCKjYfAFOeobM7N1XCMHod7Kz0N5NKwpMpA2lU=", + vendorHash ? "sha256-bnNpJgy54wvTST1Jtfbd1ldLJrIzTW62TL7wyHeqz28=", }: let @@ -14,13 +14,13 @@ let in buildGoModule (finalAttrs: { pname = "coredns"; - version = "1.13.1"; + version = "1.13.2"; src = fetchFromGitHub { owner = "coredns"; repo = "coredns"; tag = "v${finalAttrs.version}"; - hash = "sha256-rWa4xjHRREoMtvPqW6ZP6Ym9qNTa0l8Opd15FsmxraI="; + hash = "sha256-9ggyFixdNy0t4UA8ZxU5oMUzA/8EB/k1jors4f8Q6YE="; }; inherit vendorHash; From 05d5e54291c2e0d21b7fb7ea0e3309b32840f4e0 Mon Sep 17 00:00:00 2001 From: Johan Thomsen Date: Fri, 12 Dec 2025 11:41:15 +0100 Subject: [PATCH 038/101] coredns: add johanot as maintainer --- pkgs/by-name/co/coredns/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/co/coredns/package.nix b/pkgs/by-name/co/coredns/package.nix index e18316be9e1b..982b34bd4550 100644 --- a/pkgs/by-name/co/coredns/package.nix +++ b/pkgs/by-name/co/coredns/package.nix @@ -135,6 +135,7 @@ buildGoModule (finalAttrs: { maintainers = with lib.maintainers; [ deltaevo djds + johanot rtreffer rushmorem ]; From ee4e6c1e34a729e9e312fd7f565a27218674cc4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Thu, 11 Dec 2025 20:11:39 +0100 Subject: [PATCH 039/101] pnpm.fetchDeps: create a variable for writing to the pnpm store --- pkgs/development/tools/pnpm/fetch-deps/default.nix | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/pkgs/development/tools/pnpm/fetch-deps/default.nix b/pkgs/development/tools/pnpm/fetch-deps/default.nix index 91eb685f0671..01a4e7be4a4d 100644 --- a/pkgs/development/tools/pnpm/fetch-deps/default.nix +++ b/pkgs/development/tools/pnpm/fetch-deps/default.nix @@ -87,13 +87,15 @@ in export HOME=$(mktemp -d) + storePath=$out + # If the packageManager field in package.json is set to a different pnpm version than what is in nixpkgs, # any pnpm command would fail in that directory, the following disables this pushd .. pnpm config set manage-package-manager-versions false popd - pnpm config set store-dir $out + pnpm config set store-dir $storePath # Some packages produce platform dependent outputs. We do not want to cache those in the global store pnpm config set side-effects-cache false # As we pin pnpm versions, we don't really care about updates @@ -122,8 +124,8 @@ in runHook preFixup # Remove timestamp and sort the json files - rm -rf $out/{v3,v10}/tmp - for f in $(find $out -name "*.json"); do + rm -rf $storePath/{v3,v10}/tmp + for f in $(find $storePath -name "*.json"); do jq --sort-keys "del(.. | .checkedAt?)" $f | sponge $f done @@ -139,9 +141,9 @@ in # See https://github.com/NixOS/nixpkgs/pull/350063 # See https://github.com/NixOS/nixpkgs/issues/422889 if [[ ${toString fetcherVersion} -ge 2 ]]; then - find $out -type f -name "*-exec" -print0 | xargs -0 chmod 555 - find $out -type f -not -name "*-exec" -print0 | xargs -0 chmod 444 - find $out -type d -print0 | xargs -0 chmod 555 + find $storePath -type f -name "*-exec" -print0 | xargs -0 chmod 555 + find $storePath -type f -not -name "*-exec" -print0 | xargs -0 chmod 444 + find $storePath -type d -print0 | xargs -0 chmod 555 fi runHook postFixup From 06fbcdc174d712d7ec5d799e79cbe4e8486bc423 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 12 Dec 2025 12:36:27 +0000 Subject: [PATCH 040/101] python3Packages.raylib-python-cffi: 5.5.0.3 -> 5.5.0.4 --- .../development/python-modules/raylib-python-cffi/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/raylib-python-cffi/default.nix b/pkgs/development/python-modules/raylib-python-cffi/default.nix index 48266a89d7c2..c7d49044215c 100644 --- a/pkgs/development/python-modules/raylib-python-cffi/default.nix +++ b/pkgs/development/python-modules/raylib-python-cffi/default.nix @@ -17,14 +17,14 @@ buildPythonPackage rec { pname = "raylib-python-cffi"; - version = "5.5.0.3"; + version = "5.5.0.4"; pyproject = true; src = fetchFromGitHub { owner = "electronstudio"; repo = "raylib-python-cffi"; tag = "v${version}"; - hash = "sha256-VsdUOk26xXEwha7kGYHy4Cgwrr3yOiSlJg4nYn+ZYYs="; + hash = "sha256-MKyTpGnup4QmRui2OVBpnyn9KENATWcwYcikOmYX4c8="; }; build-system = [ setuptools ]; From 330fc1e703235a28f2a12103f1f8270648147887 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Fri, 12 Dec 2025 19:29:19 +0100 Subject: [PATCH 041/101] knot-resolver*_6: fixup darwin Now it starts and resolves on an aarch64-darwin. --- pkgs/by-name/kn/knot-resolver-manager_6/package.nix | 7 +++++++ pkgs/by-name/kn/knot-resolver_6/package.nix | 10 ++++++++++ 2 files changed, 17 insertions(+) diff --git a/pkgs/by-name/kn/knot-resolver-manager_6/package.nix b/pkgs/by-name/kn/knot-resolver-manager_6/package.nix index 0f10f208e7be..c7c6f7d7f493 100644 --- a/pkgs/by-name/kn/knot-resolver-manager_6/package.nix +++ b/pkgs/by-name/kn/knot-resolver-manager_6/package.nix @@ -25,6 +25,12 @@ python3Packages.buildPythonPackage { substitute '${knot-resolver.unwrapped.config_py}'/knot_resolver/constants.py ./python/knot_resolver/constants.py \ --replace-fail '${knot-resolver.unwrapped.out}/etc' '/etc' \ --replace-fail '${knot-resolver.unwrapped.out}/sbin' '${knot-resolver}/bin' + '' + # On non-Linux let's simplify construction of the knot-resolver command line, + # as it would break because of nixpkgs-specific wrapping of python packages. + + '' + substituteInPlace python/knot_resolver/controller/supervisord/config_file.py \ + --replace-fail 'args = [sys.executable] + sys.argv' 'args = sys.argv' ''; build-system = with python3Packages; [ @@ -42,6 +48,7 @@ python3Packages.buildPythonPackage { typing-extensions ]; + doCheck = python3Packages.stdenv.isLinux; # maybe in future nativeCheckInputs = with python3Packages; [ augeas dnspython diff --git a/pkgs/by-name/kn/knot-resolver_6/package.nix b/pkgs/by-name/kn/knot-resolver_6/package.nix index 3aaf30ae4a65..f961f28e4209 100644 --- a/pkgs/by-name/kn/knot-resolver_6/package.nix +++ b/pkgs/by-name/kn/knot-resolver_6/package.nix @@ -2,6 +2,7 @@ lib, stdenv, fetchurl, + fetchpatch, # native deps. runCommand, pkg-config, @@ -48,6 +49,15 @@ let "config_py" ]; + patches = [ + (fetchpatch { + name = "test-cache-aarch64-darwin.patch"; + url = "https://gitlab.nic.cz/knot/knot-resolver/-/commit/d155d0dbe408a3327b39f70e122aea6fb2b86684.diff"; + excludes = [ "NEWS" ]; + hash = "sha256-3w33v8UfhGdA50BlkfHpQLFxg+5ELk0lp7RzgvkSzK8="; + }) + ]; + # Path fixups for the NixOS service. # systemd Exec* options are difficult to override in NixOS *if present*, so we drop them. postPatch = '' From 1c78178bd27d186952092010b3557bfe915b437f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 12 Dec 2025 21:29:53 +0000 Subject: [PATCH 042/101] python3Packages.approvaltests: 16.1.0 -> 16.2.0 --- pkgs/development/python-modules/approvaltests/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/approvaltests/default.nix b/pkgs/development/python-modules/approvaltests/default.nix index 7d737d062646..24ed38401712 100644 --- a/pkgs/development/python-modules/approvaltests/default.nix +++ b/pkgs/development/python-modules/approvaltests/default.nix @@ -20,14 +20,14 @@ buildPythonPackage rec { pname = "approvaltests"; - version = "16.1.0"; + version = "16.2.0"; pyproject = true; src = fetchFromGitHub { owner = "approvals"; repo = "ApprovalTests.Python"; tag = "v${version}"; - hash = "sha256-9zBpq4/jAH441eeMMV2WS767Rz+1qCX/QIfbToUHnAQ="; + hash = "sha256-SAevC6yIDndtNRakyzsRNw4vM2wLc/Qbs3ZlmXEa+40="; }; postPatch = '' From 562641408e819ee87d5faf6f2b403b274790595a Mon Sep 17 00:00:00 2001 From: blenderfreaky Date: Thu, 4 Dec 2025 23:26:11 +0100 Subject: [PATCH 043/101] ivpn{,-service}: 3.14.34 -> 3.15.0 --- pkgs/tools/networking/ivpn/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/networking/ivpn/default.nix b/pkgs/tools/networking/ivpn/default.nix index 39299da1a681..7062967d0ad0 100644 --- a/pkgs/tools/networking/ivpn/default.nix +++ b/pkgs/tools/networking/ivpn/default.nix @@ -22,7 +22,7 @@ builtins.mapAttrs attrs // rec { inherit pname; - version = "3.14.34"; + version = "3.15.0"; buildInputs = [ wirelesstools @@ -32,7 +32,7 @@ builtins.mapAttrs owner = "ivpn"; repo = "desktop-app"; tag = "v${version}"; - hash = "sha256-Q96G5mJahJnXxpqJ8IF0oFie7l0Nd1p8drHH9NSpwEw="; + hash = "sha256-Y+oW/2WDkH/YydR+xSzEHPdCNKTmmsV4yEsju+OmDYE="; }; proxyVendor = true; # .c file From d49f0ca80aad475076a54a921767bebd95502f35 Mon Sep 17 00:00:00 2001 From: blenderfreaky Date: Fri, 5 Dec 2025 00:17:38 +0100 Subject: [PATCH 044/101] ivpn-ui: 3.14.34 -> 3.15.0 --- pkgs/by-name/iv/ivpn-ui/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/iv/ivpn-ui/package.nix b/pkgs/by-name/iv/ivpn-ui/package.nix index f55e3b12d323..f7d6444e82a8 100644 --- a/pkgs/by-name/iv/ivpn-ui/package.nix +++ b/pkgs/by-name/iv/ivpn-ui/package.nix @@ -10,7 +10,7 @@ ivpn-service, }: let - version = "3.14.34"; + version = "3.15.0"; in buildNpmPackage { pname = "ivpn-ui"; @@ -20,12 +20,12 @@ buildNpmPackage { owner = "ivpn"; repo = "desktop-app"; tag = "v${version}"; - hash = "sha256-Q96G5mJahJnXxpqJ8IF0oFie7l0Nd1p8drHH9NSpwEw="; + hash = "sha256-Y+oW/2WDkH/YydR+xSzEHPdCNKTmmsV4yEsju+OmDYE="; }; sourceRoot = "source/ui"; - npmDepsHash = "sha256-y/VxvSZUvcIuckJF87639i5pcVJLg8SDAbWmg5bO3/s="; + npmDepsHash = "sha256-OOBBUDJwTP2T/KqzJPRV+A9ncRmb14KBoAXqa0T6c58="; nativeBuildInputs = [ copyDesktopItems From 49a6f76ff4dc0a5fc230464fd3a67029f661c405 Mon Sep 17 00:00:00 2001 From: blenderfreaky Date: Thu, 4 Dec 2025 23:35:33 +0100 Subject: [PATCH 045/101] ivpn{,-service}: migrate to by-name --- pkgs/by-name/iv/ivpn-service/package.nix | 106 ++++++++++++++++ .../iv/ivpn-service}/permissions.patch | 0 pkgs/by-name/iv/ivpn/package.nix | 54 ++++++++ pkgs/tools/networking/ivpn/default.nix | 118 ------------------ pkgs/top-level/all-packages.nix | 5 - 5 files changed, 160 insertions(+), 123 deletions(-) create mode 100644 pkgs/by-name/iv/ivpn-service/package.nix rename pkgs/{tools/networking/ivpn => by-name/iv/ivpn-service}/permissions.patch (100%) create mode 100644 pkgs/by-name/iv/ivpn/package.nix delete mode 100644 pkgs/tools/networking/ivpn/default.nix diff --git a/pkgs/by-name/iv/ivpn-service/package.nix b/pkgs/by-name/iv/ivpn-service/package.nix new file mode 100644 index 000000000000..ef53b966ade9 --- /dev/null +++ b/pkgs/by-name/iv/ivpn-service/package.nix @@ -0,0 +1,106 @@ +{ + buildGoModule, + fetchFromGitHub, + lib, + wirelesstools, + makeWrapper, + wireguard-tools, + openvpn, + obfs4, + iproute2, + dnscrypt-proxy, + iptables, + gawk, + util-linux, + nix-update-script, +}: + +let + version = "3.15.0"; +in +buildGoModule rec { + pname = "ivpn-service"; + inherit version; + + buildInputs = [ wirelesstools ]; + nativeBuildInputs = [ makeWrapper ]; + + src = fetchFromGitHub { + owner = "ivpn"; + repo = "desktop-app"; + tag = "v${version}"; + hash = "sha256-Y+oW/2WDkH/YydR+xSzEHPdCNKTmmsV4yEsju+OmDYE="; + }; + + modRoot = "daemon"; + vendorHash = "sha256-DVKSCcEeE7vI8aOYuEwk22n0wtF7MMDOyAgYoXYadwI="; + + proxyVendor = true; # .c file + + patches = [ ./permissions.patch ]; + + postPatch = '' + substituteInPlace daemon/service/platform/platform_linux.go \ + --replace 'openVpnBinaryPath = "/usr/sbin/openvpn"' \ + 'openVpnBinaryPath = "${openvpn}/bin/openvpn"' \ + --replace 'routeCommand = "/sbin/ip route"' \ + 'routeCommand = "${iproute2}/bin/ip route"' + + substituteInPlace daemon/netinfo/netinfo_linux.go \ + --replace 'retErr := shell.ExecAndProcessOutput(log, outParse, "", "/sbin/ip", "route")' \ + 'retErr := shell.ExecAndProcessOutput(log, outParse, "", "${iproute2}/bin/ip", "route")' + + substituteInPlace daemon/service/platform/platform_linux_release.go \ + --replace 'installDir := "/opt/ivpn"' "installDir := \"$out\"" \ + --replace 'obfsproxyStartScript = path.Join(installDir, "obfsproxy/obfs4proxy")' \ + 'obfsproxyStartScript = "${lib.getExe obfs4}"' \ + --replace 'wgBinaryPath = path.Join(installDir, "wireguard-tools/wg-quick")' \ + 'wgBinaryPath = "${wireguard-tools}/bin/wg-quick"' \ + --replace 'wgToolBinaryPath = path.Join(installDir, "wireguard-tools/wg")' \ + 'wgToolBinaryPath = "${wireguard-tools}/bin/wg"' \ + --replace 'dnscryptproxyBinPath = path.Join(installDir, "dnscrypt-proxy/dnscrypt-proxy")' \ + 'dnscryptproxyBinPath = "${dnscrypt-proxy}/bin/dnscrypt-proxy"' + ''; + + ldflags = [ + "-s" + "-w" + "-X github.com/ivpn/desktop-app/daemon/version._version=${version}" + "-X github.com/ivpn/desktop-app/daemon/version._time=1970-01-01" + ]; + + postInstall = '' + mv $out/bin/{daemon,ivpn-service} + ''; + + postFixup = '' + mkdir -p $out/etc + cp -r $src/daemon/References/Linux/etc/* $out/etc/ + cp -r $src/daemon/References/common/etc/* $out/etc/ + + patchShebangs --build $out/etc/firewall.sh $out/etc/splittun.sh $out/etc/client.down $out/etc/client.up + + wrapProgram "$out/bin/ivpn-service" \ + --suffix PATH : ${ + lib.makeBinPath [ + iptables + gawk + util-linux + ] + } + ''; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Official IVPN Desktop app service daemon"; + homepage = "https://www.ivpn.net/apps"; + changelog = "https://github.com/ivpn/desktop-app/releases/tag/v${version}"; + license = lib.licenses.gpl3Only; + maintainers = with lib.maintainers; [ + urandom + blenderfreaky + ]; + mainProgram = "ivpn-service"; + }; +} diff --git a/pkgs/tools/networking/ivpn/permissions.patch b/pkgs/by-name/iv/ivpn-service/permissions.patch similarity index 100% rename from pkgs/tools/networking/ivpn/permissions.patch rename to pkgs/by-name/iv/ivpn-service/permissions.patch diff --git a/pkgs/by-name/iv/ivpn/package.nix b/pkgs/by-name/iv/ivpn/package.nix new file mode 100644 index 000000000000..77588419d9be --- /dev/null +++ b/pkgs/by-name/iv/ivpn/package.nix @@ -0,0 +1,54 @@ +{ + buildGoModule, + fetchFromGitHub, + lib, + wirelesstools, + nix-update-script, +}: + +let + version = "3.15.0"; +in +buildGoModule rec { + pname = "ivpn"; + inherit version; + + buildInputs = [ wirelesstools ]; + + src = fetchFromGitHub { + owner = "ivpn"; + repo = "desktop-app"; + tag = "v${version}"; + hash = "sha256-Y+oW/2WDkH/YydR+xSzEHPdCNKTmmsV4yEsju+OmDYE="; + }; + + modRoot = "cli"; + vendorHash = "sha256-xZ1tMiv06fE2wtpDagKjHiVTPYWpj32hM6n/v9ZcgrE="; + + proxyVendor = true; # .c file + + ldflags = [ + "-s" + "-w" + "-X github.com/ivpn/desktop-app/daemon/version._version=${version}" + "-X github.com/ivpn/desktop-app/daemon/version._time=1970-01-01" + ]; + + postInstall = '' + mv $out/bin/{cli,ivpn} + ''; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Official IVPN Desktop app"; + homepage = "https://www.ivpn.net/apps"; + changelog = "https://github.com/ivpn/desktop-app/releases/tag/v${version}"; + license = lib.licenses.gpl3Only; + maintainers = with lib.maintainers; [ + urandom + blenderfreaky + ]; + mainProgram = "ivpn"; + }; +} diff --git a/pkgs/tools/networking/ivpn/default.nix b/pkgs/tools/networking/ivpn/default.nix deleted file mode 100644 index 7062967d0ad0..000000000000 --- a/pkgs/tools/networking/ivpn/default.nix +++ /dev/null @@ -1,118 +0,0 @@ -{ - buildGoModule, - fetchFromGitHub, - lib, - wirelesstools, - makeWrapper, - wireguard-tools, - openvpn, - obfs4, - iproute2, - dnscrypt-proxy, - iptables, - gawk, - util-linux, - nix-update-script, -}: - -builtins.mapAttrs - ( - pname: attrs: - buildGoModule ( - attrs - // rec { - inherit pname; - version = "3.15.0"; - - buildInputs = [ - wirelesstools - ]; - - src = fetchFromGitHub { - owner = "ivpn"; - repo = "desktop-app"; - tag = "v${version}"; - hash = "sha256-Y+oW/2WDkH/YydR+xSzEHPdCNKTmmsV4yEsju+OmDYE="; - }; - - proxyVendor = true; # .c file - - ldflags = [ - "-s" - "-w" - "-X github.com/ivpn/desktop-app/daemon/version._version=${version}" - "-X github.com/ivpn/desktop-app/daemon/version._time=1970-01-01" - ]; - - postInstall = '' - mv $out/bin/{${attrs.modRoot},${pname}} - ''; - - passthru.updateScript = nix-update-script { }; - - meta = { - description = "Official IVPN Desktop app"; - homepage = "https://www.ivpn.net/apps"; - changelog = "https://github.com/ivpn/desktop-app/releases/tag/v${version}"; - license = lib.licenses.gpl3Only; - maintainers = with lib.maintainers; [ - urandom - blenderfreaky - ]; - mainProgram = "ivpn"; - }; - } - ) - ) - { - ivpn = { - modRoot = "cli"; - vendorHash = "sha256-xZ1tMiv06fE2wtpDagKjHiVTPYWpj32hM6n/v9ZcgrE="; - }; - ivpn-service = { - modRoot = "daemon"; - vendorHash = "sha256-DVKSCcEeE7vI8aOYuEwk22n0wtF7MMDOyAgYoXYadwI="; - nativeBuildInputs = [ makeWrapper ]; - - patches = [ ./permissions.patch ]; - postPatch = '' - substituteInPlace daemon/service/platform/platform_linux.go \ - --replace 'openVpnBinaryPath = "/usr/sbin/openvpn"' \ - 'openVpnBinaryPath = "${openvpn}/bin/openvpn"' \ - --replace 'routeCommand = "/sbin/ip route"' \ - 'routeCommand = "${iproute2}/bin/ip route"' - - substituteInPlace daemon/netinfo/netinfo_linux.go \ - --replace 'retErr := shell.ExecAndProcessOutput(log, outParse, "", "/sbin/ip", "route")' \ - 'retErr := shell.ExecAndProcessOutput(log, outParse, "", "${iproute2}/bin/ip", "route")' - - substituteInPlace daemon/service/platform/platform_linux_release.go \ - --replace 'installDir := "/opt/ivpn"' "installDir := \"$out\"" \ - --replace 'obfsproxyStartScript = path.Join(installDir, "obfsproxy/obfs4proxy")' \ - 'obfsproxyStartScript = "${lib.getExe obfs4}"' \ - --replace 'wgBinaryPath = path.Join(installDir, "wireguard-tools/wg-quick")' \ - 'wgBinaryPath = "${wireguard-tools}/bin/wg-quick"' \ - --replace 'wgToolBinaryPath = path.Join(installDir, "wireguard-tools/wg")' \ - 'wgToolBinaryPath = "${wireguard-tools}/bin/wg"' \ - --replace 'dnscryptproxyBinPath = path.Join(installDir, "dnscrypt-proxy/dnscrypt-proxy")' \ - 'dnscryptproxyBinPath = "${dnscrypt-proxy}/bin/dnscrypt-proxy"' - ''; - - postFixup = '' - mkdir -p $out/etc - cp -r $src/daemon/References/Linux/etc/* $out/etc/ - cp -r $src/daemon/References/common/etc/* $out/etc/ - - patchShebangs --build $out/etc/firewall.sh $out/etc/splittun.sh $out/etc/client.down $out/etc/client.up - - wrapProgram "$out/bin/ivpn-service" \ - --suffix PATH : ${ - lib.makeBinPath [ - iptables - gawk - util-linux - ] - } - ''; - }; - } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b44a41637980..9ad2eac151b3 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1066,11 +1066,6 @@ with pkgs; iroh-dns-server ; - inherit (callPackages ../tools/networking/ivpn/default.nix { }) - ivpn - ivpn-service - ; - kanata-with-cmd = kanata.override { withCmd = true; }; linux-router-without-wifi = linux-router.override { useWifiDependencies = false; }; From 3793d30360ed4afcce14de82165d67e011374280 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 12 Dec 2025 22:36:20 +0000 Subject: [PATCH 046/101] positron-bin: 2025.12.0-167 -> 2025.12.1-4 --- pkgs/by-name/po/positron-bin/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/po/positron-bin/package.nix b/pkgs/by-name/po/positron-bin/package.nix index ddd532f8a4a2..060d7853b2c5 100644 --- a/pkgs/by-name/po/positron-bin/package.nix +++ b/pkgs/by-name/po/positron-bin/package.nix @@ -22,7 +22,7 @@ }: let pname = "positron-bin"; - version = "2025.12.0-167"; + version = "2025.12.1-4"; in stdenv.mkDerivation { inherit version pname; @@ -31,17 +31,17 @@ stdenv.mkDerivation { if stdenv.hostPlatform.isDarwin then fetchurl { url = "https://cdn.posit.co/positron/releases/mac/universal/Positron-${version}-universal.dmg"; - hash = "sha256-GrABm5PJFZ1ugb4Lj3y/Ynnt/RTkY0DMk3GZKqVAlk0="; + hash = "sha256-9T0ae4m60TZkGUzJscZ1HTAbaw7y0Boi8EDy7HTt5+s="; } else if stdenv.hostPlatform.system == "aarch64-linux" then fetchurl { url = "https://cdn.posit.co/positron/releases/deb/arm64/Positron-${version}-arm64.deb"; - hash = "sha256-WP8ULCMY268av8W0Op0j6P6ry8MwTjNsjV1iJV50wTg="; + hash = "sha256-dH1bV1iX7ISYGcfPg8y7itoYF8y2ApHs9kcSUIDnZUw="; } else fetchurl { url = "https://cdn.posit.co/positron/releases/deb/x86_64/Positron-${version}-x64.deb"; - hash = "sha256-3Z4mRN5WOV0wj51TzoyC0wfU1Zu6wEAb1gTH5IFQRIg="; + hash = "sha256-MurH+NEIejOHp3h69buyb/1MAxnOJ7KkU9mWJVTN5Xw="; }; buildInputs = [ From 403d46a327f1a1c3d99ad187fe74f22f9c384dea Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Fri, 12 Dec 2025 19:05:48 -0500 Subject: [PATCH 047/101] networkmanager: 1.54.1 -> 1.54.3 Changelog: https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/raw/1.54.3/NEWS Diff: https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/compare/1.54.1...1.54.3 --- pkgs/by-name/ne/networkmanager/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ne/networkmanager/package.nix b/pkgs/by-name/ne/networkmanager/package.nix index 16f1b80d9eb6..e814fd6ce5ee 100644 --- a/pkgs/by-name/ne/networkmanager/package.nix +++ b/pkgs/by-name/ne/networkmanager/package.nix @@ -64,11 +64,11 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "networkmanager"; - version = "1.54.1"; + version = "1.54.3"; src = fetchurl { url = "https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/releases/${finalAttrs.version}/downloads/NetworkManager-${finalAttrs.version}.tar.xz"; - hash = "sha256-APPwvhKsTUhY6/FSQwuS3vFXSAP/YQf378dkoFbUxMc="; + hash = "sha256-z0/vw76WgCxaTas+aQvcTOTHglGVTvChtlAm2IZwmYk="; }; outputs = [ From faa4386608458fef2b831cb11dd6b5503e5ad78a Mon Sep 17 00:00:00 2001 From: banh Date: Fri, 12 Dec 2025 23:47:22 -0800 Subject: [PATCH 048/101] bolt-launcher: add wmclass to desktop file --- pkgs/by-name/bo/bolt-launcher/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/bo/bolt-launcher/package.nix b/pkgs/by-name/bo/bolt-launcher/package.nix index 81f60521132d..ddf07bb60edc 100644 --- a/pkgs/by-name/bo/bolt-launcher/package.nix +++ b/pkgs/by-name/bo/bolt-launcher/package.nix @@ -98,6 +98,7 @@ let exec = "bolt-launcher"; icon = "bolt-launcher"; categories = [ "Game" ]; + startupWMClass = "BoltLauncher"; }) ]; }); From d573d6c831052b34417fe83d215399a650d667eb Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 13 Dec 2025 08:26:28 +0000 Subject: [PATCH 049/101] python3Packages.snakemake: 9.14.1 -> 9.14.4 --- pkgs/by-name/sn/snakemake/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/sn/snakemake/package.nix b/pkgs/by-name/sn/snakemake/package.nix index 7388eb903a79..72083e3344b2 100644 --- a/pkgs/by-name/sn/snakemake/package.nix +++ b/pkgs/by-name/sn/snakemake/package.nix @@ -10,14 +10,14 @@ python3Packages.buildPythonApplication rec { pname = "snakemake"; - version = "9.14.1"; + version = "9.14.4"; pyproject = true; src = fetchFromGitHub { owner = "snakemake"; repo = "snakemake"; tag = "v${version}"; - hash = "sha256-yRnoo6vaq2Gw+/WJ3Jjk4AMnj0OPylgPI2lezCzK/B4="; + hash = "sha256-r8Fz0ZOGZbkQ5x5oarxkxzGMYSuh15N4RYlZZxPwPA0="; }; postPatch = '' From 90b174e05abccf23e6c4fdd74ad738893b9e2ab9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marijan=20Petri=C4=8Devi=C4=87?= Date: Sat, 13 Dec 2025 18:28:12 +0700 Subject: [PATCH 050/101] ocamlPackages.ppx_deriving_variant_string: init at 1.0.1 --- .../ppx_deriving_variant_string/default.nix | 34 +++++++++++++++++++ pkgs/top-level/ocaml-packages.nix | 4 +++ 2 files changed, 38 insertions(+) create mode 100644 pkgs/development/ocaml-modules/ppx_deriving_variant_string/default.nix diff --git a/pkgs/development/ocaml-modules/ppx_deriving_variant_string/default.nix b/pkgs/development/ocaml-modules/ppx_deriving_variant_string/default.nix new file mode 100644 index 000000000000..c8fe782e271c --- /dev/null +++ b/pkgs/development/ocaml-modules/ppx_deriving_variant_string/default.nix @@ -0,0 +1,34 @@ +{ + lib, + fetchurl, + buildDunePackage, + ppxlib, + ounit2, +}: + +buildDunePackage (finalAttrs: { + pname = "ppx_deriving_variant_string"; + version = "1.0.1"; + + src = fetchurl { + url = "https://github.com/ahrefs/ppx_deriving_variant_string/releases/download/${finalAttrs.version}/ppx_deriving_variant_string-${finalAttrs.version}.tbz"; + hash = "sha256-nSU9LEwPOOQuCpNAVQgBGucHuk5wjJ3dDIj708djLwc="; + }; + + propagatedBuildInputs = [ + ppxlib + ]; + + doCheck = true; + checkInputs = [ + ounit2 + ]; + + meta = { + homepage = "https://github.com/ahrefs/ppx_deriving_variant_string"; + description = "OCaml PPX deriver that generates converters between regular or polymorphic variants and strings."; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.marijanp ]; + changelog = "https://raw.githubusercontent.com/ahrefs/ppx_deriving_variant_string/${finalAttrs.version}/CHANGES.md"; + }; +}) diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 1d8c79728cfe..a6cc3134f155 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -1715,6 +1715,10 @@ let ppx_deriving_rpc = callPackage ../development/ocaml-modules/ppx_deriving_rpc { }; + ppx_deriving_variant_string = + callPackage ../development/ocaml-modules/ppx_deriving_variant_string + { }; + ppx_deriving_yaml = callPackage ../development/ocaml-modules/ppx_deriving_yaml { mdx = mdx.override { inherit logs; }; }; From e02d79df35a8f189e62d2a3bef9577cc8484fd0c Mon Sep 17 00:00:00 2001 From: Robert Rose Date: Wed, 10 Dec 2025 17:58:14 +0100 Subject: [PATCH 051/101] rke2: extend documentation on package maintenance --- .../networking/cluster/rke2/README.md | 115 ++++++++++++++++-- 1 file changed, 102 insertions(+), 13 deletions(-) diff --git a/pkgs/applications/networking/cluster/rke2/README.md b/pkgs/applications/networking/cluster/rke2/README.md index e511c1a5ef6c..e21a98b954b0 100644 --- a/pkgs/applications/networking/cluster/rke2/README.md +++ b/pkgs/applications/networking/cluster/rke2/README.md @@ -16,27 +16,116 @@ version skew policy. > Upgrade the server nodes first, one at a time. Once all servers have been upgraded, you may then > upgrade agent nodes. -## Release Channels +## Release Maintenance + +This section describes how new RKE2 releases are published in nixpkgs. + +Before contributing new RKE2 packages or updating existing packages, make sure that + +- New packages build (e.g. `nix-build -A rke2_1_34`) +- All tests pass (e.g. `nix-build -A rke2_1_34.tests`) +- You respect the nixpkgs [contributing guidelines](/CONTRIBUTING.md) + +### Release Channels RKE2 has two named release channels, i.e. `stable` and `latest`. Additionally, there exists a release channel tied to each Kubernetes minor version, e.g. `v1.32`. Nixpkgs follows active minor version release channels (typically 4 at a time) and sets aliases for -`rke2_stable` and `rke2_latest` accordingly. - -Patch releases should be backported to the latest stable release branch; however, new minor -versions are not backported. +`rke2_stable` and `rke2_latest` accordingly. The [update-script](./update-script.sh) takes care of +updating the aliases automatically. For further information visit the [RKE2 release channels documentation](https://docs.rke2.io/upgrades/manual_upgrade?_highlight=manua#release-channels). -## EOL Versions +### Patch Releases -Approximately every 4 months a minor RKE2 version reaches EOL. EOL versions should be removed from -`nixpkgs-unstable`, preferably by throwing with an explanatory message in -`pkgs/top-level/aliases.nix`. With stable releases, however, it isn't expected that packages will be -removed. Instead we set `meta.knownVulnerabilities` for stable EOL packages, like it is also done -for EOL JDKs, browser engines, Node.js versions, etc. +Updates to existing packages should be performed by the update script. In order to update an RKE2 +package, you call the update script and pass it the minor version of the package you want to update. -For further information on the RKE2 lifecycle, see the -[SUSE Product Support Lifecycle page](https://www.suse.com/lifecycle#rke2). +For example, to update `rke2_1_34`: + +``` +./pkgs/applications/networking/cluster/rke2/update-script.sh 34 +``` + +Patch releases for packages that are also available on the latest stable release channel should be +backported. The backport PR can be created automatically by adding the `backport release-XX.XX` +label on the update PR. + +### Minor Releases + +Every minor release gets a dedicated package in nixpkgs. For example, you would release `rke2_1_35` +by doing the following: + +1. Copy the version information of an existing release, its contents will be updated by the update + script later on + - `cp -r ./pkgs/applications/networking/cluster/rke2/1_34 ./pkgs/applications/networking/cluster/rke2/1_35` +2. Add a new package block to [default.nix](./default.nix), you can copy an existing block from a + previous release and update the version numbers + - `rke2_1_35 = ...` +3. Run the update script for the new package + - `./pkgs/applications/networking/cluster/rke2/update-script.sh 35` + +New minor versions are **not** backported to stable release channels. + +### Final Patch Releases (EOL) + +RKE2 follows Kubernetes' release schedule. In general, there is a final patch release with which a +minor version enters end-of-life. See Kubernetes' +[non-active branch history](https://kubernetes.io/releases/patch-releases/#non-active-branch-history) +for further information. Approximately every 4 months a minor RKE2 version reaches EOL. + +Due to the delay between Kubernetes releases and RKE2 releases, the final patch version for RKE2 may +be released slightly after the EOL date. Usually this is nothing to worry about. + +#### Handling EOL on unstable + +EOL packages are removed from unstable. The final patch version should not be released on unstable, +if it has entered end-of-life already. + +In order to remove a versioned RKE2 package, create a PR achieving the following: + +1. Remove the versioned folder containing the version files + - `rm -r ./pkgs/applications/networking/cluster/rke2/1_34` +2. Remove the package block from [default.nix](../default.nix) (`rke2_1_34 = ...`) +3. Remove the package reference from + [pkgs/top-level/all-packages.nix](/pkgs/top-level/all-packages.nix) +4. Add a deprecation notice in [pkgs/top-level/aliases.nix](/pkgs/top-level/aliases.nix) + - Such as + `rke2_1_34 = throw "'rke2_1_34' has been removed from nixpkgs as it has reached end of life"; # Added 2026-10-27` + +#### Handling EOL on stable + +EOL packages should **not** be removed from a stable release branch. Instead we mark stable EOL +packages as vulnerable due to EOL, like it is also done for EOL JDKs, browser engines, Node.js +versions, etc. + +In order to mark a versioned RKE2 package as vulnerable, override `meta.knownVulnerabilities` on the +respective package block. + +```nix +{ + rke2_1_34 = + (common ( + (import ./1_34/versions.nix) + // { + updateScript = [ + ./update-script.sh + "34" + ]; + } + ) extraArgs).overrideAttrs + { + meta.knownVulnerabilities = [ "rke2_1_34 has reached end-of-life on 2026-10-27" ]; + }; +} +``` + +> [!NOTE] +> Remember to add "Not-cherry-picked-because: " in the commit message for commits on stable +> that are not cherry picked. + +#### Additional Resources + +- [RKE2 Product Support Lifecycle page](https://www.suse.com/lifecycle#rke2) From 2508214c3c4e601a52145503121bd50e1e4eddcf Mon Sep 17 00:00:00 2001 From: Tom Hunze Date: Sat, 13 Dec 2025 17:10:49 +0100 Subject: [PATCH 052/101] gnomeExtensions.printers: patch hardcoded binary paths --- .../gnome/extensions/extensionOverrides.nix | 9 ++++ .../printers_at_linux-man.org.patch | 42 +++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 pkgs/desktops/gnome/extensions/extensionOverridesPatches/printers_at_linux-man.org.patch diff --git a/pkgs/desktops/gnome/extensions/extensionOverrides.nix b/pkgs/desktops/gnome/extensions/extensionOverrides.nix index c9938f2c9015..89c9e772041d 100644 --- a/pkgs/desktops/gnome/extensions/extensionOverrides.nix +++ b/pkgs/desktops/gnome/extensions/extensionOverrides.nix @@ -2,6 +2,7 @@ lib, fetchFromGitLab, cpio, + cups, ddcutil, easyeffects, gjs, @@ -169,6 +170,14 @@ lib.trivial.pipe super [ } )) + (patchExtension "printers@linux-man.org" (old: { + patches = [ + (replaceVars ./extensionOverridesPatches/printers_at_linux-man.org.patch { + inherit cups; + }) + ]; + })) + (patchExtension "system-monitor@gnome-shell-extensions.gcampax.github.com" (old: { patches = [ (replaceVars diff --git a/pkgs/desktops/gnome/extensions/extensionOverridesPatches/printers_at_linux-man.org.patch b/pkgs/desktops/gnome/extensions/extensionOverridesPatches/printers_at_linux-man.org.patch new file mode 100644 index 000000000000..ed13f99e7ef3 --- /dev/null +++ b/pkgs/desktops/gnome/extensions/extensionOverridesPatches/printers_at_linux-man.org.patch @@ -0,0 +1,42 @@ +diff --git a/extension.js b/extension.js +index 91b81dc..e4a2552 100755 +--- a/extension.js ++++ b/extension.js +@@ -122,8 +122,8 @@ const PrintersManager = GObject.registerClass(class PrintersManager extends Pane + this.menu.addMenuItem(printers); + //Add Printers + this.printers = []; +- let p_list = await exec_async(['/usr/bin/lpstat', '-a']); +- let p_default = await exec_async(['/usr/bin/lpstat', '-d']); ++ let p_list = await exec_async(['@cups@/bin/lpstat', '-a']); ++ let p_default = await exec_async(['@cups@/bin/lpstat', '-d']); + if(p_default.split(': ')[1] != undefined) p_default = p_default.split(': ')[1].trim(); + else p_default = 'no default'; + p_list = p_list.split('\n'); +@@ -143,7 +143,7 @@ const PrintersManager = GObject.registerClass(class PrintersManager extends Pane + } + } + //Jobs +- let p_jobs = await exec_async(['/usr/bin/lpstat', '-o']); ++ let p_jobs = await exec_async(['@cups@/bin/lpstat', '-o']); + //Cancel all Jobs + if(p_jobs.length > 0) { + this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem()); +@@ -154,7 +154,7 @@ const PrintersManager = GObject.registerClass(class PrintersManager extends Pane + //Add Jobs + p_jobs = p_jobs.split(/\n/); + this.jobsCount = p_jobs.length - 1 +- let p_jobs2 = await exec_async(['/usr/bin/lpq', '-a']); ++ let p_jobs2 = await exec_async(['@cups@/bin/lpq', '-a']); + p_jobs2 = p_jobs2.replace(/\n/g, ' ').split(/\s+/); + let sendJobs = []; + for(var n = 0; n < p_jobs.length - 1; n++) { +@@ -194,7 +194,7 @@ const PrintersManager = GObject.registerClass(class PrintersManager extends Pane + this.show(); + if(this.show_icon == 0 || (this.show_icon == 1 && this.printersCount > 0) || (this.show_icon == 2 && this.jobsCount > 0)) { + this.show(); +- let p_error = await exec_async(['/usr/bin/lpstat', '-l']); ++ let p_error = await exec_async(['@cups@/bin/lpstat', '-l']); + this.printError = p_error.indexOf('Unable') >= 0 || p_error.indexOf(' not ') >= 0 || p_error.indexOf(' failed') >= 0; + if(this.printWarning) this._icon.icon_name = warningIcon; + else if(this.show_error && this.printError) this._icon.icon_name = errorIcon; From d4f475250600b064685c1027a0042f2b14189f2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C2=B7=F0=90=91=91=F0=90=91=B4=F0=90=91=95=F0=90=91=91?= =?UTF-8?q?=F0=90=91=A9=F0=90=91=A4?= Date: Sat, 13 Dec 2025 23:17:52 +0700 Subject: [PATCH 053/101] ocamlPackages.cow: add homepage --- pkgs/development/ocaml-modules/cow/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/ocaml-modules/cow/default.nix b/pkgs/development/ocaml-modules/cow/default.nix index 5fee7a517f92..5b9a624625b3 100644 --- a/pkgs/development/ocaml-modules/cow/default.nix +++ b/pkgs/development/ocaml-modules/cow/default.nix @@ -36,6 +36,7 @@ buildDunePackage rec { Markdown, to name but a few! This library provides OCaml combinators for these web formats. ''; + homepage = "https://mirage.github.io/ocaml-cow/"; license = lib.licenses.isc; maintainers = with lib.maintainers; [ sternenseemann ]; }; From a183f86b100b4dbdf8ec50221a4ccb8d4f0edc39 Mon Sep 17 00:00:00 2001 From: OPNA2608 Date: Sat, 13 Dec 2025 18:04:32 +0100 Subject: [PATCH 054/101] nixosTests.lomiri-calendar-app: Fix test further Had more random failures, this time with finding "Agenda" and "foobar". - Instead of looking for "Agenda" back on the main page, restart the application. - Change event name from "foobar" with "Poke". OCR seems to have an easier time with it, and it's still unique enough. --- nixos/tests/lomiri-calendar-app.nix | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/nixos/tests/lomiri-calendar-app.nix b/nixos/tests/lomiri-calendar-app.nix index 2d8a7ae10026..5b18e7dd50b4 100644 --- a/nixos/tests/lomiri-calendar-app.nix +++ b/nixos/tests/lomiri-calendar-app.nix @@ -63,19 +63,28 @@ # On New Event page machine.succeed("xdotool mousemove 500 230 click 1") machine.sleep(2) - machine.send_chars("foobar") + machine.send_chars("Poke") machine.sleep(2) # make sure they're actually in there machine.succeed("xdotool mousemove 1000 40 click 1") + machine.sleep(10) # Give the app some time to save the event + + # Can't consistently OCR for "Agenda". Just restart it. + machine.succeed("pgrep -afx lomiri-calendar-app >&2") + machine.succeed("pkill -efx lomiri-calendar-app >&2") + machine.wait_until_fails("pgrep -afx lomiri-calendar-app >&2") + machine.succeed("lomiri-calendar-app >&2 &") + machine.sleep(10) + machine.send_key("alt-f10") machine.sleep(2) - machine.wait_for_text("Agenda") - machine.screenshot("lomiri-calendar_eventadded") # Back on main page # Event was created, does it have the correct name? - machine.wait_for_text("foobar") + machine.wait_for_text("Poke") machine.screenshot("lomiri-calendar_works") - machine.succeed("pkill -f lomiri-calendar-app") + machine.succeed("pgrep -afx lomiri-calendar-app >&2") + machine.succeed("pkill -efx lomiri-calendar-app >&2") + machine.wait_until_fails("pgrep -afx lomiri-calendar-app >&2") with subtest("lomiri calendar localisation works"): machine.succeed("env LANG=de_DE.UTF-8 lomiri-calendar-app >&2 &") From 2d8bb8fb01abeef795ec7b43952b52c4cae7430e Mon Sep 17 00:00:00 2001 From: OPNA2608 Date: Sat, 13 Dec 2025 18:39:34 +0100 Subject: [PATCH 055/101] nixosTests.lomiri-music-app: Replace some OCR with wait_for_window Hopefully works better... --- nixos/tests/lomiri-music-app.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nixos/tests/lomiri-music-app.nix b/nixos/tests/lomiri-music-app.nix index 5cf32619d8f7..def738d4169d 100644 --- a/nixos/tests/lomiri-music-app.nix +++ b/nixos/tests/lomiri-music-app.nix @@ -145,12 +145,12 @@ in with subtest("lomiri music plays music"): machine.succeed("xdotool mousemove 30 720 click 1") # Skip intro machine.sleep(2) - machine.wait_for_text("Albums") + machine.wait_for_window("Albums") machine.succeed("xdotool mousemove 25 45 click 1") # Open categories machine.sleep(2) machine.succeed("xdotool mousemove 25 240 click 1") # Switch to Tracks category machine.sleep(2) - machine.wait_for_text("Tracks") # Written in larger text now, easier for OCR + machine.wait_for_window("Tracks") machine.screenshot("lomiri-music_listing") # Ensure pause colours isn't present already @@ -192,7 +192,7 @@ in machine.sleep(10) machine.send_key("alt-f10") machine.sleep(2) - machine.wait_for_text("Titel") + machine.wait_for_window("Titel") machine.screenshot("lomiri-music_localised") ''; } From 0dd94f05b04768c808d19c2e28dfae19105e5c2f Mon Sep 17 00:00:00 2001 From: magicquark <198001825+magicquark@users.noreply.github.com> Date: Sat, 13 Dec 2025 04:54:09 +0000 Subject: [PATCH 056/101] podman: fix cross compilation build - See `Nixpkgs` issue 467994 for detailed build logs showing the failure. - `Podman` will use its vendored version of `go-md2man` when the `GOMD2MAN` environment variable is unset. - When cross compiling from `x86_64-linux` to `aarch64-linux`, this results in the tool being compiled with the `aarch64-linux` compiler using `x86_64-linux` options. The compiler arch is wrong, so the build fails. - To circumvent this use `Nixpkgs` version of `go-md2man`. - The current vendored version matches `Nixpkgs` version (v2.0.7): https://github.com/containers/podman/commit/7e14a0340922a03781f9f6238a914b04a749573f - The reason for the vendoring is detailed in this commit: https://github.com/containers/podman/commit/dfec510b41b536d4a3afc810cab335d1d0feb3e0 --- pkgs/by-name/po/podman/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/po/podman/package.nix b/pkgs/by-name/po/podman/package.nix index 6ec4a19e901c..a8ef71d47183 100644 --- a/pkgs/by-name/po/podman/package.nix +++ b/pkgs/by-name/po/podman/package.nix @@ -5,6 +5,7 @@ pkg-config, installShellFiles, buildGoModule, + buildPackages, gpgme, lvm2, btrfs-progs, @@ -12,7 +13,6 @@ libseccomp, libselinux, systemdMinimal, - go-md2man, nixosTests, python3, makeBinaryWrapper, @@ -71,7 +71,6 @@ buildGoModule (finalAttrs: { nativeBuildInputs = [ pkg-config - go-md2man installShellFiles makeBinaryWrapper python3 @@ -90,6 +89,7 @@ buildGoModule (finalAttrs: { env = { HELPER_BINARIES_DIR = "${placeholder "out"}/libexec/podman"; # used in buildPhase & installPhase PREFIX = "${placeholder "out"}"; + GOMD2MAN = "${buildPackages.go-md2man}/bin/go-md2man"; }; buildPhase = '' From 23236b331d061aa07dc328c706b1b22fd95b27db Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Sun, 14 Dec 2025 07:22:20 +0000 Subject: [PATCH 057/101] fetchurl: fix handling of fallback URLs Without the change fallback to `urls = []` does not work as `$urls` evaluates on ony first entry. Use `${urls[@]}` instead. Example derivation that is fixed in `master` is `xterm.src`: Before: $ nix build --no-link -f. xterm.src --rebuild -L xterm> structuredAttrs is enabled ... xterm> trying ftp://ftp.invisible-island.net/xterm/xterm-403.tgz ... xterm> curl: (67) Access denied: 550 xterm> error: cannot download xterm-403.tgz from any mirror After: $ nix build --no-link -f. xterm.src --rebuild -L xterm> structuredAttrs is enabled ... xterm> trying ftp://ftp.invisible-island.net/xterm/xterm-403.tgz ... xterm> curl: (67) Access denied: 550 ... xterm> trying https://invisible-mirror.net/archives/xterm/xterm-403.tgz xterm> % Total % Received % Xferd Average Speed Time Time Time Current xterm> Dload Upload Total Spent Left Speed xterm> 100 1577k 100 1577k 0 0 703670 0 0:00:02 0:00:02 --:--:-- 703866 --- pkgs/build-support/fetchurl/builder.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/build-support/fetchurl/builder.sh b/pkgs/build-support/fetchurl/builder.sh index 44ac80737bc0..ae6c372208e1 100644 --- a/pkgs/build-support/fetchurl/builder.sh +++ b/pkgs/build-support/fetchurl/builder.sh @@ -109,7 +109,7 @@ tryHashedMirrors() { set -o noglob urls2= -for url in $urls; do +for url in "${urls[@]}"; do if test "${url:0:9}" != "mirror://"; then urls2="$urls2 $url" else From a0f797952508bd790a03213addc592d0d51b34c6 Mon Sep 17 00:00:00 2001 From: DarkOnion0 Date: Sun, 14 Dec 2025 10:25:13 +0100 Subject: [PATCH 058/101] appflowy: 0.10.4 -> 0.10.6 https://github.com/AppFlowy-IO/AppFlowy/releases/tag/0.10.6 --- pkgs/by-name/ap/appflowy/package.nix | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ap/appflowy/package.nix b/pkgs/by-name/ap/appflowy/package.nix index 6565c8c0a8af..5b4e4edff427 100644 --- a/pkgs/by-name/ap/appflowy/package.nix +++ b/pkgs/by-name/ap/appflowy/package.nix @@ -10,6 +10,7 @@ xdg-user-dirs, keybinder3, libnotify, + gst_all_1, }: let @@ -17,11 +18,11 @@ let rec { x86_64-linux = { urlSuffix = "linux-x86_64.tar.gz"; - hash = "sha256-HXBRWQfdhlKmOOULdRELrGcxVVhKV+PvgtRHW1yU6+I="; + hash = "sha256-87mauW50ccOaPyK04O4I7+0bsvxVrdFxhi/Muc53wDY="; }; x86_64-darwin = { urlSuffix = "macos-universal.zip"; - hash = "sha256-Mv4HfG93+NpbMAhDwcXZ260APL+sbYM6C+DqGZr6ogU="; + hash = "sha256-a1WhOQ8NU3/aGAdaw8o3y7ckRdBsNgLZZ2nOrMsQdOA="; }; aarch64-darwin = x86_64-darwin; } @@ -30,7 +31,7 @@ let in stdenvNoCC.mkDerivation (finalAttrs: { pname = "appflowy"; - version = "0.10.4"; + version = "0.10.6"; src = fetchzip { url = "https://github.com/AppFlowy-IO/appflowy/releases/download/${finalAttrs.version}/AppFlowy-${finalAttrs.version}-${dist.urlSuffix}"; @@ -48,6 +49,8 @@ stdenvNoCC.mkDerivation (finalAttrs: { gtk3 keybinder3 libnotify + gst_all_1.gstreamer + gst_all_1.gst-plugins-base ]; dontBuild = true; From 4a3be147d05f65c830d75ec6af9ab9733f976f09 Mon Sep 17 00:00:00 2001 From: utopiatopia <98685984+utopiatopia@users.noreply.github.com> Date: Sun, 14 Dec 2025 01:31:04 -0800 Subject: [PATCH 059/101] auto-editor: fix checks --- pkgs/by-name/au/auto-editor/package.nix | 31 +++++++++++-------------- 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/pkgs/by-name/au/auto-editor/package.nix b/pkgs/by-name/au/auto-editor/package.nix index 0f4d53d5e79b..4083ec87315a 100644 --- a/pkgs/by-name/au/auto-editor/package.nix +++ b/pkgs/by-name/au/auto-editor/package.nix @@ -19,8 +19,6 @@ python3, python3Packages, - nimble, - nim, }: buildNimPackage rec { @@ -71,26 +69,23 @@ buildNimPackage rec { --replace-fail '"main=auto-editor"' '"main"' ''; - # TODO: Fix checks - /* - nativeCheckInputs = [ - python3Packages.av - python3 - ]; + nativeCheckInputs = [ + python3 + python3Packages.av + ]; - checkPhase = '' - runHook preCheck + checkPhase = '' + runHook preCheck - nim c \ - ${if withHEVC then "-d:enable_hevc" else ""} \ - ${if withWhisper then "-d:enable_whisper" else ""} \ - -r $src/src/rationals + eval "nim r --nimcache:$NIX_BUILD_TOP/nimcache $nimFlags $src/tests/rationals.nim" - python3 $src/tests/test.py + substituteInPlace tests/test.py \ + --replace-fail '"./auto-editor"' "\"$out/bin/main\"" - runHook postCheck - ''; - */ + python3 tests/test.py + + runHook postCheck + ''; postInstall = '' mv $out/bin/main $out/bin/auto-editor From d65d092d2f439b00fdbaa9cce5756e16fe62a492 Mon Sep 17 00:00:00 2001 From: r-vdp Date: Sun, 14 Dec 2025 12:00:28 +0100 Subject: [PATCH 060/101] nitrokey: relax hidapi python dep to fix build I tested the functionality with my nitrokey 3 and everything seems to work well. --- pkgs/development/python-modules/nitrokey/default.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/nitrokey/default.nix b/pkgs/development/python-modules/nitrokey/default.nix index 57c75076d633..493a29bece23 100644 --- a/pkgs/development/python-modules/nitrokey/default.nix +++ b/pkgs/development/python-modules/nitrokey/default.nix @@ -1,7 +1,6 @@ { lib, buildPythonPackage, - pythonOlder, fetchPypi, poetry-core, cryptography, @@ -25,7 +24,10 @@ buildPythonPackage rec { hash = "sha256-m351pDLMuZaddbUqJz5r/ljz/vVq+RBDGk4xskc3HCk="; }; - pythonRelaxDeps = [ "protobuf" ]; + pythonRelaxDeps = [ + "protobuf" + "hidapi" + ]; build-system = [ poetry-core ]; From 59d0d515359151a4a61b84ecd6bffb2d47fef4a5 Mon Sep 17 00:00:00 2001 From: thesn10 <38666407+thesn10@users.noreply.github.com> Date: Sun, 14 Dec 2025 13:17:41 +0100 Subject: [PATCH 061/101] arduino-create-agent: use go 1.24 --- pkgs/by-name/ar/arduino-create-agent/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ar/arduino-create-agent/package.nix b/pkgs/by-name/ar/arduino-create-agent/package.nix index 093eee137e65..4b5883ffc5d6 100644 --- a/pkgs/by-name/ar/arduino-create-agent/package.nix +++ b/pkgs/by-name/ar/arduino-create-agent/package.nix @@ -1,12 +1,12 @@ { lib, stdenv, - buildGoModule, + buildGo124Module, fetchFromGitHub, go-task, }: -buildGoModule rec { +buildGo124Module rec { pname = "arduino-create-agent"; version = "1.7.0"; From b958eea3329f2cd719cadacf2b43ed20aeeca4ec Mon Sep 17 00:00:00 2001 From: Mathias Zhang Date: Sun, 14 Dec 2025 20:26:28 +0800 Subject: [PATCH 062/101] flaca: 3.4.2 -> 3.5.3 --- pkgs/by-name/fl/flaca/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/fl/flaca/package.nix b/pkgs/by-name/fl/flaca/package.nix index 6db3eb49b0e9..18bba90c1a25 100644 --- a/pkgs/by-name/fl/flaca/package.nix +++ b/pkgs/by-name/fl/flaca/package.nix @@ -7,18 +7,18 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "flaca"; - version = "3.4.2"; + version = "3.5.3"; lockFile = fetchurl { url = "https://github.com/Blobfolio/flaca/releases/download/v${finalAttrs.version}/Cargo.lock"; - hash = "sha256-6SpIqz/iLGVvOkwfiTcvf2EdlbVafQ+aHVc7taYLPDc="; + hash = "sha256-NNeq8qr+z0s98mgFYyUu9aNRqaAi2CZfQx0vQzSzOc8="; }; src = fetchFromGitHub { owner = "Blobfolio"; repo = "flaca"; tag = "v${finalAttrs.version}"; - hash = "sha256-9fD+nfSe0Rk06d+o3hnMH2lC6OAFa10gDNiDW57lSTg="; + hash = "sha256-Fh+nWnAG87NL3scr/y2jCNqaeJtEwi4nCYTGwnmEsIQ="; }; postUnpack = '' @@ -27,7 +27,7 @@ rustPlatform.buildRustPackage (finalAttrs: { nativeBuildInputs = [ rustPlatform.bindgenHook ]; - cargoHash = "sha256-LVY1+Nvcy7WoJ7Bsf1rgrdTzLMRqpquDXD8X3X8jX20="; + cargoHash = "sha256-yHkUsxJppHhIpgX7Vtrs8TCy43xaNpqoVkMZ0msr02k="; meta = { description = "CLI tool to losslessly compress JPEG and PNG images"; From 6fb563c61f9b772e7dbf21b894936fffe35b656d Mon Sep 17 00:00:00 2001 From: Heinz Deinhart Date: Sun, 14 Dec 2025 17:02:52 +0100 Subject: [PATCH 063/101] ddnet: 19.5 -> 19.6 https://ddnet.org/downloads/#19.6 https://github.com/ddnet/ddnet/compare/19.5...19.6 --- pkgs/by-name/dd/ddnet/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/dd/ddnet/package.nix b/pkgs/by-name/dd/ddnet/package.nix index a718b1c19582..faec95dc4e5d 100644 --- a/pkgs/by-name/dd/ddnet/package.nix +++ b/pkgs/by-name/dd/ddnet/package.nix @@ -32,13 +32,13 @@ stdenv.mkDerivation rec { pname = "ddnet"; - version = "19.5"; + version = "19.6"; src = fetchFromGitHub { owner = "ddnet"; repo = "ddnet"; tag = version; - hash = "sha256-L9n6jvI9rzrBp8yzKQPZRBSbT5/ZnEm6eLW6qMA+sy0="; + hash = "sha256-U0Yd3Xus0hsBpbXUsEC7EyoMtmsOXZJT4c3cFai918g="; }; cargoDeps = rustPlatform.fetchCargoVendor { From 4ef5c0c32dfb762d09ae1982eed3129359503f5c Mon Sep 17 00:00:00 2001 From: Taeer Bar-Yam Date: Sun, 14 Dec 2025 17:38:37 +0100 Subject: [PATCH 064/101] linphone: fix sdk hash --- .../networking/instant-messengers/linphone/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/networking/instant-messengers/linphone/default.nix b/pkgs/applications/networking/instant-messengers/linphone/default.nix index 41273eb64b05..bd20ef145db2 100644 --- a/pkgs/applications/networking/instant-messengers/linphone/default.nix +++ b/pkgs/applications/networking/instant-messengers/linphone/default.nix @@ -9,7 +9,7 @@ makeScopeWithSplicing' { mkLinphoneDerivation = self.mk-linphone-derivation; linphoneSdkVersion = "5.4.67"; - linphoneSdkHash = "sha256-QM4EVm7VJeOTt5Dc4DFAJOrGphCRcGniN0Tnfl4zab8="; + linphoneSdkHash = "sha256-YG+GF6En1r8AYoIj7E5hqPcmXidMmO0ZKVx/YC5w55I="; }; f = self: From 5a8f3c2ef761904902a05218efb58767de5ae700 Mon Sep 17 00:00:00 2001 From: kyehn <228304369+kyehn@users.noreply.github.com> Date: Sun, 14 Dec 2025 17:58:57 +0000 Subject: [PATCH 065/101] dart.pdfium_flutter: init --- .../dart/package-source-builders/default.nix | 1 + .../pdfium_flutter/default.nix | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 pkgs/development/compilers/dart/package-source-builders/pdfium_flutter/default.nix diff --git a/pkgs/development/compilers/dart/package-source-builders/default.nix b/pkgs/development/compilers/dart/package-source-builders/default.nix index 2f9d42b27b75..1e7ba16b09a2 100644 --- a/pkgs/development/compilers/dart/package-source-builders/default.nix +++ b/pkgs/development/compilers/dart/package-source-builders/default.nix @@ -11,6 +11,7 @@ matrix = callPackage ./matrix { }; media_kit_libs_linux = callPackage ./media_kit_libs_linux { }; olm = callPackage ./olm { }; + pdfium_flutter = callPackage ./pdfium_flutter { }; pdfrx = callPackage ./pdfrx { }; printing = callPackage ./printing { }; rhttp = callPackage ./rhttp { }; diff --git a/pkgs/development/compilers/dart/package-source-builders/pdfium_flutter/default.nix b/pkgs/development/compilers/dart/package-source-builders/pdfium_flutter/default.nix new file mode 100644 index 000000000000..76a43f24c9a9 --- /dev/null +++ b/pkgs/development/compilers/dart/package-source-builders/pdfium_flutter/default.nix @@ -0,0 +1,25 @@ +{ + stdenv, + pdfium-binaries, +}: + +{ version, src, ... }: + +stdenv.mkDerivation { + pname = "pdfium_flutter"; + inherit version src; + inherit (src) passthru; + + postPatch = '' + substituteInPlace linux/CMakeLists.txt \ + --replace-fail "\''${PDFIUM_DIR}/\''${PDFIUM_RELEASE}" "${pdfium-binaries}" + ''; + + installPhase = '' + runHook preInstall + + cp --recursive . $out + + runHook postInstall + ''; +} From a09d6863bf48817da0d1b1b0be51be38c5948032 Mon Sep 17 00:00:00 2001 From: kyehn <228304369+kyehn@users.noreply.github.com> Date: Sun, 14 Dec 2025 17:59:09 +0000 Subject: [PATCH 066/101] dart.pdfrx: support 2.2.9 --- .../dart/package-source-builders/pdfrx/default.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/development/compilers/dart/package-source-builders/pdfrx/default.nix b/pkgs/development/compilers/dart/package-source-builders/pdfrx/default.nix index bf8d5b92a7d1..9de8f332afdd 100644 --- a/pkgs/development/compilers/dart/package-source-builders/pdfrx/default.nix +++ b/pkgs/development/compilers/dart/package-source-builders/pdfrx/default.nix @@ -1,25 +1,25 @@ { + lib, stdenv, pdfium-binaries, }: { version, src, ... }: -stdenv.mkDerivation rec { +stdenv.mkDerivation { pname = "pdfrx"; inherit version src; inherit (src) passthru; - postPatch = '' + postPatch = lib.optionalString (lib.versionOlder version "2.2.9") '' substituteInPlace linux/CMakeLists.txt \ - --replace-fail "\''${PDFIUM_DIR}/\''${PDFIUM_RELEASE}" "${pdfium-binaries}" + --replace-fail "\''${PDFIUM_DIR}/\''${PDFIUM_RELEASE}" "${pdfium-binaries}" ''; installPhase = '' runHook preInstall - mkdir $out - cp -a ./* $out/ + cp --recursive . $out runHook postInstall ''; From 19741cfd60815167c0e387def06d61d4050212de Mon Sep 17 00:00:00 2001 From: kyehn <228304369+kyehn@users.noreply.github.com> Date: Sun, 14 Dec 2025 17:59:22 +0000 Subject: [PATCH 067/101] saber: 0.26.10 -> 1.29.1 --- pkgs/by-name/sa/saber/git-hashes.json | 3 +- pkgs/by-name/sa/saber/package.nix | 8 +- pkgs/by-name/sa/saber/pubspec.lock.json | 565 ++++++++++++++++-------- 3 files changed, 397 insertions(+), 179 deletions(-) diff --git a/pkgs/by-name/sa/saber/git-hashes.json b/pkgs/by-name/sa/saber/git-hashes.json index caa97b756568..3ee14f88f491 100644 --- a/pkgs/by-name/sa/saber/git-hashes.json +++ b/pkgs/by-name/sa/saber/git-hashes.json @@ -1,5 +1,4 @@ { "flutter_secure_storage_linux": "sha256-cFNHW7dAaX8BV7arwbn68GgkkBeiAgPfhMOAFSJWlyY=", - "receive_sharing_intent": "sha256-8D5ZENARPZ7FGrdIErxOoV3Ao35/XoQ2tleegI42ZUY=", - "yaru": "sha256-1sx2jtU6TXtzdGQn14dGZUszxqRBAEJkuEM5mDG7cR4=" + "receive_sharing_intent": "sha256-8D5ZENARPZ7FGrdIErxOoV3Ao35/XoQ2tleegI42ZUY=" } diff --git a/pkgs/by-name/sa/saber/package.nix b/pkgs/by-name/sa/saber/package.nix index 4f87c815fd7c..cb8665cc7711 100644 --- a/pkgs/by-name/sa/saber/package.nix +++ b/pkgs/by-name/sa/saber/package.nix @@ -1,6 +1,6 @@ { lib, - flutter335, + flutter338, fetchFromGitHub, gst_all_1, libunwind, @@ -24,16 +24,16 @@ let ln -s ${zlib}/lib $out/lib ''; - version = "0.26.10"; + version = "1.29.1"; src = fetchFromGitHub { owner = "saber-notes"; repo = "saber"; tag = "v${version}"; - hash = "sha256-PmkhIyRbRWp+ZujP8R1/h7NpKwYsaKx4JtYIikZjVzc="; + hash = "sha256-+hqZQQtuNsyAIUKb0fydSnRTqc8EGVxWRtGubccsK2w="; }; in -flutter335.buildFlutterApplication { +flutter338.buildFlutterApplication { pname = "saber"; inherit version src; diff --git a/pkgs/by-name/sa/saber/pubspec.lock.json b/pkgs/by-name/sa/saber/pubspec.lock.json index 68d4c3d117c2..4589956cb45c 100644 --- a/pkgs/by-name/sa/saber/pubspec.lock.json +++ b/pkgs/by-name/sa/saber/pubspec.lock.json @@ -1,5 +1,15 @@ { "packages": { + "_fe_analyzer_shared": { + "dependency": "transitive", + "description": { + "name": "_fe_analyzer_shared", + "sha256": "c209688d9f5a5f26b2fb47a188131a6fb9e876ae9e47af3737c0b4f58a93470d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "91.0.0" + }, "abstract_sync": { "dependency": "direct main", "description": { @@ -10,6 +20,16 @@ "source": "hosted", "version": "1.3.1" }, + "analyzer": { + "dependency": "transitive", + "description": { + "name": "analyzer", + "sha256": "f51c8499b35f9b26820cfe914828a6a98a94efd5cc78b37bb7d03debae3a1d08", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "8.4.1" + }, "animated_vector": { "dependency": "transitive", "description": { @@ -34,11 +54,11 @@ "dependency": "direct main", "description": { "name": "animations", - "sha256": "d3d6dcfb218225bbe68e87ccf6378bbb2e32a94900722c5f81611dad089911cb", + "sha256": "18938cefd7dcc04e1ecac0db78973761a01e4bc2d6bfae0cfa596bfeac9e96ab", "url": "https://pub.dev" }, "source": "hosted", - "version": "2.0.11" + "version": "2.1.1" }, "ansicolor": { "dependency": "transitive", @@ -100,75 +120,15 @@ "source": "hosted", "version": "2.13.0" }, - "audioplayers": { + "background_downloader": { "dependency": "direct main", "description": { - "name": "audioplayers", - "sha256": "5441fa0ceb8807a5ad701199806510e56afde2b4913d9d17c2f19f2902cf0ae4", + "name": "background_downloader", + "sha256": "a3b340e42bc45598918944e378dc6a05877e587fcd0e1b8d2ea26339de87bdf9", "url": "https://pub.dev" }, "source": "hosted", - "version": "6.5.1" - }, - "audioplayers_android": { - "dependency": "transitive", - "description": { - "name": "audioplayers_android", - "sha256": "60a6728277228413a85755bd3ffd6fab98f6555608923813ce383b190a360605", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "5.2.1" - }, - "audioplayers_darwin": { - "dependency": "transitive", - "description": { - "name": "audioplayers_darwin", - "sha256": "0811d6924904ca13f9ef90d19081e4a87f7297ddc19fc3d31f60af1aaafee333", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "6.3.0" - }, - "audioplayers_linux": { - "dependency": "transitive", - "description": { - "name": "audioplayers_linux", - "sha256": "f75bce1ce864170ef5e6a2c6a61cd3339e1a17ce11e99a25bae4474ea491d001", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "4.2.1" - }, - "audioplayers_platform_interface": { - "dependency": "transitive", - "description": { - "name": "audioplayers_platform_interface", - "sha256": "0e2f6a919ab56d0fec272e801abc07b26ae7f31980f912f24af4748763e5a656", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "7.1.1" - }, - "audioplayers_web": { - "dependency": "transitive", - "description": { - "name": "audioplayers_web", - "sha256": "1c0f17cec68455556775f1e50ca85c40c05c714a99c5eb1d2d57cc17ba5522d7", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "5.1.1" - }, - "audioplayers_windows": { - "dependency": "transitive", - "description": { - "name": "audioplayers_windows", - "sha256": "4048797865105b26d47628e6abb49231ea5de84884160229251f37dfcbe52fd7", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "4.2.1" + "version": "9.4.0" }, "barcode": { "dependency": "transitive", @@ -224,11 +184,11 @@ "dependency": "transitive", "description": { "name": "built_value", - "sha256": "a30f0a0e38671e89a492c44d005b5545b830a961575bbd8336d42869ff71066d", + "sha256": "426cf75afdb23aa74bd4e471704de3f9393f3c7b04c1e2d9c6f1073ae0b8b139", "url": "https://pub.dev" }, "source": "hosted", - "version": "8.12.0" + "version": "8.12.1" }, "chalkdart": { "dependency": "transitive", @@ -260,6 +220,36 @@ "source": "hosted", "version": "1.4.0" }, + "checked_yaml": { + "dependency": "transitive", + "description": { + "name": "checked_yaml", + "sha256": "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.4" + }, + "cli_config": { + "dependency": "transitive", + "description": { + "name": "cli_config", + "sha256": "ac20a183a07002b700f0c25e61b7ee46b23c309d76ab7b7640a028f18e4d99ec", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.2.0" + }, + "cli_util": { + "dependency": "transitive", + "description": { + "name": "cli_util", + "sha256": "ff6785f7e9e3c38ac98b2fb035701789de90154024a75b6cb926445e83197d1c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.4.2" + }, "clock": { "dependency": "transitive", "description": { @@ -300,25 +290,35 @@ "source": "hosted", "version": "3.1.2" }, + "coverage": { + "dependency": "transitive", + "description": { + "name": "coverage", + "sha256": "5da775aa218eaf2151c721b16c01c7676fbfdd99cebba2bf64e8b807a28ff94d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.15.0" + }, "cross_file": { "dependency": "transitive", "description": { "name": "cross_file", - "sha256": "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670", + "sha256": "701dcfc06da0882883a2657c445103380e53e647060ad8d9dfb710c100996608", "url": "https://pub.dev" }, "source": "hosted", - "version": "0.3.4+2" + "version": "0.3.5+1" }, "crypto": { "dependency": "direct main", "description": { "name": "crypto", - "sha256": "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855", + "sha256": "c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf", "url": "https://pub.dev" }, "source": "hosted", - "version": "3.0.6" + "version": "3.0.7" }, "crypton": { "dependency": "transitive", @@ -364,11 +364,11 @@ "dependency": "transitive", "description": { "name": "dart_pubspec_licenses", - "sha256": "fafb90d50c182dd3d4f441c6aea75baff1e5311aab2f6430d3f40f6e3a1f5885", + "sha256": "c3dd75f25ef705d4e8ab09f07afc7a83a80f5635eea11ea2d7b2b4600588b302", "url": "https://pub.dev" }, "source": "hosted", - "version": "3.0.12" + "version": "3.0.14" }, "dart_quill_delta": { "dependency": "transitive", @@ -534,41 +534,41 @@ "dependency": "direct main", "description": { "name": "file_picker", - "sha256": "f2d9f173c2c14635cc0e9b14c143c49ef30b4934e8d1d274d6206fcb0086a06f", + "sha256": "7872545770c277236fd32b022767576c562ba28366204ff1a5628853cf8f2200", "url": "https://pub.dev" }, "source": "hosted", - "version": "10.3.3" + "version": "10.3.7" }, "file_selector_linux": { "dependency": "transitive", "description": { "name": "file_selector_linux", - "sha256": "54cbbd957e1156d29548c7d9b9ec0c0ebb6de0a90452198683a7d23aed617a33", + "sha256": "2567f398e06ac72dcf2e98a0c95df2a9edd03c2c2e0cacd4780f20cdf56263a0", "url": "https://pub.dev" }, "source": "hosted", - "version": "0.9.3+2" + "version": "0.9.4" }, "file_selector_platform_interface": { "dependency": "transitive", "description": { "name": "file_selector_platform_interface", - "sha256": "a3994c26f10378a039faa11de174d7b78eb8f79e4dd0af2a451410c1a5c3f66b", + "sha256": "35e0bd61ebcdb91a3505813b055b09b79dfdc7d0aee9c09a7ba59ae4bb13dc85", "url": "https://pub.dev" }, "source": "hosted", - "version": "2.6.2" + "version": "2.7.0" }, "file_selector_windows": { "dependency": "transitive", "description": { "name": "file_selector_windows", - "sha256": "320fcfb6f33caa90f0b58380489fc5ac05d99ee94b61aa96ec2bff0ba81d3c2b", + "sha256": "62197474ae75893a62df75939c777763d39c2bc5f73ce5b88497208bc269abfd", "url": "https://pub.dev" }, "source": "hosted", - "version": "0.9.3+4" + "version": "0.9.3+5" }, "fixnum": { "dependency": "direct main", @@ -584,21 +584,21 @@ "dependency": "direct main", "description": { "name": "flex_color_picker", - "sha256": "8f753a1a026a13ea5cc5eddbae3ceb886f2537569ab2e5208efb1e3bb5af72ff", + "sha256": "a0979dd61f21b634717b98eb4ceaed2bfe009fe020ce8597aaf164b9eeb57aaa", "url": "https://pub.dev" }, "source": "hosted", - "version": "3.7.1" + "version": "3.8.0" }, "flex_seed_scheme": { "dependency": "transitive", "description": { "name": "flex_seed_scheme", - "sha256": "b06d8b367b84cbf7ca5c5603c858fa5edae88486c4e4da79ac1044d73b6c62ec", + "sha256": "a3183753bbcfc3af106224bff3ab3e1844b73f58062136b7499919f49f3667e7", "url": "https://pub.dev" }, "source": "hosted", - "version": "3.5.1" + "version": "4.0.1" }, "flutter": { "dependency": "direct main", @@ -692,21 +692,21 @@ "dependency": "transitive", "description": { "name": "flutter_plugin_android_lifecycle", - "sha256": "b0694b7fb1689b0e6cc193b3f1fcac6423c4f93c74fb20b806c6b6f196db0c31", + "sha256": "ee8068e0e1cd16c4a82714119918efdeed33b3ba7772c54b5d094ab53f9b7fd1", "url": "https://pub.dev" }, "source": "hosted", - "version": "2.0.30" + "version": "2.0.33" }, "flutter_quill": { "dependency": "direct main", "description": { "name": "flutter_quill", - "sha256": "8e33ef670abad16405582a37ce63ac82b7531998682e8bd8348d0f3da998b8ce", + "sha256": "b96bb8525afdeaaea52f5d02f525e05cc34acd176467ab6d6f35d434cf14fde2", "url": "https://pub.dev" }, "source": "hosted", - "version": "11.4.2" + "version": "11.5.0" }, "flutter_quill_delta_from_html": { "dependency": "transitive", @@ -722,21 +722,21 @@ "dependency": "direct main", "description": { "name": "flutter_secure_storage", - "sha256": "f7eceb0bc6f4fd0441e29d43cab9ac2a1c5ffd7ea7b64075136b718c46954874", + "sha256": "79d53f3393ac2b73bcba45317b6c1a29002f89c680225cdea0bd6770a1682ce0", "url": "https://pub.dev" }, "source": "hosted", - "version": "10.0.0-beta.4" + "version": "10.0.0-beta.5" }, "flutter_secure_storage_darwin": { "dependency": "transitive", "description": { "name": "flutter_secure_storage_darwin", - "sha256": "f226f2a572bed96bc6542198ebaec227150786e34311d455a7e2d3d06d951845", + "sha256": "81ef5abfb9cbeb78110d8043ba29f0b36cd7ffa989baa1b2d9482542b2200051", "url": "https://pub.dev" }, "source": "hosted", - "version": "0.1.0" + "version": "0.1.1" }, "flutter_secure_storage_linux": { "dependency": "direct overridden", @@ -803,11 +803,11 @@ "dependency": "direct main", "description": { "name": "flutter_svg", - "sha256": "b9c2ad5872518a27507ab432d1fb97e8813b05f0fc693f9d40fad06d073e0678", + "sha256": "87fbd7c534435b6c5d9d98b01e1fd527812b82e68ddd8bd35fc45ed0fa8f0a95", "url": "https://pub.dev" }, "source": "hosted", - "version": "2.2.1" + "version": "2.2.3" }, "flutter_test": { "dependency": "direct dev", @@ -845,11 +845,21 @@ "dependency": "direct main", "description": { "name": "font_awesome_flutter", - "sha256": "f50ce90dbe26d977415b9540400d6778bef00894aced6358ae578abd92b14b10", + "sha256": "b9011df3a1fa02993630b8fb83526368cf2206a711259830325bab2f1d2a4eb0", "url": "https://pub.dev" }, "source": "hosted", - "version": "10.9.0" + "version": "10.12.0" + }, + "frontend_server_client": { + "dependency": "transitive", + "description": { + "name": "frontend_server_client", + "sha256": "f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.0.0" }, "fuchsia_remote_debug_protocol": { "dependency": "transitive", @@ -881,21 +891,21 @@ "dependency": "direct main", "description": { "name": "go_router", - "sha256": "c752e2d08d088bf83742cb05bf83003f3e9d276ff1519b5c92f9d5e60e5ddd23", + "sha256": "c92d18e1fe994cb06d48aa786c46b142a5633067e8297cff6b5a3ac742620104", "url": "https://pub.dev" }, "source": "hosted", - "version": "16.2.4" + "version": "17.0.0" }, "golden_screenshot": { "dependency": "direct dev", "description": { "name": "golden_screenshot", - "sha256": "3cc52015a1acd506d4618ab7e863248f238f1230eaee2897cbbe8d86c3bba54c", + "sha256": "2bf16846c42e75a9eaed2aaf0ec0b53f3ba76332ebb3396fdfe085302f68854b", "url": "https://pub.dev" }, "source": "hosted", - "version": "5.0.0" + "version": "9.1.1" }, "gsettings": { "dependency": "transitive", @@ -931,11 +941,21 @@ "dependency": "direct main", "description": { "name": "http", - "sha256": "bb2ce4590bc2667c96f318d68cac1b5a7987ec819351d32b1c987239a815e007", + "sha256": "87721a4a50b19c7f1d49001e51409bddc46303966ce89a65af4f4e6004896412", "url": "https://pub.dev" }, "source": "hosted", - "version": "1.5.0" + "version": "1.6.0" + }, + "http_multi_server": { + "dependency": "transitive", + "description": { + "name": "http_multi_server", + "sha256": "aa6199f908078bb1c5efb8d8638d4ae191aac11b311132c3ef48ce352fb52ef8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.2.2" }, "http_parser": { "dependency": "transitive", @@ -993,6 +1013,16 @@ "source": "hosted", "version": "0.20.2" }, + "io": { + "dependency": "transitive", + "description": { + "name": "io", + "sha256": "dfd5a80599cf0165756e3181807ed3e77daf6dd4137caaad72d0b7931597650b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.5" + }, "irondash_engine_context": { "dependency": "transitive", "description": { @@ -1147,11 +1177,11 @@ "dependency": "direct main", "description": { "name": "material_symbols_icons", - "sha256": "9a7de58ffc299c8e362b4e860e36e1d198fa0981a894376fe1b6bfe52773e15b", + "sha256": "02555a48e1ec02b16e532dfd4ef13c4f6bf7ec7c20230e58e56641a393433dc3", "url": "https://pub.dev" }, "source": "hosted", - "version": "4.2874.0" + "version": "4.2892.0" }, "matrix4_transform": { "dependency": "transitive", @@ -1167,11 +1197,11 @@ "dependency": "direct main", "description": { "name": "meta", - "sha256": "e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c", + "sha256": "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394", "url": "https://pub.dev" }, "source": "hosted", - "version": "1.16.0" + "version": "1.17.0" }, "mime": { "dependency": "transitive", @@ -1213,6 +1243,16 @@ "source": "hosted", "version": "8.1.0" }, + "node_preamble": { + "dependency": "transitive", + "description": { + "name": "node_preamble", + "sha256": "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.2" + }, "objective_c": { "dependency": "transitive", "description": { @@ -1240,7 +1280,7 @@ "relative": true }, "source": "path", - "version": "1.2.5" + "version": "1.3.0" }, "open_file": { "dependency": "direct main", @@ -1362,6 +1402,16 @@ "source": "hosted", "version": "0.1.1" }, + "pana": { + "dependency": "transitive", + "description": { + "name": "pana", + "sha256": "bbad5a3e085fcc2475f08fe1240041e25d74482da80d9af00bc17cce99989e29", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.22.24" + }, "path": { "dependency": "direct main", "description": { @@ -1406,21 +1456,21 @@ "dependency": "transitive", "description": { "name": "path_provider_android", - "sha256": "993381400e94d18469750e5b9dcb8206f15bc09f9da86b9e44a9b0092a0066db", + "sha256": "f2c65e21139ce2c3dad46922be8272bb5963516045659e71bb16e151c93b580e", "url": "https://pub.dev" }, "source": "hosted", - "version": "2.2.18" + "version": "2.2.22" }, "path_provider_foundation": { "dependency": "transitive", "description": { "name": "path_provider_foundation", - "sha256": "16eef174aacb07e09c351502740fa6254c165757638eba1e9116b0a781201bbd", + "sha256": "6d13aece7b3f5c5a9731eaf553ff9dcbc2eff41087fd2df587fd0fed9a3eb0c4", "url": "https://pub.dev" }, "source": "hosted", - "version": "2.4.2" + "version": "2.5.1" }, "path_provider_linux": { "dependency": "transitive", @@ -1482,35 +1532,55 @@ "source": "hosted", "version": "1.0.4" }, + "pdfium_dart": { + "dependency": "transitive", + "description": { + "name": "pdfium_dart", + "sha256": "f1683b9070ddc5c9189c6ee008c285791da66328ce1b882c7162d3393f3a4a74", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.1.3" + }, + "pdfium_flutter": { + "dependency": "transitive", + "description": { + "name": "pdfium_flutter", + "sha256": "8b3f79c61a5e84f0ec43efb5708b42d032e72cb024244e050896eb5a31665ea5", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.1.7" + }, "pdfrx": { "dependency": "direct main", "description": { "name": "pdfrx", - "sha256": "e9663e265928dea8ef6f35fde4f9bbfbdafcb894feede38d4bf2b67394051a09", + "sha256": "40ab38d80af88ab58e9bab63a706a69f18f516fd0f1433f71833af236b159f42", "url": "https://pub.dev" }, "source": "hosted", - "version": "2.1.25" + "version": "2.2.16" }, "pdfrx_engine": { "dependency": "transitive", "description": { "name": "pdfrx_engine", - "sha256": "7327361eb4e63660996a16773b6f57120a267796431cd29d7d3b1150d51934de", + "sha256": "6b7810d0fdd467760bf8e0afafb67140971bf297c9f9b12add5b2033bb55064f", "url": "https://pub.dev" }, "source": "hosted", - "version": "0.1.21" + "version": "0.3.5" }, "perfect_freehand": { "dependency": "direct main", "description": { "name": "perfect_freehand", - "sha256": "399c16dc35a6eb1dee4d9a2c638ff0fe71ebb5e8980ab41261bf4306dafaa4af", + "sha256": "7a6a591832be33fe82d8ecab68562a794d39837af16e7413fe0ccebdd0c3e3c0", "url": "https://pub.dev" }, "source": "hosted", - "version": "2.5.0" + "version": "2.5.1" }, "permission_handler": { "dependency": "direct main", @@ -1632,6 +1702,16 @@ "source": "hosted", "version": "3.9.1" }, + "pool": { + "dependency": "transitive", + "description": { + "name": "pool", + "sha256": "978783255c543aa3586a1b3c21f6e9d720eb315376a915872c61ef8b5c20177d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.5.2" + }, "posix": { "dependency": "transitive", "description": { @@ -1702,6 +1782,16 @@ "source": "hosted", "version": "2.2.0" }, + "pubspec_parse": { + "dependency": "transitive", + "description": { + "name": "pubspec_parse", + "sha256": "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.5.0" + }, "qr": { "dependency": "transitive", "description": { @@ -1833,6 +1923,16 @@ "source": "hosted", "version": "2.0.0+1" }, + "retry": { + "dependency": "transitive", + "description": { + "name": "retry", + "sha256": "822e118d5b3aafed083109c72d5f484c6dc66707885e07c0fbcb8b986bba7efc", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.2" + }, "rxdart": { "dependency": "transitive", "description": { @@ -1843,15 +1943,25 @@ "source": "hosted", "version": "0.28.0" }, + "safe_url_check": { + "dependency": "transitive", + "description": { + "name": "safe_url_check", + "sha256": "49a3e060a7869cbafc8f4845ca1ecbbaaa53179980a32f4fdfeab1607e90f41d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.2" + }, "saver_gallery": { "dependency": "direct main", "description": { "name": "saver_gallery", - "sha256": "bf59475e50b73d666630bed7a5fdb621fed92d637f64e3c61ce81653ec6a833c", + "sha256": "1d942bd7f4fedc162d9a751e156ebac592e4b81fc2e757af82de9077f3437003", "url": "https://pub.dev" }, "source": "hosted", - "version": "4.0.1" + "version": "4.1.0" }, "screen_retriever": { "dependency": "transitive", @@ -1917,51 +2027,51 @@ "dependency": "transitive", "description": { "name": "sentry", - "sha256": "0a3a1e6b3b3873070d4dbefc6968f0d31e698ed55b4eb8ee185b230f35733b59", + "sha256": "10a0bc25f5f21468e3beeae44e561825aaa02cdc6829438e73b9b64658ff88d9", "url": "https://pub.dev" }, "source": "hosted", - "version": "9.7.0" + "version": "9.8.0" }, "sentry_dart_plugin": { "dependency": "direct dev", "description": { "name": "sentry_dart_plugin", - "sha256": "8c0c9fe19368890381101f5000759b2ae203a0bf6158a25584b55d197e847f53", + "sha256": "4b25aa60b5cbb46bb23859ac9212c4de5b22e2b3bc3fecbcd611756ada8973b5", "url": "https://pub.dev" }, "source": "hosted", - "version": "3.1.1" + "version": "3.2.0" }, "sentry_flutter": { "dependency": "direct main", "description": { "name": "sentry_flutter", - "sha256": "493b4adb378dfc93fb1595acca91834bbf56194a9038c400c9306588ad6a2f88", + "sha256": "aafbf41c63c98a30b17bdbf3313424d5102db62b08735c44bff810f277e786a5", "url": "https://pub.dev" }, "source": "hosted", - "version": "9.7.0" + "version": "9.8.0" }, "sentry_logging": { "dependency": "direct main", "description": { "name": "sentry_logging", - "sha256": "d6a51795c5643a40928f77424dd2bd28a9a58f7c527d3f8d5e001c54ee98c51a", + "sha256": "1ff2f99a9e8289c06e40ec35e63370b8eece091e956529315e221c5867593d99", "url": "https://pub.dev" }, "source": "hosted", - "version": "9.7.0" + "version": "9.8.0" }, "share_plus": { "dependency": "direct main", "description": { "name": "share_plus", - "sha256": "3424e9d5c22fd7f7590254ba09465febd6f8827c8b19a44350de4ac31d92d3a6", + "sha256": "14c8860d4de93d3a7e53af51bff479598c4e999605290756bbbe45cf65b37840", "url": "https://pub.dev" }, "source": "hosted", - "version": "12.0.0" + "version": "12.0.1" }, "share_plus_platform_interface": { "dependency": "transitive", @@ -1987,21 +2097,21 @@ "dependency": "transitive", "description": { "name": "shared_preferences_android", - "sha256": "0b0f98d535319cb5cdd4f65783c2a54ee6d417a2f093dbb18be3e36e4c3d181f", + "sha256": "83af5c682796c0f7719c2bbf74792d113e40ae97981b8f266fa84574573556bc", "url": "https://pub.dev" }, "source": "hosted", - "version": "2.4.14" + "version": "2.4.18" }, "shared_preferences_foundation": { "dependency": "transitive", "description": { "name": "shared_preferences_foundation", - "sha256": "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03", + "sha256": "4e7eaffc2b17ba398759f1151415869a34771ba11ebbccd1b0145472a619a64f", "url": "https://pub.dev" }, "source": "hosted", - "version": "2.5.4" + "version": "2.5.6" }, "shared_preferences_linux": { "dependency": "transitive", @@ -2043,6 +2153,46 @@ "source": "hosted", "version": "2.4.1" }, + "shelf": { + "dependency": "transitive", + "description": { + "name": "shelf", + "sha256": "e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.4.2" + }, + "shelf_packages_handler": { + "dependency": "transitive", + "description": { + "name": "shelf_packages_handler", + "sha256": "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.2" + }, + "shelf_static": { + "dependency": "transitive", + "description": { + "name": "shelf_static", + "sha256": "c87c3875f91262785dade62d135760c2c69cb217ac759485334c5857ad89f6e3", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.3" + }, + "shelf_web_socket": { + "dependency": "transitive", + "description": { + "name": "shelf_web_socket", + "sha256": "3632775c8e90d6c9712f883e633716432a27758216dfb61bd86a8321c0580925", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.0" + }, "simplytranslate": { "dependency": "direct dev", "description": { @@ -2063,21 +2213,41 @@ "dependency": "direct main", "description": { "name": "slang", - "sha256": "47182d10ce284e232f25a02eb74a421a11e7eb6a6fab9ab84fd8182bb0761130", + "sha256": "263159a93864a13a0f2486326e200cb38214a8e82a3c83a48c20ac24a8eed329", "url": "https://pub.dev" }, "source": "hosted", - "version": "4.9.0" + "version": "4.11.1" }, "slang_flutter": { "dependency": "direct main", "description": { "name": "slang_flutter", - "sha256": "5ecf841d6252c05ea335920ec299bb7edbb860eb793eebb4b40f68b9d148a571", + "sha256": "a6ebc0a855faa62053f44d333ae3b3cde24945357e88506d1d3e7fb0d3fc0c70", "url": "https://pub.dev" }, "source": "hosted", - "version": "4.9.0" + "version": "4.11.0" + }, + "source_map_stack_trace": { + "dependency": "transitive", + "description": { + "name": "source_map_stack_trace", + "sha256": "c0713a43e323c3302c2abe2a1cc89aa057a387101ebd280371d6a6c9fa68516b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.2" + }, + "source_maps": { + "dependency": "transitive", + "description": { + "name": "source_maps", + "sha256": "190222579a448b03896e0ca6eca5998fa810fda630c1d65e2f78b3f638f54812", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.10.13" }, "source_span": { "dependency": "transitive", @@ -2089,16 +2259,6 @@ "source": "hosted", "version": "1.10.1" }, - "sprintf": { - "dependency": "transitive", - "description": { - "name": "sprintf", - "sha256": "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "7.0.0" - }, "stack_trace": { "dependency": "transitive", "description": { @@ -2219,6 +2379,16 @@ "source": "hosted", "version": "4.1.0" }, + "tar": { + "dependency": "transitive", + "description": { + "name": "tar", + "sha256": "b338bacfd24dae6cf527acb4242003a71fc88ce183a9002376fabbc4ebda30c9", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.2" + }, "term_glyph": { "dependency": "transitive", "description": { @@ -2229,15 +2399,35 @@ "source": "hosted", "version": "1.2.2" }, + "test": { + "dependency": "transitive", + "description": { + "name": "test", + "sha256": "75906bf273541b676716d1ca7627a17e4c4070a3a16272b7a3dc7da3b9f3f6b7", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.26.3" + }, "test_api": { "dependency": "transitive", "description": { "name": "test_api", - "sha256": "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00", + "sha256": "ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55", "url": "https://pub.dev" }, "source": "hosted", - "version": "0.7.6" + "version": "0.7.7" + }, + "test_core": { + "dependency": "transitive", + "description": { + "name": "test_core", + "sha256": "0cc24b5ff94b38d2ae73e1eb43cc302b77964fbf67abad1e296025b78deb53d0", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.6.12" }, "timezone": { "dependency": "transitive", @@ -2263,11 +2453,11 @@ "dependency": "transitive", "description": { "name": "universal_io", - "sha256": "1722b2dcc462b4b2f3ee7d188dad008b6eb4c40bbd03a3de451d82c78bba9aad", + "sha256": "f63cbc48103236abf48e345e07a03ce5757ea86285ed313a6a032596ed9301e2", "url": "https://pub.dev" }, "source": "hosted", - "version": "2.2.2" + "version": "2.3.1" }, "uri": { "dependency": "transitive", @@ -2293,41 +2483,41 @@ "dependency": "transitive", "description": { "name": "url_launcher_android", - "sha256": "c0fb544b9ac7efa10254efaf00a951615c362d1ea1877472f8f6c0fa00fcf15b", + "sha256": "767344bf3063897b5cf0db830e94f904528e6dd50a6dfaf839f0abf509009611", "url": "https://pub.dev" }, "source": "hosted", - "version": "6.3.23" + "version": "6.3.28" }, "url_launcher_ios": { "dependency": "transitive", "description": { "name": "url_launcher_ios", - "sha256": "d80b3f567a617cb923546034cc94bfe44eb15f989fe670b37f26abdb9d939cb7", + "sha256": "cfde38aa257dae62ffe79c87fab20165dfdf6988c1d31b58ebf59b9106062aad", "url": "https://pub.dev" }, "source": "hosted", - "version": "6.3.4" + "version": "6.3.6" }, "url_launcher_linux": { "dependency": "transitive", "description": { "name": "url_launcher_linux", - "sha256": "4e9ba368772369e3e08f231d2301b4ef72b9ff87c31192ef471b380ef29a4935", + "sha256": "d5e14138b3bc193a0f63c10a53c94b91d399df0512b1f29b94a043db7482384a", "url": "https://pub.dev" }, "source": "hosted", - "version": "3.2.1" + "version": "3.2.2" }, "url_launcher_macos": { "dependency": "transitive", "description": { "name": "url_launcher_macos", - "sha256": "c043a77d6600ac9c38300567f33ef12b0ef4f4783a2c1f00231d2b1941fea13f", + "sha256": "368adf46f71ad3c21b8f06614adb38346f193f3a59ba8fe9a2fd74133070ba18", "url": "https://pub.dev" }, "source": "hosted", - "version": "3.2.3" + "version": "3.2.5" }, "url_launcher_platform_interface": { "dependency": "transitive", @@ -2353,21 +2543,21 @@ "dependency": "transitive", "description": { "name": "url_launcher_windows", - "sha256": "3284b6d2ac454cf34f114e1d3319866fdd1e19cdc329999057e44ffe936cfa77", + "sha256": "712c70ab1b99744ff066053cbe3e80c73332b38d46e5e945c98689b2e66fc15f", "url": "https://pub.dev" }, "source": "hosted", - "version": "3.1.4" + "version": "3.1.5" }, "uuid": { "dependency": "transitive", "description": { "name": "uuid", - "sha256": "a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff", + "sha256": "a11b666489b1954e01d992f3d601b1804a33937b5a8fe677bd26b8a9f96f96e8", "url": "https://pub.dev" }, "source": "hosted", - "version": "4.5.1" + "version": "4.5.2" }, "vector_graphics": { "dependency": "transitive", @@ -2449,6 +2639,26 @@ "source": "hosted", "version": "1.1.1" }, + "web_socket": { + "dependency": "transitive", + "description": { + "name": "web_socket", + "sha256": "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.1" + }, + "web_socket_channel": { + "dependency": "transitive", + "description": { + "name": "web_socket_channel", + "sha256": "d645757fb0f4773d602444000a8131ff5d48c9e47adfe9772652dd1a4f2d45c8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.3" + }, "webdriver": { "dependency": "transitive", "description": { @@ -2459,6 +2669,16 @@ "source": "hosted", "version": "3.1.0" }, + "webkit_inspection_protocol": { + "dependency": "transitive", + "description": { + "name": "webkit_inspection_protocol", + "sha256": "87d3f2333bb240704cd3f1c6b5b7acd8a10e7f0bc28c28dcf14e782014f4a572", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.1" + }, "win32": { "dependency": "transitive", "description": { @@ -2592,13 +2812,12 @@ "yaru": { "dependency": "direct main", "description": { - "path": ".", - "ref": "fix/keep-text-style", - "resolved-ref": "87779a4a78b793ad86a5d7177f223664e1ae0152", - "url": "https://github.com/adil192/yaru.dart.git" + "name": "yaru", + "sha256": "704e10633b173d8f5308677d0879d31339204c5ae063aa904e46d8182e1cf191", + "url": "https://pub.dev" }, - "source": "git", - "version": "8.3.0" + "source": "hosted", + "version": "9.0.0" }, "yaru_window": { "dependency": "transitive", @@ -2652,7 +2871,7 @@ } }, "sdks": { - "dart": ">=3.9.0 <4.0.0", - "flutter": ">=3.35.0" + "dart": ">=3.10.0 <4.0.0", + "flutter": ">=3.38.2" } } From 1f37f0809175e1df77cc3103cf851ec80a31fffa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Fri, 12 Dec 2025 11:38:37 +0100 Subject: [PATCH 068/101] pnpm.fetchDeps: output a tarball from fetcherVersion 3 --- .../javascript.section.md | 3 +- .../tools/pnpm/fetch-deps/default.nix | 31 +++++++++++++++++-- .../tools/pnpm/fetch-deps/pnpm-config-hook.sh | 12 ++++--- .../tools/pnpm/fetch-deps/serve.nix | 11 ++++++- 4 files changed, 48 insertions(+), 9 deletions(-) diff --git a/doc/languages-frameworks/javascript.section.md b/doc/languages-frameworks/javascript.section.md index 508b8f3f97f6..f85a416fee86 100644 --- a/doc/languages-frameworks/javascript.section.md +++ b/doc/languages-frameworks/javascript.section.md @@ -354,7 +354,7 @@ stdenv.mkDerivation (finalAttrs: { pnpmDeps = pnpm.fetchDeps { inherit (finalAttrs) pname version src; - fetcherVersion = 2; + fetcherVersion = 3; hash = "..."; }; }) @@ -501,6 +501,7 @@ Changes can include workarounds or bug fixes to existing PNPM issues. - 1: Initial version, nothing special - 2: [Ensure consistent permissions](https://github.com/NixOS/nixpkgs/pull/422975) +- 3: [Build a reproducible tarball](https://github.com/NixOS/nixpkgs/pull/469950) ### Yarn {#javascript-yarn} diff --git a/pkgs/development/tools/pnpm/fetch-deps/default.nix b/pkgs/development/tools/pnpm/fetch-deps/default.nix index 01a4e7be4a4d..4fb7c6d6d736 100644 --- a/pkgs/development/tools/pnpm/fetch-deps/default.nix +++ b/pkgs/development/tools/pnpm/fetch-deps/default.nix @@ -8,6 +8,7 @@ makeSetupHook, pnpm, yq, + zstd, }: let @@ -16,6 +17,7 @@ let supportedFetcherVersions = [ 1 # First version. Here to preserve backwards compatibility 2 # Ensure consistent permissions. See https://github.com/NixOS/nixpkgs/pull/422975 + 3 # Build a reproducible tarball. See https://github.com/NixOS/nixpkgs/pull/469950 ]; in { @@ -72,6 +74,7 @@ in moreutils args.pnpm or pnpm' yq + zstd ]; impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ [ "NIX_NPM_REGISTRY" ]; @@ -87,7 +90,15 @@ in export HOME=$(mktemp -d) - storePath=$out + # For fetcherVersion < 3, the pnpm store files are placed directly into $out. + # For fetcherVersion >= 3, it is bundled into a compressed tarball within $out, + # without distributing the uncompressed store files. + if [[ ${toString fetcherVersion} -ge 3 ]]; then + mkdir $out + storePath=$(mktemp -d) + else + storePath=$out + fi # If the packageManager field in package.json is set to a different pnpm version than what is in nixpkgs, # any pnpm command would fail in that directory, the following disables this @@ -146,6 +157,19 @@ in find $storePath -type d -print0 | xargs -0 chmod 555 fi + if [[ ${toString fetcherVersion} -ge 3 ]]; then + ( + cd $storePath + + # Build a reproducible tarball, per instructions at https://reproducible-builds.org/docs/archives/ + tar --sort=name \ + --mtime="@$SOURCE_DATE_EPOCH" \ + --owner=0 --group=0 --numeric-owner \ + --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=atime,delete=ctime \ + --zstd -cf $out/pnpm-store.tar.zst . + ) + fi + runHook postFixup ''; @@ -168,7 +192,10 @@ in configHook = makeSetupHook { name = "pnpm-config-hook"; - propagatedBuildInputs = [ pnpm ]; + propagatedBuildInputs = [ + pnpm + zstd + ]; substitutions = { npmArch = stdenvNoCC.targetPlatform.node.arch; npmPlatform = stdenvNoCC.targetPlatform.node.platform; diff --git a/pkgs/development/tools/pnpm/fetch-deps/pnpm-config-hook.sh b/pkgs/development/tools/pnpm/fetch-deps/pnpm-config-hook.sh index fbeebc8dff94..2532e5d465c1 100644 --- a/pkgs/development/tools/pnpm/fetch-deps/pnpm-config-hook.sh +++ b/pkgs/development/tools/pnpm/fetch-deps/pnpm-config-hook.sh @@ -12,10 +12,7 @@ pnpmConfigHook() { exit 1 fi - fetcherVersion=1 - if [[ -e "${pnpmDeps}/.fetcher-version" ]]; then - fetcherVersion=$(cat "${pnpmDeps}/.fetcher-version") - fi + fetcherVersion=$(cat "${pnpmDeps}/.fetcher-version" || echo 1) echo "Using fetcherVersion: $fetcherVersion" @@ -26,7 +23,12 @@ pnpmConfigHook() { export npm_config_arch="@npmArch@" export npm_config_platform="@npmPlatform@" - cp -Tr "$pnpmDeps" "$STORE_PATH" + if [[ $fetcherVersion -ge 3 ]]; then + tar --zstd -xf "$pnpmDeps/pnpm-store.tar.zst" -C "$STORE_PATH" + else + cp -Tr "$pnpmDeps" "$STORE_PATH" + fi + chmod -R +w "$STORE_PATH" diff --git a/pkgs/development/tools/pnpm/fetch-deps/serve.nix b/pkgs/development/tools/pnpm/fetch-deps/serve.nix index a60aaa3b928f..9aa5d380a0cd 100644 --- a/pkgs/development/tools/pnpm/fetch-deps/serve.nix +++ b/pkgs/development/tools/pnpm/fetch-deps/serve.nix @@ -2,6 +2,7 @@ writeShellApplication, pnpm, pnpmDeps, + zstd, }: writeShellApplication { @@ -9,11 +10,14 @@ writeShellApplication { runtimeInputs = [ pnpm + zstd ]; text = '' storePath=$(mktemp -d) + fetcherVersion=$(cat "${pnpmDeps}/.fetcher-version" || echo 1) + clean() { echo "Cleaning up temporary store at '$storePath'..." @@ -22,7 +26,12 @@ writeShellApplication { echo "Copying pnpm store '${pnpmDeps}' to temporary store..." - cp -Tr "${pnpmDeps}" "$storePath" + if [[ $fetcherVersion -ge 3 ]]; then + tar --zstd -xf "${pnpmDeps}/pnpm-store.tar.zst" -C "$storePath" + else + cp -Tr "${pnpmDeps}" "$storePath" + fi + chmod -R +w "$storePath" echo "Run 'pnpm install --store-dir \"$storePath\"' to install packages from this store." From a3ac7f4d6380e1240493244aa3d903db42052921 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Thu, 11 Dec 2025 20:15:29 +0100 Subject: [PATCH 069/101] bash-language-server: move to pnpm.fetchDeps fetcherVersion 3 --- pkgs/by-name/ba/bash-language-server/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ba/bash-language-server/package.nix b/pkgs/by-name/ba/bash-language-server/package.nix index 1fc4de499a2c..197db43a194b 100644 --- a/pkgs/by-name/ba/bash-language-server/package.nix +++ b/pkgs/by-name/ba/bash-language-server/package.nix @@ -28,8 +28,8 @@ stdenvNoCC.mkDerivation (finalAttrs: { src pnpmWorkspaces ; - fetcherVersion = 1; - hash = "sha256-NvyqPv5OKgZi3hW98Da8LhsYatmrzrPX8kLOfLr+BrI="; + fetcherVersion = 3; + hash = "sha256-6i+1V3ZkjiJ/IXDun3JfwmfDOiemxCmAXMzS/rGT6ZU="; }; nativeBuildInputs = [ From c42c9df3607b17badd623581e380d779242d34db Mon Sep 17 00:00:00 2001 From: kyehn Date: Tue, 28 Oct 2025 08:01:32 +0800 Subject: [PATCH 070/101] python312Packages.bce-python-sdk: init at 0.9.46 --- .../python-modules/bce-python-sdk/default.nix | 44 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 4 ++ 2 files changed, 48 insertions(+) create mode 100644 pkgs/development/python-modules/bce-python-sdk/default.nix diff --git a/pkgs/development/python-modules/bce-python-sdk/default.nix b/pkgs/development/python-modules/bce-python-sdk/default.nix new file mode 100644 index 000000000000..cc2a0c2c15e5 --- /dev/null +++ b/pkgs/development/python-modules/bce-python-sdk/default.nix @@ -0,0 +1,44 @@ +{ + lib, + buildPythonPackage, + pythonAtLeast, + fetchPypi, + setuptools, + future, + pycryptodome, + six, +}: + +let + version = "0.9.46"; +in +buildPythonPackage { + pname = "bce-python-sdk"; + inherit version; + pyproject = true; + + disabled = pythonAtLeast "3.13"; + + src = fetchPypi { + pname = "bce_python_sdk"; + inherit version; + hash = "sha256-S/AbIubRcszZSqIB+LxvKpjQ2keEFg53z6z8xxwmhr4="; + }; + + build-system = [ setuptools ]; + + dependencies = [ + future + pycryptodome + six + ]; + + pythonImportsCheck = [ "baidubce" ]; + + meta = { + description = "Baidu Cloud Engine SDK for python"; + homepage = "https://pypi.org/project/bce-python-sdk"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ kyehn ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index ddad1006871a..ca8b124ab4c5 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -582,6 +582,8 @@ self: super: with self; { airtouch5py = callPackage ../development/python-modules/airtouch5py { }; + aistudio-sdk = callPackage ../development/python-modules/aistudio-sdk { }; + ajpy = callPackage ../development/python-modules/ajpy { }; ajsonrpc = callPackage ../development/python-modules/ajsonrpc { }; @@ -1798,6 +1800,8 @@ self: super: with self; { bcdoc = callPackage ../development/python-modules/bcdoc { }; + bce-python-sdk = callPackage ../development/python-modules/bce-python-sdk { }; + bcf = callPackage ../development/python-modules/bcf { }; bcg = callPackage ../development/python-modules/bcg { }; From fa6a2b673c5a94392e5a4dad0f12782822849836 Mon Sep 17 00:00:00 2001 From: kyehn Date: Tue, 28 Oct 2025 08:02:18 +0800 Subject: [PATCH 071/101] python312Packages.aistudio-sdk: init at 0.3.8 --- .../python-modules/aistudio-sdk/default.nix | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 pkgs/development/python-modules/aistudio-sdk/default.nix diff --git a/pkgs/development/python-modules/aistudio-sdk/default.nix b/pkgs/development/python-modules/aistudio-sdk/default.nix new file mode 100644 index 000000000000..5d55607efa26 --- /dev/null +++ b/pkgs/development/python-modules/aistudio-sdk/default.nix @@ -0,0 +1,50 @@ +{ + lib, + buildPythonPackage, + fetchPypi, + bce-python-sdk, + click, + prettytable, + psutil, + requests, + tqdm, +}: + +let + version = "0.3.8"; + + format = "wheel"; +in +buildPythonPackage { + pname = "aistudio-sdk"; + inherit version format; + + # No source code dist available + src = fetchPypi { + pname = "aistudio_sdk"; + inherit version format; + dist = "py3"; + python = "py3"; + hash = "sha256-v8lq9yQ6wu4zAwFISapAKHF8zlr6Yir4z+Oh1E0ZQdY="; + }; + + dependencies = [ + bce-python-sdk + click + prettytable + psutil + requests + tqdm + ]; + + pythonImportsCheck = [ "aistudio_sdk" ]; + + meta = { + description = "Python client library for the AIStudio API"; + homepage = "https://pypi.org/project/aistudio-sdk"; + license = lib.licenses.unfree; + mainProgram = "aistudio"; + maintainers = with lib.maintainers; [ kyehn ]; + sourceProvenance = with lib.sourceTypes; [ fromSource ]; + }; +} From a8828b138d7699757f5113166a5a6d8337beb43e Mon Sep 17 00:00:00 2001 From: kyehn Date: Tue, 28 Oct 2025 11:55:39 +0800 Subject: [PATCH 072/101] python312Packages.paddlex: remove pythonRemoveDeps --- pkgs/development/python-modules/paddlex/default.nix | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/pkgs/development/python-modules/paddlex/default.nix b/pkgs/development/python-modules/paddlex/default.nix index 041c05eb0bed..10c9d21b0a6f 100644 --- a/pkgs/development/python-modules/paddlex/default.nix +++ b/pkgs/development/python-modules/paddlex/default.nix @@ -19,6 +19,8 @@ ujson, distutils, huggingface-hub, + modelscope, + aistudio-sdk, nix-update-script, }: @@ -63,11 +65,6 @@ buildPythonPackage rec { build-system = [ setuptools ]; - pythonRemoveDeps = [ - # unpackaged - "aistudio-sdk" - "modelscope" - ]; pythonRelaxDeps = [ "numpy" "pandas" @@ -91,6 +88,8 @@ buildPythonPackage rec { ujson gputil huggingface-hub + modelscope + aistudio-sdk ]; passthru.updateScript = nix-update-script { }; From c958628e418f624c47257a3f1dbb4d85205dc206 Mon Sep 17 00:00:00 2001 From: blenderfreaky Date: Sun, 14 Dec 2025 22:54:15 +0100 Subject: [PATCH 073/101] ivpn{,-service,-ui}: apply suggestions --- pkgs/by-name/iv/ivpn-service/package.nix | 16 ++++++---------- pkgs/by-name/iv/ivpn-ui/package.nix | 13 +++++-------- pkgs/by-name/iv/ivpn/package.nix | 16 ++++++---------- 3 files changed, 17 insertions(+), 28 deletions(-) diff --git a/pkgs/by-name/iv/ivpn-service/package.nix b/pkgs/by-name/iv/ivpn-service/package.nix index ef53b966ade9..98db81a7c214 100644 --- a/pkgs/by-name/iv/ivpn-service/package.nix +++ b/pkgs/by-name/iv/ivpn-service/package.nix @@ -14,13 +14,9 @@ util-linux, nix-update-script, }: - -let - version = "3.15.0"; -in -buildGoModule rec { +buildGoModule (finalAttrs: { pname = "ivpn-service"; - inherit version; + version = "3.15.0"; buildInputs = [ wirelesstools ]; nativeBuildInputs = [ makeWrapper ]; @@ -28,7 +24,7 @@ buildGoModule rec { src = fetchFromGitHub { owner = "ivpn"; repo = "desktop-app"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-Y+oW/2WDkH/YydR+xSzEHPdCNKTmmsV4yEsju+OmDYE="; }; @@ -65,7 +61,7 @@ buildGoModule rec { ldflags = [ "-s" "-w" - "-X github.com/ivpn/desktop-app/daemon/version._version=${version}" + "-X github.com/ivpn/desktop-app/daemon/version._version=${finalAttrs.version}" "-X github.com/ivpn/desktop-app/daemon/version._time=1970-01-01" ]; @@ -95,7 +91,7 @@ buildGoModule rec { meta = { description = "Official IVPN Desktop app service daemon"; homepage = "https://www.ivpn.net/apps"; - changelog = "https://github.com/ivpn/desktop-app/releases/tag/v${version}"; + changelog = "https://github.com/ivpn/desktop-app/releases/tag/v${finalAttrs.version}"; license = lib.licenses.gpl3Only; maintainers = with lib.maintainers; [ urandom @@ -103,4 +99,4 @@ buildGoModule rec { ]; mainProgram = "ivpn-service"; }; -} +}) diff --git a/pkgs/by-name/iv/ivpn-ui/package.nix b/pkgs/by-name/iv/ivpn-ui/package.nix index f7d6444e82a8..8c5a79d4b851 100644 --- a/pkgs/by-name/iv/ivpn-ui/package.nix +++ b/pkgs/by-name/iv/ivpn-ui/package.nix @@ -9,17 +9,14 @@ makeWrapper, ivpn-service, }: -let - version = "3.15.0"; -in -buildNpmPackage { +buildNpmPackage (finalAttrs: { pname = "ivpn-ui"; - inherit version; + version = "3.15.0"; src = fetchFromGitHub { owner = "ivpn"; repo = "desktop-app"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-Y+oW/2WDkH/YydR+xSzEHPdCNKTmmsV4yEsju+OmDYE="; }; @@ -85,9 +82,9 @@ buildNpmPackage { mainProgram = "ivpn-ui"; homepage = "https://www.ivpn.net"; downloadPage = "https://github.com/ivpn/desktop-app"; - changelog = "https://github.com/ivpn/desktop-app/releases/tag/v${version}"; + changelog = "https://github.com/ivpn/desktop-app/releases/tag/v${finalAttrs.version}"; license = lib.licenses.gpl3Only; maintainers = with lib.maintainers; [ blenderfreaky ]; platforms = [ "x86_64-linux" ]; }; -} +}) diff --git a/pkgs/by-name/iv/ivpn/package.nix b/pkgs/by-name/iv/ivpn/package.nix index 77588419d9be..76c74c08932a 100644 --- a/pkgs/by-name/iv/ivpn/package.nix +++ b/pkgs/by-name/iv/ivpn/package.nix @@ -5,20 +5,16 @@ wirelesstools, nix-update-script, }: - -let - version = "3.15.0"; -in -buildGoModule rec { +buildGoModule (finalAttrs: { pname = "ivpn"; - inherit version; + version = "3.15.0"; buildInputs = [ wirelesstools ]; src = fetchFromGitHub { owner = "ivpn"; repo = "desktop-app"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-Y+oW/2WDkH/YydR+xSzEHPdCNKTmmsV4yEsju+OmDYE="; }; @@ -30,7 +26,7 @@ buildGoModule rec { ldflags = [ "-s" "-w" - "-X github.com/ivpn/desktop-app/daemon/version._version=${version}" + "-X github.com/ivpn/desktop-app/daemon/version._version=${finalAttrs.version}" "-X github.com/ivpn/desktop-app/daemon/version._time=1970-01-01" ]; @@ -43,7 +39,7 @@ buildGoModule rec { meta = { description = "Official IVPN Desktop app"; homepage = "https://www.ivpn.net/apps"; - changelog = "https://github.com/ivpn/desktop-app/releases/tag/v${version}"; + changelog = "https://github.com/ivpn/desktop-app/releases/tag/v${finalAttrs.version}"; license = lib.licenses.gpl3Only; maintainers = with lib.maintainers; [ urandom @@ -51,4 +47,4 @@ buildGoModule rec { ]; mainProgram = "ivpn"; }; -} +}) From 4459bd9844976447f4dbc23a1ce581ea44f084cd Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 15 Dec 2025 07:03:59 +0000 Subject: [PATCH 074/101] exfatprogs: 1.3.0 -> 1.3.1 --- pkgs/by-name/ex/exfatprogs/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ex/exfatprogs/package.nix b/pkgs/by-name/ex/exfatprogs/package.nix index 97a2e38c4ea3..26ea0b9d31c0 100644 --- a/pkgs/by-name/ex/exfatprogs/package.nix +++ b/pkgs/by-name/ex/exfatprogs/package.nix @@ -9,13 +9,13 @@ stdenv.mkDerivation rec { pname = "exfatprogs"; - version = "1.3.0"; + version = "1.3.1"; src = fetchFromGitHub { owner = "exfatprogs"; repo = "exfatprogs"; rev = version; - sha256 = "sha256-2kD2ZENAyhApYHs6+NNYkxfLj5fw/cIHRUhw0UnQx04="; + sha256 = "sha256-AwY5TkQRfWjkkcleymNN580mKGxIdZ0O30tt6yBbo5M="; }; nativeBuildInputs = [ From deda3f7f1de9c094e6a854add45b4fd74aa28b7c Mon Sep 17 00:00:00 2001 From: Firelight Flagboy Date: Sat, 13 Dec 2025 09:04:22 +0100 Subject: [PATCH 075/101] nixos/moonraker: Fix permission issues on tmpfiles The configuration of tmpfiles was not creating the expected filesystem tree. The cause was the missing path listing of `{moonraker}/tools` result in `{moonraker}/tools` to be created with the owner set as `root:root` preventing `systemd-tmpfiles` from creating link for `klipper-estimator` --- nixos/modules/services/misc/moonraker.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nixos/modules/services/misc/moonraker.nix b/nixos/modules/services/misc/moonraker.nix index 53b69a729f27..639f9798a627 100644 --- a/nixos/modules/services/misc/moonraker.nix +++ b/nixos/modules/services/misc/moonraker.nix @@ -176,6 +176,7 @@ in ] ++ lib.optional (cfg.configDir != null) "d '${cfg.configDir}' - ${cfg.user} ${cfg.group} - -" ++ lib.optionals cfg.analysis.enable [ + "d '${cfg.stateDir}/tools' - ${cfg.user} ${cfg.group} - -" "d '${cfg.stateDir}/tools/klipper_estimator' - ${cfg.user} ${cfg.group} - -" "L+ '${cfg.stateDir}/tools/klipper_estimator/klipper_estimator_linux' - - - - ${lib.getExe pkgs.klipper-estimator}" ]; From 527bbae9f1eb88ccab2afccd87d5933a9e2c4a18 Mon Sep 17 00:00:00 2001 From: Gliczy <129636582+Gliczy@users.noreply.github.com> Date: Mon, 15 Dec 2025 11:22:01 +0100 Subject: [PATCH 076/101] vencord: 1.13.8 -> 1.13.9 --- pkgs/by-name/ve/vencord/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ve/vencord/package.nix b/pkgs/by-name/ve/vencord/package.nix index 6a5d5dd1c4c7..230f911d40f1 100644 --- a/pkgs/by-name/ve/vencord/package.nix +++ b/pkgs/by-name/ve/vencord/package.nix @@ -18,13 +18,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "vencord"; - version = "1.13.8"; + version = "1.13.9"; src = fetchFromGitHub { owner = "Vendicated"; repo = "Vencord"; tag = "v${finalAttrs.version}"; - hash = "sha256-qVR5LcRWuh5KUoK0VRTpjEK3Er8VNjb71NP5G3RSDQM="; + hash = "sha256-AvwYAsc/dozSfIGPcsySAqOa47jg6bXvHj53eVsjYiM="; }; patches = [ ./fix-deps.patch ]; From 2063a8b903f053739bf4a1ba4356f3d94bab49b4 Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Mon, 15 Dec 2025 10:23:35 +0000 Subject: [PATCH 077/101] nixos/rtorrent: add missing @chown in SystemCallFilter Fix #445186. --- nixos/modules/services/torrent/rtorrent.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nixos/modules/services/torrent/rtorrent.nix b/nixos/modules/services/torrent/rtorrent.nix index 822e1ab1c3c5..6b8a9d55d6e9 100644 --- a/nixos/modules/services/torrent/rtorrent.nix +++ b/nixos/modules/services/torrent/rtorrent.nix @@ -245,6 +245,7 @@ in RestrictSUIDSGID = true; SystemCallArchitectures = "native"; SystemCallFilter = [ + "@chown" "@system-service" "~@privileged" ]; From 17877a8b7074bbcfbccda02f52f49a3d36d0d240 Mon Sep 17 00:00:00 2001 From: Arnout Engelen Date: Sun, 14 Dec 2025 12:54:48 +0100 Subject: [PATCH 078/101] kdePackages.libplasma: fix build nondeterminism Cherry-pick https://invent.kde.org/plasma/libplasma/-/merge_requests/1406 for wider testing Fixes #458839 --- pkgs/kde/plasma/libplasma/default.nix | 5 ++++ .../plasma/libplasma/rb-extracomponents.patch | 27 +++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 pkgs/kde/plasma/libplasma/rb-extracomponents.patch diff --git a/pkgs/kde/plasma/libplasma/default.nix b/pkgs/kde/plasma/libplasma/default.nix index f13240876725..453c9d328f9e 100644 --- a/pkgs/kde/plasma/libplasma/default.nix +++ b/pkgs/kde/plasma/libplasma/default.nix @@ -8,6 +8,11 @@ mkKdeDerivation { pname = "libplasma"; + patches = [ + # https://invent.kde.org/plasma/libplasma/-/merge_requests/1406 + ./rb-extracomponents.patch + ]; + extraNativeBuildInputs = [ pkg-config ]; extraBuildInputs = [ diff --git a/pkgs/kde/plasma/libplasma/rb-extracomponents.patch b/pkgs/kde/plasma/libplasma/rb-extracomponents.patch new file mode 100644 index 000000000000..e2f7f1a94997 --- /dev/null +++ b/pkgs/kde/plasma/libplasma/rb-extracomponents.patch @@ -0,0 +1,27 @@ +commit fd5e1a04b024a9b955d6942e52295582144fbea7 +Author: Arnout Engelen +Date: Sun Dec 14 10:43:57 2025 +0100 + + reproducible builds: make qml dependency explicit + + Similar to https://qt-project.atlassian.net/browse/QTBUG-137440 + + To fix https://bugs.kde.org/show_bug.cgi?id=512868 + + I'll admit I don't quite know what I'm doing here, I'm mostly guessing and mimicking, but it does seem to remove the nondeterminism :) + +diff --git a/src/declarativeimports/plasmaextracomponents/CMakeLists.txt b/src/declarativeimports/plasmaextracomponents/CMakeLists.txt +index 1a7827819..989318c80 100644 +--- a/src/declarativeimports/plasmaextracomponents/CMakeLists.txt ++++ b/src/declarativeimports/plasmaextracomponents/CMakeLists.txt +@@ -44,6 +44,10 @@ target_link_libraries(plasmaextracomponentsplugin PRIVATE + KF6::WidgetsAddons + Plasma::Plasma) + ++add_dependencies(plasmaextracomponentsplugin ++ org_kde_plasmacomponents3 ++) ++ + ecm_finalize_qml_module(plasmaextracomponentsplugin DESTINATION ${KDE_INSTALL_QMLDIR}) + + ecm_generate_qdoc(plasmaextracomponentsplugin plasmaextras.qdocconf) From c1fe6a13f1dd59afff23c1e0c3d5725fc987a182 Mon Sep 17 00:00:00 2001 From: daspk04 Date: Mon, 15 Dec 2025 18:25:23 +0700 Subject: [PATCH 079/101] python3Packages.xclim: init at 0.59.1 --- .../python-modules/xclim/default.nix | 99 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 101 insertions(+) create mode 100644 pkgs/development/python-modules/xclim/default.nix diff --git a/pkgs/development/python-modules/xclim/default.nix b/pkgs/development/python-modules/xclim/default.nix new file mode 100644 index 000000000000..aa6ba7aecd2e --- /dev/null +++ b/pkgs/development/python-modules/xclim/default.nix @@ -0,0 +1,99 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build-system + flit, + setuptools, + + # dependencies + boltons, + bottleneck, + cf-xarray, + cftime, + click, + dask, + filelock, + jsonpickle, + numba, + packaging, + pandas, + pint, + platformdirs, + pooch, + pyarrow, + pyyaml, + scikit-learn, + scipy, + statsmodels, + xarray, + yamale, + + # test + versionCheckHook, +}: +buildPythonPackage rec { + pname = "xclim"; + version = "0.59.1"; + pyproject = true; + + src = fetchFromGitHub { + owner = "Ouranosinc"; + repo = "xclim"; + tag = "v${version}"; + hash = "sha256-n9HJoIHLyLWxrgCuDZDQ9dcW7frgEA/LoYqnTEBLqD8="; + }; + + build-system = [ + flit + setuptools + ]; + + dependencies = [ + boltons + bottleneck + cf-xarray + cftime + click + dask + filelock + jsonpickle + numba + packaging + pandas + pint + platformdirs + pooch + pyarrow + pyyaml + scikit-learn + scipy + statsmodels + xarray + yamale + ]; + + # No python test hooks has been added as all tests seems to be relying on network data + # https://github.com/Ouranosinc/xclim/blob/e8ce9bf37083832517afb3375acc853191782d8f/tests/conftest.py#L314 + nativeCheckInputs = [ + versionCheckHook + ]; + + versionCheckProgramArg = "--version"; + + pythonImportsCheck = [ + "xclim" + "xclim.ensembles" + "xclim.indices" + ]; + + meta = { + description = "Operational Python library supporting climate services, based on xarray"; + homepage = "https://github.com/Ouranosinc/xclim"; + changelog = "https://github.com/Ouranosinc/xclim/releases/tag/${src.tag}"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ daspk04 ]; + mainProgram = "xclim"; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 434a4fc41ee5..29e20f4349c2 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -20653,6 +20653,8 @@ self: super: with self; { xcffib = callPackage ../development/python-modules/xcffib { }; + xclim = callPackage ../development/python-modules/xclim { }; + xdg = callPackage ../development/python-modules/xdg { }; xdg-base-dirs = callPackage ../development/python-modules/xdg-base-dirs { }; From 36050605d9b42eafcc03606d7f6f7e82872ef6d8 Mon Sep 17 00:00:00 2001 From: yuannan Date: Mon, 15 Dec 2025 12:14:47 +0000 Subject: [PATCH 080/101] asusctl: 6.1.17 -> 6.2.0 --- pkgs/by-name/as/asusctl/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/as/asusctl/package.nix b/pkgs/by-name/as/asusctl/package.nix index aa025acb6583..2e7f9cbffae4 100644 --- a/pkgs/by-name/as/asusctl/package.nix +++ b/pkgs/by-name/as/asusctl/package.nix @@ -18,16 +18,16 @@ }: rustPlatform.buildRustPackage rec { pname = "asusctl"; - version = "6.1.17"; + version = "6.2.0"; src = fetchFromGitLab { owner = "asus-linux"; repo = "asusctl"; tag = version; - hash = "sha256-rNLQYCE7NZAel2fr5VoAMlm7QkH1KrySKdEn2+WMPo8="; + hash = "sha256-frQbfCdK7bD6IAUa+MAOaRLhMrbdFRdHocQ0Z1tzsqE="; }; - cargoHash = "sha256-/vMVSGUO6Zu/8GSTq1jsXLWVP9sWsuD7fJty3NnKXf4="; + cargoHash = "sha256-Z3JFp/qH3mD3Hy/kqSONOZ+syulgr+t0ZzFRvNN+Ayg="; postPatch = '' files=" @@ -46,7 +46,6 @@ rustPlatform.buildRustPackage rec { substituteInPlace rog-control-center/src/main.rs \ --replace-fail 'std::env::var("RUST_TRANSLATIONS").is_ok()' 'true' - substituteInPlace data/asusd.rules --replace-fail /usr/bin/systemctl ${lib.getExe' systemd "systemctl"} substituteInPlace data/asusd.service \ --replace-fail /usr/bin/asusd $out/bin/asusd \ --replace-fail /bin/sleep ${lib.getExe' coreutils "sleep"} @@ -106,6 +105,7 @@ rustPlatform.buildRustPackage rec { maintainers = with maintainers; [ k900 aacebedo + yuannan ]; }; } From 127e759733189dd14187736ce06013561503f899 Mon Sep 17 00:00:00 2001 From: aleksana Date: Mon, 15 Dec 2025 20:50:04 +0800 Subject: [PATCH 081/101] python3Packages.approvaltests: remove outdated version workaround --- pkgs/development/python-modules/approvaltests/default.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkgs/development/python-modules/approvaltests/default.nix b/pkgs/development/python-modules/approvaltests/default.nix index 24ed38401712..dfd246335670 100644 --- a/pkgs/development/python-modules/approvaltests/default.nix +++ b/pkgs/development/python-modules/approvaltests/default.nix @@ -36,8 +36,6 @@ buildPythonPackage rec { substituteInPlace setup.py \ --replace-fail "from setup_utils" "from setup.setup_utils" - echo 'version_number = "${version}"' > version.py - patchShebangs internal_documentation/scripts ''; From 8e7fcdaa47cca6586ba5db028761d9663f850884 Mon Sep 17 00:00:00 2001 From: Samuel Silva Date: Sat, 13 Dec 2025 16:10:57 -0300 Subject: [PATCH 082/101] renode: dotnet sdk 6 -> 9 When we pass the `TargetFrameworks` in `dotnetFlags` we got some weird unexpected behavior, the `generateAssemblyInfo.sh` wasn't executed, AssemblyInfo is not generated and we hit [this](https://github.com/renode/renode/blob/master/src/Renode/Program.cs#L161) exception. But this `generateAssemblyInfo` script only replaces version and commit rev in a `.template` file to generate a `.cs` file. We can do this step via Nix and everything works correctly. Signed-off-by: Samuel Silva --- pkgs/by-name/re/renode/deps.json | 249 ++++++++++++++++++++--------- pkgs/by-name/re/renode/package.nix | 25 +-- 2 files changed, 185 insertions(+), 89 deletions(-) diff --git a/pkgs/by-name/re/renode/deps.json b/pkgs/by-name/re/renode/deps.json index c50fb3ed5d39..3ec3cdaf13f6 100644 --- a/pkgs/by-name/re/renode/deps.json +++ b/pkgs/by-name/re/renode/deps.json @@ -129,6 +129,11 @@ "version": "4.5.0", "hash": "sha256-dAhj/CgXG5VIy2dop1xplUsLje7uBPFjxasz9rdFIgY=" }, + { + "pname": "Microsoft.CSharp", + "version": "4.6.0", + "hash": "sha256-16OdEKbPLxh+jLYS4cOiGRX/oU6nv3KMF4h5WnZAsHs=" + }, { "pname": "Microsoft.CSharp", "version": "4.7.0", @@ -139,11 +144,6 @@ "version": "1.0.0", "hash": "sha256-HX3iOXH75I1L7eNihCbMNDDpcotfZpfQUdqdRTGM6FY=" }, - { - "pname": "Microsoft.Extensions.ObjectPool", - "version": "5.0.10", - "hash": "sha256-tAjiU3w0hdPAGUitszxZ6jtEilRn977MY7N5eZMx0x0=" - }, { "pname": "Microsoft.Extensions.ObjectPool", "version": "6.0.16", @@ -244,11 +244,6 @@ "version": "4.4.0", "hash": "sha256-ZumsykAAIYKmVtP4QI5kZ0J10n2zcOZZ69PmAK0SEiE=" }, - { - "pname": "Microsoft.Win32.SystemEvents", - "version": "4.7.0", - "hash": "sha256-GHxnD1Plb32GJWVWSv0Y51Kgtlb+cdKgOYVBYZSgVF4=" - }, { "pname": "Microsoft.Win32.SystemEvents", "version": "5.0.0", @@ -286,13 +281,13 @@ }, { "pname": "NETStandard.Library", - "version": "2.0.0", - "hash": "sha256-Pp7fRylai8JrE1O+9TGfIEJrAOmnWTJRLWE+qJBahK0=" + "version": "1.6.1", + "hash": "sha256-iNan1ix7RtncGWC9AjAZ2sk70DoxOsmEOgQ10fXm4Pw=" }, { "pname": "NETStandard.Library", - "version": "2.0.3", - "hash": "sha256-Prh2RPebz/s8AzHb2sPHg3Jl8s31inv9k+Qxd293ybo=" + "version": "2.0.0", + "hash": "sha256-Pp7fRylai8JrE1O+9TGfIEJrAOmnWTJRLWE+qJBahK0=" }, { "pname": "Newtonsoft.Json", @@ -339,6 +334,11 @@ "version": "4.3.0", "hash": "sha256-PaiITTFI2FfPylTEk7DwzfKeiA/g/aooSU1pDcdwWLU=" }, + { + "pname": "runtime.any.System.Globalization.Calendars", + "version": "4.3.0", + "hash": "sha256-AYh39tgXJVFu8aLi9Y/4rK8yWMaza4S4eaxjfcuEEL4=" + }, { "pname": "runtime.any.System.IO", "version": "4.3.0", @@ -394,6 +394,11 @@ "version": "4.3.0", "hash": "sha256-agdOM0NXupfHbKAQzQT8XgbI9B8hVEh+a/2vqeHctg4=" }, + { + "pname": "runtime.any.System.Threading.Timer", + "version": "4.3.0", + "hash": "sha256-BgHxXCIbicVZtpgMimSXixhFC3V+p5ODqeljDjO8hCs=" + }, { "pname": "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl", "version": "4.3.0", @@ -414,6 +419,21 @@ "version": "4.3.0", "hash": "sha256-ZBZaodnjvLXATWpXXakFgcy6P+gjhshFXmglrL5xD5Y=" }, + { + "pname": "runtime.native.System.IO.Compression", + "version": "4.3.0", + "hash": "sha256-DWnXs4vlKoU6WxxvCArTJupV6sX3iBbZh8SbqfHace8=" + }, + { + "pname": "runtime.native.System.Net.Http", + "version": "4.3.0", + "hash": "sha256-c556PyheRwpYhweBjSfIwEyZHnAUB8jWioyKEcp/2dg=" + }, + { + "pname": "runtime.native.System.Security.Cryptography.Apple", + "version": "4.3.0", + "hash": "sha256-2IhBv0i6pTcOyr8FFIyfPEaaCHUmJZ8DYwLUwJ+5waw=" + }, { "pname": "runtime.native.System.Security.Cryptography.OpenSsl", "version": "4.3.0", @@ -429,6 +449,11 @@ "version": "4.3.0", "hash": "sha256-zi+b4sCFrA9QBiSGDD7xPV27r3iHGlV99gpyVUjRmc4=" }, + { + "pname": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple", + "version": "4.3.0", + "hash": "sha256-serkd4A7F6eciPiPJtUyJyxzdAtupEcWIZQ9nptEzIM=" + }, { "pname": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl", "version": "4.3.0", @@ -459,6 +484,11 @@ "version": "4.3.0", "hash": "sha256-LZb23lRXzr26tRS5aA0xyB08JxiblPDoA7HBvn6awXg=" }, + { + "pname": "runtime.unix.System.Console", + "version": "4.3.0", + "hash": "sha256-AHkdKShTRHttqfMjmi+lPpTuCrM5vd/WRy6Kbtie190=" + }, { "pname": "runtime.unix.System.Diagnostics.Debug", "version": "4.3.0", @@ -469,6 +499,16 @@ "version": "4.3.0", "hash": "sha256-Pf4mRl6YDK2x2KMh0WdyNgv0VUNdSKVDLlHqozecy5I=" }, + { + "pname": "runtime.unix.System.Net.Primitives", + "version": "4.3.0", + "hash": "sha256-pHJ+I6i16MV6m77uhTC6GPY6jWGReE3SSP3fVB59ti0=" + }, + { + "pname": "runtime.unix.System.Net.Sockets", + "version": "4.3.0", + "hash": "sha256-IvgOeA2JuBjKl5yAVGjPYMPDzs9phb3KANs95H9v1w4=" + }, { "pname": "runtime.unix.System.Private.Uri", "version": "4.3.0", @@ -489,20 +529,20 @@ "version": "4.1.0", "hash": "sha256-v6YfyfrKmhww+EYHUq6cwYUMj00MQ6SOfJtcGVRlYzs=" }, + { + "pname": "System.AppContext", + "version": "4.3.0", + "hash": "sha256-yg95LNQOwFlA1tWxXdQkVyJqT4AnoDc+ACmrNvzGiZg=" + }, { "pname": "System.Buffers", "version": "4.3.0", "hash": "sha256-XqZWb4Kd04960h4U9seivjKseGA/YEIpdplfHYHQ9jk=" }, - { - "pname": "System.Buffers", - "version": "4.5.1", - "hash": "sha256-wws90sfi9M7kuCPWkv1CEYMJtCqx9QB/kj0ymlsNaxI=" - }, { "pname": "System.CodeDom", - "version": "6.0.0", - "hash": "sha256-uPetUFZyHfxjScu5x4agjk9pIhbCkt5rG4Axj25npcQ=" + "version": "8.0.0", + "hash": "sha256-uwVhi3xcvX7eiOGQi7dRETk3Qx1EfHsUfchZsEto338=" }, { "pname": "System.Collections", @@ -514,6 +554,11 @@ "version": "4.3.0", "hash": "sha256-afY7VUtD6w/5mYqrce8kQrvDIfS2GXDINDh73IjxJKc=" }, + { + "pname": "System.Collections.Concurrent", + "version": "4.3.0", + "hash": "sha256-KMY5DfJnDeIsa13DpqvyN8NkReZEMAFnlmNglVoFIXI=" + }, { "pname": "System.Collections.Immutable", "version": "5.0.0", @@ -579,6 +624,11 @@ "version": "1.0.31", "hash": "sha256-w9ApcUJr7jYP4Vf5+efIIqoWmr5v9R56W4uC0n8KktQ=" }, + { + "pname": "System.Console", + "version": "4.3.0", + "hash": "sha256-Xh3PPBZr0pDbDaK8AEHbdGz7ePK6Yi1ZyRWI1JM6mbo=" + }, { "pname": "System.Diagnostics.Debug", "version": "4.0.11", @@ -589,6 +639,11 @@ "version": "4.3.0", "hash": "sha256-fkA79SjPbSeiEcrbbUsb70u9B7wqbsdM9s1LnoKj0gM=" }, + { + "pname": "System.Diagnostics.DiagnosticSource", + "version": "4.3.0", + "hash": "sha256-OFJRb0ygep0Z3yDBLwAgM/Tkfs4JCDtsNhwDH9cd1Xw=" + }, { "pname": "System.Diagnostics.EventLog", "version": "6.0.0", @@ -619,11 +674,6 @@ "version": "4.7.0", "hash": "sha256-D3qG+xAe78lZHvlco9gHK2TEAM370k09c6+SQi873Hk=" }, - { - "pname": "System.Drawing.Common", - "version": "5.0.0", - "hash": "sha256-8PgFBZ3Agd+UI9IMxr4fRIW8IA1hqCl15nqlLTJETzk=" - }, { "pname": "System.Drawing.Common", "version": "5.0.3", @@ -634,11 +684,6 @@ "version": "4.0.11", "hash": "sha256-qWqFVxuXioesVftv2RVJZOnmojUvRjb7cS3Oh3oTit4=" }, - { - "pname": "System.Formats.Asn1", - "version": "5.0.0", - "hash": "sha256-9nL3dN4w/dZ49W1pCkTjRqZm6Dh0mMVExNungcBHrKs=" - }, { "pname": "System.Formats.Asn1", "version": "6.0.0", @@ -654,6 +699,11 @@ "version": "4.3.0", "hash": "sha256-caL0pRmFSEsaoeZeWN5BTQtGrAtaQPwFi8YOZPZG5rI=" }, + { + "pname": "System.Globalization.Calendars", + "version": "4.3.0", + "hash": "sha256-uNOD0EOVFgnS2fMKvMiEtI9aOw00+Pfy/H+qucAQlPc=" + }, { "pname": "System.Globalization.Extensions", "version": "4.3.0", @@ -669,6 +719,16 @@ "version": "4.3.0", "hash": "sha256-ruynQHekFP5wPrDiVyhNiRIXeZ/I9NpjK5pU+HPDiRY=" }, + { + "pname": "System.IO.Compression", + "version": "4.3.0", + "hash": "sha256-f5PrQlQgj5Xj2ZnHxXW8XiOivaBvfqDao9Sb6AVinyA=" + }, + { + "pname": "System.IO.Compression.ZipFile", + "version": "4.3.0", + "hash": "sha256-WQl+JgWs+GaRMeiahTFUbrhlXIHapzcpTFXbRvAtvvs=" + }, { "pname": "System.IO.FileSystem", "version": "4.0.1", @@ -720,9 +780,24 @@ "hash": "sha256-3sCEfzO4gj5CYGctl9ZXQRRhwAraMQfse7yzKoRe65E=" }, { - "pname": "System.Numerics.Vectors", - "version": "4.4.0", - "hash": "sha256-auXQK2flL/JpnB/rEcAcUm4vYMCYMEMiWOCAlIaqu2U=" + "pname": "System.Net.Http", + "version": "4.3.0", + "hash": "sha256-UoBB7WPDp2Bne/fwxKF0nE8grJ6FzTMXdT/jfsphj8Q=" + }, + { + "pname": "System.Net.NameResolution", + "version": "4.3.0", + "hash": "sha256-eGZwCBExWsnirWBHyp2sSSSXp6g7I6v53qNmwPgtJ5c=" + }, + { + "pname": "System.Net.Primitives", + "version": "4.3.0", + "hash": "sha256-MY7Z6vOtFMbEKaLW9nOSZeAjcWpwCtdO7/W1mkGZBzE=" + }, + { + "pname": "System.Net.Sockets", + "version": "4.3.0", + "hash": "sha256-il7dr5VT/QWDg/0cuh+4Es2u8LY//+qqiY9BZmYxSus=" }, { "pname": "System.Numerics.Vectors", @@ -871,8 +946,8 @@ }, { "pname": "System.Runtime.CompilerServices.Unsafe", - "version": "4.5.3", - "hash": "sha256-lnZMUqRO4RYRUeSO8HSJ9yBHqFHLVbmenwHWkIU20ak=" + "version": "4.5.2", + "hash": "sha256-8eUXXGWO2LL7uATMZye2iCpQOETn2jCcjUhG6coR5O8=" }, { "pname": "System.Runtime.CompilerServices.Unsafe", @@ -909,11 +984,21 @@ "version": "4.3.0", "hash": "sha256-8sDH+WUJfCR+7e4nfpftj/+lstEiZixWUBueR2zmHgI=" }, + { + "pname": "System.Runtime.InteropServices.RuntimeInformation", + "version": "4.0.0", + "hash": "sha256-5j53amb76A3SPiE3B0llT2XPx058+CgE7OXL4bLalT4=" + }, { "pname": "System.Runtime.InteropServices.RuntimeInformation", "version": "4.3.0", "hash": "sha256-MYpl6/ZyC6hjmzWRIe+iDoldOMW1mfbwXsduAnXIKGA=" }, + { + "pname": "System.Runtime.Numerics", + "version": "4.3.0", + "hash": "sha256-P5jHCgMbgFMYiONvzmaKFeOqcAIDPu/U8bOVrNPYKqc=" + }, { "pname": "System.Runtime.Serialization.Primitives", "version": "4.1.1", @@ -929,16 +1014,26 @@ "version": "4.7.0", "hash": "sha256-/9ZCPIHLdhzq7OW4UKqTsR0O93jjHd6BRG1SRwgHE1g=" }, - { - "pname": "System.Security.AccessControl", - "version": "5.0.0", - "hash": "sha256-ueSG+Yn82evxyGBnE49N4D+ngODDXgornlBtQ3Omw54=" - }, { "pname": "System.Security.AccessControl", "version": "6.0.0", "hash": "sha256-qOyWEBbNr3EjyS+etFG8/zMbuPjA+O+di717JP9Cxyg=" }, + { + "pname": "System.Security.Claims", + "version": "4.3.0", + "hash": "sha256-Fua/rDwAqq4UByRVomAxMPmDBGd5eImRqHVQIeSxbks=" + }, + { + "pname": "System.Security.Cryptography.Algorithms", + "version": "4.3.0", + "hash": "sha256-tAJvNSlczYBJ3Ed24Ae27a55tq/n4D3fubNQdwcKWA8=" + }, + { + "pname": "System.Security.Cryptography.Cng", + "version": "4.3.0", + "hash": "sha256-u17vy6wNhqok91SrVLno2M1EzLHZm6VMca85xbVChsw=" + }, { "pname": "System.Security.Cryptography.Cng", "version": "4.5.0", @@ -950,35 +1045,45 @@ "hash": "sha256-MvVSJhAojDIvrpuyFmcSVRSZPl3dRYOI9hSptbA+6QA=" }, { - "pname": "System.Security.Cryptography.Cng", - "version": "5.0.0", - "hash": "sha256-nOJP3vdmQaYA07TI373OvZX6uWshETipvi5KpL7oExo=" + "pname": "System.Security.Cryptography.Csp", + "version": "4.3.0", + "hash": "sha256-oefdTU/Z2PWU9nlat8uiRDGq/PGZoSPRgkML11pmvPQ=" + }, + { + "pname": "System.Security.Cryptography.Encoding", + "version": "4.3.0", + "hash": "sha256-Yuge89N6M+NcblcvXMeyHZ6kZDfwBv3LPMDiF8HhJss=" + }, + { + "pname": "System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-DL+D2sc2JrQiB4oAcUggTFyD8w3aLEjJfod5JPe+Oz4=" }, { "pname": "System.Security.Cryptography.Pkcs", "version": "4.7.0", "hash": "sha256-lZMmOxtg5d7Oyoof8p6awVALUsYQstc2mBNNrQr9m9c=" }, - { - "pname": "System.Security.Cryptography.Pkcs", - "version": "5.0.0", - "hash": "sha256-kq/tvYQSa24mKSvikFK2fKUAnexSL4PO4LkPppqtYkE=" - }, { "pname": "System.Security.Cryptography.Pkcs", "version": "6.0.1", "hash": "sha256-OJ4NJ8E/8l86aR+Hsw+k/7II63Y/zPS+MgC+UfeCXHM=" }, + { + "pname": "System.Security.Cryptography.Primitives", + "version": "4.3.0", + "hash": "sha256-fnFi7B3SnVj5a+BbgXnbjnGNvWrCEU6Hp/wjsjWz318=" + }, + { + "pname": "System.Security.Cryptography.X509Certificates", + "version": "4.3.0", + "hash": "sha256-MG3V/owDh273GCUPsGGraNwaVpcydupl3EtPXj6TVG0=" + }, { "pname": "System.Security.Cryptography.Xml", "version": "4.7.0", "hash": "sha256-67k24CjNisMJUtnyWb08V/t7mBns+pxLyNhBG5YXiCE=" }, - { - "pname": "System.Security.Cryptography.Xml", - "version": "5.0.0", - "hash": "sha256-0LyU7KmpFRFZFCugAgDnp93Unw3rL4hFSqx6GNqov9o=" - }, { "pname": "System.Security.Cryptography.Xml", "version": "6.0.1", @@ -995,9 +1100,14 @@ "hash": "sha256-BGgXMLUi5rxVmmChjIhcXUxisJjvlNToXlyaIbUxw40=" }, { - "pname": "System.Security.Permissions", - "version": "5.0.0", - "hash": "sha256-BI1Js3L4R32UkKOLMTAVpXzGlQ27m+oaYHSV3J+iQfc=" + "pname": "System.Security.Principal", + "version": "4.3.0", + "hash": "sha256-rjudVUHdo8pNJg2EVEn0XxxwNo5h2EaYo+QboPkXlYk=" + }, + { + "pname": "System.Security.Principal.Windows", + "version": "4.3.0", + "hash": "sha256-mbdLVUcEwe78p3ZnB6jYsizNEqxMaCAWI3tEQNhRQAE=" }, { "pname": "System.Security.Principal.Windows", @@ -1009,11 +1119,6 @@ "version": "4.7.0", "hash": "sha256-rWBM2U8Kq3rEdaa1MPZSYOOkbtMGgWyB8iPrpIqmpqg=" }, - { - "pname": "System.Security.Principal.Windows", - "version": "5.0.0", - "hash": "sha256-CBOQwl9veFkrKK2oU8JFFEiKIh/p+aJO+q9Tc2Q/89Y=" - }, { "pname": "System.ServiceModel.Duplex", "version": "4.8.1", @@ -1119,11 +1224,6 @@ "version": "4.3.0", "hash": "sha256-Z5rXfJ1EXp3G32IKZGiZ6koMjRu0n8C1NGrwpdIen4w=" }, - { - "pname": "System.Threading.Tasks.Extensions", - "version": "4.0.0", - "hash": "sha256-+YdcPkMhZhRbMZHnfsDwpNbUkr31X7pQFGxXYcAPZbE=" - }, { "pname": "System.Threading.Tasks.Extensions", "version": "4.3.0", @@ -1144,6 +1244,11 @@ "version": "4.3.0", "hash": "sha256-wW0QdvssRoaOfQLazTGSnwYTurE4R8FxDx70pYkL+gg=" }, + { + "pname": "System.Threading.Timer", + "version": "4.3.0", + "hash": "sha256-pmhslmhQhP32TWbBzoITLZ4BoORBqYk25OWbru04p9s=" + }, { "pname": "System.ValueTuple", "version": "4.5.0", @@ -1154,11 +1259,6 @@ "version": "4.7.0", "hash": "sha256-yW+GvQranReaqPw5ZFv+mSjByQ5y1pRLl05JIEf3tYU=" }, - { - "pname": "System.Windows.Extensions", - "version": "5.0.0", - "hash": "sha256-fzWnaRBCDuoq3hQsGIi0PvCEJN7yGaaJvlU6pq4052A=" - }, { "pname": "System.Xml.ReaderWriter", "version": "4.0.11", @@ -1174,6 +1274,11 @@ "version": "4.0.11", "hash": "sha256-KPz1kxe0RUBM+aoktJ/f9p51GudMERU8Pmwm//HdlFg=" }, + { + "pname": "System.Xml.XDocument", + "version": "4.3.0", + "hash": "sha256-rWtdcmcuElNOSzCehflyKwHkDRpiOhJJs8CeQ0l1CCI=" + }, { "pname": "System.Xml.XmlDocument", "version": "4.3.0", diff --git a/pkgs/by-name/re/renode/package.nix b/pkgs/by-name/re/renode/package.nix index 85f4a4dd846d..cad261b20253 100644 --- a/pkgs/by-name/re/renode/package.nix +++ b/pkgs/by-name/re/renode/package.nix @@ -2,8 +2,7 @@ buildDotnetModule, cmake, dconf, - dotnet-runtime_8, - dotnet-sdk_6, + dotnetCorePackages, fetchFromGitHub, fetchpatch, gcc, @@ -23,13 +22,6 @@ let rev = "d3d69f8f17ed164ee23e46f0c06844a69bf4c004"; hash = "sha256-wR3heL58NOQLENwCzL4lPM4KuvT/ON7dlc/KUqrlRjg="; }; - assemblyVersion = - s: - let - part = lib.strings.splitString "-" s; - result = builtins.head part; - in - result; pythonLibs = with python3Packages; @@ -79,17 +71,18 @@ buildDotnetModule rec { projectFile = "Renode_NET.sln"; - dotnet-runtime = dotnet-runtime_8; - dotnet-sdk = dotnet-sdk_6; + dotnet-sdk = dotnetCorePackages.sdk_9_0; nugetDeps = ./deps.json; patches = [ ./renode-test.patch ]; + dotnetFlags = [ "-p:TargetFrameworks=net9.0" ]; + prePatch = '' - substituteInPlace tools/building/createAssemblyInfo.sh \ - --replace CURRENT_INFORMATIONAL_VERSION="`git rev-parse --short=8 HEAD`" \ - CURRENT_INFORMATIONAL_VERSION="${builtins.substring 0 8 src.rev}" + sed -i 's/AssemblyVersion("%VERSION%.*")/AssemblyVersion("${version}.0")/g' src/Renode/Properties/AssemblyInfo.template + sed -i 's/AssemblyInformationalVersion("%INFORMATIONAL_VERSION%")/AssemblyInformationalVersion("${src.rev}")/g' src/Renode/Properties/AssemblyInfo.template + mv src/Renode/Properties/AssemblyInfo.template src/Renode/Properties/AssemblyInfo.cs ''; postPatch = '' @@ -105,7 +98,6 @@ buildDotnetModule rec { patchShebangs build.sh tools/ # Fixes determinism build error - sed -i 's/AssemblyVersion("%VERSION%.*")/AssemblyVersion("${assemblyVersion version}")/g' src/Renode/Properties/AssemblyInfo.template sed -i 's/AssemblyVersion("1.0.*")/AssemblyVersion("1.0.0.0")/g' lib/AntShell/AntShell/Properties/AssemblyInfo.cs lib/CxxDemangler/CxxDemangler/Properties/AssemblyInfo.cs ''; @@ -117,7 +109,6 @@ buildDotnetModule rec { cmake gcc ]; - runtimeDeps = [ gtk3 mono @@ -169,7 +160,7 @@ buildDotnetModule rec { ln -s $out/lib/*.so src/Infrastructure/src/Emulator/Cores/bin/Release/lib ''; - dotnetInstallFlags = [ "-p:TargetFramework=net6.0" ]; + dotnetInstallFlags = [ "-p:TargetFramework=net9.0" ]; postInstall = '' mkdir -p $out/lib/renode From 88833d294eeaf9bda3cd29be1d6d00da12694906 Mon Sep 17 00:00:00 2001 From: Samuel Silva Date: Mon, 15 Dec 2025 10:12:22 -0300 Subject: [PATCH 083/101] renode-unstable: fix to work correctly with dotnet 9 Signed-off-by: Samuel Silva --- pkgs/by-name/re/renode-unstable/package.nix | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/re/renode-unstable/package.nix b/pkgs/by-name/re/renode-unstable/package.nix index 6a2f03fd70d5..a9f77aa6edf2 100644 --- a/pkgs/by-name/re/renode-unstable/package.nix +++ b/pkgs/by-name/re/renode-unstable/package.nix @@ -2,7 +2,17 @@ fetchFromGitHub, nix-update-script, renode, + lib, }: +let + normalizedVersion = + v: + let + parts = lib.splitString "-" v; + result = builtins.head parts; + in + result; +in renode.overrideAttrs (old: rec { pname = "renode-unstable"; version = "1.16.0-unstable-2025-08-08"; @@ -16,9 +26,9 @@ renode.overrideAttrs (old: rec { }; prePatch = '' - substituteInPlace tools/building/createAssemblyInfo.sh \ - --replace CURRENT_INFORMATIONAL_VERSION="`git rev-parse --short=8 HEAD`" \ - CURRENT_INFORMATIONAL_VERSION="${builtins.substring 0 8 src.rev}" + sed -i 's/AssemblyVersion("%VERSION%.*")/AssemblyVersion("${normalizedVersion version}.0")/g' src/Renode/Properties/AssemblyInfo.template + sed -i 's/AssemblyInformationalVersion("%INFORMATIONAL_VERSION%")/AssemblyInformationalVersion("${src.rev}")/g' src/Renode/Properties/AssemblyInfo.template + mv src/Renode/Properties/AssemblyInfo.template src/Renode/Properties/AssemblyInfo.cs ''; passthru = old.passthru // { From 9a01a23ad76e1f67d87a9b10edcf57beb8dc8712 Mon Sep 17 00:00:00 2001 From: K900 Date: Mon, 15 Dec 2025 16:28:06 +0300 Subject: [PATCH 084/101] qui: 1.9.1 -> 1.10.0 --- pkgs/by-name/qu/qui/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/qu/qui/package.nix b/pkgs/by-name/qu/qui/package.nix index 90fe6b5fa63f..5da73191efe6 100644 --- a/pkgs/by-name/qu/qui/package.nix +++ b/pkgs/by-name/qu/qui/package.nix @@ -11,12 +11,12 @@ }: buildGoModule (finalAttrs: { pname = "qui"; - version = "1.9.1"; + version = "1.10.0"; src = fetchFromGitHub { owner = "autobrr"; repo = "qui"; tag = "v${finalAttrs.version}"; - hash = "sha256-PcJl9nxHPWv17AqtEok0qHhrTQ1WInUKAtxrxoSeMSw="; + hash = "sha256-aGCEv/HX2XYhtJqWtLHKjsBIy8WYOwezxGQxfF6lu0M="; }; qui-web = stdenvNoCC.mkDerivation (finalAttrs': { @@ -39,7 +39,7 @@ buildGoModule (finalAttrs: { sourceRoot ; fetcherVersion = 2; - hash = "sha256-bDaMax5RS+ot6vaJmNJm6p4gFaCD9aslJXI/58ua9DI="; + hash = "sha256-6brOEC1UAxjIZB4pujhA624jKTTxfZQiiz/PzqooPeA="; }; postBuild = '' @@ -51,7 +51,7 @@ buildGoModule (finalAttrs: { ''; }); - vendorHash = "sha256-UF6V737MF2la24oW8oPp+0N8nv0uEykMrTbzvx/gtec="; + vendorHash = "sha256-EJ26MqXxdV9m5reqWAYTXwuHLMbf2l1J3667e1FEv7A="; preBuild = '' cp -r ${finalAttrs.qui-web}/* web/dist From dbc0ef909666a3a1186382a2ece2b97d6ba96fac Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Mon, 1 Dec 2025 15:50:25 +0100 Subject: [PATCH 085/101] check-meta.nix: Refactor to inlinie remediations - Makes the code more clean and obvious - Allows remediations to depend on values computed during the check (useful for https://github.com/NixOS/nixpkgs/pull/338267) Reapplying 42cfcdf4e731f5cdcbb7ad4e3fc01d0f62121acb after reversal in 0b90ed8913d1bcdad80d99e1568e2139794efb08 Compared to the original commit, this includes the fix for the problem that required the revert. --- pkgs/stdenv/generic/check-meta.nix | 33 +++++++++++++++--------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/pkgs/stdenv/generic/check-meta.nix b/pkgs/stdenv/generic/check-meta.nix index b99f2531831c..1f3dbc03087f 100644 --- a/pkgs/stdenv/generic/check-meta.nix +++ b/pkgs/stdenv/generic/check-meta.nix @@ -197,17 +197,6 @@ let pos_str = meta: meta.position or "«unknown-file»"; - remediation = { - unfree = remediate_allowlist "Unfree" (remediate_predicate "allowUnfreePredicate"); - non-source = remediate_allowlist "NonSource" (remediate_predicate "allowNonSourcePredicate"); - broken = remediate_allowlist "Broken" (x: ""); - unsupported = remediate_allowlist "UnsupportedSystem" (x: ""); - blocklisted = x: ""; - insecure = remediate_insecure; - broken-outputs = remediateOutputsToInstall; - unknown-meta = x: ""; - maintainerless = x: ""; - }; remediation_env_var = allow_attr: { @@ -317,6 +306,7 @@ let { reason, errormsg ? "", + remediation, }: let msg = @@ -327,7 +317,7 @@ let Package ‘${getNameWithVersion attrs}’ in ${pos_str meta} ${errormsg}, refusing to evaluate. '' - + (builtins.getAttr reason remediation) attrs; + + remediation; handler = if config ? handleEvalIssue then config.handleEvalIssue reason else throw; in @@ -338,15 +328,15 @@ let { reason, errormsg ? "", + remediation, }: let - remediationMsg = (builtins.getAttr reason remediation) attrs; msg = if inHydra then "Warning while evaluating ${getNameWithVersion attrs}: «${reason}»: ${errormsg}" else "Package ${getNameWithVersion attrs} in ${pos_str meta} ${errormsg}, continuing anyway." - + (optionalString (remediationMsg != "") "\n${remediationMsg}"); + + (optionalString (remediation != "") "\n${remediation}"); isEnabled = findFirst (x: x == reason) null showWarnings; in if isEnabled != null then builtins.trace msg true else true; @@ -484,7 +474,7 @@ let # e.g brokenness or license. # # Return { valid: "yes", "warn" or "no" } and additionally - # { reason: String; errormsg: String } if it is not valid, where + # { reason: String; errormsg: String, remediation: String } if it is not valid, where # reason is one of "unfree", "blocklisted", "broken", "insecure", ... # !!! reason strings are hardcoded into OfBorg, make sure to keep them in sync # Along with a boolean flag for each reason @@ -506,6 +496,7 @@ let valid = "no"; reason = "unknown-meta"; errormsg = "has an invalid meta attrset:${concatMapStrings (x: "\n - " + x) res}\n"; + remediation = ""; } # --- Put checks that cannot be ignored here --- @@ -514,6 +505,7 @@ let valid = "no"; reason = "broken-outputs"; errormsg = "has invalid meta.outputsToInstall"; + remediation = remediateOutputsToInstall attrs; } # --- Put checks that can be ignored here --- @@ -522,24 +514,28 @@ let valid = "no"; reason = "unfree"; errormsg = "has an unfree license (‘${showLicense attrs.meta.license}’)"; + remediation = remediate_allowlist "Unfree" (remediate_predicate "allowUnfreePredicate") attrs; } else if hasBlocklistedLicense attrs then { valid = "no"; reason = "blocklisted"; errormsg = "has a blocklisted license (‘${showLicense attrs.meta.license}’)"; + remediation = ""; } else if hasDeniedNonSourceProvenance attrs then { valid = "no"; reason = "non-source"; errormsg = "contains elements not built from source (‘${showSourceType attrs.meta.sourceProvenance}’)"; + remediation = remediate_allowlist "NonSource" (remediate_predicate "allowNonSourcePredicate") attrs; } else if hasDeniedBroken attrs then { valid = "no"; reason = "broken"; errormsg = "is marked as broken"; + remediation = remediate_allowlist "Broken" (x: "") attrs; } else if !allowUnsupportedSystem && hasUnsupportedPlatform attrs then let @@ -557,12 +553,14 @@ let package.meta.platforms = ${toPretty' (attrs.meta.platforms or [ ])} package.meta.badPlatforms = ${toPretty' (attrs.meta.badPlatforms or [ ])} ''; + remediation = remediate_allowlist "UnsupportedSystem" (x: "") attrs; } else if !(hasAllowedInsecure attrs) then { valid = "no"; reason = "insecure"; errormsg = "is marked as insecure"; + remediation = remediate_insecure attrs; } # --- warnings --- @@ -572,6 +570,7 @@ let valid = "warn"; reason = "maintainerless"; errormsg = "has no maintainers or teams"; + remediation = ""; } # ----- else @@ -752,9 +751,9 @@ let if valid == "yes" then true else if valid == "no" then - (handleEvalIssue { inherit meta attrs; } { inherit (validity) reason errormsg; }) + (handleEvalIssue { inherit meta attrs; } { inherit (validity) reason errormsg remediation; }) else if valid == "warn" then - (handleEvalWarning { inherit meta attrs; } { inherit (validity) reason errormsg; }) + (handleEvalWarning { inherit meta attrs; } { inherit (validity) reason errormsg remediation; }) else throw "Unknown validity: '${valid}'" ); From 6211f8c3805b8df5ddbc6524b06c6a5b00db3996 Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Mon, 1 Dec 2025 15:55:41 +0100 Subject: [PATCH 086/101] check-meta.nix: Optimise by avoiding double attribute Probably that's a historical artifact Reapplying 360f401244eb170a85791e3e77a98c6b4b912fad after reversal in 0b90ed8913d1bcdad80d99e1568e2139794efb08 --- pkgs/stdenv/generic/check-meta.nix | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/pkgs/stdenv/generic/check-meta.nix b/pkgs/stdenv/generic/check-meta.nix index 1f3dbc03087f..4bf37706a939 100644 --- a/pkgs/stdenv/generic/check-meta.nix +++ b/pkgs/stdenv/generic/check-meta.nix @@ -302,8 +302,9 @@ let ''; handleEvalIssue = - { meta, attrs }: { + meta, + attrs, reason, errormsg ? "", remediation, @@ -324,8 +325,9 @@ let handler msg; handleEvalWarning = - { meta, attrs }: { + meta, + attrs, reason, errormsg ? "", remediation, @@ -751,9 +753,15 @@ let if valid == "yes" then true else if valid == "no" then - (handleEvalIssue { inherit meta attrs; } { inherit (validity) reason errormsg remediation; }) + (handleEvalIssue { + inherit meta attrs; + inherit (validity) reason errormsg remediation; + }) else if valid == "warn" then - (handleEvalWarning { inherit meta attrs; } { inherit (validity) reason errormsg remediation; }) + (handleEvalWarning { + inherit meta attrs; + inherit (validity) reason errormsg remediation; + }) else throw "Unknown validity: '${valid}'" ); From aa9470496698d2d4ea9e4f2b2742592611a30732 Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Mon, 1 Dec 2025 19:19:22 +0100 Subject: [PATCH 087/101] check-meta.nix: Refactor for better use of parenthesis Remove some clearly-unnecessary ones and add some direly-needed ones Reapplying 43f81c8e08c7c8c7a7848a5e8ea73972c1f0f67a after reversal in 0b90ed8913d1bcdad80d99e1568e2139794efb08 --- pkgs/stdenv/generic/check-meta.nix | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pkgs/stdenv/generic/check-meta.nix b/pkgs/stdenv/generic/check-meta.nix index 4bf37706a939..067d0559c322 100644 --- a/pkgs/stdenv/generic/check-meta.nix +++ b/pkgs/stdenv/generic/check-meta.nix @@ -100,7 +100,7 @@ let isUnfree = licenses: if isAttrs licenses then - !licenses.free or true + !(licenses.free or true) # TODO: Returning false in the case of a string is a bug that should be fixed. # In a previous implementation of this function the function body # was `licenses: lib.lists.any (l: !l.free or true) licenses;` @@ -108,7 +108,7 @@ let else if isString licenses then false else - any (l: !l.free or true) licenses; + any (l: !(l.free or true)) licenses; hasUnfreeLicense = attrs: hasLicense attrs && isUnfree attrs.meta.license; @@ -173,7 +173,7 @@ let isNonSource = sourceTypes: any (t: !t.isSource) sourceTypes; hasNonSourceProvenance = - attrs: (attrs ? meta.sourceProvenance) && isNonSource attrs.meta.sourceProvenance; + attrs: attrs ? meta.sourceProvenance && isNonSource attrs.meta.sourceProvenance; # Allow granular checks to allow only some non-source-built packages # Example: @@ -753,15 +753,15 @@ let if valid == "yes" then true else if valid == "no" then - (handleEvalIssue { + handleEvalIssue { inherit meta attrs; inherit (validity) reason errormsg remediation; - }) + } else if valid == "warn" then - (handleEvalWarning { + handleEvalWarning { inherit meta attrs; inherit (validity) reason errormsg remediation; - }) + } else throw "Unknown validity: '${valid}'" ); From d82689da2a1aefb5c8871716aa2ca5413a215527 Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Mon, 1 Dec 2025 19:20:20 +0100 Subject: [PATCH 088/101] check-meta.nix: Minor performance optimisiations - Avoid some attribute set accesses - Make a variable more local, avoiding a thunk - Avoid always checking config.checkMeta for every attribute Reapplying ab0c4c104ce12eca28168e1893a2e230e396a028 after reversal in 0b90ed8913d1bcdad80d99e1568e2139794efb08 --- pkgs/stdenv/generic/check-meta.nix | 65 ++++++++++++++++-------------- 1 file changed, 35 insertions(+), 30 deletions(-) diff --git a/pkgs/stdenv/generic/check-meta.nix b/pkgs/stdenv/generic/check-meta.nix index 067d0559c322..f8f0b87e1723 100644 --- a/pkgs/stdenv/generic/check-meta.nix +++ b/pkgs/stdenv/generic/check-meta.nix @@ -15,15 +15,15 @@ let concatMapStrings concatMapStringsSep concatStrings + filter findFirst + getName isDerivation length concatMap mutuallyExclusive optional - optionalAttrs optionalString - optionals isAttrs isString mapAttrs @@ -47,6 +47,11 @@ let toPretty ; + inherit (builtins) + getEnv + trace + ; + # If we're in hydra, we can dispense with the more verbose error # messages and make problems easier to spot. inHydra = config.inHydra or false; @@ -57,11 +62,11 @@ let getNameWithVersion = attrs: attrs.name or "${attrs.pname or "«name-missing»"}-${attrs.version or "«version-missing»"}"; - allowUnfree = config.allowUnfree || builtins.getEnv "NIXPKGS_ALLOW_UNFREE" == "1"; + allowUnfree = config.allowUnfree || getEnv "NIXPKGS_ALLOW_UNFREE" == "1"; allowNonSource = let - envVar = builtins.getEnv "NIXPKGS_ALLOW_NONSOURCE"; + envVar = getEnv "NIXPKGS_ALLOW_NONSOURCE"; in if envVar != "" then envVar != "0" else config.allowNonSource or true; @@ -92,10 +97,10 @@ let hasBlocklistedLicense = attrs: hasListedLicense blocklist attrs; - allowBroken = config.allowBroken || builtins.getEnv "NIXPKGS_ALLOW_BROKEN" == "1"; + allowBroken = config.allowBroken || getEnv "NIXPKGS_ALLOW_BROKEN" == "1"; allowUnsupportedSystem = - config.allowUnsupportedSystem || builtins.getEnv "NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM" == "1"; + config.allowUnsupportedSystem || getEnv "NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM" == "1"; isUnfree = licenses: @@ -161,14 +166,12 @@ let attrs: hasUnfreeLicense attrs && !allowUnfree && !allowUnfreePredicate attrs; allowInsecureDefaultPredicate = - x: builtins.elem (getNameWithVersion x) (config.permittedInsecurePackages or [ ]); - allowInsecurePredicate = x: (config.allowInsecurePredicate or allowInsecureDefaultPredicate) x; + x: elem (getNameWithVersion x) (config.permittedInsecurePackages or [ ]); + allowInsecurePredicate = config.allowInsecurePredicate or allowInsecureDefaultPredicate; hasAllowedInsecure = attrs: - !(isMarkedInsecure attrs) - || allowInsecurePredicate attrs - || builtins.getEnv "NIXPKGS_ALLOW_INSECURE" == "1"; + !(isMarkedInsecure attrs) || allowInsecurePredicate attrs || getEnv "NIXPKGS_ALLOW_INSECURE" == "1"; isNonSource = sourceTypes: any (t: !t.isSource) sourceTypes; @@ -219,7 +222,7 @@ let Alternatively you can configure a predicate to allow specific packages: { nixpkgs.config.${predicateConfigAttr} = pkg: builtins.elem (lib.getName pkg) [ - "${lib.getName attrs}" + "${getName attrs}" ]; } ''; @@ -289,7 +292,7 @@ let let expectedOutputs = attrs.meta.outputsToInstall or [ ]; actualOutputs = attrs.outputs or [ "out" ]; - missingOutputs = builtins.filter (output: !builtins.elem output actualOutputs) expectedOutputs; + missingOutputs = filter (output: !elem output actualOutputs) expectedOutputs; in '' The package ${getNameWithVersion attrs} has set meta.outputsToInstall to: ${builtins.concatStringsSep ", " expectedOutputs} @@ -332,16 +335,18 @@ let errormsg ? "", remediation, }: - let - msg = - if inHydra then - "Warning while evaluating ${getNameWithVersion attrs}: «${reason}»: ${errormsg}" - else - "Package ${getNameWithVersion attrs} in ${pos_str meta} ${errormsg}, continuing anyway." - + (optionalString (remediation != "") "\n${remediation}"); - isEnabled = findFirst (x: x == reason) null showWarnings; - in - if isEnabled != null then builtins.trace msg true else true; + if elem reason showWarnings then + let + msg = + if inHydra then + "Warning while evaluating ${getNameWithVersion attrs}: «${reason}»: ${errormsg}" + else + "Package ${getNameWithVersion attrs} in ${pos_str meta} ${errormsg}, continuing anyway." + + (optionalString (remediation != "") "\n${remediation}"); + in + trace msg true + else + true; metaTypes = let @@ -460,17 +465,19 @@ let }]" ]; checkMeta = - meta: - optionals config.checkMeta (concatMap (attr: checkMetaAttr attr meta.${attr}) (attrNames meta)); + if config.checkMeta then + meta: concatMap (attr: checkMetaAttr attr meta.${attr}) (attrNames meta) + else + meta: [ ]; checkOutputsToInstall = attrs: let expectedOutputs = attrs.meta.outputsToInstall or [ ]; actualOutputs = attrs.outputs or [ "out" ]; - missingOutputs = builtins.filter (output: !builtins.elem output actualOutputs) expectedOutputs; + missingOutputs = filter (output: !elem output actualOutputs) expectedOutputs; in - if config.checkMeta then builtins.length missingOutputs > 0 else false; + if config.checkMeta then length missingOutputs > 0 else false; # Check if a derivation is valid, that is whether it passes checks for # e.g brokenness or license. @@ -731,9 +738,7 @@ let available = validity.valid != "no" - && ( - if config.checkMetaRecursively or false then all (d: d.meta.available or true) references else true - ); + && ((config.checkMetaRecursively or false) -> all (d: d.meta.available or true) references); }; assertValidity = From 0aadcd773d500e2b27ff0b5f4bf30b1903671a36 Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Mon, 1 Dec 2025 20:00:16 +0100 Subject: [PATCH 089/101] check-meta.nix: More performance optimisations - Boolean operator short-circuit optimisation - Eta-reduction and make some allow/blocklist-dependend functions more cachable - Inline functions that are only used once - Make getEnv cached Reapplying f7486d2a6383acfa883f672febdaaa1380624de6 after reversal in 0b90ed8913d1bcdad80d99e1568e2139794efb08 --- pkgs/stdenv/generic/check-meta.nix | 64 +++++++++++++++--------------- 1 file changed, 33 insertions(+), 31 deletions(-) diff --git a/pkgs/stdenv/generic/check-meta.nix b/pkgs/stdenv/generic/check-meta.nix index f8f0b87e1723..e27986025e8f 100644 --- a/pkgs/stdenv/generic/check-meta.nix +++ b/pkgs/stdenv/generic/check-meta.nix @@ -79,23 +79,24 @@ let else throw "allowlistedLicenses and blocklistedLicenses are not mutually exclusive."; - hasLicense = attrs: attrs ? meta.license; - hasListedLicense = assert areLicenseListsValid; - list: attrs: - length list > 0 - && hasLicense attrs - && ( - if isList attrs.meta.license then - any (l: elem l list) attrs.meta.license - else - elem attrs.meta.license list - ); + list: + if list == [ ] then + attrs: false + else + attrs: + attrs ? meta.license + && ( + if isList attrs.meta.license then + any (l: elem l list) attrs.meta.license + else + elem attrs.meta.license list + ); - hasAllowlistedLicense = attrs: hasListedLicense allowlist attrs; + hasAllowlistedLicense = hasListedLicense allowlist; - hasBlocklistedLicense = attrs: hasListedLicense blocklist attrs; + hasBlocklistedLicense = hasListedLicense blocklist; allowBroken = config.allowBroken || getEnv "NIXPKGS_ALLOW_BROKEN" == "1"; @@ -115,7 +116,7 @@ let else any (l: !(l.free or true)) licenses; - hasUnfreeLicense = attrs: hasLicense attrs && isUnfree attrs.meta.license; + hasUnfreeLicense = attrs: attrs ? meta.license && isUnfree attrs.meta.license; hasNoMaintainers = # To get usable output, we want to avoid flagging "internal" derivations. @@ -169,14 +170,10 @@ let x: elem (getNameWithVersion x) (config.permittedInsecurePackages or [ ]); allowInsecurePredicate = config.allowInsecurePredicate or allowInsecureDefaultPredicate; - hasAllowedInsecure = - attrs: - !(isMarkedInsecure attrs) || allowInsecurePredicate attrs || getEnv "NIXPKGS_ALLOW_INSECURE" == "1"; + allowInsecure = getEnv "NIXPKGS_ALLOW_INSECURE" == "1"; - isNonSource = sourceTypes: any (t: !t.isSource) sourceTypes; - - hasNonSourceProvenance = - attrs: attrs ? meta.sourceProvenance && isNonSource attrs.meta.sourceProvenance; + hasDisallowedInsecure = + attrs: isMarkedInsecure attrs && !allowInsecure && !allowInsecurePredicate attrs; # Allow granular checks to allow only some non-source-built packages # Example: @@ -191,7 +188,11 @@ let # package has non-source provenance and is not explicitly allowed by the # `allowNonSourcePredicate` function. hasDeniedNonSourceProvenance = - attrs: hasNonSourceProvenance attrs && !allowNonSource && !allowNonSourcePredicate attrs; + attrs: + attrs ? meta.sourceProvenance + && any (t: !t.isSource) attrs.meta.sourceProvenance + && !allowNonSource + && !allowNonSourcePredicate attrs; showLicenseOrSourceType = value: toString (map (v: v.shortName or v.fullName or "unknown") (toList value)); @@ -471,13 +472,14 @@ let meta: [ ]; checkOutputsToInstall = - attrs: - let - expectedOutputs = attrs.meta.outputsToInstall or [ ]; - actualOutputs = attrs.outputs or [ "out" ]; - missingOutputs = filter (output: !elem output actualOutputs) expectedOutputs; - in - if config.checkMeta then length missingOutputs > 0 else false; + if config.checkMeta then + attrs: + let + actualOutputs = attrs.outputs or [ "out" ]; + in + any (output: !elem output actualOutputs) (attrs.meta.outputsToInstall or [ ]) + else + attrs: false; # Check if a derivation is valid, that is whether it passes checks for # e.g brokenness or license. @@ -546,7 +548,7 @@ let errormsg = "is marked as broken"; remediation = remediate_allowlist "Broken" (x: "") attrs; } - else if !allowUnsupportedSystem && hasUnsupportedPlatform attrs then + else if hasUnsupportedPlatform attrs && !allowUnsupportedSystem then let toPretty' = toPretty { allowPrettyValues = true; @@ -564,7 +566,7 @@ let ''; remediation = remediate_allowlist "UnsupportedSystem" (x: "") attrs; } - else if !(hasAllowedInsecure attrs) then + else if hasDisallowedInsecure attrs then { valid = "no"; reason = "insecure"; From 0870cfcd7aa7e5d5a2b34ac121b4b3b80214434b Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Mon, 1 Dec 2025 21:56:01 +0100 Subject: [PATCH 090/101] check-meta.nix: Optimise - Remove the internal conditioning on the result of `valid`, we can know exactly when which value is produced - Faster success path for checkMeta, also avoiding an environment - Inline handlers Reapplying 660cecdc16cea8d195eba9fb6c6b0b3cbe0aa717 after reversal in 0b90ed8913d1bcdad80d99e1568e2139794efb08 --- pkgs/stdenv/generic/check-meta.nix | 161 +++++++++++------------------ 1 file changed, 62 insertions(+), 99 deletions(-) diff --git a/pkgs/stdenv/generic/check-meta.nix b/pkgs/stdenv/generic/check-meta.nix index e27986025e8f..6a3c8837846a 100644 --- a/pkgs/stdenv/generic/check-meta.nix +++ b/pkgs/stdenv/generic/check-meta.nix @@ -305,50 +305,6 @@ let ${concatStrings (map (output: " - ${output}\n") missingOutputs)} ''; - handleEvalIssue = - { - meta, - attrs, - reason, - errormsg ? "", - remediation, - }: - let - msg = - if inHydra then - "Failed to evaluate ${getNameWithVersion attrs}: «${reason}»: ${errormsg}" - else - '' - Package ‘${getNameWithVersion attrs}’ in ${pos_str meta} ${errormsg}, refusing to evaluate. - - '' - + remediation; - - handler = if config ? handleEvalIssue then config.handleEvalIssue reason else throw; - in - handler msg; - - handleEvalWarning = - { - meta, - attrs, - reason, - errormsg ? "", - remediation, - }: - if elem reason showWarnings then - let - msg = - if inHydra then - "Warning while evaluating ${getNameWithVersion attrs}: «${reason}»: ${errormsg}" - else - "Package ${getNameWithVersion attrs} in ${pos_str meta} ${errormsg}, continuing anyway." - + (optionalString (remediation != "") "\n${remediation}"); - in - trace msg true - else - true; - metaTypes = let types = import ./meta-types.nix { inherit lib; }; @@ -444,11 +400,10 @@ let identifiers = attrs; }; + # Map attrs directly to the verify function for performance + metaTypes' = mapAttrs (_: t: t.verify) metaTypes; + checkMetaAttr = - let - # Map attrs directly to the verify function for performance - metaTypes' = mapAttrs (_: t: t.verify) metaTypes; - in k: v: if metaTypes ? ${k} then if metaTypes'.${k} v then @@ -465,11 +420,14 @@ let concatMapStringsSep ", " (x: "'${x}'") (attrNames metaTypes) }]" ]; - checkMeta = + + checkMeta = meta: concatMap (attr: checkMetaAttr attr meta.${attr}) (attrNames meta); + + metaInvalid = if config.checkMeta then - meta: concatMap (attr: checkMetaAttr attr meta.${attr}) (attrNames meta) + meta: !all (attr: metaTypes ? ${attr} && metaTypes'.${attr} meta.${attr}) (attrNames meta) else - meta: [ ]; + meta: false; checkOutputsToInstall = if config.checkMeta then @@ -490,30 +448,21 @@ let # !!! reason strings are hardcoded into OfBorg, make sure to keep them in sync # Along with a boolean flag for each reason checkValidity = - let - validYes = { - valid = "yes"; - handled = true; - }; - in attrs: # Check meta attribute types first, to make sure it is always called even when there are other issues # Note that this is not a full type check and functions below still need to by careful about their inputs! - let - res = checkMeta (attrs.meta or { }); - in - if res != [ ] then + if metaInvalid (attrs.meta or { }) then { - valid = "no"; reason = "unknown-meta"; - errormsg = "has an invalid meta attrset:${concatMapStrings (x: "\n - " + x) res}\n"; + errormsg = "has an invalid meta attrset:${ + concatMapStrings (x: "\n - " + x) (checkMeta attrs.meta) + }\n"; remediation = ""; } # --- Put checks that cannot be ignored here --- else if checkOutputsToInstall attrs then { - valid = "no"; reason = "broken-outputs"; errormsg = "has invalid meta.outputsToInstall"; remediation = remediateOutputsToInstall attrs; @@ -522,28 +471,24 @@ let # --- Put checks that can be ignored here --- else if hasDeniedUnfreeLicense attrs && !(hasAllowlistedLicense attrs) then { - valid = "no"; reason = "unfree"; errormsg = "has an unfree license (‘${showLicense attrs.meta.license}’)"; remediation = remediate_allowlist "Unfree" (remediate_predicate "allowUnfreePredicate") attrs; } else if hasBlocklistedLicense attrs then { - valid = "no"; reason = "blocklisted"; errormsg = "has a blocklisted license (‘${showLicense attrs.meta.license}’)"; remediation = ""; } else if hasDeniedNonSourceProvenance attrs then { - valid = "no"; reason = "non-source"; errormsg = "contains elements not built from source (‘${showSourceType attrs.meta.sourceProvenance}’)"; remediation = remediate_allowlist "NonSource" (remediate_predicate "allowNonSourcePredicate") attrs; } else if hasDeniedBroken attrs then { - valid = "no"; reason = "broken"; errormsg = "is marked as broken"; remediation = remediate_allowlist "Broken" (x: "") attrs; @@ -556,7 +501,6 @@ let }; in { - valid = "no"; reason = "unsupported"; errormsg = '' is not available on the requested hostPlatform: @@ -568,24 +512,24 @@ let } else if hasDisallowedInsecure attrs then { - valid = "no"; reason = "insecure"; errormsg = "is marked as insecure"; remediation = remediate_insecure attrs; } + else + null; - # --- warnings --- - # Please also update the type in /pkgs/top-level/config.nix alongside this. - else if hasNoMaintainers attrs then + # Please also update the type in /pkgs/top-level/config.nix alongside this. + checkWarnings = + attrs: + if hasNoMaintainers attrs then { - valid = "warn"; reason = "maintainerless"; errormsg = "has no maintainers or teams"; remediation = ""; } - # ----- else - validYes; + null; # Helper functions and declarations to handle identifiers, extracted to reduce allocations hasAllCPEParts = @@ -743,35 +687,54 @@ let && ((config.checkMetaRecursively or false) -> all (d: d.meta.available or true) references); }; + validYes = { + valid = "yes"; + handled = true; + }; + assertValidity = { meta, attrs }: let - validity = checkValidity attrs; - inherit (validity) valid; + invalid = checkValidity attrs; + warning = checkWarnings attrs; in - if validity ? handled then - validity + if isNull invalid then + if isNull warning then + validYes + else + let + msg = + if inHydra then + "Warning while evaluating ${getNameWithVersion attrs}: «${warning.reason}»: ${warning.errormsg}" + else + "Package ${getNameWithVersion attrs} in ${pos_str meta} ${warning.errormsg}, continuing anyway." + + (optionalString (warning.remediation != "") "\n${warning.remediation}"); + + handled = if elem warning.reason showWarnings then trace msg true else true; + in + warning + // { + valid = "warn"; + handled = handled; + } else - validity - // { - # Throw an error if trying to evaluate a non-valid derivation - # or, alternatively, just output a warning message. - handled = ( - if valid == "yes" then - true - else if valid == "no" then - handleEvalIssue { - inherit meta attrs; - inherit (validity) reason errormsg remediation; - } - else if valid == "warn" then - handleEvalWarning { - inherit meta attrs; - inherit (validity) reason errormsg remediation; - } + let + msg = + if inHydra then + "Failed to evaluate ${getNameWithVersion attrs}: «${invalid.reason}»: ${invalid.errormsg}" else - throw "Unknown validity: '${valid}'" - ); + '' + Package ‘${getNameWithVersion attrs}’ in ${pos_str meta} ${invalid.errormsg}, refusing to evaluate. + + '' + + invalid.remediation; + + handled = if config ? handleEvalIssue then config.handleEvalIssue invalid.reason msg else throw msg; + in + invalid + // { + valid = "no"; + handled = handled; }; in From ea47b8d109bfe0f44550a078ca2b4819d823981a Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Mon, 15 Dec 2025 14:29:43 +0100 Subject: [PATCH 091/101] check-meta.nix: Minor remediation refactoring --- pkgs/stdenv/generic/check-meta.nix | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/stdenv/generic/check-meta.nix b/pkgs/stdenv/generic/check-meta.nix index 6a3c8837846a..28de9c68110e 100644 --- a/pkgs/stdenv/generic/check-meta.nix +++ b/pkgs/stdenv/generic/check-meta.nix @@ -234,7 +234,7 @@ let then pass `--impure` in order to allow use of environment variables. "; - remediate_allowlist = allow_attr: rebuild_amendment: attrs: '' + remediate_allowlist = allow_attr: rebuild_amendment: '' a) To temporarily allow ${remediation_phrase allow_attr}, you can use an environment variable for a single invocation of the nix tools. @@ -243,7 +243,7 @@ let b) For `nixos-rebuild` you can set { nixpkgs.config.allow${allow_attr} = true; } in configuration.nix to override this. - ${rebuild_amendment attrs} + ${rebuild_amendment} c) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add { allow${allow_attr} = true; } to ~/.config/nixpkgs/config.nix. @@ -473,7 +473,7 @@ let { reason = "unfree"; errormsg = "has an unfree license (‘${showLicense attrs.meta.license}’)"; - remediation = remediate_allowlist "Unfree" (remediate_predicate "allowUnfreePredicate") attrs; + remediation = remediate_allowlist "Unfree" (remediate_predicate "allowUnfreePredicate" attrs); } else if hasBlocklistedLicense attrs then { @@ -485,13 +485,13 @@ let { reason = "non-source"; errormsg = "contains elements not built from source (‘${showSourceType attrs.meta.sourceProvenance}’)"; - remediation = remediate_allowlist "NonSource" (remediate_predicate "allowNonSourcePredicate") attrs; + remediation = remediate_allowlist "NonSource" (remediate_predicate "allowNonSourcePredicate" attrs); } else if hasDeniedBroken attrs then { reason = "broken"; errormsg = "is marked as broken"; - remediation = remediate_allowlist "Broken" (x: "") attrs; + remediation = remediate_allowlist "Broken" ""; } else if hasUnsupportedPlatform attrs && !allowUnsupportedSystem then let @@ -508,7 +508,7 @@ let package.meta.platforms = ${toPretty' (attrs.meta.platforms or [ ])} package.meta.badPlatforms = ${toPretty' (attrs.meta.badPlatforms or [ ])} ''; - remediation = remediate_allowlist "UnsupportedSystem" (x: "") attrs; + remediation = remediate_allowlist "UnsupportedSystem" ""; } else if hasDisallowedInsecure attrs then { From d9df457a0f5556f986e456e1b35f446f76c28b0e Mon Sep 17 00:00:00 2001 From: beeb <703631+beeb@users.noreply.github.com> Date: Mon, 15 Dec 2025 15:03:24 +0100 Subject: [PATCH 092/101] chore: fix update-svm-lists.sh helper script The latest version of the file that gets pulled has a prerelease version of solidity 0.8.31, which makes the compilation of `svm-rs-builds` fail with a duplicate constant definition error. This commit fixes the script by filtering out the prerelease versions with jq. --- pkgs/by-name/fo/foundry/update-svm-lists.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/fo/foundry/update-svm-lists.sh b/pkgs/by-name/fo/foundry/update-svm-lists.sh index 7393f776b1af..a0a743bfee1a 100755 --- a/pkgs/by-name/fo/foundry/update-svm-lists.sh +++ b/pkgs/by-name/fo/foundry/update-svm-lists.sh @@ -40,8 +40,8 @@ for url in "${urls[@]}"; do # Extract filename from URL filename=$(extract_filename "$url") - # Download the file and fix line endings + # Download the file, filter out prereleases, and fix line endings echo "Fetching $url to $dir/$filename" - curl -sL "$url" -o "${dir}/${filename}" + curl -sL "$url" | jq 'del(.builds[] | select(has("prerelease")))' > "${dir}/${filename}" ensure_unix_format "${dir}/${filename}" done From 542632f517113e7a31b8d4fa4e74896b56e4155d Mon Sep 17 00:00:00 2001 From: beeb <703631+beeb@users.noreply.github.com> Date: Mon, 15 Dec 2025 14:52:55 +0100 Subject: [PATCH 093/101] foundry: 1.4.4 -> 1.5.0 --- pkgs/by-name/fo/foundry/package.nix | 6 +++--- pkgs/by-name/fo/foundry/svm-lists/linux-amd64.json | 14 +++++++++++++- .../by-name/fo/foundry/svm-lists/macosx-amd64.json | 14 +++++++++++++- 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/fo/foundry/package.nix b/pkgs/by-name/fo/foundry/package.nix index 8db1a61165df..76a6002f0f5e 100644 --- a/pkgs/by-name/fo/foundry/package.nix +++ b/pkgs/by-name/fo/foundry/package.nix @@ -13,16 +13,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "foundry"; - version = "1.4.4"; + version = "1.5.0"; src = fetchFromGitHub { owner = "foundry-rs"; repo = "foundry"; tag = "v${finalAttrs.version}"; - hash = "sha256-u+JCurH1gx4onC5Poxxd9+gVrUyyebcd6xnXY4Le6Rs="; + hash = "sha256-mbOv5XZH+AYZQjSUI+ksuAdLxZyRdF0LXK/8Q1DIgrU="; }; - cargoHash = "sha256-JLuCZckiNv0t+kPuDk6TWmPIXKOvqf3HR/oFrQ5fKKQ="; + cargoHash = "sha256-vws7LcBRtoha+Sa4TLDNxMKA8caKkWFOauCLZs6we4Y="; nativeBuildInputs = [ pkg-config diff --git a/pkgs/by-name/fo/foundry/svm-lists/linux-amd64.json b/pkgs/by-name/fo/foundry/svm-lists/linux-amd64.json index 2469120c1331..2f10ef7fdf39 100644 --- a/pkgs/by-name/fo/foundry/svm-lists/linux-amd64.json +++ b/pkgs/by-name/fo/foundry/svm-lists/linux-amd64.json @@ -945,9 +945,21 @@ "urls": [ "dweb:/ipfs/QmPsmKxpd5berCgcTBXXPBC4PLHrb56tr3f6ZMxPGEf6vn" ] + }, + { + "path": "solc-linux-amd64-v0.8.31+commit.fd3a2265", + "version": "0.8.31", + "build": "commit.fd3a2265", + "longVersion": "0.8.31+commit.fd3a2265", + "keccak256": "0xc6f3968537d87ec3432a06c25840491a3fac9d538c3e7c30900f47722f978f31", + "sha256": "0xaac9cd0116e9ae0cd3d8f64a8641381845dc9f12e2a52653de36fb619323e557", + "urls": [ + "dweb:/ipfs/QmcpFFGAaoKkwiqng4czei7sa5Mvd9Hv4vRwUpRNNTCb9r" + ] } ], "releases": { + "0.8.31": "solc-linux-amd64-v0.8.31+commit.fd3a2265", "0.8.30": "solc-linux-amd64-v0.8.30+commit.73712a01", "0.8.29": "solc-linux-amd64-v0.8.29+commit.ab55807c", "0.8.28": "solc-linux-amd64-v0.8.28+commit.7893614a", @@ -1035,5 +1047,5 @@ "0.4.11": "solc-linux-amd64-v0.4.11+commit.68ef5810", "0.4.10": "solc-linux-amd64-v0.4.10+commit.9e8cc01b" }, - "latestRelease": "0.8.30" + "latestRelease": "0.8.31" } diff --git a/pkgs/by-name/fo/foundry/svm-lists/macosx-amd64.json b/pkgs/by-name/fo/foundry/svm-lists/macosx-amd64.json index 4d8855a809f4..0c51ce896891 100644 --- a/pkgs/by-name/fo/foundry/svm-lists/macosx-amd64.json +++ b/pkgs/by-name/fo/foundry/svm-lists/macosx-amd64.json @@ -1066,9 +1066,21 @@ "urls": [ "dweb:/ipfs/QmbrZ9EQQakmwZ2MKzdT6Xp6RQfwbbc6bhrP7ZSeMGE6fx" ] + }, + { + "path": "solc-macosx-amd64-v0.8.31+commit.fd3a2265", + "version": "0.8.31", + "build": "commit.fd3a2265", + "longVersion": "0.8.31+commit.fd3a2265", + "keccak256": "0xe24d2e6c51018020bd86cd51369e4087f3f59288577dd038326ebf84becf26c2", + "sha256": "0xf5a243d6b2dd8fba307e36c5fefa2d8eb3ae74ba81036d1c17c971b5d346ade9", + "urls": [ + "dweb:/ipfs/QmXnqLGQF6Dgpkegp59Z8DcSq7UeT9jY7ENAWUzYjPaq8H" + ] } ], "releases": { + "0.8.31": "solc-macosx-amd64-v0.8.31+commit.fd3a2265", "0.8.30": "solc-macosx-amd64-v0.8.30+commit.73712a01", "0.8.29": "solc-macosx-amd64-v0.8.29+commit.ab55807c", "0.8.28": "solc-macosx-amd64-v0.8.28+commit.7893614a", @@ -1167,5 +1179,5 @@ "0.4.0": "solc-macosx-amd64-v0.4.0+commit.acd334c9", "0.3.6": "solc-macosx-amd64-v0.3.6+commit.988fe5e5" }, - "latestRelease": "0.8.30" + "latestRelease": "0.8.31" } From dc0bf3be8204f348b2cd070d0f6da9f341e17315 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 15 Dec 2025 14:14:54 +0000 Subject: [PATCH 094/101] python3Packages.pysrdaligateway: 0.19.0 -> 0.19.2 --- pkgs/development/python-modules/pysrdaligateway/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pysrdaligateway/default.nix b/pkgs/development/python-modules/pysrdaligateway/default.nix index 618ab5a25b64..ce1ccb5e252f 100644 --- a/pkgs/development/python-modules/pysrdaligateway/default.nix +++ b/pkgs/development/python-modules/pysrdaligateway/default.nix @@ -10,14 +10,14 @@ buildPythonPackage rec { pname = "pysrdaligateway"; - version = "0.19.0"; + version = "0.19.2"; pyproject = true; src = fetchFromGitHub { owner = "maginawin"; repo = "PySrDaliGateway"; tag = "v${version}"; - hash = "sha256-m4gkhDYrw+58FN80zTKjSPK/3Wsl7rZ+Xlo/iWNZTWw="; + hash = "sha256-ONwWEgipiXW8lsF6KLeZRKfIGKxoQVVqkqL9IW/ldrw="; }; build-system = [ setuptools ]; From 9553b2f0b6c11d2071a0ad40401234b4b2a397fa Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Mon, 15 Dec 2025 15:40:16 +0100 Subject: [PATCH 095/101] python3Packages.python-dbusmock: backport networkmanager 1.54.2 fix This is included in the latest release of dbusmock, but we can't update to that without a compatibility fix for polkit, which would need to go through staging. We already have the networkmanager update (which has security fixes): in master, so for now, backport the patch without causing a mass rebuild. We can then revert this on staging. Fixes: 403d46a327f1 ("networkmanager: 1.54.1 -> 1.54.3") --- pkgs/by-name/po/polkit/package.nix | 4 ++-- .../python-modules/python-dbusmock/default.nix | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/po/polkit/package.nix b/pkgs/by-name/po/polkit/package.nix index f269b0ee61bb..f804931304d8 100644 --- a/pkgs/by-name/po/polkit/package.nix +++ b/pkgs/by-name/po/polkit/package.nix @@ -116,10 +116,10 @@ stdenv.mkDerivation rec { (python3.pythonOnBuildForHost.withPackages ( pp: with pp; [ dbus-python - (python-dbusmock.overridePythonAttrs (attrs: { + (python-dbusmock.override { # Avoid dependency cycle. doCheck = false; - })) + }) ] )) ]; diff --git a/pkgs/development/python-modules/python-dbusmock/default.nix b/pkgs/development/python-modules/python-dbusmock/default.nix index 804d40f32bfd..6465fb7014ac 100644 --- a/pkgs/development/python-modules/python-dbusmock/default.nix +++ b/pkgs/development/python-modules/python-dbusmock/default.nix @@ -2,6 +2,7 @@ lib, buildPythonPackage, fetchFromGitHub, + fetchpatch, runCommand, # build-system @@ -12,6 +13,7 @@ dbus-python, # checks + doCheck ? true, dbus, gobject-introspection, pygobject3, @@ -40,6 +42,14 @@ buildPythonPackage rec { hash = "sha256-9YnMOQUuwAcrL0ZaQr7iGly9esZaSRIFThQRNUtSndo="; }; + patches = lib.optionals doCheck [ + (fetchpatch { + name = "networkmanager-1.54.2.patch"; + url = "https://github.com/martinpitt/python-dbusmock/commit/1ce6196a687d324a55fbf1f74e0f66a4e83f7a15.patch"; + hash = "sha256-Wo7AhmZu74cTHT9I36+NGGSU9dcFwmcDvtzgseTj/yA="; + }) + ]; + build-system = [ setuptools setuptools-scm @@ -47,6 +57,8 @@ buildPythonPackage rec { dependencies = [ dbus-python ]; + inherit doCheck; + nativeCheckInputs = [ dbus gobject-introspection From 45643c136d7b43fc14e003e57554471ed08f1488 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 15 Dec 2025 15:10:32 +0000 Subject: [PATCH 096/101] bettercap: 2.41.4 -> 2.41.5 --- pkgs/by-name/be/bettercap/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/be/bettercap/package.nix b/pkgs/by-name/be/bettercap/package.nix index e189c63b70e7..c04f05a6f12b 100644 --- a/pkgs/by-name/be/bettercap/package.nix +++ b/pkgs/by-name/be/bettercap/package.nix @@ -12,16 +12,16 @@ buildGoModule rec { pname = "bettercap"; - version = "2.41.4"; + version = "2.41.5"; src = fetchFromGitHub { owner = "bettercap"; repo = "bettercap"; rev = "v${version}"; - sha256 = "sha256-y23gNqS5f/MP+wyRMxe40I+9RuZGyZEok17LIc9Z8O4="; + sha256 = "sha256-mw2Fe/7kSowozUpmXC5tMHZ02bF5+UHmy+lmkJ6SeLM="; }; - vendorHash = "sha256-1kgjMPsj8z2Cl0YWe/1zY0Zuiza0X+ZAIgsMqPhCrMw="; + vendorHash = "sha256-ssNGy40KMJ9P33uEGyYOer92QRS2T6DQlKaf/3XMFwQ="; doCheck = false; From 05f443368ffe4a300523c692954f17668cf6874c Mon Sep 17 00:00:00 2001 From: Sandro Date: Mon, 15 Dec 2025 16:53:20 +0100 Subject: [PATCH 097/101] python3Packages.bce-python-sdk: update meta.homepage --- pkgs/development/python-modules/bce-python-sdk/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/bce-python-sdk/default.nix b/pkgs/development/python-modules/bce-python-sdk/default.nix index cc2a0c2c15e5..f98f4c5cb2d8 100644 --- a/pkgs/development/python-modules/bce-python-sdk/default.nix +++ b/pkgs/development/python-modules/bce-python-sdk/default.nix @@ -37,7 +37,7 @@ buildPythonPackage { meta = { description = "Baidu Cloud Engine SDK for python"; - homepage = "https://pypi.org/project/bce-python-sdk"; + homepage = "https://github.com/baidubce/bce-sdk-python"; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ kyehn ]; }; From d882a66eccb515709fd39d41fccf278a73c09990 Mon Sep 17 00:00:00 2001 From: Eric Helgeson Date: Wed, 26 Nov 2025 10:44:12 -0600 Subject: [PATCH 098/101] bstring: init at 1.0.3 --- pkgs/by-name/bs/bstring/package.nix | 33 +++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 pkgs/by-name/bs/bstring/package.nix diff --git a/pkgs/by-name/bs/bstring/package.nix b/pkgs/by-name/bs/bstring/package.nix new file mode 100644 index 000000000000..2aa06c3b7fe1 --- /dev/null +++ b/pkgs/by-name/bs/bstring/package.nix @@ -0,0 +1,33 @@ +{ + lib, + stdenv, + fetchFromGitHub, + meson, + ninja, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "bstring"; + version = "1.0.3"; + + src = fetchFromGitHub { + owner = "msteinert"; + repo = "bstring"; + tag = "v${finalAttrs.version}"; + hash = "sha256-efXMSRcPgo+WlOdbS1kY2PYQqSVwcsVSyU1JfsU8OOo="; + }; + + nativeBuildInputs = [ + meson + ninja + ]; + + meta = { + description = "Better String Library for C"; + homepage = "https://github.com/msteinert/bstring"; + changelog = "https://github.com/msteinert/bstring/releases/tag/v${finalAttrs.version}"; + license = lib.licenses.bsd3; + platforms = lib.platforms.unix; + maintainers = with lib.maintainers; [ nulleric ]; + }; +}) From db9f822dedffdf1e99439b5d81fcf457e69728b5 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 15 Dec 2025 16:27:44 +0000 Subject: [PATCH 099/101] solanum: 0-unstable-2025-10-23 -> 0-unstable-2025-12-10 --- pkgs/by-name/so/solanum/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/so/solanum/package.nix b/pkgs/by-name/so/solanum/package.nix index b7b49f128975..e7fe6017165a 100644 --- a/pkgs/by-name/so/solanum/package.nix +++ b/pkgs/by-name/so/solanum/package.nix @@ -18,13 +18,13 @@ stdenv.mkDerivation { pname = "solanum"; - version = "0-unstable-2025-10-23"; + version = "0-unstable-2025-12-10"; src = fetchFromGitHub { owner = "solanum-ircd"; repo = "solanum"; - rev = "4544f823127c59951c7695f0f260128ee0691a67"; - hash = "sha256-x+i4LUImepwIz5H13W5eNYl9GzgFvNGS1OSLVtl9qmE="; + rev = "b58ba9b980389b064c67fa42052a66508db73b40"; + hash = "sha256-FAT1k9ETN4TozWhXSLWQ7SpvqQ0j/G/uEL0ErYFs8B8="; }; patches = [ From 3ef8c4d143fa2b36453a7cc7f95bc0c1e764cc90 Mon Sep 17 00:00:00 2001 From: K900 Date: Mon, 15 Dec 2025 19:30:28 +0300 Subject: [PATCH 100/101] kdePackages.kirigami: backport patch recommended by upstream --- pkgs/kde/frameworks/kirigami/default.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkgs/kde/frameworks/kirigami/default.nix b/pkgs/kde/frameworks/kirigami/default.nix index 8344d03c1dbb..39b7f8dca2db 100644 --- a/pkgs/kde/frameworks/kirigami/default.nix +++ b/pkgs/kde/frameworks/kirigami/default.nix @@ -6,6 +6,7 @@ qtdeclarative, qt5compat, qqc2-desktop-style, + fetchpatch, }: # Kirigami has a runtime dependency on qqc2-desktop-style, # which has a build time dependency on Kirigami. @@ -19,6 +20,13 @@ let patches = [ ./rb-templates.patch + + # Fix rendering issues in some applications + # FIXME: remove in next update + (fetchpatch { + url = "https://invent.kde.org/frameworks/kirigami/-/commit/19127672cd812d177192cf84da4107f9abed2934.diff"; + hash = "sha256-dh1OwMTksbVTEsEDw4vfBarR3fyBaulQa8SSHsddht0="; + }) ]; extraNativeBuildInputs = [ From fd504c7cee309e76ad8dd814b35bba742e5e9c23 Mon Sep 17 00:00:00 2001 From: Eric Helgeson Date: Wed, 26 Nov 2025 10:45:19 -0600 Subject: [PATCH 101/101] netatalk: 4.2.4 -> 4.3.2 --- pkgs/by-name/ne/netatalk/package.nix | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/ne/netatalk/package.nix b/pkgs/by-name/ne/netatalk/package.nix index 900bfe70bef7..c6111d502cc3 100644 --- a/pkgs/by-name/ne/netatalk/package.nix +++ b/pkgs/by-name/ne/netatalk/package.nix @@ -5,6 +5,7 @@ acl, autoreconfHook, avahi, + bstring, db, libevent, libgcrypt, @@ -28,11 +29,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "netatalk"; - version = "4.2.4"; + version = "4.3.2"; src = fetchurl { url = "mirror://sourceforge/netatalk/netatalk/netatalk-${finalAttrs.version}.tar.xz"; - hash = "sha256-Twe74RipUd10DT9RqHtcr7oklr0LIucEQ49CGqZnD5k="; + hash = "sha256-KXe0/RExgvDMGDM3uiPVcB+yvk4N/Ox+5XW01zpzjTo="; }; nativeBuildInputs = [ @@ -45,6 +46,7 @@ stdenv.mkDerivation (finalAttrs: { buildInputs = [ acl avahi + bstring db libevent libgcrypt @@ -69,7 +71,7 @@ stdenv.mkDerivation (finalAttrs: { "-Dwith-bdb-include-path=${db.dev}/include" "-Dwith-install-hooks=false" "-Dwith-init-hooks=false" - "-Dwith-lockfile-path=/run/lock/" + "-Dwith-lockfile-path=/run/lock" "-Dwith-cracklib=true" "-Dwith-cracklib-path=${cracklib.out}" "-Dwith-statedir-creation=false" @@ -82,6 +84,9 @@ stdenv.mkDerivation (finalAttrs: { homepage = "https://netatalk.io/"; license = lib.licenses.gpl2Plus; platforms = lib.platforms.linux; - maintainers = with lib.maintainers; [ jcumming ]; + maintainers = with lib.maintainers; [ + jcumming + nulleric + ]; }; })