From 099115500494c74f2790518f78468caeac1a2cd3 Mon Sep 17 00:00:00 2001 From: Kajus Naujokaitis Date: Thu, 20 Nov 2025 14:07:05 +0200 Subject: [PATCH 001/108] nixos/tuned: add recommend option, fix ppdSupport, minor refactor - added option `recommend` to allow defining recommend_rules - fixed error when ppdSupport is set to `false` - sorted options and helpers --- nixos/modules/services/hardware/tuned.nix | 161 +++++++++++++--------- 1 file changed, 96 insertions(+), 65 deletions(-) diff --git a/nixos/modules/services/hardware/tuned.nix b/nixos/modules/services/hardware/tuned.nix index 1ce62f6ff011..65a857f4fde8 100644 --- a/nixos/modules/services/hardware/tuned.nix +++ b/nixos/modules/services/hardware/tuned.nix @@ -9,11 +9,53 @@ let cfg = config.services.tuned; moduleFromName = name: lib.getAttrFromPath (lib.splitString "." name) config; - - settingsFormat = pkgs.formats.iniWithGlobalSection { }; - profileFormat = pkgs.formats.ini { }; ppdSettingsFormat = pkgs.formats.ini { }; + profileFormat = pkgs.formats.ini { }; + recommendFormat = pkgs.formats.ini { }; + settingsFormat = pkgs.formats.iniWithGlobalSection { }; + ppdSettingsSubmodule = { + freeformType = ppdSettingsFormat.type; + + options = { + main = lib.mkOption { + type = lib.types.submodule { + options = { + default = lib.mkOption { + type = lib.types.str; + default = "balanced"; + description = "Default PPD profile."; + example = "performance"; + }; + + battery_detection = lib.mkEnableOption "battery detection" // { + default = true; + }; + }; + }; + default = { }; + description = "Core configuration for power-profiles-daemon support."; + }; + + profiles = lib.mkOption { + type = lib.types.attrsOf lib.types.str; + default = { + power-saver = "powersave"; + balanced = "balanced"; + performance = "throughput-performance"; + }; + description = "Map of PPD profiles to native TuneD profiles."; + }; + + battery = lib.mkOption { + type = lib.types.attrsOf lib.types.str; + default = { + balanced = "balanced-battery"; + }; + description = "Map of PPD battery states to TuneD profiles."; + }; + }; + }; settingsSubmodule = { freeformType = settingsFormat.type; @@ -61,66 +103,23 @@ let }; }; }; - - ppdSettingsSubmodule = { - freeformType = ppdSettingsFormat.type; - - options = { - main = lib.mkOption { - type = lib.types.submodule { - options = { - default = lib.mkOption { - type = lib.types.str; - default = "balanced"; - description = "Default PPD profile."; - example = "performance"; - }; - - battery_detection = lib.mkEnableOption "battery detection" // { - default = true; - }; - }; - }; - default = { }; - description = "Core configuration for power-profiles-daemon support."; - }; - - profiles = lib.mkOption { - type = lib.types.attrsOf lib.types.str; - default = { - power-saver = "powersave"; - balanced = "balanced"; - performance = "throughput-performance"; - }; - description = "Map of PPD profiles to native TuneD profiles."; - }; - - battery = lib.mkOption { - type = lib.types.attrsOf lib.types.str; - default = { - balanced = "balanced-battery"; - }; - description = "Map of PPD battery states to TuneD profiles."; - }; - }; - }; in - { options.services.tuned = { enable = lib.mkEnableOption "TuneD"; package = lib.mkPackageOption pkgs "tuned" { }; - settings = lib.mkOption { - type = lib.types.submodule settingsSubmodule; + ppdSettings = lib.mkOption { + type = lib.types.submodule ppdSettingsSubmodule; default = { }; description = '' - Configuration for TuneD. - See {manpage}`tuned-main.conf(5)`. + Settings for TuneD's power-profiles-daemon compatibility service. ''; }; - + ppdSupport = lib.mkEnableOption "translation of power-profiles-daemon API calls to TuneD" // { + default = true; + }; profiles = lib.mkOption { type = lib.types.attrsOf ( lib.types.submodule { @@ -130,7 +129,7 @@ in default = { }; description = '' Profiles for TuneD. - See {manpage}`tuned.conf(5)`. + See {manpage}`tuned.conf(5)` for details. ''; example = { my-cool-profile = { @@ -146,16 +145,44 @@ in }; }; }; - - ppdSupport = lib.mkEnableOption "translation of power-profiles-daemon API calls to TuneD" // { - default = true; - }; - - ppdSettings = lib.mkOption { - type = lib.types.submodule ppdSettingsSubmodule; + recommend = lib.mkOption { + type = recommendFormat.type; default = { }; description = '' - Settings for TuneD's power-profiles-daemon compatibility service. + TuneD rules for `recommend_profile`, written to + `/etc/tuned/recommend.conf`. + + At startup, the daemon evaluates the file in alphabetical order. + The first matching entry is applied. Empty profile rules always match. + + If `services.tuned.ppdSupport` is `true`, settings in + `services.tuned.ppdSettings` take precedence over both the default + behaviour and `services.tuned.recommend`. For example: + `services.tuned.ppdSettings.main.default = "performance";` ensures + the corresponding PPD profile is applied regardless of + `services.tuned.recommend` setting. + + If `ppdSupport` is `false`, only `services.tuned.recommend` is used; + if `recommend` is empty, TuneD's default behaviour applies. + + See {manpage}`tuned-main.conf(5)` for more details. + ''; + example = lib.literalExpression '' + # Enable `virtual-guest` profile for VM guests + virtual-guest = { + virt = ".+"; + }; + + # Default to the `desktop` profile for all other systems + desktop = { }; + ''; + }; + settings = lib.mkOption { + type = lib.types.submodule settingsSubmodule; + default = { }; + description = '' + Configuration for TuneD. + See {manpage}`tuned-main.conf(5)` for details. ''; }; }; @@ -186,6 +213,7 @@ in message = "`services.tuned` conflicts with `${name}`."; }) [ + "hardware.system76.power-daemon" "services.auto-cpufreq" "services.power-profiles-daemon" "services.tlp" @@ -198,11 +226,14 @@ in sections = { }; globalSection = cfg.settings; }; - - "tuned/ppd.conf".source = lib.mkIf cfg.ppdSupport ( - ppdSettingsFormat.generate "ppd.conf" cfg.ppdSettings - ); } + (lib.mkIf cfg.ppdSupport { + "tuned/ppd.conf".source = ppdSettingsFormat.generate "ppd.conf" cfg.ppdSettings; + }) + + (lib.mkIf (cfg.settings.recommend_command && cfg.recommend != { }) { + "tuned/recommend.conf".source = recommendFormat.generate "recommend.conf" cfg.recommend; + }) (lib.mapAttrs' ( name: value: From 716ce143d9ccaa34437f7ad9c8cd774f2db24e1c Mon Sep 17 00:00:00 2001 From: Sizhe Zhao Date: Tue, 7 Oct 2025 23:22:09 +0800 Subject: [PATCH 002/108] nixos/sing-box: wait until network is up --- nixos/modules/services/networking/sing-box.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nixos/modules/services/networking/sing-box.nix b/nixos/modules/services/networking/sing-box.nix index fd209785bbb0..f4d43b603a78 100644 --- a/nixos/modules/services/networking/sing-box.nix +++ b/nixos/modules/services/networking/sing-box.nix @@ -88,6 +88,8 @@ in "${lib.getExe cfg.package} -D \${STATE_DIRECTORY} -C \${RUNTIME_DIRECTORY} run" ]; }; + # After= is specified by upstream + requires = [ "network-online.target" ]; wantedBy = [ "multi-user.target" ]; }; From 6c8f148ecb80c018b3d0b17b61ff4c70151b592d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Wed, 14 Jan 2026 17:14:11 +0100 Subject: [PATCH 003/108] intel-graphics-compiler: 2.24.8 -> 2.27.10 Changelog: https://github.com/intel/intel-graphics-compiler/releases/tag/v2.27.10 --- .../by-name/in/intel-graphics-compiler/package.nix | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pkgs/by-name/in/intel-graphics-compiler/package.nix b/pkgs/by-name/in/intel-graphics-compiler/package.nix index d3d217f9591d..6173d7c85ab1 100644 --- a/pkgs/by-name/in/intel-graphics-compiler/package.nix +++ b/pkgs/by-name/in/intel-graphics-compiler/package.nix @@ -19,7 +19,7 @@ let in stdenv.mkDerivation rec { pname = "intel-graphics-compiler"; - version = "2.24.8"; + version = "2.27.10"; # See the repository for expected versions: # @@ -42,22 +42,22 @@ stdenv.mkDerivation rec { name = "vc-intrinsics"; owner = "intel"; repo = "vc-intrinsics"; - tag = "v0.24.1"; - hash = "sha256-IpScRc+sWEcD8ZH5TinMPVFq1++vIVp774TJsg8mUMY="; + tag = "v0.24.2"; + hash = "sha256-ypHFqgc96m+im7DCe5ZOGMGIhB7mtRYPhEmMSg2+pyc="; }) (fetchFromGitHub { name = "opencl-clang"; owner = "intel"; repo = "opencl-clang"; - tag = "v16.0.6"; - hash = "sha256-qxMnKQWQ32yF2rZGGOel2ynZJKfbAlk9U+ttWuzYRog="; + tag = "v16.0.7"; + hash = "sha256-MaL4DRmIdnBA/DZZezNzbsjWh5mz99mOTUJoqcXE1/c="; }) (fetchFromGitHub { name = "llvm-spirv"; owner = "KhronosGroup"; repo = "SPIRV-LLVM-Translator"; - tag = "v16.0.19"; - hash = "sha256-GTTEThCNPyq0CpD6Vp4L0ZEEqOZ7uLbt9sdgXLs7MUg="; + tag = "v16.0.20"; + hash = "sha256-3ymwHSNqCdMIgzPYIYUIHMjJHSxdcGK11DF8qPM6nMs="; }) ]; From cc95c3128ac7cd2293e26124e39eb9036aa8b1d5 Mon Sep 17 00:00:00 2001 From: Luna Nova Date: Thu, 15 Jan 2026 12:41:33 -0800 Subject: [PATCH 004/108] nixos/i18n.inputMethod.ibus: add KDE to NotShowIn for ibusAutostart ibus on KDE should not be started automatically in this fashion, ibus will pop up an obtrusive notification on start asking to be added to KDE's virtual keyboard setting instead. --- nixos/modules/i18n/input-method/ibus.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nixos/modules/i18n/input-method/ibus.nix b/nixos/modules/i18n/input-method/ibus.nix index aec11b2362fc..eafd949efd73 100644 --- a/nixos/modules/i18n/input-method/ibus.nix +++ b/nixos/modules/i18n/input-method/ibus.nix @@ -25,7 +25,9 @@ let Type=Application Exec=${ibusPackage}/bin/ibus-daemon --daemonize --xim ${impanel} # GNOME will launch ibus using systemd - NotShowIn=GNOME; + # ibus complains loudly when launched from this autoStart file under KDE + # KDE will launch ibus from kwin if enabled in keyboard -> virtual keyboard + NotShowIn=GNOME;KDE; ''; }; in From e0843039f6f7dc8140d349e3c004283d3423ae96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Tue, 20 Jan 2026 13:24:21 +0100 Subject: [PATCH 005/108] nixos/gatus: simplify configFile defaultText --- nixos/modules/services/monitoring/gatus.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/nixos/modules/services/monitoring/gatus.nix b/nixos/modules/services/monitoring/gatus.nix index eb459ddb61ae..3251fa961f5f 100644 --- a/nixos/modules/services/monitoring/gatus.nix +++ b/nixos/modules/services/monitoring/gatus.nix @@ -36,9 +36,7 @@ in configFile = mkOption { type = path; default = settingsFormat.generate "gatus.yaml" cfg.settings; - defaultText = literalExpression '' - let settingsFormat = pkgs.formats.yaml { }; in settingsFormat.generate "gatus.yaml" cfg.settings; - ''; + defaultText = literalExpression ''(pkgs.formats.yaml { }).generate "gatus.yaml" config.services.gatus.settings''; description = '' Path to the Gatus configuration file. Overrides any configuration made using the `settings` option. From d75b80889686fca337e49923cd70c979beecd6c2 Mon Sep 17 00:00:00 2001 From: Ethan Carter Edwards Date: Wed, 21 Jan 2026 21:48:06 -0500 Subject: [PATCH 006/108] tmux: modernize, add versionCheckHook Signed-off-by: Ethan Carter Edwards --- pkgs/by-name/tm/tmux/package.nix | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/tm/tmux/package.nix b/pkgs/by-name/tm/tmux/package.nix index 35a49b04d009..05c323f106dd 100644 --- a/pkgs/by-name/tm/tmux/package.nix +++ b/pkgs/by-name/tm/tmux/package.nix @@ -16,6 +16,8 @@ withUtempter ? stdenv.hostPlatform.isLinux && !stdenv.hostPlatform.isMusl, libutempter, withSixel ? true, + versionCheckHook, + nix-update-script, }: stdenv.mkDerivation (finalAttrs: { @@ -30,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: { src = fetchFromGitHub { owner = "tmux"; repo = "tmux"; - rev = finalAttrs.version; + tag = finalAttrs.version; hash = "sha256-VwOyR9YYhA/uyVRJbspNrKkJWJGYFFktwPnnwnIJ97s="; }; @@ -64,6 +66,10 @@ stdenv.mkDerivation (finalAttrs: { echo "${finalAttrs.passthru.terminfo}" >> $out/nix-support/propagated-user-env-packages ''; + nativeInstallCheckInputs = [ versionCheckHook ]; + versionCheckProgramArg = "-V"; + doInstallCheck = true; + passthru = { terminfo = runCommand "tmux-terminfo" { nativeBuildInputs = [ ncurses ]; } ( if stdenv.hostPlatform.isDarwin then @@ -81,10 +87,12 @@ stdenv.mkDerivation (finalAttrs: { ln -sv ${ncurses}/share/terminfo/t/{tmux,tmux-256color,tmux-direct} $out/share/terminfo/t '' ); + updateScript = nix-update-script { }; }; meta = { homepage = "https://tmux.github.io/"; + downloadPage = "https://github.com/tmux/tmux"; description = "Terminal multiplexer"; longDescription = '' tmux is intended to be a modern, BSD-licensed alternative to programs such as GNU screen. Major features include: From fea20d1accfb70c6cfd8465b288208184ad433bb Mon Sep 17 00:00:00 2001 From: Ethan Carter Edwards Date: Wed, 21 Jan 2026 21:48:49 -0500 Subject: [PATCH 007/108] tmux: add ethancedwards8 to maintainers I maintian a pretty popular tmux plugin and would like to get more involved in the NixOS tmux community. Link: https://github.com/dracula/tmux Signed-off-by: Ethan Carter Edwards --- pkgs/by-name/tm/tmux/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/tm/tmux/package.nix b/pkgs/by-name/tm/tmux/package.nix index 05c323f106dd..d3907e4b164e 100644 --- a/pkgs/by-name/tm/tmux/package.nix +++ b/pkgs/by-name/tm/tmux/package.nix @@ -111,6 +111,7 @@ stdenv.mkDerivation (finalAttrs: { platforms = lib.platforms.unix; mainProgram = "tmux"; maintainers = with lib.maintainers; [ + ethancedwards8 fpletz ]; }; From ff7d11dad18881e150e44c64f1d8dcaf3cd68688 Mon Sep 17 00:00:00 2001 From: Abhishek Adhikari Date: Thu, 22 Jan 2026 11:19:25 +0530 Subject: [PATCH 008/108] maintainers: update email for sith-lord-vader --- maintainers/maintainer-list.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 413061ab2dfa..c268781703b8 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -24468,7 +24468,7 @@ name = "Johannes Klein"; }; sith-lord-vader = { - email = "abhiayush23@gmail.com"; + email = "nixpkgs@xpertsre.rocks"; github = "sith-lord-vader"; githubId = 24388085; name = "Abhishek Adhikari"; From d0af4d6a943e16f221fb2f5e557fae7e672d4501 Mon Sep 17 00:00:00 2001 From: tsandrini Date: Thu, 22 Jan 2026 13:35:14 +0100 Subject: [PATCH 009/108] python3Packages.certbot-dns-wedos: init at 2.4 --- .../certbot-dns-wedos/default.nix | 40 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 1 + pkgs/top-level/python-packages.nix | 2 + 3 files changed, 43 insertions(+) create mode 100644 pkgs/development/python-modules/certbot-dns-wedos/default.nix diff --git a/pkgs/development/python-modules/certbot-dns-wedos/default.nix b/pkgs/development/python-modules/certbot-dns-wedos/default.nix new file mode 100644 index 000000000000..a34d525163e3 --- /dev/null +++ b/pkgs/development/python-modules/certbot-dns-wedos/default.nix @@ -0,0 +1,40 @@ +{ + lib, + buildPythonPackage, + fetchPypi, + acme, + certbot, + setuptools, + requests, + pytz, +}: + +buildPythonPackage rec { + pname = "certbot-dns-wedos"; + version = "2.4"; + pyproject = true; + + src = fetchPypi { + inherit version; + pname = "certbot_dns_wedos"; + hash = "sha256-Sle3hoBLwVPF30caCyYtt3raY5Gs9ekg0DthvHxvB4E="; + }; + + build-system = [ setuptools ]; + + dependencies = [ + certbot + acme + requests + pytz + ]; + + pythonImportsCheck = [ "certbot_dns_wedos" ]; + + meta = { + description = "Wedos DNS Authenticator plugin for Certbot"; + homepage = "https://github.com/clazzor/certbot-dns-wedos"; + license = lib.licenses.asl20; + maintainers = [ lib.maintainers.tsandrini ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6c49df86f211..76637566876c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6592,6 +6592,7 @@ with pkgs; certbot-dns-ovh certbot-dns-rfc2136 certbot-dns-route53 + certbot-dns-wedos certbot-nginx ] ); diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 13735ac2daf2..57c6b6d01d74 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -2557,6 +2557,8 @@ self: super: with self; { certbot-dns-route53 = callPackage ../development/python-modules/certbot-dns-route53 { }; + certbot-dns-wedos = callPackage ../development/python-modules/certbot-dns-wedos { }; + certbot-nginx = callPackage ../development/python-modules/certbot-nginx { }; certifi = callPackage ../development/python-modules/certifi { }; From 30ff8e59890d31b3dd03a89d7138b999a3cabc0e Mon Sep 17 00:00:00 2001 From: Rafael Ieda Date: Thu, 22 Jan 2026 16:15:04 -0300 Subject: [PATCH 010/108] shattered-pixel-dungeon: 3.2.5 -> 3.3.3 --- .../sh/shattered-pixel-dungeon/deps.json | 98 +++++++------------ .../sh/shattered-pixel-dungeon/package.nix | 4 +- 2 files changed, 35 insertions(+), 67 deletions(-) diff --git a/pkgs/by-name/sh/shattered-pixel-dungeon/deps.json b/pkgs/by-name/sh/shattered-pixel-dungeon/deps.json index bd67d4f5150f..7c7f6cd5a330 100644 --- a/pkgs/by-name/sh/shattered-pixel-dungeon/deps.json +++ b/pkgs/by-name/sh/shattered-pixel-dungeon/deps.json @@ -1,73 +1,14 @@ { "!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.", "!version": 1, - "https://central.sonatype.com/repository/maven-snapshots/com/badlogicgames": { - "gdx#gdx-backend-lwjgl3/1.13.6-20251003.170113-33/SNAPSHOT": { - "jar": "sha256-T2/VHXjfySwA+IjO2Bm0h29WvyoJsKyLmx2lkkBVJRw=", - "module": "sha256-JNBWxVhzTj4LFBGT/kZc36chXJ2uqwaUtcMUGQFLn2I=", - "pom": "sha256-P7DA/UDAWmA+/t4H3EJkktKK/e9+pX0gH4fpljqZXWQ=" - }, - "gdx#gdx-freetype-platform/1.13.6-20251003.170113-34/SNAPSHOT": { - "pom": "sha256-kTnggHqjEcoBlUTM+K15WHCqKodiKvGPrgnTHuTKU4o=" - }, - "gdx#gdx-freetype-platform/1.13.6-20251003.170113-34/SNAPSHOT/natives-desktop": { - "jar": "sha256-oHueMYiUcjnj/Ub6rxlyvLcqXRCVNlqGlV27aYHBqAs=" - }, - "gdx#gdx-freetype/1.13.6-20251003.170113-34/SNAPSHOT": { - "jar": "sha256-S6xHm1D4e5bWdtozqD1fwHe86HZAfnZ6KhzlIxXFf7s=", - "module": "sha256-gqUIFknNKRsg9HMnX0Gis0IEvIpJW8kphcjtwCAoLo4=", - "pom": "sha256-wi92v9kAtTv++AZjKT3wJYBeISF98NLNy26X9kEVFSk=" - }, - "gdx#gdx-platform/1.13.6-20251003.170113-33/SNAPSHOT": { - "pom": "sha256-UW0w1+UTHDD4HaYruY6QVmd/ur/0vHS4wYDZ5hDCEuQ=" - }, - "gdx#gdx-platform/1.13.6-20251003.170113-33/SNAPSHOT/natives-desktop": { - "jar": "sha256-yBteE7BAK+MEG1e43PjmQZy03S6LIcvJt4W41bGp34s=" - }, - "gdx#gdx/1.13.6-20251003.170113-33/SNAPSHOT": { - "jar": "sha256-GUbkm354hjSxjlPFsfQmTQi5FDcGEQUEry+avKWhsxI=", - "module": "sha256-t9BpvisJ2P37hHmwRUGxAKbCwhH6faZXL9AZ9V4T8Hw=", - "pom": "sha256-aDtJJZT/VHJyxd5RKFrQbc32IFT2wk9R7LeDvhBt8v4=" - }, - "gdx/gdx-backend-lwjgl3/1.13.6-SNAPSHOT/maven-metadata": { - "xml": { - "groupId": "com.badlogicgames.gdx", - "lastUpdated": "20251003191628" - } - }, - "gdx/gdx-freetype-platform/1.13.6-SNAPSHOT/maven-metadata": { - "xml": { - "groupId": "com.badlogicgames.gdx", - "lastUpdated": "20251003191640" - } - }, - "gdx/gdx-freetype/1.13.6-SNAPSHOT/maven-metadata": { - "xml": { - "groupId": "com.badlogicgames.gdx", - "lastUpdated": "20251003191639" - } - }, - "gdx/gdx-platform/1.13.6-SNAPSHOT/maven-metadata": { - "xml": { - "groupId": "com.badlogicgames.gdx", - "lastUpdated": "20251010022949" - } - }, - "gdx/gdx/1.13.6-SNAPSHOT/maven-metadata": { - "xml": { - "groupId": "com.badlogicgames.gdx", - "lastUpdated": "20251003191624" - } - } - }, "https://plugins.gradle.org/m2/org": { - "beryx#badass-runtime-plugin/1.13.1": { - "jar": "sha256-IW3RL1SacHD31B2wTupXAaF5Z0mzVerAzkMVLs0DGBc=", - "module": "sha256-Jf4I7QwECTJuc38vDJ/7BhyFQihl53ATdMOVyjpy9PA=", - "pom": "sha256-qZgenE/Me3hqUL+/IW93EBgs27ECjqsGiavMYeS37XI=" + "beryx#badass-runtime-plugin/2.0.1": { + "jar": "sha256-qc8YDAVtxs/vU2XOjloPJml5eJr7CUdlERPRyqm2UhQ=", + "module": "sha256-Y1r26XwZhilpzegxJvdwltB8i536+fk+x2sQYCukbcY=", + "pom": "sha256-l6xBsi4rPVcN9UXfSjFHmkVqH5O0bMl27Jo/WdHw/Ak=" }, - "beryx/runtime#org.beryx.runtime.gradle.plugin/1.13.1": { - "pom": "sha256-7SsiPX22wuiujLyvq8E96b0kKfwfNMtEFVh0jJCBu+U=" + "beryx/runtime#org.beryx.runtime.gradle.plugin/2.0.1": { + "pom": "sha256-Jm5jyHX+OFPIobK4qpMSMU2uK+ceihR2Z/mSnRwc1tQ=" }, "slf4j#slf4j-api/1.7.32": { "jar": "sha256-NiT4R0wa9G11+YvAl9eGSjI8gbOAiqQ2iabhxgHAJ74=", @@ -78,11 +19,38 @@ } }, "https://repo.maven.apache.org/maven2": { + "com/badlogicgames/gdx#gdx-backend-lwjgl3/1.14.0": { + "jar": "sha256-3pV68nyhyv+3eO2hqNMbmDXcc/AEcB0WduyjOWMHICA=", + "module": "sha256-GJYW7PSrxbXLJMt1Xwc+IsogkUv4ojCdFdJ/fnpoyOU=", + "pom": "sha256-S+xaAWtXxkg0Rruzr4XV0V9f4gedhSpnTcVLMOWd9pY=" + }, + "com/badlogicgames/gdx#gdx-freetype-platform/1.14.0": { + "pom": "sha256-qQmd0nb4AW2O5i/+TUneaeGohmjS2crXrGc7PvSbKM0=" + }, + "com/badlogicgames/gdx#gdx-freetype-platform/1.14.0/natives-desktop": { + "jar": "sha256-SFwrJdkZBLlBQ0Bm+BAgBpJHMMLCONBIcq5goC63Ofc=" + }, + "com/badlogicgames/gdx#gdx-freetype/1.14.0": { + "jar": "sha256-Pr/nUymeEYNLyIzzxMDCzIucJDWsA+VgsKh2QlZYK7Q=", + "module": "sha256-fUf8X7lgc5I5ddUqrgMuACcJ144JKU/wOK6K3R7W44A=", + "pom": "sha256-Rtq9qlQ6ZRDgUGOMNmphRdkGkbIaBiEf+rSbICMyQiw=" + }, "com/badlogicgames/gdx#gdx-jnigen-loader/2.5.2": { "jar": "sha256-34HyPP1nhcUtNeEI7qo5MPVZ1NJ3CmEC51ynv6b58no=", "module": "sha256-jwtii5G9Ez24XxUuFZMprPf0tmeDvR32AcNZfcJRIiQ=", "pom": "sha256-i0dgu2bbPz+ZuEBj7z6ZDWOhzZx81XSlatf07kvRdoc=" }, + "com/badlogicgames/gdx#gdx-platform/1.14.0": { + "pom": "sha256-2Ps74A82eRr6thqFkeVCr7qkkQEHoFdUnMlwBu2NoRs=" + }, + "com/badlogicgames/gdx#gdx-platform/1.14.0/natives-desktop": { + "jar": "sha256-qKjJzM9endUYJWs8315raJpdaWoU4EYK9bDLxR218vE=" + }, + "com/badlogicgames/gdx#gdx/1.14.0": { + "jar": "sha256-owWJXpFfxfWUg95dOZokoMpi/hFQFf/oIQw249ZPgSY=", + "module": "sha256-xJCoyufsdrraEiLaEyJl5fqyyyzc3q51IXrIhkmUWyU=", + "pom": "sha256-CiUFNinRwfRgZMN7orOC0MRmQstKTssVF3jbNXEKmgw=" + }, "com/badlogicgames/gdx-controllers#gdx-controllers-core/2.2.4": { "jar": "sha256-BNpnYnsaNkbvjyFMkdKWdCp8BVl9vCFnqqsJy9zHdHA=", "module": "sha256-dxOP5TsOdeRf4dOROsublicWFxCuVPJUR0sizmp6pIA=", diff --git a/pkgs/by-name/sh/shattered-pixel-dungeon/package.nix b/pkgs/by-name/sh/shattered-pixel-dungeon/package.nix index c37d7606ae92..0ec4963cf84e 100644 --- a/pkgs/by-name/sh/shattered-pixel-dungeon/package.nix +++ b/pkgs/by-name/sh/shattered-pixel-dungeon/package.nix @@ -6,13 +6,13 @@ callPackage ./generic.nix rec { pname = "shattered-pixel-dungeon"; - version = "3.2.5"; + version = "3.3.3"; src = fetchFromGitHub { owner = "00-Evan"; repo = "shattered-pixel-dungeon"; tag = "v${version}"; - hash = "sha256-ltCKM46nzZZVJqHzo3V0Igyd4q+uD95fuLMWCi18jbQ="; + hash = "sha256-8M8IVRsjaaOAEVJIs8jGLNwPFaUSDCkZxOnzCkxGhUk="; }; patches = [ ]; From 7f9f9be2c0d34ddaf46f776bb6c022178d95839c Mon Sep 17 00:00:00 2001 From: ZHAO Jin-Xiang Date: Fri, 16 Jan 2026 18:05:10 +0800 Subject: [PATCH 011/108] kilocode-cli: 0.18.0 -> 0.25.1 --- pkgs/by-name/ki/kilocode-cli/package.nix | 59 ++++++++++++++++++++---- 1 file changed, 49 insertions(+), 10 deletions(-) diff --git a/pkgs/by-name/ki/kilocode-cli/package.nix b/pkgs/by-name/ki/kilocode-cli/package.nix index 2d600ce64577..01531410a5ff 100644 --- a/pkgs/by-name/ki/kilocode-cli/package.nix +++ b/pkgs/by-name/ki/kilocode-cli/package.nix @@ -1,33 +1,46 @@ { lib, + stdenv, stdenvNoCC, fetchFromGitHub, fetchPnpmDeps, + fetchNpmDeps, nodejs, writableTmpDirAsHomeHook, pnpmConfigHook, pnpm, unzip, patchelf, + autoPatchelfHook, ripgrep, versionCheckHook, nix-update-script, }: stdenvNoCC.mkDerivation (finalAttrs: { pname = "kilocode-cli"; - version = "0.18.0"; + version = "0.25.1"; src = fetchFromGitHub { owner = "Kilo-Org"; repo = "kilocode"; tag = "cli-v${finalAttrs.version}"; - hash = "sha256-zEhv/tcKMR9D+aTVxaw3LBjbEBpuy4o0cpV/vowOFSY="; + hash = "sha256-XlJ9/9FABLpKVJXdIRzbzOpJVXdIzgFvPPeER1LRsuk="; }; pnpmDeps = fetchPnpmDeps { inherit (finalAttrs) pname version src; - fetcherVersion = 2; - hash = "sha256-fTCuTAEYNyqitBvOafQyi3BDqI/O7u7yEhSPH7FVDUg="; + fetcherVersion = 3; + hash = "sha256-Q/LamZwVaIQVILtXRi1RQrYtpxYJWEKPAt3knwm47S0="; + }; + + npmDeps = fetchNpmDeps { + name = "${finalAttrs.pname}-npm-deps"; + inherit (finalAttrs) src; + sourceRoot = "${finalAttrs.src.name}/cli"; + postPatch = '' + cp ./npm-shrinkwrap.dist.json ./npm-shrinkwrap.json + ''; + hash = "sha256-wH4Gyd5nv8sCSQStFqIidoICvlXXEs2xNNX+DH133wA="; }; buildInputs = [ @@ -41,7 +54,8 @@ stdenvNoCC.mkDerivation (finalAttrs: { nodejs unzip patchelf - ]; + ] + ++ lib.optionals stdenv.hostPlatform.isElf [ autoPatchelfHook ]; strictDeps = true; @@ -50,6 +64,36 @@ stdenvNoCC.mkDerivation (finalAttrs: { buildPhase = '' runHook preBuild + mkdir -p ./cli/.dist/ + find ./cli -maxdepth 1 -type f -name "*.dist.*" -print0 | while IFS= read -r -d "" file; do + cp "$file" "./cli/.dist/$(basename "$file" | sed 's/\.dist\././')" + done + + if ! diff "$PWD/cli/npm-shrinkwrap.dist.json" "$npmDeps/package-lock.json"; then + echo "npm-shrinkwrap.json is out of date" + echo "The npm-shrinkwrap.json in src is not the same as the in $npmDeps." + echo "To fix the issue:" + echo '1. Use `lib.fakeHash` as the npmDepsHash value' + echo "2. Build the derivation and wait for it to fail with a hash mismatch" + echo "3. Copy the 'got: sha256-' value back into the npmDepsHash field" + exit 1 + fi + export npm_config_cache="$npmDeps" + export npm_config_offline="true" + export npm_config_progress="false" + ( + cd ./cli/.dist + npm ci --omit=dev --ignore-scripts + patchShebangs node_modules + if [ -d node_modules/@vscode/ripgrep ]; then + mkdir -p node_modules/@vscode/ripgrep/bin + ln -s ${lib.getExe ripgrep} node_modules/@vscode/ripgrep/bin/rg + fi + npm rebuild + ) + substituteInPlace cli/package.json \ + --replace-fail 'npm install --omit=dev --prefix ./dist' 'mv ./.dist/node_modules ./dist/node_modules' + node --run cli:bundle touch ./cli/dist/.env @@ -64,11 +108,6 @@ stdenvNoCC.mkDerivation (finalAttrs: { ln -s $out/lib/node_modules/@kilocode/cli/index.js $out/bin/kilocode chmod +x $out/bin/kilocode - pushd $out/lib/node_modules/@kilocode/cli - rm node_modules/@vscode/ripgrep/bin/rg - ln -s ${ripgrep}/bin/rg node_modules/@vscode/ripgrep/bin/rg - popd - runHook postInstall ''; From fa47dc9a1071966159bf845a6e7238a283e91090 Mon Sep 17 00:00:00 2001 From: Adrian Perez Date: Tue, 27 Jan 2026 21:00:04 -0800 Subject: [PATCH 012/108] daisydisk: 4.32 -> 4.33.2 --- pkgs/by-name/da/daisydisk/package.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/da/daisydisk/package.nix b/pkgs/by-name/da/daisydisk/package.nix index eeea25bd4731..2894bb37728f 100644 --- a/pkgs/by-name/da/daisydisk/package.nix +++ b/pkgs/by-name/da/daisydisk/package.nix @@ -8,14 +8,13 @@ common-updater-scripts, writeShellApplication, }: - stdenvNoCC.mkDerivation (finalAttrs: { pname = "daisydisk"; - version = "4.32"; + version = "4.33.2"; src = fetchzip { url = "https://daisydiskapp.com/download/DaisyDisk.zip"; - hash = "sha256-HRW851l3zCq43WmLkElvVlIEmfCsCUMFw/LL2cPa2Xk="; + hash = "sha256-YkXjaDbnwkQUsfhzCA5xQ6C6NGjQV6qj7znyjcKgwIg="; stripRoot = false; }; From d57e088c5e997f79389c5f257004ea1d7d1a2174 Mon Sep 17 00:00:00 2001 From: Bazyli Cyran Date: Thu, 22 Jan 2026 20:57:40 +0100 Subject: [PATCH 013/108] btrsync: init at 0.3 --- .../python-modules/btrsync/default.nix | 38 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + pkgs/top-level/python-packages.nix | 2 + 3 files changed, 42 insertions(+) create mode 100644 pkgs/development/python-modules/btrsync/default.nix diff --git a/pkgs/development/python-modules/btrsync/default.nix b/pkgs/development/python-modules/btrsync/default.nix new file mode 100644 index 000000000000..4662f578f343 --- /dev/null +++ b/pkgs/development/python-modules/btrsync/default.nix @@ -0,0 +1,38 @@ +{ + lib, + fetchFromGitHub, + buildPythonPackage, + setuptools, + btrfs-progs, + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "btrsync"; + version = "0.3"; + pyproject = true; + + src = fetchFromGitHub { + owner = "andreittr"; + repo = "btrsync"; + tag = "v${version}"; + hash = "sha256-1LpHO70Yli9VG1UeqPZWM2qUMUbSbdgNP/r7FhUY/h4="; + }; + + build-system = [ setuptools ]; + + propagatedBuildInputs = [ btrfs-progs ]; + + nativeCheckInputs = [ pytestCheckHook ]; + + pythonImportsCheck = [ "btrsync" ]; + + meta = { + description = "Btrfs replication made easy"; + homepage = "https://github.com/andreittr/btrsync"; + changelog = "https://github.com/andreittr/btrsync/blob/${src.tag}/CHANGELOG.md"; + license = lib.licenses.gpl3Only; + mainProgram = "btrsync"; + maintainers = with lib.maintainers; [ bcyran ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 56af7fff1b8c..c5b7d1d363ff 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -981,6 +981,8 @@ with pkgs; auditwheel = with python3Packages; toPythonApplication auditwheel; + btrsync = with python3Packages; toPythonApplication btrsync; + davinci-resolve-studio = callPackage ../by-name/da/davinci-resolve/package.nix { studioVariant = true; }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index abd85a81e1d8..4bfe9ac17659 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -2309,6 +2309,8 @@ self: super: with self; { btrfsutil = callPackage ../development/python-modules/btrfsutil { }; + btrsync = callPackage ../development/python-modules/btrsync { }; + btsmarthub-devicelist = callPackage ../development/python-modules/btsmarthub-devicelist { }; btsocket = callPackage ../development/python-modules/btsocket { }; From db79738455412dc2c92e330adaf8ffbe4a46a2bc Mon Sep 17 00:00:00 2001 From: sshine Date: Thu, 22 Jan 2026 16:24:29 +0100 Subject: [PATCH 014/108] hcloud-upload-image: init at 1.3.0 --- .../hc/hcloud-upload-image/package.nix | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 pkgs/by-name/hc/hcloud-upload-image/package.nix diff --git a/pkgs/by-name/hc/hcloud-upload-image/package.nix b/pkgs/by-name/hc/hcloud-upload-image/package.nix new file mode 100644 index 000000000000..e38f5648bbb2 --- /dev/null +++ b/pkgs/by-name/hc/hcloud-upload-image/package.nix @@ -0,0 +1,51 @@ +{ + buildGoModule, + fetchFromGitHub, + installShellFiles, + lib, + stdenv, +}: + +buildGoModule rec { + pname = "hcloud-upload-image"; + version = "1.3.0"; + + src = fetchFromGitHub { + owner = "apricote"; + repo = "hcloud-upload-image"; + tag = "v${version}"; + hash = "sha256-1u9tpzciYjB/EgBI81pg9w0kez7hHZON7+AHvfKW7k0="; + }; + + vendorHash = "sha256-IdOAUBPg0CEuHd2rdc7jOlw0XtnAhr3PVPJbnFs2+x4="; + + ldflags = [ + "-s" + "-w" + "-X main.version=${version}" + ]; + + subPackages = [ "." ]; + + nativeBuildInputs = [ installShellFiles ]; + + postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' + for shell in bash fish zsh; do + $out/bin/hcloud-upload-image completion $shell > hcloud.$shell + installShellCompletion hcloud.$shell + done + ''; + + env.GOWORK = "off"; + + meta = { + changelog = "https://github.com/apricote/hcloud-upload-image/releases/tag/v${version}"; + description = "Quickly upload any raw disk images into your Hetzner Cloud projects"; + mainProgram = "hcloud-upload-image"; + homepage = "https://github.com/apricote/hcloud-upload-image"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ + sshine + ]; + }; +} From 78344d55e6914635415909fc7b20cec4e4167149 Mon Sep 17 00:00:00 2001 From: Blu3Souls Date: Wed, 4 Feb 2026 15:23:17 +0100 Subject: [PATCH 015/108] maintainers: add Blu3 --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 6a8ae16e34be..a0257110e90a 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -3614,6 +3614,12 @@ githubId = 535135; name = "Brennon Loveless"; }; + Blu3 = { + name = "Blu3"; + email = "Blu3SoulsIT@gmail.com"; + github = "Blu3SoulsIT"; + githubId = 96670566; + }; blusk = { email = "bluskript@gmail.com"; github = "bluskript"; From 4a3e55f2969f7e422de57a1a9991d22a0b30330c Mon Sep 17 00:00:00 2001 From: Benjamin Tan Date: Fri, 9 Jan 2026 07:18:00 +0800 Subject: [PATCH 016/108] maintainers: add bnjmnt4n --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 73ee9dcd54e2..f12f5ddf9909 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -3633,6 +3633,12 @@ github = "bmwalters"; githubId = 4380777; }; + bnjmnt4n = { + name = "Benjamin Tan"; + github = "bnjmnt4n"; + githubId = 813865; + email = "benjamin@dev.ofcr.se"; + }; bnlrnz = { github = "bnlrnz"; githubId = 11310385; From 49c94e4ae86cb793d98dd3ae6e3462338674d31a Mon Sep 17 00:00:00 2001 From: Benjamin Tan Date: Fri, 9 Jan 2026 07:18:00 +0800 Subject: [PATCH 017/108] git-pkgs: init at 0.11.0 git-pkgs [0] is a git subcommand for analyzing package/dependency usage in git repositories over time. [0]: https://github.com/git-pkgs/git-pkgs --- pkgs/by-name/gi/git-pkgs/package.nix | 52 ++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 pkgs/by-name/gi/git-pkgs/package.nix diff --git a/pkgs/by-name/gi/git-pkgs/package.nix b/pkgs/by-name/gi/git-pkgs/package.nix new file mode 100644 index 000000000000..5b67fe053d4c --- /dev/null +++ b/pkgs/by-name/gi/git-pkgs/package.nix @@ -0,0 +1,52 @@ +{ + lib, + stdenv, + fetchFromGitHub, + buildGoModule, + installShellFiles, +}: +buildGoModule rec { + pname = "git-pkgs"; + version = "0.11.0"; + + src = fetchFromGitHub { + owner = "git-pkgs"; + repo = "git-pkgs"; + tag = "v${version}"; + hash = "sha256-XjW3qwybTmzW2CNgu1Edgs5ZZ9xl3+uS4sT8VWD3jyQ="; + }; + + vendorHash = "sha256-/LJwq17f7SAjSV2ZcLrdaKZYf9RVJ9wtYqEsW0ubT1Q="; + + subPackages = [ "." ]; + + ldflags = [ + "-X github.com/git-pkgs/git-pkgs/cmd.version=${version}" + ]; + + # Tries to access the internet. + doCheck = false; + + nativeBuildInputs = [ installShellFiles ]; + + postBuild = '' + go run scripts/generate-man.go + installManPage man/*.1 + ''; + + postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' + installShellCompletion --cmd git-pkgs \ + --bash <($out/bin/git-pkgs completion bash) \ + --fish <($out/bin/git-pkgs completion fish) \ + --zsh <($out/bin/git-pkgs completion zsh) + ''; + + meta = { + homepage = "https://github.com/git-pkgs/git-pkgs"; + description = "Git subcommand for analyzing package/dependency usage in git repositories over time"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ bnjmnt4n ]; + platforms = lib.platforms.unix; + mainProgram = "git-pkgs"; + }; +} From 8cd06c7ea82f9ee118c1e3df1e6621992cc378f2 Mon Sep 17 00:00:00 2001 From: Tucker Shea Date: Fri, 26 Dec 2025 19:33:30 -0500 Subject: [PATCH 018/108] nixos/malloc: warn about old Scudo options NixOS 25.11 uses standalone Scudo for the first time (85b124c). With this change, options are now snake_case instead of CamelCase. https://llvm.org/docs/ScudoHardenedAllocator.html#options There is currently no breaking-change warning or evaluation warning to alert users of this change. As a consequence, users may run into scudo's runtime warnings. This adds a straightforward evaluation-time warning if an old-style option is detected. --- nixos/modules/config/malloc.nix | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/nixos/modules/config/malloc.nix b/nixos/modules/config/malloc.nix index 8959a99f7b7b..645b2b56f350 100644 --- a/nixos/modules/config/malloc.nix +++ b/nixos/modules/config/malloc.nix @@ -122,6 +122,31 @@ in }; config = lib.mkIf (cfg.provider != "libc") { + # Legacy (LLVM < 13) Scudo uses CamelCase options. + # Standalone (LLVM >= 13) Scudo uses snake_case options. + # NixOS switched in 25.11: https://github.com/NixOS/nixpkgs/pull/444605 + warnings = + let + scudoOpts = config.environment.variables.SCUDO_OPTIONS; + + legacyOptionNames = [ + "QuarantineSizeKb" + "QuarantineChunksUpToSize" + "ThreadLocalQuarantineSizeKb" + "DeallocationTypeMismatch" + "DeleteSizeMismatch" + "ZeroContents" + ]; + + # Check which legacy options are in SCUDO_OPTIONS, + # so we can warn the user about the change. + legacyOptionsUsed = lib.lists.filter (opt: lib.strings.hasInfix opt scudoOpts) legacyOptionNames; + in + lib.optional (cfg.provider == "scudo" && legacyOptionsUsed != [ ]) '' + environment.variables.SCUDO_OPTIONS: ${lib.concatStringsSep ", " legacyOptionsUsed} is/are no longer valid Scudo options. + Use snake_case instead of CamelCase: https://llvm.org/docs/ScudoHardenedAllocator.html#options + ''; + environment.etc."ld-nix.so.preload".text = '' ${providerLibPath} ''; From ecf7cf89ab736d2a99aefe6ebd6b5098dc00589d Mon Sep 17 00:00:00 2001 From: sophronesis Date: Fri, 6 Feb 2026 14:25:40 +0100 Subject: [PATCH 019/108] maintainers: add sophronesis --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 3c60e66f9aa1..9d58f348c4d8 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -24948,6 +24948,12 @@ githubId = 13762043; matrix = "@sophie:nue.soopy.moe"; }; + sophronesis = { + email = "oleksandr.buzynnyi@gmail.com"; + github = "sophronesis"; + githubId = 13190573; + name = "Oleksandr Buzynnyi"; + }; sophrosyne = { email = "joshuaortiz@tutanota.com"; github = "sophrosyne97"; From 168064f4c82198944e375390ee40104cbd8bafcd Mon Sep 17 00:00:00 2001 From: Blu3Souls Date: Wed, 4 Feb 2026 15:58:19 +0100 Subject: [PATCH 020/108] arcdps-log-manager: init at 1.15 Adding arcdps Log Manager for Guild Wars 2 log files. https://github.com/gw2scratch/evtc --- pkgs/by-name/ar/arcdps-log-manager/deps.json | 509 ++++++++++++++++++ .../by-name/ar/arcdps-log-manager/package.nix | 75 +++ 2 files changed, 584 insertions(+) create mode 100644 pkgs/by-name/ar/arcdps-log-manager/deps.json create mode 100644 pkgs/by-name/ar/arcdps-log-manager/package.nix diff --git a/pkgs/by-name/ar/arcdps-log-manager/deps.json b/pkgs/by-name/ar/arcdps-log-manager/deps.json new file mode 100644 index 000000000000..913dfe7e63fd --- /dev/null +++ b/pkgs/by-name/ar/arcdps-log-manager/deps.json @@ -0,0 +1,509 @@ +[ + { + "pname": "AtkSharp", + "version": "3.24.24.34", + "hash": "sha256-GrOzO4YDMKJNHAnqLF+c44iGYlvazGTOuRLUnuLbwco=" + }, + { + "pname": "CairoSharp", + "version": "3.24.24.34", + "hash": "sha256-/80xbYSPU8+6twoXRjES8PtV7dKB6fQoe6EqBmawzV8=" + }, + { + "pname": "DebounceThrottle", + "version": "2.0.0", + "hash": "sha256-STqGsbo9T4Xb7LywHwZei9hTVD2kqaxStobW+KWebIg=" + }, + { + "pname": "Eto.Forms", + "version": "2.6.1", + "hash": "sha256-Dhp61n6aIgp6TYUhxgyM9ujSb0OfBsIMKi14Zo32jF0=", + "url": "https://www.myget.org/F/eto/api/v3/flatcontainer/eto.forms/2.6.1/eto.forms.2.6.1.nupkg" + }, + { + "pname": "Eto.Platform.Gtk", + "version": "2.6.1", + "hash": "sha256-Shn2PnJVM77ki3C4STwQeA2nmXFUXvm4ffmhz/xLXXY=", + "url": "https://www.myget.org/F/eto/api/v3/flatcontainer/eto.platform.gtk/2.6.1/eto.platform.gtk.2.6.1.nupkg" + }, + { + "pname": "GdkSharp", + "version": "3.24.24.34", + "hash": "sha256-pQOp2jft19vVN+gSjD0tHfNGucss7ruy1xyys6IHHWQ=" + }, + { + "pname": "GioSharp", + "version": "3.24.24.34", + "hash": "sha256-/fZBfaKXlrdBuNh1/h0s1++5Ek4OnznXvzJx0uTbHQo=" + }, + { + "pname": "GLibSharp", + "version": "3.24.24.34", + "hash": "sha256-eAYUYNHF37nIJnk7aRffzBj8b/rluqXERYy358YAd08=" + }, + { + "pname": "GtkSharp", + "version": "3.24.24.34", + "hash": "sha256-i0XZfzUt9GNaZD1uXNd8x+pb1mPJqYrxQd15XOuHSAA=" + }, + { + "pname": "Gw2Sharp", + "version": "0.6.0", + "hash": "sha256-+AOhGe9T+Cpxf1bBxca8vpHCqLh0ayOeCJz/1yVM1Rw=" + }, + { + "pname": "Microsoft.NETCore.Platforms", + "version": "1.1.0", + "hash": "sha256-FeM40ktcObQJk4nMYShB61H/E8B7tIKfl9ObJ0IOcCM=" + }, + { + "pname": "Microsoft.NETCore.Platforms", + "version": "1.1.1", + "hash": "sha256-8hLiUKvy/YirCWlFwzdejD2Db3DaXhHxT7GSZx/znJg=" + }, + { + "pname": "Microsoft.NETCore.Targets", + "version": "1.1.0", + "hash": "sha256-0AqQ2gMS8iNlYkrD+BxtIg7cXMnr9xZHtKAuN4bjfaQ=" + }, + { + "pname": "Microsoft.Win32.Primitives", + "version": "4.3.0", + "hash": "sha256-mBNDmPXNTW54XLnPAUwBRvkIORFM7/j0D0I2SyQPDEg=" + }, + { + "pname": "Newtonsoft.Json", + "version": "13.0.2", + "hash": "sha256-ESyjt/R7y9dDvvz5Sftozk+e/3Otn38bOcLGGh69Ot0=" + }, + { + "pname": "PangoSharp", + "version": "3.24.24.34", + "hash": "sha256-/KdH3SA/11bkwPe/AXRph4v4a2cjbUjDvo4+OhkJEOQ=" + }, + { + "pname": "RestSharp", + "version": "106.12.0", + "hash": "sha256-NGzveByJvCRtHlI2C8d/mLs3akyMm77NER8TUG6HiD4=" + }, + { + "pname": "runtime.any.System.Collections", + "version": "4.3.0", + "hash": "sha256-4PGZqyWhZ6/HCTF2KddDsbmTTjxs2oW79YfkberDZS8=" + }, + { + "pname": "runtime.any.System.Diagnostics.Tracing", + "version": "4.3.0", + "hash": "sha256-dsmTLGvt8HqRkDWP8iKVXJCS+akAzENGXKPV18W2RgI=" + }, + { + "pname": "runtime.any.System.Globalization", + "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", + "hash": "sha256-vej7ySRhyvM3pYh/ITMdC25ivSd0WLZAaIQbYj/6HVE=" + }, + { + "pname": "runtime.any.System.Reflection", + "version": "4.3.0", + "hash": "sha256-ns6f++lSA+bi1xXgmW1JkWFb2NaMD+w+YNTfMvyAiQk=" + }, + { + "pname": "runtime.any.System.Reflection.Primitives", + "version": "4.3.0", + "hash": "sha256-LkPXtiDQM3BcdYkAm5uSNOiz3uF4J45qpxn5aBiqNXQ=" + }, + { + "pname": "runtime.any.System.Resources.ResourceManager", + "version": "4.3.0", + "hash": "sha256-9EvnmZslLgLLhJ00o5MWaPuJQlbUFcUF8itGQNVkcQ4=" + }, + { + "pname": "runtime.any.System.Runtime", + "version": "4.3.0", + "hash": "sha256-qwhNXBaJ1DtDkuRacgHwnZmOZ1u9q7N8j0cWOLYOELM=" + }, + { + "pname": "runtime.any.System.Runtime.Handles", + "version": "4.3.0", + "hash": "sha256-PQRACwnSUuxgVySO1840KvqCC9F8iI9iTzxNW0RcBS4=" + }, + { + "pname": "runtime.any.System.Runtime.InteropServices", + "version": "4.3.0", + "hash": "sha256-Kaw5PnLYIiqWbsoF3VKJhy7pkpoGsUwn4ZDCKscbbzA=" + }, + { + "pname": "runtime.any.System.Text.Encoding", + "version": "4.3.0", + "hash": "sha256-Q18B9q26MkWZx68exUfQT30+0PGmpFlDgaF0TnaIGCs=" + }, + { + "pname": "runtime.any.System.Text.Encoding.Extensions", + "version": "4.3.0", + "hash": "sha256-6MYj0RmLh4EVqMtO/MRqBi0HOn5iG4x9JimgCCJ+EFM=" + }, + { + "pname": "runtime.any.System.Threading.Tasks", + "version": "4.3.0", + "hash": "sha256-agdOM0NXupfHbKAQzQT8XgbI9B8hVEh+a/2vqeHctg4=" + }, + { + "pname": "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-LXUPLX3DJxsU1Pd3UwjO1PO9NM2elNEDXeu2Mu/vNps=" + }, + { + "pname": "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.2", + "hash": "sha256-EbnOqPOrAgI9eNheXLR++VnY4pHzMsEKw1dFPJ/Fl2c=" + }, + { + "pname": "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-qeSqaUI80+lqw5MK4vMpmO0CZaqrmYktwp6L+vQAb0I=" + }, + { + "pname": "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.2", + "hash": "sha256-mVg02TNvJc1BuHU03q3fH3M6cMgkKaQPBxraSHl/Btg=" + }, + { + "pname": "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-SrHqT9wrCBsxILWtaJgGKd6Odmxm8/Mh7Kh0CUkZVzA=" + }, + { + "pname": "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.2", + "hash": "sha256-g9Uiikrl+M40hYe0JMlGHe/lrR0+nN05YF64wzLmBBA=" + }, + { + "pname": "runtime.native.System", + "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", + "hash": "sha256-Jy01KhtcCl2wjMpZWH+X3fhHcVn+SyllWFY8zWlz/6I=" + }, + { + "pname": "runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.2", + "hash": "sha256-xqF6LbbtpzNC9n1Ua16PnYgXHU0LvblEROTfK4vIxX8=" + }, + { + "pname": "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-wyv00gdlqf8ckxEdV7E+Ql9hJIoPcmYEuyeWb5Oz3mM=" + }, + { + "pname": "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.2", + "hash": "sha256-aJBu6Frcg6webvzVcKNoUP1b462OAqReF2giTSyBzCQ=" + }, + { + "pname": "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-zi+b4sCFrA9QBiSGDD7xPV27r3iHGlV99gpyVUjRmc4=" + }, + { + "pname": "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.2", + "hash": "sha256-Mpt7KN2Kq51QYOEVesEjhWcCGTqWckuPf8HlQ110qLY=" + }, + { + "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", + "hash": "sha256-gybQU6mPgaWV3rBG2dbH6tT3tBq8mgze3PROdsuWnX0=" + }, + { + "pname": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.2", + "hash": "sha256-JvMltmfVC53mCZtKDHE69G3RT6Id28hnskntP9MMP9U=" + }, + { + "pname": "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-VsP72GVveWnGUvS/vjOQLv1U80H2K8nZ4fDAmI61Hm4=" + }, + { + "pname": "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.2", + "hash": "sha256-QfFxWTVRNBhN4Dm1XRbCf+soNQpy81PsZed3x6op/bI=" + }, + { + "pname": "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-4yKGa/IrNCKuQ3zaDzILdNPD32bNdy6xr5gdJigyF5g=" + }, + { + "pname": "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.2", + "hash": "sha256-EaJHVc9aDZ6F7ltM2JwlIuiJvqM67CKRq682iVSo+pU=" + }, + { + "pname": "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-HmdJhhRsiVoOOCcUvAwdjpMRiyuSwdcgEv2j9hxi+Zc=" + }, + { + "pname": "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.2", + "hash": "sha256-PHR0+6rIjJswn89eoiWYY1DuU8u6xRJLrtjykAMuFmA=" + }, + { + "pname": "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-pVFUKuPPIx0edQKjzRon3zKq8zhzHEzko/lc01V/jdw=" + }, + { + "pname": "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.2", + "hash": "sha256-LFkh7ua7R4rI5w2KGjcHlGXLecsncCy6kDXLuy4qD/Q=" + }, + { + "pname": "runtime.unix.Microsoft.Win32.Primitives", + "version": "4.3.0", + "hash": "sha256-LZb23lRXzr26tRS5aA0xyB08JxiblPDoA7HBvn6awXg=" + }, + { + "pname": "runtime.unix.System.Diagnostics.Debug", + "version": "4.3.0", + "hash": "sha256-ReoazscfbGH+R6s6jkg5sIEHWNEvjEoHtIsMbpc7+tI=" + }, + { + "pname": "runtime.unix.System.IO.FileSystem", + "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.Private.Uri", + "version": "4.3.0", + "hash": "sha256-c5tXWhE/fYbJVl9rXs0uHh3pTsg44YD1dJvyOA0WoMs=" + }, + { + "pname": "runtime.unix.System.Runtime.Extensions", + "version": "4.3.0", + "hash": "sha256-l8S9gt6dk3qYG6HYonHtdlYtBKyPb29uQ6NDjmrt3V4=" + }, + { + "pname": "System.Buffers", + "version": "4.3.0", + "hash": "sha256-XqZWb4Kd04960h4U9seivjKseGA/YEIpdplfHYHQ9jk=" + }, + { + "pname": "System.Collections", + "version": "4.3.0", + "hash": "sha256-afY7VUtD6w/5mYqrce8kQrvDIfS2GXDINDh73IjxJKc=" + }, + { + "pname": "System.Collections.Concurrent", + "version": "4.3.0", + "hash": "sha256-KMY5DfJnDeIsa13DpqvyN8NkReZEMAFnlmNglVoFIXI=" + }, + { + "pname": "System.ComponentModel.Annotations", + "version": "5.0.0", + "hash": "sha256-0pST1UHgpeE6xJrYf5R+U7AwIlH3rVC3SpguilI/MAg=" + }, + { + "pname": "System.Diagnostics.Debug", + "version": "4.3.0", + "hash": "sha256-fkA79SjPbSeiEcrbbUsb70u9B7wqbsdM9s1LnoKj0gM=" + }, + { + "pname": "System.Diagnostics.DiagnosticSource", + "version": "4.3.0", + "hash": "sha256-OFJRb0ygep0Z3yDBLwAgM/Tkfs4JCDtsNhwDH9cd1Xw=" + }, + { + "pname": "System.Diagnostics.Tracing", + "version": "4.3.0", + "hash": "sha256-hCETZpHHGVhPYvb4C0fh4zs+8zv4GPoixagkLZjpa9Q=" + }, + { + "pname": "System.Globalization", + "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", + "hash": "sha256-mmJWA27T0GRVuFP9/sj+4TrR4GJWrzNIk2PDrbr7RQk=" + }, + { + "pname": "System.IO", + "version": "4.3.0", + "hash": "sha256-ruynQHekFP5wPrDiVyhNiRIXeZ/I9NpjK5pU+HPDiRY=" + }, + { + "pname": "System.IO.Compression", + "version": "4.3.0", + "hash": "sha256-f5PrQlQgj5Xj2ZnHxXW8XiOivaBvfqDao9Sb6AVinyA=" + }, + { + "pname": "System.IO.FileSystem", + "version": "4.3.0", + "hash": "sha256-vNIYnvlayuVj0WfRfYKpDrhDptlhp1pN8CYmlVd2TXw=" + }, + { + "pname": "System.IO.FileSystem.Primitives", + "version": "4.3.0", + "hash": "sha256-LMnfg8Vwavs9cMnq9nNH8IWtAtSfk0/Fy4s4Rt9r1kg=" + }, + { + "pname": "System.Linq", + "version": "4.3.0", + "hash": "sha256-R5uiSL3l6a3XrXSSL6jz+q/PcyVQzEAByiuXZNSqD/A=" + }, + { + "pname": "System.Net.Http", + "version": "4.3.4", + "hash": "sha256-FMoU0K7nlPLxoDju0NL21Wjlga9GpnAoQjsFhFYYt00=" + }, + { + "pname": "System.Net.Primitives", + "version": "4.3.0", + "hash": "sha256-MY7Z6vOtFMbEKaLW9nOSZeAjcWpwCtdO7/W1mkGZBzE=" + }, + { + "pname": "System.Private.Uri", + "version": "4.3.0", + "hash": "sha256-fVfgcoP4AVN1E5wHZbKBIOPYZ/xBeSIdsNF+bdukIRM=" + }, + { + "pname": "System.Reflection", + "version": "4.3.0", + "hash": "sha256-NQSZRpZLvtPWDlvmMIdGxcVuyUnw92ZURo0hXsEshXY=" + }, + { + "pname": "System.Reflection.Primitives", + "version": "4.3.0", + "hash": "sha256-5ogwWB4vlQTl3jjk1xjniG2ozbFIjZTL9ug0usZQuBM=" + }, + { + "pname": "System.Resources.ResourceManager", + "version": "4.3.0", + "hash": "sha256-idiOD93xbbrbwwSnD4mORA9RYi/D/U48eRUsn/WnWGo=" + }, + { + "pname": "System.Runtime", + "version": "4.3.0", + "hash": "sha256-51813WXpBIsuA6fUtE5XaRQjcWdQ2/lmEokJt97u0Rg=" + }, + { + "pname": "System.Runtime.Extensions", + "version": "4.3.0", + "hash": "sha256-wLDHmozr84v1W2zYCWYxxj0FR0JDYHSVRaRuDm0bd/o=" + }, + { + "pname": "System.Runtime.Handles", + "version": "4.3.0", + "hash": "sha256-KJ5aXoGpB56Y6+iepBkdpx/AfaJDAitx4vrkLqR7gms=" + }, + { + "pname": "System.Runtime.InteropServices", + "version": "4.3.0", + "hash": "sha256-8sDH+WUJfCR+7e4nfpftj/+lstEiZixWUBueR2zmHgI=" + }, + { + "pname": "System.Runtime.Numerics", + "version": "4.3.0", + "hash": "sha256-P5jHCgMbgFMYiONvzmaKFeOqcAIDPu/U8bOVrNPYKqc=" + }, + { + "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.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.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.Text.Encoding", + "version": "4.3.0", + "hash": "sha256-GctHVGLZAa/rqkBNhsBGnsiWdKyv6VDubYpGkuOkBLg=" + }, + { + "pname": "System.Text.Encoding.Extensions", + "version": "4.3.0", + "hash": "sha256-vufHXg8QAKxHlujPHHcrtGwAqFmsCD6HKjfDAiHyAYc=" + }, + { + "pname": "System.Threading", + "version": "4.3.0", + "hash": "sha256-ZDQ3dR4pzVwmaqBg4hacZaVenQ/3yAF/uV7BXZXjiWc=" + }, + { + "pname": "System.Threading.Tasks", + "version": "4.3.0", + "hash": "sha256-Z5rXfJ1EXp3G32IKZGiZ6koMjRu0n8C1NGrwpdIen4w=" + } +] diff --git a/pkgs/by-name/ar/arcdps-log-manager/package.nix b/pkgs/by-name/ar/arcdps-log-manager/package.nix new file mode 100644 index 000000000000..7015c17454fe --- /dev/null +++ b/pkgs/by-name/ar/arcdps-log-manager/package.nix @@ -0,0 +1,75 @@ +{ + lib, + buildDotnetModule, + fetchFromGitHub, + dotnetCorePackages, + wrapGAppsHook3, + gtk3, + libnotify, + icoutils, + nix-update-script, + copyDesktopItems, + makeDesktopItem, +}: +buildDotnetModule (finalAttrs: { + pname = "arcdps-log-manager"; + version = "1.15"; + + src = fetchFromGitHub { + owner = "gw2scratch"; + repo = "evtc"; + tag = "manager-v${finalAttrs.version}"; + hash = "sha256-z7SuE+MPhN4/XW3CtYabbAd2ZjL2M/ii+VCdyUUukoA="; + }; + + nugetDeps = ./deps.json; + + projectFile = "ArcdpsLogManager.Gtk/ArcdpsLogManager.Gtk.csproj"; + + dotnet-sdk = dotnetCorePackages.sdk_8_0; + dotnet-runtime = dotnetCorePackages.runtime_8_0; + + nativeBuildInputs = [ + wrapGAppsHook3 + icoutils + copyDesktopItems + ]; + + runtimeDeps = [ + gtk3 + libnotify + ]; + + postInstall = '' + mkdir -p $out/share/icons/hicolor/128x128/apps + icotool -x $src/ArcdpsLogManager/Images/program_icon.ico + cp program_icon_1_128x128x32.png $out/share/icons/hicolor/128x128/apps/arcdps-log-manager.png + ''; + + desktopItems = [ + (makeDesktopItem { + desktopName = "arcdps Log Manager"; + genericName = "arcdps Log Manager"; + exec = "GW2Scratch.ArcdpsLogManager.Gtk"; + name = "arcdps Log Manager"; + icon = "arcdps-log-manager"; + }) + ]; + + passthru.updateScript = nix-update-script { + extraArgs = [ "--version-regex=manager-v(.*)" ]; + }; + + meta = { + description = "Manager for Guild Wars 2 log files"; + longDescription = '' + Manager for all your recorded logs. Filter logs, upload them with one click, find interesting statistics. + ''; + homepage = "https://gw2scratch.com/tools/manager"; + changelog = "https://github.com/gw2scratch/evtc/releases/tag/${finalAttrs.src.tag}"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.Blu3 ]; + mainProgram = "GW2Scratch.ArcdpsLogManager.Gtk"; + platforms = [ "x86_64-linux" ]; + }; +}) From 92cf3de501bcb48eac65ca4bbea200276c53ed28 Mon Sep 17 00:00:00 2001 From: Lisanna Dettwyler Date: Tue, 9 Dec 2025 14:39:38 -0500 Subject: [PATCH 021/108] maintainers: add lisanna-dettwyler Signed-off-by: Lisanna Dettwyler --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 2a69b08c3e1d..e0272769725d 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -15187,6 +15187,12 @@ githubId = 591860; name = "Lionello Lunesu"; }; + lisanna-dettwyler = { + email = "lisanna.dettwyler@gmail.com"; + github = "lisanna-dettwyler"; + githubId = 72424138; + name = "Lisanna Dettwyler"; + }; litchipi = { email = "litchi.pi@proton.me"; github = "litchipi"; From 6fae27eac63eb2e96aec9e3532fe2f8bea9b34d1 Mon Sep 17 00:00:00 2001 From: Rafael Ieda Date: Mon, 9 Feb 2026 14:06:35 -0300 Subject: [PATCH 022/108] shattered-pixel-dungeon: 3.3.3 -> 3.3.5 --- pkgs/by-name/sh/shattered-pixel-dungeon/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/sh/shattered-pixel-dungeon/package.nix b/pkgs/by-name/sh/shattered-pixel-dungeon/package.nix index 0ec4963cf84e..c08c929b27f0 100644 --- a/pkgs/by-name/sh/shattered-pixel-dungeon/package.nix +++ b/pkgs/by-name/sh/shattered-pixel-dungeon/package.nix @@ -6,13 +6,13 @@ callPackage ./generic.nix rec { pname = "shattered-pixel-dungeon"; - version = "3.3.3"; + version = "3.3.5"; src = fetchFromGitHub { owner = "00-Evan"; repo = "shattered-pixel-dungeon"; tag = "v${version}"; - hash = "sha256-8M8IVRsjaaOAEVJIs8jGLNwPFaUSDCkZxOnzCkxGhUk="; + hash = "sha256-NxeDF0bfQJsJiWkAD8ynjtezPZZ5TaU0ih1t2uVtXVU="; }; patches = [ ]; From b67983b12c810e3943c679c6b83883cfdb6c8366 Mon Sep 17 00:00:00 2001 From: rafaelrc7 Date: Tue, 3 Feb 2026 02:58:57 -0300 Subject: [PATCH 023/108] golazo: init at 0.21.0 --- pkgs/by-name/go/golazo/package.nix | 42 ++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 pkgs/by-name/go/golazo/package.nix diff --git a/pkgs/by-name/go/golazo/package.nix b/pkgs/by-name/go/golazo/package.nix new file mode 100644 index 000000000000..c3fbb1916487 --- /dev/null +++ b/pkgs/by-name/go/golazo/package.nix @@ -0,0 +1,42 @@ +{ + lib, + stdenv, + buildGoModule, + fetchFromGitHub, + gitUpdater, + libnotify, +}: +buildGoModule (finalAttrs: { + pname = "golazo"; + version = "0.21.0"; + + src = fetchFromGitHub { + owner = "0xjuanma"; + repo = "golazo"; + tag = "v${finalAttrs.version}"; + hash = "sha256-TWpaW8MTkYEOp+7dd3LiDs05tCB3riUPmFRzhMiAeZI="; + }; + + vendorHash = "sha256-M2gfqU5rOfuiVSZnH/Dr8OVmDhyU2jYkgW7RuIUTd+E="; + + subPackages = [ "." ]; + + buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ libnotify ]; + + ldflags = [ + "-X github.com/0xjuanma/golazo/cmd.Version=v${finalAttrs.version}" + ]; + + passthru.updateScript = gitUpdater { + rev-prefix = "v"; + }; + + meta = { + description = "Minimal TUI app to keep up with live & recent football/soccer matches written in Go"; + homepage = "https://github.com/0xjuanma/golazo"; + license = lib.licenses.mit; + platforms = lib.platforms.all; + mainProgram = "golazo"; + maintainers = with lib.maintainers; [ rafaelrc ]; + }; +}) From a03a2dd423c658042f5e96c06f99ba76e8e852a5 Mon Sep 17 00:00:00 2001 From: Benjamin Lemouzy Date: Fri, 20 Jun 2025 20:09:04 +0200 Subject: [PATCH 024/108] maintainers: add blemouzy --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 705437a56a89..a988cf240d24 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -3577,6 +3577,12 @@ githubId = 77934086; keys = [ { fingerprint = "4CA3 48F6 8FE1 1777 8EDA 3860 B9A2 C1B0 25EC 2C55"; } ]; }; + blemouzy = { + email = "blemouzy.ml@gmail.com"; + github = "blemouzy"; + githubId = 124877155; + name = "Benjamin Lemouzy"; + }; blenderfreaky = { name = "blenderfreaky"; email = "nix@blenderfreaky.de"; From 616451475b543517013990e0baad5d5bbcaa5003 Mon Sep 17 00:00:00 2001 From: Benjamin Lemouzy Date: Tue, 10 Feb 2026 20:11:12 +0100 Subject: [PATCH 025/108] envoluntary: init at 0.1.4 --- pkgs/by-name/en/envoluntary/package.nix | 37 +++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 pkgs/by-name/en/envoluntary/package.nix diff --git a/pkgs/by-name/en/envoluntary/package.nix b/pkgs/by-name/en/envoluntary/package.nix new file mode 100644 index 000000000000..5ef678bcf0e1 --- /dev/null +++ b/pkgs/by-name/en/envoluntary/package.nix @@ -0,0 +1,37 @@ +{ + lib, + rustPlatform, + fetchFromGitHub, + bash, +}: + +rustPlatform.buildRustPackage rec { + pname = "envoluntary"; + version = "0.1.4"; + + src = fetchFromGitHub { + owner = "dfrankland"; + repo = "envoluntary"; + tag = "envoluntary-v${version}"; + hash = "sha256-ccMXrR7PnV3aCehJtsJyXx5ZiCz/KrHkKDLQSV3sMYU="; + }; + + cargoHash = "sha256-AXWOU8UduQZxZWcTaOyxilbdz4BMnZlrJEFTUakFa4w="; + + preCheck = '' + export NIX_BIN_BASH="${bash}/bin/bash" + ''; + + meta = { + description = "Automatic Nix development environments for your shell"; + longDescription = '' + Envoluntary seamlessly loads and unloads Nix development environments based on directory + patterns, eliminating the need for per-project .envrc / flake.nix files while giving you + centralized control over your development tooling. + ''; + homepage = "https://github.com/dfrankland/envoluntary"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ blemouzy ]; + mainProgram = "envoluntary"; + }; +} From 0d4e4d957218308045d24ea3beebd260019eaa96 Mon Sep 17 00:00:00 2001 From: Abhishek Adhikari Date: Thu, 12 Feb 2026 11:27:58 +0530 Subject: [PATCH 026/108] dockmate: init at 0.1.0 --- pkgs/by-name/do/dockmate/package.nix | 44 ++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 pkgs/by-name/do/dockmate/package.nix diff --git a/pkgs/by-name/do/dockmate/package.nix b/pkgs/by-name/do/dockmate/package.nix new file mode 100644 index 000000000000..14e1c07d05cd --- /dev/null +++ b/pkgs/by-name/do/dockmate/package.nix @@ -0,0 +1,44 @@ +{ + lib, + buildGoModule, + dockmate, + fetchFromGitHub, + versionCheckHook, +}: + +buildGoModule rec { + pname = "dockmate"; + version = "0.1.0"; + + src = fetchFromGitHub { + owner = "shubh-io"; + repo = "DockMate"; + tag = "v${version}"; + hash = "sha256-kepv8jY/hddRpJMhwr55k0R8CPBKtifjrGiRxoIUDXw="; + }; + + nativeInstallCheckInputs = [ + versionCheckHook + ]; + + vendorHash = "sha256-/votTA5Rn8beq1PgHpC01D01VjBIwciPVN5eNc8iZRM="; + + # Skip tests that require a Docker daemon or interactive filesystem access, + # as these are unavailable in the restricted Nix build sandbox. + checkFlags = [ + "-skip=TestDockerComposeCommandNoFiles|TestDockerComposeCommandSingleFile|TestDockerComposeCommandMultipleFiles|TestWritingToConfigFile" + ]; + + doInstallCheck = true; + + meta = { + changelog = "https://github.com/shubh-io/DockMate/releases/tag/${src.tag}"; + description = "Terminal-based Docker container manager that actually works"; + homepage = "https://github.com/shubh-io/DockMate"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ + sith-lord-vader + ]; + mainProgram = "dockmate"; + }; +} From bca32d6c045e9fc66a052163b81376bb7eb71f29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Neumann?= Date: Tue, 10 Feb 2026 10:23:57 +0100 Subject: [PATCH 027/108] unpaper: enable tests --- pkgs/by-name/un/unpaper/package.nix | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/pkgs/by-name/un/unpaper/package.nix b/pkgs/by-name/un/unpaper/package.nix index ce818f072032..0d1702934743 100644 --- a/pkgs/by-name/un/unpaper/package.nix +++ b/pkgs/by-name/un/unpaper/package.nix @@ -17,6 +17,7 @@ # tests nixosTests, + python3Packages, }: stdenv.mkDerivation (finalAttrs: { @@ -45,6 +46,21 @@ stdenv.mkDerivation (finalAttrs: { ffmpeg-headless ]; + nativeCheckInputs = with python3Packages; [ + pytest + pytest-xdist + pillow + ]; + + doCheck = true; + + # Tests take quite a long time + # Using pytest-xdist, we launch multiple workers + # Restrict to max 6 to avoid having a large number of idlers + preCheck = '' + mesonCheckFlagsArray+=(--test-args "--numprocesses=auto --maxprocesses=6") + ''; + passthru.tests = { inherit (nixosTests) paperless; }; From 6f9dccc89ff83e1fa45b13f4377ec2ce26ae0d6b Mon Sep 17 00:00:00 2001 From: nemeott <123220311+nemeott@users.noreply.github.com> Date: Sat, 10 Jan 2026 01:18:48 -0500 Subject: [PATCH 028/108] musescore-evolution: init at 3.7.0-unstable-2026-01-12 Musescore Evolution is an unoffical fork of musescore 3.6.2, which provides extra patches, fixes, features. One notable feature is the ability to import files saved in Musescore 4.X versions. There are also a few other backported features. --- .../musescore-evolution-pch-fix.patch | 63 +++++ .../mu/musescore-evolution/package.nix | 218 ++++++++++++++++++ pkgs/by-name/mu/musescore-evolution/update.sh | 26 +++ 3 files changed, 307 insertions(+) create mode 100644 pkgs/by-name/mu/musescore-evolution/musescore-evolution-pch-fix.patch create mode 100644 pkgs/by-name/mu/musescore-evolution/package.nix create mode 100755 pkgs/by-name/mu/musescore-evolution/update.sh diff --git a/pkgs/by-name/mu/musescore-evolution/musescore-evolution-pch-fix.patch b/pkgs/by-name/mu/musescore-evolution/musescore-evolution-pch-fix.patch new file mode 100644 index 000000000000..e552b1c975d2 --- /dev/null +++ b/pkgs/by-name/mu/musescore-evolution/musescore-evolution-pch-fix.patch @@ -0,0 +1,63 @@ +diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt +index e67e5c8f5c..a4c6dd61fd 100644 +--- a/main/CMakeLists.txt ++++ b/main/CMakeLists.txt +@@ -499,15 +499,6 @@ if (APPLE) + ../fonts/finalebroadway/FinaleBroadwayText.otf + DESTINATION ${Mscore_SHARE_NAME}${Mscore_INSTALL_NAME}fonts + ) +- install(DIRECTORY +- ${QT_INSTALL_QML} +- DESTINATION ${Mscore_SHARE_NAME}${Mscore_INSTALL_NAME} +- REGEX ".*QtWebkit.*" EXCLUDE +- REGEX ".*QtTest.*" EXCLUDE +- REGEX ".*QtSensors.*" EXCLUDE +- REGEX ".*QtMultimedia.*" EXCLUDE +- REGEX ".*QtAudioEngine.*" EXCLUDE +- REGEX ".*_debug\\.dylib" EXCLUDE) + endif (APPLE) + + if (MSCORE_OUTPUT_NAME) +diff --git a/mscore/CMakeLists.txt b/mscore/CMakeLists.txt +index 8daa49b517..471cedf06d 100644 +--- a/mscore/CMakeLists.txt ++++ b/mscore/CMakeLists.txt +@@ -142,6 +142,7 @@ if (APPLE) + cocoabridge STATIC + macos/cocoabridge.mm + ) ++ set_source_files_properties(macos/cocoabridge.mm PROPERTIES SKIP_PRECOMPILE_HEADERS ON) + else (APPLE) + set(INCS "") + set(COCOABRIDGE "") +diff --git a/mscore/macos/cocoabridge.h b/mscore/macos/cocoabridge.h +index d6a217ad99..0c61197bbb 100644 +--- a/mscore/macos/cocoabridge.h ++++ b/mscore/macos/cocoabridge.h +@@ -20,6 +20,10 @@ + #ifndef __COCOABRIDGE_H__ + #define __COCOABRIDGE_H__ + ++#include ++ ++#include ++ + class CocoaBridge { + CocoaBridge() {}; + public: +diff --git a/mscore/qml/msqmlengine.cpp b/mscore/qml/msqmlengine.cpp +index 77c94b593c..ffd066d41d 100644 +--- a/mscore/qml/msqmlengine.cpp ++++ b/mscore/qml/msqmlengine.cpp +@@ -37,9 +37,9 @@ MsQmlEngine::MsQmlEngine(QObject* parent) + setImportPathList(importPaths); + #endif + #ifdef Q_OS_MAC +- QStringList importPaths; ++ QStringList importPaths = importPathList(); + QDir dir(mscoreGlobalShare + QString("/qml")); +- importPaths.append(dir.absolutePath()); ++ importPaths.prepend(dir.absolutePath()); + setImportPathList(importPaths); + #endif + } diff --git a/pkgs/by-name/mu/musescore-evolution/package.nix b/pkgs/by-name/mu/musescore-evolution/package.nix new file mode 100644 index 000000000000..2e8ca20d2d02 --- /dev/null +++ b/pkgs/by-name/mu/musescore-evolution/package.nix @@ -0,0 +1,218 @@ +{ + stdenv, + lib, + fetchFromGitHub, + cmake, + wrapGAppsHook3, + pkg-config, + ninja, + alsa-lib, + alsa-plugins, + freetype, + libjack2, + lame, + libogg, + libpulseaudio, + libsndfile, + libvorbis, + portaudio, + portmidi, + flac, + libopusenc, + libopus, + tinyxml-2, + qt5, # Needed for musescore 3.X +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "musescore-evolution"; + version = "3.7.0-unstable-2026-01-12"; + + src = fetchFromGitHub { + owner = "Jojo-Schmitz"; + repo = "MuseScore"; + rev = "0b4543baca9b1b70d54cecb33cbf846dabc073d1"; + hash = "sha256-piOXHKlnfCO1n0kAgeszqa6JVoHgF8B2OF7agpadGKQ="; + }; + + patches = [ + ./musescore-evolution-pch-fix.patch + ]; + + # From top-level CMakeLists.txt: + # - DOWNLOAD_SOUNDFONT defaults ON and tries to fetch from the network. + # Download manually at Help > Manage Resources + cmakeFlags = [ + "-DDOWNLOAD_SOUNDFONT=OFF" + ]; + + qtWrapperArgs = [ + # MuseScore JACK backend loads libjack at runtime. + "--prefix ${lib.optionalString stdenv.hostPlatform.isDarwin "DY"}LD_LIBRARY_PATH : ${ + lib.makeLibraryPath [ libjack2 ] + }" + ] + ++ lib.optionals (stdenv.hostPlatform.isLinux) [ + "--set ALSA_PLUGIN_DIR ${alsa-plugins}/lib/alsa-lib" + ] + ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ + # There are some issues with using the wayland backend, see: + # https://musescore.org/en/node/321936 + "--set-default QT_QPA_PLATFORM xcb" + ]; + + preFixup = '' + qtWrapperArgs+=("''${gappsWrapperArgs[@]}") + + # Recreate correct symlinks (let fixupPhase handle compression) + if [ -e "$manDir/mscore-evo.1" ]; then + ln -sf "mscore-evo.1" "$manDir/musescore-evo.1" + fi + ''; + + dontWrapGApps = true; + + nativeBuildInputs = [ + qt5.wrapQtAppsHook + cmake + qt5.qttools + pkg-config + ninja + ] + ++ lib.optionals stdenv.hostPlatform.isLinux [ + # Since https://github.com/musescore/MuseScore/pull/13847/commits/685ac998 + # GTK3 is needed for file dialogs. Fixes crash with No GSettings schemas error. + wrapGAppsHook3 + ]; + + buildInputs = [ + libjack2 + freetype + lame + libogg + libpulseaudio + libsndfile + libvorbis + portaudio + portmidi + flac + libopusenc + libopus + tinyxml-2 + qt5.qtbase + qt5.qtdeclarative + qt5.qtsvg + qt5.qtxmlpatterns + qt5.qtquickcontrols2 + qt5.qtgraphicaleffects + ] + ++ lib.optionals stdenv.hostPlatform.isLinux [ + alsa-lib + ]; + + # Avoid depending on insecure QtWebEngine (and having to compile it (huge)) + # Because we don't use this, we need to patch the CMakeLists and install scripts to not try to bundle it. + postPatch = '' + # Disable Qt bundling logic in the source CMakeLists. + sed -i '/QT_INSTALL_PREFIX/d' main/CMakeLists.txt + sed -i '/QtWebEngineProcess/d' main/CMakeLists.txt + ''; + + # Patch the generated install script to drop Qt resource / QtWebEngine installs. + preInstall = '' + sed -i ' + /QtWebEngineProcess/d + /resources\"/d + /qtwebengine_locales/d + /qtwebengine/d + /QT_INSTALL_PREFIX/d + ' main/cmake_install.cmake + ''; + + # On macOS, move the .app into Applications/ and symlink the binary to bin/ + postInstall = lib.optionalString stdenv.hostPlatform.isDarwin '' + mkdir -p "$out/Applications" + mv "$out/mscore.app" "$out/Applications/mscore-evo.app" + mkdir -p $out/bin + ln -s $out/Applications/mscore-evo.app/Contents/MacOS/mscore $out/bin/mscore-evo + ''; + + # On Linux, let CMake + wrapQtAppsHook install/wrap "mscore", then rename it + # and adjust the .desktop file so it doesn't clash with the main musescore package. + postFixup = lib.optionalString stdenv.hostPlatform.isLinux '' + mv "$out/bin/mscore" "$out/bin/mscore-evo" + + # 2) Fix desktop entry to point to mscore-evo and avoid ID clash + desktop="$out/share/applications/mscore.desktop" + substitute "$desktop" "$out/share/applications/mscore-evo.desktop" \ + --replace "Exec=mscore" "Exec=mscore-evo" \ + --replace "Name=MuseScore 3.7" "Name=MuseScore 3.7 (Evolution)" \ + --replace "Icon=mscore" "Icon=mscore-evo" + rm $desktop + + # 3) Rename app icons (apps/) + for sizeDir in "$out"/share/icons/hicolor/*/apps/; do + for ext in png svg xpm; do + if [ -f "$sizeDir/mscore.$ext" ]; then + mv "$sizeDir/mscore.$ext" "$sizeDir/mscore-evo.$ext" + fi + done + done + + # 3b) Rename mimetype icons (mimetypes/) to unique names + for icon in "$out"/share/icons/hicolor/*/mimetypes/application-x-musescore.* \ + "$out"/share/icons/hicolor/*/mimetypes/application-x-musescore+xml.*; do + dir="''${icon%/*}"; base="''${icon##*/}"; ext="''${base##*.}" + case "$base" in + application-x-musescore.*) mv "$icon" "$dir/application-x-musescore-evo.$ext" ;; + application-x-musescore+xml.*) mv "$icon" "$dir/application-x-musescore-evo+xml.$ext" ;; + esac + done + + # 4) Rename MIME XML and point icons to the new names + mv "$out/share/mime/packages/musescore.xml" "$out/share/mime/packages/musescore-evo.xml" + sed -i \ + -e 's|application-x-musescore\(\+xml\)\?|application-x-musescore-evo\1|g' \ + -e 's|musescore|mscore-evo|g' \ + "$out/share/mime/packages/musescore-evo.xml" + + # 5) Rename man pages to match mscore-evo and remove legacy symlinks + manDir="$out/share/man/man1" + + # Remove all old musescore/mscore symlinks first (gzip may have created them) + find "$manDir" -type l \ + \( -name 'mscore.1*' -o -name 'musescore.1*' \) \ + -exec rm -f {} + + + # Rename real files + find "$manDir" \( -name 'mscore.1*' -o -name 'musescore.1*' \) -type f | + while IFS= read -r man; do + base="$(basename "$man")" + newname=$(echo "$base" | sed -e 's/^mscore/mscore-evo/' -e 's/^musescore/mscore-evo/') + mv "$man" "$manDir/$newname" + done + + # 6) Rename AppStream metadata and its IDs + meta="$out/share/metainfo/org.musescore.MuseScore.appdata.xml" + new="$out/share/metainfo/org.musescore.MuseScoreEvolution.appdata.xml" + mv "$meta" "$new" + sed -i \ + -e 's|org\.musescore\.MuseScore|org.musescore.MuseScoreEvolution|' \ + -e 's|mscore\.desktop|mscore-evo.desktop|' \ + "$new" + ''; + + # Don't run bundled upstreams tests, as they require a running X window system. + doCheck = false; + + passthru.updateScript.command = [ ./update.sh ]; + + meta = { + description = "Music notation and composition software"; + homepage = "https://github.com/Jojo-Schmitz/MuseScore"; + license = lib.licenses.gpl2Only; + maintainers = with lib.maintainers; [ nemeott ]; + mainProgram = "mscore-evo"; + platforms = lib.platforms.unix; + }; +}) diff --git a/pkgs/by-name/mu/musescore-evolution/update.sh b/pkgs/by-name/mu/musescore-evolution/update.sh new file mode 100755 index 000000000000..129ae0ef87bb --- /dev/null +++ b/pkgs/by-name/mu/musescore-evolution/update.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p jq nix-update coreutils + +set -euo pipefail + +# Run nix-update on the default branch (updates rev and sha256) +nix-update musescore-evolution --version=branch + +# Now we need to update the version name + +# Find the new version generated from the nix-update command (e.g. "0-unstable-2026-01-12") +generated_version=$(nix eval --raw -f . ${UPDATE_NIX_ATTR_PATH}.version) + +# Extract only the date part (after the last dash) (e.g. 0-unstable-2026-01-12) +parts=(${generated_version//-/ }) # Split up by dashes +clean_date="${parts[2]}-${parts[3]}-${parts[4]}" # Get clean date in YYYY-MM-DD format (e.g. "2026-01-12") + +# Compute version prefix based on previous version +old_version="$UPDATE_NIX_OLD_VERSION" +prefix="${old_version%-*}" # e.g. "3.7.0-unstable" + +new_version="${prefix}-${clean_date}" + +# Patch version in nix file +# Strip any existing version line and replace with new one +sed -i "s/version = \".*\"/version = \"${new_version}\"/" $(nix eval --raw -f . ${UPDATE_NIX_ATTR_PATH}.meta.position | cut -d: -f1) From 7955337377fda7125d715a003a97f621747edbcd Mon Sep 17 00:00:00 2001 From: nemeott <123220311+nemeott@users.noreply.github.com> Date: Sat, 10 Jan 2026 01:28:52 -0500 Subject: [PATCH 029/108] maintainers: add nemeott --- maintainers/maintainer-list.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index f3c6fe29eb87..015e91038ef2 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -18690,6 +18690,11 @@ githubId = 50854675; name = "Nelson Jeppesen"; }; + nemeott = { + github = "nemeott"; + githubId = 123220311; + name = "Nathan Emeott"; + }; nemin = { name = "Nemin"; github = "Nemin32"; From 7742b7ecd465d4b6ff84556588f2464cfe8a64fc Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Fri, 13 Feb 2026 20:43:00 +0100 Subject: [PATCH 030/108] yad: update meta.homepage --- pkgs/by-name/ya/yad/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/ya/yad/package.nix b/pkgs/by-name/ya/yad/package.nix index 8f4a653ebc2b..f00413203b78 100644 --- a/pkgs/by-name/ya/yad/package.nix +++ b/pkgs/by-name/ya/yad/package.nix @@ -56,7 +56,7 @@ stdenv.mkDerivation (finalAttrs: { ''; meta = { - homepage = "https://sourceforge.net/projects/yad-dialog/"; + homepage = "https://github.com/v1cont/yad"; description = "GUI dialog tool for shell scripts"; longDescription = '' Yad (yet another dialog) is a GUI dialog tool for shell scripts. It is a From 6e5e0f87f008575357097a59e667b1c11d1afa3e Mon Sep 17 00:00:00 2001 From: Michael Daniels Date: Sat, 14 Feb 2026 21:21:59 -0500 Subject: [PATCH 031/108] travis: drop Unmaintained upstream (last commit 2 years ago). Dependencies have security vulnerabilities, but they can't be updated because travis relies on json_pure, which screws things up due to ruby/json#752. Also not compatible with ruby 3.4+: travis-ci/travis.rb#873. --- pkgs/by-name/tr/travis/Gemfile | 4 - pkgs/by-name/tr/travis/Gemfile.lock | 71 ------- pkgs/by-name/tr/travis/gemset.nix | 297 ---------------------------- pkgs/by-name/tr/travis/package.nix | 25 --- pkgs/top-level/aliases.nix | 1 + 5 files changed, 1 insertion(+), 397 deletions(-) delete mode 100644 pkgs/by-name/tr/travis/Gemfile delete mode 100644 pkgs/by-name/tr/travis/Gemfile.lock delete mode 100644 pkgs/by-name/tr/travis/gemset.nix delete mode 100644 pkgs/by-name/tr/travis/package.nix diff --git a/pkgs/by-name/tr/travis/Gemfile b/pkgs/by-name/tr/travis/Gemfile deleted file mode 100644 index 3da9975913e8..000000000000 --- a/pkgs/by-name/tr/travis/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source "https://rubygems.org" - -gem "travis" -gem "pry", "~> 0.11.0" diff --git a/pkgs/by-name/tr/travis/Gemfile.lock b/pkgs/by-name/tr/travis/Gemfile.lock deleted file mode 100644 index 91df15a9bb65..000000000000 --- a/pkgs/by-name/tr/travis/Gemfile.lock +++ /dev/null @@ -1,71 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - activesupport (5.2.4.3) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 0.7, < 2) - minitest (~> 5.1) - tzinfo (~> 1.1) - addressable (2.7.0) - public_suffix (>= 2.0.2, < 5.0) - coderay (1.1.3) - concurrent-ruby (1.1.6) - ethon (0.12.0) - ffi (>= 1.3.0) - faraday (1.0.1) - multipart-post (>= 1.2, < 3) - faraday_middleware (1.0.0) - faraday (~> 1.0) - ffi (1.13.1) - gh (0.17.0) - activesupport (~> 5.0) - addressable (~> 2.4) - faraday (~> 1.0) - faraday_middleware (~> 1.0) - multi_json (~> 1.0) - net-http-persistent (~> 2.9) - net-http-pipeline - highline (2.0.3) - i18n (1.8.3) - concurrent-ruby (~> 1.0) - json (2.3.0) - launchy (2.4.3) - addressable (~> 2.3) - method_source (0.9.2) - minitest (5.14.1) - multi_json (1.14.1) - multipart-post (2.1.1) - net-http-persistent (2.9.4) - net-http-pipeline (1.0.1) - pry (0.11.3) - coderay (~> 1.1.0) - method_source (~> 0.9.0) - public_suffix (4.0.5) - pusher-client (0.6.2) - json - websocket (~> 1.0) - thread_safe (0.3.6) - travis (1.9.1) - faraday (~> 1.0) - faraday_middleware (~> 1.0) - gh (~> 0.13) - highline (~> 2.0) - json (~> 2.3) - launchy (~> 2.1, < 2.5.0) - pusher-client (~> 0.4) - typhoeus (~> 0.6, >= 0.6.8) - typhoeus (0.8.0) - ethon (>= 0.8.0) - tzinfo (1.2.7) - thread_safe (~> 0.1) - websocket (1.2.8) - -PLATFORMS - ruby - -DEPENDENCIES - pry (~> 0.11.0) - travis - -BUNDLED WITH - 2.1.4 diff --git a/pkgs/by-name/tr/travis/gemset.nix b/pkgs/by-name/tr/travis/gemset.nix deleted file mode 100644 index f304f77cc785..000000000000 --- a/pkgs/by-name/tr/travis/gemset.nix +++ /dev/null @@ -1,297 +0,0 @@ -{ - activesupport = { - dependencies = [ - "concurrent-ruby" - "i18n" - "minitest" - "tzinfo" - ]; - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "02fdawr3wyvpzpja3r7mvb8lmn2mm5jdw502bx3ncr2sy2nw1kx6"; - type = "gem"; - }; - version = "5.2.4.3"; - }; - addressable = { - dependencies = [ "public_suffix" ]; - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy"; - type = "gem"; - }; - version = "2.7.0"; - }; - coderay = { - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "0jvxqxzply1lwp7ysn94zjhh57vc14mcshw1ygw14ib8lhc00lyw"; - type = "gem"; - }; - version = "1.1.3"; - }; - concurrent-ruby = { - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "094387x4yasb797mv07cs3g6f08y56virc2rjcpb1k79rzaj3nhl"; - type = "gem"; - }; - version = "1.1.6"; - }; - ethon = { - dependencies = [ "ffi" ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "0gggrgkcq839mamx7a8jbnp2h7x2ykfn34ixwskwb0lzx2ak17g9"; - type = "gem"; - }; - version = "0.12.0"; - }; - faraday = { - dependencies = [ "multipart-post" ]; - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "0wwks9652xwgjm7yszcq5xr960pjypc07ivwzbjzpvy9zh2fw6iq"; - type = "gem"; - }; - version = "1.0.1"; - }; - faraday_middleware = { - dependencies = [ "faraday" ]; - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "0jik2kgfinwnfi6fpp512vlvs0mlggign3gkbpkg5fw1jr9his0r"; - type = "gem"; - }; - version = "1.0.0"; - }; - ffi = { - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af"; - type = "gem"; - }; - version = "1.13.1"; - }; - gh = { - dependencies = [ - "activesupport" - "addressable" - "faraday" - "faraday_middleware" - "multi_json" - "net-http-persistent" - "net-http-pipeline" - ]; - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "1nj2dm2pahfa4d39y8csvjv5l3hpsm6yjq2y96vj2bqgg0qs26bj"; - type = "gem"; - }; - version = "0.17.0"; - }; - highline = { - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "0yclf57n2j3cw8144ania99h1zinf8q3f5zrhqa754j6gl95rp9d"; - type = "gem"; - }; - version = "2.0.3"; - }; - i18n = { - dependencies = [ "concurrent-ruby" ]; - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "10nq1xjqvkhngiygji831qx9bryjwws95r4vrnlq9142bzkg670s"; - type = "gem"; - }; - version = "1.8.3"; - }; - json = { - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "0nrmw2r4nfxlfgprfgki3hjifgrcrs3l5zvm3ca3gb4743yr25mn"; - type = "gem"; - }; - version = "2.3.0"; - }; - launchy = { - dependencies = [ "addressable" ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "190lfbiy1vwxhbgn4nl4dcbzxvm049jwc158r2x7kq3g5khjrxa2"; - type = "gem"; - }; - version = "2.4.3"; - }; - method_source = { - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "1pviwzvdqd90gn6y7illcdd9adapw8fczml933p5vl739dkvl3lq"; - type = "gem"; - }; - version = "0.9.2"; - }; - minitest = { - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "09bz9nsznxgaf06cx3b5z71glgl0hdw469gqx3w7bqijgrb55p5g"; - type = "gem"; - }; - version = "5.14.1"; - }; - multi_json = { - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "0xy54mjf7xg41l8qrg1bqri75agdqmxap9z466fjismc1rn2jwfr"; - type = "gem"; - }; - version = "1.14.1"; - }; - multipart-post = { - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "1zgw9zlwh2a6i1yvhhc4a84ry1hv824d6g2iw2chs3k5aylpmpfj"; - type = "gem"; - }; - version = "2.1.1"; - }; - net-http-persistent = { - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "1y9fhaax0d9kkslyiqi1zys6cvpaqx9a0y0cywp24rpygwh4s9r4"; - type = "gem"; - }; - version = "2.9.4"; - }; - net-http-pipeline = { - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "0bxjy33yhxwsbnld8xj3zv64ibgfjn9rjpiqkyd5ipmz50pww8v9"; - type = "gem"; - }; - version = "1.0.1"; - }; - pry = { - dependencies = [ - "coderay" - "method_source" - ]; - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "1mh312k3y94sj0pi160wpia0ps8f4kmzvm505i6bvwynfdh7v30g"; - type = "gem"; - }; - version = "0.11.3"; - }; - public_suffix = { - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "0vywld400fzi17cszwrchrzcqys4qm6sshbv73wy5mwcixmrgg7g"; - type = "gem"; - }; - version = "4.0.5"; - }; - pusher-client = { - dependencies = [ - "json" - "websocket" - ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "18ymxz34gmg7jff3h0nyzp5vdg5i06dbdxlrdl2nq4hf14qwj1f4"; - type = "gem"; - }; - version = "0.6.2"; - }; - thread_safe = { - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy"; - type = "gem"; - }; - version = "0.3.6"; - }; - travis = { - dependencies = [ - "faraday" - "faraday_middleware" - "gh" - "highline" - "json" - "launchy" - "pusher-client" - "typhoeus" - ]; - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "1yizj5nqvyrfbyiv1kfwc33dylhsmk5l007z06djj152v04z63i3"; - type = "gem"; - }; - version = "1.9.1"; - }; - typhoeus = { - dependencies = [ "ethon" ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "03x3fxjsnhgayl4s96h0a9975awlvx2v9nmx2ba0cnliglyczdr8"; - type = "gem"; - }; - version = "0.8.0"; - }; - tzinfo = { - dependencies = [ "thread_safe" ]; - groups = [ "default" ]; - platforms = [ ]; - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "1i3jh086w1kbdj3k5l60lc3nwbanmzdf8yjj3mlrx9b2gjjxhi9r"; - type = "gem"; - }; - version = "1.2.7"; - }; - websocket = { - source = { - remotes = [ "https://rubygems.org" ]; - sha256 = "0f11rcn4qgffb1rq4kjfwi7di79w8840x9l74pkyif5arp0mb08x"; - type = "gem"; - }; - version = "1.2.8"; - }; -} diff --git a/pkgs/by-name/tr/travis/package.nix b/pkgs/by-name/tr/travis/package.nix deleted file mode 100644 index 06d571221be6..000000000000 --- a/pkgs/by-name/tr/travis/package.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ - lib, - bundlerEnv, - ruby, - bundlerUpdateScript, -}: - -bundlerEnv { - inherit ruby; - pname = "travis"; - gemdir = ./.; - - passthru.updateScript = bundlerUpdateScript "travis"; - - meta = { - description = "CLI and Ruby client library for Travis CI"; - mainProgram = "travis"; - homepage = "https://github.com/travis-ci/travis.rb"; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ - zimbatm - nicknovitski - ]; - }; -} diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 68c5cba26d7a..67a9f1d552b8 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1900,6 +1900,7 @@ mapAliases { transmission_3-gtk = throw "transmission_3-gtk has been removed in favour of transmission_4-gtk. Note that upgrade caused data loss for some users so backup is recommended (see NixOS 24.11 release notes for details)"; # Added 2025-10-26 transmission_3-qt = throw "transmission_3-qt has been removed in favour of transmission_4-qt. Note that upgrade caused data loss for some users so backup is recommended (see NixOS 24.11 release notes for details)"; # Added 2025-10-26 transmission_3_noSystemd = throw "transmission_3_noSystemd has been removed in favour of transmission_4. Note that upgrade caused data loss for some users so backup is recommended (see NixOS 24.11 release notes for details)"; # Added 2025-10-26 + travis = throw "'travis' has been removed because upstream has stopped maintaining it, and it contains dependencies with security vulnerabilities."; # Added 2026-02-14 treefmt2 = throw "'treefmt2' has been renamed to/replaced by 'treefmt'"; # Converted to throw 2025-10-27 tremor-language-server = throw "'tremor-language-server' has been removed because it is unmaintained"; # Added 2025-11-17 tremor-rs = throw "'tremor-rs' has been removed because it is unmaintained"; # Added 2025-11-17 From e034c48ed000c4d9c4dcd759a7e108eb80170992 Mon Sep 17 00:00:00 2001 From: Daphne Preston-Kendal Date: Thu, 15 Jan 2026 18:24:24 +0100 Subject: [PATCH 032/108] nixos/mediawiki: Fix support for SQLite (#266761) --- nixos/modules/services/web-apps/mediawiki.nix | 333 +++++++++++------- nixos/tests/mediawiki.nix | 15 + 2 files changed, 214 insertions(+), 134 deletions(-) diff --git a/nixos/modules/services/web-apps/mediawiki.nix b/nixos/modules/services/web-apps/mediawiki.nix index 565f4a37c744..af1dbcd223a7 100644 --- a/nixos/modules/services/web-apps/mediawiki.nix +++ b/nixos/modules/services/web-apps/mediawiki.nix @@ -123,129 +123,141 @@ let checkPhase = '' ${cfg.phpPackage}/bin/php --syntax-check "$target" ''; - text = '' - . ''; }; @@ -462,7 +490,7 @@ in else null; defaultText = literalExpression "/run/mysqld/mysqld.sock"; - description = "Path to the unix socket file to use for authentication."; + description = "Path to the unix socket file to use for authentication. Used only if database type is not SQLite."; }; createLocally = mkOption { @@ -570,6 +598,28 @@ in } ]; + warnings = + lib.optional + ( + cfg.database.type == "sqlite" + && ( + cfg.database.host != null + || cfg.database.port != null + || cfg.database.user != null + || cfg.database.passwordFile != null + || cfg.database.socket != null + ) + ) + '' + The services.mediawiki.database options host, port, user, passwordFile, and socket will be ignored because services.mediawiki.database.type is "sqlite". + '' + ++ lib.optional (cfg.database.type != "sqlite" && cfg.database.path != null) '' + The services.mediawiki.database.path option will be ignored because services.mediawiki.database.type is not "sqlite". + '' + ++ lib.optional (cfg.database.type == "mysql" && cfg.database.tablePrefix != null) '' + The services.mediawiki.database.tablePrefix option has no effect when the services.mediawiki.database.type is not "mysql". + ''; + services.mediawiki = { path = with pkgs; [ diffutils @@ -728,37 +778,52 @@ in after = optional (cfg.database.type == "mysql" && cfg.database.createLocally) "mysql.service" ++ optional (cfg.database.type == "postgres" && cfg.database.createLocally) "postgresql.target"; - script = '' - if ! test -e "${stateDir}/secret.key"; then - tr -dc A-Za-z0-9 /dev/null | head -c 64 > ${stateDir}/secret.key - fi + script = + let + dbOptions = + if cfg.database.type == "sqlite" then + '' + --dbpath ${lib.escapeShellArg cfg.database.path} \ + --dbname ${lib.escapeShellArg cfg.database.name} \ + '' + else + '' + --dbserver ${lib.escapeShellArg dbAddr} \ + --dbport ${toString cfg.database.port} \ + --dbname ${lib.escapeShellArg cfg.database.name} \ + ${ + optionalString ( + cfg.database.tablePrefix != null + ) "--dbprefix ${lib.escapeShellArg cfg.database.tablePrefix}" + } \ + --dbuser ${lib.escapeShellArg cfg.database.user} \ + ${ + optionalString ( + cfg.database.passwordFile != null + ) "--dbpassfile ${lib.escapeShellArg cfg.database.passwordFile}" + } \ + ''; + in + '' + if ! test -e "${stateDir}/secret.key"; then + tr -dc A-Za-z0-9 /dev/null | head -c 64 > ${stateDir}/secret.key + fi - echo "exit( \$this->getPrimaryDB()->tableExists( 'user' ) ? 1 : 0 );" | \ - ${cfg.phpPackage}/bin/php ${pkg}/share/mediawiki/maintenance/run.php eval --conf ${mediawikiConfig} && \ - ${cfg.phpPackage}/bin/php ${pkg}/share/mediawiki/maintenance/run.php ${pkg}/share/mediawiki/maintenance/install.php \ - --confpath /tmp \ - --scriptpath / \ - --dbserver ${lib.escapeShellArg dbAddr} \ - --dbport ${toString cfg.database.port} \ - --dbname ${lib.escapeShellArg cfg.database.name} \ - ${ - optionalString ( - cfg.database.tablePrefix != null - ) "--dbprefix ${lib.escapeShellArg cfg.database.tablePrefix}" - } \ - --dbuser ${lib.escapeShellArg cfg.database.user} \ - ${ - optionalString ( - cfg.database.passwordFile != null - ) "--dbpassfile ${lib.escapeShellArg cfg.database.passwordFile}" - } \ - --passfile ${lib.escapeShellArg cfg.passwordFile} \ - --dbtype ${cfg.database.type} \ - ${lib.escapeShellArg cfg.name} \ - admin + ${optionalString (cfg.database.type == "sqlite") "mkdir -p ${cfg.database.path}"} - ${cfg.phpPackage}/bin/php ${pkg}/share/mediawiki/maintenance/update.php --conf ${mediawikiConfig} --quick --skip-external-dependencies - ''; + echo "exit( \$this->getPrimaryDB()->tableExists( 'user' ) ? 1 : 0 );" | \ + ${cfg.phpPackage}/bin/php ${pkg}/share/mediawiki/maintenance/run.php eval --conf ${mediawikiConfig} && \ + ${cfg.phpPackage}/bin/php ${pkg}/share/mediawiki/maintenance/run.php ${pkg}/share/mediawiki/maintenance/install.php \ + --confpath /tmp \ + --scriptpath / \ + ${dbOptions} \ + --dbtype ${cfg.database.type} \ + --passfile ${lib.escapeShellArg cfg.passwordFile} \ + ${lib.escapeShellArg cfg.name} \ + admin + + ${cfg.phpPackage}/bin/php ${pkg}/share/mediawiki/maintenance/update.php --conf ${mediawikiConfig} --quick --skip-external-dependencies + ''; serviceConfig = { Type = "oneshot"; diff --git a/nixos/tests/mediawiki.nix b/nixos/tests/mediawiki.nix index deb714e6b178..fedae1675d7c 100644 --- a/nixos/tests/mediawiki.nix +++ b/nixos/tests/mediawiki.nix @@ -57,6 +57,21 @@ in ''; }; + sqlite = makeTest { + name = "mediawiki-sqlite"; + nodes.machine = { + services.mediawiki.database.type = "sqlite"; + }; + testScript = '' + start_all() + + machine.wait_for_unit("phpfpm-mediawiki.service") + + page = machine.succeed("curl -fL http://localhost/") + assert "MediaWiki has been installed" in page + ''; + }; + nohttpd = makeTest { name = "mediawiki-nohttpd"; nodes.machine = { From f50542642ea29b70d60c553402e1dc7792313324 Mon Sep 17 00:00:00 2001 From: Felix Singer Date: Sun, 8 Feb 2026 01:22:12 +0100 Subject: [PATCH 033/108] qobuz-player: init at 0.7.1 Signed-off-by: Felix Singer --- pkgs/by-name/qo/qobuz-player/package.nix | 45 ++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 pkgs/by-name/qo/qobuz-player/package.nix diff --git a/pkgs/by-name/qo/qobuz-player/package.nix b/pkgs/by-name/qo/qobuz-player/package.nix new file mode 100644 index 000000000000..c193aaac2216 --- /dev/null +++ b/pkgs/by-name/qo/qobuz-player/package.nix @@ -0,0 +1,45 @@ +{ + alsa-lib, + fetchFromGitHub, + lib, + openssl, + pkg-config, + protobuf, + rustPlatform, +}: + +rustPlatform.buildRustPackage (finalAttrs: { + pname = "qobuz-player"; + version = "0.7.1"; + + src = fetchFromGitHub { + owner = "SofusA"; + repo = "qobuz-player"; + tag = "v${finalAttrs.version}"; + hash = "sha256-LStCoBr3BblXRpuno+QKxyJstvrNmP+wub61491NkPY="; + }; + + cargoHash = "sha256-6fUwZkXurjV9yM2Mur0lAkgFxTAEmt92DFKzbPj3Vo4="; + + nativeBuildInputs = [ + pkg-config + protobuf + ]; + + buildInputs = [ + alsa-lib + openssl + ]; + + meta = { + description = "Tui, web and rfid player for Qobuz"; + homepage = "https://github.com/SofusA/qobuz-player"; + changelog = "https://github.com/SofusA/qobuz-player/releases/tag/v${finalAttrs.version}"; + license = lib.licenses.gpl3Only; + maintainers = with lib.maintainers; [ + felixsinger + ]; + platforms = lib.platforms.linux; + mainProgram = "qobuz-player"; + }; +}) From 9911d2a60139828cec6b8b88d0300056600792b7 Mon Sep 17 00:00:00 2001 From: LordMZTE Date: Sun, 1 Feb 2026 12:19:09 +0100 Subject: [PATCH 034/108] spotatui: init at 0.36.2 --- pkgs/by-name/sp/spotatui/package.nix | 56 ++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 pkgs/by-name/sp/spotatui/package.nix diff --git a/pkgs/by-name/sp/spotatui/package.nix b/pkgs/by-name/sp/spotatui/package.nix new file mode 100644 index 000000000000..fcfb1f38127e --- /dev/null +++ b/pkgs/by-name/sp/spotatui/package.nix @@ -0,0 +1,56 @@ +{ + lib, + rustPlatform, + fetchFromGitHub, + nix-update-script, + pkg-config, + alsa-lib, + openssl, + pipewire, + + withPipewireVisualizer ? true, +}: +rustPlatform.buildRustPackage (finalAttrs: { + pname = "spotatui"; + version = "0.36.2"; + + src = fetchFromGitHub { + owner = "LargeModGames"; + repo = "spotatui"; + tag = "v${finalAttrs.version}"; + hash = "sha256-E8VIMQUGKWAauN/GTGMOdvHsghhO4E0wVdE9lIk6zEc="; + }; + + cargoHash = "sha256-nHOLOlAZfp2k0nMAywTJT+TiTkUeybRVu+PkADBY22w="; + + nativeBuildInputs = [ pkg-config ] ++ lib.optional withPipewireVisualizer rustPlatform.bindgenHook; + + buildInputs = [ + alsa-lib + openssl + ] + ++ lib.optional withPipewireVisualizer pipewire; + + buildNoDefaultFeatures = true; + buildFeatures = [ + "discord-rpc" + "mpris" + "streaming" + "telemetry" + ] + ++ lib.optional withPipewireVisualizer "audio-viz"; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Fully standalone Spotify client for the terminal"; + homepage = "https://github.com/LargeModGames/spotatui"; + changelog = "https://github.com/LargeModGames/spotatui/releases/tag/v${finalAttrs.version}"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.lordmzte ]; + mainProgram = "spotatui"; + + # macOS is supported by upstream, but the package maintainer has no way to test this. + platforms = lib.platforms.linux; + }; +}) From 2dab6c66aab283978225e01ef24fda9c751e3e21 Mon Sep 17 00:00:00 2001 From: David Wronek Date: Fri, 16 Jan 2026 12:22:41 +0100 Subject: [PATCH 035/108] drasl: init at 3.4.2 Signed-off-by: David Wronek --- pkgs/by-name/dr/drasl/package.nix | 67 +++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 pkgs/by-name/dr/drasl/package.nix diff --git a/pkgs/by-name/dr/drasl/package.nix b/pkgs/by-name/dr/drasl/package.nix new file mode 100644 index 000000000000..77963d2fafde --- /dev/null +++ b/pkgs/by-name/dr/drasl/package.nix @@ -0,0 +1,67 @@ +{ + lib, + buildGoModule, + fetchFromGitHub, + fetchNpmDeps, + npmHooks, + go-swag, + nodejs, + nix-update-script, +}: +buildGoModule (finalAttrs: { + pname = "drasl"; + version = "3.4.2"; + + src = fetchFromGitHub { + owner = "unmojang"; + repo = "drasl"; + tag = "v${finalAttrs.version}"; + hash = "sha256-SOH6WXhBBx5JShr18Q0SyDFYVE7LMRUONdCJ1NB2HRQ="; + }; + + nativeBuildInputs = [ + go-swag + nodejs + npmHooks.npmConfigHook + ]; + + npmDeps = fetchNpmDeps { + inherit (finalAttrs) src; + hash = "sha256-L0y04zLgno5kKUACyokma8uk/fNY2mwdMwsq217SCqI="; + }; + + vendorHash = "sha256-4Rk59bnDFYpraoGvkBUW6Z5fiXUmm2RLwS1wxScWAMQ="; + + overrideModAttrs = oldAttrs: { + nativeBuildInputs = lib.filter (drv: drv != npmHooks.npmConfigHook) oldAttrs.nativeBuildInputs; + preBuild = null; + }; + + postPatch = '' + substituteInPlace build_config.go --replace-fail "\"/usr/share/drasl\"" "\"$out/share/drasl\"" + ''; + + preBuild = '' + make prebuild + ''; + + postInstall = '' + mkdir -p "$out/share/drasl" + cp -R ./{assets,view,public,locales} "$out/share/drasl" + ''; + + passthru = { + updateScript = nix-update-script { }; + }; + + meta = { + description = "Yggdrasil-compatible API server for Minecraft"; + homepage = "https://github.com/unmojang/drasl"; + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [ + evan-goode + ungeskriptet + ]; + mainProgram = "drasl"; + }; +}) From 465d889bc1f87451b2f8e29936fcb3e20435e8b6 Mon Sep 17 00:00:00 2001 From: David Wronek Date: Fri, 16 Jan 2026 12:23:36 +0100 Subject: [PATCH 036/108] nixos/drasl: init module Signed-off-by: David Wronek --- .../manual/release-notes/rl-2605.section.md | 2 + nixos/modules/module-list.nix | 1 + nixos/modules/services/web-apps/drasl.nix | 167 ++++++++++++++++++ 3 files changed, 170 insertions(+) create mode 100644 nixos/modules/services/web-apps/drasl.nix diff --git a/nixos/doc/manual/release-notes/rl-2605.section.md b/nixos/doc/manual/release-notes/rl-2605.section.md index 534bc7a9a09a..44a799a4fb1a 100644 --- a/nixos/doc/manual/release-notes/rl-2605.section.md +++ b/nixos/doc/manual/release-notes/rl-2605.section.md @@ -40,6 +40,8 @@ - [Shoko](https://shokoanime.com), an anime management system. Available as [services.shoko](#opt-services.shoko.enable). +- [Drasl](https://github.com/unmojang/drasl), an alternative authentication server for Minecraft. Available as [services.drasl](#opt-services.drasl.enable). + ## Backward Incompatibilities {#sec-release-26.05-incompatibilities} diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index dc8c2560c94a..6d9f0e25064e 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -1604,6 +1604,7 @@ ./services/web-apps/docuseal.nix ./services/web-apps/dokuwiki.nix ./services/web-apps/dolibarr.nix + ./services/web-apps/drasl.nix ./services/web-apps/drupal.nix ./services/web-apps/echoip.nix ./services/web-apps/eintopf.nix diff --git a/nixos/modules/services/web-apps/drasl.nix b/nixos/modules/services/web-apps/drasl.nix new file mode 100644 index 000000000000..1c84da7f0a43 --- /dev/null +++ b/nixos/modules/services/web-apps/drasl.nix @@ -0,0 +1,167 @@ +{ + lib, + pkgs, + config, + ... +}: +let + cfg = config.services.drasl; + format = pkgs.formats.toml { }; + filterAttrs = x: lib.filterAttrs (n: v: n != "ClientSecretFile" || v != null) x; + getIndex = + item: + builtins.toString (lib.lists.findFirstIndex (x: x == item) null cfg.settings.RegistrationOIDC); + secretFiles = lib.filter ( + x: lib.hasAttr "ClientSecretFile" (filterAttrs x) + ) cfg.settings.RegistrationOIDC; + settings = format.generate "drasl-config.toml" ( + if cfg.settings.RegistrationOIDC == [ ] then + lib.filterAttrs (n: v: n != "RegistrationOIDC" || v != [ ]) cfg.settings + else + lib.recursiveUpdate cfg.settings { + RegistrationOIDC = map ( + x: + if lib.hasAttr "ClientSecretFile" (filterAttrs x) then + lib.recursiveUpdate (filterAttrs x) { + ClientSecretFile = "$CREDENTIALS_DIRECTORY/${getIndex x}"; + } + else + filterAttrs x + ) cfg.settings.RegistrationOIDC; + } + ); +in +{ + options.services.drasl = { + enable = lib.mkEnableOption "Drasl"; + package = lib.mkPackageOption pkgs "drasl" { }; + enableDebug = lib.mkEnableOption "debugging"; + settings = lib.mkOption { + description = '' + Configuration for Drasl. See the + [Drasl documentation](https://github.com/unmojang/drasl/blob/master/doc/configuration.md) + for possible options. + ''; + type = lib.types.submodule { + freeformType = format.type; + options = { + RegistrationOIDC = lib.mkOption { + default = [ ]; + description = "List of OpenID connect providers."; + type = lib.types.listOf ( + lib.types.submodule { + freeformType = format.type; + options = { + ClientSecretFile = lib.mkOption { + default = null; + description = '' + Path to a file containing the OIDC client secret. + + ::: {.note} + The NixOS module will automatically load this file using + systemd's LoadCredential. Make sure this file is only + readable by the root user. + ::: + ''; + type = lib.types.nullOr lib.types.path; + }; + }; + } + ); + }; + }; + }; + }; + }; + config = lib.mkIf cfg.enable { + assertions = [ + { + assertion = lib.allUnique cfg.settings.RegistrationOIDC; + message = "All items in `services.drasl.settings.RegistrationOIDC` must be unique."; + } + { + assertion = lib.all ( + x: (lib.hasAttr "ClientSecretFile" (filterAttrs x)) -> !(lib.hasAttr "ClientSecret" (filterAttrs x)) + ) cfg.settings.RegistrationOIDC; + message = + "Do not set both `services.drasl.settings.RegistrationOIDC.*.ClientSecret` " + + "and `services.drasl.settings.RegistrationOIDC.*.ClientSecretFile`"; + } + ]; + systemd.services.drasl = { + description = "Drasl"; + after = [ + "network-online.target" + "nss-lookup.target" + ]; + wants = [ "network-online.target" ]; + wantedBy = [ "multi-user.target" ]; + environment = lib.mkIf cfg.enableDebug { DRASL_DEBUG = "1"; }; + serviceConfig = { + ExecStart = "${lib.getExe cfg.package} -config ${settings}"; + DynamicUser = true; + RuntimeDirectory = "drasl"; + RuntimeDirectoryMode = "0700"; + StateDirectory = "drasl"; + LoadCredential = lib.mkIf (secretFiles != [ ]) ( + map (x: "${getIndex x}:${x.ClientSecretFile}") secretFiles + ); + # Hardening + LockPersonality = true; + MemoryDenyWriteExecute = true; + NoNewPrivileges = true; + PrivateDevices = true; + PrivateMounts = true; + ProtectClock = true; + ProtectControlGroups = true; + ProtectHome = true; + ProtectHostname = true; + ProtectKernelLogs = true; + ProtectKernelModules = true; + ProtectKernelTunables = true; + RemoveIPC = true; + RestrictRealtime = true; + RestrictSUIDSGID = true; + CapabilityBoundingSet = "CAP_NET_BIND_SERVICE"; + AmbientCapabilities = "CAP_NET_BIND_SERVICE"; + PrivateTmp = "disconnected"; + ProcSubset = "pid"; + ProtectProc = "invisible"; + ProtectSystem = "strict"; + RestrictAddressFamilies = [ + "AF_INET" + "AF_INET6" + ]; + RestrictNamespaces = [ + "~cgroup" + "~ipc" + "~mnt" + "~net" + "~pid" + "~user" + "~uts" + ]; + SystemCallArchitectures = "native"; + SystemCallFilter = [ + "~@clock" + "~@cpu-emulation" + "~@debug" + "~@module" + "~@mount" + "~@obsolete" + "~@privileged" + "~@raw-io" + "~@reboot" + "~@resources" + "~@swap" + ]; + UMask = "0077"; + }; + }; + }; + + meta.maintainers = with lib.maintainers; [ + evan-goode + ungeskriptet + ]; +} From bc02bf2f21e8a40c36bfa2384f9e9b479a9aba3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Guimmara?= Date: Mon, 16 Feb 2026 09:43:15 +0100 Subject: [PATCH 037/108] docker-color-ourput: 2.6.1 -> 3.0.1 --- doc/release-notes/rl-2605.section.md | 2 ++ pkgs/by-name/do/docker-color-output/package.nix | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/doc/release-notes/rl-2605.section.md b/doc/release-notes/rl-2605.section.md index be7d2c29cb56..6f8b5ccb9cc1 100644 --- a/doc/release-notes/rl-2605.section.md +++ b/doc/release-notes/rl-2605.section.md @@ -131,6 +131,8 @@ retained for packages that have not completed migration. `asio_1_10` has been removed as no packages depend on it anymore. `asio` also no longer propagates `boost` as it is used independent from `boost` in most cases. +- `docker-color-output` has been updated from major version 2 to 3. One breaking change is, that they switched to [YAML-based configuration files](https://github.com/devemio/docker-color-output?tab=readme-ov-file#configuration). + - `stalwart-mail` has been renamed to `stalwart` - Ethercalc and its associated module have been removed, as the package is unmaintained and cannot be installed from source with npm now. diff --git a/pkgs/by-name/do/docker-color-output/package.nix b/pkgs/by-name/do/docker-color-output/package.nix index f9bc39363722..45b1918d3ae7 100644 --- a/pkgs/by-name/do/docker-color-output/package.nix +++ b/pkgs/by-name/do/docker-color-output/package.nix @@ -7,20 +7,20 @@ buildGoModule (finalAttrs: { pname = "docker-color-output"; - version = "2.6.1"; + version = "3.0.1"; src = fetchFromGitHub { owner = "devemio"; repo = "docker-color-output"; - tag = finalAttrs.version; - hash = "sha256-r11HNRXnmTC1CJR871sX7xW9ts9KAu1+azwIwXH09qg="; + tag = "v${finalAttrs.version}"; + hash = "sha256-Rpym9YckgJ583zgPpC/mQW1IGgQUppemFhAecgy3M8A="; }; postInstall = '' mv $out/bin/cli $out/bin/docker-color-output ''; - vendorHash = null; + vendorHash = "sha256-g+yaVIx4jxpAQ/+WrGKxhVeliYx7nLQe/zsGpxV4Fn4="; passthru = { updateScript = nix-update-script { }; From 12eaa179a59ece54ec434ee41d77b9f1f64e5aea Mon Sep 17 00:00:00 2001 From: Stefan Nuernberger Date: Fri, 2 Jan 2026 17:08:52 +0100 Subject: [PATCH 038/108] pawn-appetit: init at 0.11.0 --- pkgs/by-name/pa/pawn-appetit/package.nix | 99 ++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 pkgs/by-name/pa/pawn-appetit/package.nix diff --git a/pkgs/by-name/pa/pawn-appetit/package.nix b/pkgs/by-name/pa/pawn-appetit/package.nix new file mode 100644 index 000000000000..6152bb4502fe --- /dev/null +++ b/pkgs/by-name/pa/pawn-appetit/package.nix @@ -0,0 +1,99 @@ +{ + lib, + stdenv, + rustPlatform, + fetchFromGitHub, + fetchPnpmDeps, + + nodejs, + pnpm_10, + pnpmConfigHook, + cargo-tauri, + jq, + moreutils, + pkg-config, + wrapGAppsHook3, + makeBinaryWrapper, + + openssl, + webkitgtk_4_1, + gst_all_1, + + nix-update-script, +}: + +let + pnpm = pnpm_10; +in +rustPlatform.buildRustPackage (finalAttrs: { + pname = "pawn-appetit"; + version = "0.11.0"; + + src = fetchFromGitHub { + owner = "Pawn-Appetit"; + repo = "pawn-appetit"; + tag = "v${finalAttrs.version}"; + hash = "sha256-WJ/tFOizESDqdLy4maMKUZ79mgyyxqLuwCxWZ0+NVX4="; + }; + + pnpmDeps = fetchPnpmDeps { + inherit (finalAttrs) + pname + version + src + ; + inherit pnpm; + fetcherVersion = 3; + hash = "sha256-amXrz/ZzvjvNYlqxzTtQXiZw/NnUVJ7PhqG8oHsEe88="; + }; + + postPatch = '' + jq '.plugins.updater.endpoints = [ ] | .bundle.createUpdaterArtifacts = false' src-tauri/tauri.conf.json | sponge src-tauri/tauri.conf.json + ''; + + cargoRoot = "src-tauri"; + + cargoHash = "sha256-UKaW+NiNA398nyGs9+SjY+tUvLjCPrSxX6bZLSl7/EQ="; + + buildAndTestSubdir = finalAttrs.cargoRoot; + + nativeBuildInputs = [ + nodejs + pnpm + pnpmConfigHook + + cargo-tauri.hook + jq + moreutils + pkg-config + ] + ++ lib.optionals stdenv.hostPlatform.isLinux [ wrapGAppsHook3 ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ makeBinaryWrapper ]; + + buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ + openssl + webkitgtk_4_1 + + gst_all_1.gstreamer + gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good + gst_all_1.gst-plugins-bad + ]; + + doCheck = false; # many scoring tests fail + + postInstall = lib.optionalString stdenv.hostPlatform.isDarwin '' + makeWrapper "$out"/Applications/pawn-appetit.app/Contents/MacOS/pawn-appetit $out/bin/pawn-appetit + ''; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Ultimate Chess Toolkit (fork of en-croissant)"; + homepage = "https://github.com/Pawn-Appetit/pawn-appetit/"; + license = lib.licenses.gpl3Only; + mainProgram = "pawn-appetit"; + maintainers = with lib.maintainers; [ snu ]; + platforms = lib.platforms.linux ++ lib.platforms.darwin; + }; +}) From 4796de62dc3ed4a9a13c47a9d87f3a23ddd464a8 Mon Sep 17 00:00:00 2001 From: Philip Johansson Date: Mon, 1 Dec 2025 07:20:36 +0100 Subject: [PATCH 039/108] qbit-manage: init at 4.6.5 --- pkgs/by-name/qb/qbit-manage/package.nix | 71 +++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 pkgs/by-name/qb/qbit-manage/package.nix diff --git a/pkgs/by-name/qb/qbit-manage/package.nix b/pkgs/by-name/qb/qbit-manage/package.nix new file mode 100644 index 000000000000..e3dc8f09d75f --- /dev/null +++ b/pkgs/by-name/qb/qbit-manage/package.nix @@ -0,0 +1,71 @@ +{ + lib, + fetchFromGitHub, + python3Packages, + testers, + nix-update-script, + qbit-manage, +}: +python3Packages.buildPythonApplication rec { + pname = "qbit-manage"; + version = "4.6.5"; + + src = fetchFromGitHub { + owner = "StuffAnThings"; + repo = "qbit_manage"; + tag = "v${version}"; + hash = "sha256-JCsbf2mPRhs7Mbekl946G/y/CSNSSvQBLvlwVy/Avcg="; + }; + + pyproject = true; + build-system = [ python3Packages.setuptools ]; + + postPatch = '' + substituteInPlace pyproject.toml \ + --replace "==" ">=" \ + --replace "bencodepy" "bencode.py" + ''; + + dependencies = with python3Packages; [ + argon2-cffi + bencode-py + croniter + fastapi + gitpython + humanize + pytimeparse2 + qbittorrent-api + requests + retrying + ruamel-yaml + slowapi + uvicorn + ]; + + pythonRelaxDeps = [ + "fastapi" + "gitpython" + "humanize" + "ruamel.yaml" + "uvicorn" + ]; + + passthru = { + updateScript = nix-update-script { }; + tests = { + version = testers.testVersion { + package = qbit-manage; + command = "env HOME=$TMPDIR qbit-manage --version"; + }; + }; + }; + + meta = { + description = "This tool will help manage tedious tasks in qBittorrent and automate them"; + homepage = "https://github.com/StuffAnThings/qbit_manage"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ flyingpeakock ]; + platforms = lib.platforms.all; + mainProgram = "qbit-manage"; + }; +} From 00a7fc50ceb577da117aea84c55d52875f5e4ebc Mon Sep 17 00:00:00 2001 From: kyehn <228304369+kyehn@users.noreply.github.com> Date: Wed, 18 Feb 2026 09:15:09 +0800 Subject: [PATCH 040/108] mdk-sdk: set autoPatchelfIgnoreMissingDeps --- pkgs/by-name/md/mdk-sdk/package.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/by-name/md/mdk-sdk/package.nix b/pkgs/by-name/md/mdk-sdk/package.nix index 4eaf6acd652c..5901881abcc7 100644 --- a/pkgs/by-name/md/mdk-sdk/package.nix +++ b/pkgs/by-name/md/mdk-sdk/package.nix @@ -67,6 +67,8 @@ stdenv.mkDerivation rec { addDriverRunpath.driverLink ]; + autoPatchelfIgnoreMissingDeps = [ "librockchip_mpp.so.1" ]; + installPhase = '' runHook preInstall From 0febcd8817867b9d67c4cbe3308d86455a624d7d Mon Sep 17 00:00:00 2001 From: sophronesis Date: Fri, 6 Feb 2026 18:39:09 +0100 Subject: [PATCH 041/108] ultimate-doom-builder: init at 0-unstable-2026-02-01 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ultimate Doom Builder is an advanced Doom map editor based on Doom Builder 2 with Mono support for cross-platform compatibility. The build system uses git commands to generate version information. These have been patched to use static values since the source doesn't include .git directory. Adds unstableGitUpdater for automatic updates. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../ul/ultimate-doom-builder/package.nix | 137 ++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 pkgs/by-name/ul/ultimate-doom-builder/package.nix diff --git a/pkgs/by-name/ul/ultimate-doom-builder/package.nix b/pkgs/by-name/ul/ultimate-doom-builder/package.nix new file mode 100644 index 000000000000..9ef1c4628385 --- /dev/null +++ b/pkgs/by-name/ul/ultimate-doom-builder/package.nix @@ -0,0 +1,137 @@ +{ + stdenv, + lib, + fetchFromGitHub, + makeWrapper, + msbuild, + mono, + libGL, + libpng, + libx11, + gtk2-x11, + makeDesktopItem, + copyDesktopItems, + unstableGitUpdater, + autoPatchelfHook, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "ultimate-doom-builder"; + version = "0-unstable-2026-02-01"; + + src = fetchFromGitHub { + owner = "jewalky"; + repo = "UltimateDoomBuilder"; + rev = "9d7a12b1164dc53964b594395f9d5d825a43ac12"; + hash = "sha256-FwGfrvF+UrmEw1lvcU4qL9OOP0n/ZmQTsIjQIxRvkmg="; + }; + + nativeBuildInputs = [ + msbuild + makeWrapper + copyDesktopItems + autoPatchelfHook + ]; + + buildInputs = [ + libGL + libpng + libx11 + gtk2-x11 + ]; + + postPatch = + let + gitCommitCount = "4291"; + gitCommitHash = "9d7a12b"; + in + '' + # Replace git-based version generation with static values since .git directory is not available. + # The build system runs git commands to get commit count and hash, then uses them in version strings. + # We disable the git Exec commands and set static PropertyGroup values instead. + for file in Source/Core/BuilderMono.csproj Source/Plugins/BuilderModes/BuilderModesMono.csproj; do + # Remove git Exec commands (they would fail without .git directory) + sed -i '/0<\/GitCommitCount>/>${gitCommitCount}<\/GitCommitCount>/g' "$file" + sed -i 's/>0<\/GitCommitHash>/>${gitCommitHash}<\/GitCommitHash>/g' "$file" + done + ''; + + buildPhase = '' + runHook preBuild + + # Won't compile without windows codepage identifier for UTF-8 + msbuild /nologo /verbosity:minimal -p:Configuration=Release /p:codepage=65001 ./BuilderMono.sln + + cp builder.sh Build/builder + chmod +x Build/builder + + # Build native library with: + # - UDB_LINUX=1 for proper mouse input handling + # - NO_SSE=1 on aarch64 to disable SSE intrinsics + $CXX -std=c++14 -O2 -shared -o Build/libBuilderNative.so -fPIC \ + -DUDB_LINUX=1 \ + ${lib.optionalString stdenv.hostPlatform.isAarch64 "-DNO_SSE=1"} \ + -I Source/Native \ + Source/Native/*.cpp \ + Source/Native/OpenGL/*.cpp \ + Source/Native/OpenGL/gl_load/*.c \ + -lX11 -ldl + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/{bin,opt,share/icons/hicolor/64x64/apps} + + cp -r Build $out/opt/UltimateDoomBuilder + + substituteInPlace $out/opt/UltimateDoomBuilder/builder --replace-fail mono ${mono}/bin/mono + substituteInPlace $out/opt/UltimateDoomBuilder/builder --replace-fail Builder.exe $out/opt/UltimateDoomBuilder/Builder.exe + + # GTK is loaded dynamically by Mono at runtime + wrapProgram $out/opt/UltimateDoomBuilder/builder \ + --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ gtk2-x11 ]}" + + ln -s $out/opt/UltimateDoomBuilder/builder $out/bin/ultimate-doom-builder + + cp flatpak/icons/64x64/io.github.ultimatedoombuilder.ultimatedoombuilder.png $out/share/icons/hicolor/64x64/apps/ultimate-doom-builder.png + + runHook postInstall + ''; + + desktopItems = [ + (makeDesktopItem { + name = "ultimate-doom-builder"; + exec = "ultimate-doom-builder"; + icon = "ultimate-doom-builder"; + desktopName = "Ultimate Doom Builder"; + comment = finalAttrs.meta.description; + categories = [ + "Game" + "Development" + "Graphics" + "3DGraphics" + ]; + }) + ]; + + passthru.updateScript = unstableGitUpdater { }; + + meta = { + homepage = "https://github.com/jewalky/UltimateDoomBuilder"; + description = "Advanced Doom map editor based on Doom Builder 2 with Mono support"; + mainProgram = "ultimate-doom-builder"; + longDescription = '' + Ultimate Doom Builder is a map editor for Doom, Heretic, Hexen, and Strife. + It is a continuation of Doom Builder 2 with many new features and improvements, + including cross-platform support via Mono. + ''; + license = lib.licenses.gpl3Plus; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ sophronesis ]; + }; +}) From 6c40295729e8da7365c219b1070091bf59800280 Mon Sep 17 00:00:00 2001 From: Marc Jakobi Date: Wed, 24 Dec 2025 19:01:06 +0100 Subject: [PATCH 042/108] figtree: init at 2.0.3 --- pkgs/by-name/fi/figtree/package.nix | 42 +++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 pkgs/by-name/fi/figtree/package.nix diff --git a/pkgs/by-name/fi/figtree/package.nix b/pkgs/by-name/fi/figtree/package.nix new file mode 100644 index 000000000000..0b4832de37d4 --- /dev/null +++ b/pkgs/by-name/fi/figtree/package.nix @@ -0,0 +1,42 @@ +{ + lib, + stdenvNoCC, + fetchFromGitHub, +}: + +stdenvNoCC.mkDerivation (finalAttrs: { + pname = "figtree"; + version = "2.0.3"; + + src = fetchFromGitHub { + owner = "erikdkennedy"; + repo = "figtree"; + tag = "v${finalAttrs.version}"; + hash = "sha256-owzoM0zfKYxLJCQbL1eUE0cdSLVmm+QNRUGxbsNJ37I="; + }; + + sourceRoot = "fonts"; + + setSourceRoot = "sourceRoot=$(pwd)"; + + installPhase = '' + runHook preInstall + find . -type f -iname '*.ttf' | while read f; do + d="$out/share/fonts/truetype/figtree/$(basename "$f")" + install -Dm644 -D "$f" "$d" + done + find . -type f -iname '*.otf' | while read f; do + d="$out/share/fonts/opentype/figtree/$(basename "$f")" + install -Dm644 -D "$f" "$d" + done + runHook postInstall + ''; + + meta = { + homepage = "https://github.com/erikdkennedy/figtree"; + description = "Simple and friendly geometric sans serif font"; + platforms = lib.platforms.all; + maintainers = with lib.maintainers; [ mrcjkb ]; + license = lib.licenses.ofl; + }; +}) From 89223af8fefcc5f32a5f79591402e45ce6796d13 Mon Sep 17 00:00:00 2001 From: Ricardo Correia Date: Wed, 18 Feb 2026 22:05:34 +0000 Subject: [PATCH 043/108] opensmtpd: fix offline enqueueing Note: for it to work correctly, it requires `services.opensmtpd.setSendmail` is set to true. Fixes #255691 Co-authored-by: Sandro --- nixos/modules/services/mail/opensmtpd.nix | 21 +++++++++++++++------ pkgs/by-name/op/opensmtpd/offline.patch | 20 ++++++++++++++++++++ pkgs/by-name/op/opensmtpd/package.nix | 14 ++++++++++++-- 3 files changed, 47 insertions(+), 8 deletions(-) create mode 100644 pkgs/by-name/op/opensmtpd/offline.patch diff --git a/nixos/modules/services/mail/opensmtpd.nix b/nixos/modules/services/mail/opensmtpd.nix index ba5226351a57..4ec30ce09dae 100644 --- a/nixos/modules/services/mail/opensmtpd.nix +++ b/nixos/modules/services/mail/opensmtpd.nix @@ -105,12 +105,21 @@ in }; }; - security.wrappers.smtpctl = { - owner = "root"; - group = "smtpq"; - setuid = false; - setgid = true; - source = "${cfg.package}/bin/smtpctl"; + security.wrappers = { + makemap = { + owner = "root"; + group = "smtpq"; + setuid = false; + setgid = true; + source = "${cfg.package}/bin/smtpctl"; + }; + smtpctl = { + owner = "root"; + group = "smtpq"; + setuid = false; + setgid = true; + source = "${cfg.package}/bin/smtpctl"; + }; }; services.mail.sendmailSetuidWrapper = lib.mkIf cfg.setSendmail ( diff --git a/pkgs/by-name/op/opensmtpd/offline.patch b/pkgs/by-name/op/opensmtpd/offline.patch new file mode 100644 index 000000000000..69e36bcc5870 --- /dev/null +++ b/pkgs/by-name/op/opensmtpd/offline.patch @@ -0,0 +1,20 @@ +Commit ID: 0527fcb65d6af4271a33dbd425f30d457fc7ab4f +Change ID: puqrnyuutmspqxqtkkqqrsmsxnyqvomm +Author : Ricardo Correia (2026-02-18 23:51:00) +Committer: Ricardo Correia (2026-02-19 00:43:47) + + (no description set) + +diff --git a/usr.sbin/smtpd/smtpd.c b/usr.sbin/smtpd/smtpd.c +index 2365b1ee46..b9e40e1417 100644 +--- a/usr.sbin/smtpd/smtpd.c ++++ b/usr.sbin/smtpd/smtpd.c +@@ -1806,7 +1806,7 @@ + envp[1] = (char *)NULL; + environ = envp; + +- execvp(PATH_SMTPCTL, args.list); ++ execvp(@@PATH_SENDMAIL@@, args.list); + _exit(1); + } + diff --git a/pkgs/by-name/op/opensmtpd/package.nix b/pkgs/by-name/op/opensmtpd/package.nix index bc1e20cdd177..6bb0ea028df0 100644 --- a/pkgs/by-name/op/opensmtpd/package.nix +++ b/pkgs/by-name/op/opensmtpd/package.nix @@ -14,6 +14,7 @@ pam, libxcrypt, nixosTests, + binPath ? "/run/wrappers/bin", }: stdenv.mkDerivation (finalAttrs: { @@ -43,11 +44,20 @@ stdenv.mkDerivation (finalAttrs: { patches = [ ./proc_path.diff # TODO: upstream to OpenSMTPD, see https://github.com/NixOS/nixpkgs/issues/54045 + ./offline.patch ]; postPatch = '' - substituteInPlace mk/smtpctl/Makefile.am --replace "chgrp" "true" - substituteInPlace mk/smtpctl/Makefile.am --replace "chmod 2555" "chmod 0555" + substituteInPlace mk/smtpctl/Makefile.am \ + --replace-fail "chgrp" "true" \ + --replace "chmod 2555" "chmod 0555" + substituteInPlace mk/pathnames \ + --replace-fail "-DPATH_SMTPCTL=\\\"\$(sbindir)" \ + "-DPATH_SMTPCTL=\\\"${binPath}" \ + --replace-fail "-DPATH_MAKEMAP=\\\"\$(sbindir)" \ + "-DPATH_MAKEMAP=\\\"${binPath}" + substituteInPlace usr.sbin/smtpd/smtpd.c \ + --replace-fail "@@PATH_SENDMAIL@@" "\"${binPath}/sendmail\"" ''; configureFlags = [ From 7f56fa95fc56dfd83a94bcbe671d51012620fcd2 Mon Sep 17 00:00:00 2001 From: NullString1 Date: Fri, 15 Aug 2025 17:26:34 +0100 Subject: [PATCH 044/108] maintainers: add nullstring1 --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index fdba52e7b39f..5826e7ff3629 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -19554,6 +19554,12 @@ github = "nullishamy"; githubId = 99221043; }; + nullstring1 = { + email = "nullstring1+nixpkgs@nullstring.one"; + name = "nullstring1"; + github = "nullstring1"; + githubId = 53035336; + }; numbleroot = { email = "hello@lennartoldenburg.de"; name = "Lennart Oldenburg"; From 543ad25765abee49459328231b6f09bd03b57457 Mon Sep 17 00:00:00 2001 From: NullString1 Date: Wed, 11 Feb 2026 18:48:57 +0000 Subject: [PATCH 045/108] litecli: init at 1.17.1 --- .../python-modules/litecli/default.nix | 55 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 57 insertions(+) create mode 100644 pkgs/development/python-modules/litecli/default.nix diff --git a/pkgs/development/python-modules/litecli/default.nix b/pkgs/development/python-modules/litecli/default.nix new file mode 100644 index 000000000000..b271b24c4a7f --- /dev/null +++ b/pkgs/development/python-modules/litecli/default.nix @@ -0,0 +1,55 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + setuptools, + setuptools-scm, + click, + pygments, + prompt-toolkit, + sqlparse, + configobj, + cli-helpers, +}: + +buildPythonPackage rec { + pname = "litecli"; + version = "1.17.1"; + pyproject = true; + + src = fetchFromGitHub { + owner = "dbcli"; + repo = "litecli"; + tag = "v${version}"; + hash = "sha256-YSPNtDL5rNgRh5lJBKfL1jjWemlmf3eesBMSLyJVRLY="; + }; + + build-system = [ + setuptools + setuptools-scm + ]; + + dependencies = [ + click + pygments + prompt-toolkit + sqlparse + configobj + cli-helpers + ]; + + doCheck = true; + + pythonImportsCheck = [ + "litecli" + ]; + + meta = { + description = "CLI for SQLite Databases with auto-completion and syntax highlighting"; + homepage = "https://github.com/dbcli/litecli"; + changelog = "https://github.com/dbcli/litecli/releases/tag/v${version}"; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ nullstring1 ]; + mainProgram = "litecli"; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 3f6286fd59ea..2a83631d85df 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -8870,6 +8870,8 @@ self: super: with self; { lit = callPackage ../development/python-modules/lit { }; + litecli = callPackage ../development/python-modules/litecli { }; + litellm = callPackage ../development/python-modules/litellm { }; litemapy = callPackage ../development/python-modules/litemapy { }; From 0d0230faad1c521d3f2ccd7d94a0a11698c3bbfa Mon Sep 17 00:00:00 2001 From: NullString1 Date: Wed, 11 Feb 2026 18:49:23 +0000 Subject: [PATCH 046/108] objection: init at 1.12.3 --- pkgs/by-name/ob/objection/package.nix | 64 +++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 pkgs/by-name/ob/objection/package.nix diff --git a/pkgs/by-name/ob/objection/package.nix b/pkgs/by-name/ob/objection/package.nix new file mode 100644 index 000000000000..2e3f5f1b6ab9 --- /dev/null +++ b/pkgs/by-name/ob/objection/package.nix @@ -0,0 +1,64 @@ +{ + lib, + python3Packages, + fetchFromGitHub, + frida-tools, +}: + +python3Packages.buildPythonApplication rec { + pname = "objection"; + version = "1.12.3"; + pyproject = true; + + src = fetchFromGitHub { + owner = "sensepost"; + repo = "objection"; + tag = version; + hash = "sha256-xOqBYwpq46czRZggTNmNcqGqTA8omTLiOeZaF7zSvxo="; + }; + + build-system = with python3Packages; [ + setuptools + ]; + + buildInputs = [ + frida-tools + ]; + + dependencies = with python3Packages; [ + frida-python + prompt-toolkit + click + tabulate + semver + delegator-py + requests + flask + pygments + setuptools + packaging + litecli + ]; + + pythonImportsCheck = [ + "objection" + ]; + + doCheck = true; + + pythonRuntimeDepsCheck = true; + + meta = { + description = "Runtime mobile exploration toolkit, powered by Frida"; + longDescription = '' + objection is a runtime mobile exploration toolkit, powered by Frida, + built to help you assess the security posture of your mobile applications, + without needing a jailbreak. + ''; + homepage = "https://github.com/sensepost/objection"; + changelog = "https://github.com/sensepost/objection/releases/tag/${version}"; + license = lib.licenses.gpl3Only; + maintainers = with lib.maintainers; [ nullstring1 ]; + mainProgram = "objection"; + }; +} From 24fcdebd872b0f872aef8f56391831f88338da92 Mon Sep 17 00:00:00 2001 From: Nathaniel Wesley Filardo Date: Mon, 5 Jan 2026 05:46:13 +0000 Subject: [PATCH 047/108] yubikey-manager: fix cross-compilation shell completion --- pkgs/by-name/yu/yubikey-manager/package.nix | 28 ++++++++++++++++----- 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/yu/yubikey-manager/package.nix b/pkgs/by-name/yu/yubikey-manager/package.nix index 3eb8a6065979..88e7a318aed9 100644 --- a/pkgs/by-name/yu/yubikey-manager/package.nix +++ b/pkgs/by-name/yu/yubikey-manager/package.nix @@ -5,6 +5,8 @@ python3Packages, installShellFiles, procps, + + buildPackages, }: python3Packages.buildPythonPackage rec { @@ -43,12 +45,26 @@ python3Packages.buildPythonPackage rec { postInstall = '' installManPage man/ykman.1 - - installShellCompletion --cmd ykman \ - --bash <(_YKMAN_COMPLETE=bash_source "$out/bin/ykman") \ - --zsh <(_YKMAN_COMPLETE=zsh_source "$out/bin/ykman") \ - --fish <(_YKMAN_COMPLETE=fish_source "$out/bin/ykman") \ - ''; + '' + + ( + let + compOpts = + x: + if stdenv.buildPlatform.canExecute python3Packages.stdenv.hostPlatform then + "--${x} <(_YKMAN_COMPLETE=${x}_source ${placeholder "out"}/bin/ykman)" + else + ''--${x} <(_YKMAN_COMPLETE=${x}_source PYTHONPATH= "${buildPackages.yubikey-manager}/bin/ykman")''; + in + '' + installShellCompletion --cmd ykman ${ + lib.strings.concatMapStringsSep " " compOpts [ + "bash" + "zsh" + "fish" + ] + } + '' + ); nativeCheckInputs = with python3Packages; [ astroid From 1bafdab7d4666bf7a3145a456599aae547b4f55e Mon Sep 17 00:00:00 2001 From: nyanloutre Date: Fri, 20 Feb 2026 13:11:23 +0000 Subject: [PATCH 048/108] transmission_4: 4.1.0 -> 4.1.1 --- pkgs/applications/networking/p2p/transmission/4.nix | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/pkgs/applications/networking/p2p/transmission/4.nix b/pkgs/applications/networking/p2p/transmission/4.nix index 518bce1933be..532bfd1f9450 100644 --- a/pkgs/applications/networking/p2p/transmission/4.nix +++ b/pkgs/applications/networking/p2p/transmission/4.nix @@ -22,7 +22,6 @@ fmt, libpsl, miniupnpc, - crc32c, dht, libnatpmp, libiconv, @@ -48,7 +47,6 @@ let apparmorRules = apparmorRulesFromClosure { name = "transmission-daemon"; } ( [ - crc32c curl libdeflate libevent @@ -66,13 +64,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "transmission"; - version = "4.1.0"; + version = "4.1.1"; src = fetchFromGitHub { owner = "transmission"; repo = "transmission"; tag = finalAttrs.version; - hash = "sha256-glmwa06+jCyL9G2Rc58Yrvzo+/6Qu3bqwqy02RWgG64="; + hash = "sha256-c3BOQ25xWIj4bLDQDnfzw9ZyuPemyHrK2Ua0jbOSuOw="; fetchSubmodules = true; }; @@ -99,7 +97,7 @@ stdenv.mkDerivation (finalAttrs: { # Excluding gtest since it is hardcoded to vendored version. The rest of the listed libraries are not packaged. pushd third-party for f in *; do - if [[ ! $f =~ googletest|wildmat|wide-integer|jsonsl ]]; then + if [[ ! $f =~ googletest|wildmat|wide-integer|jsonsl|madler-crcany ]]; then rm -r "$f" fi done @@ -126,7 +124,6 @@ stdenv.mkDerivation (finalAttrs: { buildInputs = [ curl - crc32c dht fast-float fmt From 2576304f74c52eaf0def65b5e7224d6431b34f6d Mon Sep 17 00:00:00 2001 From: Daniel Woffinden Date: Sun, 15 Feb 2026 16:42:06 +0000 Subject: [PATCH 049/108] cgtcalc: init at 0-unstable-2025-10-11 Using upstream 1cf63741ddc0a5070680cb1339ad0abff0b7d69b, which is the last to build with swift <6. Not to be confused with cgt-calc, written in python. --- pkgs/by-name/cg/cgtcalc/generated/default.nix | 7 +++ .../cg/cgtcalc/generated/workspace-state.json | 25 ++++++++ pkgs/by-name/cg/cgtcalc/package.nix | 58 +++++++++++++++++++ 3 files changed, 90 insertions(+) create mode 100644 pkgs/by-name/cg/cgtcalc/generated/default.nix create mode 100644 pkgs/by-name/cg/cgtcalc/generated/workspace-state.json create mode 100644 pkgs/by-name/cg/cgtcalc/package.nix diff --git a/pkgs/by-name/cg/cgtcalc/generated/default.nix b/pkgs/by-name/cg/cgtcalc/generated/default.nix new file mode 100644 index 000000000000..fcda4cfc1a87 --- /dev/null +++ b/pkgs/by-name/cg/cgtcalc/generated/default.nix @@ -0,0 +1,7 @@ +# This file was generated by swiftpm2nix. +{ + workspaceStateFile = ./workspace-state.json; + hashes = { + "swift-argument-parser" = "sha256-lWQ9mzfRxHcy00Cqyrsm9rOlQzkpU1lNBmiK7MMp6dU="; + }; +} diff --git a/pkgs/by-name/cg/cgtcalc/generated/workspace-state.json b/pkgs/by-name/cg/cgtcalc/generated/workspace-state.json new file mode 100644 index 000000000000..3a9ec58c7166 --- /dev/null +++ b/pkgs/by-name/cg/cgtcalc/generated/workspace-state.json @@ -0,0 +1,25 @@ +{ + "object": { + "artifacts": [], + "dependencies": [ + { + "basedOn": null, + "packageRef": { + "identity": "swift-argument-parser", + "kind": "remoteSourceControl", + "location": "https://github.com/apple/swift-argument-parser", + "name": "swift-argument-parser" + }, + "state": { + "checkoutState": { + "revision": "f3c9084a71ef4376f2fabbdf1d3d90a49f1fabdb", + "version": "1.1.2" + }, + "name": "sourceControlCheckout" + }, + "subpath": "swift-argument-parser" + } + ] + }, + "version": 6 +} diff --git a/pkgs/by-name/cg/cgtcalc/package.nix b/pkgs/by-name/cg/cgtcalc/package.nix new file mode 100644 index 000000000000..eae6cbd7e32e --- /dev/null +++ b/pkgs/by-name/cg/cgtcalc/package.nix @@ -0,0 +1,58 @@ +{ + fetchFromGitHub, + lib, + nix-update-script, + stdenv, + swift, + swiftPackages, + swiftpm, + swiftpm2nix, +}: +let + generated = swiftpm2nix.helpers ./generated; +in +stdenv.mkDerivation (finalAttrs: { + pname = "cgtcalc"; + version = "0-unstable-2025-10-11"; + + src = fetchFromGitHub { + owner = "mattjgalloway"; + repo = "cgtcalc"; + # Repo has no tags or releases. + # This is the last commit before requiring Swift 6 + rev = "1cf63741ddc0a5070680cb1339ad0abff0b7d69b"; + hash = "sha256-+qgvl5y9ipVQIZlLZbkzkqb9bO7X9VGDvVsloOLZU/k="; + }; + nativeBuildInputs = [ + swift + swiftpm + ]; + + configurePhase = generated.configure; + + installPhase = '' + runHook preInstall + mkdir -p $out/bin + cp $(swiftpmBinPath)/cgtcalc $out/bin/ + runHook postInstall + ''; + + buildInputs = [ + swiftPackages.XCTest + ]; + + # libIndexStore.so: cannot open shared object file: No such file or directory + # https://github.com/NixOS/nixpkgs/issues/379859 + doCheck = false; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "UK capital gains tax calculator written in Swift"; + homepage = "https://github.com/mattjgalloway/cgtcalc"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.dwoffinden ]; + mainProgram = "cgtcalc"; + platforms = lib.platforms.all; + }; +}) From 84fa3564133c642b87dedebcee0672f16d53adfa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20James?= Date: Thu, 5 Feb 2026 22:46:37 +0100 Subject: [PATCH 050/108] crowdsec-firewall-bouncer: directly reference cscli package --- nixos/modules/services/security/crowdsec-firewall-bouncer.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/services/security/crowdsec-firewall-bouncer.nix b/nixos/modules/services/security/crowdsec-firewall-bouncer.nix index 856efd81b483..27075986669c 100644 --- a/nixos/modules/services/security/crowdsec-firewall-bouncer.nix +++ b/nixos/modules/services/security/crowdsec-firewall-bouncer.nix @@ -231,7 +231,7 @@ in after = [ "crowdsec.service" ]; wants = after; script = '' - cscli=/run/current-system/sw/bin/cscli + cscli=${lib.getExe' config.services.crowdsec.package "cscli"} if $cscli bouncers list --output json | ${lib.getExe pkgs.jq} -e -- ${lib.escapeShellArg "any(.[]; .name == \"${cfg.registerBouncer.bouncerName}\")"} >/dev/null; then # Bouncer already registered. Verify the API key is still present if [ ! -f ${apiKeyFile} ]; then From 429633bd83998d9b45a1ec20dd9ff126f08b770e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20James?= Date: Thu, 5 Feb 2026 22:46:37 +0100 Subject: [PATCH 051/108] crowdsec-firewall-bouncer: fix registration --- .../services/security/crowdsec-firewall-bouncer.nix | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/nixos/modules/services/security/crowdsec-firewall-bouncer.nix b/nixos/modules/services/security/crowdsec-firewall-bouncer.nix index 27075986669c..a33bc55079c0 100644 --- a/nixos/modules/services/security/crowdsec-firewall-bouncer.nix +++ b/nixos/modules/services/security/crowdsec-firewall-bouncer.nix @@ -257,12 +257,7 @@ in User = config.services.crowdsec.user; Group = config.services.crowdsec.group; - StateDirectory = "crowdsec-firewall-bouncer-register"; - - ReadWritePaths = [ - # Needs write permissions to add the bouncer - "/var/lib/crowdsec" - ]; + StateDirectory = "crowdsec-firewall-bouncer-register crowdsec"; DynamicUser = true; LockPersonality = true; From 6c7513ecb8ebb66e819ec75d988bbb2bb608e789 Mon Sep 17 00:00:00 2001 From: Mistyttm Date: Wed, 21 Jan 2026 09:47:12 +1000 Subject: [PATCH 052/108] tdarr: init at 2.58.02 --- pkgs/by-name/td/tdarr/package.nix | 35 ++++ pkgs/tools/misc/tdarr/common.nix | 213 +++++++++++++++++++++++++ pkgs/tools/misc/tdarr/default.nix | 6 + pkgs/tools/misc/tdarr/node.nix | 13 ++ pkgs/tools/misc/tdarr/server.nix | 16 ++ pkgs/tools/misc/tdarr/update-hashes.sh | 114 +++++++++++++ pkgs/top-level/all-packages.nix | 5 + 7 files changed, 402 insertions(+) create mode 100644 pkgs/by-name/td/tdarr/package.nix create mode 100644 pkgs/tools/misc/tdarr/common.nix create mode 100644 pkgs/tools/misc/tdarr/default.nix create mode 100644 pkgs/tools/misc/tdarr/node.nix create mode 100644 pkgs/tools/misc/tdarr/server.nix create mode 100755 pkgs/tools/misc/tdarr/update-hashes.sh diff --git a/pkgs/by-name/td/tdarr/package.nix b/pkgs/by-name/td/tdarr/package.nix new file mode 100644 index 000000000000..dec4a5163a38 --- /dev/null +++ b/pkgs/by-name/td/tdarr/package.nix @@ -0,0 +1,35 @@ +{ + lib, + symlinkJoin, + tdarr-server, + tdarr-node, +}: + +symlinkJoin { + name = "tdarr-${tdarr-server.version}"; + pname = "tdarr"; + inherit (tdarr-server) version; + + paths = [ + tdarr-server + tdarr-node + ]; + + passthru = { + server = tdarr-server; + node = tdarr-node; + }; + + meta = { + description = "Distributed transcode automation using FFmpeg/HandBrake (includes both server and node)"; + homepage = "https://tdarr.io"; + license = lib.licenses.unfree; + platforms = [ + "x86_64-linux" + "aarch64-linux" + "x86_64-darwin" + "aarch64-darwin" + ]; + maintainers = with lib.maintainers; [ mistyttm ]; + }; +} diff --git a/pkgs/tools/misc/tdarr/common.nix b/pkgs/tools/misc/tdarr/common.nix new file mode 100644 index 000000000000..dd08fb81adde --- /dev/null +++ b/pkgs/tools/misc/tdarr/common.nix @@ -0,0 +1,213 @@ +{ + lib, + stdenv, + fetchzip, + autoPatchelfHook, + makeWrapper, + copyDesktopItems, + makeDesktopItem, + ffmpeg, + handbrake, + mkvtoolnix, + ccextractor, + gtk3, + libayatana-appindicator, + wayland, + libxkbcommon, + mesa, + libxcb, + leptonica, + glib, + gobject-introspection, + libx11, + libxcursor, + libxfixes, + tesseract4, + perl, +}: +{ + pname, + component, # "server" or "node" + hashes, + includeInPath ? [ ], # Additional packages to include in PATH + installIcons ? false, # Whether to install icon files + passthru ? { }, # Additional passthru attributes +}: +let + platform = + { + x86_64-linux = "linux_x64"; + aarch64-linux = "linux_arm64"; + x86_64-darwin = "darwin_x64"; + aarch64-darwin = "darwin_arm64"; + } + .${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); + + componentUpper = + lib.toUpper (builtins.substring 0 1 component) + + builtins.substring 1 (builtins.stringLength component) component; + componentName = "Tdarr_${componentUpper}"; + componentTrayName = "${componentName}_Tray"; + + binPath = lib.makeBinPath ( + [ + ffmpeg + mkvtoolnix + ] + ++ includeInPath + # ! Handbrake is currently marked as broken on darwin + ++ lib.optional (!stdenv.hostPlatform.isDarwin) handbrake + ); + + commonWrapperArgs = lib.escapeShellArgs ( + [ + "--prefix" + "PATH" + ":" + binPath + "--run" + "export rootDataPath=\${rootDataPath:-\${XDG_DATA_HOME:-$HOME/.local/share}/tdarr/${component}}; mkdir -p \"$rootDataPath\"/configs \"$rootDataPath\"/logs; cd \"$rootDataPath\"" + ] + ++ lib.optionals (component == "node") [ + "--run" + "mkdir -p \"$rootDataPath\"/assets/app/plugins" + ] + ++ [ + "--run" + ''_cfg="$rootDataPath/configs/${componentName}_Config.json"; if [ -f "$_cfg" ]; then grep -q ffprobePath "$_cfg" || sed -i '1s/{/{"ffprobePath":"",/' "$_cfg"; else printf '{"ffprobePath":""}' > "$_cfg"; fi'' + "--set-default" + "ffmpegPath" + "${ffmpeg}/bin/ffmpeg" + "--set-default" + "ffprobePath" + "${ffmpeg}/bin/ffprobe" + "--set-default" + "mkvpropeditPath" + "${mkvtoolnix}/bin/mkvpropedit" + ] + ++ lib.optionals (component == "server") [ + "--set-default" + "ccextractorPath" + "${ccextractor}/bin/ccextractor" + ] + # ! Handbrake is currently marked as broken on darwin + ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ + "--set-default" + "handbrakePath" + "${handbrake}/bin/HandBrakeCLI" + ] + ); +in +stdenv.mkDerivation (finalAttrs: { + inherit pname; + version = "2.58.02"; + + src = fetchzip { + url = "https://storage.tdarr.io/versions/${finalAttrs.version}/${platform}/${componentName}.zip"; + sha256 = hashes.${platform} or (throw "Unsupported platform: ${platform}"); + stripRoot = false; + }; + + nativeBuildInputs = [ + makeWrapper + copyDesktopItems + ] + ++ lib.optionals stdenv.isLinux [ autoPatchelfHook ]; + + buildInputs = lib.optionals stdenv.isLinux [ + stdenv.cc.cc.lib + gtk3 + libayatana-appindicator + wayland + libxkbcommon + libxcb + mesa + tesseract4 + leptonica + glib + gobject-introspection + libx11 + libxcursor + libxfixes + ]; + + postPatch = '' + rm -rf ./assets/app/ffmpeg + rm -rf ./assets/app/ccextractor + + substituteInPlace node_modules/exiftool-vendored.pl/bin/exiftool \ + --replace-fail "#!/usr/bin/perl" "#!${perl}/bin/perl" + + # * exiftool-vendored checks for /usr/bin/perl existence; when missing (NixOS), it sets ignoreShebang=true which breaks spawn by using shell:true with an env lacking PATH. Since we patched the shebang, force ignoreShebang to false. + substituteInPlace node_modules/exiftool-vendored/dist/ExifTool.js \ + --replace-fail '!_fs.existsSync("/usr/bin/perl")' 'false' + ''; + + preInstall = '' + mkdir -p $out/{bin,share/${pname}} + ''; + + installPhase = '' + runHook preInstall + + # Copy contents (source is already unpacked) + cp -r . $out/share/${pname}/ + + chmod +x $out/share/${pname}/${componentName} + + runHook postInstall + ''; + + postInstall = '' + makeWrapper $out/share/${pname}/${componentName} $out/bin/${pname} ${commonWrapperArgs} + '' + # TODO: Check on each update to see if the Tdarr_Node_tray gets re-added to the aarch64-linux build. Reach out to upstream? + + lib.optionalString (stdenv.hostPlatform.system != "aarch64-linux") '' + makeWrapper $out/share/${pname}/${componentTrayName} $out/bin/${pname}-tray ${commonWrapperArgs} + '' + + lib.optionalString installIcons '' + + # Install icons from the copied source files + for size in 192 512; do + if [ -f $out/share/${pname}/public/logo''${size}.png ]; then + install -Dm644 $out/share/${pname}/public/logo''${size}.png \ + $out/share/icons/hicolor/''${size}x''${size}/apps/${pname}.png + fi + done + '' + + ""; + + desktopItems = lib.optionals (stdenv.isLinux && stdenv.hostPlatform.system != "aarch64-linux") [ + (makeDesktopItem { + desktopName = "Tdarr ${componentUpper} Tray"; + name = "Tdarr ${componentUpper} Tray"; + exec = "${pname}-tray"; + terminal = false; + type = "Application"; + icon = if installIcons then pname else ""; + categories = [ "Utility" ]; + }) + ]; + + passthru = { + updateScript = { + command = [ ./update-hashes.sh ]; + supportedFeatures = [ "commit" ]; + }; + } + // passthru; + + meta = { + description = "Distributed transcode automation ${component} using FFmpeg/HandBrake"; + homepage = "https://tdarr.io"; + license = lib.licenses.unfree; + platforms = [ + "x86_64-linux" + "aarch64-linux" + "x86_64-darwin" + "aarch64-darwin" + ]; + maintainers = with lib.maintainers; [ mistyttm ]; + mainProgram = pname; + }; +}) diff --git a/pkgs/tools/misc/tdarr/default.nix b/pkgs/tools/misc/tdarr/default.nix new file mode 100644 index 000000000000..048c02b60963 --- /dev/null +++ b/pkgs/tools/misc/tdarr/default.nix @@ -0,0 +1,6 @@ +{ callPackage, ccextractor }: + +{ + server = callPackage ./server.nix { inherit ccextractor; }; + node = callPackage ./node.nix { }; +} diff --git a/pkgs/tools/misc/tdarr/node.nix b/pkgs/tools/misc/tdarr/node.nix new file mode 100644 index 000000000000..45c910ba00e4 --- /dev/null +++ b/pkgs/tools/misc/tdarr/node.nix @@ -0,0 +1,13 @@ +{ callPackage }: + +callPackage ./common.nix { } { + pname = "tdarr-node"; + component = "node"; + + hashes = { + linux_x64 = "sha256-+vD5oaoYh/bOCuk/Bxc8Fsm9UnFICownSKvg9i726nk="; + linux_arm64 = "sha256-2uPtEno0dSdVBg5hCiUuvBCB5tuTOcpeU2BuXPiqdUU="; + darwin_x64 = "sha256-8O5J1qFpQxD6fzojxjWnbkS4XQoCZauxCtbl/drplfI="; + darwin_arm64 = "sha256-oA+nTkO4LDAX5/cGkjNOLnPu0Rss9el+4JF8PBEfsPQ="; + }; +} diff --git a/pkgs/tools/misc/tdarr/server.nix b/pkgs/tools/misc/tdarr/server.nix new file mode 100644 index 000000000000..96e40e403508 --- /dev/null +++ b/pkgs/tools/misc/tdarr/server.nix @@ -0,0 +1,16 @@ +{ callPackage, ccextractor }: + +callPackage ./common.nix { } { + pname = "tdarr-server"; + component = "server"; + + hashes = { + linux_x64 = "sha256-+nxwSGAkA+BPf481N6KHW7s0iJzoGFPWp0XCbsVEwrI="; + linux_arm64 = "sha256-tA5VX27XmH3C4Bkll2mJlr1BYz5V7PPvzbJeaDht7uI="; + darwin_x64 = "sha256-jgHEezqtzUWTIvmxsmV1VgaXY9wHePkg6bQO16eSSGI="; + darwin_arm64 = "sha256-pcPpqFbqYsXf5Og9uC+eF/1kOQ1ZiletDzkk3qavPS0="; + }; + + includeInPath = [ ccextractor ]; + installIcons = true; +} diff --git a/pkgs/tools/misc/tdarr/update-hashes.sh b/pkgs/tools/misc/tdarr/update-hashes.sh new file mode 100755 index 000000000000..822ff243d9ca --- /dev/null +++ b/pkgs/tools/misc/tdarr/update-hashes.sh @@ -0,0 +1,114 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Updates tdarr packages to the latest version +# This script updates both server and node packages since they share the same version + +SCRIPT_DIR="$(dirname "${BASH_SOURCE[0]}")" +COMMON_FILE="$SCRIPT_DIR/common.nix" +SERVER_FILE="$SCRIPT_DIR/server.nix" +NODE_FILE="$SCRIPT_DIR/node.nix" + +# Fetch the latest version from the versions.json endpoint +echo "Fetching latest version..." >&2 +LATEST_VERSION=$(curl -s https://storage.tdarr.io/versions.json | jq -r 'keys_unsorted | .[0]') + +if [[ -z "$LATEST_VERSION" ]]; then + echo "Error: Could not fetch latest version from versions.json" >&2 + exit 1 +fi + +echo "Latest version: $LATEST_VERSION" >&2 + +# Check current version in common.nix +CURRENT_VERSION=$(grep -oP '(?<=version = ")[^"]+' "$COMMON_FILE" 2>/dev/null) + +if [[ "$CURRENT_VERSION" == "$LATEST_VERSION" ]]; then + echo "Tdarr packages are already on the latest version ($LATEST_VERSION)" >&2 + exit 0 +fi + +echo "Updating from $CURRENT_VERSION to $LATEST_VERSION..." >&2 + +fetch_and_convert() { + local url=$1 + nix-prefetch-url --unpack "$url" 2>/dev/null | xargs nix hash convert --hash-algo sha256 --to sri +} + +# Fetch all hashes for both server and node +echo "Fetching hashes for server version $LATEST_VERSION..." >&2 +server_linux_x64=$(fetch_and_convert "https://storage.tdarr.io/versions/$LATEST_VERSION/linux_x64/Tdarr_Server.zip") +server_linux_arm64=$(fetch_and_convert "https://storage.tdarr.io/versions/$LATEST_VERSION/linux_arm64/Tdarr_Server.zip") +server_darwin_x64=$(fetch_and_convert "https://storage.tdarr.io/versions/$LATEST_VERSION/darwin_x64/Tdarr_Server.zip") +server_darwin_arm64=$(fetch_and_convert "https://storage.tdarr.io/versions/$LATEST_VERSION/darwin_arm64/Tdarr_Server.zip") + +echo "Fetching hashes for node version $LATEST_VERSION..." >&2 +node_linux_x64=$(fetch_and_convert "https://storage.tdarr.io/versions/$LATEST_VERSION/linux_x64/Tdarr_Node.zip") +node_linux_arm64=$(fetch_and_convert "https://storage.tdarr.io/versions/$LATEST_VERSION/linux_arm64/Tdarr_Node.zip") +node_darwin_x64=$(fetch_and_convert "https://storage.tdarr.io/versions/$LATEST_VERSION/darwin_x64/Tdarr_Node.zip") +node_darwin_arm64=$(fetch_and_convert "https://storage.tdarr.io/versions/$LATEST_VERSION/darwin_arm64/Tdarr_Node.zip") + +# Update common.nix version +tmpfile=$(mktemp) +awk -v ver="$LATEST_VERSION" ' +/^ version = / { + print " version = \"" ver "\";" + next +} +{ print } +' "$COMMON_FILE" > "$tmpfile" +mv "$tmpfile" "$COMMON_FILE" +echo "Updated version in $COMMON_FILE" >&2 + +# Update server.nix hashes +tmpfile=$(mktemp) +awk -v lx64="$server_linux_x64" -v la64="$server_linux_arm64" -v dx64="$server_darwin_x64" -v da64="$server_darwin_arm64" ' +/^ hashes = {$/ { + print $0 + getline; print " linux_x64 = \"" lx64 "\";" + getline; print " linux_arm64 = \"" la64 "\";" + getline; print " darwin_x64 = \"" dx64 "\";" + getline; print " darwin_arm64 = \"" da64 "\";" + getline; print $0 + next +} +{ print } +' "$SERVER_FILE" > "$tmpfile" +mv "$tmpfile" "$SERVER_FILE" +echo "Updated hashes in $SERVER_FILE" >&2 + +# Update node.nix hashes +tmpfile=$(mktemp) +awk -v lx64="$node_linux_x64" -v la64="$node_linux_arm64" -v dx64="$node_darwin_x64" -v da64="$node_darwin_arm64" ' +/^ hashes = {$/ { + print $0 + getline; print " linux_x64 = \"" lx64 "\";" + getline; print " linux_arm64 = \"" la64 "\";" + getline; print " darwin_x64 = \"" dx64 "\";" + getline; print " darwin_arm64 = \"" da64 "\";" + getline; print $0 + next +} +{ print } +' "$NODE_FILE" > "$tmpfile" +mv "$tmpfile" "$NODE_FILE" +echo "Updated hashes in $NODE_FILE" >&2 + +echo "Successfully updated tdarr to version $LATEST_VERSION" >&2 + +cat << EOF +[ + { + "attrPath": "tdarr-server", + "oldVersion": "$CURRENT_VERSION", + "newVersion": "$LATEST_VERSION", + "files": ["$COMMON_FILE", "$SERVER_FILE"] + }, + { + "attrPath": "tdarr-node", + "oldVersion": "$CURRENT_VERSION", + "newVersion": "$LATEST_VERSION", + "files": ["$COMMON_FILE", "$NODE_FILE"] + } +] +EOF diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c027bf9930b6..4e98a750691d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3287,6 +3287,11 @@ with pkgs; tabview = with python3Packages; toPythonApplication tabview; + tdarrPackages = callPackage ../tools/misc/tdarr { }; + + tdarr-server = tdarrPackages.server; + tdarr-node = tdarrPackages.node; + inherit (callPackage ../development/tools/pnpm { }) pnpm_8 pnpm_9 From d4282ed5a1b82474dbcc8adf7a9011f66a0a1c2d Mon Sep 17 00:00:00 2001 From: eymeric Date: Tue, 11 Nov 2025 19:12:49 +0100 Subject: [PATCH 053/108] nixos/beszel-agent: Enable systemd monitoring --- .../services/monitoring/beszel-agent.nix | 51 +++++++++++++++++-- 1 file changed, 48 insertions(+), 3 deletions(-) diff --git a/nixos/modules/services/monitoring/beszel-agent.nix b/nixos/modules/services/monitoring/beszel-agent.nix index 7f2082d8c55b..a7f3e425e441 100644 --- a/nixos/modules/services/monitoring/beszel-agent.nix +++ b/nixos/modules/services/monitoring/beszel-agent.nix @@ -44,7 +44,19 @@ in }; environment = lib.mkOption { - type = lib.types.attrsOf lib.types.str; + type = lib.types.submodule { + freeformType = lib.types.attrsOf lib.types.str; + options = { + SKIP_SYSTEMD = lib.mkOption { + type = lib.types.bool; + default = false; + description = '' + Whether to disable systemd service monitoring. + Enabling this option will skip systemd tracking and its setup in NixOS. + ''; + }; + }; + }; default = { }; description = '' Environment variables for configuring the beszel-agent service. @@ -75,6 +87,36 @@ in KERNEL=="nvme[0-9]*", GROUP="disk", MODE="0660" ''; + # Add D-Bus policy for systemd service monitoring following https://beszel.dev/guide/systemd#services-not-appearing + services.dbus.packages = lib.optionals (!cfg.environment.SKIP_SYSTEMD) [ + (pkgs.writeTextDir "share/dbus-1/system.d/beszel-agent.conf" '' + + + + + + + + + + '') + ]; + + users.users.beszel-agent = lib.mkIf (!cfg.environment.SKIP_SYSTEMD) { + isSystemUser = true; + group = "beszel-agent"; + }; + + users.groups.beszel-agent = lib.mkIf (!cfg.environment.SKIP_SYSTEMD) { }; + systemd.services.beszel-agent = { description = "Beszel Server Monitoring Agent"; @@ -82,7 +124,10 @@ in wants = [ "network-online.target" ]; after = [ "network-online.target" ]; - environment = cfg.environment; + environment = lib.mapAttrs ( + _: value: if lib.isBool value then (lib.boolToString value) else value + ) cfg.environment; + path = cfg.extraPath ++ lib.optionals cfg.smartmon.enable [ cfg.smartmon.package ] @@ -133,7 +178,7 @@ in NoNewPrivileges = !cfg.smartmon.enable; PrivateDevices = !cfg.smartmon.enable; PrivateTmp = true; - PrivateUsers = !cfg.smartmon.enable; + PrivateUsers = !cfg.smartmon.enable && !cfg.environment.SKIP_SYSTEMD; ProtectClock = true; ProtectControlGroups = "strict"; ProtectHome = "read-only"; From a1583a19993915a265b5f126bd3c564ea0258b43 Mon Sep 17 00:00:00 2001 From: kyehn <228304369+kyehn@users.noreply.github.com> Date: Sun, 22 Feb 2026 19:30:22 +0800 Subject: [PATCH 054/108] serigy: 1.1 -> 2.0.0 --- pkgs/by-name/se/serigy/package.nix | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/pkgs/by-name/se/serigy/package.nix b/pkgs/by-name/se/serigy/package.nix index 1ecf855b9d08..097533459782 100644 --- a/pkgs/by-name/se/serigy/package.nix +++ b/pkgs/by-name/se/serigy/package.nix @@ -14,21 +14,16 @@ python3Packages.buildPythonApplication (finalAttrs: { pname = "serigy"; - version = "1.1"; + version = "2.0.0"; pyproject = false; # uses meson src = fetchFromGitHub { owner = "CleoMenezesJr"; repo = "Serigy"; tag = finalAttrs.version; - hash = "sha256-1PlGR7aX7Ekrbe7+Qm0E1h6yl6CzdIcV2R3MSIIeH6o="; + hash = "sha256-0Dc/Y0GYXMNFQ1rWCQaCZzN1Z8lMwdj0wO47pLUV5mM="; }; - postPatch = '' - substituteInPlace src/setup_dialog.py \ - --replace-fail "flatpak run io.github.cleomenezesjr.Serigy" "serigy" - ''; - nativeBuildInputs = [ meson ninja From f57d7541fd09fc7954b4cd70c142dfcd23a843f6 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 23 Feb 2026 02:53:25 +0000 Subject: [PATCH 055/108] paqet: 1.0.0-alpha.15 -> 1.0.0-alpha.18 --- pkgs/by-name/pa/paqet/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/pa/paqet/package.nix b/pkgs/by-name/pa/paqet/package.nix index dd07e8642fa9..ca00901a7535 100644 --- a/pkgs/by-name/pa/paqet/package.nix +++ b/pkgs/by-name/pa/paqet/package.nix @@ -9,15 +9,15 @@ }: buildGoModule (finalAttrs: { pname = "paqet"; - version = "1.0.0-alpha.15"; + version = "1.0.0-alpha.18"; src = fetchFromGitHub { owner = "hanselime"; repo = "paqet"; tag = "v${finalAttrs.version}"; - hash = "sha256-ryspYKbnDT7emEftRWCZLVNFDEOvAv7IhdM4VBRQjKc="; + hash = "sha256-FuCbQz+Lhbw/xHJYhZo4uxH2ODV/uVFR7XDOK5DKZkU="; }; - vendorHash = "sha256-Vf3bKdhlM4vqzBv5RAwHeShGHudEh1VNTCFxAL/cwLw="; + vendorHash = "sha256-olyjpzHZKgD5fhXSyCmEuwYmcJGMUS+b+Hglm2JF1NY="; nativeBuildInputs = [ installShellFiles ]; buildInputs = [ libpcap ]; From 03a9c87b08ca1183e158654275ca2f52cab75a96 Mon Sep 17 00:00:00 2001 From: DESPsyched Date: Fri, 16 Jan 2026 07:34:17 -0500 Subject: [PATCH 056/108] python3Packages.python-etcd: fix build Patches out deprecated getheader() usage. See details in .patch message --- .../python-modules/python-etcd/default.nix | 2 + .../python-etcd/remove-getheader-usage.patch | 131 ++++++++++++++++++ 2 files changed, 133 insertions(+) create mode 100644 pkgs/development/python-modules/python-etcd/remove-getheader-usage.patch diff --git a/pkgs/development/python-modules/python-etcd/default.nix b/pkgs/development/python-modules/python-etcd/default.nix index def0b49aecaa..61a1d02325ab 100644 --- a/pkgs/development/python-modules/python-etcd/default.nix +++ b/pkgs/development/python-modules/python-etcd/default.nix @@ -24,6 +24,8 @@ buildPythonPackage { hash = "sha256-eVirStLOPTbf860jfkNMWtGf+r0VygLZRjRDjBMCVKg="; }; + patches = [ ./remove-getheader-usage.patch ]; + build-system = [ setuptools ]; dependencies = [ diff --git a/pkgs/development/python-modules/python-etcd/remove-getheader-usage.patch b/pkgs/development/python-modules/python-etcd/remove-getheader-usage.patch new file mode 100644 index 000000000000..348aecf7b0ba --- /dev/null +++ b/pkgs/development/python-modules/python-etcd/remove-getheader-usage.patch @@ -0,0 +1,131 @@ +From 38ba4e559a38279417719440174df6ca2bc203c5 Mon Sep 17 00:00:00 2001 +From: Priyanshu Tripathi +Date: Fri, 16 Jan 2026 06:50:43 -0500 +Subject: [PATCH] fix: migrate away from deprecated `HTTPResponse.getheader()` + method + +With urllib3 v2.6.0, `HTTPResponse.getheader()` was removed with the alternative +being `HTTPResponse.headers`, a dictionary that can be queried with `headers.get()` + +See: https://github.com/urllib3/urllib3/pull/3622 +--- + src/etcd/__init__.py | 2 +- + src/etcd/client.py | 2 +- + src/etcd/tests/unit/__init__.py | 2 +- + src/etcd/tests/unit/test_client.py | 6 +++--- + src/etcd/tests/unit/test_old_request.py | 6 ------ + src/etcd/tests/unit/test_request.py | 4 ++-- + 6 files changed, 8 insertions(+), 14 deletions(-) + +diff --git a/src/etcd/__init__.py b/src/etcd/__init__.py +index d716e9b..e85918e 100644 +--- a/src/etcd/__init__.py ++++ b/src/etcd/__init__.py +@@ -61,7 +61,7 @@ class EtcdResult(object): + self.dir = True + + def parse_headers(self, response): +- headers = response.getheaders() ++ headers = response.headers + self.etcd_index = int(headers.get("x-etcd-index", 1)) + self.raft_index = int(headers.get("x-raft-index", 1)) + +diff --git a/src/etcd/client.py b/src/etcd/client.py +index a011757..5acea07 100644 +--- a/src/etcd/client.py ++++ b/src/etcd/client.py +@@ -975,7 +975,7 @@ class Client(object): + ) + + def _check_cluster_id(self, response, path): +- cluster_id = response.getheader("x-etcd-cluster-id") ++ cluster_id = response.headers.get("x-etcd-cluster-id") + if not cluster_id: + if self.version_prefix in path: + _log.warning("etcd response did not contain a cluster ID") +diff --git a/src/etcd/tests/unit/__init__.py b/src/etcd/tests/unit/__init__.py +index a1b95c4..43bc9b5 100644 +--- a/src/etcd/tests/unit/__init__.py ++++ b/src/etcd/tests/unit/__init__.py +@@ -22,7 +22,7 @@ class TestClientApiBase(unittest.TestCase): + r = mock.create_autospec(urllib3.response.HTTPResponse)() + r.status = s + r.data = data +- r.getheader.return_value = cluster_id or "abcd1234" ++ r.headers = {"x-etcd-cluster-id": cluster_id or "abcd1234"} + return r + + def _mock_api(self, status, d, cluster_id=None): +diff --git a/src/etcd/tests/unit/test_client.py b/src/etcd/tests/unit/test_client.py +index 37cdee1..64b2650 100644 +--- a/src/etcd/tests/unit/test_client.py ++++ b/src/etcd/tests/unit/test_client.py +@@ -121,7 +121,7 @@ class TestClient(TestClientApiBase): + """Verify _set_version_info makes the proper call to the server""" + data = {"etcdserver": "2.2.3", "etcdcluster": "2.3.0"} + self._mock_api(200, data) +- self.client.api_execute.return_value.getheader.return_value = None ++ self.client.api_execute.return_value.headers = {} + # Create the client and make the call. + self.client._set_version_info() + +@@ -135,7 +135,7 @@ class TestClient(TestClientApiBase): + """Ensure the version property is set on first access.""" + data = {"etcdserver": "2.2.3", "etcdcluster": "2.3.0"} + self._mock_api(200, data) +- self.client.api_execute.return_value.getheader.return_value = None ++ self.client.api_execute.return_value.headers = {} + + # Verify the version property is set + self.assertEqual("2.2.3", self.client.version) +@@ -144,7 +144,7 @@ class TestClient(TestClientApiBase): + """Ensure the cluster version property is set on first access.""" + data = {"etcdserver": "2.2.3", "etcdcluster": "2.3.0"} + self._mock_api(200, data) +- self.client.api_execute.return_value.getheader.return_value = None ++ self.client.api_execute.return_value.headers = {} + # Verify the cluster_version property is set + self.assertEqual("2.3.0", self.client.cluster_version) + +diff --git a/src/etcd/tests/unit/test_old_request.py b/src/etcd/tests/unit/test_old_request.py +index b660c24..f2a0410 100644 +--- a/src/etcd/tests/unit/test_old_request.py ++++ b/src/etcd/tests/unit/test_old_request.py +@@ -17,12 +17,6 @@ class FakeHTTPResponse(object): + "x-etcd-cluster-id": "abdef12345", + } + +- def getheaders(self): +- return self.headers +- +- def getheader(self, header): +- return self.headers[header] +- + + class TestClientRequest(unittest.TestCase): + def test_set(self): +diff --git a/src/etcd/tests/unit/test_request.py b/src/etcd/tests/unit/test_request.py +index 7685dca..1cb7fd1 100644 +--- a/src/etcd/tests/unit/test_request.py ++++ b/src/etcd/tests/unit/test_request.py +@@ -381,7 +381,7 @@ class TestClientRequest(TestClientApiInterface): + + def _mock_api(self, status, d, cluster_id=None): + resp = self._prepare_response(status, d) +- resp.getheader.return_value = cluster_id or "abcdef1234" ++ resp.headers = {"x-etcd-cluster-id": cluster_id or "abcdef1234"} + self.client.http.request_encode_body = mock.MagicMock(return_value=resp) + self.client.http.request = mock.MagicMock(return_value=resp) + +@@ -389,7 +389,7 @@ class TestClientRequest(TestClientApiInterface): + resp = self._prepare_response( + 500, {"errorCode": error_code, "message": msg, "cause": cause} + ) +- resp.getheader.return_value = cluster_id or "abcdef1234" ++ resp.headers = {"x-etcd-cluster-id": cluster_id or "abcdef1234"} + self.client.http.request_encode_body = mock.create_autospec( + self.client.http.request_encode_body, return_value=resp + ) +-- +2.51.0 + From 39552aec52cd6c88b11b11e7000ded2d0615a284 Mon Sep 17 00:00:00 2001 From: DESPsyched Date: Fri, 16 Jan 2026 07:32:54 -0500 Subject: [PATCH 057/108] python3Packages.python-etcd: 0.5.0-unstable-2023-10-31 -> 0.4.5-unstable-2024-08-09 --- .../python-modules/python-etcd/default.nix | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/python-etcd/default.nix b/pkgs/development/python-modules/python-etcd/default.nix index 61a1d02325ab..c1b3fdcba3b3 100644 --- a/pkgs/development/python-modules/python-etcd/default.nix +++ b/pkgs/development/python-modules/python-etcd/default.nix @@ -2,6 +2,7 @@ lib, stdenv, buildPythonPackage, + nix-update-script, fetchFromGitHub, setuptools, urllib3, @@ -14,14 +15,14 @@ buildPythonPackage { pname = "python-etcd"; - version = "0.5.0-unstable-2023-10-31"; + version = "0.4.5-unstable-2024-08-09"; pyproject = true; src = fetchFromGitHub { owner = "jplana"; repo = "python-etcd"; - rev = "5aea0fd4461bd05dd96e4ad637f6be7bceb1cee5"; - hash = "sha256-eVirStLOPTbf860jfkNMWtGf+r0VygLZRjRDjBMCVKg="; + rev = "d2889f7b23feee8797657b19c404f0d4034dd03c"; + hash = "sha256-osiSeBdZBT3w9pJUBxD7cI9/2T7eiyj6M6+87T8bTj0="; }; patches = [ ./remove-getheader-usage.patch ]; @@ -61,6 +62,10 @@ buildPythonPackage { __darwinAllowLocalNetworking = true; + passthru.updateScript = nix-update-script { + extraArgs = [ "--version=branch" ]; + }; + meta = { description = "Python client for Etcd"; homepage = "https://github.com/jplana/python-etcd"; From cd28ed9229db4fbe3d377f7eeeb8b58b49d83501 Mon Sep 17 00:00:00 2001 From: DESPsyched Date: Fri, 16 Jan 2026 08:55:43 -0500 Subject: [PATCH 058/108] patroni: cleanup and split deps into optional-dependencies --- pkgs/by-name/pa/patroni/package.nix | 102 ++++++++++++++++++---------- 1 file changed, 66 insertions(+), 36 deletions(-) diff --git a/pkgs/by-name/pa/patroni/package.nix b/pkgs/by-name/pa/patroni/package.nix index 530fa9e3212c..23911d710b74 100644 --- a/pkgs/by-name/pa/patroni/package.nix +++ b/pkgs/by-name/pa/patroni/package.nix @@ -1,55 +1,84 @@ { - lib, - python3Packages, fetchFromGitHub, - versionCheckHook, - nixosTests, + lib, nix-update-script, - writableTmpDirAsHomeHook, + nixosTests, + python3Packages, + versionCheckHook, + + extras ? [ + # upstream requires one of: psycopg, psycopg2 + "psycopg2" + + # distributed configuration stores + "consul" + "etcd" + "etcd3" + "exhibitor" + "kubernetes" + "raft" + "zookeeper" + ], }: python3Packages.buildPythonApplication (finalAttrs: { pname = "patroni"; version = "4.1.0"; - format = "setuptools"; + pyproject = true; src = fetchFromGitHub { owner = "zalando"; repo = "patroni"; tag = "v${finalAttrs.version}"; - sha256 = "sha256-iY5QLbJXfQtfkzpQxvqSOzYQwgfFsBh8HPYujqxU44k="; + hash = "sha256-iY5QLbJXfQtfkzpQxvqSOzYQwgfFsBh8HPYujqxU44k="; }; - dependencies = with python3Packages; [ - boto3 - click - consul - dnspython - kazoo - kubernetes - prettytable - psutil - psycopg2 - pysyncobj - python-dateutil - python-etcd - pyyaml - tzlocal - urllib3 - ydiff + build-system = with python3Packages; [ setuptools ]; + + pythonRelaxDeps = [ + "ydiff" # requires <1.5 ]; + dependencies = + (with python3Packages; [ + click + consul + prettytable + psutil + python-dateutil + pyyaml + urllib3 + ydiff + ]) + ++ lib.attrVals extras finalAttrs.passthru.optional-dependencies; + + optional-dependencies = with python3Packages; { + aws = [ boto3 ]; + consul = [ consul ]; + etcd = [ python-etcd ]; + etcd3 = [ python-etcd ]; + exhibitor = [ kazoo ]; + jsonlogger = [ python-json-logger ]; + kubernetes = [ ]; + psycopg2 = [ psycopg2 ]; + psycopg2-binary = [ psycopg2-binary ]; + psycopg3 = [ psycopg ]; + raft = [ + cryptography + pysyncobj + ]; + systemd = [ systemd-python ]; + zookeeper = [ kazoo ]; + }; + pythonImportsCheck = [ "patroni" ]; - nativeCheckInputs = with python3Packages; [ - flake8 - mock - pytestCheckHook - pytest-cov-stub - requests - versionCheckHook - writableTmpDirAsHomeHook - ]; + nativeCheckInputs = + (with python3Packages; [ + pytestCheckHook + versionCheckHook + ]) + ++ lib.concatAttrValues finalAttrs.passthru.optional-dependencies; __darwinAllowLocalNetworking = true; @@ -60,14 +89,15 @@ python3Packages.buildPythonApplication (finalAttrs: { }; meta = { - homepage = "https://patroni.readthedocs.io/en/latest/"; + changelog = "https://github.com/patroni/patroni/blob/${finalAttrs.src.tag}/docs/releases.rst"; description = "Template for PostgreSQL HA with ZooKeeper, etcd or Consul"; - changelog = "https://github.com/patroni/patroni/blob/v${finalAttrs.version}/docs/releases.rst"; + homepage = "https://patroni.readthedocs.io/en/latest/"; license = lib.licenses.mit; - platforms = lib.platforms.unix; + mainProgram = "patroni"; maintainers = with lib.maintainers; [ de11n despsyched ]; + platforms = lib.platforms.unix; }; }) From 4b07e496c3a829e5088b27b2f80ddd4de49cb02f Mon Sep 17 00:00:00 2001 From: DESPsyched Date: Mon, 19 Jan 2026 06:00:13 -0500 Subject: [PATCH 059/108] nixos/patroni: use lib.getExe --- nixos/modules/services/cluster/patroni/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/services/cluster/patroni/default.nix b/nixos/modules/services/cluster/patroni/default.nix index aa44adb9b02c..3b3e5d03a35b 100644 --- a/nixos/modules/services/cluster/patroni/default.nix +++ b/nixos/modules/services/cluster/patroni/default.nix @@ -254,7 +254,7 @@ in lib.mapAttrs (name: path: ''export ${name}="$(< ${lib.escapeShellArg path})"'') cfg.environmentFiles ) )} - exec ${pkgs.patroni}/bin/patroni ${configFile} + exec ${lib.getExe pkgs.patroni} ${configFile} ''; serviceConfig = lib.mkMerge [ From c055d9527c8fe4af6356b39b7a01d23694d306b1 Mon Sep 17 00:00:00 2001 From: Bart Oostveen Date: Mon, 23 Feb 2026 14:19:35 +0100 Subject: [PATCH 060/108] cinny-unwrapped: 4.10.3 -> 4.10.5 --- pkgs/by-name/ci/cinny-unwrapped/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ci/cinny-unwrapped/package.nix b/pkgs/by-name/ci/cinny-unwrapped/package.nix index 4c507ed8b152..3319d5d2d75d 100644 --- a/pkgs/by-name/ci/cinny-unwrapped/package.nix +++ b/pkgs/by-name/ci/cinny-unwrapped/package.nix @@ -14,18 +14,18 @@ buildNpmPackage rec { pname = "cinny-unwrapped"; - version = "4.10.3"; + version = "4.10.5"; src = fetchFromGitHub { owner = "cinnyapp"; repo = "cinny"; tag = "v${version}"; - hash = "sha256-ZztZ/znJUwgYlvv5h9uxNZvQrkUMVbMG6R+HbRtSXHM="; + hash = "sha256-Napy3AcsLRDZPcBh3oq1U30FNtvoNtob0+AZtZSvcbM="; }; nodejs = nodejs_22; - npmDepsHash = "sha256-Spt2+sQcoPwy1tU8ztqJHZS9ITX9avueYDVKE7BFYy4="; + npmDepsHash = "sha256-2Lrd0jAwAH6HkwLHyivqwaEhcpFAIALuno+MchSIfxo="; nativeBuildInputs = [ python3 From 7090cb77c6af88935b49f990581229ca5404d84f Mon Sep 17 00:00:00 2001 From: Lu Wang Date: Sat, 21 Feb 2026 18:57:45 +0800 Subject: [PATCH 061/108] cinny-desktop: 4.10.2 -> 4.10.5 Co-authored-by: Bart Oostveen --- pkgs/by-name/ci/cinny-desktop/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ci/cinny-desktop/package.nix b/pkgs/by-name/ci/cinny-desktop/package.nix index d5c1082760ab..98e826f532fa 100644 --- a/pkgs/by-name/ci/cinny-desktop/package.nix +++ b/pkgs/by-name/ci/cinny-desktop/package.nix @@ -18,18 +18,18 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "cinny-desktop"; # We have to be using the same version as cinny-web or this isn't going to work. - version = "4.10.2"; + version = "4.10.5"; src = fetchFromGitHub { owner = "cinnyapp"; repo = "cinny-desktop"; tag = "v${finalAttrs.version}"; - hash = "sha256-M1p8rwdNEsKvZ1ssxsFyfiIBS8tKrXhuz85CKM4dSRw="; + hash = "sha256-DRSafPNED9fpm3w5K4a9r8581xMpttfo7BEDBIJ87Kc="; }; sourceRoot = "${finalAttrs.src.name}/src-tauri"; - cargoHash = "sha256-Ie6xq21JoJ37j/BjdVrsiJ3JULVEV5ZwN3hf9NhfXVA="; + cargoHash = "sha256-q6YMAjK+BBYBpk8menA1sM3x/FCnAh40t70fs9knnRo="; postPatch = let From f782832984ceec2a2742a4896e578fa916fced29 Mon Sep 17 00:00:00 2001 From: Lu Wang Date: Sat, 21 Feb 2026 19:00:08 +0800 Subject: [PATCH 062/108] cinny-unwrapped: add comment to remind updating cinny-desktop --- pkgs/by-name/ci/cinny-unwrapped/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/ci/cinny-unwrapped/package.nix b/pkgs/by-name/ci/cinny-unwrapped/package.nix index 3319d5d2d75d..163c956813b7 100644 --- a/pkgs/by-name/ci/cinny-unwrapped/package.nix +++ b/pkgs/by-name/ci/cinny-unwrapped/package.nix @@ -14,6 +14,7 @@ buildNpmPackage rec { pname = "cinny-unwrapped"; + # Remember to update cinny-desktop when bumping this version. version = "4.10.5"; src = fetchFromGitHub { From 3fb39426c2f09491f5b172380d87c9f424b1f1a5 Mon Sep 17 00:00:00 2001 From: Lu Wang Date: Sat, 21 Feb 2026 19:02:45 +0800 Subject: [PATCH 063/108] cinny-{unwrapped,desktop}: add rebmit to maintainers --- pkgs/by-name/ci/cinny-desktop/package.nix | 1 + pkgs/by-name/ci/cinny-unwrapped/package.nix | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/ci/cinny-desktop/package.nix b/pkgs/by-name/ci/cinny-desktop/package.nix index 98e826f532fa..0024b9094e44 100644 --- a/pkgs/by-name/ci/cinny-desktop/package.nix +++ b/pkgs/by-name/ci/cinny-desktop/package.nix @@ -87,6 +87,7 @@ rustPlatform.buildRustPackage (finalAttrs: { homepage = "https://github.com/cinnyapp/cinny-desktop"; maintainers = with lib.maintainers; [ qyriad + rebmit ryand56 ]; license = lib.licenses.agpl3Only; diff --git a/pkgs/by-name/ci/cinny-unwrapped/package.nix b/pkgs/by-name/ci/cinny-unwrapped/package.nix index 163c956813b7..004c56de2af0 100644 --- a/pkgs/by-name/ci/cinny-unwrapped/package.nix +++ b/pkgs/by-name/ci/cinny-unwrapped/package.nix @@ -51,7 +51,10 @@ buildNpmPackage rec { meta = { description = "Yet another Matrix client for the web"; homepage = "https://cinny.in/"; - maintainers = with lib.maintainers; [ abbe ]; + maintainers = with lib.maintainers; [ + abbe + rebmit + ]; license = lib.licenses.agpl3Only; platforms = lib.platforms.all; }; From b31c77de0e574593d9472a7cd1857e3f03cf686e Mon Sep 17 00:00:00 2001 From: Lu Wang Date: Mon, 23 Feb 2026 22:45:44 +0800 Subject: [PATCH 064/108] cinny-{unwrapped,desktop}: disable nixpkgs-update --- pkgs/by-name/ci/cinny-desktop/package.nix | 1 + pkgs/by-name/ci/cinny-unwrapped/package.nix | 1 + 2 files changed, 2 insertions(+) diff --git a/pkgs/by-name/ci/cinny-desktop/package.nix b/pkgs/by-name/ci/cinny-desktop/package.nix index 0024b9094e44..65334c049b05 100644 --- a/pkgs/by-name/ci/cinny-desktop/package.nix +++ b/pkgs/by-name/ci/cinny-desktop/package.nix @@ -20,6 +20,7 @@ rustPlatform.buildRustPackage (finalAttrs: { # We have to be using the same version as cinny-web or this isn't going to work. version = "4.10.5"; + # nixpkgs-update: no auto update src = fetchFromGitHub { owner = "cinnyapp"; repo = "cinny-desktop"; diff --git a/pkgs/by-name/ci/cinny-unwrapped/package.nix b/pkgs/by-name/ci/cinny-unwrapped/package.nix index 004c56de2af0..f55428608294 100644 --- a/pkgs/by-name/ci/cinny-unwrapped/package.nix +++ b/pkgs/by-name/ci/cinny-unwrapped/package.nix @@ -17,6 +17,7 @@ buildNpmPackage rec { # Remember to update cinny-desktop when bumping this version. version = "4.10.5"; + # nixpkgs-update: no auto update src = fetchFromGitHub { owner = "cinnyapp"; repo = "cinny"; From cf5a0ed45c32308949cfc93d3efc851d7d414ff8 Mon Sep 17 00:00:00 2001 From: Wroclaw Date: Sun, 22 Feb 2026 16:13:06 +0100 Subject: [PATCH 065/108] cutecosmic: init at 0.1-unstable-2026-01-21 --- pkgs/by-name/cu/cutecosmic/package.nix | 101 +++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 pkgs/by-name/cu/cutecosmic/package.nix diff --git a/pkgs/by-name/cu/cutecosmic/package.nix b/pkgs/by-name/cu/cutecosmic/package.nix new file mode 100644 index 000000000000..22e2911af036 --- /dev/null +++ b/pkgs/by-name/cu/cutecosmic/package.nix @@ -0,0 +1,101 @@ +{ + lib, + stdenv, + cargo, + cmake, + common-updater-scripts, + fetchFromGitHub, + nix-update, + qt6, + ripgrep, + rustPlatform, + rustc, + writeShellScript, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "cutecosmic"; + version = "0.1-unstable-2026-01-21"; + + src = fetchFromGitHub { + owner = "IgKh"; + repo = "cutecosmic"; + rev = "8e584418f69eeeaee8574c4a48cc92ef27fd610e"; + hash = "sha256-jKiO+WlNHM1xavKdB6PrGd3HmTgnyL1vjh0Ps1HcWx4="; + }; + + cargoDeps = rustPlatform.fetchCargoVendor { + inherit (finalAttrs) src; + name = "${finalAttrs.pname}-${finalAttrs.version}"; + sourceRoot = "${finalAttrs.src.name}/bindings"; + hash = "sha256-+1z0VoxDeOYSmb7BoFSdrwrfo1mmwkxeuEGP+CGFc8Y="; + }; + + cargoRoot = "bindings"; + + nativeBuildInputs = [ + cmake + qt6.wrapQtAppsHook + rustPlatform.cargoSetupHook + cargo + rustc + ]; + + buildInputs = [ + qt6.qtbase + qt6.qtdeclarative + ]; + + cmakeFlags = [ + (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_CORROSION" "${finalAttrs.passthru.sources.corrosion}") + ]; + + postPatch = '' + substituteInPlace platformtheme/CMakeLists.txt \ + --replace-fail "\''${QT_INSTALL_PLUGINS}/platformthemes" \ + "${qt6.qtbase.qtPluginPrefix}/platformthemes" + ''; + + passthru = { + sources = { + # rev from source/bindings/CMakeLists.txt + corrosion = fetchFromGitHub { + owner = "corrosion-rs"; + repo = "corrosion"; + rev = "v0.5.2"; + hash = "sha256-sO2U0llrDOWYYjnfoRZE+/ofg3kb+ajFmqvaweRvT7c="; + }; + }; + + updateScript = writeShellScript "update-cutecosmic" '' + set -euo pipefail + + ${lib.getExe nix-update} cutecosmic --version branch=HEAD + src=$(nix-build -A cutecosmic.src --no-out-link) + + # Corrosion-rs dependency + tag=$(${lib.getExe ripgrep} --multiline --pcre2 --only-matching \ + 'FetchContent_Declare\(\s*Corrosion[^)]*GIT_TAG\s+(v[\d.]+)' \ + --replace '$1' \ + "$src/bindings/CMakeLists.txt") + + ${lib.getExe' common-updater-scripts "update-source-version"} \ + cutecosmic.sources.corrosion \ + "$tag" \ + --source-key=out \ + --version-key=rev \ + --file=${lib.escapeShellArg (toString ./.) + "/package.nix"} + ''; + }; + + meta = { + homepage = "https://github.com/IgKh/cutecosmic"; + description = "Qt platform theme for COSMIC Desktop environment"; + license = lib.licenses.gpl3Only; + maintainers = with lib.maintainers; [ + amozeo + thefossguy + ]; + platforms = lib.platforms.linux; + }; +}) From 90f7331e4535ca5f860e252759a81b34657fa4da Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 25 Feb 2026 00:40:08 +0000 Subject: [PATCH 066/108] python3Packages.python-mistralclient: 6.1.0 -> 6.2.0 --- .../python-modules/python-mistralclient/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/python-mistralclient/default.nix b/pkgs/development/python-modules/python-mistralclient/default.nix index cd17a2259130..51ea1a97ce52 100644 --- a/pkgs/development/python-modules/python-mistralclient/default.nix +++ b/pkgs/development/python-modules/python-mistralclient/default.nix @@ -26,14 +26,14 @@ buildPythonPackage rec { pname = "python-mistralclient"; - version = "6.1.0"; + version = "6.2.0"; pyproject = true; src = fetchFromGitHub { owner = "openstack"; repo = "python-mistralclient"; tag = version; - hash = "sha256-8tB1QPaxdLdti96gOzaXuqLftmTJVM0bosJiKs+0CFs="; + hash = "sha256-FNfee7d8gTcsTdv7lxqDbniUiKQvUXHRSkAlNOCn/k4="; }; env.PBR_VERSION = version; From 4770e072b0c150edd4c4ff75a2b4c43e6938eaa3 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 25 Feb 2026 04:20:24 +0000 Subject: [PATCH 067/108] python3Packages.osc-placement: 4.7.0 -> 4.8.0 --- pkgs/development/python-modules/osc-placement/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/osc-placement/default.nix b/pkgs/development/python-modules/osc-placement/default.nix index 7bd7c332499e..ae479cbf1b3f 100644 --- a/pkgs/development/python-modules/osc-placement/default.nix +++ b/pkgs/development/python-modules/osc-placement/default.nix @@ -16,14 +16,14 @@ buildPythonPackage rec { pname = "osc-placement"; - version = "4.7.0"; + version = "4.8.0"; pyproject = true; src = fetchFromGitHub { owner = "openstack"; repo = "osc-placement"; tag = version; - hash = "sha256-OLvi/eIgEEUoZKxowU7On5m2OkRsCEsU/Me7rPruIdM="; + hash = "sha256-txxLtg3fDrkPqU0k/PlwvpJJBzVLtJXz82mhPWo+rKc="; }; env.PBR_VERSION = version; From 6a24706da13451c8ba15d51e7daad59a154e35dd Mon Sep 17 00:00:00 2001 From: Ross Smyth <18294397+RossSmyth@users.noreply.github.com> Date: Mon, 2 Feb 2026 20:29:50 -0500 Subject: [PATCH 068/108] libweaver: init at 0-unstable-2025-12-18 --- pkgs/by-name/li/libweaver/package.nix | 49 +++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 pkgs/by-name/li/libweaver/package.nix diff --git a/pkgs/by-name/li/libweaver/package.nix b/pkgs/by-name/li/libweaver/package.nix new file mode 100644 index 000000000000..bea881edb092 --- /dev/null +++ b/pkgs/by-name/li/libweaver/package.nix @@ -0,0 +1,49 @@ +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + ninja, + testers, + unstableGitUpdater, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "libweaver"; + version = "0-unstable-2025-12-18"; + + src = fetchFromGitHub { + owner = "isledecomp"; + repo = "SIEdit"; + rev = "2c32d65dbab577bf3a8701bc8bcae9034a7815d9"; + hash = "sha256-qtE7c/LCQBhVWgbdmu4e5mCo+4Pz6QkAY29dHG/Fi/U="; + }; + + strictDeps = true; + __structuredAttrs = true; + + nativeBuildInputs = [ + cmake + ninja + ]; + + cmakeFlags = [ + (lib.cmakeBool "LIBWEAVER_BUILD_APP" false) + ]; + + passthru = { + updateScript = unstableGitUpdater { harcodeZeroVersion = true; }; + tests.cmake-config = testers.hasCmakeConfigModules { + package = finalAttrs.finalPackage; + moduleNames = [ "libweaver" ]; + }; + }; + + meta = { + description = "library for interacting with SI files"; + homepage = "https://github.com/isledecomp/SIEdit/tree/master/include/libweaver"; + license = lib.licenses.gpl3Only; + maintainers = [ + lib.maintainers.RossSmyth + ]; + }; +}) From b7b7e0f9338f19ed06120ccf5569bc166b691bf8 Mon Sep 17 00:00:00 2001 From: Ross Smyth <18294397+RossSmyth@users.noreply.github.com> Date: Mon, 2 Feb 2026 20:23:45 -0500 Subject: [PATCH 069/108] isle-portable: 0-unstable-2025-11-15 -> 0-unstable-2026-01-31 --- pkgs/by-name/is/isle-portable/package.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/is/isle-portable/package.nix b/pkgs/by-name/is/isle-portable/package.nix index 87747926c26e..51c69d39f8f2 100644 --- a/pkgs/by-name/is/isle-portable/package.nix +++ b/pkgs/by-name/is/isle-portable/package.nix @@ -26,6 +26,7 @@ alsa-lib, sdl3, iniparser, + libweaver, # Options imguiDebug ? false, @@ -35,13 +36,13 @@ stdenv.mkDerivation (finalAttrs: { strictDeps = true; pname = "isle-portable"; - version = "0-unstable-2025-11-15"; + version = "0-unstable-2026-01-31"; src = fetchFromGitHub { owner = "isledecomp"; repo = "isle-portable"; - rev = "d182a8057c5c0827c33639367b7e00e9ab389e78"; - hash = "sha256-V3jmUUzTkLKUwa/mCtp+UbJNAmHlrrDIKGimKOJOJss="; + rev = "03cb40190a1aedea23b857942d14359c86ad3857"; + hash = "sha256-YGj+2FzotNmHrYBHmlMt6xuSXgXWa6j3rmukjUyGegA="; fetchSubmodules = true; }; @@ -66,6 +67,7 @@ stdenv.mkDerivation (finalAttrs: { qt6.qtbase sdl3 iniparser + libweaver ] ++ lib.optionals stdenv.hostPlatform.isLinux [ libx11 From dc0a892a457432d00e89741ab7134ac98c11abaf Mon Sep 17 00:00:00 2001 From: Ross Smyth <18294397+RossSmyth@users.noreply.github.com> Date: Tue, 3 Feb 2026 22:26:16 -0500 Subject: [PATCH 070/108] isle-portable: Add wrapper --- pkgs/by-name/is/isle-portable/package.nix | 10 +- pkgs/by-name/is/isle-portable/wrapper.nix | 111 ++++++++++++++++++++++ 2 files changed, 120 insertions(+), 1 deletion(-) create mode 100644 pkgs/by-name/is/isle-portable/wrapper.nix diff --git a/pkgs/by-name/is/isle-portable/package.nix b/pkgs/by-name/is/isle-portable/package.nix index 51c69d39f8f2..afdc884b6c20 100644 --- a/pkgs/by-name/is/isle-portable/package.nix +++ b/pkgs/by-name/is/isle-portable/package.nix @@ -2,10 +2,12 @@ lib, fetchFromGitHub, stdenv, + callPackage, unstableGitUpdater, # Native Build Inputs cmake, + ninja, python3, pkg-config, @@ -58,6 +60,7 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ cmake + ninja qt6.wrapQtAppsHook python3 pkg-config @@ -91,7 +94,12 @@ stdenv.mkDerivation (finalAttrs: { (lib.cmakeFeature "ISLE_EMSCRIPTEN_HOST" emscriptenHost) ]; - passthru.updateScript = unstableGitUpdater { hardcodeZeroVersion = true; }; + passthru = { + updateScript = unstableGitUpdater { hardcodeZeroVersion = true; }; + wrapped = callPackage ./wrapper.nix { + isle-portable-unwrapped = finalAttrs.finalPackage; + }; + }; meta = { description = "Portable decompilation of Lego Island"; diff --git a/pkgs/by-name/is/isle-portable/wrapper.nix b/pkgs/by-name/is/isle-portable/wrapper.nix new file mode 100644 index 000000000000..cf08953c969b --- /dev/null +++ b/pkgs/by-name/is/isle-portable/wrapper.nix @@ -0,0 +1,111 @@ +{ + lib, + callPackage, + requireFile, + runCommand, + makeBinaryWrapper, + symlinkJoin, + isle-portable-unwrapped ? callPackage ./package.nix { }, + _7zz, +}: +let + legoIslandIso = requireFile { + name = "LEGO_ISLANDI.ISO"; + hash = "sha256-pefu/XcvGKcWYzaFldWeFEYdc7OUBgbmlgWyH2CnZec="; + message = "ISO file of Lego Island 1.1"; + }; + + unpackedIso = runCommand "LEGO_ISLANDI-unpacked" { nativeBuildInputs = [ _7zz ]; } '' + mkdir "$out" + 7zz x ${legoIslandIso} -o"$out" + ''; + +in +symlinkJoin ( + finalAttrs: + let + # INI file with the LEGO Island Disk files in it + iniWithDisk = lib.recursiveUpdate finalAttrs.passthru.iniConfig { + isle = { + diskpath = "${unpackedIso}/DATA/disk"; + cdpath = "${unpackedIso}"; + }; + }; + + # Properly quoted INI file + quotedIni = lib.mapAttrsRecursiveCond (as: (!lib.isDerivation as)) ( + _: value: ''"${toString value}"'' + ) iniWithDisk; + + # Make a config ini file + iniFile = + runCommand "isle.ini" + { + passAsFile = [ "iniFile" ]; + + # Set the ISO path. + iniFile = lib.generators.toINI { } quotedIni; + } + '' + cp "$iniFilePath" "$out" + ''; + in + { + inherit (isle-portable-unwrapped) version; + pname = "isle-portable-wrapped"; + + paths = [ + isle-portable-unwrapped + ]; + + nativeBuildInputs = [ + makeBinaryWrapper + ]; + + postBuild = '' + wrapProgram "$out/bin/isle" \ + --add-flags "--ini ${iniFile}" + ''; + + passthru.unwrapped = isle-portable-unwrapped; + + passthru.iniConfig = { + isle = { + diskpath = null; + cdpath = null; + mediapath = isle-portable-unwrapped; + savepath = "~/.local/share/isledecomp/isle"; + "flip surfaces" = "false"; + "full screen" = "true"; + "exclusive full screen" = "true"; + "wide view angle" = "true"; + "3dsound" = "true"; + "music" = "true"; + "cursor sensitivity" = "4.000000"; + "back buffers in video ram" = "-1"; + "island quality" = "2"; + "island texture" = "1"; + "max lod" = "3.600000"; + "max allowed extras" = "20"; + "transition type" = "3"; + "touch scheme" = "2"; + "haptic" = "true"; + "horizontal resolution" = "640"; + "vertical resolution" = "480"; + "exclusive x resolution" = "640"; + "exclusive y resolution" = "480"; + "exclusive framerate" = "60"; + "frame delta" = "10"; + "msaa" = "0"; + "anisotropic" = ""; + }; + + extensions = { + "texture loader" = "false"; + "si loader" = "false"; + }; + }; + + meta = removeAttrs isle-portable-unwrapped.meta [ "position" ]; + } +) From 3995b801daf643249d0d07ab0e424a3a7b79ec81 Mon Sep 17 00:00:00 2001 From: Ross Smyth <18294397+RossSmyth@users.noreply.github.com> Date: Tue, 3 Feb 2026 17:13:24 -0500 Subject: [PATCH 071/108] isle-portable: Make the wrapped game the default package --- pkgs/by-name/is/isle-portable/package.nix | 208 ++++++++++---------- pkgs/by-name/is/isle-portable/unwrapped.nix | 120 +++++++++++ pkgs/by-name/is/isle-portable/wrapper.nix | 111 ----------- 3 files changed, 219 insertions(+), 220 deletions(-) create mode 100644 pkgs/by-name/is/isle-portable/unwrapped.nix delete mode 100644 pkgs/by-name/is/isle-portable/wrapper.nix diff --git a/pkgs/by-name/is/isle-portable/package.nix b/pkgs/by-name/is/isle-portable/package.nix index afdc884b6c20..28b6638c7553 100644 --- a/pkgs/by-name/is/isle-portable/package.nix +++ b/pkgs/by-name/is/isle-portable/package.nix @@ -1,120 +1,110 @@ { lib, - fetchFromGitHub, - stdenv, callPackage, - unstableGitUpdater, - - # Native Build Inputs - cmake, - ninja, - python3, - pkg-config, - - # Build Inputs - libxrender, - libxrandr, - libxi, - libxinerama, - libxfixes, - libxext, - libxcursor, - libx11, - wayland, - libxkbcommon, - wayland-protocols, - glew, - qt6, - alsa-lib, - sdl3, - iniparser, - libweaver, - - # Options - imguiDebug ? false, - addrSan ? false, - emscriptenHost ? "", + requireFile, + runCommand, + makeBinaryWrapper, + symlinkJoin, + isle-portable-unwrapped ? callPackage ./unwrapped.nix { }, + _7zz, }: -stdenv.mkDerivation (finalAttrs: { - strictDeps = true; - pname = "isle-portable"; - version = "0-unstable-2026-01-31"; - - src = fetchFromGitHub { - owner = "isledecomp"; - repo = "isle-portable"; - rev = "03cb40190a1aedea23b857942d14359c86ad3857"; - hash = "sha256-YGj+2FzotNmHrYBHmlMt6xuSXgXWa6j3rmukjUyGegA="; - fetchSubmodules = true; +let + legoIslandIso = requireFile { + name = "LEGO_ISLANDI.ISO"; + hash = "sha256-pefu/XcvGKcWYzaFldWeFEYdc7OUBgbmlgWyH2CnZec="; + message = "ISO file of Lego Island 1.1"; }; - postPatch = lib.optionalString stdenv.isDarwin '' - substituteInPlace packaging/macos/CMakeLists.txt \ - --replace-fail "fixup_bundle" "#fixup_bundle" + unpackedIso = runCommand "LEGO_ISLANDI-unpacked" { nativeBuildInputs = [ _7zz ]; } '' + mkdir "$out" + 7zz x ${legoIslandIso} -o"$out" ''; - - outputs = [ - "out" - "lib" - ]; - - nativeBuildInputs = [ - cmake - ninja - qt6.wrapQtAppsHook - python3 - pkg-config - ]; - - buildInputs = [ - qt6.qtbase - sdl3 - iniparser - libweaver - ] - ++ lib.optionals stdenv.hostPlatform.isLinux [ - libx11 - libxext - libxrandr - libxrender - libxfixes - libxi - libxinerama - libxcursor - wayland - libxkbcommon - wayland-protocols - glew - alsa-lib - ]; - - cmakeFlags = [ - (lib.cmakeBool "DOWNLOAD_DEPENDENCIES" false) - (lib.cmakeBool "ISLE_DEBUG" imguiDebug) - (lib.cmakeFeature "ISLE_EMSCRIPTEN_HOST" emscriptenHost) - ]; - - passthru = { - updateScript = unstableGitUpdater { hardcodeZeroVersion = true; }; - wrapped = callPackage ./wrapper.nix { - isle-portable-unwrapped = finalAttrs.finalPackage; +in +symlinkJoin ( + finalAttrs: + let + # INI file with the LEGO Island Disk files in it + iniWithDisk = lib.recursiveUpdate finalAttrs.passthru.iniConfig { + isle = { + diskpath = "${unpackedIso}/DATA/disk"; + cdpath = "${unpackedIso}"; + }; }; - }; - meta = { - description = "Portable decompilation of Lego Island"; - homepage = "https://github.com/isledecomp/isle-portable"; - license = with lib.licenses; [ - # The original code for the portable project - lgpl3Plus - # The decompilation code - mit - unfree + # Properly quoted INI file + quotedIni = lib.mapAttrsRecursiveCond (as: (!lib.isDerivation as)) ( + _: value: ''"${toString value}"'' + ) iniWithDisk; + + # Make a config ini file + iniFile = + runCommand "isle.ini" + { + passAsFile = [ "iniFile" ]; + + # Set the ISO path. + iniFile = lib.generators.toINI { } quotedIni; + } + '' + cp "$iniFilePath" "$out" + ''; + in + { + inherit (isle-portable-unwrapped) version; + pname = "isle-portable-wrapped"; + + paths = [ + isle-portable-unwrapped ]; - platforms = with lib.platforms; windows ++ linux ++ darwin; - mainProgram = "isle"; - maintainers = with lib.maintainers; [ - RossSmyth + + nativeBuildInputs = [ + makeBinaryWrapper ]; - }; -}) + + postBuild = '' + wrapProgram "$out/bin/isle" \ + --add-flags "--ini ${iniFile}" + ''; + + passthru.unwrapped = isle-portable-unwrapped; + + passthru.iniConfig = { + isle = { + diskpath = null; + cdpath = null; + mediapath = isle-portable-unwrapped; + savepath = "~/.local/share/isledecomp/isle"; + "flip surfaces" = "false"; + "full screen" = "true"; + "exclusive full screen" = "true"; + "wide view angle" = "true"; + "3dsound" = "true"; + "music" = "true"; + "cursor sensitivity" = "4.000000"; + "back buffers in video ram" = "-1"; + "island quality" = "2"; + "island texture" = "1"; + "max lod" = "3.600000"; + "max allowed extras" = "20"; + "transition type" = "3"; + "touch scheme" = "2"; + "haptic" = "true"; + "horizontal resolution" = "640"; + "vertical resolution" = "480"; + "exclusive x resolution" = "640"; + "exclusive y resolution" = "480"; + "exclusive framerate" = "60"; + "frame delta" = "10"; + "msaa" = "0"; + "anisotropic" = ""; + }; + + extensions = { + "texture loader" = "false"; + "si loader" = "false"; + }; + }; + + meta = removeAttrs isle-portable-unwrapped.meta [ "position" ]; + } +) diff --git a/pkgs/by-name/is/isle-portable/unwrapped.nix b/pkgs/by-name/is/isle-portable/unwrapped.nix new file mode 100644 index 000000000000..d8846fcc8a54 --- /dev/null +++ b/pkgs/by-name/is/isle-portable/unwrapped.nix @@ -0,0 +1,120 @@ +{ + lib, + fetchFromGitHub, + stdenv, + callPackage, + unstableGitUpdater, + + # Native Build Inputs + cmake, + ninja, + python3, + pkg-config, + + # Build Inputs + libxrender, + libxrandr, + libxi, + libxinerama, + libxfixes, + libxext, + libxcursor, + libx11, + wayland, + libxkbcommon, + wayland-protocols, + glew, + qt6, + alsa-lib, + sdl3, + iniparser, + libweaver, + + # Options + imguiDebug ? false, + addrSan ? false, + emscriptenHost ? "", +}: +stdenv.mkDerivation (finalAttrs: { + strictDeps = true; + pname = "isle-portable"; + version = "0-unstable-2026-01-31"; + + src = fetchFromGitHub { + owner = "isledecomp"; + repo = "isle-portable"; + rev = "03cb40190a1aedea23b857942d14359c86ad3857"; + hash = "sha256-YGj+2FzotNmHrYBHmlMt6xuSXgXWa6j3rmukjUyGegA="; + fetchSubmodules = true; + }; + + postPatch = lib.optionalString stdenv.isDarwin '' + substituteInPlace packaging/macos/CMakeLists.txt \ + --replace-fail "fixup_bundle" "#fixup_bundle" + ''; + + outputs = [ + "out" + "lib" + ]; + + nativeBuildInputs = [ + cmake + ninja + qt6.wrapQtAppsHook + python3 + pkg-config + ]; + + buildInputs = [ + qt6.qtbase + sdl3 + iniparser + libweaver + ] + ++ lib.optionals stdenv.hostPlatform.isLinux [ + libx11 + libxext + libxrandr + libxrender + libxfixes + libxi + libxinerama + libxcursor + wayland + libxkbcommon + wayland-protocols + glew + alsa-lib + ]; + + cmakeFlags = [ + (lib.cmakeBool "DOWNLOAD_DEPENDENCIES" false) + (lib.cmakeBool "ISLE_DEBUG" imguiDebug) + (lib.cmakeFeature "ISLE_EMSCRIPTEN_HOST" emscriptenHost) + ]; + + passthru = { + updateScript = unstableGitUpdater { hardcodeZeroVersion = true; }; + wrapped = callPackage ./package.nix { + isle-portable-unwrapped = finalAttrs.finalPackage; + }; + }; + + meta = { + description = "Portable decompilation of Lego Island"; + homepage = "https://github.com/isledecomp/isle-portable"; + license = with lib.licenses; [ + # The original code for the portable project + lgpl3Plus + # The decompilation code + mit + unfree + ]; + platforms = with lib.platforms; windows ++ linux ++ darwin; + mainProgram = "isle"; + maintainers = with lib.maintainers; [ + RossSmyth + ]; + }; +}) diff --git a/pkgs/by-name/is/isle-portable/wrapper.nix b/pkgs/by-name/is/isle-portable/wrapper.nix deleted file mode 100644 index cf08953c969b..000000000000 --- a/pkgs/by-name/is/isle-portable/wrapper.nix +++ /dev/null @@ -1,111 +0,0 @@ -{ - lib, - callPackage, - requireFile, - runCommand, - makeBinaryWrapper, - symlinkJoin, - isle-portable-unwrapped ? callPackage ./package.nix { }, - _7zz, -}: -let - legoIslandIso = requireFile { - name = "LEGO_ISLANDI.ISO"; - hash = "sha256-pefu/XcvGKcWYzaFldWeFEYdc7OUBgbmlgWyH2CnZec="; - message = "ISO file of Lego Island 1.1"; - }; - - unpackedIso = runCommand "LEGO_ISLANDI-unpacked" { nativeBuildInputs = [ _7zz ]; } '' - mkdir "$out" - 7zz x ${legoIslandIso} -o"$out" - ''; - -in -symlinkJoin ( - finalAttrs: - let - # INI file with the LEGO Island Disk files in it - iniWithDisk = lib.recursiveUpdate finalAttrs.passthru.iniConfig { - isle = { - diskpath = "${unpackedIso}/DATA/disk"; - cdpath = "${unpackedIso}"; - }; - }; - - # Properly quoted INI file - quotedIni = lib.mapAttrsRecursiveCond (as: (!lib.isDerivation as)) ( - _: value: ''"${toString value}"'' - ) iniWithDisk; - - # Make a config ini file - iniFile = - runCommand "isle.ini" - { - passAsFile = [ "iniFile" ]; - - # Set the ISO path. - iniFile = lib.generators.toINI { } quotedIni; - } - '' - cp "$iniFilePath" "$out" - ''; - in - { - inherit (isle-portable-unwrapped) version; - pname = "isle-portable-wrapped"; - - paths = [ - isle-portable-unwrapped - ]; - - nativeBuildInputs = [ - makeBinaryWrapper - ]; - - postBuild = '' - wrapProgram "$out/bin/isle" \ - --add-flags "--ini ${iniFile}" - ''; - - passthru.unwrapped = isle-portable-unwrapped; - - passthru.iniConfig = { - isle = { - diskpath = null; - cdpath = null; - mediapath = isle-portable-unwrapped; - savepath = "~/.local/share/isledecomp/isle"; - "flip surfaces" = "false"; - "full screen" = "true"; - "exclusive full screen" = "true"; - "wide view angle" = "true"; - "3dsound" = "true"; - "music" = "true"; - "cursor sensitivity" = "4.000000"; - "back buffers in video ram" = "-1"; - "island quality" = "2"; - "island texture" = "1"; - "max lod" = "3.600000"; - "max allowed extras" = "20"; - "transition type" = "3"; - "touch scheme" = "2"; - "haptic" = "true"; - "horizontal resolution" = "640"; - "vertical resolution" = "480"; - "exclusive x resolution" = "640"; - "exclusive y resolution" = "480"; - "exclusive framerate" = "60"; - "frame delta" = "10"; - "msaa" = "0"; - "anisotropic" = ""; - }; - - extensions = { - "texture loader" = "false"; - "si loader" = "false"; - }; - }; - - meta = removeAttrs isle-portable-unwrapped.meta [ "position" ]; - } -) From 068e97ac5ce0942acc045fe4bd1f6ebe25491fe8 Mon Sep 17 00:00:00 2001 From: Ross Smyth <18294397+RossSmyth@users.noreply.github.com> Date: Wed, 25 Feb 2026 10:38:02 -0500 Subject: [PATCH 072/108] isle-portable.unwrapped: remove addrSan option --- pkgs/by-name/is/isle-portable/unwrapped.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/by-name/is/isle-portable/unwrapped.nix b/pkgs/by-name/is/isle-portable/unwrapped.nix index d8846fcc8a54..825b9e9bad5a 100644 --- a/pkgs/by-name/is/isle-portable/unwrapped.nix +++ b/pkgs/by-name/is/isle-portable/unwrapped.nix @@ -32,7 +32,6 @@ # Options imguiDebug ? false, - addrSan ? false, emscriptenHost ? "", }: stdenv.mkDerivation (finalAttrs: { From 28d2f3ce12d1352ae3d684d5959254986253cee6 Mon Sep 17 00:00:00 2001 From: RatCornu Date: Sun, 11 Jan 2026 04:22:44 +0100 Subject: [PATCH 073/108] nixos/prosody: add ldap authentication option --- nixos/modules/services/networking/prosody.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nixos/modules/services/networking/prosody.nix b/nixos/modules/services/networking/prosody.nix index b2f480920db5..8bf9770e62cf 100644 --- a/nixos/modules/services/networking/prosody.nix +++ b/nixos/modules/services/networking/prosody.nix @@ -886,6 +886,7 @@ in "internal_hashed" "cyrus" "anonymous" + "ldap" ]; default = "internal_hashed"; example = "internal_plain"; From 92e1aa8c41598c0e422e86520bebe2d0add4012f Mon Sep 17 00:00:00 2001 From: Cassie <37855219+CodeF53@users.noreply.github.com> Date: Mon, 2 Feb 2026 21:32:28 -0700 Subject: [PATCH 074/108] maintainers: add CodeF53 --- maintainers/maintainer-list.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 684af44fe44d..243742b577e1 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -5183,6 +5183,13 @@ email = "codenil@proton.me"; name = "Dan Lock"; }; + CodeF53 = { + github = "CodeF53"; + githubId = 37855219; + matrix = "@codef53:matrix.org"; + email = "fseusb@gmail.com"; + name = "cassie"; + }; CodeLongAndProsper90 = { github = "CodeLongAndProsper90"; githubId = 50145141; From 5775f3d6d3abcc76f8571a6f372553fecfaf0d31 Mon Sep 17 00:00:00 2001 From: Cassie <37855219+CodeF53@users.noreply.github.com> Date: Mon, 2 Feb 2026 21:32:53 -0700 Subject: [PATCH 075/108] hyprwhspr-rs: init at 0.3.20 --- pkgs/by-name/hy/hyprwhspr-rs/package.nix | 68 ++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 pkgs/by-name/hy/hyprwhspr-rs/package.nix diff --git a/pkgs/by-name/hy/hyprwhspr-rs/package.nix b/pkgs/by-name/hy/hyprwhspr-rs/package.nix new file mode 100644 index 000000000000..49b19f8cd2e2 --- /dev/null +++ b/pkgs/by-name/hy/hyprwhspr-rs/package.nix @@ -0,0 +1,68 @@ +{ + lib, + fetchFromGitHub, + rustPlatform, + openssl, + pkg-config, + alsa-lib, + systemdLibs, + libxkbcommon, + makeWrapper, + versionCheckHook, + # hardware acceleration can be enabled by overriding whisper-cpp/onnxruntime or by editing config.cudaSupport/config.rocmSupport globals + whisper-cpp, + onnxruntime, +}: + +rustPlatform.buildRustPackage (finalAttrs: { + pname = "hyprwhspr-rs"; + version = "0.3.20"; + + src = fetchFromGitHub { + owner = "better-slop"; + repo = "hyprwhspr-rs"; + tag = "v${finalAttrs.version}"; + hash = "sha256-QCOzTbLBoygOLLN90840HHHFEaHdorf0CQOCuGpCIfo="; + }; + + cargoHash = "sha256-hLjWHMY2wpEfPfLIdfxDI21FrrC1QOWGRkTezkmzmGY="; + + nativeBuildInputs = [ + pkg-config + makeWrapper + ]; + + buildInputs = [ + openssl + alsa-lib + onnxruntime + systemdLibs + libxkbcommon + ]; + + postInstall = '' + wrapProgram $out/bin/hyprwhspr-rs \ + --prefix PATH : ${lib.makeBinPath [ whisper-cpp ]} + # default voice activation sounds + install -Dm644 assets/* -t $out/share/assets + ''; + + # provide onnx runtime libraries to prevent default behavior of downloading them during the build step + env = { + ORT_STRATEGY = "system"; + ORT_LIB_LOCATION = "${lib.getLib onnxruntime}/lib"; + ORT_PREFER_DYNAMIC_LINK = "1"; + }; + + nativeInstallCheckInputs = [ versionCheckHook ]; + doInstallCheck = true; + + meta = { + description = "Native speech-to-text voice dictation for Hyprland"; + homepage = "https://github.com/better-slop/hyprwhspr-rs"; + license = lib.licenses.mit; + platforms = lib.platforms.linux; + mainProgram = "hyprwhspr-rs"; + maintainers = with lib.maintainers; [ CodeF53 ]; + }; +}) From cd5502f947115f9bc4bdc398cc04ada4affffb9d Mon Sep 17 00:00:00 2001 From: Cassie <37855219+CodeF53@users.noreply.github.com> Date: Mon, 2 Feb 2026 21:33:07 -0700 Subject: [PATCH 076/108] nixos/hyprwhspr-rs: init module --- .../manual/release-notes/rl-2605.section.md | 2 + nixos/modules/module-list.nix | 1 + nixos/modules/services/misc/hyprwhspr-rs.nix | 47 +++++++++++++++++++ 3 files changed, 50 insertions(+) create mode 100644 nixos/modules/services/misc/hyprwhspr-rs.nix diff --git a/nixos/doc/manual/release-notes/rl-2605.section.md b/nixos/doc/manual/release-notes/rl-2605.section.md index 8e4856ec0cd1..12b9dc435378 100644 --- a/nixos/doc/manual/release-notes/rl-2605.section.md +++ b/nixos/doc/manual/release-notes/rl-2605.section.md @@ -38,6 +38,8 @@ - [bentopdf](https://github.com/alam00000/bentopdf), a privacy-first PDF toolkit running completely in-browser. Available as [services.bentopdf](#opt-services.bentopdf.enable). +- [hyprwhspr-rs](https://github.com/better-slop/hyprwhspr-rs), a keybind activated speech-to-text voice dictation utility built for use with Hyprland. Available as `services.hyprwhspr-rs` + - [DankMaterialShell](https://danklinux.com), a complete desktop shell for Wayland compositors built with Quickshell. Available as [programs.dms-shell](#opt-programs.dms-shell.enable). - [dms-greeter](https://danklinux.com), a modern display manager greeter for DankMaterialShell that works with greetd and supports multiple Wayland compositors. Available as [services.displayManager.dms-greeter](#opt-services.displayManager.dms-greeter.enable). diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 5903916b62a7..4999526259f0 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -873,6 +873,7 @@ ./services/misc/headphones.nix ./services/misc/heisenbridge.nix ./services/misc/homepage-dashboard.nix + ./services/misc/hyprwhspr-rs.nix ./services/misc/ihaskell.nix ./services/misc/iio-niri.nix ./services/misc/input-remapper.nix diff --git a/nixos/modules/services/misc/hyprwhspr-rs.nix b/nixos/modules/services/misc/hyprwhspr-rs.nix new file mode 100644 index 000000000000..e21f310ccf30 --- /dev/null +++ b/nixos/modules/services/misc/hyprwhspr-rs.nix @@ -0,0 +1,47 @@ +{ + config, + lib, + pkgs, + ... +}: + +let + inherit (lib) + mkEnableOption + mkPackageOption + mkOption + ; + cfg = config.services.hyprwhspr-rs; +in +{ + options.services.hyprwhspr-rs = { + enable = mkEnableOption "hyprwhspr-rs"; + package = mkPackageOption pkgs "hyprwhspr-rs" { }; + + environmentFile = mkOption { + type = lib.types.nullOr lib.types.str; + default = null; + example = "/path/to/hyprwhspr_secret_file"; + description = "File containing API keys (GROQ_API_KEY, GEMINI_API_KEY) for remote transcription."; + }; + }; + + config = lib.mkIf cfg.enable { + systemd.user.services.hyprwhspr-rs = { + description = "Native speech-to-text voice dictation for Hyprland"; + + after = [ + "graphical-session.target" + "pipewire.service" + ]; + wantedBy = [ "graphical-session.target" ]; + partOf = [ "graphical-session.target" ]; + + serviceConfig = { + ExecStart = lib.getExe cfg.package; + Restart = "on-failure"; + LoadCredential = lib.optional (cfg.environmentFile != null) cfg.environmentFile; + }; + }; + }; +} From 7472c4fcf6f35ad0eaf86b00ad83793df096211b Mon Sep 17 00:00:00 2001 From: mochie~! <187453775+mochienya@users.noreply.github.com> Date: Sun, 26 Oct 2025 03:23:25 +0100 Subject: [PATCH 077/108] godsvg: init at 1.0-alpha14 --- pkgs/by-name/go/godsvg/package.nix | 80 ++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 pkgs/by-name/go/godsvg/package.nix diff --git a/pkgs/by-name/go/godsvg/package.nix b/pkgs/by-name/go/godsvg/package.nix new file mode 100644 index 000000000000..9a1be11e540c --- /dev/null +++ b/pkgs/by-name/go/godsvg/package.nix @@ -0,0 +1,80 @@ +{ + godot_4_6, + makeWrapper, + stdenv, + lib, + fetchFromGitHub, + nix-update-script, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "godsvg"; + version = "1.0-alpha14"; + src = fetchFromGitHub { + owner = "MewPurPur"; + repo = "GodSVG"; + tag = "v${finalAttrs.version}"; + hash = "sha256-Bo45Zu13RRPxf5tZhCxAulTe61o9kwqX1nEFJDaeBng="; + }; + + nativeBuildInputs = [ + godot_4_6 + makeWrapper + ]; + + buildPhase = + let + # https://github.com/MewPurPur/GodSVG/blob/main/export_presets.cfg + preset = + { + "x86_64-linux" = "Linux"; + "aarch64-darwin" = "macOS"; + } + .${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); + in + '' + runHook preBuild + + # Cannot create file `/homeless-shelter/.config/godot_4_5/projects/...` + export HOME=$TMPDIR + # Link the export-templates to the expected location. The `--export` option expects the templates in the home directory. + mkdir -p $HOME/.local/share/godot_4_5 + ln -s ${godot_4_6}/share/godot_4_5/templates $HOME/.local/share/godot_4_5 + + godot4 --headless --export-pack ${preset} godsvg.pck + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + install -Dm444 godsvg.pck $out/share/godsvg/godsvg.pck + + makeWrapper ${godot_4_6}/bin/godot4 $out/bin/godsvg \ + --add-flag "--main-pack" \ + --add-flag "$out/share/godsvg/godsvg.pck" + + install -Dm444 ./assets/logos/icon.svg $out/share/icons/hicolor/scalable/apps/godsvg.svg + install -Dm444 ./assets/logos/icon.png $out/share/icons/hicolor/256x256/apps/godsvg.png + install -Dm444 ./assets/GodSVG.desktop $out/share/applications/GodSVG.desktop + + runHook postInstall + ''; + + # currently, all tags are marked as pre-release + passthru.updateScript = nix-update-script { extraArgs = [ "--version=unstable" ]; }; + + meta = { + homepage = "https://www.godsvg.com/"; + description = "A vector graphics application for structured SVG editing"; + changelog = "https://www.godsvg.com/article/${lib.replaceString "." "-" finalAttrs.version}"; + license = lib.licenses.mit; + platforms = [ + "x86_64-linux" + "aarch64-darwin" + ]; + mainProgram = "godsvg"; + maintainers = [ lib.maintainers.mochienya ]; + }; +}) From b44428ffce59130710f10121798a454f47275b67 Mon Sep 17 00:00:00 2001 From: jaredmontoya <49511278+jaredmontoya@users.noreply.github.com> Date: Wed, 17 Dec 2025 23:30:42 +0100 Subject: [PATCH 078/108] nbted: init at 1.5.2-unstable-2026-02-27 --- pkgs/by-name/nb/nbted/package.nix | 32 +++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 pkgs/by-name/nb/nbted/package.nix diff --git a/pkgs/by-name/nb/nbted/package.nix b/pkgs/by-name/nb/nbted/package.nix new file mode 100644 index 000000000000..93caf4fa8d13 --- /dev/null +++ b/pkgs/by-name/nb/nbted/package.nix @@ -0,0 +1,32 @@ +{ + lib, + rustPlatform, + fetchFromGitHub, + nix-update-script, +}: + +rustPlatform.buildRustPackage (finalAttrs: { + pname = "nbted"; + version = "1.5.2-unstable-2026-02-27"; + + src = fetchFromGitHub { + owner = "C4K3"; + repo = "nbted"; + rev = "ce89021a2d84e80331ef7fdc84fa9c53fa80a671"; + hash = "sha256-TCllGon6x4gWlZYIxzcH0GXs/+M57VepyyGz8RyG1o8="; + }; + + cargoHash = "sha256-IMF5vc9p/+M/gMrUxOE3eojdATfera5dD62kcJEpzd8="; + + env.VERGEN_GIT_SHA = finalAttrs.src.rev; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Command-line NBT editor"; + homepage = "https://github.com/C4K3/nbted"; + license = lib.licenses.cc0; + maintainers = with lib.maintainers; [ jaredmontoya ]; + mainProgram = "nbted"; + }; +}) From 298255b0e6dddb5ba9c633e6342d9034a139ae70 Mon Sep 17 00:00:00 2001 From: ccicnce113424 Date: Wed, 11 Feb 2026 04:15:49 +0800 Subject: [PATCH 079/108] asmc-linux: init at 2.36.25 --- pkgs/by-name/as/asmc-linux/package.nix | 34 ++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 pkgs/by-name/as/asmc-linux/package.nix diff --git a/pkgs/by-name/as/asmc-linux/package.nix b/pkgs/by-name/as/asmc-linux/package.nix new file mode 100644 index 000000000000..0b8073e9cee5 --- /dev/null +++ b/pkgs/by-name/as/asmc-linux/package.nix @@ -0,0 +1,34 @@ +{ + lib, + stdenv, + fetchFromGitHub, +}: +stdenv.mkDerivation { + pname = "asmc-linux"; + version = "2.36.25"; + src = fetchFromGitHub { + owner = "nidud"; + repo = "asmc_linux"; + rev = "4ee70bde4439bdd9c772d08527dba6d50f2e5a88"; + hash = "sha256-/yJC1OQGRgy9T/U2VB0MohSsD1ImLnHYM/8Y8fIWhVE="; + }; + + enableParallelBuilding = true; + + installPhase = '' + runHook preInstall + + install -Dt $out/bin ./asmc + + runHook postInstall + ''; + + meta = { + description = "MASM-compatible assembler"; + homepage = "https://github.com/nidud/asmc_linux"; + license = lib.licenses.gpl2Plus; + maintainers = with lib.maintainers; [ ccicnce113424 ]; + platforms = with lib.systems.inspect; patternLogicalAnd patterns.isx86_64 patterns.isLinux; + mainProgram = "asmc"; + }; +} From 78a1bf40bfbe1d99fc1022ca7e30875416d4d83b Mon Sep 17 00:00:00 2001 From: ccicnce113424 Date: Wed, 11 Feb 2026 04:34:02 +0800 Subject: [PATCH 080/108] _7zz: 25.01 -> 26.00, enable asm --- .../_7/_7zz/fix-cross-mingw-build.patch | 182 ------------------ pkgs/by-name/_7/_7zz/package.nix | 67 ++++--- 2 files changed, 45 insertions(+), 204 deletions(-) delete mode 100644 pkgs/by-name/_7/_7zz/fix-cross-mingw-build.patch diff --git a/pkgs/by-name/_7/_7zz/fix-cross-mingw-build.patch b/pkgs/by-name/_7/_7zz/fix-cross-mingw-build.patch deleted file mode 100644 index 4d77b1bb1024..000000000000 --- a/pkgs/by-name/_7/_7zz/fix-cross-mingw-build.patch +++ /dev/null @@ -1,182 +0,0 @@ ---- a/C/7zip_gcc_c.mak -+++ b/C/7zip_gcc_c.mak -@@ -106,7 +106,7 @@ - endif - - --LIB2 = -lOle32 -loleaut32 -luuid -ladvapi32 -lUser32 -lShell32 -+LIB2 = -lole32 -loleaut32 -luuid -ladvapi32 -luser32 -lshell32 - - CFLAGS_EXTRA = -DUNICODE -D_UNICODE - # -Wno-delete-non-virtual-dtor ---- a/C/7zVersion.rc -+++ b/C/7zVersion.rc -@@ -5,7 +5,7 @@ - #define MY_VFT_APP 0x00000001L - #define MY_VFT_DLL 0x00000002L - --// #include -+// #include - - #ifndef MY_VERSION - #include "7zVersion.h" ---- a/C/Util/7zipInstall/resource.rc -+++ b/C/Util/7zipInstall/resource.rc -@@ -1,7 +1,7 @@ - #include - // #include - // #include --#include -+#include - - #define USE_COPYRIGHT_CR - #include "../../7zVersion.rc" ---- a/C/Util/7zipInstall/resource.rc.rej -+++ b/C/Util/7zipInstall/resource.rc.rej -@@ -0,0 +1,10 @@ -+--- C/Util/7zipInstall/resource.rc -++++ C/Util/7zipInstall/resource.rc -+@@ -1,6 +1,6 @@ -+ #include -+ #include -+-#include -++#include -+ -+ #define USE_COPYRIGHT_CR -+ #include "../../7zVersion.rc" ---- a/C/Util/7zipUninstall/resource.rc -+++ b/C/Util/7zipUninstall/resource.rc -@@ -1,7 +1,7 @@ - #include - // #include - // #include --#include -+#include - - #define USE_COPYRIGHT_CR - #include "../../7zVersion.rc" ---- a/C/Util/7zipUninstall/resource.rc.rej -+++ b/C/Util/7zipUninstall/resource.rc.rej -@@ -0,0 +1,10 @@ -+--- C/Util/7zipUninstall/resource.rc -++++ C/Util/7zipUninstall/resource.rc -+@@ -1,6 +1,6 @@ -+ #include -+ #include -+-#include -++#include -+ -+ #define USE_COPYRIGHT_CR -+ #include "../../7zVersion.rc" ---- a/CPP/7zip/7zip_gcc.mak -+++ b/CPP/7zip/7zip_gcc.mak -@@ -142,8 +142,8 @@ - DEL_OBJ_EXE = -$(RM) $(O)\*.o $(O)\$(PROG).exe $(O)\$(PROG).dll - endif - --LIB2_GUI = -lOle32 -lGdi32 -lComctl32 -lComdlg32 -lShell32 $(LIB_HTMLHELP) --LIB2 = -loleaut32 -luuid -ladvapi32 -lUser32 $(LIB2_GUI) -+LIB2_GUI = -lole32 -lgdi32 -lcomctl32 -lcomdlg32 -lshell32 $(LIB_HTMLHELP) -+LIB2 = -loleaut32 -luuid -ladvapi32 -luser32 $(LIB2_GUI) - - # v24.00: -DUNICODE and -D_UNICODE are defined in precompilation header files - # CXXFLAGS_EXTRA = -DUNICODE -D_UNICODE ---- a/CPP/7zip/Crypto/RandGen.cpp -+++ b/CPP/7zip/Crypto/RandGen.cpp -@@ -19,7 +19,7 @@ - - #ifdef USE_STATIC_RtlGenRandom - --// #include -+// #include - - EXTERN_C_BEGIN - #ifndef RtlGenRandom ---- a/CPP/7zip/GuiCommon.rc -+++ b/CPP/7zip/GuiCommon.rc -@@ -4,7 +4,7 @@ - // #include - - // for Windows CE: --#include -+#include - - - LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US ---- a/CPP/7zip/UI/FileManager/PanelItemOpen.cpp -+++ b/CPP/7zip/UI/FileManager/PanelItemOpen.cpp -@@ -4,7 +4,7 @@ - - #include "../../../Common/MyWindows.h" - --#include -+#include - - #include "../../../Common/IntToString.h" - ---- a/CPP/7zip/UI/FileManager/SysIconUtils.h -+++ b/CPP/7zip/UI/FileManager/SysIconUtils.h -@@ -5,7 +5,7 @@ - - #include "../../../Common/MyWindows.h" - --#include -+#include - - #include "../../../Common/MyString.h" - ---- a/CPP/Windows/Control/ComboBox.h -+++ b/CPP/Windows/Control/ComboBox.h -@@ -5,7 +5,7 @@ - - #include "../../Common/MyWindows.h" - --#include -+#include - - #include "../Window.h" - ---- a/CPP/Windows/Control/ImageList.h -+++ b/CPP/Windows/Control/ImageList.h -@@ -3,7 +3,7 @@ - #ifndef ZIP7_INC_WINDOWS_CONTROL_IMAGE_LIST_H - #define ZIP7_INC_WINDOWS_CONTROL_IMAGE_LIST_H - --#include -+#include - - #include "../Defs.h" - ---- a/CPP/Windows/Control/ListView.h -+++ b/CPP/Windows/Control/ListView.h -@@ -5,7 +5,7 @@ - - #include "../../Common/MyWindows.h" - --#include -+#include - - #include "../Window.h" - ---- a/CPP/Windows/Control/ProgressBar.h -+++ b/CPP/Windows/Control/ProgressBar.h -@@ -5,7 +5,7 @@ - - #include "../../Common/MyWindows.h" - --#include -+#include - - #include "../Window.h" - ---- a/CPP/Windows/SecurityUtils.h -+++ b/CPP/Windows/SecurityUtils.h -@@ -3,7 +3,7 @@ - #ifndef ZIP7_INC_WINDOWS_SECURITY_UTILS_H - #define ZIP7_INC_WINDOWS_SECURITY_UTILS_H - --#include -+#include - - #include "Defs.h" - diff --git a/pkgs/by-name/_7/_7zz/package.nix b/pkgs/by-name/_7/_7zz/package.nix index cc084c3e199b..001031ca0fa0 100644 --- a/pkgs/by-name/_7/_7zz/package.nix +++ b/pkgs/by-name/_7/_7zz/package.nix @@ -3,9 +3,16 @@ lib, fetchzip, - # Only useful on Linux x86/x86_64, and brings in non‐free Open Watcom + # Free MASM-compatible assembler + asmc-linux, + useAsmc ? !useUasm && stdenv.hostPlatform.isx86 && stdenv.hostPlatform.isLinux, + + # Unfree Open-Watcom licensed assembler uasm, - useUasm ? false, + useUasm ? + enableUnfree + && stdenv.hostPlatform.isx86 + && (stdenv.hostPlatform.isLinux || stdenv.hostPlatform.isWindows), # RAR code is under non-free unRAR license # see the meta.license section below for more details @@ -16,26 +23,34 @@ }: let - makefile = - { - aarch64-darwin = "../../cmpl_mac_arm64.mak"; - x86_64-darwin = "../../cmpl_mac_x64.mak"; - aarch64-linux = "../../cmpl_gcc_arm64.mak"; - i686-linux = "../../cmpl_gcc_x86.mak"; - x86_64-linux = "../../cmpl_gcc_x64.mak"; - } - .${stdenv.hostPlatform.system} or "../../cmpl_gcc.mak"; # generic build + makefile = "../../cmpl_${ + if stdenv.hostPlatform.isDarwin then + "mac" + else if stdenv.cc.isClang then + "clang" + else + "gcc" + }${ + if stdenv.hostPlatform.isx86_64 then + "_x64" + else if stdenv.hostPlatform.isAarch64 then + "_arm64" + else if stdenv.hostPlatform.isi686 then + "_x86" + else + "" + }.mak"; in stdenv.mkDerivation (finalAttrs: { pname = "7zz"; - version = "25.01"; + version = "26.00"; src = fetchzip { url = "https://7-zip.org/a/7z${lib.replaceStrings [ "." ] [ "" ] finalAttrs.version}-src.tar.xz"; hash = { - free = "sha256-A1BBdSGepobpguzokL1zpjce5EOl0zqABYciv9zCOac="; - unfree = "sha256-Jkj6T4tMols33uyJSOCcVmxh5iBYYCO/rq9dF4NDMko="; + free = "sha256-p914FrQPb+h1a+7YIL8ms2YoIfoS1hTCeLLeBF4DjwY="; + unfree = "sha256-CIgPhjRSE9A0ABQQx1YTZgO+DNb3BDxRo5xOQmuzBuI="; } .${if enableUnfree then "unfree" else "free"}; stripRoot = false; @@ -48,10 +63,6 @@ stdenv.mkDerivation (finalAttrs: { ''; }; - patches = [ - ./fix-cross-mingw-build.patch - ]; - postPatch = lib.optionalString stdenv.hostPlatform.isMinGW '' substituteInPlace CPP/7zip/7zip_gcc.mak C/7zip_gcc_c.mak \ --replace windres.exe ${stdenv.cc.targetPrefix}windres @@ -88,8 +99,15 @@ stdenv.mkDerivation (finalAttrs: { "CC=${stdenv.cc.targetPrefix}cc" "CXX=${stdenv.cc.targetPrefix}c++" ] - ++ lib.optionals useUasm [ "MY_ASM=uasm" ] - ++ lib.optionals (!useUasm && stdenv.hostPlatform.isx86) [ "USE_ASM=" ] + ++ lib.optionals useAsmc [ + "MY_ASM=asmc" + ] + ++ lib.optionals useUasm [ + "MY_ASM=uasm" + ] + ++ lib.optionals (stdenv.hostPlatform.isx86 && !useAsmc && !useUasm) [ + "USE_ASM=" + ] # it's the compression code with the restriction, see DOC/License.txt ++ lib.optionals (!enableUnfree) [ "DISABLE_RAR_COMPRESS=true" ] ++ lib.optionals (stdenv.hostPlatform.isMinGW) [ @@ -97,7 +115,12 @@ stdenv.mkDerivation (finalAttrs: { "MSYSTEM=1" ]; - nativeBuildInputs = lib.optionals useUasm [ uasm ]; + nativeBuildInputs = lib.optionals useAsmc [ asmc-linux ] ++ lib.optionals useUasm [ uasm ]; + + outputs = [ + "out" + "doc" + ]; setupHook = ./setup-hook.sh; @@ -136,7 +159,7 @@ stdenv.mkDerivation (finalAttrs: { ++ # and CPP/7zip/Compress/Rar* are unfree with the unRAR license restriction # the unRAR compression code is disabled by default - lib.optionals enableUnfree [ unfree ]; + lib.optionals enableUnfree [ unfreeRedistributable ]; maintainers = with lib.maintainers; [ anna328p jk From f62766439bae63f78ba133247b6ec6a9b0a1a346 Mon Sep 17 00:00:00 2001 From: ccicnce113424 Date: Wed, 11 Feb 2026 04:34:24 +0800 Subject: [PATCH 081/108] _7zip-zstd: init at 25.01-v1.5.7-R4 --- pkgs/by-name/_7/_7zip-zstd-rar/package.nix | 6 + pkgs/by-name/_7/_7zip-zstd/package.nix | 175 +++++++++++++++++++++ pkgs/by-name/_7/_7zip-zstd/setup-hook.sh | 12 ++ 3 files changed, 193 insertions(+) create mode 100644 pkgs/by-name/_7/_7zip-zstd-rar/package.nix create mode 100644 pkgs/by-name/_7/_7zip-zstd/package.nix create mode 100644 pkgs/by-name/_7/_7zip-zstd/setup-hook.sh diff --git a/pkgs/by-name/_7/_7zip-zstd-rar/package.nix b/pkgs/by-name/_7/_7zip-zstd-rar/package.nix new file mode 100644 index 000000000000..5583d78336f0 --- /dev/null +++ b/pkgs/by-name/_7/_7zip-zstd-rar/package.nix @@ -0,0 +1,6 @@ +{ + _7zip-zstd, +}: +_7zip-zstd.override { + enableUnfree = true; +} diff --git a/pkgs/by-name/_7/_7zip-zstd/package.nix b/pkgs/by-name/_7/_7zip-zstd/package.nix new file mode 100644 index 000000000000..3f573e97db0c --- /dev/null +++ b/pkgs/by-name/_7/_7zip-zstd/package.nix @@ -0,0 +1,175 @@ +{ + lib, + stdenv, + fetchFromGitHub, + makeWrapper, + asmc-linux, + useAsmc ? !useUasm && stdenv.hostPlatform.isx86 && stdenv.hostPlatform.isLinux, + uasm, + useUasm ? + enableUnfree + && stdenv.hostPlatform.isx86 + && (stdenv.hostPlatform.isLinux || stdenv.hostPlatform.isWindows), + _experimental-update-script-combinators, + nix-update-script, + enableUnfree ? false, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "7zip-zstd"; + version = "25.01-v1.5.7-R4"; + + src = fetchFromGitHub { + owner = "mcmilk"; + repo = "7-Zip-zstd"; + tag = "v${finalAttrs.version}"; + hash = + if enableUnfree then + "sha256-qP4L5PIG7CHsmYbRock+cbCOGdgujUFG4LHenvvlqzw=" + else + "sha256-R9AUWL35TPh0anyRDhnF28ZYG9FeOxntVIwnnW9e2xA="; + # remove the unRAR related code from the src drv + # > the license requires that you agree to these use restrictions, + # > or you must remove the software (source and binary) from your hard disks + # https://fedoraproject.org/wiki/Licensing:Unrar + postFetch = lib.optionalString (!enableUnfree) '' + rm -r $out/CPP/7zip/Compress/Rar* + ''; + }; + + nativeBuildInputs = + lib.optionals (!stdenv.hostPlatform.isWindows) [ + makeWrapper + ] + ++ lib.optionals useAsmc [ asmc-linux ] + ++ lib.optionals useUasm [ uasm ]; + + outputs = [ + "out" + "doc" + ]; + + makeFlags = [ + "CC=${stdenv.cc.targetPrefix}cc" + "CXX=${stdenv.cc.targetPrefix}c++" + ] + ++ lib.optionals useAsmc [ + "MY_ASM=asmc" + ] + ++ lib.optionals useUasm [ + "MY_ASM=uasm" + ] + ++ lib.optionals (stdenv.hostPlatform.isx86 && !useAsmc && !useUasm) [ + "USE_ASM=" + ] + # it's the compression code with the restriction, see DOC/License.txt + ++ lib.optionals (!enableUnfree) [ "DISABLE_RAR_COMPRESS=true" ] + ++ lib.optionals (stdenv.cc.isClang) [ "FLAGS_FLTO=-flto=thin" ] + ++ lib.optionals (stdenv.hostPlatform.isMinGW) [ + "IS_MINGW=1" + "MSYSTEM=1" + ]; + + enableParallelBuilding = true; + + postPatch = '' + sed -i 's/-Werror//g' CPP/7zip/7zip_gcc.mak + '' + + lib.optionalString stdenv.hostPlatform.isMinGW '' + substituteInPlace CPP/7zip/7zip_gcc.mak C/7zip_gcc_c.mak \ + --replace windres.exe ${stdenv.cc.targetPrefix}windres + ''; + + buildPhase = + let + makefile = "../../cmpl_${ + if stdenv.hostPlatform.isDarwin then + "mac" + else if stdenv.cc.isClang then + "clang" + else + "gcc" + }${ + if stdenv.hostPlatform.isx86_64 then + "_x64" + else if stdenv.hostPlatform.isAarch64 then + "_arm64" + else if stdenv.hostPlatform.isi686 then + "_x86" + else + "" + }.mak"; + in + '' + runHook preBuild + + for component in Bundles/{Alone,Alone2,Alone7z,Format7zF,SFXCon} UI/Console; do + make -j $NIX_BUILD_CORES -C CPP/7zip/$component -f ${makefile} $makeFlags + done + + runHook postBuild + ''; + + installPhase = + let + inherit (stdenv.hostPlatform) extensions isWindows; + in + '' + runHook preInstall + + install -Dt "$out/${if isWindows then "bin" else "lib"}/7zip" \ + CPP/7zip/Bundles/Alone/b/*/7za${extensions.executable} \ + CPP/7zip/Bundles/Alone2/b/*/7zz${extensions.executable} \ + CPP/7zip/Bundles/Alone7z/b/*/7zr${extensions.executable} \ + CPP/7zip/Bundles/Format7zF/b/*/7z${extensions.sharedLibrary} \ + CPP/7zip/UI/Console/b/*/7z${extensions.executable} + install -D CPP/7zip/Bundles/SFXCon/b/*/7zCon${extensions.executable} "$out/lib/7zip/7zCon.sfx" + + ${lib.optionalString (!isWindows) '' + mkdir -p "$out/bin" + for prog in 7za 7zz 7zr 7z; do + makeWrapper "$out/lib/7zip/$prog" \ + "$out/bin/$prog" + done + ''} + + install -Dt "$out/share/doc/7zip" DOC/*.txt + + runHook postInstall + ''; + + setupHook = ./setup-hook.sh; + passthru.updateScript = _experimental-update-script-combinators.sequence [ + (nix-update-script { + attrPath = "_7zip-zstd"; + extraArgs = [ "--use-github-releases" ]; + }) + (nix-update-script { + attrPath = "_7zip-zstd-rar"; + extraArgs = [ "--version=skip" ]; + }) + ]; + + meta = { + homepage = "https://github.com/mcmilk/7-Zip-zstd"; + description = "7-Zip with support for Brotli, Fast-LZMA2, Lizard, LZ4, LZ5 and Zstandard"; + changelog = "https://github.com/mcmilk/7-Zip-zstd/releases/tag/v${finalAttrs.version}"; + license = + with lib.licenses; + # p7zip code is largely lgpl2Plus + # CPP/7zip/Compress/LzfseDecoder.cpp is bsd3 + [ + lgpl2Plus # and + bsd3 + ] + ++ + # and CPP/7zip/Compress/Rar* are unfree with the unRAR license restriction + # the unRAR compression code is disabled by default + lib.optionals enableUnfree [ unfreeRedistributable ]; + maintainers = with lib.maintainers; [ + ccicnce113424 + ]; + platforms = lib.platforms.unix ++ lib.platforms.windows; + broken = stdenv.hostPlatform.isWindows; # waiting for fixes in 26.00 + mainProgram = "7z"; + }; +}) diff --git a/pkgs/by-name/_7/_7zip-zstd/setup-hook.sh b/pkgs/by-name/_7/_7zip-zstd/setup-hook.sh new file mode 100644 index 000000000000..565ef8816774 --- /dev/null +++ b/pkgs/by-name/_7/_7zip-zstd/setup-hook.sh @@ -0,0 +1,12 @@ +unpackCmdHooks+=(_try7zip) +unpackCmdHooks+=(_tryUnpackDmg) + +_try7zip() { + if ! [[ $curSrc =~ \.7z$ ]]; then return 1; fi + 7z x "$curSrc" +} + +_tryUnpackDmg() { + if ! [[ $curSrc =~ \.dmg$ ]]; then return 1; fi + 7z x "$curSrc" +} From 8145946a93f4b4d6e2dea1c6acd59c518e67241e Mon Sep 17 00:00:00 2001 From: ccicnce113424 Date: Wed, 11 Feb 2026 16:55:32 +0800 Subject: [PATCH 082/108] uasm: fix build on windows --- pkgs/by-name/ua/uasm/package.nix | 52 ++++++++++++++++++++++++++------ 1 file changed, 43 insertions(+), 9 deletions(-) diff --git a/pkgs/by-name/ua/uasm/package.nix b/pkgs/by-name/ua/uasm/package.nix index dc05c0b564d8..00fd015ef578 100644 --- a/pkgs/by-name/ua/uasm/package.nix +++ b/pkgs/by-name/ua/uasm/package.nix @@ -12,7 +12,7 @@ stdenv.mkDerivation (finalAttrs: { src = fetchFromGitHub { owner = "Terraspace"; - repo = "uasm"; + repo = "UASM"; tag = "v${finalAttrs.version}r"; hash = "sha256-HaiK2ogE71zwgfhWL7fesMrNZYnh8TV/kE3ZIS0l85w="; }; @@ -20,22 +20,53 @@ stdenv.mkDerivation (finalAttrs: { enableParallelBuilding = true; makefile = - if stdenv.hostPlatform.isDarwin then "Makefile-OSX-Clang-64.mak" else "Makefile-Linux-GCC-64.mak"; - - makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ]; + if stdenv.hostPlatform.isDarwin then + "Makefile-OSX-Clang-64.mak" + else if stdenv.hostPlatform.isWindows then + "Makefile-DOS-GCC.mak" + else + "Makefile-Linux-GCC-64.mak"; # Needed for compiling with GCC > 13 - env.CFLAGS = "-std=c99 -Wno-incompatible-pointer-types -Wno-implicit-function-declaration -Wno-int-conversion"; + env.NIX_CFLAGS_COMPILE = lib.escapeShellArgs [ + "-std=c99" + "-Wno-incompatible-pointer-types" + "-Wno-int-conversion" + "-Wno-implicit-function-declaration" + ]; installPhase = '' runHook preInstall - install -Dt "$out/bin" -m0755 GccUnixR/uasm - install -Dt "$out/share/doc/uasm" -m0644 {Readme,History}.txt Doc/* + ${ + if stdenv.hostPlatform.isWindows then + '' + install -Dm0755 DJGPPr/hjwasm.exe "$out/bin/hjwasm.exe" + install -Dm0755 DJGPPr/hjwasm.exe "$out/bin/uasm.exe" + '' + else + '' + install -Dt "$out/bin" -m0755 GccUnixR/uasm + '' + } + install -Dt "$out/share/doc/${finalAttrs.pname}" -m0644 {Readme,History}.txt Doc/* runHook postInstall ''; + outputs = [ + "out" + "doc" + ]; + + postPatch = '' + substituteInPlace Makefile-DOS-GCC.mak \ + --replace-fail "gcc.exe" "${stdenv.cc.targetPrefix}cc" + + substituteInPlace Makefile-Linux-GCC-64.mak \ + --replace-fail "CC = gcc" "CC=${stdenv.cc.targetPrefix}cc" + ''; + passthru.tests.version = testers.testVersion { package = uasm; command = "uasm -h"; @@ -46,8 +77,11 @@ stdenv.mkDerivation (finalAttrs: { homepage = "https://www.terraspace.co.uk/uasm.html"; description = "Free MASM-compatible assembler based on JWasm"; mainProgram = "uasm"; - platforms = lib.platforms.unix; - maintainers = [ lib.maintainers.zane ]; + platforms = lib.platforms.unix ++ lib.platforms.windows; + maintainers = with lib.maintainers; [ + zane + ccicnce113424 + ]; license = lib.licenses.watcom; broken = stdenv.hostPlatform.isDarwin; }; From 0d19db6ea9a0b71b3883fa64deb8ac22b99a0576 Mon Sep 17 00:00:00 2001 From: pancaek <20342389+pancaek@users.noreply.github.com> Date: Fri, 27 Feb 2026 15:02:01 -0800 Subject: [PATCH 083/108] ytdownloader: move icon to spec-compliant location --- pkgs/by-name/yt/ytdownloader/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/yt/ytdownloader/package.nix b/pkgs/by-name/yt/ytdownloader/package.nix index 341edc43421e..e84b12db4615 100644 --- a/pkgs/by-name/yt/ytdownloader/package.nix +++ b/pkgs/by-name/yt/ytdownloader/package.nix @@ -70,7 +70,7 @@ buildNpmPackage rec { --add-flags $out/lib/node_modules/ytdownloader/main.js \ --prefix PATH : ${lib.makeBinPath [ ffmpeg-headless ]} - install -Dm444 assets/images/icon.png $out/share/pixmaps/ytdownloader.png + install -Dm444 assets/images/icon.png $out/share/icons/hicolor/512x512/apps/ytdownloader.png ''; meta = { From 86bcecf5134b1f08c20fa16cb2f412b3420911cf Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 28 Feb 2026 03:33:17 +0000 Subject: [PATCH 084/108] python3Packages.libtmux: 0.53.0 -> 0.53.1 --- pkgs/development/python-modules/libtmux/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/libtmux/default.nix b/pkgs/development/python-modules/libtmux/default.nix index ccdf1b16b6b5..943cfbaf76e1 100644 --- a/pkgs/development/python-modules/libtmux/default.nix +++ b/pkgs/development/python-modules/libtmux/default.nix @@ -13,14 +13,14 @@ buildPythonPackage rec { pname = "libtmux"; - version = "0.53.0"; + version = "0.53.1"; pyproject = true; src = fetchFromGitHub { owner = "tmux-python"; repo = "libtmux"; tag = "v${version}"; - hash = "sha256-lGi5hjq1lcZtotCbNmwE0tPqwwEj5c9CJLx78eibg6Y="; + hash = "sha256-mI6oqZ4FiWG8Xe70XV3JAm4Ula1r8JnNKLSVbs2QrGw="; }; postPatch = '' From 477654038c72b0b34996d608c1a4769f66d433f3 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sat, 28 Feb 2026 10:04:05 +0100 Subject: [PATCH 085/108] python3Packages.libtmux: migrate to finalAttrs --- pkgs/development/python-modules/libtmux/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/libtmux/default.nix b/pkgs/development/python-modules/libtmux/default.nix index 943cfbaf76e1..5c7494c57dc0 100644 --- a/pkgs/development/python-modules/libtmux/default.nix +++ b/pkgs/development/python-modules/libtmux/default.nix @@ -11,7 +11,7 @@ tmux, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "libtmux"; version = "0.53.1"; pyproject = true; @@ -19,7 +19,7 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "tmux-python"; repo = "libtmux"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-mI6oqZ4FiWG8Xe70XV3JAm4Ula1r8JnNKLSVbs2QrGw="; }; @@ -63,8 +63,8 @@ buildPythonPackage rec { meta = { description = "Typed scripting library / ORM / API wrapper for tmux"; homepage = "https://libtmux.git-pull.com/"; - changelog = "https://github.com/tmux-python/libtmux/raw/${src.tag}/CHANGES"; + changelog = "https://github.com/tmux-python/libtmux/raw/${finalAttrs.src.tag}/CHANGES"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ otavio ]; }; -} +}) From 422797b55cb18e9f60c0c74a42c124d72bf66b45 Mon Sep 17 00:00:00 2001 From: Rafael Ieda Date: Sat, 28 Feb 2026 08:35:30 -0300 Subject: [PATCH 086/108] pcl: fix build with boost 1.89 --- pkgs/by-name/pc/pcl/package.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkgs/by-name/pc/pcl/package.nix b/pkgs/by-name/pc/pcl/package.nix index 30e8b651e70b..2b326ed73ff7 100644 --- a/pkgs/by-name/pc/pcl/package.nix +++ b/pkgs/by-name/pc/pcl/package.nix @@ -3,6 +3,7 @@ stdenv, config, fetchFromGitHub, + fetchpatch, # nativeBuildInputs cmake, @@ -42,6 +43,15 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-+KyaajJM0I5CAcr8AiOLC4TkGV3Gm73a0/X8LQWFZMI="; }; + patches = [ + (fetchpatch { + # see https://github.com/NixOS/nixpkgs/issues/485826 to be removed at next release after 1.15.1 + name = "boost-1.89.patch"; + url = "https://github.com/PointCloudLibrary/pcl/commit/99333442ac63971297b4cdd05fab9d2bd2ff57a4.patch"; + hash = "sha256-5vg8VjxoAfEOx9n7Tby1DXe1u4rn+zharkefUovLHv0="; + }) + ]; + strictDeps = true; # remove attempt to prevent (x86/x87-specific) extended precision use From 9a50ac9b9db38149c689fed64d1aea33a8287482 Mon Sep 17 00:00:00 2001 From: John Titor <50095635+JohnRTitor@users.noreply.github.com> Date: Sat, 28 Feb 2026 20:27:31 +0530 Subject: [PATCH 087/108] hdr10plus_tool: 1.7.1 -> 1.7.2 --- pkgs/by-name/hd/hdr10plus_tool/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/hd/hdr10plus_tool/package.nix b/pkgs/by-name/hd/hdr10plus_tool/package.nix index d1e27962afa9..912776b6c5dc 100644 --- a/pkgs/by-name/hd/hdr10plus_tool/package.nix +++ b/pkgs/by-name/hd/hdr10plus_tool/package.nix @@ -14,16 +14,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "hdr10plus_tool"; - version = "1.7.1"; + version = "1.7.2"; src = fetchFromGitHub { owner = "quietvoid"; repo = "hdr10plus_tool"; tag = finalAttrs.version; - hash = "sha256-Lpm770Eb81L+eEzHUD+0+J3iS9CFdSP3odhw6KDtgAI="; + hash = "sha256-LFfb6B0LPa+kqqluDssuQaGdaBLgD9rs51Cqb09BK7g="; }; - cargoHash = "sha256-Qkl02HAC6PVCHW226R6StmzrGZv/IHcE88kEg9BpObs="; + cargoHash = "sha256-gAD+rCZ2Z+TutrUpOXFhvzh60W2Usz41QpXgBZ6SjiE="; nativeBuildInputs = [ pkg-config ]; From e3dd9395f82e95fb51fd13deb2ab80e448432bef Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 28 Feb 2026 14:59:35 +0000 Subject: [PATCH 088/108] pyzy: 1.1-unstable-2023-02-28 -> 1.1-unstable-2026-02-28 --- pkgs/by-name/py/pyzy/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/py/pyzy/package.nix b/pkgs/by-name/py/pyzy/package.nix index 4d545d325c7a..fdfac580ad86 100644 --- a/pkgs/by-name/py/pyzy/package.nix +++ b/pkgs/by-name/py/pyzy/package.nix @@ -13,13 +13,13 @@ stdenv.mkDerivation { pname = "pyzy"; - version = "1.1-unstable-2023-02-28"; + version = "1.1-unstable-2026-02-28"; src = fetchFromGitHub { owner = "openSUSE"; repo = "pyzy"; - rev = "ec719d053bd491ec64fe68fe0d1699ca6039ad80"; - hash = "sha256-wU7EgP/CPNhBx9N7mOu0WdnoLazzpQtbRxmBKrTUbKM="; + rev = "5ac51d833777a881e80f0b23d704345cf0feb0d0"; + hash = "sha256-OiFdog34kjmgF2DCnA8LjlZseZPQ8iCYQD4HZKNnCVU="; }; nativeBuildInputs = [ From 927feee4f2ce2381bd9a30328d0012e2e98e1979 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Ha=CC=88cker?= Date: Sat, 17 Jan 2026 14:32:16 +0100 Subject: [PATCH 089/108] fence: init at 0.1.32 --- pkgs/by-name/fe/fence/package.nix | 78 +++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 pkgs/by-name/fe/fence/package.nix diff --git a/pkgs/by-name/fe/fence/package.nix b/pkgs/by-name/fe/fence/package.nix new file mode 100644 index 000000000000..ec528e557ee7 --- /dev/null +++ b/pkgs/by-name/fe/fence/package.nix @@ -0,0 +1,78 @@ +{ + lib, + buildGoModule, + fetchFromGitHub, + nix-update-script, + stdenv, + # linux dependencies + makeWrapper, + bubblewrap, + socat, + bpftrace, + installShellFiles, +}: + +buildGoModule (finalAttrs: { + pname = "fence"; + version = "0.1.32"; + + src = fetchFromGitHub { + owner = "Use-Tusk"; + repo = "fence"; + tag = "v${finalAttrs.version}"; + hash = "sha256-D+mAwmeOGSuKqO72atjvlhg2ez4MXtrjlnHEXPX34jI="; + }; + + vendorHash = "sha256-8v6B39TCwzu6DgFr1nuaGBEQ9s06rbBCENiGUIVw9Rk="; + + ldflags = [ + "-s" + "-w" + "-X=main.version=${finalAttrs.version}" + "-X=main.buildTime=1970-01-01T00:00:00Z" + "-X=main.gitCommit=${finalAttrs.src.rev}" + ]; + + nativeBuildInputs = [ + installShellFiles + ] + ++ lib.optionals stdenv.hostPlatform.isLinux [ makeWrapper ]; + + # Tests want to create sandbox profiles on darwin. + # Nested sandboxes are unsupported by seatbelt, which means we cannot execute the tests inside the nix build sandbox. + doCheck = stdenv.hostPlatform.isLinux; + + nativeCheckInputs = lib.optionals stdenv.hostPlatform.isLinux [ + bubblewrap + socat + bpftrace + ]; + + postInstall = + lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' + installShellCompletion --cmd ${finalAttrs.meta.mainProgram} \ + --bash <($out/bin/${finalAttrs.meta.mainProgram} completion bash) \ + --fish <($out/bin/${finalAttrs.meta.mainProgram} completion fish) \ + --zsh <($out/bin/${finalAttrs.meta.mainProgram} completion zsh) + '' + + lib.optionalString stdenv.hostPlatform.isLinux '' + wrapProgram $out/bin/${finalAttrs.meta.mainProgram} \ + --suffix PATH : ${ + lib.makeBinPath [ + bubblewrap + socat + bpftrace + ] + } + ''; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Lightweight, container-free sandbox for running commands with network and filesystem restrictions"; + homepage = "https://github.com/Use-Tusk/fence"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ dwt ]; + mainProgram = "fence"; + }; +}) From 0bdd77e83c8ee4cfd13b3f3436d6bcf092d64333 Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Sat, 28 Feb 2026 10:58:13 -0600 Subject: [PATCH 090/108] yaziPlugins: update on 2026-02-28 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - chmod: 25.12.29-unstable-2025-12-29 → 26.1.22-unstable-2026-02-27 Compare: https://github.com/yazi-rs/plugins/compare/517619af126f25f3da096ff156ce46b561b54be3...0897e20d41b79a5ec8e80e645b041bb950547a0b - drag: 0-unstable-2025-08-29 → 0-unstable-2026-02-21 Compare: https://github.com/Joao-Queiroga/drag.yazi/compare/27606689cb82c56a19c052a7b7935cd9b1466bab...3dff129c52b30d8c08015e6f4ef8f2c07b299d4b - git: 25.12.29-unstable-2026-01-26 → 26.1.22-unstable-2026-02-27 Compare: https://github.com/yazi-rs/plugins/compare/e07bf41442a7f6fdd003069f380e1ae469a86211...0897e20d41b79a5ec8e80e645b041bb950547a0b - gitui: 0-unstable-2025-05-26 → 0-unstable-2026-02-24 Compare: https://github.com/gclarkjr5/gitui.yazi/compare/397e9cf9cff536a43e746d72e0e81fd5c3050d2d...b3362f54db9c0da51b1d4fb2fe8315a0dada7274 - mactag: 25.12.29-unstable-2025-12-29 → 26.1.22-unstable-2026-02-27 Compare: https://github.com/yazi-rs/plugins/compare/517619af126f25f3da096ff156ce46b561b54be3...0897e20d41b79a5ec8e80e645b041bb950547a0b - mediainfo: 25.5.31-unstable-2026-02-12 → 25.5.31-unstable-2026-02-22 Compare: https://github.com/boydaihungst/mediainfo.yazi/compare/8ab04b24595e0ba14a815d0596baa6c70986ccc4...20ecff6dd154da4c6e28fc7f754e865fd5f9d1b3 - rsync: 0-unstable-2025-10-23 → 0-unstable-2026-02-28 Compare: https://github.com/GianniBYoung/rsync.yazi/compare/14d28283f49b39593a2763d7457e0dacb78f7597...c094a5ce2dc2ebdb37f97a6f1f15af6c14c06402 Signed-off-by: Austin Horstman --- pkgs/by-name/ya/yazi/plugins/chmod/default.nix | 6 +++--- pkgs/by-name/ya/yazi/plugins/drag/default.nix | 6 +++--- pkgs/by-name/ya/yazi/plugins/git/default.nix | 6 +++--- pkgs/by-name/ya/yazi/plugins/gitui/default.nix | 13 +++---------- pkgs/by-name/ya/yazi/plugins/mactag/default.nix | 6 +++--- pkgs/by-name/ya/yazi/plugins/mediainfo/default.nix | 6 +++--- pkgs/by-name/ya/yazi/plugins/rsync/default.nix | 6 +++--- 7 files changed, 21 insertions(+), 28 deletions(-) diff --git a/pkgs/by-name/ya/yazi/plugins/chmod/default.nix b/pkgs/by-name/ya/yazi/plugins/chmod/default.nix index 3eee44ca7ac5..5138920721c4 100644 --- a/pkgs/by-name/ya/yazi/plugins/chmod/default.nix +++ b/pkgs/by-name/ya/yazi/plugins/chmod/default.nix @@ -5,13 +5,13 @@ }: mkYaziPlugin { pname = "chmod.yazi"; - version = "25.12.29-unstable-2025-12-29"; + version = "26.1.22-unstable-2026-02-27"; src = fetchFromGitHub { owner = "yazi-rs"; repo = "plugins"; - rev = "517619af126f25f3da096ff156ce46b561b54be3"; - hash = "sha256-j7fsUmx2nK4Tyj5KCamcCmfs99K6duV+okf8NvzccsI="; + rev = "0897e20d41b79a5ec8e80e645b041bb950547a0b"; + hash = "sha256-tHOHWFH9E7aGrmHb8bUD1sLGU0OIdTjQ2p4SbJVfh/s="; }; meta = { diff --git a/pkgs/by-name/ya/yazi/plugins/drag/default.nix b/pkgs/by-name/ya/yazi/plugins/drag/default.nix index 372dbdc125b2..54d6277a8e8e 100644 --- a/pkgs/by-name/ya/yazi/plugins/drag/default.nix +++ b/pkgs/by-name/ya/yazi/plugins/drag/default.nix @@ -5,13 +5,13 @@ }: mkYaziPlugin { pname = "drag.yazi"; - version = "0-unstable-2025-08-29"; + version = "0-unstable-2026-02-21"; src = fetchFromGitHub { owner = "Joao-Queiroga"; repo = "drag.yazi"; - rev = "27606689cb82c56a19c052a7b7935cd9b1466bab"; - hash = "sha256-ITkZjpwWXni4tQpDhUiVvtPrEkAo6RISgCH594NgpYE="; + rev = "3dff129c52b30d8c08015e6f4ef8f2c07b299d4b"; + hash = "sha256-nmFlh+zW3aOU+YjbfrAWQ7A6FlGaTDnq2N2gOZ5yzzc="; }; meta = { diff --git a/pkgs/by-name/ya/yazi/plugins/git/default.nix b/pkgs/by-name/ya/yazi/plugins/git/default.nix index 735c1a2753ef..7123d4b3f2c0 100644 --- a/pkgs/by-name/ya/yazi/plugins/git/default.nix +++ b/pkgs/by-name/ya/yazi/plugins/git/default.nix @@ -5,13 +5,13 @@ }: mkYaziPlugin { pname = "git.yazi"; - version = "25.12.29-unstable-2026-01-26"; + version = "26.1.22-unstable-2026-02-27"; src = fetchFromGitHub { owner = "yazi-rs"; repo = "plugins"; - rev = "e07bf41442a7f6fdd003069f380e1ae469a86211"; - hash = "sha256-aC8DUZpzNHEf9MW3tX3XcDYY/mWClAHkw+nZaxDQHp8="; + rev = "0897e20d41b79a5ec8e80e645b041bb950547a0b"; + hash = "sha256-tHOHWFH9E7aGrmHb8bUD1sLGU0OIdTjQ2p4SbJVfh/s="; }; meta = { diff --git a/pkgs/by-name/ya/yazi/plugins/gitui/default.nix b/pkgs/by-name/ya/yazi/plugins/gitui/default.nix index 112d5f73e28a..a38bdebc0fd3 100644 --- a/pkgs/by-name/ya/yazi/plugins/gitui/default.nix +++ b/pkgs/by-name/ya/yazi/plugins/gitui/default.nix @@ -6,22 +6,15 @@ mkYaziPlugin { pname = "gitui.yazi"; - version = "0-unstable-2025-05-26"; + version = "0-unstable-2026-02-24"; src = fetchFromGitHub { owner = "gclarkjr5"; repo = "gitui.yazi"; - rev = "397e9cf9cff536a43e746d72e0e81fd5c3050d2d"; - hash = "sha256-Bo16/5XuSxRhN6URwTBxuw0FTMHLF3nV1UDBQQJFHMM="; + rev = "b3362f54db9c0da51b1d4fb2fe8315a0dada7274"; + hash = "sha256-lNj5dH6LDvl9TlA7/+bnDrRMlpOE0bCW3umrW3gBpP8="; }; - installPhase = '' - runHook preInstall - cp -r . $out - mv $out/init.lua $out/main.lua - runHook postInstall - ''; - meta = { description = "Plugin for Yazi to manage git repos with gitui"; homepage = "https://github.com/gclarkjr5/gitui.yazi"; diff --git a/pkgs/by-name/ya/yazi/plugins/mactag/default.nix b/pkgs/by-name/ya/yazi/plugins/mactag/default.nix index b6bee235b86f..62cda1f82031 100644 --- a/pkgs/by-name/ya/yazi/plugins/mactag/default.nix +++ b/pkgs/by-name/ya/yazi/plugins/mactag/default.nix @@ -5,13 +5,13 @@ }: mkYaziPlugin { pname = "mactag.yazi"; - version = "25.12.29-unstable-2025-12-29"; + version = "26.1.22-unstable-2026-02-27"; src = fetchFromGitHub { owner = "yazi-rs"; repo = "plugins"; - rev = "517619af126f25f3da096ff156ce46b561b54be3"; - hash = "sha256-j7fsUmx2nK4Tyj5KCamcCmfs99K6duV+okf8NvzccsI="; + rev = "0897e20d41b79a5ec8e80e645b041bb950547a0b"; + hash = "sha256-tHOHWFH9E7aGrmHb8bUD1sLGU0OIdTjQ2p4SbJVfh/s="; }; meta = { diff --git a/pkgs/by-name/ya/yazi/plugins/mediainfo/default.nix b/pkgs/by-name/ya/yazi/plugins/mediainfo/default.nix index f0d8629268b5..09c5d46e08ad 100644 --- a/pkgs/by-name/ya/yazi/plugins/mediainfo/default.nix +++ b/pkgs/by-name/ya/yazi/plugins/mediainfo/default.nix @@ -5,13 +5,13 @@ }: mkYaziPlugin { pname = "mediainfo.yazi"; - version = "25.5.31-unstable-2026-02-12"; + version = "25.5.31-unstable-2026-02-22"; src = fetchFromGitHub { owner = "boydaihungst"; repo = "mediainfo.yazi"; - rev = "8ab04b24595e0ba14a815d0596baa6c70986ccc4"; - hash = "sha256-6mYZba/fF5G81FqAB4dJ7hLwIV7GFh+/yA0eyX+vB6Q="; + rev = "20ecff6dd154da4c6e28fc7f754e865fd5f9d1b3"; + hash = "sha256-br8UDDPxVe4ZfoHIURD2zzjmyUImhKak0DYwCF9r2vw="; }; meta = { diff --git a/pkgs/by-name/ya/yazi/plugins/rsync/default.nix b/pkgs/by-name/ya/yazi/plugins/rsync/default.nix index 3ee1b393b3c8..e590ae34f574 100644 --- a/pkgs/by-name/ya/yazi/plugins/rsync/default.nix +++ b/pkgs/by-name/ya/yazi/plugins/rsync/default.nix @@ -5,12 +5,12 @@ }: mkYaziPlugin { pname = "rsync.yazi"; - version = "0-unstable-2025-10-23"; + version = "0-unstable-2026-02-28"; src = fetchFromGitHub { owner = "GianniBYoung"; repo = "rsync.yazi"; - rev = "14d28283f49b39593a2763d7457e0dacb78f7597"; - hash = "sha256-LT+4NKiCkiF72RG9g/tOjS6F+Wc4tY3vtnHNHPxbn1w="; + rev = "c094a5ce2dc2ebdb37f97a6f1f15af6c14c06402"; + hash = "sha256-SqN3jDwHtsVDqawJyYHWdndi9IaCKPJH9+d7ffX9H7c="; }; meta = { From 4d8ee90ace0df950014ca57d2a3d62dc38f4706d Mon Sep 17 00:00:00 2001 From: axolord <24368475+Axolord@users.noreply.github.com> Date: Tue, 10 Feb 2026 20:07:10 +0100 Subject: [PATCH 091/108] glances: 4.3.3 -> 4.5.0.5 --- pkgs/applications/system/glances/default.nix | 24 ++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/system/glances/default.nix b/pkgs/applications/system/glances/default.nix index 856f9ea8fab9..bb99cc419eb7 100644 --- a/pkgs/applications/system/glances/default.nix +++ b/pkgs/applications/system/glances/default.nix @@ -7,18 +7,19 @@ defusedxml, packaging, psutil, + pyinstrument, setuptools, nixosTests, pytestCheckHook, which, podman, selenium, + python-jose, # Optional dependencies: fastapi, jinja2, pysnmp, hddtemp, - netifaces2, # IP module uvicorn, requests, prometheus-client, @@ -27,7 +28,7 @@ buildPythonApplication rec { pname = "glances"; - version = "4.3.3"; + version = "4.5.0.5"; pyproject = true; disabled = isPyPy; @@ -36,7 +37,7 @@ buildPythonApplication rec { owner = "nicolargo"; repo = "glances"; tag = "v${version}"; - hash = "sha256-RmGbd8Aa2jJ2DMrBUUoa8mPBa6bGnQd0s0y3p/zP0ng="; + hash = "sha256-IHgMZw+X7C/72w4vXaP37GgnhLVg7EF5/sd9QlmE0NM="; }; build-system = [ setuptools ]; @@ -56,14 +57,15 @@ buildPythonApplication rec { dependencies = [ defusedxml - netifaces2 packaging psutil + pyinstrument pysnmp fastapi uvicorn requests jinja2 + python-jose which prometheus-client shtab @@ -86,6 +88,20 @@ buildPythonApplication rec { "tests/test_webui.py" ]; + disabledTests = [ + # Upstream bug: diskio plugin doesn't check if args is None before accessing attributes + # Bug report: https://github.com/nicolargo/glances/issues/3429 + "test_msg_curse_returns_list" + "test_msg_curse_with_max_width" + # Network test expects visible network interfaces + # Default config hides loopback and interfaces without IP (glances.conf) + # In Nix sandbox environment, this results in zero visible interfaces + "test_glances_api_plugin_network" + # Test always returns 3 plugin updates, but needs >=5 to not fail + # May be an upstream bug, see: https://github.com/nicolargo/glances/issues/3430 + "test_perf_update" + ]; + meta = { homepage = "https://nicolargo.github.io/glances/"; description = "Cross-platform curses-based monitoring tool"; From 3a48975adaceb69089b5541ada894882483e322c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 28 Feb 2026 19:09:47 +0000 Subject: [PATCH 092/108] python3Packages.oelint-data: 1.4.2 -> 1.4.4 --- pkgs/development/python-modules/oelint-data/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/oelint-data/default.nix b/pkgs/development/python-modules/oelint-data/default.nix index 1a5fd741a184..7e9b34daec37 100644 --- a/pkgs/development/python-modules/oelint-data/default.nix +++ b/pkgs/development/python-modules/oelint-data/default.nix @@ -8,14 +8,14 @@ buildPythonPackage (finalAttrs: { pname = "oelint-data"; - version = "1.4.2"; + version = "1.4.4"; pyproject = true; src = fetchFromGitHub { owner = "priv-kweihmann"; repo = "oelint-data"; tag = finalAttrs.version; - hash = "sha256-kaJ6Qalqg2jyCfgJuXpKCvj5SHYetmAobnEJ09Y9gFQ="; + hash = "sha256-gbTbGrTwdHnC0Ydqta0SJP7tujqyz5TCeLJ4tSbkAkU="; }; build-system = [ From 433dfb252856ee9c0de81f9016b94c448d11c8c2 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 28 Feb 2026 20:48:26 +0000 Subject: [PATCH 093/108] cardinal: 26.01 -> 26.02 --- pkgs/by-name/ca/cardinal/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ca/cardinal/package.nix b/pkgs/by-name/ca/cardinal/package.nix index 7ac3155a6047..1f2024e71be9 100644 --- a/pkgs/by-name/ca/cardinal/package.nix +++ b/pkgs/by-name/ca/cardinal/package.nix @@ -28,11 +28,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "cardinal"; - version = "26.01"; + version = "26.02"; src = fetchurl { url = "https://github.com/DISTRHO/Cardinal/releases/download/${finalAttrs.version}/cardinal+deps-${finalAttrs.version}.tar.xz"; - hash = "sha256-KWQc+pcSMebP85yOtQ812qHAwaB6ZOvPpwsxG+myzDo="; + hash = "sha256-4xjRCYN6Y7YtFc4gCd8F7CQxB02PLZQ6DN59rZVPYh0="; }; prePatch = '' From f05f652af3795adb5ce9a18de616d6fe76be8f47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Sun, 1 Mar 2026 02:21:06 +0100 Subject: [PATCH 094/108] nixos/tests/vaultwarden: update comment, remove unused arg --- nixos/tests/vaultwarden.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/nixos/tests/vaultwarden.nix b/nixos/tests/vaultwarden.nix index 329ee3fdf963..cd799b1b19d4 100644 --- a/nixos/tests/vaultwarden.nix +++ b/nixos/tests/vaultwarden.nix @@ -83,7 +83,7 @@ let wait.until_not(EC.title_contains("Join organization")) - # NOTE: When testing this locally, the extensions must not be installed, otherwise this screen does not appear + # NOTE: When testing this locally, the Bitwarden browser extension must not be installed, otherwise this screen does not appear click_when_unobstructed((By.XPATH, "//button[contains(., 'Add it later')]")) click_when_unobstructed((By.XPATH, "//a[contains(., 'Skip to web app')]")) @@ -198,7 +198,6 @@ let { nodes, pkgs, - config, ... }: { From 6bf1ce5c115bfbf5e2d1cd98ed56648266f3a6bb Mon Sep 17 00:00:00 2001 From: tonybanters Date: Fri, 27 Feb 2026 23:37:26 -0800 Subject: [PATCH 095/108] oxwm: 0.9.0 -> 0.11.3 --- pkgs/by-name/ox/oxwm/package.nix | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/pkgs/by-name/ox/oxwm/package.nix b/pkgs/by-name/ox/oxwm/package.nix index 9f33f1a1b745..89fa968e1bdb 100644 --- a/pkgs/by-name/ox/oxwm/package.nix +++ b/pkgs/by-name/ox/oxwm/package.nix @@ -1,34 +1,38 @@ { lib, - rustPlatform, + stdenv, fetchFromGitHub, + zig, pkg-config, libx11, libxft, - libxrender, + libxinerama, + lua5_4, freetype, fontconfig, - versionCheckHook, + writableTmpDirAsHomeHook, }: -rustPlatform.buildRustPackage (finalAttrs: { +stdenv.mkDerivation (finalAttrs: { pname = "oxwm"; - version = "0.9.0"; + version = "0.11.3"; src = fetchFromGitHub { owner = "tonybanters"; repo = "oxwm"; tag = "v${finalAttrs.version}"; - hash = "sha256-zVYYRGe5ZIR1AJgKZi9s403NKM7hKAqhEbNWYSkgpT0="; + hash = "sha256-W6muqajSk9UR646ZmLkx/wWfiaWLo+d1lJMiLm82NC8="; }; - cargoHash = "sha256-Rs8eGR8WY7qOPM0rfu6lTNDl6TVMR+rrIc6Ub+M7vfs="; - - nativeBuildInputs = [ pkg-config ]; + nativeBuildInputs = [ + zig.hook + pkg-config + ]; buildInputs = [ libx11 libxft - libxrender + libxinerama + lua5_4 freetype fontconfig ]; @@ -36,8 +40,12 @@ rustPlatform.buildRustPackage (finalAttrs: { # tests require a running X server doCheck = false; - nativeInstallCheckInputs = [ versionCheckHook ]; doInstallCheck = true; + versionCheckProgramArg = "--version"; + versionCheckKeepEnvironment = [ "HOME" ]; + nativeInstallCheckInputs = [ + writableTmpDirAsHomeHook + ]; postInstall = '' install -Dm644 resources/oxwm.desktop -t $out/share/xsessions @@ -48,7 +56,7 @@ rustPlatform.buildRustPackage (finalAttrs: { passthru.providedSessions = [ "oxwm" ]; meta = { - description = "Dynamic window manager written in Rust, inspired by dwm"; + description = "Dynamic window manager written in Zig, inspired by dwm"; homepage = "https://github.com/tonybanters/oxwm"; license = lib.licenses.gpl3Only; maintainers = with lib.maintainers; [ tonybanters ]; From e362d9e6702d00eb637b6a0c51d5a03b11184864 Mon Sep 17 00:00:00 2001 From: tonybanters Date: Fri, 27 Feb 2026 23:37:45 -0800 Subject: [PATCH 096/108] nixosTests.oxwm: init --- nixos/tests/all-tests.nix | 1 + nixos/tests/oxwm.nix | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 nixos/tests/oxwm.nix diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 109a14676734..343500f195e2 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -1218,6 +1218,7 @@ in owi = runTest ./owi.nix; owncast = runTest ./owncast.nix; oxidized = handleTest ./oxidized.nix { }; + oxwm = runTestOn [ "x86_64-linux" "aarch64-linux" ] ./oxwm.nix; pacemaker = runTest ./pacemaker.nix; packagekit = runTest ./packagekit.nix; pairdrop = runTest ./web-apps/pairdrop.nix; diff --git a/nixos/tests/oxwm.nix b/nixos/tests/oxwm.nix new file mode 100644 index 000000000000..9dbefd747ae0 --- /dev/null +++ b/nixos/tests/oxwm.nix @@ -0,0 +1,39 @@ +{ lib, ... }: +{ + name = "oxwm"; + + meta = { + maintainers = with lib.maintainers; [ + sigmanificient + tonybanters + ]; + }; + + nodes.machine = + { pkgs, lib, ... }: + { + imports = [ + ./common/x11.nix + ./common/user-account.nix + ]; + test-support.displayManager.auto.user = "alice"; + services.displayManager.defaultSession = lib.mkForce "oxwm"; + services.xserver.windowManager.oxwm.enable = true; + + environment.systemPackages = [ pkgs.alacritty ]; + }; + + testScript = '' + with subtest("ensure x starts"): + machine.wait_for_x() + machine.wait_for_file("/home/alice/.Xauthority") + machine.succeed("xauth merge ~alice/.Xauthority") + + with subtest("ensure we can open a new terminal"): + machine.sleep(2) + machine.send_key("meta_l-ret") + machine.wait_for_window(r"alice.*?machine") + machine.sleep(2) + machine.screenshot("terminal") + ''; +} From a1dc80ac3bbb7c543d2f7ebffd55c6eec715f779 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Sat, 8 Nov 2025 20:54:18 +0100 Subject: [PATCH 097/108] znc: add missing licenses --- pkgs/applications/networking/znc/modules.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/applications/networking/znc/modules.nix b/pkgs/applications/networking/znc/modules.nix index 627b1f96ae5e..f89382bcc288 100644 --- a/pkgs/applications/networking/znc/modules.nix +++ b/pkgs/applications/networking/znc/modules.nix @@ -138,6 +138,8 @@ in description = "ZNC FiSH module"; homepage = "https://github.com/oilslump/znc-fish"; maintainers = [ ]; + # has no license + license = lib.licenses.unfree; }; }; @@ -215,6 +217,8 @@ in meta = { description = "ZNC privmsg module"; homepage = "https://github.com/kylef/znc-contrib"; + # has no license + license = lib.licenses.unfree; }; }; From bd5d96866b931e6126e189f8fbe5f53f9d8044b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Wed, 25 Feb 2026 13:22:37 +0100 Subject: [PATCH 098/108] python313Packages.django-anymail: align dependencies with upstream, add optional dependencies that have extra dependencies see https://github.com/anymail/django-anymail/blob/v14.0/pyproject.toml#L69 and https://github.com/anymail/django-anymail/blob/v14.0/pyproject.toml#L79-L108 --- .../development/python-modules/django-anymail/default.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkgs/development/python-modules/django-anymail/default.nix b/pkgs/development/python-modules/django-anymail/default.nix index d471fe90a1f1..157506501cb2 100644 --- a/pkgs/development/python-modules/django-anymail/default.nix +++ b/pkgs/development/python-modules/django-anymail/default.nix @@ -2,9 +2,11 @@ lib, boto3, buildPythonPackage, + cryptography, django, fetchFromGitHub, hatchling, + idna, mock, pytest-django, pytestCheckHook, @@ -29,12 +31,18 @@ buildPythonPackage rec { dependencies = [ django + idna requests urllib3 ]; optional-dependencies = { amazon-ses = [ boto3 ]; + postal = [ cryptography ]; + sendgrid = [ cryptography ]; + # not packaged + # resend = [ svix ]; + # uts46 = [ uts46 ]; }; nativeCheckInputs = [ From 46c327e83c35bd9c9d3a80e461b7690bcdf755cf Mon Sep 17 00:00:00 2001 From: Joseph Turian Date: Wed, 11 Feb 2026 05:27:30 -0500 Subject: [PATCH 099/108] dolt: 1.59.10 -> 1.81.2 Since v1.59.13, dolt depends on dolthub/go-icu-regex which requires ICU C headers (unicode/uregex.h) at build time. The nixpkgs-update bot has failed to update dolt for ~21 consecutive weeks due to this missing dependency. Adding icu to buildInputs unblocks automated updates. Update dolt to latest version compatible with nixpkgs Go 1.25.5. v1.81.3+ requires Go >= 1.25.6 which is not yet in nixpkgs. Build verified via `nix-build -A dolt` in Docker. Co-Authored-By: Claude Opus 4.6 --- pkgs/by-name/do/dolt/package.nix | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/do/dolt/package.nix b/pkgs/by-name/do/dolt/package.nix index cd571f791097..c400a8d1e826 100644 --- a/pkgs/by-name/do/dolt/package.nix +++ b/pkgs/by-name/do/dolt/package.nix @@ -1,26 +1,29 @@ { fetchFromGitHub, + icu, lib, buildGoModule, }: buildGoModule (finalAttrs: { pname = "dolt"; - version = "1.59.10"; + version = "1.81.2"; src = fetchFromGitHub { owner = "dolthub"; repo = "dolt"; tag = "v${finalAttrs.version}"; - hash = "sha256-DfocUOHpPdNeMcL7kVm7ggm2cVgWp/ifvCFyFosxhcs="; + hash = "sha256-dL6WJvApRGC8ADFowms81YbJpLbbTyNQfI/RIotgTdc="; }; modRoot = "./go"; subPackages = [ "cmd/dolt" ]; - vendorHash = "sha256-yZ+q4KNfIiR2gpk10dpZOMiEN3V/Lk/pzhgaqp7lKag="; + vendorHash = "sha256-wufwBlRiRiNVZgkBFRqZIB6vNeWBBaCDdV2tcynhatk="; proxyVendor = true; doCheck = false; + buildInputs = [ icu ]; + meta = { description = "Relational database with version control and CLI a-la Git"; mainProgram = "dolt"; From 1ce87c045c26e3939f7c870c350a3ebeaf46edec Mon Sep 17 00:00:00 2001 From: Skye J Date: Fri, 20 Feb 2026 17:03:37 -0500 Subject: [PATCH 100/108] augeas: fixed darwin builds --- pkgs/by-name/au/augeas/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/au/augeas/package.nix b/pkgs/by-name/au/augeas/package.nix index 57c960087ed4..9506f60ef472 100644 --- a/pkgs/by-name/au/augeas/package.nix +++ b/pkgs/by-name/au/augeas/package.nix @@ -32,6 +32,7 @@ stdenv.mkDerivation (finalAttrs: { ./bootstrap --gnulib-srcdir=.gnulib ''; + configureFlags = lib.optionals stdenv.buildPlatform.isDarwin [ "--disable-gnulib-tests" ]; nativeBuildInputs = [ autoreconfHook bison From 00f7d9f4775883889f214506b4252f87bc836133 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Thu, 19 Feb 2026 06:49:23 +0100 Subject: [PATCH 101/108] home-assistant-custom-components.browser-mod: init at 2.7.4 --- .../custom-components/browser-mod/package.nix | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 pkgs/servers/home-assistant/custom-components/browser-mod/package.nix diff --git a/pkgs/servers/home-assistant/custom-components/browser-mod/package.nix b/pkgs/servers/home-assistant/custom-components/browser-mod/package.nix new file mode 100644 index 000000000000..1ec3cfea2a7a --- /dev/null +++ b/pkgs/servers/home-assistant/custom-components/browser-mod/package.nix @@ -0,0 +1,42 @@ +{ + lib, + buildHomeAssistantComponent, + fetchFromGitHub, + fetchNpmDeps, + nodejs, + npmHooks, +}: + +buildHomeAssistantComponent rec { + owner = "thomasloven"; + domain = "browser_mod"; + version = "2.7.4"; + + src = fetchFromGitHub { + inherit owner; + repo = "hass-browser_mod"; + tag = "v${version}"; + hash = "sha256-UFHdoIfmN0BUBRAze3mC3mgbV00rrjmKlAiBc4FuiZA="; + }; + + nativeBuildInputs = [ + nodejs + npmHooks.npmBuildHook + npmHooks.npmConfigHook + ]; + + npmDeps = fetchNpmDeps { + inherit src; + hash = "sha256-gvONQGQ91XZAygXDZnu7R/BPKa9T9l3f3EE6o39t0G0="; + }; + + npmBuildScript = "build"; + + meta = { + description = "Home Assistant integration to turn your browser into a controllable entity and media player"; + homepage = "https://github.com/thomasloven/hass-browser_mod"; + changelog = "https://github.com/thomasloven/hass-browser_mod/releases/tag/${src.tag}"; + maintainers = with lib.maintainers; [ SuperSandro2000 ]; + license = lib.licenses.mit; + }; +} From 477b964c2544bcd67b8e41991ac5b66e875e102c Mon Sep 17 00:00:00 2001 From: Lisanna Dettwyler Date: Fri, 30 Jan 2026 14:21:38 -0500 Subject: [PATCH 102/108] openpbs: init at 23.06.06-unstable-2026-01-29 Signed-off-by: Lisanna Dettwyler --- pkgs/by-name/op/openpbs/2709.patch | 190 ++++++++++++++++++++++++++++ pkgs/by-name/op/openpbs/2711.patch | 58 +++++++++ pkgs/by-name/op/openpbs/package.nix | 116 +++++++++++++++++ 3 files changed, 364 insertions(+) create mode 100644 pkgs/by-name/op/openpbs/2709.patch create mode 100644 pkgs/by-name/op/openpbs/2711.patch create mode 100644 pkgs/by-name/op/openpbs/package.nix diff --git a/pkgs/by-name/op/openpbs/2709.patch b/pkgs/by-name/op/openpbs/2709.patch new file mode 100644 index 000000000000..42fa105a6fb1 --- /dev/null +++ b/pkgs/by-name/op/openpbs/2709.patch @@ -0,0 +1,190 @@ +From 236aa3fa2f5ee68a8be21a5cc3a729fb90539f1e Mon Sep 17 00:00:00 2001 +From: Eisuke Kawashima +Date: Sun, 25 May 2025 20:38:53 +0900 +Subject: [PATCH] fix: fix -Wincompatible-pointer-types + +fix #2679 +--- + src/include/pbs_nodes.h | 4 ++-- + src/include/svrfunc.h | 2 +- + src/include/work_task.h | 2 +- + src/lib/Libattr/attr_fn_acl.c | 2 +- + src/lib/Libnet/net_server.c | 2 +- + src/server/hook_func.c | 2 +- + src/server/issue_request.c | 6 +++--- + src/server/node_manager.c | 2 +- + src/server/req_jobobit.c | 2 +- + src/server/req_manager.c | 2 +- + src/server/svr_movejob.c | 2 +- + 11 files changed, 14 insertions(+), 14 deletions(-) + +diff --git a/src/include/pbs_nodes.h b/src/include/pbs_nodes.h +index bc206fdb77..5dbf1a3268 100644 +--- a/src/include/pbs_nodes.h ++++ b/src/include/pbs_nodes.h +@@ -391,7 +391,7 @@ extern void set_vnode_state(struct pbsnode *, unsigned long, enum vnode_state_op + extern struct resvinfo *find_vnode_in_resvs(struct pbsnode *, enum vnode_degraded_op); + extern void free_rinf_list(struct resvinfo *); + extern void degrade_offlined_nodes_reservations(void); +-extern void degrade_downed_nodes_reservations(void); ++extern void degrade_downed_nodes_reservations(struct work_task *); + + extern int mod_node_ncpus(struct pbsnode *pnode, long ncpus, int actmode); + extern int initialize_pbsnode(struct pbsnode *, char *, int); +@@ -461,7 +461,7 @@ struct pbsnode *node_recov_db(char *nd_name, struct pbsnode *pnode); + extern int add_mom_to_pool(mominfo_t *); + extern void reset_pool_inventory_mom(mominfo_t *); + extern vnpool_mom_t *find_vnode_pool(mominfo_t *pmom); +-extern void mcast_msg(); ++extern void mcast_msg(struct work_task *); + int get_job_share_type(struct job *pjob); + #endif + +diff --git a/src/include/svrfunc.h b/src/include/svrfunc.h +index cc555fa88d..34f9958035 100644 +--- a/src/include/svrfunc.h ++++ b/src/include/svrfunc.h +@@ -311,7 +311,7 @@ extern int svr_connect(pbs_net_t, unsigned int, void (*)(int), enum conn_type, i + #ifdef _WORK_TASK_H + extern void release_req(struct work_task *); + #ifdef _BATCH_REQUEST_H +-extern int issue_Drequest(int, struct batch_request *, void (*)(), struct work_task **, int); ++extern int issue_Drequest(int, struct batch_request *, void (*)(struct work_task *), struct work_task **, int); + #endif /* _BATCH_REQUEST_H */ + #endif /* _WORK_TASK_H */ + +diff --git a/src/include/work_task.h b/src/include/work_task.h +index 3cceb659b0..4d81795a41 100644 +--- a/src/include/work_task.h ++++ b/src/include/work_task.h +@@ -90,7 +90,7 @@ struct work_task { + int wt_aux2; /* optional info 2: e.g. *real* child pid (windows), tpp msgid etc */ + }; + +-extern struct work_task *set_task(enum work_type, long event, void (*func)(), void *param); ++extern struct work_task *set_task(enum work_type, long event, void (*func)(struct work_task *), void *param); + extern int convert_work_task(struct work_task *ptask, enum work_type); + extern void clear_task(struct work_task *ptask); + extern void dispatch_task(struct work_task *); +diff --git a/src/lib/Libattr/attr_fn_acl.c b/src/lib/Libattr/attr_fn_acl.c +index 0ef2d5328e..b0373eafeb 100644 +--- a/src/lib/Libattr/attr_fn_acl.c ++++ b/src/lib/Libattr/attr_fn_acl.c +@@ -97,7 +97,7 @@ static int user_order(char *old, char *new); + static int group_order(char *old, char *new); + static int + set_allacl(attribute *, attribute *, enum batch_op, +- int (*order_func)()); ++ int (*order_func)(char *, char *)); + + /* for all decode_*acl() - use decode_arst() */ + /* for all encode_*acl() - use encode_arst() */ +diff --git a/src/lib/Libnet/net_server.c b/src/lib/Libnet/net_server.c +index 045acd303d..b9f6470dbd 100644 +--- a/src/lib/Libnet/net_server.c ++++ b/src/lib/Libnet/net_server.c +@@ -104,7 +104,7 @@ static char logbuf[256]; + /* Private function within this file */ + static int conn_find_usable_index(int); + static int conn_find_actual_index(int); +-static void accept_conn(); ++static void accept_conn(int); + static void cleanup_conn(int); + + /** +diff --git a/src/server/hook_func.c b/src/server/hook_func.c +index b9534dfb9a..e0d0e52745 100644 +--- a/src/server/hook_func.c ++++ b/src/server/hook_func.c +@@ -229,7 +229,7 @@ extern pbs_list_head svr_execjob_preresume_hooks; + extern time_t time_now; + extern struct python_interpreter_data svr_interp_data; + extern pbs_list_head task_list_event; +-extern struct work_task *add_mom_deferred_list(int stream, mominfo_t *minfo, void (*func)(), char *msgid, void *parm1, void *parm2); ++extern struct work_task *add_mom_deferred_list(int stream, mominfo_t *minfo, void (*func)(struct work_task *), char *msgid, void *parm1, void *parm2); + + extern char *path_rescdef; + extern char *path_hooks_rescdef; +diff --git a/src/server/issue_request.c b/src/server/issue_request.c +index 6bef14553b..6cf28dab76 100644 +--- a/src/server/issue_request.c ++++ b/src/server/issue_request.c +@@ -201,7 +201,7 @@ reissue_to_svr(struct work_task *pwt) + /* either timed-out or got hard error, tell post-function */ + pwt->wt_aux = -1; /* seen as error by post function */ + pwt->wt_event = -1; /* seen as connection by post func */ +- ((void (*)()) pwt->wt_parm2)(pwt); ++ ((void (*)(struct work_task *)) pwt->wt_parm2)(pwt); + } + return; + } +@@ -326,7 +326,7 @@ release_req(struct work_task *pwt) + * + */ + struct work_task * +-add_mom_deferred_list(int stream, mominfo_t *minfo, void (*func)(), char *msgid, void *parm1, void *parm2) ++add_mom_deferred_list(int stream, mominfo_t *minfo, void (*func)(struct work_task *), char *msgid, void *parm1, void *parm2) + { + struct work_task *ptask = NULL; + +@@ -394,7 +394,7 @@ add_mom_deferred_list(int stream, mominfo_t *minfo, void (*func)(), char *msgid, + * + */ + int +-issue_Drequest(int conn, struct batch_request *request, void (*func)(), struct work_task **ppwt, int prot) ++issue_Drequest(int conn, struct batch_request *request, void (*func)(struct work_task *), struct work_task **ppwt, int prot) + { + struct attropl *patrl; + struct work_task *ptask; +diff --git a/src/server/node_manager.c b/src/server/node_manager.c +index a6fbf5805e..62661a2361 100644 +--- a/src/server/node_manager.c ++++ b/src/server/node_manager.c +@@ -7923,7 +7923,7 @@ degrade_offlined_nodes_reservations(void) + * @par MT-safe: No + */ + void +-degrade_downed_nodes_reservations(void) ++degrade_downed_nodes_reservations(struct work_task *) + { + int i; + struct pbsnode *pn; +diff --git a/src/server/req_jobobit.c b/src/server/req_jobobit.c +index 37581cead4..034c3c0680 100644 +--- a/src/server/req_jobobit.c ++++ b/src/server/req_jobobit.c +@@ -1337,7 +1337,7 @@ job_obit(ruu *pruu, int stream) + job *pjob; + svrattrl *patlist; + struct work_task *ptask; +- void (*eojproc)(); ++ void (*eojproc)(struct work_task *); + char *mailmsg = NULL; + char *msg = NULL; + +diff --git a/src/server/req_manager.c b/src/server/req_manager.c +index 14a50de62e..ac617d7be8 100644 +--- a/src/server/req_manager.c ++++ b/src/server/req_manager.c +@@ -3612,7 +3612,7 @@ check_resource_set_on_jobs_or_resvs(struct batch_request *preq, resource_def *pr + * helper function to send/update resourcedef file. + */ + static void +-timed_send_rescdef() ++timed_send_rescdef(struct work_task *) + { + send_rescdef(1); /* forcing with 1 to avoid failures due to intermittent file stamp race issues */ + rescdef_wt_g = NULL; +diff --git a/src/server/svr_movejob.c b/src/server/svr_movejob.c +index c438d5d739..8947dc8c85 100644 +--- a/src/server/svr_movejob.c ++++ b/src/server/svr_movejob.c +@@ -122,7 +122,7 @@ extern time_t time_now; + extern int svr_create_tmp_jobscript(job *pj, char *script_name); + extern int scheduler_jobs_stat; + extern char *path_hooks_workdir; +-extern struct work_task *add_mom_deferred_list(int stream, mominfo_t *minfo, void (*func)(), char *msgid, void *parm1, void *parm2); ++extern struct work_task *add_mom_deferred_list(int stream, mominfo_t *minfo, void (*func)(struct work_task *), char *msgid, void *parm1, void *parm2); + + /** + * @brief diff --git a/pkgs/by-name/op/openpbs/2711.patch b/pkgs/by-name/op/openpbs/2711.patch new file mode 100644 index 000000000000..e122758940d1 --- /dev/null +++ b/pkgs/by-name/op/openpbs/2711.patch @@ -0,0 +1,58 @@ +diff --git a/src/cmds/qstat.c b/src/cmds/qstat.c +index 440e37cb..cb7fe62c 100644 +--- a/src/cmds/qstat.c ++++ b/src/cmds/qstat.c +@@ -76,7 +76,6 @@ extern char *tcl_atrsep; + /* default server */ + char *def_server; + +-static void states(); + static char *cvtResvstate(char *); + static int cmp_est_time(struct batch_status *a, struct batch_status *b); + char *cnvt_est_start_time(char *start_time, int shortform); +diff --git a/src/cmds/qsub.c b/src/cmds/qsub.c +index f02bb5ef..54871a08 100644 +--- a/src/cmds/qsub.c ++++ b/src/cmds/qsub.c +@@ -89,6 +89,7 @@ + #include + #include + #include ++#include + #include "pbs_ifl.h" + #include "cmds.h" + #include "libpbs.h" +@@ -1944,7 +1945,6 @@ job_env_basic(void) + struct utsname uns; + #endif + int len = 0; +- char *getcwd(); + + /* Calculate how big to make the variable string. */ + len = 0; +diff --git a/src/include/qmgr.h b/src/include/qmgr.h +index eb021c53..17ae6522 100644 +--- a/src/include/qmgr.h ++++ b/src/include/qmgr.h +@@ -143,7 +143,7 @@ struct objname { + /* prototypes */ + struct objname *commalist2objname(char *, int); + struct server *find_server(char *); +-struct server *make_connection(); ++struct server *make_connection(char *); + struct server *new_server(); + struct objname *new_objname(); + struct objname *strings2objname(char **, int, int); +diff --git a/src/tools/pbs_tclWrap.c b/src/tools/pbs_tclWrap.c +index 558528ad..1a9dd1d4 100644 +--- a/src/tools/pbs_tclWrap.c ++++ b/src/tools/pbs_tclWrap.c +@@ -273,7 +273,7 @@ int + GetREQ(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) + { + int fd; +- char *ret, *getreq(); ++ char *ret; + char *cmd; + + cmd = Tcl_GetStringFromObj(objv[0], NULL); diff --git a/pkgs/by-name/op/openpbs/package.nix b/pkgs/by-name/op/openpbs/package.nix new file mode 100644 index 000000000000..a50715c7b63c --- /dev/null +++ b/pkgs/by-name/op/openpbs/package.nix @@ -0,0 +1,116 @@ +{ + stdenv, + fetchFromGitHub, + lib, + autoconf, + automake, + libtool, + gnum4, + symlinkJoin, + tcl-8_5, + tk-8_5, + swig, + pkg-config, + cjson, + openssl, + zlib, + libxt, + libx11, + libpq, + python3, + expat, + libedit, + hwloc, + libical, + krb5, + munge, + findutils, + gawk, +}: +let + tclWithTk = symlinkJoin { + name = "tcl-with-tk"; + paths = [ + tcl-8_5 + tk-8_5 + tk-8_5.dev + ]; + }; +in +stdenv.mkDerivation { + pname = "openpbs"; + version = "23.06.06-unstable-2026-01-29"; + + src = fetchFromGitHub { + owner = "openpbs"; + repo = "openpbs"; + rev = "cfd431b703e8cbe3bc99db6fbbcdd970625ef032"; + hash = "sha256-NZoSZmcl9a/6YWHO7qRNknB6ii0JBLo5bOpHDRKeuwI="; + }; + + nativeBuildInputs = [ + autoconf + automake + libtool + gnum4 + tclWithTk + swig + pkg-config + cjson + ]; + buildInputs = [ + openssl + zlib + libxt + libx11 + libpq + python3 + expat + libedit + hwloc + libical + krb5 + munge + ]; + + enableParallelBuilding = true; + + patches = [ + ./2709.patch + ./2711.patch + ]; + + postPatch = '' + substituteInPlace src/cmds/scripts/Makefile.am --replace-fail "/etc/profile.d" "$out/etc/profile.d" + substituteInPlace m4/pbs_systemd_unitdir.m4 --replace-fail "/usr/lib/systemd/system" "$out/lib/systemd/system" + ''; + + preConfigure = '' + ./autogen.sh + ''; + + configureFlags = [ + "--with-tcl=${tclWithTk}" + "--with-swig=${swig}" + "--sysconfdir=$out/etc" + ]; + + postInstall = '' + cp src/scheduler/pbs_{dedicated,holidays,resource_group,sched_config} $out/etc/ + ''; + + postFixup = '' + substituteInPlace $out/libexec/pbs_habitat --replace-fail /bin/ls ls + find $out/bin/ $out/sbin/ $out/libexec/ $out/lib/ -type f -exec file "{}" + | + awk -F: '/ELF/ {print $1}' | + xargs patchelf --add-needed libmunge.so --add-rpath ${munge}/lib + ''; + + meta = { + description = "HPC workload manager and job scheduler for desktops, clusters, and clouds"; + homepage = "https://www.openpbs.org/"; + license = lib.licenses.agpl3Only; + maintainers = with lib.maintainers; [ lisanna-dettwyler ]; + platforms = lib.platforms.unix; + }; +} From f3f77f13de9bf91f0dea331c71dc661fd0577fdc Mon Sep 17 00:00:00 2001 From: Lisanna Dettwyler Date: Mon, 15 Dec 2025 14:49:33 -0500 Subject: [PATCH 103/108] nix-scheduler-hook: init at 0.6.1 Signed-off-by: Lisanna Dettwyler --- .../by-name/ni/nix-scheduler-hook/package.nix | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 pkgs/by-name/ni/nix-scheduler-hook/package.nix diff --git a/pkgs/by-name/ni/nix-scheduler-hook/package.nix b/pkgs/by-name/ni/nix-scheduler-hook/package.nix new file mode 100644 index 000000000000..a5135748dced --- /dev/null +++ b/pkgs/by-name/ni/nix-scheduler-hook/package.nix @@ -0,0 +1,83 @@ +{ + fetchFromGitHub, + stdenv, + lib, + nix, + meson, + cmake, + ninja, + boost, + pkg-config, + nlohmann_json, + curl, + openpbs, + symlinkJoin, + slurm, +}: +let + restclient-cpp = fetchFromGitHub { + owner = "mrtazz"; + repo = "restclient-cpp"; + rev = "3356f816b161279cfbe318c45cb07c07fb8de6df"; + hash = "sha256-9//KssNRD7OJFNFdXgzsu7rKP/Nlb4wtmBjfhOt2Vgw="; + }; + slurmJoined = symlinkJoin { + name = "slurm"; + paths = [ + slurm + slurm.dev + ]; + }; +in +stdenv.mkDerivation rec { + pname = "nix-scheduler-hook"; + version = "0.6.1"; + + src = fetchFromGitHub { + owner = "lisanna-dettwyler"; + repo = "nix-scheduler-hook"; + tag = "v${version}"; + hash = "sha256-pB42rjqkASgdYQJD9nPqFSM0JAUIko1FN4d0J52BUsc="; + }; + + sourceRoot = "source/src"; + + nativeBuildInputs = [ + meson + cmake + ninja + pkg-config + ]; + + buildInputs = [ + boost + curl + nix.libs.nix-util + nix.libs.nix-store + nix.libs.nix-main + nlohmann_json + openpbs + slurmJoined + ]; + + postUnpack = '' + mkdir $sourceRoot/subprojects + cp -r ${restclient-cpp} $sourceRoot/subprojects/restclient-cpp + ''; + + installPhase = '' + mkdir -p $out/bin + mv nsh $out/bin + mkdir -p $out/lib + mv subprojects/restclient-cpp/librestclient_cpp.so $out/lib + ''; + + meta = { + description = "Nix build hook that forwards builds to job schedulers"; + homepage = "https://github.com/lisanna-dettwyler/nix-scheduler-hook"; + license = lib.licenses.lgpl21; + mainProgram = "nsh"; + maintainers = with lib.maintainers; [ lisanna-dettwyler ]; + inherit (nix.meta) platforms; + }; +} From 2e97b30e0f59b39c23c7758cbc7d2a0ef9c24a78 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 1 Mar 2026 03:04:06 +0000 Subject: [PATCH 104/108] terraform-providers.hashicorp_azurerm: 4.61.0 -> 4.62.0 --- .../networking/cluster/terraform-providers/providers.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json index 22c851fea5b5..73cca9d273fc 100644 --- a/pkgs/applications/networking/cluster/terraform-providers/providers.json +++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json @@ -526,11 +526,11 @@ "vendorHash": null }, "hashicorp_azurerm": { - "hash": "sha256-eVdx5W4kwC3SxLp3HbAHHKSP6afmqdeUSXwnIeyRw10=", + "hash": "sha256-iaPwUzwoyxRrb8K6oqIlZxvJ0qiDmWvdh0pgQeDWn6I=", "homepage": "https://registry.terraform.io/providers/hashicorp/azurerm", "owner": "hashicorp", "repo": "terraform-provider-azurerm", - "rev": "v4.61.0", + "rev": "v4.62.0", "spdx": "MPL-2.0", "vendorHash": null }, From b68e86b908695c0a667cbb77c28df439f042ee3d Mon Sep 17 00:00:00 2001 From: Stefan Majewsky Date: Fri, 20 Feb 2026 18:18:44 +0100 Subject: [PATCH 105/108] portunus: 2.1.4 -> 2.2.0 Ref: --- nixos/doc/manual/release-notes/rl-2605.section.md | 2 ++ pkgs/by-name/po/portunus/package.nix | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/nixos/doc/manual/release-notes/rl-2605.section.md b/nixos/doc/manual/release-notes/rl-2605.section.md index 1ec3860bcac2..8e21e79a9971 100644 --- a/nixos/doc/manual/release-notes/rl-2605.section.md +++ b/nixos/doc/manual/release-notes/rl-2605.section.md @@ -112,6 +112,8 @@ of pulling the upstream container image from Docker Hub. If you want the old beh The way keybinds and actions are handled have been completely revamped. Please refer to the [default config](https://raw.githubusercontent.com/abenz1267/walker/refs/heads/master/resources/config.toml). +- [services.portunus](#opt-services.portunus.enable) has been upgraded to 2.2.0, which includes a bug fix that may cause existing databases to be rejected if user accounts are configured with malformed email addresses. Please refer to [the upstream release announcement](https://github.com/majewsky/portunus/releases/tag/v2.2.0) for details and instructions on how to fix problematic database entries. + - Support for `reiserfs` in nixpkgs has been removed, following the removal in Linux 6.13. - `services.tor` no longer bind mounts Unix sockets of onion services into its chroot diff --git a/pkgs/by-name/po/portunus/package.nix b/pkgs/by-name/po/portunus/package.nix index 12f93474832c..3a737a142872 100644 --- a/pkgs/by-name/po/portunus/package.nix +++ b/pkgs/by-name/po/portunus/package.nix @@ -8,13 +8,13 @@ buildGoModule (finalAttrs: { pname = "portunus"; - version = "2.1.4"; + version = "2.2.0"; src = fetchFromGitHub { owner = "majewsky"; repo = "portunus"; - rev = "v${finalAttrs.version}"; - sha256 = "sha256-xZb2+IIZkZd/yGr0+FK7Bi3sZpPMfGz/QmUKn/clrwE="; + tag = "v${finalAttrs.version}"; + hash = "sha256-PvsqI0kwO0pA2xOouI3DmhwzDCrtyBXCBXyWDy4bEmI="; }; buildInputs = [ libxcrypt ]; From 7a789b4a5f165eab90aec1b5321e47dfad52e632 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 1 Mar 2026 04:25:45 +0000 Subject: [PATCH 106/108] terraform-providers.splunk-terraform_signalfx: 9.24.0 -> 9.25.0 --- .../networking/cluster/terraform-providers/providers.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json index 22c851fea5b5..0f39ba254764 100644 --- a/pkgs/applications/networking/cluster/terraform-providers/providers.json +++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json @@ -1238,13 +1238,13 @@ "vendorHash": "sha256-E9e4+n12uSc12F428D8Oqe0iquTMywAY4DYWhSC+hmk=" }, "splunk-terraform_signalfx": { - "hash": "sha256-dPhHzWOkNgIxlHSZm88zKkrgaXaXJ6RFdYeqX5zYSfU=", + "hash": "sha256-lDFwuSZdc0gI5LotTSJk0FSBc9jn7WN43hXEsVHiwG0=", "homepage": "https://registry.terraform.io/providers/splunk-terraform/signalfx", "owner": "splunk-terraform", "repo": "terraform-provider-signalfx", - "rev": "v9.24.0", + "rev": "v9.25.0", "spdx": "MPL-2.0", - "vendorHash": "sha256-/zsslNR7GDLFrtL4T0GLYhKTBof51ODavb/+PHdziS4=" + "vendorHash": "sha256-EOr4Ps0IYYOtRq19tt87NFfCEvJTaFBGb5B4mKMll7c=" }, "spotinst_spotinst": { "hash": "sha256-yDwEtptwNXu/IpoKUK98UkpivTgJaY1FfsshsVpaaOk=", From 11867c95b9bb066712d486f81707ef39145fed15 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 1 Mar 2026 04:59:54 +0000 Subject: [PATCH 107/108] terraform-providers.sysdiglabs_sysdig: 3.4.0 -> 3.4.3 --- .../networking/cluster/terraform-providers/providers.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json index 22c851fea5b5..02baff56d190 100644 --- a/pkgs/applications/networking/cluster/terraform-providers/providers.json +++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json @@ -1274,11 +1274,11 @@ "vendorHash": "sha256-IR6KjFW5GbsOIm3EEFyx3ctwhbifZlcNaZeGhbeK/Wo=" }, "sysdiglabs_sysdig": { - "hash": "sha256-BovhCb+01LJUE62geNJmDwpzV0ucQLpVWjXwfxsClyI=", + "hash": "sha256-mzDVPOEu5nIOYykKvudGmByt0sY0Xl+FuSuQruQXTi0=", "homepage": "https://registry.terraform.io/providers/sysdiglabs/sysdig", "owner": "sysdiglabs", "repo": "terraform-provider-sysdig", - "rev": "v3.4.0", + "rev": "v3.4.3", "spdx": "MPL-2.0", "vendorHash": "sha256-rWiafaFE1RolO9JUN1WoW4EWJjR7kpfeVEOTLf21j50=" }, From 3ceae5bb77a92b2a3439efe61fe2b202a6fded99 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 27 Feb 2026 18:53:38 +0000 Subject: [PATCH 108/108] vala-lint: Switch to tagged release 0.1.0 points exectly to commit a1d1a7b so no change to src hash. --- pkgs/by-name/va/vala-lint/package.nix | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/pkgs/by-name/va/vala-lint/package.nix b/pkgs/by-name/va/vala-lint/package.nix index cc8d84a97415..937013fe0edd 100644 --- a/pkgs/by-name/va/vala-lint/package.nix +++ b/pkgs/by-name/va/vala-lint/package.nix @@ -10,19 +10,19 @@ pkg-config, vala, gettext, - wrapGAppsHook3, - unstableGitUpdater, + wrapGAppsNoGuiHook, + nix-update-script, }: -stdenv.mkDerivation { +stdenv.mkDerivation (finalAttrs: { pname = "vala-lint"; - version = "0-unstable-2025-08-03"; + version = "0.1.0"; src = fetchFromGitHub { owner = "vala-lang"; repo = "vala-lint"; - rev = "a1d1a7bc0f740920e592fd788a836c402fd9825c"; - sha256 = "sha256-63T+wLdnGtVBxKkkkj7gJx0ebApam922Z+cmk2R7Ys0="; + rev = finalAttrs.version; + hash = "sha256-63T+wLdnGtVBxKkkkj7gJx0ebApam922Z+cmk2R7Ys0="; }; nativeBuildInputs = [ @@ -31,7 +31,7 @@ stdenv.mkDerivation { ninja pkg-config vala - wrapGAppsHook3 + wrapGAppsNoGuiHook ]; buildInputs = [ @@ -42,9 +42,7 @@ stdenv.mkDerivation { doCheck = true; passthru = { - updateScript = unstableGitUpdater { - url = "https://github.com/vala-lang/vala-lint.git"; - }; + updateScript = nix-update-script { }; }; meta = { @@ -59,4 +57,4 @@ stdenv.mkDerivation { teams = [ lib.teams.pantheon ]; mainProgram = "io.elementary.vala-lint"; }; -} +})