From 84a45f5bb29fef92c1db9e5faa3798d7ba35f139 Mon Sep 17 00:00:00 2001 From: Marcin Serwin Date: Sun, 29 Jun 2025 17:53:55 +0200 Subject: [PATCH 01/72] pcsx2: switch updater to stable versions Signed-off-by: Marcin Serwin --- pkgs/by-name/pc/pcsx2/update.sh | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/pc/pcsx2/update.sh b/pkgs/by-name/pc/pcsx2/update.sh index 0191e7dc8ada..07203fd80e2a 100755 --- a/pkgs/by-name/pc/pcsx2/update.sh +++ b/pkgs/by-name/pc/pcsx2/update.sh @@ -1,12 +1,16 @@ #!/usr/bin/env nix-shell -#!nix-shell -i bash -p bash nix-update common-updater-scripts coreutils +#!nix-shell -i bash -p bash nix-update common-updater-scripts coreutils jq set -ex -latestRev=`git ls-remote -b https://github.com/PCSX2/pcsx2_patches main | cut -f1` +latestPatchesRev=`git ls-remote -b https://github.com/PCSX2/pcsx2_patches main | cut -f1` update-source-version pcsx2 \ --ignore-same-version \ - --rev=$latestRev \ + --rev=$latestPatchesRev \ --source-key=pcsx2_patches -nix-update --version=unstable pcsx2 + +latestVersion="`curl "https://api.github.com/repos/PCSX2/pcsx2/releases/latest" \ + | jq -r ".tag_name[1:]"`" + +nix-update pcsx2 --version=$latestVersion From bec3154e3028d97493be4a24cf794e2c7c262d22 Mon Sep 17 00:00:00 2001 From: Marcin Serwin Date: Tue, 1 Jul 2025 17:06:19 +0200 Subject: [PATCH 02/72] pcsx2: 2.3.424 -> 2.4.0 Signed-off-by: Marcin Serwin --- pkgs/by-name/pc/pcsx2/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/pc/pcsx2/package.nix b/pkgs/by-name/pc/pcsx2/package.nix index bf68de038ec5..14d528eff50c 100644 --- a/pkgs/by-name/pc/pcsx2/package.nix +++ b/pkgs/by-name/pc/pcsx2/package.nix @@ -36,8 +36,8 @@ let pcsx2_patches = fetchFromGitHub { owner = "PCSX2"; repo = "pcsx2_patches"; - rev = "6448ff90bbf2fddb4498dcfdae0e6d3ec8c23479"; - hash = "sha256-ZXAZekllZHYjfU1q1QrbEdRlRAUAB6VOXLeAfn1GqW0="; + rev = "9b193aa0a61f5e93d3bd4124b111e8f296ef9fa8"; + hash = "sha256-1hhdjFxJCNfeO/FIAnjRHESfiyzkErYddZqpRxzG7VQ="; }; inherit (qt6) @@ -50,13 +50,13 @@ let in llvmPackages.stdenv.mkDerivation (finalAttrs: { pname = "pcsx2"; - version = "2.3.424"; + version = "2.4.0"; src = fetchFromGitHub { pname = "pcsx2-source"; owner = "PCSX2"; repo = "pcsx2"; tag = "v${finalAttrs.version}"; - hash = "sha256-EdFkSsat6O/1tXtJVHOPviseSaixd5LB1TNtfqhqR1E="; + hash = "sha256-R+BdywkZKxR/+Z+o1512O3A1mg9A6s7i+JZjFyUbJVs="; }; patches = [ From e72fbae409b33ff6dfeebb7d4f1fce0708316b8f Mon Sep 17 00:00:00 2001 From: Marcin Serwin Date: Tue, 1 Jul 2025 19:10:26 +0200 Subject: [PATCH 03/72] pcsx2: use wayland by default Matches upstream behaviour as per https://pcsx2.net/blog/2025/pcsx2-2.4_2.2#wayland-by-default. Signed-off-by: Marcin Serwin --- pkgs/by-name/pc/pcsx2/package.nix | 9 --------- 1 file changed, 9 deletions(-) diff --git a/pkgs/by-name/pc/pcsx2/package.nix b/pkgs/by-name/pc/pcsx2/package.nix index 14d528eff50c..61c2f8adba07 100644 --- a/pkgs/by-name/pc/pcsx2/package.nix +++ b/pkgs/by-name/pc/pcsx2/package.nix @@ -15,7 +15,6 @@ libwebp, llvmPackages, lz4, - makeWrapper, pkg-config, qt6, shaderc, @@ -134,14 +133,6 @@ llvmPackages.stdenv.mkDerivation (finalAttrs: { qtWrapperArgs+=("''${gappsWrapperArgs[@]}") ''; - # https://github.com/PCSX2/pcsx2/pull/10200 - # Can't avoid the double wrapping, the binary wrapper from qtWrapperArgs doesn't support --run - postFixup = '' - source "${makeWrapper}/nix-support/setup-hook" - wrapProgram $out/bin/pcsx2-qt \ - --run 'if [[ -z $I_WANT_A_BROKEN_WAYLAND_UI ]]; then export QT_QPA_PLATFORM=xcb; fi' - ''; - passthru = { inherit pcsx2_patches; updateScript.command = [ ./update.sh ]; From 81edb3c9865bbf6a6cbb98337ed0b2e69edfa099 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Wed, 9 Jul 2025 15:50:25 +0200 Subject: [PATCH 04/72] nixos/nextcloud: move phpPackage default into option This allows it to be accessed like options.services.nextcloud.phpPackage.default (cherry picked from commit 5a7afe0a331f97d7dbc65abe38f9a1807d2d753d) --- nixos/modules/services/web-apps/nextcloud.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix index 54cbd2f4a18e..1d0cd68a1b31 100644 --- a/nixos/modules/services/web-apps/nextcloud.nix +++ b/nixos/modules/services/web-apps/nextcloud.nix @@ -436,6 +436,7 @@ in ]; }; phpPackage = mkPackageOption pkgs "php" { + default = [ "php83" ]; example = "php82"; }; @@ -1072,8 +1073,6 @@ in nextcloud31 ); - services.nextcloud.phpPackage = pkgs.php83; - services.nextcloud.phpOptions = mkMerge [ (mapAttrs (const mkOptionDefault) defaultPHPSettings) { From d114362d74ae79e03bb2dc2dc3183924d9d84a71 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 15 Jul 2025 00:37:19 +0000 Subject: [PATCH 05/72] amfora: 1.10.0 -> 1.11.0 --- pkgs/by-name/am/amfora/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/am/amfora/package.nix b/pkgs/by-name/am/amfora/package.nix index 9af81c3cb66a..8a6ee884bd16 100644 --- a/pkgs/by-name/am/amfora/package.nix +++ b/pkgs/by-name/am/amfora/package.nix @@ -7,16 +7,16 @@ buildGoModule rec { pname = "amfora"; - version = "1.10.0"; + version = "1.11.0"; src = fetchFromGitHub { owner = "makeworld-the-better-one"; repo = "amfora"; tag = "v${version}"; - hash = "sha256-KOuKgxH3n4rdF+oj/TwEcRqX1sn4A9e23FNwQMhMVO4="; + hash = "sha256-6nY/wVqhSm+ZLA8ktrgmxoYiHK1r96aNbSf8+1YMXf8="; }; - vendorHash = "sha256-T/hnlQMDOZV+QGl7xp29sBGfb4VXcXqN6PDoBFdpp4M="; + vendorHash = "sha256-zZuFZtG0KKJ29t/9XyjRPIvyZqItxH2KwyKcAx3nuNM="; postInstall = lib.optionalString (!stdenv.hostPlatform.isDarwin) '' sed -i "s:amfora:$out/bin/amfora:" amfora.desktop From f620c2275abc762f1dba815674819c42b80e8392 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 18 Jul 2025 17:02:01 +0000 Subject: [PATCH 06/72] delve: 1.25.0 -> 1.25.1 --- pkgs/by-name/de/delve/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/de/delve/package.nix b/pkgs/by-name/de/delve/package.nix index 7cbef6ba718b..8fb047e049b3 100644 --- a/pkgs/by-name/de/delve/package.nix +++ b/pkgs/by-name/de/delve/package.nix @@ -7,13 +7,13 @@ buildGoModule rec { pname = "delve"; - version = "1.25.0"; + version = "1.25.1"; src = fetchFromGitHub { owner = "go-delve"; repo = "delve"; rev = "v${version}"; - hash = "sha256-bp8pYWS3Vpg0R2Xfe5agDTENzLGu9r43BgORa8VrP+Y="; + hash = "sha256-I7GGpLGhOp29+2V3CSSGnItSwhyrM+2yZxQsGRN812U="; }; patches = [ From cff7ac2122e3b5e9ca7ba4e27e6bd72215e1f31c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 19 Jul 2025 19:35:52 +0000 Subject: [PATCH 07/72] libdwarf: 2.0.0 -> 2.1.0 --- pkgs/by-name/li/libdwarf/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/li/libdwarf/package.nix b/pkgs/by-name/li/libdwarf/package.nix index 6c68ef9c26dc..e98c999f6438 100644 --- a/pkgs/by-name/li/libdwarf/package.nix +++ b/pkgs/by-name/li/libdwarf/package.nix @@ -11,13 +11,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "libdwarf"; - version = "2.0.0"; + version = "2.1.0"; src = fetchFromGitHub { owner = "davea42"; repo = "libdwarf-code"; tag = "v${finalAttrs.version}"; - hash = "sha256-SsFg+7zGBEGxDSzfiIP5bxdttlBkhEiEQWaU12hINas="; + hash = "sha256-Q+ke5vRSBFZirCIBu8M88LzBQW851kjkW4vUgE89ejQ="; }; nativeBuildInputs = [ From 8807211b192e4a26dd74ad706f190a5089c3f4b5 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 19 Jul 2025 20:39:55 +0000 Subject: [PATCH 08/72] quarkus: 3.23.4 -> 3.24.4 --- pkgs/by-name/qu/quarkus/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/qu/quarkus/package.nix b/pkgs/by-name/qu/quarkus/package.nix index f91d1f1bec5e..e0ec3fc63f6d 100644 --- a/pkgs/by-name/qu/quarkus/package.nix +++ b/pkgs/by-name/qu/quarkus/package.nix @@ -8,11 +8,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "quarkus-cli"; - version = "3.23.4"; + version = "3.24.4"; src = fetchurl { url = "https://github.com/quarkusio/quarkus/releases/download/${finalAttrs.version}/quarkus-cli-${finalAttrs.version}.tar.gz"; - hash = "sha256-drN28p+tHCxvVFfBw+nlPZxtiF6sIseiW16/FxwxRLI="; + hash = "sha256-MvLqKqFFrd3EV/9TEhYqn7lArWfNYzUg4UNUSFT2Nek="; }; nativeBuildInputs = [ makeWrapper ]; From 47fd69710510380cdf7df8a569e35adfd1639abd Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Sat, 19 Jul 2025 23:35:01 +0200 Subject: [PATCH 09/72] chroma: 2.15.0 -> 2.19.0 https://github.com/alecthomas/chroma/releases/tag/v2.16.0 https://github.com/alecthomas/chroma/releases/tag/v2.17.0 https://github.com/alecthomas/chroma/releases/tag/v2.17.1 https://github.com/alecthomas/chroma/releases/tag/v2.17.2 https://github.com/alecthomas/chroma/releases/tag/v2.18.0 https://github.com/alecthomas/chroma/releases/tag/v2.19.0 --- pkgs/by-name/ch/chroma/package.nix | 4 ++-- pkgs/by-name/ch/chroma/src.json | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/pkgs/by-name/ch/chroma/package.nix b/pkgs/by-name/ch/chroma/package.nix index 7dd707c5d280..929dbbb88b85 100644 --- a/pkgs/by-name/ch/chroma/package.nix +++ b/pkgs/by-name/ch/chroma/package.nix @@ -10,7 +10,7 @@ in buildGoModule rec { pname = "chroma"; - version = "2.15.0"; + version = "2.19.0"; # To update: # nix-prefetch-git --rev v${version} https://github.com/alecthomas/chroma.git > src.json @@ -21,7 +21,7 @@ buildGoModule rec { inherit (srcInfo) sha256; }; - vendorHash = "sha256:14jg809xz647yv6sc8rnnksg2bpnn75panj8a2kdk2v87yrpq2zr"; + vendorHash = "sha256-Gqldcp68Rn4wkfQptbmKUjkwLSb+qaFboJNfmWVkrPU="; modRoot = "./cmd/chroma"; diff --git a/pkgs/by-name/ch/chroma/src.json b/pkgs/by-name/ch/chroma/src.json index e9cee45b9f29..1a5fd3cf2246 100644 --- a/pkgs/by-name/ch/chroma/src.json +++ b/pkgs/by-name/ch/chroma/src.json @@ -1,10 +1,10 @@ { "url": "https://github.com/alecthomas/chroma.git", - "rev": "009385f9487ee14c8a54e49aaf4331fea0830310", - "date": "2024-12-30T09:27:18+11:00", - "path": "/nix/store/rr2cj4bmlfw803diwyfpbrpai35gifaw-chroma", - "sha256": "088w3aixwfk8s04iyb2mjn3kx5dl3gb9q14jzawabcdy2ar7iijn", - "hash": "sha256-VsZ4shK+saW4+pIEnNYbtJU+h5VVLB8J0Gg63qMaHCE=", + "rev": "adeac8f5dbfb6806a51bcf07eefd89fc8a0aee6a", + "date": "2025-07-01T09:59:45+10:00", + "path": "/nix/store/063ldbczafhxq02g5n28bxr1xnl6fwgd-chroma", + "sha256": "1r50gqbizi7l1l07syx9wgfyx1k8gzspmsbpk42jnwgw3h9dcw42", + "hash": "sha256-gnDWEhz8cSsFmXfpevV/aIbu3eOpe30ADfTEHxd+oOQ=", "fetchLFS": false, "fetchSubmodules": false, "deepClone": false, From b915f0c5c0307c82f7834d683cf81414ce73d01b Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Fri, 25 Apr 2025 10:44:49 +0200 Subject: [PATCH 10/72] systemd: Add functions.escapeSystemdExecArg[s] This makes it available outside the NixOS `utils` context. --- nixos/lib/utils.nix | 26 +-------- pkgs/os-specific/linux/systemd/default.nix | 11 ++++ .../linux/systemd/functions/default.nix | 55 +++++++++++++++++++ .../linux/systemd/functions/test.nix | 23 ++++++++ 4 files changed, 90 insertions(+), 25 deletions(-) create mode 100644 pkgs/os-specific/linux/systemd/functions/default.nix create mode 100644 pkgs/os-specific/linux/systemd/functions/test.nix diff --git a/nixos/lib/utils.nix b/nixos/lib/utils.nix index 251e0460dd03..f0af7b30dec6 100644 --- a/nixos/lib/utils.nix +++ b/nixos/lib/utils.nix @@ -119,31 +119,7 @@ let ) ); - # Quotes an argument for use in Exec* service lines. - # systemd accepts "-quoted strings with escape sequences, toJSON produces - # a subset of these. - # Additionally we escape % to disallow expansion of % specifiers. Any lone ; - # in the input will be turned it ";" and thus lose its special meaning. - # Every $ is escaped to $$, this makes it unnecessary to disable environment - # substitution for the directive. - escapeSystemdExecArg = - arg: - let - s = - if isPath arg then - "${arg}" - else if isString arg then - arg - else if isInt arg || isFloat arg || isDerivation arg then - toString arg - else - throw "escapeSystemdExecArg only allows strings, paths, numbers and derivations"; - in - replaceStrings [ "%" "$" ] [ "%%" "$$" ] (toJSON s); - - # Quotes a list of arguments into a single string for use in a Exec* - # line. - escapeSystemdExecArgs = concatMapStringsSep " " escapeSystemdExecArg; + inherit (config.systemd.package.functions) escapeSystemdExecArg escapeSystemdExecArgs; # Returns a system path for a given shell package toShellPath = diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix index 10808bda7b27..bf0ae846cac2 100644 --- a/pkgs/os-specific/linux/systemd/default.nix +++ b/pkgs/os-specific/linux/systemd/default.nix @@ -897,6 +897,11 @@ stdenv.mkDerivation (finalAttrs: { # needed - and therefore `interfaceVersion` should be incremented. interfaceVersion = 2; + functions = import ./functions/default.nix { + inherit lib; + systemd = finalAttrs.finalPackage; + }; + inherit withBootloader withCryptsetup @@ -1022,6 +1027,12 @@ stdenv.mkDerivation (finalAttrs: { pkgsCross.${systemString}.systemd; pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + + functions = import ./functions/test.nix { + inherit lib; + systemd = finalAttrs.finalPackage; + ok = buildPackages.emptyFile; + }; }; }; diff --git a/pkgs/os-specific/linux/systemd/functions/default.nix b/pkgs/os-specific/linux/systemd/functions/default.nix new file mode 100644 index 000000000000..a61670c1c9e5 --- /dev/null +++ b/pkgs/os-specific/linux/systemd/functions/default.nix @@ -0,0 +1,55 @@ +/** + Build the `systemd.functions` library (where `systemd` is the package) +*/ +{ lib, systemd }: +let + inherit (lib) + concatMapStringsSep + isDerivation + isFloat + isInt + isPath + isString + replaceStrings + ; + inherit (builtins) + toJSON + ; + + /** + Quotes an argument for use in `Exec*` service lines. + Additionally we escape `%` to disallow expansion of `%` specifiers. Any lone `;` + in the input will be turned into `";"` and thus lose its special meaning. + Every `$` is escaped to `$$`, this makes it unnecessary to disable environment + substitution for the directive. + */ + escapeSystemdExecArg = + arg: + let + s = + if isPath arg then + "${arg}" + else if isString arg then + arg + else if isInt arg || isFloat arg || isDerivation arg then + toString arg + else + throw "escapeSystemdExecArg only allows strings, paths, numbers and derivations"; + in + # systemd accepts "-quoted strings with escape sequences, toJSON produces + # a subset of these. + replaceStrings [ "%" "$" ] [ "%%" "$$" ] (toJSON s); + + /** + Quotes a list of arguments into a single string for use in a Exec* line. + */ + escapeSystemdExecArgs = concatMapStringsSep " " escapeSystemdExecArg; +in +# Instead of requiring v2, we can make this library conditional on the version as needed. +assert systemd.interfaceVersion == 2; +{ + inherit + escapeSystemdExecArg + escapeSystemdExecArgs + ; +} diff --git a/pkgs/os-specific/linux/systemd/functions/test.nix b/pkgs/os-specific/linux/systemd/functions/test.nix new file mode 100644 index 000000000000..236c18545cb0 --- /dev/null +++ b/pkgs/os-specific/linux/systemd/functions/test.nix @@ -0,0 +1,23 @@ +{ + lib, + systemd, + ok, +}: + +# This function is also tested in nixosTests.systemd-escaping +assert systemd.functions.escapeSystemdExecArg "hi" == ''"hi"''; +assert systemd.functions.escapeSystemdExecArg "hi there" == ''"hi there"''; +assert systemd.functions.escapeSystemdExecArg ''"hi there"'' == ''"\"hi there\""''; +assert systemd.functions.escapeSystemdExecArg ''"%$'' == ''"\"%%$$"''; +assert + systemd.functions.escapeSystemdExecArgs [ + "hi" + "there" + ] == ''"hi" "there"''; +assert + systemd.functions.escapeSystemdExecArgs [ + "hi" + "%" + "there" + ] == ''"hi" "%%" "there"''; +ok From 1acabeebed483fd8a682eb6b7ef538f5b99d35e2 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Sun, 20 Jul 2025 01:35:12 +0200 Subject: [PATCH 11/72] Add modular services, system.services --- nixos/modules/module-list.nix | 2 + nixos/modules/system/service/README.md | 28 ++++++ .../system/service/portable/service.nix | 58 ++++++++++++ .../modules/system/service/portable/test.nix | 93 +++++++++++++++++++ .../system/service/systemd/service.nix | 79 ++++++++++++++++ .../modules/system/service/systemd/system.nix | 68 ++++++++++++++ nixos/modules/system/service/systemd/test.nix | 89 ++++++++++++++++++ nixos/modules/system/service/systemd/user.nix | 3 + nixos/tests/all-tests.nix | 13 +++ 9 files changed, 433 insertions(+) create mode 100644 nixos/modules/system/service/README.md create mode 100644 nixos/modules/system/service/portable/service.nix create mode 100644 nixos/modules/system/service/portable/test.nix create mode 100644 nixos/modules/system/service/systemd/service.nix create mode 100644 nixos/modules/system/service/systemd/system.nix create mode 100644 nixos/modules/system/service/systemd/test.nix create mode 100644 nixos/modules/system/service/systemd/user.nix diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index e2e04222383f..4962a9bd9437 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -1838,6 +1838,8 @@ ./system/boot/uvesafb.nix ./system/boot/zram-as-tmp.nix ./system/etc/etc-activation.nix + ./system/service/systemd/system.nix + ./system/service/systemd/user.nix ./tasks/auto-upgrade.nix ./tasks/bcache.nix ./tasks/cpu-freq.nix diff --git a/nixos/modules/system/service/README.md b/nixos/modules/system/service/README.md new file mode 100644 index 000000000000..ed0a247267eb --- /dev/null +++ b/nixos/modules/system/service/README.md @@ -0,0 +1,28 @@ + +# Modular Services + +This directory defines a modular service infrastructure for NixOS. +See the [Modular Services chapter] in the manual [[source]](../../doc/manual/development/modular-services.md). + +[Modular Services chapter]: https://nixos.org/manual/nixos/unstable/#modular-services + +# Design decision log + +- `system.services.`. Alternatives considered + - `systemServices`: similar to does not allow importing a composition of services into `system`. Not sure if that's a good idea in the first place, but I've kept the possibility open. + - `services.abstract`: used in https://github.com/NixOS/nixpkgs/pull/267111, but too weird. Service modules should fit naturally into the configuration system. + Also "abstract" is wrong, because it has submodules - in other words, evalModules results, concrete services - not abstract at all. + - `services.modular`: only slightly better than `services.abstract`, but still weird + +- No `daemon.*` options. https://github.com/NixOS/nixpkgs/pull/267111/files#r1723206521 + +- For now, do not add an `enable` option, because it's ambiguous. Does it disable at the Nix level (not generate anything) or at the systemd level (generate a service that is disabled)? + +- Move all process options into a `process` option tree. Putting this at the root is messy, because we also have sub-services at that level. Those are rather distinct. Grouping them "by kind" should raise fewer questions. + +- `modules/system/service/systemd/system.nix` has `system` twice. Not great, but + - they have different meanings + 1. These are system-provided modules, provided by the configuration manager + 2. `systemd/system` configures SystemD _system units_. + - This reserves `modules/service` for actual service modules, at least until those are lifted out of NixOS, potentially + diff --git a/nixos/modules/system/service/portable/service.nix b/nixos/modules/system/service/portable/service.nix new file mode 100644 index 000000000000..58772320abb6 --- /dev/null +++ b/nixos/modules/system/service/portable/service.nix @@ -0,0 +1,58 @@ +{ + lib, + config, + options, + ... +}: +let + inherit (lib) mkOption types; + pathOrStr = types.coercedTo types.path (x: "${x}") types.str; + program = + types.coercedTo ( + types.package + // { + # require mainProgram for this conversion + check = v: v.type or null == "derivation" && v ? meta.mainProgram; + } + ) lib.getExe pathOrStr + // { + description = "main program, path or command"; + descriptionClass = "conjunction"; + }; +in +{ + options = { + services = mkOption { + type = types.attrsOf ( + types.submoduleWith { + modules = [ + ./service.nix + ]; + } + ); + description = '' + A collection of [modular services](https://nixos.org/manual/nixos/unstable/#modular-services) that are configured in one go. + + You could consider the sub-service relationship to be an ownership relation. + It **does not** automatically create any other relationship between services (e.g. systemd slices), unless perhaps such a behavior is explicitly defined and enabled in another option. + ''; + default = { }; + visible = "shallow"; + }; + process = { + executable = mkOption { + type = program; + description = '' + The path to the executable that will be run when the service is started. + ''; + }; + args = lib.mkOption { + type = types.listOf pathOrStr; + description = '' + Arguments to pass to the `executable`. + ''; + default = [ ]; + }; + }; + }; +} diff --git a/nixos/modules/system/service/portable/test.nix b/nixos/modules/system/service/portable/test.nix new file mode 100644 index 000000000000..b4a29122fca7 --- /dev/null +++ b/nixos/modules/system/service/portable/test.nix @@ -0,0 +1,93 @@ +# Run: +# nix-instantiate --eval nixos/modules/system/service/portable/test.nix +let + lib = import ../../../../../lib; + + inherit (lib) mkOption types; + + dummyPkg = + name: + derivation { + system = "dummy"; + name = name; + builder = "/bin/false"; + }; + + exampleConfig = { + _file = "${__curPos.file}:${toString __curPos.line}"; + services = { + service1 = { + process = { + executable = "/usr/bin/echo"; # *giggles* + args = [ "hello" ]; + }; + }; + service2 = { + process = { + # No meta.mainProgram, because it's supposedly an executable script _file_, + # not a directory with a bin directory containing the main program. + executable = dummyPkg "cowsay.sh"; + args = [ "world" ]; + }; + }; + service3 = { + process = { + executable = dummyPkg "cowsay-ng" // { + meta.mainProgram = "cowsay"; + }; + args = [ "!" ]; + }; + }; + }; + }; + + exampleEval = lib.evalModules { + modules = [ + { + options.services = mkOption { + type = types.attrsOf ( + types.submoduleWith { + class = "service"; + modules = [ + ./service.nix + ]; + } + ); + }; + } + exampleConfig + ]; + }; + + test = + assert + exampleEval.config == { + services = { + service1 = { + process = { + executable = "/usr/bin/echo"; + args = [ "hello" ]; + }; + services = { }; + }; + service2 = { + process = { + executable = "${dummyPkg "cowsay.sh"}"; + args = [ "world" ]; + }; + services = { }; + }; + service3 = { + process = { + executable = "${dummyPkg "cowsay-ng"}/bin/cowsay"; + args = [ "!" ]; + }; + services = { }; + }; + }; + }; + + "ok"; + +in +test diff --git a/nixos/modules/system/service/systemd/service.nix b/nixos/modules/system/service/systemd/service.nix new file mode 100644 index 000000000000..5eb3b9e7b038 --- /dev/null +++ b/nixos/modules/system/service/systemd/service.nix @@ -0,0 +1,79 @@ +{ + lib, + config, + systemdPackage, + ... +}: +let + inherit (lib) mkOption types; +in +{ + imports = [ + ../portable/service.nix + (lib.mkAliasOptionModule [ "systemd" "service" ] [ "systemd" "services" "" ]) + (lib.mkAliasOptionModule [ "systemd" "socket" ] [ "systemd" "sockets" "" ]) + ]; + options = { + systemd.services = mkOption { + description = '' + This module configures systemd services, with the notable difference that their unit names will be prefixed with the abstract service name. + + This option's value is not suitable for reading, but you can define a module here that interacts with just the unit configuration in the host system configuration. + + Note that this option contains _deferred_ modules. + This means that the module has not been combined with the system configuration yet, no values can be read from this option. + What you can do instead is define a module that reads from the module arguments (such as `config`) that are available when the module is merged into the system configuration. + ''; + type = types.lazyAttrsOf ( + types.deferredModuleWith { + staticModules = [ + # TODO: Add modules for the purpose of generating documentation? + ]; + } + ); + default = { }; + }; + systemd.sockets = mkOption { + description = '' + Declares systemd socket units. Names will be prefixed by the service name / path. + + See {option}`systemd.services`. + ''; + type = types.lazyAttrsOf types.deferredModule; + default = { }; + }; + + # Also import systemd logic into sub-services + # extends the portable `services` option + services = mkOption { + type = types.attrsOf ( + types.submoduleWith { + class = "service"; + modules = [ + ./service.nix + ]; + specialArgs = { + inherit systemdPackage; + }; + } + ); + }; + }; + config = { + # Note that this is the systemd.services option above, not the system one. + systemd.services."" = { + # TODO description; + wantedBy = lib.mkDefault [ "multi-user.target" ]; + serviceConfig = { + Type = lib.mkDefault "simple"; + Restart = lib.mkDefault "always"; + RestartSec = lib.mkDefault "5"; + ExecStart = [ + (systemdPackage.functions.escapeSystemdExecArgs ( + [ config.process.executable ] ++ config.process.args + )) + ]; + }; + }; + }; +} diff --git a/nixos/modules/system/service/systemd/system.nix b/nixos/modules/system/service/systemd/system.nix new file mode 100644 index 000000000000..9e639921b93a --- /dev/null +++ b/nixos/modules/system/service/systemd/system.nix @@ -0,0 +1,68 @@ +{ + lib, + config, + pkgs, + ... +}: + +let + inherit (lib) concatMapAttrs mkOption types; + + dash = + before: after: + if after == "" then + before + else if before == "" then + after + else + "${before}-${after}"; + + makeUnits = + unitType: prefix: service: + concatMapAttrs (unitName: unitModule: { + "${dash prefix unitName}" = + { ... }: + { + imports = [ unitModule ]; + }; + }) service.systemd.${unitType} + // concatMapAttrs ( + subServiceName: subService: makeUnits unitType (dash prefix subServiceName) subService + ) service.services; +in +{ + # First half of the magic: mix systemd logic into the otherwise abstract services + options = { + system.services = mkOption { + description = '' + A collection of NixOS [modular services](https://nixos.org/manual/nixos/unstable/#modular-services) that are configured as systemd services. + ''; + type = types.attrsOf ( + types.submoduleWith { + class = "service"; + modules = [ + ./service.nix + ]; + specialArgs = { + # perhaps: features."systemd" = { }; + inherit pkgs; + systemdPackage = config.systemd.package; + }; + } + ); + default = { }; + visible = "shallow"; + }; + }; + + # Second half of the magic: siphon units that were defined in isolation to the system + config = { + systemd.services = concatMapAttrs ( + serviceName: topLevelService: makeUnits "services" serviceName topLevelService + ) config.system.services; + + systemd.sockets = concatMapAttrs ( + serviceName: topLevelService: makeUnits "sockets" serviceName topLevelService + ) config.system.services; + }; +} diff --git a/nixos/modules/system/service/systemd/test.nix b/nixos/modules/system/service/systemd/test.nix new file mode 100644 index 000000000000..b393763edbe5 --- /dev/null +++ b/nixos/modules/system/service/systemd/test.nix @@ -0,0 +1,89 @@ +# Run: +# nix-build -A nixosTests.modularService + +{ + evalSystem, + runCommand, + hello, + ... +}: + +let + machine = evalSystem ( + { lib, ... }: + { + + # Test input + + system.services.foo = { + process = { + executable = hello; + args = [ + "--greeting" + "hoi" + ]; + }; + }; + system.services.bar = { + process = { + executable = hello; + args = [ + "--greeting" + "hoi" + ]; + }; + systemd.service = { + serviceConfig.X-Bar = "lol crossbar whatever"; + }; + services.db = { + process = { + executable = hello; + args = [ + "--greeting" + "Hi, I'm a database, would you believe it" + ]; + }; + systemd.service = { + serviceConfig.RestartSec = "42"; + }; + }; + }; + + # irrelevant stuff + system.stateVersion = "25.05"; + fileSystems."/".device = "/test/dummy"; + boot.loader.grub.enable = false; + } + ); + + inherit (machine.config.system.build) toplevel; +in +runCommand "test-modular-service-systemd-units" + { + passthru = { + inherit + machine + toplevel + ; + }; + } + '' + echo ${toplevel}/etc/systemd/system/foo.service: + cat -n ${toplevel}/etc/systemd/system/foo.service + ( + set -x + grep -F 'ExecStart=${hello}/bin/hello --greeting hoi' ${toplevel}/etc/systemd/system/foo.service >/dev/null + + grep -F 'ExecStart=${hello}/bin/hello --greeting hoi' ${toplevel}/etc/systemd/system/bar.service >/dev/null + grep -F 'X-Bar=lol crossbar whatever' ${toplevel}/etc/systemd/system/bar.service >/dev/null + + grep 'ExecStart=${hello}/bin/hello --greeting .*database.*' ${toplevel}/etc/systemd/system/bar-db.service >/dev/null + grep -F 'RestartSec=42' ${toplevel}/etc/systemd/system/bar-db.service >/dev/null + + [[ ! -e ${toplevel}/etc/systemd/system/foo.socket ]] + [[ ! -e ${toplevel}/etc/systemd/system/bar.socket ]] + [[ ! -e ${toplevel}/etc/systemd/system/bar-db.socket ]] + ) + echo 🐬👍 + touch $out + '' diff --git a/nixos/modules/system/service/systemd/user.nix b/nixos/modules/system/service/systemd/user.nix new file mode 100644 index 000000000000..514731233b09 --- /dev/null +++ b/nixos/modules/system/service/systemd/user.nix @@ -0,0 +1,3 @@ +# TBD, analogous to system.nix but for user units +{ +} diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 07ddbf27b7d8..bbd98618e3e7 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -89,6 +89,16 @@ let featureFlags.minimalModules = { }; }; evalMinimalConfig = module: nixosLib.evalModules { modules = [ module ]; }; + evalSystem = + module: + import ../lib/eval-config.nix { + system = null; + modules = [ + ../modules/misc/nixpkgs/read-only.nix + { nixpkgs.pkgs = pkgs; } + module + ]; + }; inherit (rec { @@ -891,6 +901,9 @@ in mjolnir = runTest ./matrix/mjolnir.nix; mobilizon = runTest ./mobilizon.nix; mod_perl = runTest ./mod_perl.nix; + modularService = pkgs.callPackage ../modules/system/service/systemd/test.nix { + inherit evalSystem; + }; molly-brown = runTest ./molly-brown.nix; mollysocket = runTest ./mollysocket.nix; monado = runTest ./monado.nix; From 109a6a9d1e13013a4d3e4220d79d0f599a10ac97 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Sun, 20 Jul 2025 01:35:14 +0200 Subject: [PATCH 12/72] Add assertions and warnings to modular services --- nixos/modules/misc/assertions.nix | 4 +- nixos/modules/system/service/portable/lib.nix | 33 +++++++ .../system/service/portable/service.nix | 5 ++ .../modules/system/service/portable/test.nix | 89 +++++++++++++++++-- .../modules/system/service/systemd/system.nix | 24 ++++- 5 files changed, 147 insertions(+), 8 deletions(-) create mode 100644 nixos/modules/system/service/portable/lib.nix diff --git a/nixos/modules/misc/assertions.nix b/nixos/modules/misc/assertions.nix index 5853f64329c1..ae8fa710b2b8 100644 --- a/nixos/modules/misc/assertions.nix +++ b/nixos/modules/misc/assertions.nix @@ -32,5 +32,7 @@ }; }; - # impl of assertions is in + # impl of assertions is in + # - + # - } diff --git a/nixos/modules/system/service/portable/lib.nix b/nixos/modules/system/service/portable/lib.nix new file mode 100644 index 000000000000..0529f81f8561 --- /dev/null +++ b/nixos/modules/system/service/portable/lib.nix @@ -0,0 +1,33 @@ +{ lib, ... }: +let + inherit (lib) concatLists mapAttrsToList showOption; +in +rec { + flattenMapServicesConfigToList = + f: loc: config: + f loc config + ++ concatLists ( + mapAttrsToList ( + k: v: + flattenMapServicesConfigToList f ( + loc + ++ [ + "services" + k + ] + ) v + ) config.services + ); + + getWarnings = flattenMapServicesConfigToList ( + loc: config: map (msg: "in ${showOption loc}: ${msg}") config.warnings + ); + + getAssertions = flattenMapServicesConfigToList ( + loc: config: + map (ass: { + message = "in ${showOption loc}: ${ass.message}"; + assertion = ass.assertion; + }) config.assertions + ); +} diff --git a/nixos/modules/system/service/portable/service.nix b/nixos/modules/system/service/portable/service.nix index 58772320abb6..d000398b8a6a 100644 --- a/nixos/modules/system/service/portable/service.nix +++ b/nixos/modules/system/service/portable/service.nix @@ -21,6 +21,11 @@ let }; in { + # https://nixos.org/manual/nixos/unstable/#modular-services + _class = "service"; + imports = [ + ../../../misc/assertions.nix + ]; options = { services = mkOption { type = types.attrsOf ( diff --git a/nixos/modules/system/service/portable/test.nix b/nixos/modules/system/service/portable/test.nix index b4a29122fca7..7901ea6965e9 100644 --- a/nixos/modules/system/service/portable/test.nix +++ b/nixos/modules/system/service/portable/test.nix @@ -5,6 +5,8 @@ let inherit (lib) mkOption types; + portable-lib = import ./lib.nix { inherit lib; }; + dummyPkg = name: derivation { @@ -21,6 +23,15 @@ let executable = "/usr/bin/echo"; # *giggles* args = [ "hello" ]; }; + assertions = [ + { + assertion = false; + message = "you can't enable this for that reason"; + } + ]; + warnings = [ + "The `foo' service is deprecated and will go away soon!" + ]; }; service2 = { process = { @@ -32,10 +43,25 @@ let }; service3 = { process = { - executable = dummyPkg "cowsay-ng" // { - meta.mainProgram = "cowsay"; + executable = "/bin/false"; + args = [ ]; + }; + services.exclacow = { + process = { + executable = dummyPkg "cowsay-ng" // { + meta.mainProgram = "cowsay"; + }; + args = [ "!" ]; }; - args = [ "!" ]; + assertions = [ + { + assertion = false; + message = "you can't enable this for such reason"; + } + ]; + warnings = [ + "The `bar' service is deprecated and will go away soon!" + ]; }; }; }; @@ -69,6 +95,15 @@ let args = [ "hello" ]; }; services = { }; + assertions = [ + { + assertion = false; + message = "you can't enable this for that reason"; + } + ]; + warnings = [ + "The `foo' service is deprecated and will go away soon!" + ]; }; service2 = { process = { @@ -76,17 +111,59 @@ let args = [ "world" ]; }; services = { }; + assertions = [ ]; + warnings = [ ]; }; service3 = { process = { - executable = "${dummyPkg "cowsay-ng"}/bin/cowsay"; - args = [ "!" ]; + executable = "/bin/false"; + args = [ ]; }; - services = { }; + services.exclacow = { + process = { + executable = "${dummyPkg "cowsay-ng"}/bin/cowsay"; + args = [ "!" ]; + }; + services = { }; + assertions = [ + { + assertion = false; + message = "you can't enable this for such reason"; + } + ]; + warnings = [ "The `bar' service is deprecated and will go away soon!" ]; + }; + assertions = [ ]; + warnings = [ ]; }; }; }; + assert + portable-lib.getWarnings [ "service1" ] exampleEval.config.services.service1 == [ + "in service1: The `foo' service is deprecated and will go away soon!" + ]; + + assert + portable-lib.getAssertions [ "service1" ] exampleEval.config.services.service1 == [ + { + message = "in service1: you can't enable this for that reason"; + assertion = false; + } + ]; + + assert + portable-lib.getWarnings [ "service3" ] exampleEval.config.services.service3 == [ + "in service3.services.exclacow: The `bar' service is deprecated and will go away soon!" + ]; + assert + portable-lib.getAssertions [ "service3" ] exampleEval.config.services.service3 == [ + { + message = "in service3.services.exclacow: you can't enable this for such reason"; + assertion = false; + } + ]; + "ok"; in diff --git a/nixos/modules/system/service/systemd/system.nix b/nixos/modules/system/service/systemd/system.nix index 9e639921b93a..92bf4d41abe8 100644 --- a/nixos/modules/system/service/systemd/system.nix +++ b/nixos/modules/system/service/systemd/system.nix @@ -1,12 +1,21 @@ { lib, config, + options, pkgs, ... }: let - inherit (lib) concatMapAttrs mkOption types; + inherit (lib) + concatMapAttrs + mkOption + types + concatLists + mapAttrsToList + ; + + portable-lib = import ../portable/lib.nix { inherit lib; }; dash = before: after: @@ -57,6 +66,19 @@ in # Second half of the magic: siphon units that were defined in isolation to the system config = { + + assertions = concatLists ( + mapAttrsToList ( + name: cfg: portable-lib.getAssertions (options.system.services.loc ++ [ name ]) cfg + ) config.system.services + ); + + warnings = concatLists ( + mapAttrsToList ( + name: cfg: portable-lib.getWarnings (options.system.services.loc ++ [ name ]) cfg + ) config.system.services + ); + systemd.services = concatMapAttrs ( serviceName: topLevelService: makeUnits "services" serviceName topLevelService ) config.system.services; From 53f97deb26d3defe67bbe1223efd2c5c4b9def1e Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Sun, 20 Jul 2025 01:35:16 +0200 Subject: [PATCH 13/72] ghostunnel.services.default: init --- nixos/tests/all-tests.nix | 1 + nixos/tests/ghostunnel-modular.nix | 120 +++++++++++++ pkgs/by-name/gh/ghostunnel/package.nix | 6 + pkgs/by-name/gh/ghostunnel/service.nix | 229 +++++++++++++++++++++++++ 4 files changed, 356 insertions(+) create mode 100644 nixos/tests/ghostunnel-modular.nix create mode 100644 pkgs/by-name/gh/ghostunnel/service.nix diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index bbd98618e3e7..7bb31005ff41 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -599,6 +599,7 @@ in gerrit = runTest ./gerrit.nix; geth = runTest ./geth.nix; ghostunnel = runTest ./ghostunnel.nix; + ghostunnel-modular = runTest ./ghostunnel-modular.nix; gitdaemon = runTest ./gitdaemon.nix; gitea = handleTest ./gitea.nix { giteaPackage = pkgs.gitea; }; github-runner = runTest ./github-runner.nix; diff --git a/nixos/tests/ghostunnel-modular.nix b/nixos/tests/ghostunnel-modular.nix new file mode 100644 index 000000000000..a1f17bc03400 --- /dev/null +++ b/nixos/tests/ghostunnel-modular.nix @@ -0,0 +1,120 @@ +{ hostPkgs, lib, ... }: +{ + _class = "nixosTest"; + name = "ghostunnel"; + nodes = { + backend = + { pkgs, ... }: + { + services.nginx.enable = true; + services.nginx.virtualHosts."backend".root = pkgs.runCommand "webroot" { } '' + mkdir $out + echo hi >$out/hi.txt + ''; + networking.firewall.allowedTCPPorts = [ 80 ]; + }; + service = + { pkgs, ... }: + { + system.services."ghostunnel-plain-old" = { + imports = [ pkgs.ghostunnel.services.default ]; + ghostunnel = { + listen = "0.0.0.0:443"; + cert = "/root/service-cert.pem"; + key = "/root/service-key.pem"; + disableAuthentication = true; + target = "backend:80"; + unsafeTarget = true; + }; + }; + system.services."ghostunnel-client-cert" = { + imports = [ pkgs.ghostunnel.services.default ]; + ghostunnel = { + listen = "0.0.0.0:1443"; + cert = "/root/service-cert.pem"; + key = "/root/service-key.pem"; + cacert = "/root/ca.pem"; + target = "backend:80"; + allowCN = [ "client" ]; + unsafeTarget = true; + }; + }; + networking.firewall.allowedTCPPorts = [ + 443 + 1443 + ]; + }; + client = + { pkgs, ... }: + { + environment.systemPackages = [ + pkgs.curl + ]; + }; + }; + + testScript = '' + + # prepare certificates + + def cmd(command): + print(f"+{command}") + r = os.system(command) + if r != 0: + raise Exception(f"Command {command} failed with exit code {r}") + + # Create CA + cmd("${hostPkgs.openssl}/bin/openssl genrsa -out ca-key.pem 4096") + cmd("${hostPkgs.openssl}/bin/openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -subj '/C=NL/ST=Zuid-Holland/L=The Hague/O=Stevige Balken en Planken B.V./OU=OpSec/CN=Certificate Authority' -out ca.pem") + + # Create service + cmd("${hostPkgs.openssl}/bin/openssl genrsa -out service-key.pem 4096") + cmd("${hostPkgs.openssl}/bin/openssl req -subj '/CN=service' -sha256 -new -key service-key.pem -out service.csr") + cmd("echo subjectAltName = DNS:service,IP:127.0.0.1 >> extfile.cnf") + cmd("echo extendedKeyUsage = serverAuth >> extfile.cnf") + cmd("${hostPkgs.openssl}/bin/openssl x509 -req -days 365 -sha256 -in service.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out service-cert.pem -extfile extfile.cnf") + + # Create client + cmd("${hostPkgs.openssl}/bin/openssl genrsa -out client-key.pem 4096") + cmd("${hostPkgs.openssl}/bin/openssl req -subj '/CN=client' -new -key client-key.pem -out client.csr") + cmd("echo extendedKeyUsage = clientAuth > extfile-client.cnf") + cmd("${hostPkgs.openssl}/bin/openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out client-cert.pem -extfile extfile-client.cnf") + + cmd("ls -al") + + start_all() + + # Configuration + service.copy_from_host("ca.pem", "/root/ca.pem") + service.copy_from_host("service-cert.pem", "/root/service-cert.pem") + service.copy_from_host("service-key.pem", "/root/service-key.pem") + client.copy_from_host("ca.pem", "/root/ca.pem") + client.copy_from_host("service-cert.pem", "/root/service-cert.pem") + client.copy_from_host("client-cert.pem", "/root/client-cert.pem") + client.copy_from_host("client-key.pem", "/root/client-key.pem") + + backend.wait_for_unit("nginx.service") + service.wait_for_unit("multi-user.target") + service.wait_for_unit("multi-user.target") + client.wait_for_unit("multi-user.target") + + # Check assumptions before the real test + client.succeed("bash -c 'diff <(curl -v --no-progress-meter http://backend/hi.txt) <(echo hi)'") + + # Plain old simple TLS can connect, ignoring cert + client.succeed("bash -c 'diff <(curl -v --no-progress-meter --insecure https://service/hi.txt) <(echo hi)'") + + # Plain old simple TLS provides correct signature with its cert + client.succeed("bash -c 'diff <(curl -v --no-progress-meter --cacert /root/ca.pem https://service/hi.txt) <(echo hi)'") + + # Client can authenticate with certificate + client.succeed("bash -c 'diff <(curl -v --no-progress-meter --cert /root/client-cert.pem --key /root/client-key.pem --cacert /root/ca.pem https://service:1443/hi.txt) <(echo hi)'") + + # Client must authenticate with certificate + client.fail("bash -c 'diff <(curl -v --no-progress-meter --cacert /root/ca.pem https://service:1443/hi.txt) <(echo hi)'") + ''; + + meta.maintainers = with lib.maintainers; [ + roberth + ]; +} diff --git a/pkgs/by-name/gh/ghostunnel/package.nix b/pkgs/by-name/gh/ghostunnel/package.nix index f99f296c8bbc..a057dd263d39 100644 --- a/pkgs/by-name/gh/ghostunnel/package.nix +++ b/pkgs/by-name/gh/ghostunnel/package.nix @@ -4,6 +4,7 @@ fetchFromGitHub, lib, nixosTests, + ghostunnel, apple-sdk_12, darwinMinVersionHook, }: @@ -39,6 +40,11 @@ buildGoModule rec { podman = nixosTests.podman-tls-ghostunnel; }; + passthru.services.default = { + imports = [ ./service.nix ]; + ghostunnel.package = ghostunnel; # FIXME: finalAttrs.finalPackage + }; + meta = { description = "TLS proxy with mutual authentication support for securing non-TLS backend applications"; homepage = "https://github.com/ghostunnel/ghostunnel#readme"; diff --git a/pkgs/by-name/gh/ghostunnel/service.nix b/pkgs/by-name/gh/ghostunnel/service.nix new file mode 100644 index 000000000000..dbc49478a6cb --- /dev/null +++ b/pkgs/by-name/gh/ghostunnel/service.nix @@ -0,0 +1,229 @@ +{ + lib, + config, + options, + pkgs, + ... +}: +let + inherit (lib) + concatStringsSep + escapeShellArg + mkDefault + mkIf + mkOption + optional + types + ; + cfg = config.ghostunnel; + +in +{ + # https://nixos.org/manual/nixos/unstable/#modular-services + _class = "service"; + options = { + ghostunnel = { + package = mkOption { + description = "Package to use for ghostunnel"; + type = types.package; + }; + + listen = mkOption { + description = '' + Address and port to listen on (can be HOST:PORT, unix:PATH). + ''; + type = types.str; + }; + + target = mkOption { + description = '' + Address to forward connections to (can be HOST:PORT or unix:PATH). + ''; + type = types.str; + }; + + keystore = mkOption { + description = '' + Path to keystore (combined PEM with cert/key, or PKCS12 keystore). + + NB: storepass is not supported because it would expose credentials via `/proc/*/cmdline`. + + Specify this or `cert` and `key`. + ''; + type = types.nullOr types.str; + default = null; + }; + + cert = mkOption { + description = '' + Path to certificate (PEM with certificate chain). + + Not required if `keystore` is set. + ''; + type = types.nullOr types.str; + default = null; + }; + + key = mkOption { + description = '' + Path to certificate private key (PEM with private key). + + Not required if `keystore` is set. + ''; + type = types.nullOr types.str; + default = null; + }; + + cacert = mkOption { + description = '' + Path to CA bundle file (PEM/X509). Uses system trust store if `null`. + ''; + type = types.nullOr types.str; + }; + + disableAuthentication = mkOption { + description = '' + Disable client authentication, no client certificate will be required. + ''; + type = types.bool; + default = false; + }; + + allowAll = mkOption { + description = '' + If true, allow all clients, do not check client cert subject. + ''; + type = types.bool; + default = false; + }; + + allowCN = mkOption { + description = '' + Allow client if common name appears in the list. + ''; + type = types.listOf types.str; + default = [ ]; + }; + + allowOU = mkOption { + description = '' + Allow client if organizational unit name appears in the list. + ''; + type = types.listOf types.str; + default = [ ]; + }; + + allowDNS = mkOption { + description = '' + Allow client if DNS subject alternative name appears in the list. + ''; + type = types.listOf types.str; + default = [ ]; + }; + + allowURI = mkOption { + description = '' + Allow client if URI subject alternative name appears in the list. + ''; + type = types.listOf types.str; + default = [ ]; + }; + + extraArguments = mkOption { + description = "Extra arguments to pass to `ghostunnel server` (shell syntax)"; + type = types.separatedString " "; + default = ""; + }; + + unsafeTarget = mkOption { + description = '' + If set, does not limit target to localhost, 127.0.0.1, [::1], or UNIX sockets. + + This is meant to protect against accidental unencrypted traffic on + untrusted networks. + ''; + type = types.bool; + default = false; + }; + }; + }; + + config = { + assertions = [ + { + message = '' + At least one access control flag is required. + Set at least one of: + - ${options.ghostunnel.disableAuthentication} + - ${options.ghostunnel.allowAll} + - ${options.ghostunnel.allowCN} + - ${options.ghostunnel.allowOU} + - ${options.ghostunnel.allowDNS} + - ${options.ghostunnel.allowURI} + ''; + assertion = + cfg.disableAuthentication + || cfg.allowAll + || cfg.allowCN != [ ] + || cfg.allowOU != [ ] + || cfg.allowDNS != [ ] + || cfg.allowURI != [ ]; + } + ]; + + ghostunnel = { + # Clients should not be authenticated with the public root certificates + # (afaict, it doesn't make sense), so we only provide that default when + # client cert auth is disabled. + cacert = mkIf cfg.disableAuthentication (mkDefault null); + }; + + # TODO assertions + + process = { + executable = pkgs.writeScriptBin "run-ghostunnel" '' + #!${pkgs.runtimeShell} + exec ${lib.getExe cfg.package} ${ + concatStringsSep " " ( + optional (cfg.keystore != null) "--keystore=$CREDENTIALS_DIRECTORY/keystore" + ++ optional (cfg.cert != null) "--cert=$CREDENTIALS_DIRECTORY/cert" + ++ optional (cfg.key != null) "--key=$CREDENTIALS_DIRECTORY/key" + ++ optional (cfg.cacert != null) "--cacert=$CREDENTIALS_DIRECTORY/cacert" + ++ [ + "server" + "--listen" + cfg.listen + "--target" + cfg.target + ] + ++ optional cfg.allowAll "--allow-all" + ++ map (v: "--allow-cn=${escapeShellArg v}") cfg.allowCN + ++ map (v: "--allow-ou=${escapeShellArg v}") cfg.allowOU + ++ map (v: "--allow-dns=${escapeShellArg v}") cfg.allowDNS + ++ map (v: "--allow-uri=${escapeShellArg v}") cfg.allowURI + ++ optional cfg.disableAuthentication "--disable-authentication" + ++ optional cfg.unsafeTarget "--unsafe-target" + ++ [ cfg.extraArguments ] + ) + } + ''; + }; + + # refine the service + systemd.service = { + after = [ "network.target" ]; + wants = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + Restart = "always"; + AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ]; + DynamicUser = true; + LoadCredential = + optional (cfg.keystore != null) "keystore:${cfg.keystore}" + ++ optional (cfg.cert != null) "cert:${cfg.cert}" + ++ optional (cfg.key != null) "key:${cfg.key}" + ++ optional (cfg.cacert != null) "cacert:${cfg.cacert}"; + }; + }; + }; +} From b7ded190104f8b8af63d10355377b094dbc032f1 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Sun, 20 Jul 2025 01:35:19 +0200 Subject: [PATCH 14/72] nixos/doc: Add modular services section --- nixos/doc/manual/default.nix | 34 +++++++ nixos/doc/manual/development/development.md | 1 + .../manual/development/modular-services.md | 91 +++++++++++++++++++ nixos/doc/manual/redirects.json | 18 ++++ .../src/nixos_render_docs/redirects.py | 2 +- 5 files changed, 145 insertions(+), 1 deletion(-) create mode 100644 nixos/doc/manual/development/modular-services.md diff --git a/nixos/doc/manual/default.nix b/nixos/doc/manual/default.nix index cd452d761b9c..33a2e250f0a3 100644 --- a/nixos/doc/manual/default.nix +++ b/nixos/doc/manual/default.nix @@ -15,6 +15,7 @@ let inherit (pkgs) buildPackages runCommand docbook_xsl_ns; inherit (pkgs.lib) + evalModules hasPrefix removePrefix flip @@ -117,8 +118,41 @@ let ${testOptionsDoc.optionsJSON}/${common.outputPath}/options.json sed -e '/@PYTHON_MACHINE_METHODS@/ {' -e 'r ${testDriverMachineDocstrings}/machine-methods.md' -e 'd' -e '}' \ -i ./development/writing-nixos-tests.section.md + substituteInPlace ./development/modular-services.md \ + --replace-fail \ + '@PORTABLE_SERVICE_OPTIONS@' \ + ${portableServiceOptions.optionsJSON}/${common.outputPath}/options.json + substituteInPlace ./development/modular-services.md \ + --replace-fail \ + '@SYSTEMD_SERVICE_OPTIONS@' \ + ${systemdServiceOptions.optionsJSON}/${common.outputPath}/options.json ''; + portableServiceOptions = buildPackages.nixosOptionsDoc { + inherit (evalModules { modules = [ ../../modules/system/service/portable/service.nix ]; }) options; + inherit revision warningsAreErrors; + transformOptions = + opt: + opt + // { + # Clean up declaration sites to not refer to the NixOS source tree. + declarations = map stripAnyPrefixes opt.declarations; + }; + }; + + systemdServiceOptions = buildPackages.nixosOptionsDoc { + inherit (evalModules { modules = [ ../../modules/system/service/systemd/service.nix ]; }) options; + # TODO: filter out options that are not systemd-specific, maybe also change option prefix to just `service-opt-`? + inherit revision warningsAreErrors; + transformOptions = + opt: + opt + // { + # Clean up declaration sites to not refer to the NixOS source tree. + declarations = map stripAnyPrefixes opt.declarations; + }; + }; + in rec { inherit (optionsDoc) optionsJSON optionsNix optionsDocBook; diff --git a/nixos/doc/manual/development/development.md b/nixos/doc/manual/development/development.md index 76f405c3b29c..37762afb41da 100644 --- a/nixos/doc/manual/development/development.md +++ b/nixos/doc/manual/development/development.md @@ -12,4 +12,5 @@ writing-documentation.chapter.md nixos-tests.chapter.md developing-the-test-driver.chapter.md testing-installer.chapter.md +modular-services.md ``` diff --git a/nixos/doc/manual/development/modular-services.md b/nixos/doc/manual/development/modular-services.md new file mode 100644 index 000000000000..e0b9a1d9c3f8 --- /dev/null +++ b/nixos/doc/manual/development/modular-services.md @@ -0,0 +1,91 @@ + +# Modular Services {#modular-services} + +Status: in development. This functionality is new in NixOS 25.05, and significant changes should be expected. We'd love to hear your feedback in + +Traditionally, NixOS services were defined using sets of options *in* modules, not *as* modules. This made them non-modular, resulting in problems with composability, reuse, and portability. + +A *modular service* is a [module] that defines values for a core set of options, including which program to run. + +NixOS provides two options into which such modules can be plugged: + +- `system.services.` +- an option for user services (TBD) + +Crucially, these options have the type [`attrsOf`] [`submodule`]. +The name of the service is the attribute name corresponding to `attrsOf`. + +The `submodule` is pre-loaded with two modules: +- a generic module that is intended to be portable +- a module with systemd-specific options, whose values or defaults derive from the generic module's option values. + +So note that the default value of `system.services.` is not a complete service. It requires that the user provide a value, and this is typically done by importing a module. For example: + + +```nix +{ + system.services.httpd = { + imports = [ nixpkgs.modules.services.foo ]; + foo.settings = { + # ... + }; + }; +} +``` + +## Portability {#modular-service-portability} + +It is possible to write service modules that are portable. This is done by either avoiding the `systemd` option tree, or by defining process-manager-specific definitions in an optional way: + +```nix +{ config, options, lib, ... }: { + _class = "service"; + config = { + process.executable = "${lib.getExe config.foo.program}"; + } // lib.optionalAttrs (options?systemd) { + # ... systemd-specific definitions ... + }; +} +``` + +This way, the module can be loaded into a configuration manager that does not use systemd, and the `systemd` definitions will be ignored. +Similarly, other configuration managers can declare their own options for services to customize. + +## Composition and Ownership {#modular-service-composition} + +Compared to traditional services, modular services are inherently more composable, by virtue of being modules and receiving a user-provided name when imported. +However, composition can not end there, because services need to be able to interact with each other. +This can be achieved in two ways: +1. Users can link services together by providing the necessary NixOS configuration. +2. Services can be compositions of other services. + +These aren't mutually exclusive. In fact, it is a good practice when developing services to first write them as individual services, and then compose them into a higher-level composition. Each of these services is a valid modular service, including their composition. + +## Migration {#modular-service-migration} + +Many services could be migrated to the modular service system, but even when the modular service system is mature, it is not necessary to migrate all services. +For instance, many system-wide services are a mandatory part of a desktop system, and it doesn't make sense to have multiple instances of them. +Moving their logic into separate Nix files may still be beneficial for the efficient evaluation of configurations that don't use those services, but that is a rather minor benefit, unless modular services potentially become the standard way to define services. + + + +## Portable Service Options {#modular-service-options-portable} + +```{=include=} options +id-prefix: service-opt- +list-id: service-options +source: @PORTABLE_SERVICE_OPTIONS@ +``` + +## Systemd-specific Service Options {#modular-service-options-systemd} + +```{=include=} options +id-prefix: systemd-service-opt- +list-id: systemd-service-options +source: @SYSTEMD_SERVICE_OPTIONS@ +``` + +[module]: https://nixos.org/manual/nixpkgs/stable/index.html#module-system + +[`attrsOf`]: #sec-option-types-composed +[`submodule`]: #sec-option-types-submodule diff --git a/nixos/doc/manual/redirects.json b/nixos/doc/manual/redirects.json index e08b4d31c36c..d15121c50b0a 100644 --- a/nixos/doc/manual/redirects.json +++ b/nixos/doc/manual/redirects.json @@ -11,6 +11,24 @@ "book-nixos-manual": [ "index.html#book-nixos-manual" ], + "modular-service-composition": [ + "index.html#modular-service-composition" + ], + "modular-service-migration": [ + "index.html#modular-service-migration" + ], + "modular-service-options-portable": [ + "index.html#modular-service-options-portable" + ], + "modular-service-options-systemd": [ + "index.html#modular-service-options-systemd" + ], + "modular-service-portability": [ + "index.html#modular-service-portability" + ], + "modular-services": [ + "index.html#modular-services" + ], "module-services-anubis": [ "index.html#module-services-anubis" ], diff --git a/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/redirects.py b/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/redirects.py index ba338edeb17a..a9e082c4c370 100644 --- a/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/redirects.py +++ b/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/redirects.py @@ -94,7 +94,7 @@ class Redirects: - The first element of an identifier's redirects list must denote its current location. """ xref_targets = {} - ignored_identifier_patterns = ("opt-", "auto-generated-", "function-library-") + ignored_identifier_patterns = ("opt-", "auto-generated-", "function-library-", "service-opt-", "systemd-service-opt") for id, target in initial_xref_targets.items(): # filter out automatically generated identifiers from module options and library documentation if id.startswith(ignored_identifier_patterns): From 7d7b678ed6664f42223e05113e596e0947bb1a04 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Sun, 20 Jul 2025 01:35:21 +0200 Subject: [PATCH 15/72] nixos/doc/modular-services: Explain configuration mgmt framework Co-authored-by: Valentin Gagarin --- nixos/doc/manual/development/modular-services.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/nixos/doc/manual/development/modular-services.md b/nixos/doc/manual/development/modular-services.md index e0b9a1d9c3f8..499716774ebb 100644 --- a/nixos/doc/manual/development/modular-services.md +++ b/nixos/doc/manual/development/modular-services.md @@ -5,7 +5,14 @@ Status: in development. This functionality is new in NixOS 25.05, and significan Traditionally, NixOS services were defined using sets of options *in* modules, not *as* modules. This made them non-modular, resulting in problems with composability, reuse, and portability. -A *modular service* is a [module] that defines values for a core set of options, including which program to run. +A configuration management framework is an application of `evalModules` with the `class` and `specialArgs` input attribute set to particular values. +NixOS is such a configuration management framework, and so are [Home Manager](https://github.com/nix-community/home-manager) and [`nix-darwin`](https://github.com/lnl7/nix-darwin). + +The service management component of a configuration management framework is the set of module options that connects Nix expressions with the underlying service (or process) manager. +For NixOS this is the module wrapping [`systemd`](https://systemd.io/), on `nix-darwin` this is the module wrapping [`launchd`](https://en.wikipedia.org/wiki/Launchd). + +A *modular service* is a [module] that defines values for a core set of options declared in the service management component of a configuration management framework, including which program to run. +Since it's a module, it can be composed with other modules via `imports` to extend its functionality. NixOS provides two options into which such modules can be plugged: From 03c4d4bc664963b488ad575f1993890d8cd9a650 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Sun, 20 Jul 2025 01:35:23 +0200 Subject: [PATCH 16/72] nixos/doc/modular-services: Use package attr in example Without a proper introduction it's really really hard to make sense of the examples, and where values come from; which are arbitrary, which are conventional, which are hard-coded into some part of the framework. Co-authored-by: Valentin Gagarin --- nixos/doc/manual/development/modular-services.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nixos/doc/manual/development/modular-services.md b/nixos/doc/manual/development/modular-services.md index 499716774ebb..62b1d9f2fa4f 100644 --- a/nixos/doc/manual/development/modular-services.md +++ b/nixos/doc/manual/development/modular-services.md @@ -31,8 +31,8 @@ So note that the default value of `system.services.` is not a complete ser ```nix { - system.services.httpd = { - imports = [ nixpkgs.modules.services.foo ]; + system.services.my-service-instance = { + imports = [ pkgs.some-application.services.some-service-module ]; foo.settings = { # ... }; From b9e4118e6dd800509784b16234f43fd8e8fb3470 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Sun, 20 Jul 2025 01:35:24 +0200 Subject: [PATCH 17/72] nixosTests.modularService: adjust quoting expectations --- nixos/modules/system/service/systemd/test.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nixos/modules/system/service/systemd/test.nix b/nixos/modules/system/service/systemd/test.nix index b393763edbe5..ebe1c4e30c47 100644 --- a/nixos/modules/system/service/systemd/test.nix +++ b/nixos/modules/system/service/systemd/test.nix @@ -72,12 +72,12 @@ runCommand "test-modular-service-systemd-units" cat -n ${toplevel}/etc/systemd/system/foo.service ( set -x - grep -F 'ExecStart=${hello}/bin/hello --greeting hoi' ${toplevel}/etc/systemd/system/foo.service >/dev/null + grep -F 'ExecStart="${hello}/bin/hello" "--greeting" "hoi"' ${toplevel}/etc/systemd/system/foo.service >/dev/null - grep -F 'ExecStart=${hello}/bin/hello --greeting hoi' ${toplevel}/etc/systemd/system/bar.service >/dev/null + grep -F 'ExecStart="${hello}/bin/hello" "--greeting" "hoi"' ${toplevel}/etc/systemd/system/bar.service >/dev/null grep -F 'X-Bar=lol crossbar whatever' ${toplevel}/etc/systemd/system/bar.service >/dev/null - grep 'ExecStart=${hello}/bin/hello --greeting .*database.*' ${toplevel}/etc/systemd/system/bar-db.service >/dev/null + grep 'ExecStart="${hello}/bin/hello" "--greeting" ".*database.*"' ${toplevel}/etc/systemd/system/bar-db.service >/dev/null grep -F 'RestartSec=42' ${toplevel}/etc/systemd/system/bar-db.service >/dev/null [[ ! -e ${toplevel}/etc/systemd/system/foo.socket ]] From af04a80c7627a83e2c0eaf71b44c4a71397a6201 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Sun, 20 Jul 2025 01:35:26 +0200 Subject: [PATCH 18/72] modular-services: merge process.argv from executable and args --- .../manual/development/modular-services.md | 2 +- .../system/service/portable/service.nix | 27 ++----- .../modules/system/service/portable/test.nix | 49 ++++++++----- .../system/service/systemd/service.nix | 4 +- nixos/modules/system/service/systemd/test.nix | 15 ++-- pkgs/by-name/gh/ghostunnel/service.nix | 70 +++++++++++-------- 6 files changed, 89 insertions(+), 78 deletions(-) diff --git a/nixos/doc/manual/development/modular-services.md b/nixos/doc/manual/development/modular-services.md index 62b1d9f2fa4f..63a24666ce26 100644 --- a/nixos/doc/manual/development/modular-services.md +++ b/nixos/doc/manual/development/modular-services.md @@ -48,7 +48,7 @@ It is possible to write service modules that are portable. This is done by eithe { config, options, lib, ... }: { _class = "service"; config = { - process.executable = "${lib.getExe config.foo.program}"; + process.argv = [ (lib.getExe config.foo.program) ]; } // lib.optionalAttrs (options?systemd) { # ... systemd-specific definitions ... }; diff --git a/nixos/modules/system/service/portable/service.nix b/nixos/modules/system/service/portable/service.nix index d000398b8a6a..b62b23e09a67 100644 --- a/nixos/modules/system/service/portable/service.nix +++ b/nixos/modules/system/service/portable/service.nix @@ -7,18 +7,6 @@ let inherit (lib) mkOption types; pathOrStr = types.coercedTo types.path (x: "${x}") types.str; - program = - types.coercedTo ( - types.package - // { - # require mainProgram for this conversion - check = v: v.type or null == "derivation" && v ? meta.mainProgram; - } - ) lib.getExe pathOrStr - // { - description = "main program, path or command"; - descriptionClass = "conjunction"; - }; in { # https://nixos.org/manual/nixos/unstable/#modular-services @@ -45,18 +33,15 @@ in visible = "shallow"; }; process = { - executable = mkOption { - type = program; - description = '' - The path to the executable that will be run when the service is started. - ''; - }; - args = lib.mkOption { + argv = lib.mkOption { type = types.listOf pathOrStr; + example = lib.literalExpression ''[ (lib.getExe config.package) "--nobackground" ]''; description = '' - Arguments to pass to the `executable`. + Command filename and arguments for starting this service. + This is a raw command-line that should not contain any shell escaping. + If expansion of environmental variables is required then use + a shell script or `importas` from `pkgs.execline`. ''; - default = [ ]; }; }; }; diff --git a/nixos/modules/system/service/portable/test.nix b/nixos/modules/system/service/portable/test.nix index 7901ea6965e9..5f78208dc4eb 100644 --- a/nixos/modules/system/service/portable/test.nix +++ b/nixos/modules/system/service/portable/test.nix @@ -20,8 +20,10 @@ let services = { service1 = { process = { - executable = "/usr/bin/echo"; # *giggles* - args = [ "hello" ]; + argv = [ + "/usr/bin/echo" # *giggles* + "hello" + ]; }; assertions = [ { @@ -37,21 +39,27 @@ let process = { # No meta.mainProgram, because it's supposedly an executable script _file_, # not a directory with a bin directory containing the main program. - executable = dummyPkg "cowsay.sh"; - args = [ "world" ]; + argv = [ + (dummyPkg "cowsay.sh") + "world" + ]; }; }; service3 = { process = { - executable = "/bin/false"; - args = [ ]; + argv = [ "/bin/false" ]; }; services.exclacow = { process = { - executable = dummyPkg "cowsay-ng" // { - meta.mainProgram = "cowsay"; - }; - args = [ "!" ]; + argv = [ + (lib.getExe ( + dummyPkg "cowsay-ng" + // { + meta.mainProgram = "cowsay"; + } + )) + "!" + ]; }; assertions = [ { @@ -91,8 +99,10 @@ let services = { service1 = { process = { - executable = "/usr/bin/echo"; - args = [ "hello" ]; + argv = [ + "/usr/bin/echo" + "hello" + ]; }; services = { }; assertions = [ @@ -107,8 +117,10 @@ let }; service2 = { process = { - executable = "${dummyPkg "cowsay.sh"}"; - args = [ "world" ]; + argv = [ + "${dummyPkg "cowsay.sh"}" + "world" + ]; }; services = { }; assertions = [ ]; @@ -116,13 +128,14 @@ let }; service3 = { process = { - executable = "/bin/false"; - args = [ ]; + argv = [ "/bin/false" ]; }; services.exclacow = { process = { - executable = "${dummyPkg "cowsay-ng"}/bin/cowsay"; - args = [ "!" ]; + argv = [ + "${dummyPkg "cowsay-ng"}/bin/cowsay" + "!" + ]; }; services = { }; assertions = [ diff --git a/nixos/modules/system/service/systemd/service.nix b/nixos/modules/system/service/systemd/service.nix index 5eb3b9e7b038..83f7a58e0deb 100644 --- a/nixos/modules/system/service/systemd/service.nix +++ b/nixos/modules/system/service/systemd/service.nix @@ -69,9 +69,7 @@ in Restart = lib.mkDefault "always"; RestartSec = lib.mkDefault "5"; ExecStart = [ - (systemdPackage.functions.escapeSystemdExecArgs ( - [ config.process.executable ] ++ config.process.args - )) + (systemdPackage.functions.escapeSystemdExecArgs config.process.argv) ]; }; }; diff --git a/nixos/modules/system/service/systemd/test.nix b/nixos/modules/system/service/systemd/test.nix index ebe1c4e30c47..70d1b17d1a6d 100644 --- a/nixos/modules/system/service/systemd/test.nix +++ b/nixos/modules/system/service/systemd/test.nix @@ -11,14 +11,17 @@ let machine = evalSystem ( { lib, ... }: + let + hello' = lib.getExe hello; + in { # Test input system.services.foo = { process = { - executable = hello; - args = [ + argv = [ + hello' "--greeting" "hoi" ]; @@ -26,8 +29,8 @@ let }; system.services.bar = { process = { - executable = hello; - args = [ + argv = [ + hello' "--greeting" "hoi" ]; @@ -37,8 +40,8 @@ let }; services.db = { process = { - executable = hello; - args = [ + argv = [ + hello' "--greeting" "Hi, I'm a database, would you believe it" ]; diff --git a/pkgs/by-name/gh/ghostunnel/service.nix b/pkgs/by-name/gh/ghostunnel/service.nix index dbc49478a6cb..218b783629b2 100644 --- a/pkgs/by-name/gh/ghostunnel/service.nix +++ b/pkgs/by-name/gh/ghostunnel/service.nix @@ -8,7 +8,7 @@ let inherit (lib) concatStringsSep - escapeShellArg + getExe mkDefault mkIf mkOption @@ -130,9 +130,9 @@ in }; extraArguments = mkOption { - description = "Extra arguments to pass to `ghostunnel server` (shell syntax)"; - type = types.separatedString " "; - default = ""; + description = "Extra arguments to pass to `ghostunnel server`"; + type = types.listOf types.str; + default = [ ]; }; unsafeTarget = mkOption { @@ -181,32 +181,44 @@ in # TODO assertions process = { - executable = pkgs.writeScriptBin "run-ghostunnel" '' - #!${pkgs.runtimeShell} - exec ${lib.getExe cfg.package} ${ - concatStringsSep " " ( - optional (cfg.keystore != null) "--keystore=$CREDENTIALS_DIRECTORY/keystore" - ++ optional (cfg.cert != null) "--cert=$CREDENTIALS_DIRECTORY/cert" - ++ optional (cfg.key != null) "--key=$CREDENTIALS_DIRECTORY/key" - ++ optional (cfg.cacert != null) "--cacert=$CREDENTIALS_DIRECTORY/cacert" - ++ [ - "server" - "--listen" - cfg.listen - "--target" - cfg.target - ] - ++ optional cfg.allowAll "--allow-all" - ++ map (v: "--allow-cn=${escapeShellArg v}") cfg.allowCN - ++ map (v: "--allow-ou=${escapeShellArg v}") cfg.allowOU - ++ map (v: "--allow-dns=${escapeShellArg v}") cfg.allowDNS - ++ map (v: "--allow-uri=${escapeShellArg v}") cfg.allowURI - ++ optional cfg.disableAuthentication "--disable-authentication" - ++ optional cfg.unsafeTarget "--unsafe-target" - ++ [ cfg.extraArguments ] + argv = + # Use a shell if credentials need to be pulled from the environment. + optional + (builtins.any (v: v != null) [ + cfg.keystore + cfg.cert + cfg.key + cfg.cacert + ]) + ( + pkgs.writeScript "load-credentials" '' + #!${pkgs.runtimeShell} + exec $@ ${ + concatStringsSep " " ( + optional (cfg.keystore != null) "--keystore=$CREDENTIALS_DIRECTORY/keystore" + ++ optional (cfg.cert != null) "--cert=$CREDENTIALS_DIRECTORY/cert" + ++ optional (cfg.key != null) "--key=$CREDENTIALS_DIRECTORY/key" + ++ optional (cfg.cacert != null) "--cacert=$CREDENTIALS_DIRECTORY/cacert" + ) + } + '' ) - } - ''; + ++ [ + (getExe cfg.package) + "server" + "--listen" + cfg.listen + "--target" + cfg.target + ] + ++ optional cfg.allowAll "--allow-all" + ++ map (v: "--allow-cn=${v}") cfg.allowCN + ++ map (v: "--allow-ou=${v}") cfg.allowOU + ++ map (v: "--allow-dns=${v}") cfg.allowDNS + ++ map (v: "--allow-uri=${v}") cfg.allowURI + ++ optional cfg.disableAuthentication "--disable-authentication" + ++ optional cfg.unsafeTarget "--unsafe-target" + ++ cfg.extraArguments; }; # refine the service From d20a5749486886032aedec736311e4c3d29a48c7 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Sun, 20 Jul 2025 02:47:00 +0200 Subject: [PATCH 19/72] Revert "systemd: Add functions.escapeSystemdExecArg[s]" This reverts commit 121c0d9efad7cf74ccc70ce3e69763e9a8822f3b. --- nixos/lib/utils.nix | 26 ++++++++- pkgs/os-specific/linux/systemd/default.nix | 11 ---- .../linux/systemd/functions/default.nix | 55 ------------------- .../linux/systemd/functions/test.nix | 23 -------- 4 files changed, 25 insertions(+), 90 deletions(-) delete mode 100644 pkgs/os-specific/linux/systemd/functions/default.nix delete mode 100644 pkgs/os-specific/linux/systemd/functions/test.nix diff --git a/nixos/lib/utils.nix b/nixos/lib/utils.nix index f0af7b30dec6..251e0460dd03 100644 --- a/nixos/lib/utils.nix +++ b/nixos/lib/utils.nix @@ -119,7 +119,31 @@ let ) ); - inherit (config.systemd.package.functions) escapeSystemdExecArg escapeSystemdExecArgs; + # Quotes an argument for use in Exec* service lines. + # systemd accepts "-quoted strings with escape sequences, toJSON produces + # a subset of these. + # Additionally we escape % to disallow expansion of % specifiers. Any lone ; + # in the input will be turned it ";" and thus lose its special meaning. + # Every $ is escaped to $$, this makes it unnecessary to disable environment + # substitution for the directive. + escapeSystemdExecArg = + arg: + let + s = + if isPath arg then + "${arg}" + else if isString arg then + arg + else if isInt arg || isFloat arg || isDerivation arg then + toString arg + else + throw "escapeSystemdExecArg only allows strings, paths, numbers and derivations"; + in + replaceStrings [ "%" "$" ] [ "%%" "$$" ] (toJSON s); + + # Quotes a list of arguments into a single string for use in a Exec* + # line. + escapeSystemdExecArgs = concatMapStringsSep " " escapeSystemdExecArg; # Returns a system path for a given shell package toShellPath = diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix index bf0ae846cac2..10808bda7b27 100644 --- a/pkgs/os-specific/linux/systemd/default.nix +++ b/pkgs/os-specific/linux/systemd/default.nix @@ -897,11 +897,6 @@ stdenv.mkDerivation (finalAttrs: { # needed - and therefore `interfaceVersion` should be incremented. interfaceVersion = 2; - functions = import ./functions/default.nix { - inherit lib; - systemd = finalAttrs.finalPackage; - }; - inherit withBootloader withCryptsetup @@ -1027,12 +1022,6 @@ stdenv.mkDerivation (finalAttrs: { pkgsCross.${systemString}.systemd; pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - - functions = import ./functions/test.nix { - inherit lib; - systemd = finalAttrs.finalPackage; - ok = buildPackages.emptyFile; - }; }; }; diff --git a/pkgs/os-specific/linux/systemd/functions/default.nix b/pkgs/os-specific/linux/systemd/functions/default.nix deleted file mode 100644 index a61670c1c9e5..000000000000 --- a/pkgs/os-specific/linux/systemd/functions/default.nix +++ /dev/null @@ -1,55 +0,0 @@ -/** - Build the `systemd.functions` library (where `systemd` is the package) -*/ -{ lib, systemd }: -let - inherit (lib) - concatMapStringsSep - isDerivation - isFloat - isInt - isPath - isString - replaceStrings - ; - inherit (builtins) - toJSON - ; - - /** - Quotes an argument for use in `Exec*` service lines. - Additionally we escape `%` to disallow expansion of `%` specifiers. Any lone `;` - in the input will be turned into `";"` and thus lose its special meaning. - Every `$` is escaped to `$$`, this makes it unnecessary to disable environment - substitution for the directive. - */ - escapeSystemdExecArg = - arg: - let - s = - if isPath arg then - "${arg}" - else if isString arg then - arg - else if isInt arg || isFloat arg || isDerivation arg then - toString arg - else - throw "escapeSystemdExecArg only allows strings, paths, numbers and derivations"; - in - # systemd accepts "-quoted strings with escape sequences, toJSON produces - # a subset of these. - replaceStrings [ "%" "$" ] [ "%%" "$$" ] (toJSON s); - - /** - Quotes a list of arguments into a single string for use in a Exec* line. - */ - escapeSystemdExecArgs = concatMapStringsSep " " escapeSystemdExecArg; -in -# Instead of requiring v2, we can make this library conditional on the version as needed. -assert systemd.interfaceVersion == 2; -{ - inherit - escapeSystemdExecArg - escapeSystemdExecArgs - ; -} diff --git a/pkgs/os-specific/linux/systemd/functions/test.nix b/pkgs/os-specific/linux/systemd/functions/test.nix deleted file mode 100644 index 236c18545cb0..000000000000 --- a/pkgs/os-specific/linux/systemd/functions/test.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ - lib, - systemd, - ok, -}: - -# This function is also tested in nixosTests.systemd-escaping -assert systemd.functions.escapeSystemdExecArg "hi" == ''"hi"''; -assert systemd.functions.escapeSystemdExecArg "hi there" == ''"hi there"''; -assert systemd.functions.escapeSystemdExecArg ''"hi there"'' == ''"\"hi there\""''; -assert systemd.functions.escapeSystemdExecArg ''"%$'' == ''"\"%%$$"''; -assert - systemd.functions.escapeSystemdExecArgs [ - "hi" - "there" - ] == ''"hi" "there"''; -assert - systemd.functions.escapeSystemdExecArgs [ - "hi" - "%" - "there" - ] == ''"hi" "%%" "there"''; -ok From b51a6c3531c669c744778eb8c986bd7e9b19dcee Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Sun, 20 Jul 2025 03:00:05 +0200 Subject: [PATCH 20/72] nixos/system/service: Use copy of escapeSystemdExecArgs This unblocks modular services while providing opportunity to improve this when a solution is agreed on. --- .../system/service/systemd/service.nix | 48 ++++++++++++++++++- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/nixos/modules/system/service/systemd/service.nix b/nixos/modules/system/service/systemd/service.nix index 83f7a58e0deb..9ba9bb7bf3f2 100644 --- a/nixos/modules/system/service/systemd/service.nix +++ b/nixos/modules/system/service/systemd/service.nix @@ -5,7 +5,51 @@ ... }: let - inherit (lib) mkOption types; + inherit (lib) + concatMapStringsSep + isDerivation + isInt + isFloat + isPath + isString + mkOption + replaceStrings + types + ; + inherit (builtins) toJSON; + + # Local copy of systemd exec argument escaping function. + # TODO: This could perhaps be deduplicated, but it is unclear where it should go. + # Preferably, we don't create a hard dependency on NixOS here, so that this + # module can be reused in a non-NixOS context, such as mutaable services + # in /run/systemd/system. + + # Quotes an argument for use in Exec* service lines. + # systemd accepts "-quoted strings with escape sequences, toJSON produces + # a subset of these. + # Additionally we escape % to disallow expansion of % specifiers. Any lone ; + # in the input will be turned it ";" and thus lose its special meaning. + # Every $ is escaped to $$, this makes it unnecessary to disable environment + # substitution for the directive. + escapeSystemdExecArg = + arg: + let + s = + if isPath arg then + "${arg}" + else if isString arg then + arg + else if isInt arg || isFloat arg || isDerivation arg then + toString arg + else + throw "escapeSystemdExecArg only allows strings, paths, numbers and derivations"; + in + replaceStrings [ "%" "$" ] [ "%%" "$$" ] (toJSON s); + + # Quotes a list of arguments into a single string for use in a Exec* + # line. + escapeSystemdExecArgs = concatMapStringsSep " " escapeSystemdExecArg; + in { imports = [ @@ -69,7 +113,7 @@ in Restart = lib.mkDefault "always"; RestartSec = lib.mkDefault "5"; ExecStart = [ - (systemdPackage.functions.escapeSystemdExecArgs config.process.argv) + (escapeSystemdExecArgs config.process.argv) ]; }; }; From 1f4e47626931468baeff906a38122af052d1e53a Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Sun, 20 Jul 2025 03:19:28 +0200 Subject: [PATCH 21/72] nixos/doc: Modular services introduction is formally 25.11 I think we should backport it nonetheless. --- nixos/doc/manual/development/modular-services.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/doc/manual/development/modular-services.md b/nixos/doc/manual/development/modular-services.md index 63a24666ce26..eadead5c4a40 100644 --- a/nixos/doc/manual/development/modular-services.md +++ b/nixos/doc/manual/development/modular-services.md @@ -1,7 +1,7 @@ # Modular Services {#modular-services} -Status: in development. This functionality is new in NixOS 25.05, and significant changes should be expected. We'd love to hear your feedback in +Status: in development. This functionality is new in NixOS 25.11, and significant changes should be expected. We'd love to hear your feedback in Traditionally, NixOS services were defined using sets of options *in* modules, not *as* modules. This made them non-modular, resulting in problems with composability, reuse, and portability. From 6986305661060adc8e07e7de16ee54ebd1077e1a Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Sun, 20 Jul 2025 10:25:06 +0200 Subject: [PATCH 22/72] libinput: mark unavailable for static --- pkgs/development/libraries/libinput/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/development/libraries/libinput/default.nix b/pkgs/development/libraries/libinput/default.nix index 65d896214017..bd7e94e08afb 100644 --- a/pkgs/development/libraries/libinput/default.nix +++ b/pkgs/development/libraries/libinput/default.nix @@ -150,5 +150,9 @@ stdenv.mkDerivation rec { maintainers = with maintainers; [ codyopel ]; teams = [ teams.freedesktop ]; changelog = "https://gitlab.freedesktop.org/libinput/libinput/-/releases/${version}"; + badPlatforms = [ + # Mandatory shared library. + lib.systems.inspect.platformPatterns.isStatic + ]; }; } From 8864720898fd57880e0996a09a9183823cbb3430 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Sun, 20 Jul 2025 10:25:47 +0200 Subject: [PATCH 23/72] libwacom: mark unavailable for static --- pkgs/by-name/li/libwacom/package.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/by-name/li/libwacom/package.nix b/pkgs/by-name/li/libwacom/package.nix index 5132dd488156..193b3f9bc3c4 100644 --- a/pkgs/by-name/li/libwacom/package.nix +++ b/pkgs/by-name/li/libwacom/package.nix @@ -82,5 +82,9 @@ stdenv.mkDerivation (finalAttrs: { description = "Libraries, configuration, and diagnostic tools for Wacom tablets running under Linux"; teams = [ lib.teams.freedesktop ]; license = lib.licenses.hpnd; + badPlatforms = [ + # Mandatory shared library. + lib.systems.inspect.platformPatterns.isStatic + ]; }; }) From 448180a73aa931226d8cc7d2d29796a63ed187b2 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 20 Jul 2025 08:36:16 +0000 Subject: [PATCH 24/72] maa-assistant-arknights: 5.18.3 -> 5.20.0 --- pkgs/by-name/ma/maa-assistant-arknights/pin.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/ma/maa-assistant-arknights/pin.json b/pkgs/by-name/ma/maa-assistant-arknights/pin.json index dd5286e659bd..d127dafdb1fb 100644 --- a/pkgs/by-name/ma/maa-assistant-arknights/pin.json +++ b/pkgs/by-name/ma/maa-assistant-arknights/pin.json @@ -1,10 +1,10 @@ { "stable": { - "version": "5.18.3", - "hash": "sha256-we4mWtMemszIpTehk74hbqjisX1vTk94tLdGGNiz4c8=" + "version": "5.20.0", + "hash": "sha256-XqzCxzmNJHG+aYBJoeAAryFx3XctrGBk6QqoonCbrWU=" }, "beta": { - "version": "5.18.3", - "hash": "sha256-we4mWtMemszIpTehk74hbqjisX1vTk94tLdGGNiz4c8=" + "version": "5.20.0", + "hash": "sha256-XqzCxzmNJHG+aYBJoeAAryFx3XctrGBk6QqoonCbrWU=" } } From 60dbe2fc241b8df7a3ae7aa038c779082b0e302a Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 21 Jul 2025 12:36:29 +0000 Subject: [PATCH 25/72] wofi: 1.4.1 -> 1.5 --- pkgs/by-name/wo/wofi/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/wo/wofi/package.nix b/pkgs/by-name/wo/wofi/package.nix index 587ac8d03732..60e345f986cb 100644 --- a/pkgs/by-name/wo/wofi/package.nix +++ b/pkgs/by-name/wo/wofi/package.nix @@ -12,13 +12,13 @@ }: stdenv.mkDerivation rec { pname = "wofi"; - version = "1.4.1"; + version = "1.5"; src = fetchFromSourcehut { repo = "wofi"; owner = "~scoopta"; rev = "v${version}"; - sha256 = "sha256-aedoUhVfk8ljmQ23YxVmGZ00dPpRftW2dnRAgXmtV/w="; + sha256 = "sha256-7C4rO1Uf7qmzYAr60auILzYyKrJ//TJzTwU1PrBWdVA="; vc = "hg"; }; From bc46fa357ce9362c9a0dcd42ed9ef765b5b3f6de Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 21 Jul 2025 16:55:03 +0000 Subject: [PATCH 26/72] jami: 20250613.0 -> 20250718.0 --- .../networking/instant-messengers/jami/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/instant-messengers/jami/default.nix b/pkgs/applications/networking/instant-messengers/jami/default.nix index 5524ed9fcf0e..42408ec599b0 100644 --- a/pkgs/applications/networking/instant-messengers/jami/default.nix +++ b/pkgs/applications/networking/instant-messengers/jami/default.nix @@ -68,14 +68,14 @@ stdenv.mkDerivation rec { pname = "jami"; - version = "20250613.0"; + version = "20250718.0"; src = fetchFromGitLab { domain = "git.jami.net"; owner = "savoirfairelinux"; repo = "jami-client-qt"; rev = "stable/${version}"; - hash = "sha256-+6DTbYq50UPSQ+KipXhWje1bZs64wZrS37z2Na1RtN8="; + hash = "sha256-EEiuymfu28bJ6pfBKwlsCGDq7XlKGZYK+2WjPJ+tcxw="; fetchSubmodules = true; }; From 1bfa1a001587112a92e4dcbdab0d28e0dbd2e0fd Mon Sep 17 00:00:00 2001 From: TomaSajt <62384384+TomaSajt@users.noreply.github.com> Date: Tue, 22 Jul 2025 02:46:25 +0200 Subject: [PATCH 27/72] bcc: modernize --- pkgs/by-name/bc/bcc/libbcc-path.patch | 11 ---- pkgs/by-name/bc/bcc/package.nix | 86 ++++++++++++--------------- 2 files changed, 39 insertions(+), 58 deletions(-) delete mode 100644 pkgs/by-name/bc/bcc/libbcc-path.patch diff --git a/pkgs/by-name/bc/bcc/libbcc-path.patch b/pkgs/by-name/bc/bcc/libbcc-path.patch deleted file mode 100644 index 187bb3aadd00..000000000000 --- a/pkgs/by-name/bc/bcc/libbcc-path.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- source.org/src/python/bcc/libbcc.py 2018-05-13 08:35:06.850522883 +0100 -+++ source/src/python/bcc/libbcc.py 2018-05-13 08:36:24.602733151 +0100 -@@ -14,7 +14,7 @@ - - import ctypes as ct - --lib = ct.CDLL("libbcc.so.0", use_errno=True) -+lib = ct.CDLL("@out@/lib/libbcc.so.0", use_errno=True) - - # keep in sync with bpf_common.h - lib.bpf_module_create_b.restype = ct.c_void_p diff --git a/pkgs/by-name/bc/bcc/package.nix b/pkgs/by-name/bc/bcc/package.nix index c45d4b854b7e..27cd51936203 100644 --- a/pkgs/by-name/bc/bcc/package.nix +++ b/pkgs/by-name/bc/bcc/package.nix @@ -16,15 +16,14 @@ nixosTests, python3Packages, readline, - stdenv, + replaceVars, zip, }: python3Packages.buildPythonApplication rec { pname = "bcc"; version = "0.35.0"; - - disabled = !stdenv.hostPlatform.isLinux; + pyproject = false; src = fetchFromGitHub { owner = "iovisor"; @@ -32,12 +31,36 @@ python3Packages.buildPythonApplication rec { tag = "v${version}"; hash = "sha256-eP/VEq7cPALi2oDKAZFQGQ3NExdmcBKyi6ddRZiYmbI="; }; - format = "other"; - buildInputs = with llvmPackages; [ - llvm - llvm.dev - libclang + patches = [ + # This is needed until we fix + # https://github.com/NixOS/nixpkgs/issues/40427 + ./fix-deadlock-detector-import.patch + # Quick & dirty fix for bashreadline + # https://github.com/NixOS/nixpkgs/issues/328743 + ./bashreadline.py-remove-dependency-on-elftools.patch + + (replaceVars ./absolute-ausyscall.patch { + ausyscall = lib.getExe' audit "ausyscall"; + }) + ]; + + build-system = [ python3Packages.setuptools ]; + + dependencies = [ python3Packages.netaddr ]; + + nativeBuildInputs = [ + bison + cmake + flex + llvmPackages.llvm + makeWrapper + zip + ]; + + buildInputs = [ + llvmPackages.llvm + llvmPackages.libclang elfutils luajit netperf @@ -47,45 +70,18 @@ python3Packages.buildPythonApplication rec { libbpf ]; - patches = [ - # This is needed until we fix - # https://github.com/NixOS/nixpkgs/issues/40427 - ./fix-deadlock-detector-import.patch - # Quick & dirty fix for bashreadline - # https://github.com/NixOS/nixpkgs/issues/328743 - ./bashreadline.py-remove-dependency-on-elftools.patch - ]; - - propagatedBuildInputs = [ python3Packages.netaddr ]; - nativeBuildInputs = [ - bison - cmake - flex - llvmPackages.llvm.dev - makeWrapper - python3Packages.setuptools - zip - ]; - cmakeFlags = [ - "-DBCC_KERNEL_MODULES_DIR=/run/booted-system/kernel-modules/lib/modules" - "-DREVISION=${version}" - "-DENABLE_USDT=ON" - "-DENABLE_CPP_API=ON" - "-DCMAKE_USE_LIBBPF_PACKAGE=ON" - "-DENABLE_LIBDEBUGINFOD=OFF" + (lib.cmakeFeature "BCC_KERNEL_MODULES_DIR" "/run/booted-system/kernel-modules/lib/modules") + (lib.cmakeFeature "REVISION" version) + (lib.cmakeBool "ENABLE_USDT" true) + (lib.cmakeBool "ENABLE_CPP_API" true) + (lib.cmakeBool "CMAKE_USE_LIBBPF_PACKAGE" true) + (lib.cmakeBool "ENABLE_LIBDEBUGINFOD" false) ]; - # to replace this executable path: - # https://github.com/iovisor/bcc/blob/master/src/python/bcc/syscall.py#L384 - ausyscall = "${audit}/bin/ausyscall"; - postPatch = '' - substituteAll ${./libbcc-path.patch} ./libbcc-path.patch - patch -p1 < libbcc-path.patch - - substituteAll ${./absolute-ausyscall.patch} ./absolute-ausyscall.patch - patch -p1 < absolute-ausyscall.patch + substituteInPlace src/python/bcc/libbcc.py \ + --replace-fail "libbcc.so.0" "$out/lib/libbcc.so.0" # https://github.com/iovisor/bcc/issues/3996 substituteInPlace src/cc/libbcc.pc.in \ @@ -95,10 +91,6 @@ python3Packages.buildPythonApplication rec { --replace-fail '/bin/bash' '${readline}/lib/libreadline.so' ''; - preInstall = '' - # required for setuptool during install - export PYTHONPATH=$out/${python3Packages.python.sitePackages}:$PYTHONPATH - ''; postInstall = '' mkdir -p $out/bin $out/share rm -r $out/share/bcc/tools/old From 2f35dd680a2d2432f37d2a847c613390a880b708 Mon Sep 17 00:00:00 2001 From: Gliczy <129636582+Gliczy@users.noreply.github.com> Date: Tue, 22 Jul 2025 14:38:09 +0200 Subject: [PATCH 28/72] komikku: 1.81.0 -> 1.82.0 --- pkgs/by-name/ko/komikku/package.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ko/komikku/package.nix b/pkgs/by-name/ko/komikku/package.nix index bbfffa359945..30755a5ecfb2 100644 --- a/pkgs/by-name/ko/komikku/package.nix +++ b/pkgs/by-name/ko/komikku/package.nix @@ -23,7 +23,7 @@ python3.pkgs.buildPythonApplication rec { pname = "komikku"; - version = "1.81.0"; + version = "1.82.0"; pyproject = false; src = fetchFromGitea { @@ -31,7 +31,7 @@ python3.pkgs.buildPythonApplication rec { owner = "valos"; repo = "Komikku"; tag = "v${version}"; - hash = "sha256-k64bcJLKFUMy60a5zj740Pk3lGZ6vKaAv5HOHfoW9p4="; + hash = "sha256-F+RlfnKnMqlPTk1iv79ah/UaEjd7Og+gV1YVsZqkIBk="; }; nativeBuildInputs = [ @@ -65,7 +65,6 @@ python3.pkgs.buildPythonApplication rec { natsort piexif pillow - pillow-heif curl-cffi pygobject3 python-magic From b397288f96d8abbe5cd46e8719c218fcf6b8e109 Mon Sep 17 00:00:00 2001 From: liberodark Date: Tue, 22 Jul 2025 18:31:40 +0200 Subject: [PATCH 29/72] hue-cli: move to by-name --- pkgs/{tools/networking => by-name/hu}/hue-cli/Gemfile | 0 .../{tools/networking => by-name/hu}/hue-cli/Gemfile.lock | 0 pkgs/{tools/networking => by-name/hu}/hue-cli/gemset.nix | 0 .../default.nix => by-name/hu/hue-cli/package.nix} | 8 ++++---- pkgs/top-level/all-packages.nix | 2 -- 5 files changed, 4 insertions(+), 6 deletions(-) rename pkgs/{tools/networking => by-name/hu}/hue-cli/Gemfile (100%) rename pkgs/{tools/networking => by-name/hu}/hue-cli/Gemfile.lock (100%) rename pkgs/{tools/networking => by-name/hu}/hue-cli/gemset.nix (100%) rename pkgs/{tools/networking/hue-cli/default.nix => by-name/hu/hue-cli/package.nix} (76%) diff --git a/pkgs/tools/networking/hue-cli/Gemfile b/pkgs/by-name/hu/hue-cli/Gemfile similarity index 100% rename from pkgs/tools/networking/hue-cli/Gemfile rename to pkgs/by-name/hu/hue-cli/Gemfile diff --git a/pkgs/tools/networking/hue-cli/Gemfile.lock b/pkgs/by-name/hu/hue-cli/Gemfile.lock similarity index 100% rename from pkgs/tools/networking/hue-cli/Gemfile.lock rename to pkgs/by-name/hu/hue-cli/Gemfile.lock diff --git a/pkgs/tools/networking/hue-cli/gemset.nix b/pkgs/by-name/hu/hue-cli/gemset.nix similarity index 100% rename from pkgs/tools/networking/hue-cli/gemset.nix rename to pkgs/by-name/hu/hue-cli/gemset.nix diff --git a/pkgs/tools/networking/hue-cli/default.nix b/pkgs/by-name/hu/hue-cli/package.nix similarity index 76% rename from pkgs/tools/networking/hue-cli/default.nix rename to pkgs/by-name/hu/hue-cli/package.nix index afb732a32e52..20c24f6178d6 100644 --- a/pkgs/tools/networking/hue-cli/default.nix +++ b/pkgs/by-name/hu/hue-cli/package.nix @@ -11,12 +11,12 @@ bundlerApp { passthru.updateScript = bundlerUpdateScript "hue-cli"; - meta = with lib; { + meta = { description = "Command line interface for controlling Philips Hue system's lights and bridge"; homepage = "https://github.com/birkirb/hue-cli"; - license = licenses.mit; - platforms = platforms.unix; - maintainers = with maintainers; [ + license = lib.licenses.mit; + platforms = lib.platforms.unix; + maintainers = with lib.maintainers; [ manveru nicknovitski ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index bdbc642c239a..428c489acb47 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12508,8 +12508,6 @@ with pkgs; hpmyroom = libsForQt5.callPackage ../applications/networking/hpmyroom { }; - hue-cli = callPackage ../tools/networking/hue-cli { }; - hugin = callPackage ../applications/graphics/hugin { wxGTK = wxGTK32; }; From d99ca2b37f1b9eb519a8b1e72e367bcf16522df6 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 23 Jul 2025 00:29:46 +0000 Subject: [PATCH 30/72] libastyle: 3.6.9 -> 3.6.10 --- pkgs/by-name/as/astyle/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/as/astyle/package.nix b/pkgs/by-name/as/astyle/package.nix index 94c9dad7dae8..8277e261b293 100644 --- a/pkgs/by-name/as/astyle/package.nix +++ b/pkgs/by-name/as/astyle/package.nix @@ -9,11 +9,11 @@ stdenv.mkDerivation rec { pname = "astyle"; - version = "3.6.9"; + version = "3.6.10"; src = fetchurl { url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2"; - hash = "sha256-tkRZdlTfW0AIe+SkZyPGUED3zlnzNp8bj2kPnBDKurw="; + hash = "sha256-HW7onAhKk93MKNGgVs2o0cNX0xjvjihEVtnwvSzrS20="; }; nativeBuildInputs = [ cmake ]; From 57a191e6f87b4e48689acecc3a5ee989b3dd0814 Mon Sep 17 00:00:00 2001 From: Konstantin Alekseev Date: Wed, 16 Jul 2025 14:41:50 +0300 Subject: [PATCH 31/72] playwright-driver: fix webkit build fixes #425505 --- pkgs/development/web/playwright/webkit.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkgs/development/web/playwright/webkit.nix b/pkgs/development/web/playwright/webkit.nix index 91eefb5f1b86..b11880ee0ca3 100644 --- a/pkgs/development/web/playwright/webkit.nix +++ b/pkgs/development/web/playwright/webkit.nix @@ -102,7 +102,11 @@ let hash = "sha256-X4fbYTMS+kHfZRbeGzSdBW5jQKw8UN44FEyFRUtw0qo="; }) ]; - postPatch = ""; + postPatch = '' + # Fix multiple definition errors by using C++17 instead of C++11 + substituteInPlace CMakeLists.txt \ + --replace "set(CMAKE_CXX_STANDARD 11)" "set(CMAKE_CXX_STANDARD 17)" + ''; postInstall = ""; cmakeFlags = From 8e82f4fb9891c39178a1e37a98a0c22bb416376b Mon Sep 17 00:00:00 2001 From: Sizhe Zhao Date: Wed, 23 Jul 2025 10:26:57 +0800 Subject: [PATCH 32/72] wechat: 4.0.6.19-29383 -> 4.0.6.25-29387 for darwin --- pkgs/by-name/we/wechat/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/we/wechat/package.nix b/pkgs/by-name/we/wechat/package.nix index ca5db30472f3..d68959fcdf4a 100644 --- a/pkgs/by-name/we/wechat/package.nix +++ b/pkgs/by-name/we/wechat/package.nix @@ -30,14 +30,14 @@ let # https://dldir1.qq.com/weixin/mac/mac-release.xml any-darwin = let - version = "4.0.6.19-29383"; + version = "4.0.6.25-29387"; version' = lib.replaceString "-" "_" version; in { inherit version; src = fetchurl { url = "https://dldir1v6.qq.com/weixin/Universal/Mac/xWeChatMac_universal_${version'}.dmg"; - hash = "sha256-HloG++DGzsxM7C0AbN4PXkkzFdhUhBDcH5Vq+bTUuEE="; + hash = "sha256-vdeUUJdbIxT8tX5Xo9QIzbWTwRjtSXwrNoImMwt5xkY="; }; }; in From ae1aa6751ce85669124f7ad4fd5fd67cb91b52e4 Mon Sep 17 00:00:00 2001 From: Konstantin Alekseev Date: Wed, 23 Jul 2025 05:49:54 +0300 Subject: [PATCH 33/72] playwright: 1.53.1 -> 1.54.1 --- pkgs/by-name/pl/playwright-mcp/package.nix | 6 +++--- .../python-modules/playwright/default.nix | 4 ++-- .../python-modules/playwright/update.sh | 18 +++++++++++++++++- pkgs/development/web/playwright/browsers.json | 16 ++++++++-------- .../web/playwright/chromium-headless-shell.nix | 8 ++++---- pkgs/development/web/playwright/chromium.nix | 8 ++++---- pkgs/development/web/playwright/driver.nix | 8 ++++---- pkgs/development/web/playwright/firefox.nix | 8 ++++---- pkgs/development/web/playwright/webkit.nix | 8 ++++---- 9 files changed, 50 insertions(+), 34 deletions(-) diff --git a/pkgs/by-name/pl/playwright-mcp/package.nix b/pkgs/by-name/pl/playwright-mcp/package.nix index 15c003aff992..b2e74c842769 100644 --- a/pkgs/by-name/pl/playwright-mcp/package.nix +++ b/pkgs/by-name/pl/playwright-mcp/package.nix @@ -8,16 +8,16 @@ buildNpmPackage rec { pname = "playwright-mcp"; - version = "0.0.29"; + version = "0.0.31"; src = fetchFromGitHub { owner = "Microsoft"; repo = "playwright-mcp"; tag = "v${version}"; - hash = "sha256-owSoE3+jSg09dFpM5wv7FJovzsX5ZMp/9IIQhkmSZt0="; + hash = "sha256-Hw4OUZCHoquX6Ixv7GlsHcKxqOdJEQYfuDPzqYkVNAk="; }; - npmDepsHash = "sha256-jweIBhlVci8CFBIYlFp0opc1ilWMcHt0is4qgTiYNcQ="; + npmDepsHash = "sha256-70/t/mgSBwMv9C3VusbjIMMyy3e3npxQLXqKbdL9xa4="; postInstall = '' rm -r $out/lib/node_modules/@playwright/mcp/node_modules/playwright diff --git a/pkgs/development/python-modules/playwright/default.nix b/pkgs/development/python-modules/playwright/default.nix index c3e70e9453e0..e2dd91195502 100644 --- a/pkgs/development/python-modules/playwright/default.nix +++ b/pkgs/development/python-modules/playwright/default.nix @@ -22,7 +22,7 @@ in buildPythonPackage rec { pname = "playwright"; # run ./pkgs/development/python-modules/playwright/update.sh to update - version = "1.53.0"; + version = "1.54.0"; pyproject = true; disabled = pythonOlder "3.9"; @@ -30,7 +30,7 @@ buildPythonPackage rec { owner = "microsoft"; repo = "playwright-python"; tag = "v${version}"; - hash = "sha256-jFS2Luq/9mRsXZ65H3VLw+sTBplVNVy/yZYrpF5Hc0M="; + hash = "sha256-xyuofDL0hWL8Gn4sYNLKte8q/4bMo+3aSbYaf5iWiBk="; }; patches = [ diff --git a/pkgs/development/python-modules/playwright/update.sh b/pkgs/development/python-modules/playwright/update.sh index a7ab9522f0d1..cdd80a84c691 100755 --- a/pkgs/development/python-modules/playwright/update.sh +++ b/pkgs/development/python-modules/playwright/update.sh @@ -22,6 +22,19 @@ repo_url_prefix="https://github.com/microsoft/playwright/raw" temp_dir=$(mktemp -d) trap 'rm -rf "$temp_dir"' EXIT +# Update playwright-mcp package +mcp_version=$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} -s https://api.github.com/repos/microsoft/playwright-mcp/releases/latest | jq -r '.tag_name | sub("^v"; "")') +update-source-version playwright-mcp "$mcp_version" + +# Update npmDepsHash for playwright-mcp +pushd "$temp_dir" >/dev/null +curl -fsSL -o package-lock.json "https://raw.githubusercontent.com/microsoft/playwright-mcp/v${mcp_version}/package-lock.json" +mcp_npm_hash=$(prefetch-npm-deps package-lock.json) +rm -f package-lock.json +popd >/dev/null + +mcp_package_file="$root/../../../by-name/pl/playwright-mcp/package.nix" +sed -E 's#\bnpmDepsHash = ".*?"#npmDepsHash = "'"$mcp_npm_hash"'"#' -i "$mcp_package_file" # update binaries of browsers, used by playwright. @@ -48,6 +61,9 @@ update_browser() { else if [ "$name" = "ffmpeg" ] || [ "$name" = "chromium-headless-shell" ]; then suffix="linux" + elif [ "$name" = "chromium" ]; then + stripRoot="true" + suffix="linux" elif [ "$name" = "firefox" ]; then stripRoot="true" suffix="ubuntu-22.04" @@ -81,7 +97,7 @@ curl -fsSl \ ) ' > "$playwright_dir/browsers.json" -# We currently use Chromium from nixpkgs, so we don't need to download it here +update_browser "chromium" "linux" update_browser "chromium-headless-shell" "linux" update_browser "firefox" "linux" update_browser "webkit" "linux" diff --git a/pkgs/development/web/playwright/browsers.json b/pkgs/development/web/playwright/browsers.json index a79b88d42048..f7155ea875d3 100644 --- a/pkgs/development/web/playwright/browsers.json +++ b/pkgs/development/web/playwright/browsers.json @@ -2,19 +2,19 @@ "comment": "This file is kept up to date via update.sh", "browsers": { "chromium": { - "revision": "1179", - "browserVersion": "138.0.7204.23" + "revision": "1181", + "browserVersion": "139.0.7258.5" }, "chromium-headless-shell": { - "revision": "1179", - "browserVersion": "138.0.7204.23" + "revision": "1181", + "browserVersion": "139.0.7258.5" }, "firefox": { - "revision": "1488", - "browserVersion": "139.0" + "revision": "1489", + "browserVersion": "140.0.2" }, "webkit": { - "revision": "2182", + "revision": "2191", "revisionOverrides": { "debian11-x64": "2105", "debian11-arm64": "2105", @@ -29,7 +29,7 @@ "ubuntu20.04-x64": "2092", "ubuntu20.04-arm64": "2092" }, - "browserVersion": "18.5" + "browserVersion": "26.0" }, "ffmpeg": { "revision": "1011", diff --git a/pkgs/development/web/playwright/chromium-headless-shell.nix b/pkgs/development/web/playwright/chromium-headless-shell.nix index f4ea66e14171..40a8ff2eb832 100644 --- a/pkgs/development/web/playwright/chromium-headless-shell.nix +++ b/pkgs/development/web/playwright/chromium-headless-shell.nix @@ -30,8 +30,8 @@ let stripRoot = false; hash = { - x86_64-linux = "sha256-C545VC0RxFYfKf8XArfVoI2yzrGyfR7vxjryJHfcfBQ="; - aarch64-linux = "sha256-i+HVf/6Qz2nCLLzPxbRYVFjDDOhd5ETYuHje5YsmsAo="; + x86_64-linux = "sha256-AYh2urKZdjXCELimYaFihWp0FbDLf4uRrKLJZVxug5M="; + aarch64-linux = "sha256-diBiy0z51BxGK0PcfQOf1aryUcZesKu/UHBSZUjqwMk="; } .${system} or throwSystem; }; @@ -66,8 +66,8 @@ let stripRoot = false; hash = { - x86_64-darwin = "sha256-2pe1LS3WXRG/V2k/BNN1MmOOdGoA0WCFhUpZW8TUhic="; - aarch64-darwin = "sha256-U07QnHFPQXyO3VGWfZvcP8cJEmVJAJ7imj+6DQlN9vQ="; + x86_64-darwin = "sha256-vIJuDjkasUYlMW0aCOyztyrlh5kvcwNR9GBaoa/yh/M="; + aarch64-darwin = "sha256-6Q6nz0H2749srdMF/puk/gnG1gQBEnWe9cQO3owL2OU="; } .${system} or throwSystem; }; diff --git a/pkgs/development/web/playwright/chromium.nix b/pkgs/development/web/playwright/chromium.nix index 34d24f9cc563..c356023fd3fc 100644 --- a/pkgs/development/web/playwright/chromium.nix +++ b/pkgs/development/web/playwright/chromium.nix @@ -41,8 +41,8 @@ let url = "https://playwright.azureedge.net/builds/chromium/${revision}/chromium-${suffix}.zip"; hash = { - x86_64-linux = "sha256-7oQQCAIt1VJiMNFEJO40K8oENK/L0BICXm2D/3fZ8bA="; - aarch64-linux = "sha256-1OmByLX2jNHXAzWdXF8Od7S7pj/jl4wwvOQcsZc5R7o="; + x86_64-linux = "sha256-R7nMCVpUqgRwtB0syhfIK81maiTVWr8lYBLp4bR8VBg="; + aarch64-linux = "sha256-4fc4X7QwBigktmEeseuqIyEeV70Dy3eO/femXrftMd0="; } .${system} or throwSystem; }; @@ -109,8 +109,8 @@ let stripRoot = false; hash = { - x86_64-darwin = "sha256-KOoCbygsZZzGNKD8ICcGg0iM2h0HVgXq0I4JMPaUJR8="; - aarch64-darwin = "sha256-2naFzKWmo6el+AqljzILO+hUq/E2g81Dt1fwq79EYO8="; + x86_64-darwin = "sha256-0u1AStbUTX+qgUmg2DvL59B4b265WywDaBV+MdSuaNE="; + aarch64-darwin = "sha256-4pg4wmNTF8mw+APmdpvYlFxb9zc6OUh11oW5gCRKETY="; } .${system} or throwSystem; }; diff --git a/pkgs/development/web/playwright/driver.nix b/pkgs/development/web/playwright/driver.nix index cbd8d5ca9ea8..36234e2b0dab 100644 --- a/pkgs/development/web/playwright/driver.nix +++ b/pkgs/development/web/playwright/driver.nix @@ -27,13 +27,13 @@ let } .${system} or throwSystem; - version = "1.53.1"; + version = "1.54.1"; src = fetchFromGitHub { owner = "Microsoft"; repo = "playwright"; rev = "v${version}"; - hash = "sha256-N5BS8zpoQGUf5gly0fyutaK76CAhbwOGAUofGnfkmnM="; + hash = "sha256-xwyREgelHLkpbUXOZTppKK7L6dE4jx0d/lbDWSKGzTY="; }; babel-bundle = buildNpmPackage { @@ -70,7 +70,7 @@ let pname = "utils-bundle-core"; inherit version src; sourceRoot = "${src.name}/packages/playwright-core/bundles/utils"; - npmDepsHash = "sha256-3hdOmvs/IGAgW7vhldms9Q9/ZQfbjbc+xP+JEtGJ7g8="; + npmDepsHash = "sha256-gEm2oTxj4QIiGnIOPffOLh3BYSngpGToF89ObnDYBqs="; dontNpmBuild = true; installPhase = '' cp -r . "$out" @@ -92,7 +92,7 @@ let inherit version src; sourceRoot = "${src.name}"; # update.sh depends on sourceRoot presence - npmDepsHash = "sha256-a1s1l8PG0ViVqYOksB2dkID/AHczMjLNQJW88+yB0B0="; + npmDepsHash = "sha256-4bsX8Q8V3CBpIsyqMYTzfERQQPY5zlPf7CoqR6UkUHU="; nativeBuildInputs = [ cacert diff --git a/pkgs/development/web/playwright/firefox.nix b/pkgs/development/web/playwright/firefox.nix index 92bdc123220a..afc15e970ecc 100644 --- a/pkgs/development/web/playwright/firefox.nix +++ b/pkgs/development/web/playwright/firefox.nix @@ -17,8 +17,8 @@ let }.zip"; hash = { - x86_64-linux = "sha256-L9bIldFCqZ/jnNKkJk6nS0HNaJefzTMQIJ6VLUE9ugc="; - aarch64-linux = "sha256-iuiS59f8j3K+grBU7ZtZPfU4r2Dp7s0JJHf2n/4r30U="; + x86_64-linux = "sha256-j7gOuXMyftNQencgfpk8Y4ED2LuT7TAa30IPyzmir48="; + aarch64-linux = "sha256-deIUGKBrp56TsDr61cbNbRRSRcVpSoa6pdmMk4oB/Eg="; } .${system} or throwSystem; }; @@ -41,8 +41,8 @@ let stripRoot = false; hash = { - x86_64-darwin = "sha256-K0eW1kC1tckJu0crD89hDhK8PHyQUB0YUYN9DdX0HKw="; - aarch64-darwin = "sha256-n1Uy59r6wxmung8QKvw3JeyF3ec/avCVp9fI+bck/iA="; + x86_64-darwin = "sha256-ljgFoyqCg9kma2cDFodNjbkAeEylIzVdWkS1vU/9Rbg="; + aarch64-darwin = "sha256-W2J5APPWEkmoDgBEox6/ygg2xyWpOHZESXFG0tZbj1M="; } .${system} or throwSystem; }; diff --git a/pkgs/development/web/playwright/webkit.nix b/pkgs/development/web/playwright/webkit.nix index b11880ee0ca3..4a290a3703dd 100644 --- a/pkgs/development/web/playwright/webkit.nix +++ b/pkgs/development/web/playwright/webkit.nix @@ -130,8 +130,8 @@ let stripRoot = false; hash = { - x86_64-linux = "sha256-lwH783B3/laqw0IdGBnVzvySRoF0AwZsSolaqUKmsM4="; - aarch64-linux = "sha256-qtvP0bc5rcZcz6SqigfdrjhTWEmvT4k11I1GW1Eoj/Q="; + x86_64-linux = "sha256-OSVHFGdcQrzmhLPdXF61tKmip/6/D+uaQgSBBQiOIZI="; + aarch64-linux = "sha256-b8XwVMCwSbujyqgkJKIPAVNX83Qmmsthprr2x9XSb10="; } .${system} or throwSystem; }; @@ -211,8 +211,8 @@ let stripRoot = false; hash = { - x86_64-darwin = "sha256-p1+Pk+Zhf2OPEmEWCEd0tA7CdoMcOgYp69SnQXufFJ0="; - aarch64-darwin = "sha256-tEfKvJuGe4htZLSOn94eKeBtWXYkjl73iJSY4BWJMKo="; + x86_64-darwin = "sha256-shjhozJS2VbBjpjJVlM9hwBzGWwgva1qhfEUhY8t9Bk="; + aarch64-darwin = "sha256-ZRl86L/OOTNPWfZDl6JQfuXL41kI/Wir99/JIbf7T7M="; } .${system} or throwSystem; }; From 73edf3b170d8919c1aa114bc70fd2ecb72d47a74 Mon Sep 17 00:00:00 2001 From: M0ustach3 <37956764+M0ustach3@users.noreply.github.com> Date: Sat, 19 Jul 2025 18:43:32 +0200 Subject: [PATCH 34/72] pulumi: 3.162.0 -> 3.185.0 --- pkgs/by-name/pu/pulumi/package.nix | 11 ++++++++--- pkgs/by-name/pu/pulumi/plugins/pulumi-go/package.nix | 2 +- .../pu/pulumi/plugins/pulumi-nodejs/package.nix | 2 +- .../pu/pulumi/plugins/pulumi-python/package.nix | 2 +- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/pu/pulumi/package.nix b/pkgs/by-name/pu/pulumi/package.nix index d1557c9dcfa3..5c87d0b63fbd 100644 --- a/pkgs/by-name/pu/pulumi/package.nix +++ b/pkgs/by-name/pu/pulumi/package.nix @@ -17,18 +17,18 @@ }: buildGoModule rec { pname = "pulumi"; - version = "3.162.0"; + version = "3.185.0"; src = fetchFromGitHub { owner = "pulumi"; repo = "pulumi"; tag = "v${version}"; - hash = "sha256-avtqURmj3PL82j89kLmVsBWqJJHnOFqR1huoUESt4L4="; + hash = "sha256-/7VaFeEQXVqF7g+CR2oTSmOWgWjw/LS9s0+VZcSlFvU="; # Some tests rely on checkout directory name name = "pulumi"; }; - vendorHash = "sha256-fJFpwhbRkxSI2iQfNJ9qdL9oYM1SVVMJ30VIymoZBmg="; + vendorHash = "sha256-aAxBVMLL7JRSJSVIR9/gNTNj8sZHg39ftv+ZAO8PS54="; sourceRoot = "${src.name}/pkg"; @@ -81,6 +81,11 @@ buildGoModule rec { "TestPulumiNewWithOrgTemplates" "TestPulumiNewWithoutPulumiAccessToken" "TestPulumiNewWithoutTemplateSupport" + "TestGeneratingProjectWithAIPromptSucceeds" + "TestPulumiNewWithRegistryTemplates" + + # Connects to https://api.pulumi.com/… + "TestGetLatestPluginIncludedVersion" # Connects to https://pulumi-testing.vault.azure.net/… "TestAzureCloudManager" diff --git a/pkgs/by-name/pu/pulumi/plugins/pulumi-go/package.nix b/pkgs/by-name/pu/pulumi/plugins/pulumi-go/package.nix index 2d7c350626ad..687e0f23eb1d 100644 --- a/pkgs/by-name/pu/pulumi/plugins/pulumi-go/package.nix +++ b/pkgs/by-name/pu/pulumi/plugins/pulumi-go/package.nix @@ -9,7 +9,7 @@ buildGoModule rec { sourceRoot = "${src.name}/sdk/go/pulumi-language-go"; - vendorHash = "sha256-3I9Kh3Zqpu0gT0pQNzg2mMwxQUdhEpjITZOrO7Yt50A="; + vendorHash = "sha256-FSkFZhuwbTxCQgES+rFoVeSJHtepZiHEtnfShZ+eSMU="; ldflags = [ "-s" diff --git a/pkgs/by-name/pu/pulumi/plugins/pulumi-nodejs/package.nix b/pkgs/by-name/pu/pulumi/plugins/pulumi-nodejs/package.nix index 0eae02fc2a21..219653344594 100644 --- a/pkgs/by-name/pu/pulumi/plugins/pulumi-nodejs/package.nix +++ b/pkgs/by-name/pu/pulumi/plugins/pulumi-nodejs/package.nix @@ -12,7 +12,7 @@ buildGoModule rec { sourceRoot = "${src.name}/sdk/nodejs/cmd/pulumi-language-nodejs"; - vendorHash = "sha256-UvfSmHWRFRZkmcgzUrLkqktQAt8ZlVDEzP6y+pxUOGc="; + vendorHash = "sha256-q/NKPB5U7z3gPXIV2wCZXBN6QfJ4nMVdLUMcwXJ800Q="; ldflags = [ "-s" diff --git a/pkgs/by-name/pu/pulumi/plugins/pulumi-python/package.nix b/pkgs/by-name/pu/pulumi/plugins/pulumi-python/package.nix index 5930c1ffef81..cfa68ca5d945 100644 --- a/pkgs/by-name/pu/pulumi/plugins/pulumi-python/package.nix +++ b/pkgs/by-name/pu/pulumi/plugins/pulumi-python/package.nix @@ -12,7 +12,7 @@ buildGoModule rec { sourceRoot = "${src.name}/sdk/python/cmd/pulumi-language-python"; - vendorHash = "sha256-5tr3mQ5x6jMOa9meHK6gaoRjNgLoHkWiTiaYXXqmUDo="; + vendorHash = "sha256-oWEl/IeoMya40D62QaYoGiyKcKQZZ008RxR9m/pJ7VU="; ldflags = [ "-s" From cc75e606a3adc0b3135cd1bddcdb81ec0e9e71cb Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Wed, 23 Jul 2025 11:41:03 +0200 Subject: [PATCH 35/72] meshcentral: 1.1.47 -> 1.1.48 ChangeLog: https://github.com/Ylianst/MeshCentral/releases/tag/1.1.48 --- pkgs/tools/admin/meshcentral/default.nix | 8 +- pkgs/tools/admin/meshcentral/package.json | 12 +- pkgs/tools/admin/meshcentral/yarn.lock | 302 +++++++++++----------- 3 files changed, 164 insertions(+), 158 deletions(-) diff --git a/pkgs/tools/admin/meshcentral/default.nix b/pkgs/tools/admin/meshcentral/default.nix index 33fd196ea964..b648830321e0 100644 --- a/pkgs/tools/admin/meshcentral/default.nix +++ b/pkgs/tools/admin/meshcentral/default.nix @@ -8,11 +8,11 @@ }: yarn2nix-moretea.mkYarnPackage { - version = "1.1.47"; + version = "1.1.48"; src = fetchzip { - url = "https://registry.npmjs.org/meshcentral/-/meshcentral-1.1.47.tgz"; - sha256 = "196d2rzmy5caaw42d3az9m4yfwjsgia82g7ic71knamd28q9rab2"; + url = "https://registry.npmjs.org/meshcentral/-/meshcentral-1.1.48.tgz"; + sha256 = "0ns4pp0gswvfpyjzklsh76ych9sv9qjcn50dhain7b6cy6dkrmga"; }; patches = [ @@ -24,7 +24,7 @@ yarn2nix-moretea.mkYarnPackage { offlineCache = fetchYarnDeps { yarnLock = ./yarn.lock; - hash = "sha256-2pU0XhkiDNjkZiXA2S4RMTY4IyVEnsV/vEDtYnPjOfk="; + hash = "sha256-oHY21OMLVyrdJOiV9MarXWnjcKNaKtvUz26xIvVNRsw="; }; # Tarball has CRLF line endings. This makes patching difficult, so let's convert them. diff --git a/pkgs/tools/admin/meshcentral/package.json b/pkgs/tools/admin/meshcentral/package.json index 458ec1ed6b35..5e31c186fd18 100644 --- a/pkgs/tools/admin/meshcentral/package.json +++ b/pkgs/tools/admin/meshcentral/package.json @@ -1,6 +1,6 @@ { "name": "meshcentral", - "version": "1.1.47", + "version": "1.1.48", "keywords": [ "Remote Device Management", "Remote Device Monitoring", @@ -41,8 +41,8 @@ "archiver": "7.0.1", "body-parser": "1.20.3", "cbor": "5.2.0", - "compression": "1.7.5", - "cookie-session": "2.1.0", + "compression": "1.8.1", + "cookie-session": "2.1.1", "express": "4.21.2", "express-handlebars": "7.1.3", "express-ws": "5.0.2", @@ -50,8 +50,8 @@ "minimist": "1.2.8", "multiparty": "4.2.3", "node-forge": "1.3.1", - "ua-parser-js": "1.0.40", "ua-client-hints-js": "0.1.2", + "ua-parser-js": "1.0.40", "ws": "8.18.0", "yauzl": "2.10.0" }, @@ -77,8 +77,8 @@ "archiver": "7.0.1", "body-parser": "1.20.3", "cbor": "5.2.0", - "compression": "1.7.5", - "cookie-session": "2.1.0", + "compression": "1.8.1", + "cookie-session": "2.1.1", "express": "4.21.2", "express-handlebars": "7.1.3", "express-ws": "5.0.2", diff --git a/pkgs/tools/admin/meshcentral/yarn.lock b/pkgs/tools/admin/meshcentral/yarn.lock index c63c14095127..9eb55196e096 100644 --- a/pkgs/tools/admin/meshcentral/yarn.lock +++ b/pkgs/tools/admin/meshcentral/yarn.lock @@ -48,24 +48,24 @@ "@smithy/util-utf8" "^2.0.0" tslib "^2.6.2" -"@aws-sdk/client-cognito-identity@3.846.0": - version "3.846.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.846.0.tgz#f7bfecb0c731df961058b4f63029f7556cb7eda6" - integrity sha512-vlzQVq1TOOYHPppmON/+oNhCxprCPPqxlqAuUddf885JcT6Q9r7FeV7S2yHli/1XC6vBa7sAninNvOjzwDbwYw== +"@aws-sdk/client-cognito-identity@3.848.0": + version "3.848.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.848.0.tgz#d7461128c39214a3d37c69eae6dceddfb7931f2a" + integrity sha512-Sin8aLnA81MgvUJrfQsBIQ1UJg4klWT3NuYYjExLiVQf3A0/F7Bfx1HTIyWXtSchY4QgGr7MMone0/0KZ4Dy9g== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" "@aws-sdk/core" "3.846.0" - "@aws-sdk/credential-provider-node" "3.846.0" + "@aws-sdk/credential-provider-node" "3.848.0" "@aws-sdk/middleware-host-header" "3.840.0" "@aws-sdk/middleware-logger" "3.840.0" "@aws-sdk/middleware-recursion-detection" "3.840.0" - "@aws-sdk/middleware-user-agent" "3.846.0" + "@aws-sdk/middleware-user-agent" "3.848.0" "@aws-sdk/region-config-resolver" "3.840.0" "@aws-sdk/types" "3.840.0" - "@aws-sdk/util-endpoints" "3.845.0" + "@aws-sdk/util-endpoints" "3.848.0" "@aws-sdk/util-user-agent-browser" "3.840.0" - "@aws-sdk/util-user-agent-node" "3.846.0" + "@aws-sdk/util-user-agent-node" "3.848.0" "@smithy/config-resolver" "^4.1.4" "@smithy/core" "^3.7.0" "@smithy/fetch-http-handler" "^5.1.0" @@ -93,10 +93,10 @@ "@smithy/util-utf8" "^4.0.0" tslib "^2.6.2" -"@aws-sdk/client-sso@3.846.0": - version "3.846.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.846.0.tgz#9905ccf216e371c94ca63b1df19dba923d286307" - integrity sha512-7MgMl3nlwf2ixad5Xe8pFHtcwFchkx37MEvGuB00tn5jyBp3AQQ4dK3iHtj2HjhXcXD0G67zVPvH4/QNOL7/gw== +"@aws-sdk/client-sso@3.848.0": + version "3.848.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.848.0.tgz#84178a83af2a1ce5d0ddfcfc980f4fe71987c01a" + integrity sha512-mD+gOwoeZQvbecVLGoCmY6pS7kg02BHesbtIxUj+PeBqYoZV5uLvjUOmuGfw1SfoSobKvS11urxC9S7zxU/Maw== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" @@ -104,12 +104,12 @@ "@aws-sdk/middleware-host-header" "3.840.0" "@aws-sdk/middleware-logger" "3.840.0" "@aws-sdk/middleware-recursion-detection" "3.840.0" - "@aws-sdk/middleware-user-agent" "3.846.0" + "@aws-sdk/middleware-user-agent" "3.848.0" "@aws-sdk/region-config-resolver" "3.840.0" "@aws-sdk/types" "3.840.0" - "@aws-sdk/util-endpoints" "3.845.0" + "@aws-sdk/util-endpoints" "3.848.0" "@aws-sdk/util-user-agent-browser" "3.840.0" - "@aws-sdk/util-user-agent-node" "3.846.0" + "@aws-sdk/util-user-agent-node" "3.848.0" "@smithy/config-resolver" "^4.1.4" "@smithy/core" "^3.7.0" "@smithy/fetch-http-handler" "^5.1.0" @@ -158,12 +158,12 @@ fast-xml-parser "5.2.5" tslib "^2.6.2" -"@aws-sdk/credential-provider-cognito-identity@3.846.0": - version "3.846.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.846.0.tgz#61c09e6a3ccf325991f2e335378fd40d6018f44b" - integrity sha512-zfcNFUK0QC7czR/n3ATMp3ZWkMrGZzJ1mS/sTezjFg1IupFnogyF+8xKmnmqXiABJd1yE8FduYgw8yx0ZSWiCw== +"@aws-sdk/credential-provider-cognito-identity@3.848.0": + version "3.848.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.848.0.tgz#c3d54f75a176aadddd3a6a7f6092987744ca32d1" + integrity sha512-2cm/Ye6ktagW1h7FmF4sgo8STZyBr2+0+L9lr/veuPKZVWoi/FyhJR3l0TtKrd8z78no9P5xbsGUmxoDLtsxiw== dependencies: - "@aws-sdk/client-cognito-identity" "3.846.0" + "@aws-sdk/client-cognito-identity" "3.848.0" "@aws-sdk/types" "3.840.0" "@smithy/property-provider" "^4.0.4" "@smithy/types" "^4.3.1" @@ -196,18 +196,18 @@ "@smithy/util-stream" "^4.2.3" tslib "^2.6.2" -"@aws-sdk/credential-provider-ini@3.846.0": - version "3.846.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.846.0.tgz#3d4df54131048d745a04ab3b4af95407f49f7514" - integrity sha512-GUxaBBKsYx1kOlRbcs77l6BVyG9K70zekJX+5hdwTEgJq7AoHl/XYoWiDxPf6zQ7J4euixPJoyRhpNbJjAXdFw== +"@aws-sdk/credential-provider-ini@3.848.0": + version "3.848.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.848.0.tgz#aec6f9158b08b9842d4e9ee7671296a2a237b026" + integrity sha512-r6KWOG+En2xujuMhgZu7dzOZV3/M5U/5+PXrG8dLQ3rdPRB3vgp5tc56KMqLwm/EXKRzAOSuw/UE4HfNOAB8Hw== dependencies: "@aws-sdk/core" "3.846.0" "@aws-sdk/credential-provider-env" "3.846.0" "@aws-sdk/credential-provider-http" "3.846.0" "@aws-sdk/credential-provider-process" "3.846.0" - "@aws-sdk/credential-provider-sso" "3.846.0" - "@aws-sdk/credential-provider-web-identity" "3.846.0" - "@aws-sdk/nested-clients" "3.846.0" + "@aws-sdk/credential-provider-sso" "3.848.0" + "@aws-sdk/credential-provider-web-identity" "3.848.0" + "@aws-sdk/nested-clients" "3.848.0" "@aws-sdk/types" "3.840.0" "@smithy/credential-provider-imds" "^4.0.6" "@smithy/property-provider" "^4.0.4" @@ -215,17 +215,17 @@ "@smithy/types" "^4.3.1" tslib "^2.6.2" -"@aws-sdk/credential-provider-node@3.846.0": - version "3.846.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.846.0.tgz#576d302e7d5af1abc7e5b95695dd97afa03ad2f8" - integrity sha512-du2DsXYRfQ8VIt/gXGThhT8KdUEt2j9W91W87Bl9IA5DINt4nSZv+gzh8LqHBYsTSqoUpKb+qIfP1RjZM/8r0A== +"@aws-sdk/credential-provider-node@3.848.0": + version "3.848.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.848.0.tgz#aeeccc9cadaae57fd2664298ecacea18648d6b9c" + integrity sha512-AblNesOqdzrfyASBCo1xW3uweiSro4Kft9/htdxLeCVU1KVOnFWA5P937MNahViRmIQm2sPBCqL8ZG0u9lnh5g== dependencies: "@aws-sdk/credential-provider-env" "3.846.0" "@aws-sdk/credential-provider-http" "3.846.0" - "@aws-sdk/credential-provider-ini" "3.846.0" + "@aws-sdk/credential-provider-ini" "3.848.0" "@aws-sdk/credential-provider-process" "3.846.0" - "@aws-sdk/credential-provider-sso" "3.846.0" - "@aws-sdk/credential-provider-web-identity" "3.846.0" + "@aws-sdk/credential-provider-sso" "3.848.0" + "@aws-sdk/credential-provider-web-identity" "3.848.0" "@aws-sdk/types" "3.840.0" "@smithy/credential-provider-imds" "^4.0.6" "@smithy/property-provider" "^4.0.4" @@ -245,48 +245,48 @@ "@smithy/types" "^4.3.1" tslib "^2.6.2" -"@aws-sdk/credential-provider-sso@3.846.0": - version "3.846.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.846.0.tgz#6c1040a3476e877a769075682c3f7c105f16460b" - integrity sha512-Dxz9dpdjfxUsSfW92SAldu9wy8wgEbskn4BNWBFHslQHTmqurmR0ci4P1SMxJJKd498AUEoIAzZOtjGOC38irQ== +"@aws-sdk/credential-provider-sso@3.848.0": + version "3.848.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.848.0.tgz#5921e154cde77f261e00da63431294ddde91d6f9" + integrity sha512-pozlDXOwJZL0e7w+dqXLgzVDB7oCx4WvtY0sk6l4i07uFliWF/exupb6pIehFWvTUcOvn5aFTTqcQaEzAD5Wsg== dependencies: - "@aws-sdk/client-sso" "3.846.0" + "@aws-sdk/client-sso" "3.848.0" "@aws-sdk/core" "3.846.0" - "@aws-sdk/token-providers" "3.846.0" + "@aws-sdk/token-providers" "3.848.0" "@aws-sdk/types" "3.840.0" "@smithy/property-provider" "^4.0.4" "@smithy/shared-ini-file-loader" "^4.0.4" "@smithy/types" "^4.3.1" tslib "^2.6.2" -"@aws-sdk/credential-provider-web-identity@3.846.0": - version "3.846.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.846.0.tgz#939629e1cf2b778168f350ea79aaf278b357317e" - integrity sha512-j6zOd+kynPQJzmVwSKSUTpsLXAf7vKkr7hCPbQyqC8ZqkIuExsRqu2vRQjX2iH/MKhwZ+qEWMxPMhfDoyv7Gag== +"@aws-sdk/credential-provider-web-identity@3.848.0": + version "3.848.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.848.0.tgz#86eaa04daf17ce41b9aab06a3c19a326fcbfaddf" + integrity sha512-D1fRpwPxtVDhcSc/D71exa2gYweV+ocp4D3brF0PgFd//JR3XahZ9W24rVnTQwYEcK9auiBZB89Ltv+WbWN8qw== dependencies: "@aws-sdk/core" "3.846.0" - "@aws-sdk/nested-clients" "3.846.0" + "@aws-sdk/nested-clients" "3.848.0" "@aws-sdk/types" "3.840.0" "@smithy/property-provider" "^4.0.4" "@smithy/types" "^4.3.1" tslib "^2.6.2" "@aws-sdk/credential-providers@^3.186.0": - version "3.846.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.846.0.tgz#98c348ec6551f7dc832bfc369fe221b2b71e4846" - integrity sha512-YpTJcV5PO0V+I1nRGAyNF/kCcOIgPgzihlAyOqicmq3vZ8UHZqUCOfzcS6qbEpPFeAB3domzBgsAJNsQXht4SA== + version "3.848.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.848.0.tgz#78ab8cb8114136130f2ccb357761c4936117a38a" + integrity sha512-lRDuU05YC+r/1JmRULngJQli7scP5hmq0/7D+xw1s8eRM0H2auaH7LQFlq/SLxQZLMkVNPCrmsug3b3KcLj1NA== dependencies: - "@aws-sdk/client-cognito-identity" "3.846.0" + "@aws-sdk/client-cognito-identity" "3.848.0" "@aws-sdk/core" "3.846.0" - "@aws-sdk/credential-provider-cognito-identity" "3.846.0" + "@aws-sdk/credential-provider-cognito-identity" "3.848.0" "@aws-sdk/credential-provider-env" "3.846.0" "@aws-sdk/credential-provider-http" "3.846.0" - "@aws-sdk/credential-provider-ini" "3.846.0" - "@aws-sdk/credential-provider-node" "3.846.0" + "@aws-sdk/credential-provider-ini" "3.848.0" + "@aws-sdk/credential-provider-node" "3.848.0" "@aws-sdk/credential-provider-process" "3.846.0" - "@aws-sdk/credential-provider-sso" "3.846.0" - "@aws-sdk/credential-provider-web-identity" "3.846.0" - "@aws-sdk/nested-clients" "3.846.0" + "@aws-sdk/credential-provider-sso" "3.848.0" + "@aws-sdk/credential-provider-web-identity" "3.848.0" + "@aws-sdk/nested-clients" "3.848.0" "@aws-sdk/types" "3.840.0" "@smithy/config-resolver" "^4.1.4" "@smithy/core" "^3.7.0" @@ -325,23 +325,23 @@ "@smithy/types" "^4.3.1" tslib "^2.6.2" -"@aws-sdk/middleware-user-agent@3.846.0": - version "3.846.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.846.0.tgz#e038f60b1b12b2c44a41c831925f52347ca27540" - integrity sha512-85/oUc2jMXqQWo+HHH7WwrdqqArzhMmTmBCpXZwklBHG+ZMzTS5Wug2B0HhGDVWo9aYRMeikSq4lsrpHFVd2MQ== +"@aws-sdk/middleware-user-agent@3.848.0": + version "3.848.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.848.0.tgz#d1bba79ba7f026ad7a6df55e47ccd0513f8fdada" + integrity sha512-rjMuqSWJEf169/ByxvBqfdei1iaduAnfolTshsZxwcmLIUtbYrFUmts0HrLQqsAG8feGPpDLHA272oPl+NTCCA== dependencies: "@aws-sdk/core" "3.846.0" "@aws-sdk/types" "3.840.0" - "@aws-sdk/util-endpoints" "3.845.0" + "@aws-sdk/util-endpoints" "3.848.0" "@smithy/core" "^3.7.0" "@smithy/protocol-http" "^5.1.2" "@smithy/types" "^4.3.1" tslib "^2.6.2" -"@aws-sdk/nested-clients@3.846.0": - version "3.846.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/nested-clients/-/nested-clients-3.846.0.tgz#c0389df04f04e6f4d124a605cc17b2b3f9a82faa" - integrity sha512-LCXPVtNQnkTuE8inPCtpfWN2raE/ndFBKf5OIbuHnC/0XYGOUl5q7VsJz471zJuN9FX3WMfopaFwmNc7cQNMpQ== +"@aws-sdk/nested-clients@3.848.0": + version "3.848.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/nested-clients/-/nested-clients-3.848.0.tgz#69f8f57fb5df25262b8e60a3334e13dcded0309d" + integrity sha512-joLsyyo9u61jnZuyYzo1z7kmS7VgWRAkzSGESVzQHfOA1H2PYeUFek6vLT4+c9xMGrX/Z6B0tkRdzfdOPiatLg== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" @@ -349,12 +349,12 @@ "@aws-sdk/middleware-host-header" "3.840.0" "@aws-sdk/middleware-logger" "3.840.0" "@aws-sdk/middleware-recursion-detection" "3.840.0" - "@aws-sdk/middleware-user-agent" "3.846.0" + "@aws-sdk/middleware-user-agent" "3.848.0" "@aws-sdk/region-config-resolver" "3.840.0" "@aws-sdk/types" "3.840.0" - "@aws-sdk/util-endpoints" "3.845.0" + "@aws-sdk/util-endpoints" "3.848.0" "@aws-sdk/util-user-agent-browser" "3.840.0" - "@aws-sdk/util-user-agent-node" "3.846.0" + "@aws-sdk/util-user-agent-node" "3.848.0" "@smithy/config-resolver" "^4.1.4" "@smithy/core" "^3.7.0" "@smithy/fetch-http-handler" "^5.1.0" @@ -394,13 +394,13 @@ "@smithy/util-middleware" "^4.0.4" tslib "^2.6.2" -"@aws-sdk/token-providers@3.846.0": - version "3.846.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.846.0.tgz#36b499314c2ed754aa9372058a2a8c9e9054ad49" - integrity sha512-sGNk3xclK7xx+rIJZDJC4FNFqaSSqN0nSr+AdVdQ+/iKQKaUA6hixRbXaQ7I7M5mhqS6fMW1AsqVRywQq2BSMw== +"@aws-sdk/token-providers@3.848.0": + version "3.848.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.848.0.tgz#a30431066b2fc2927169e3a958bb610cfb936406" + integrity sha512-oNPyM4+Di2Umu0JJRFSxDcKQ35+Chl/rAwD47/bS0cDPI8yrao83mLXLeDqpRPHyQW4sXlP763FZcuAibC0+mg== dependencies: "@aws-sdk/core" "3.846.0" - "@aws-sdk/nested-clients" "3.846.0" + "@aws-sdk/nested-clients" "3.848.0" "@aws-sdk/types" "3.840.0" "@smithy/property-provider" "^4.0.4" "@smithy/shared-ini-file-loader" "^4.0.4" @@ -415,10 +415,10 @@ "@smithy/types" "^4.3.1" tslib "^2.6.2" -"@aws-sdk/util-endpoints@3.845.0": - version "3.845.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.845.0.tgz#a4a303502b79a9868da2f6a17f81d24a34f10974" - integrity sha512-MBmOf0Pb4q6xs9V7jXT1+qciW2965yvaoZUlUUnxUEoX6zxWROeIu/gttASc4vSjOHr/+64hmFkxjeBUF37FJA== +"@aws-sdk/util-endpoints@3.848.0": + version "3.848.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.848.0.tgz#dea15ac0949fcbc518426fb4a86d1e9bd53433db" + integrity sha512-fY/NuFFCq/78liHvRyFKr+aqq1aA/uuVSANjzr5Ym8c+9Z3HRPE9OrExAHoMrZ6zC8tHerQwlsXYYH5XZ7H+ww== dependencies: "@aws-sdk/types" "3.840.0" "@smithy/types" "^4.3.1" @@ -443,12 +443,12 @@ bowser "^2.11.0" tslib "^2.6.2" -"@aws-sdk/util-user-agent-node@3.846.0": - version "3.846.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.846.0.tgz#05ab54d561bcbe3888d88b500ef62a7f41acac8c" - integrity sha512-MXYXCplw76xe8A9ejVaIru6Carum/2LQbVtNHsIa4h0TlafLdfulywsoMWL1F53Y9XxQSeOKyyqDKLNOgRVimw== +"@aws-sdk/util-user-agent-node@3.848.0": + version "3.848.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.848.0.tgz#992acf856aa8edd9d26b906c7c92fbdcd72f8bb1" + integrity sha512-Zz1ft9NiLqbzNj/M0jVNxaoxI2F4tGXN0ZbZIj+KJ+PbJo+w5+Jo6d0UDAtbj3AEd79pjcCaP4OA9NTVzItUdw== dependencies: - "@aws-sdk/middleware-user-agent" "3.846.0" + "@aws-sdk/middleware-user-agent" "3.848.0" "@aws-sdk/types" "3.840.0" "@smithy/node-config-provider" "^4.1.3" "@smithy/types" "^4.3.1" @@ -762,12 +762,12 @@ integrity sha512-eddz6UnOBEB1oITPinyrB2Pttej49M9FZQY8NxgEvc3tq6ZICZ19m70RsmzRdDHk80O9NoYN/25AqJl8vPVf/g== "@duosecurity/duo_universal@*": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@duosecurity/duo_universal/-/duo_universal-2.1.0.tgz#05312e7bf7557625145e7e243a7ece2385853dcf" - integrity sha512-6i+oSezndETL5nwaZbe8OVXA8GTalI0KmY4hc060iTaGpkj5/WY1OWC1W9lWDg0dWpYohsTwZy1dBQOs+vUc7g== + version "3.0.0" + resolved "https://registry.yarnpkg.com/@duosecurity/duo_universal/-/duo_universal-3.0.0.tgz#c2dae2976dc00dc734bc74d995dc23219dfafe7a" + integrity sha512-4amiQl9b/03kkDRZAWcvrow5PQfSO4zFpU4VjU+RLXNih5B/Frvrt4q+q2gE+QpSxNPCGE3wt8/tuuv0IGnMKw== dependencies: - axios "^1.2.2" - jsonwebtoken "^9.0.0" + axios "^1.10.0" + jose "^6.0.11" "@fastify/busboy@^2.0.0": version "2.1.1" @@ -1240,10 +1240,10 @@ "@smithy/util-middleware" "^4.0.4" tslib "^2.6.2" -"@smithy/core@^3.7.0": - version "3.7.0" - resolved "https://registry.yarnpkg.com/@smithy/core/-/core-3.7.0.tgz#b3a98ccc48b1c408dfdb986aaa22d6affffd7795" - integrity sha512-7ov8hu/4j0uPZv8b27oeOFtIBtlFmM3ibrPv/Omx1uUdoXvcpJ00U+H/OWWC/keAguLlcqwtyL2/jTlSnApgNQ== +"@smithy/core@^3.7.0", "@smithy/core@^3.7.1": + version "3.7.1" + resolved "https://registry.yarnpkg.com/@smithy/core/-/core-3.7.1.tgz#7f47fc1ec93f20b686d007a7d667a02de8b86219" + integrity sha512-ExRCsHnXFtBPnM7MkfKBPcBBdHw1h/QS/cbNw4ho95qnyNHvnpmGbR39MIAv9KggTr5qSPxRSEL+hRXlyGyGQw== dependencies: "@smithy/middleware-serde" "^4.0.8" "@smithy/protocol-http" "^5.1.2" @@ -1318,12 +1318,12 @@ "@smithy/types" "^4.3.1" tslib "^2.6.2" -"@smithy/middleware-endpoint@^4.1.15": - version "4.1.15" - resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-4.1.15.tgz#31d93e6f33bbe2dbd120bda0833bce35cf960c39" - integrity sha512-L2M0oz+r6Wv0KZ90MgClXmWkV7G72519Hd5/+K5i3gQMu4WNQykh7ERr58WT3q60dd9NqHSMc3/bAK0FsFg3Fw== +"@smithy/middleware-endpoint@^4.1.15", "@smithy/middleware-endpoint@^4.1.16": + version "4.1.16" + resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-4.1.16.tgz#d0fea3683659289974a87afb089e5f38575f96c0" + integrity sha512-plpa50PIGLqzMR2ANKAw2yOW5YKS626KYKqae3atwucbz4Ve4uQ9K9BEZxDLIFmCu7hKLcrq2zmj4a+PfmUV5w== dependencies: - "@smithy/core" "^3.7.0" + "@smithy/core" "^3.7.1" "@smithy/middleware-serde" "^4.0.8" "@smithy/node-config-provider" "^4.1.3" "@smithy/shared-ini-file-loader" "^4.0.4" @@ -1333,14 +1333,14 @@ tslib "^2.6.2" "@smithy/middleware-retry@^4.1.16": - version "4.1.16" - resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-4.1.16.tgz#0e044d0da18e7019052ac61ec02a2956437376fd" - integrity sha512-PpPhMpC6U1fLW0evKnC8gJtmobBYn0oi4RrIKGhN1a86t6XgVEK+Vb9C8dh5PPXb3YDr8lE6aYKh1hd3OikmWw== + version "4.1.17" + resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-4.1.17.tgz#5a7aa2547918422e3a8747520900c2fd26a43328" + integrity sha512-gsCimeG6BApj0SBecwa1Be+Z+JOJe46iy3B3m3A8jKJHf7eIihP76Is4LwLrbJ1ygoS7Vg73lfqzejmLOrazUA== dependencies: "@smithy/node-config-provider" "^4.1.3" "@smithy/protocol-http" "^5.1.2" "@smithy/service-error-classification" "^4.0.6" - "@smithy/smithy-client" "^4.4.7" + "@smithy/smithy-client" "^4.4.8" "@smithy/types" "^4.3.1" "@smithy/util-middleware" "^4.0.4" "@smithy/util-retry" "^4.0.6" @@ -1447,13 +1447,13 @@ "@smithy/util-utf8" "^4.0.0" tslib "^2.6.2" -"@smithy/smithy-client@^4.4.7": - version "4.4.7" - resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-4.4.7.tgz#68e9f7785179060896ed51d52cd4f4cfc1cbffb5" - integrity sha512-x+MxBNOcG7rY9i5QsbdgvvRJngKKvUJrbU5R5bT66PTH3e6htSupJ4Q+kJ3E7t6q854jyl57acjpPi6qG1OY5g== +"@smithy/smithy-client@^4.4.7", "@smithy/smithy-client@^4.4.8": + version "4.4.8" + resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-4.4.8.tgz#91b562a4f60db92c2533a720a091e98557117ab6" + integrity sha512-pcW691/lx7V54gE+dDGC26nxz8nrvnvRSCJaIYD6XLPpOInEZeKdV/SpSux+wqeQ4Ine7LJQu8uxMvobTIBK0w== dependencies: - "@smithy/core" "^3.7.0" - "@smithy/middleware-endpoint" "^4.1.15" + "@smithy/core" "^3.7.1" + "@smithy/middleware-endpoint" "^4.1.16" "@smithy/middleware-stack" "^4.0.4" "@smithy/protocol-http" "^5.1.2" "@smithy/types" "^4.3.1" @@ -1523,26 +1523,26 @@ tslib "^2.6.2" "@smithy/util-defaults-mode-browser@^4.0.23": - version "4.0.23" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.0.23.tgz#74887922f87da4f4acbf523b5c0271f11af5997d" - integrity sha512-NqRi6VvEIwpJ+KSdqI85+HH46H7uVoNqVTs2QO7p1YKnS7k8VZnunJj8R5KdmmVnTojkaL1OMPyZC8uR5F7fSg== + version "4.0.24" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.0.24.tgz#36e2ebd191cffa4799c2474d1d4e793264067fa9" + integrity sha512-UkQNgaQ+bidw1MgdgPO1z1k95W/v8Ej/5o/T/Is8PiVUYPspl/ZxV6WO/8DrzZQu5ULnmpB9CDdMSRwgRc21AA== dependencies: "@smithy/property-provider" "^4.0.4" - "@smithy/smithy-client" "^4.4.7" + "@smithy/smithy-client" "^4.4.8" "@smithy/types" "^4.3.1" bowser "^2.11.0" tslib "^2.6.2" "@smithy/util-defaults-mode-node@^4.0.23": - version "4.0.23" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.0.23.tgz#dd22609289183fe3d722f9a1601b6cc618f9efa7" - integrity sha512-NE9NtEVigFa+HHJ5bBeQT7KF3KiltW880CLN9TnWWL55akeou3ziRAHO22QSUPgPZ/nqMfPXi/LGMQ6xQvXPNQ== + version "4.0.24" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.0.24.tgz#3b9382bbffcc5c211e582ea6164c630ad994816f" + integrity sha512-phvGi/15Z4MpuQibTLOYIumvLdXb+XIJu8TA55voGgboln85jytA3wiD7CkUE8SNcWqkkb+uptZKPiuFouX/7g== dependencies: "@smithy/config-resolver" "^4.1.4" "@smithy/credential-provider-imds" "^4.0.6" "@smithy/node-config-provider" "^4.1.3" "@smithy/property-provider" "^4.0.4" - "@smithy/smithy-client" "^4.4.7" + "@smithy/smithy-client" "^4.4.8" "@smithy/types" "^4.3.1" tslib "^2.6.2" @@ -1712,9 +1712,9 @@ integrity sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA== "@types/node@*", "@types/node@>=13.7.0": - version "24.0.14" - resolved "https://registry.yarnpkg.com/@types/node/-/node-24.0.14.tgz#6e3d4fb6d858c48c69707394e1a0e08ce1ecc1bc" - integrity sha512-4zXMWD91vBLGRtHK3YbIoFMia+1nqEz72coM42C5ETjnNCa/heoj7NT1G67iAfOqMmcfhuCZ4uNpyz8EjlAejw== + version "24.1.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-24.1.0.tgz#0993f7dc31ab5cc402d112315b463e383d68a49c" + integrity sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w== dependencies: undici-types "~7.8.0" @@ -1724,9 +1724,9 @@ integrity sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ== "@types/node@^22.0.1", "@types/node@^22.5.4": - version "22.16.4" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.16.4.tgz#00c763ad4d4e45f62d5a270c040ae1a799c7e38a" - integrity sha512-PYRhNtZdm2wH/NT2k/oAJ6/f2VD2N2Dag0lGlx2vWgMSJXGNmlce5MiTQzoWAiIJtso30mjnfQCOKVH+kAQC/g== + version "22.16.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.16.5.tgz#cc46ac3994cd957000d0c11095a0b1dae2ea2368" + integrity sha512-bJFoMATwIGaxxx8VJPeM8TonI8t579oRvgAuT8zFugJsJZgzqv0Fu8Mhp68iecjzG7cnN3mO2dJQ5uUM2EFrgQ== dependencies: undici-types "~6.21.0" @@ -2443,13 +2443,13 @@ axios@^0.21.1: dependencies: follow-redirects "^1.14.0" -axios@^1.2.2, axios@^1.8.2: - version "1.10.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.10.0.tgz#af320aee8632eaf2a400b6a1979fa75856f38d54" - integrity sha512-/1xYAC4MP/HEG+3duIhFr4ZQXR4sQXOIe+o6sdqzeykGLx6Upp/1p8MHqhINOvGeP7xyNHe7tsiJByc4SSVUxw== +axios@^1.10.0, axios@^1.8.2: + version "1.11.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.11.0.tgz#c2ec219e35e414c025b2095e8b8280278478fdb6" + integrity sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA== dependencies: follow-redirects "^1.15.6" - form-data "^4.0.0" + form-data "^4.0.4" proxy-from-env "^1.1.0" b4a@^1.6.4: @@ -3053,16 +3053,16 @@ compressible@~2.0.18: dependencies: mime-db ">= 1.43.0 < 2" -compression@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.5.tgz#fdd256c0a642e39e314c478f6c2cd654edd74c93" - integrity sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q== +compression@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.8.1.tgz#4a45d909ac16509195a9a28bd91094889c180d79" + integrity sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w== dependencies: bytes "3.1.2" compressible "~2.0.18" debug "2.6.9" negotiator "~0.6.4" - on-headers "~1.0.2" + on-headers "~1.1.0" safe-buffer "5.2.1" vary "~1.1.2" @@ -3108,14 +3108,14 @@ cookie-jar@~0.3.0: resolved "https://registry.yarnpkg.com/cookie-jar/-/cookie-jar-0.3.0.tgz#bc9a27d4e2b97e186cd57c9e2063cb99fa68cccc" integrity sha512-dX1400pzPULr+ZovkIsDEqe7XH8xCAYGT5Dege4Eot44Qs2mS2iJmnh45TxTO5MIsCfrV/JGZVloLhm46AHxNw== -cookie-session@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cookie-session/-/cookie-session-2.1.0.tgz#ae30b566b2f9f2d8ca2c4936513e6bf181830558" - integrity sha512-u73BDmR8QLGcs+Lprs0cfbcAPKl2HnPcjpwRXT41sEV4DRJ2+W0vJEEZkG31ofkx+HZflA70siRIjiTdIodmOQ== +cookie-session@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/cookie-session/-/cookie-session-2.1.1.tgz#3e0bdd4a8386467a1d7cca5249690a0ebfb27842" + integrity sha512-ji3kym/XZaFVew1+tIZk5ZLp9Z/fLv9rK1aZmpug0FsgE7Cu3ZDrUdRo7FT9vFjMYfNimrrUHJzywDwT7XEFlg== dependencies: cookies "0.9.1" debug "3.2.7" - on-headers "~1.0.2" + on-headers "~1.1.0" safe-buffer "5.2.1" cookie-signature@1.0.6: @@ -3559,9 +3559,9 @@ ee-first@1.1.1: integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== electron-to-chromium@^1.5.173: - version "1.5.185" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.185.tgz#b4f9189c4ef652ddf9f1bb37529e2b79f865e912" - integrity sha512-dYOZfUk57hSMPePoIQ1fZWl1Fkj+OshhEVuPacNKWzC1efe56OsHY3l/jCfiAgIICOU3VgOIdoq7ahg7r7n6MQ== + version "1.5.190" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.190.tgz#f0ac8be182291a45e8154dbb12f18d2b2318e4ac" + integrity sha512-k4McmnB2091YIsdCgkS0fMVMPOJgxl93ltFzaryXqwip1AaxeDqKCGLxkXODDA5Ab/D+tV5EL5+aTx76RvLRxw== emoji-regex@^7.0.1: version "7.0.3" @@ -4124,20 +4124,21 @@ forever-agent@~0.6.1: integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== form-data@^2.5.0: - version "2.5.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.3.tgz#f9bcf87418ce748513c0c3494bb48ec270c97acc" - integrity sha512-XHIrMD0NpDrNM/Ckf7XJiBbLl57KEhT3+i3yY+eWm+cqYZJQTZrKo8Y8AWKnuV5GT4scfuUGt9LzNoIx3dU1nQ== + version "2.5.5" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.5.tgz#a5f6364ad7e4e67e95b4a07e2d8c6f711c74f624" + integrity sha512-jqdObeR2rxZZbPSGL+3VckHMYtu+f9//KXBsVny6JSX/pa38Fy+bGjuG8eW/H6USNQWhLi8Num++cU2yOCNz4A== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" es-set-tostringtag "^2.1.0" + hasown "^2.0.2" mime-types "^2.1.35" safe-buffer "^5.2.1" -form-data@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.3.tgz#608b1b3f3e28be0fccf5901fc85fb3641e5cf0ae" - integrity sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA== +form-data@^4.0.0, form-data@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.4.tgz#784cdcce0669a9d68e94d11ac4eea98088edd2c4" + integrity sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" @@ -5257,6 +5258,11 @@ jose@^4.15.4, jose@^4.15.9: resolved "https://registry.yarnpkg.com/jose/-/jose-4.15.9.tgz#9b68eda29e9a0614c042fa29387196c7dd800100" integrity sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA== +jose@^6.0.11: + version "6.0.12" + resolved "https://registry.yarnpkg.com/jose/-/jose-6.0.12.tgz#56253d94d46bd784addc4bde3691c323552fe7e4" + integrity sha512-T8xypXs8CpmiIi78k0E+Lk7T2zlK4zDyg+o1CZ4AkOHgDg98ogdP2BeZ61lTFKFyoEwJ9RgAgN+SdM3iPgNonQ== + js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -6408,10 +6414,10 @@ on-finished@2.4.1: dependencies: ee-first "1.1.1" -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== +on-headers@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.1.0.tgz#59da4f91c45f5f989c6e4bcedc5a3b0aed70ff65" + integrity sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A== once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" From 7bdf5f17f1f43c93bbda917db80db97273b8afd4 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Wed, 23 Jul 2025 12:50:25 +0200 Subject: [PATCH 36/72] evcxr: 0.20.0 -> 0.21.1 ChangeLogs: * https://github.com/evcxr/evcxr/releases/tag/v0.21.0 * https://github.com/evcxr/evcxr/releases/tag/v0.21.1 --- pkgs/by-name/ev/evcxr/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ev/evcxr/package.nix b/pkgs/by-name/ev/evcxr/package.nix index d00b3728950c..431d5e154c59 100644 --- a/pkgs/by-name/ev/evcxr/package.nix +++ b/pkgs/by-name/ev/evcxr/package.nix @@ -19,17 +19,17 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "evcxr"; - version = "0.20.0"; + version = "0.21.1"; src = fetchFromGitHub { owner = "google"; repo = "evcxr"; rev = "v${finalAttrs.version}"; - sha256 = "sha256-vntXHKP3fk5+26fPHKUy3gqr1Bt9o/ypxyyvXOfdt3I="; + sha256 = "sha256-8dV+NNtU4HFerrgRyc1kO+MSsMTJJItTtJylEIN014g="; }; useFetchCargoVendor = true; - cargoHash = "sha256-bV83OvHG7lQN3juVsPRurINCzxVPZd0yZ2YNtXXFU8I="; + cargoHash = "sha256-HJrEXt6O7qCNJ/xOh4kjmqKJ22EVwBTzV1S+q98k0VQ="; RUST_SRC_PATH = "${rustPlatform.rustLibSrc}"; From 773376f23694258d960110dca853e0d0f03a1471 Mon Sep 17 00:00:00 2001 From: thattemperature <2719023332@qq.com> Date: Fri, 11 Jul 2025 14:54:42 +0800 Subject: [PATCH 37/72] python3Package.python-tsp: init at 0.5.0 --- .../python-modules/python-tsp/default.nix | 57 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 59 insertions(+) create mode 100644 pkgs/development/python-modules/python-tsp/default.nix diff --git a/pkgs/development/python-modules/python-tsp/default.nix b/pkgs/development/python-modules/python-tsp/default.nix new file mode 100644 index 000000000000..7751fdc448d5 --- /dev/null +++ b/pkgs/development/python-modules/python-tsp/default.nix @@ -0,0 +1,57 @@ +{ + # Basic + lib, + buildPythonPackage, + fetchFromGitHub, + # Build system + poetry-core, + # Dependencies + numpy, + requests, + tsplib95, + # Test + pytestCheckHook, + mock, +}: + +buildPythonPackage rec { + pname = "python-tsp"; + version = "0.5.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "fillipe-gsm"; + repo = "python-tsp"; + tag = "v${version}"; + hash = "sha256-X4L0j6ZL8/Xj2YFcvwOl8voC2xHagMcdcj9F1f/6/5M="; + }; + + build-system = [ poetry-core ]; + + dependencies = [ + numpy + requests + tsplib95 + ]; + + # Rename some dependencies + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail "poetry>=0.12" "poetry-core>=0.12" \ + --replace-fail "poetry.masonry.api" "poetry.core.masonry.api" + ''; + + nativeCheckInputs = [ + pytestCheckHook + mock + ]; + + pythonImportsCheck = [ "python_tsp" ]; + + meta = { + description = "Library for solving typical Traveling Salesperson Problems (TSP)"; + homepage = "https://github.com/fillipe-gsm/python-tsp"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ thattemperature ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 5d1c3b993c15..280a1b2cd0f9 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -14766,6 +14766,8 @@ self: super: with self; { python-trovo = callPackage ../development/python-modules/python-trovo { }; + python-tsp = callPackage ../development/python-modules/python-tsp { }; + python-twitch-client = callPackage ../development/python-modules/python-twitch-client { }; python-twitter = callPackage ../development/python-modules/python-twitter { }; From a3fbf2c805b3f3ce6101dc37799eea91fd9909a2 Mon Sep 17 00:00:00 2001 From: Antonio Date: Tue, 22 Jul 2025 13:06:28 +0200 Subject: [PATCH 38/72] hayabusa-sec: init at 3.3.0-unstable-2025-07-17 --- pkgs/by-name/ha/hayabusa-sec/package.nix | 52 ++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 pkgs/by-name/ha/hayabusa-sec/package.nix diff --git a/pkgs/by-name/ha/hayabusa-sec/package.nix b/pkgs/by-name/ha/hayabusa-sec/package.nix new file mode 100644 index 000000000000..8dc4adb95493 --- /dev/null +++ b/pkgs/by-name/ha/hayabusa-sec/package.nix @@ -0,0 +1,52 @@ +{ + lib, + rustPlatform, + fetchFromGitHub, + pkg-config, + openssl, + rust-jemalloc-sys, +}: + +rustPlatform.buildRustPackage { + pname = "hayabusa-sec"; + version = "3.3.0-unstable-2025-07-17"; + + src = fetchFromGitHub { + owner = "Yamato-Security"; + repo = "hayabusa"; + rev = "feaa165b4c0af34919ad26f634cb684e23172359"; + hash = "sha256-h08InhNVW33IjPA228gv6Enlg6EKmj0yHb/UvJ/f7uw="; + # Include the hayabusa-rules + fetchSubmodules = true; + }; + + cargoHash = "sha256-wcH1Ron5Zx2ypWyaW0z7L9rCanAcosvpPQnP60qbvWQ="; + + nativeBuildInputs = [ + pkg-config + ]; + + buildInputs = [ + openssl + rust-jemalloc-sys # transitive dependency via the hayabusa-evtx crate + ]; + + env.OPENSSL_NO_VENDOR = true; + + # Several checks panic + # Skipping individual checks causes failure as `--skip` flags + # end up passed to executing `hayabusa` + # > error: unexpected argument '--skip' found + doCheck = false; + + meta = { + description = "Sigma-based threat hunting and fast forensics timeline generator for Windows event logs"; + homepage = "https://github.com/Yamato-Security/hayabusa"; + license = lib.licenses.agpl3Plus; + maintainers = with lib.maintainers; [ + d3vil0p3r + jk + ]; + mainProgram = "hayabusa"; + }; +} From b051a144dc42449c723ca188e65f58d159ebb0ee Mon Sep 17 00:00:00 2001 From: "Adam C. Stephens" Date: Wed, 23 Jul 2025 13:00:55 -0400 Subject: [PATCH 39/72] elixir-ls: force local installation --- pkgs/development/beam-modules/default.nix | 2 +- .../beam-modules/elixir-ls/default.nix | 44 +++++++------------ .../beam-modules/elixir-ls/launch.sh.patch | 8 ++-- 3 files changed, 20 insertions(+), 34 deletions(-) diff --git a/pkgs/development/beam-modules/default.nix b/pkgs/development/beam-modules/default.nix index 486d91a5ab06..8b04fe8a07a7 100644 --- a/pkgs/development/beam-modules/default.nix +++ b/pkgs/development/beam-modules/default.nix @@ -89,7 +89,7 @@ let inherit fetchMixDeps mixRelease; }; - elixir-ls = callPackage ./elixir-ls { inherit elixir fetchMixDeps mixRelease; }; + elixir-ls = callPackage ./elixir-ls { inherit elixir; }; lfe = lfe_2_1; lfe_2_1 = lib'.callLFE ../interpreters/lfe/2.1.nix { inherit erlang buildRebar3 buildHex; }; diff --git a/pkgs/development/beam-modules/elixir-ls/default.nix b/pkgs/development/beam-modules/elixir-ls/default.nix index 237838bc337b..eda8502395ad 100644 --- a/pkgs/development/beam-modules/elixir-ls/default.nix +++ b/pkgs/development/beam-modules/elixir-ls/default.nix @@ -3,13 +3,12 @@ elixir, fetchpatch, fetchFromGitHub, - fetchMixDeps, makeWrapper, - mixRelease, + stdenv, nix-update-script, }: -mixRelease rec { +stdenv.mkDerivation rec { pname = "elixir-ls"; version = "0.28.1"; @@ -20,16 +19,6 @@ mixRelease rec { hash = "sha256-r4P+3MPniDNdF3SG2jfBbzHsoxn826eYd2tsv6bJBoI="; }; - inherit elixir; - - stripDebug = true; - - mixFodDeps = fetchMixDeps { - pname = "mix-deps-${pname}"; - inherit src version elixir; - hash = "sha256-8zs+99jwf+YX5SwD65FCPmfrYhTCx4AQGCGsDeCKxKc="; - }; - patches = [ # fix elixir deterministic support https://github.com/elixir-lsp/elixir-ls/pull/1216 # remove > 0.28.1 @@ -46,28 +35,25 @@ mixRelease rec { makeWrapper ]; - # elixir-ls require a special step for release - # compile and release need to be performed together because - # of the no-deps-check requirement - buildPhase = '' - runHook preBuild + # for substitution + env.elixir = elixir; - mix do compile --no-deps-check, elixir_ls.release${lib.optionalString (lib.versionAtLeast elixir.version "1.16.0") "2"} - - runHook postBuild - ''; + dontConfigure = true; + dontBuild = true; installPhase = '' + cp -R . $out + ln -s $out/VERSION $out/scripts/VERSION + + substituteAllInPlace $out/scripts/launch.sh + mkdir -p $out/bin - cp -Rv release $out/libexec - substituteAllInPlace $out/libexec/launch.sh + makeWrapper $out/scripts/language_server.sh $out/bin/elixir-ls \ + --set ELS_LOCAL "1" - makeWrapper $out/libexec/language_server.sh $out/bin/elixir-ls \ - --set ELS_INSTALL_PREFIX "$out/libexec" - - makeWrapper $out/libexec/debug_adapter.sh $out/bin/elixir-debug-adapter \ - --set ELS_INSTALL_PREFIX "$out/libexec" + makeWrapper $out/scripts/debug_adapter.sh $out/bin/elixir-debug-adapter \ + --set ELS_LOCAL "1" runHook postInstall ''; diff --git a/pkgs/development/beam-modules/elixir-ls/launch.sh.patch b/pkgs/development/beam-modules/elixir-ls/launch.sh.patch index aabfd82a3d58..b497720e4bd9 100644 --- a/pkgs/development/beam-modules/elixir-ls/launch.sh.patch +++ b/pkgs/development/beam-modules/elixir-ls/launch.sh.patch @@ -1,6 +1,6 @@ -diff --git i/scripts/launch.sh w/scripts/launch.sh -index 21afbb1e..975cbdf0 100755 ---- i/scripts/launch.sh +diff --git c/scripts/launch.sh w/scripts/launch.sh +index 21afbb1e..6b61f0b4 100755 +--- c/scripts/launch.sh +++ w/scripts/launch.sh @@ -1,125 +1,4 @@ -#!/bin/sh @@ -140,7 +140,7 @@ index 21afbb1e..975cbdf0 100755 - SCRIPTPATH=${ELS_INSTALL_PREFIX} -fi +SCRIPT=$(readlink -f "$0") -+SCRIPTPATH=$(dirname "$SCRIPT")/../libexec ++SCRIPTPATH=$(dirname "$SCRIPT")/../scripts export MIX_ENV=prod # Mix.install prints to stdout and reads from stdin From 6259def6787eec979a14bb2603fac5414d653d74 Mon Sep 17 00:00:00 2001 From: Kira Bruneau Date: Mon, 21 Jul 2025 00:02:00 -0400 Subject: [PATCH 40/72] newsflash: 4.0.3 -> 4.1.2 --- pkgs/by-name/ne/newsflash/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ne/newsflash/package.nix b/pkgs/by-name/ne/newsflash/package.nix index 6cfb80f6a20e..2ac8036c3957 100644 --- a/pkgs/by-name/ne/newsflash/package.nix +++ b/pkgs/by-name/ne/newsflash/package.nix @@ -27,18 +27,18 @@ stdenv.mkDerivation (finalAttrs: { pname = "newsflash"; - version = "4.0.3"; + version = "4.1.2"; src = fetchFromGitLab { owner = "news-flash"; repo = "news_flash_gtk"; tag = "v.${finalAttrs.version}"; - hash = "sha256-TVQZq+Akb7EFUazAgUqvlwC7htVpUf7Hck8p7vY0o3M="; + hash = "sha256-yNO9ju5AQzMeZlQN1f3FRiFA6hq89mSuQClrJkoM+xE="; }; cargoDeps = rustPlatform.fetchCargoVendor { inherit (finalAttrs) pname version src; - hash = "sha256-fjb/AVvWbSq+Mc+5D7wCncLQ8OPjnTqHMzFFYgmCCjY="; + hash = "sha256-gF1wHLM5t0jYm/nWQQeAbDlExsPYNV0/YYH0yfQuetM="; }; postPatch = '' From 6ebae03896ab2d330ba35d493d606b55f9ea1ac8 Mon Sep 17 00:00:00 2001 From: Kira Bruneau Date: Wed, 23 Jul 2025 20:19:10 -0400 Subject: [PATCH 41/72] newsflash: format with nixfmt v1.0.0 --- pkgs/by-name/ne/newsflash/package.nix | 41 +++++++++++++-------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/pkgs/by-name/ne/newsflash/package.nix b/pkgs/by-name/ne/newsflash/package.nix index 2ac8036c3957..9a3084cfca86 100644 --- a/pkgs/by-name/ne/newsflash/package.nix +++ b/pkgs/by-name/ne/newsflash/package.nix @@ -65,29 +65,28 @@ stdenv.mkDerivation (finalAttrs: { ]; - buildInputs = - [ - clapper-unwrapped - gtk4 - libadwaita - libxml2 - openssl - sqlite - webkitgtk_6_0 + buildInputs = [ + clapper-unwrapped + gtk4 + libadwaita + libxml2 + openssl + sqlite + webkitgtk_6_0 - # TLS support for loading external content in webkitgtk WebView - glib-networking + # TLS support for loading external content in webkitgtk WebView + glib-networking - # SVG support for gdk-pixbuf - librsvg - ] - ++ (with gst_all_1; [ - # Audio & video support for webkitgtk WebView - gstreamer - gst-plugins-base - gst-plugins-good - gst-plugins-bad - ]); + # SVG support for gdk-pixbuf + librsvg + ] + ++ (with gst_all_1; [ + # Audio & video support for webkitgtk WebView + gstreamer + gst-plugins-base + gst-plugins-good + gst-plugins-bad + ]); passthru.updateScript = gitUpdater { rev-prefix = "v."; From 232dc9bc2339be678c0153b4e6e9438d5a3fe1d1 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 24 Jul 2025 04:14:26 +0000 Subject: [PATCH 42/72] redpanda-client: 25.1.7 -> 25.1.9 --- pkgs/by-name/re/redpanda-client/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/re/redpanda-client/package.nix b/pkgs/by-name/re/redpanda-client/package.nix index 06e7d1baf782..eaa2d76a6259 100644 --- a/pkgs/by-name/re/redpanda-client/package.nix +++ b/pkgs/by-name/re/redpanda-client/package.nix @@ -7,12 +7,12 @@ stdenv, }: let - version = "25.1.7"; + version = "25.1.9"; src = fetchFromGitHub { owner = "redpanda-data"; repo = "redpanda"; rev = "v${version}"; - sha256 = "sha256-GRWLEzf0YfSk96oDCuthMNmu0C1KJCk10Uz7eApS4mk="; + sha256 = "sha256-X7pBbR2XCyHB4V0Z/PjZ10o/heXswyhzVj1yp+jvUEM="; }; in buildGoModule rec { @@ -20,7 +20,7 @@ buildGoModule rec { inherit doCheck src version; modRoot = "./src/go/rpk"; runVend = false; - vendorHash = "sha256-DevAHiNcxSbgNwr2Jm7yXhNWflXvqWZOlaYHj+xY0Tw="; + vendorHash = "sha256-I/jUlOYUXOSmAD2r8lBlnEBYlxf+V6gSICgnMXosP+4="; ldflags = [ ''-X "github.com/redpanda-data/redpanda/src/go/rpk/pkg/cli/cmd/version.version=${version}"'' From bd184be2728c5ceb750e6b604b0c5452758fcce4 Mon Sep 17 00:00:00 2001 From: Paul Meyer Date: Wed, 2 Apr 2025 15:45:14 +0200 Subject: [PATCH 43/72] qemu-vm: create erofs with hard-dereference flag This will ensure reproducibility between different nixos systems, where one system has store optimization enabled (which will hardling similar files in the nix store) and the other doesn't. Without the flag, the same image, built on the two different systems, will have a different number of inodes. The flag will dereference hardlinks and copy them into the image as different inodes. Signed-off-by: Paul Meyer --- nixos/modules/virtualisation/qemu-vm.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nixos/modules/virtualisation/qemu-vm.nix b/nixos/modules/virtualisation/qemu-vm.nix index 0b0b2136ea03..21d82e09d927 100644 --- a/nixos/modules/virtualisation/qemu-vm.nix +++ b/nixos/modules/virtualisation/qemu-vm.nix @@ -194,6 +194,7 @@ let -L ${nixStoreFilesystemLabel} \ -U eb176051-bd15-49b7-9e6b-462e0b467019 \ -T 0 \ + --hard-dereference \ --tar=f \ "$TMPDIR"/store.img From 06bd2ab95a39bdd3eb4aa54161ec668103521c64 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 24 Jul 2025 06:08:55 +0000 Subject: [PATCH 44/72] gh-f: 1.3.0 -> 1.4.0 --- pkgs/by-name/gh/gh-f/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/gh/gh-f/package.nix b/pkgs/by-name/gh/gh-f/package.nix index d90ede5caa7e..0e2f3c598629 100644 --- a/pkgs/by-name/gh/gh-f/package.nix +++ b/pkgs/by-name/gh/gh-f/package.nix @@ -25,13 +25,13 @@ let in stdenvNoCC.mkDerivation rec { pname = "gh-f"; - version = "1.3.0"; + version = "1.4.0"; src = fetchFromGitHub { owner = "gennaro-tedesco"; repo = "gh-f"; rev = "v${version}"; - hash = "sha256-CW6iAI5IomJoMuPBFq/3owhZJbcruKtOqoxzsh+FNVw="; + hash = "sha256-JlMJ5RplEtQ8ApN3x1Sl0Lkutb5kLpuMJrF96oKZC9k="; }; nativeBuildInputs = [ From 4fecaba89a6b30effd311155ebf13769086d3377 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 24 Jul 2025 07:58:17 +0000 Subject: [PATCH 45/72] pluto: 5.22.0 -> 5.22.1 --- pkgs/by-name/pl/pluto/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/pl/pluto/package.nix b/pkgs/by-name/pl/pluto/package.nix index ce3398e80c31..f8b578935218 100644 --- a/pkgs/by-name/pl/pluto/package.nix +++ b/pkgs/by-name/pl/pluto/package.nix @@ -6,13 +6,13 @@ buildGoModule rec { pname = "pluto"; - version = "5.22.0"; + version = "5.22.1"; src = fetchFromGitHub { owner = "FairwindsOps"; repo = "pluto"; rev = "v${version}"; - hash = "sha256-fqN6uj/YL/sch16mmB/smJtbzCFlUa9yvCLa8sXJ/u4="; + hash = "sha256-mq18PUyVFhi3ePju6EvYg4VowwAHJwhvpI67BX8BqRY="; }; vendorHash = "sha256-59mRVfQ2rduTvIJE1l/j3K+PY3OEMfNpjjYg3hqNUhs="; From 7286705111bd7e7d65e18a010ee78d34071665b5 Mon Sep 17 00:00:00 2001 From: isabel Date: Wed, 23 Jul 2025 18:35:38 +0100 Subject: [PATCH 46/72] catppuccinifier-gui: 9.0.0 -> 9.1.0; build from source --- .../ca/catppuccinifier-gui/package.nix | 82 +++++++++---------- 1 file changed, 37 insertions(+), 45 deletions(-) diff --git a/pkgs/by-name/ca/catppuccinifier-gui/package.nix b/pkgs/by-name/ca/catppuccinifier-gui/package.nix index 4388c11c6662..0e2317ab0265 100644 --- a/pkgs/by-name/ca/catppuccinifier-gui/package.nix +++ b/pkgs/by-name/ca/catppuccinifier-gui/package.nix @@ -3,79 +3,71 @@ gtk3, glib, dbus, - curl, - wget, + nodejs, cairo, - stdenv, - librsvg, - libsoup_2_4, - fetchzip, - openssl_3, + cargo-tauri, webkitgtk_4_1, + wrapGAppsHook3, gdk-pixbuf, pkg-config, - makeDesktopItem, - copyDesktopItems, - autoPatchelfHook, + rustPlatform, + fetchYarnDeps, + yarnConfigHook, + fetchFromGitHub, + desktop-file-utils, }: -let - version = "9.0.0"; -in -stdenv.mkDerivation { +rustPlatform.buildRustPackage (finalAttrs: { pname = "catppuccinifier-gui"; - inherit version; + version = "9.1.0"; - src = fetchzip { - url = "https://github.com/lighttigerXIV/catppuccinifier/releases/download/${version}/Catppuccinifier-Linux-${version}.tar.xz"; - hash = "sha256-wGj0mWxmGqG/z/jmQ5pw1LdxYKzHaf+eOUXhpMT3kgs="; + src = fetchFromGitHub { + owner = "lighttigerXIV"; + repo = "catppuccinifier"; + tag = "${finalAttrs.version}"; + hash = "sha256-e8sLYp+0YhC/vAn4vag9UUaw3VYDRERGnLD1RuW1TXE="; + }; + + sourceRoot = finalAttrs.src.name + "/src/catppuccinifier-gui"; + cargoRoot = "src-tauri"; + buildAndTestSubdir = finalAttrs.cargoRoot; + + cargoHash = "sha256-BUXqPY3jNn4YB1avtCp6MFyN1KIYqT0b1H9drOmikj0="; + + yarnOfflineCache = fetchYarnDeps { + yarnLock = finalAttrs.src + "/src/catppuccinifier-gui/yarn.lock"; + hash = "sha256-UfQZf2raMrgPhUQVTAW+mA/nP1XjLKx0WBbYtdeD9kY="; }; nativeBuildInputs = [ - autoPatchelfHook + cargo-tauri.hook pkg-config - copyDesktopItems + nodejs + yarnConfigHook + wrapGAppsHook3 + desktop-file-utils ]; buildInputs = [ - curl - wget webkitgtk_4_1 gtk3 cairo gdk-pixbuf - libsoup_2_4 glib dbus - openssl_3 - librsvg ]; - installPhase = '' - runHook preInstall - - install -Dm555 installation-files/catppuccinifier-gui "$out/bin/catppuccinifier-gui" - install -Dm644 installation-files/catppuccinifier.png "$out/share/pixmaps/catppuccinifier.png" - - runHook postInstall + postInstall = '' + desktop-file-edit "$out/share/applications/catppuccinifier-gui.desktop" \ + --set-key "Categories" --set-value "Graphics" \ + --set-key "Comment" --set-value "Apply catppuccin flavors to your wallpapers" ''; - desktopItems = [ - (makeDesktopItem { - desktopName = "catppuccinifier"; - name = "catppuccinifier"; - exec = "catppuccinifier-gui"; - icon = "catppuccinifier"; - comment = "Apply catppuccin flavors to your wallpapers"; - }) - ]; - meta = { description = "Apply catppuccin flavors to your wallpapers"; homepage = "https://github.com/lighttigerXIV/catppuccinifier"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ isabelroses ]; - platforms = [ "x86_64-linux" ]; + platforms = lib.platforms.linux; mainProgram = "catppuccinifier-gui"; - sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; }; -} +}) From 91ce4ce6b250233dc810e506dbef2e8ee1fe10d0 Mon Sep 17 00:00:00 2001 From: Sebastian Rieger Date: Thu, 24 Jul 2025 09:55:38 +0200 Subject: [PATCH 47/72] containerlab: 0.68.0 -> 0.69.1 https://github.com/srl-labs/containerlab/releases/tag/v0.69.1 --- pkgs/by-name/co/containerlab/package.nix | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/co/containerlab/package.nix b/pkgs/by-name/co/containerlab/package.nix index ea89c97789f3..3e4ee48340f4 100644 --- a/pkgs/by-name/co/containerlab/package.nix +++ b/pkgs/by-name/co/containerlab/package.nix @@ -8,16 +8,16 @@ buildGoModule (finalAttrs: { pname = "containerlab"; - version = "0.68.0"; + version = "0.69.1"; src = fetchFromGitHub { owner = "srl-labs"; repo = "containerlab"; tag = "v${finalAttrs.version}"; - hash = "sha256-x6QDwduAMCD+Trj0awQXW0Tdleb2U6YBi/7mdMB6V/8="; + hash = "sha256-+KZrKOxn9M+iKtugH89bPc106NGLwErMgIyiaU2kcGE="; }; - vendorHash = "sha256-XRgKfRw6VGg+lkbtPWUVNfAk5a7ZdFwVmhjtM7uSwHs="; + vendorHash = "sha256-YmE2eR5UnXy2nXTQP2FdyPQLAQVYPzDTmLrWtbRknAs="; nativeBuildInputs = [ installShellFiles @@ -37,6 +37,11 @@ buildGoModule (finalAttrs: { export USER="runner" ''; + # TestVerifyLinks wants to use docker.sock, which is not available in the Nix build environment. + checkFlags = [ + "-skip=^TestVerifyLinks$" + ]; + postInstall = '' local INSTALL="$out/bin/containerlab" installShellCompletion --cmd containerlab \ From be89d324d31fa392462d318424149c4cf7086c89 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 24 Jul 2025 12:05:01 +0000 Subject: [PATCH 48/72] olympus-unwrapped: 25.07.12.01 -> 25.07.23.01 --- pkgs/by-name/ol/olympus-unwrapped/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/ol/olympus-unwrapped/package.nix b/pkgs/by-name/ol/olympus-unwrapped/package.nix index b1125c5cbdd7..b668d78c130a 100644 --- a/pkgs/by-name/ol/olympus-unwrapped/package.nix +++ b/pkgs/by-name/ol/olympus-unwrapped/package.nix @@ -31,9 +31,9 @@ let phome = "$out/lib/olympus"; # The following variables are to be updated by the update script. - version = "25.07.12.01"; - buildId = "4934"; # IMPORTANT: This line is matched with regex in update.sh. - rev = "17634d29b91b737580c878ba96f73bd077fbfba0"; + version = "25.07.23.01"; + buildId = "4972"; # IMPORTANT: This line is matched with regex in update.sh. + rev = "2d4876fa93063df39ba8e2d6c97b57223f7b3b4f"; in buildDotnetModule { pname = "olympus-unwrapped"; @@ -44,7 +44,7 @@ buildDotnetModule { owner = "EverestAPI"; repo = "Olympus"; fetchSubmodules = true; # Required. See upstream's README. - hash = "sha256-Z6OWO6WCHhmmGI8dF23yiLNBy11Mutu941jY/0pxIkQ="; + hash = "sha256-30Lir9erklCPIEsreIWwjrSkuZtr5mJpqxXAMXawYyk="; }; nativeBuildInputs = [ From fd46b00d17d25e9859f7c8e1c1ff2c2f6b419c21 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 24 Jul 2025 12:51:25 +0000 Subject: [PATCH 49/72] saga: 9.9.0 -> 9.9.1 --- pkgs/by-name/sa/saga/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/sa/saga/package.nix b/pkgs/by-name/sa/saga/package.nix index 1c823d7bbafe..8f6ca63de84e 100644 --- a/pkgs/by-name/sa/saga/package.nix +++ b/pkgs/by-name/sa/saga/package.nix @@ -33,11 +33,11 @@ stdenv.mkDerivation rec { pname = "saga"; - version = "9.9.0"; + version = "9.9.1"; src = fetchurl { url = "mirror://sourceforge/saga-gis/saga-${version}.tar.gz"; - hash = "sha256-xS9h8QGm6PH8rx0qXmvolDpH9fy8ma7HlBVbQo5pX4Q="; + hash = "sha256-InypyVCk08tsByKaIBRFWldwRz1AkNCgFD3DL4OG84w="; }; sourceRoot = "saga-${version}/saga-gis"; From 65ba69b31ec792c8c572af5c3ff08f15ce5bf1e2 Mon Sep 17 00:00:00 2001 From: Anthony ROUSSEL Date: Wed, 23 Jul 2025 21:39:43 +0200 Subject: [PATCH 50/72] octodns-providers.ovh: init at 1.1.0 https://github.com/octodns/octodns-ovh --- .../oc/octodns/providers/ovh/package.nix | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 pkgs/by-name/oc/octodns/providers/ovh/package.nix diff --git a/pkgs/by-name/oc/octodns/providers/ovh/package.nix b/pkgs/by-name/oc/octodns/providers/ovh/package.nix new file mode 100644 index 000000000000..cd01f99c1ac2 --- /dev/null +++ b/pkgs/by-name/oc/octodns/providers/ovh/package.nix @@ -0,0 +1,47 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + octodns, + ovh, + pytestCheckHook, + setuptools, +}: + +buildPythonPackage rec { + pname = "octodns-ovh"; + version = "1.1.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "octodns"; + repo = "octodns-ovh"; + tag = "v${version}"; + hash = "sha256-UbxOdpG099G9oKyweIMH5JTP0W0MpLmsOWgQYEFD8sQ="; + }; + + build-system = [ + setuptools + ]; + + dependencies = [ + octodns + ovh + ]; + + env.OCTODNS_RELEASE = 1; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ "octodns_ovh" ]; + + meta = { + description = "OVHcloud DNS v6 API provider for octoDNS"; + homepage = "https://github.com/octodns/octodns-ovh"; + changelog = "https://github.com/octodns/octodns-ovh/blob/${src.tag}/CHANGELOG.md"; + license = lib.licenses.mit; + teams = [ lib.teams.octodns ]; + }; +} From e82cff6cb4966bd83bc6f2b35c44a8ae72cb5b7c Mon Sep 17 00:00:00 2001 From: K900 Date: Thu, 24 Jul 2025 16:07:53 +0300 Subject: [PATCH 51/72] linux_testing: 6.16-rc6 -> 6.16-rc7 --- pkgs/os-specific/linux/kernel/kernels-org.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/kernels-org.json b/pkgs/os-specific/linux/kernel/kernels-org.json index 67f49c6b22f0..57446d1642fe 100644 --- a/pkgs/os-specific/linux/kernel/kernels-org.json +++ b/pkgs/os-specific/linux/kernel/kernels-org.json @@ -1,7 +1,7 @@ { "testing": { - "version": "6.16-rc6", - "hash": "sha256:03sz5gbnz1s763nlq2sbqk3bmjca24hq2n9wrpqhy6gyrd11s22f" + "version": "6.16-rc7", + "hash": "sha256:071xwskg7rpa6j09khdxzzccqp8a2fk68l0p2bn7ycr51pyywxz9" }, "6.1": { "version": "6.1.146", From b1b640337494c62c22dc765adc42971aa4732179 Mon Sep 17 00:00:00 2001 From: K900 Date: Thu, 24 Jul 2025 16:07:57 +0300 Subject: [PATCH 52/72] linux_6_15: 6.15.7 -> 6.15.8 --- pkgs/os-specific/linux/kernel/kernels-org.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/kernels-org.json b/pkgs/os-specific/linux/kernel/kernels-org.json index 57446d1642fe..00dcfc727791 100644 --- a/pkgs/os-specific/linux/kernel/kernels-org.json +++ b/pkgs/os-specific/linux/kernel/kernels-org.json @@ -28,7 +28,7 @@ "hash": "sha256:0iakbyipani7rcm37xb0bsl5zn7h1m7vfhwfangn64gxm012amkf" }, "6.15": { - "version": "6.15.7", - "hash": "sha256:1sgq32ivnrvlqskmz6i5k9157y6c5x3r9lj3pl0i23habc8ds1rm" + "version": "6.15.8", + "hash": "sha256:19i87zpq3zhpg09sdirnzys2s2yrv9xn8mpibl1a6qmr2sy94znk" } } From 7812de8ec7cb8d7a1e2befb17387ca135d4d52cf Mon Sep 17 00:00:00 2001 From: K900 Date: Thu, 24 Jul 2025 16:08:00 +0300 Subject: [PATCH 53/72] linux_6_12: 6.12.39 -> 6.12.40 --- pkgs/os-specific/linux/kernel/kernels-org.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/kernels-org.json b/pkgs/os-specific/linux/kernel/kernels-org.json index 00dcfc727791..733e246bf2fd 100644 --- a/pkgs/os-specific/linux/kernel/kernels-org.json +++ b/pkgs/os-specific/linux/kernel/kernels-org.json @@ -24,8 +24,8 @@ "hash": "sha256:0dmbi7g156gknglcgb47kl1i29fa6q4rkx99m2glpiqykxr7k1mh" }, "6.12": { - "version": "6.12.39", - "hash": "sha256:0iakbyipani7rcm37xb0bsl5zn7h1m7vfhwfangn64gxm012amkf" + "version": "6.12.40", + "hash": "sha256:0cr9hi0m7p9jf0rdblign1ya40rckab9axiwxb62r3gr2w9sy4a8" }, "6.15": { "version": "6.15.8", From 727a3d5720886e58f1100fed60a3dd1d256fa605 Mon Sep 17 00:00:00 2001 From: K900 Date: Thu, 24 Jul 2025 16:08:03 +0300 Subject: [PATCH 54/72] linux_6_6: 6.6.99 -> 6.6.100 --- pkgs/os-specific/linux/kernel/kernels-org.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/kernels-org.json b/pkgs/os-specific/linux/kernel/kernels-org.json index 733e246bf2fd..ad213721dd9e 100644 --- a/pkgs/os-specific/linux/kernel/kernels-org.json +++ b/pkgs/os-specific/linux/kernel/kernels-org.json @@ -20,8 +20,8 @@ "hash": "sha256:0fm73yqzbzclh2achcj8arpg428d412k2wgmlfmyy6xzb1762qrx" }, "6.6": { - "version": "6.6.99", - "hash": "sha256:0dmbi7g156gknglcgb47kl1i29fa6q4rkx99m2glpiqykxr7k1mh" + "version": "6.6.100", + "hash": "sha256:1flpvypy88rmp2sbz3z4fxlgdylm5lxb5832bgsi8j5iam6yrh6n" }, "6.12": { "version": "6.12.40", From 8d781a1dc3aeb92c1b692277e33db75e3112f910 Mon Sep 17 00:00:00 2001 From: K900 Date: Thu, 24 Jul 2025 16:08:05 +0300 Subject: [PATCH 55/72] linux_6_1: 6.1.146 -> 6.1.147 --- pkgs/os-specific/linux/kernel/kernels-org.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/kernels-org.json b/pkgs/os-specific/linux/kernel/kernels-org.json index ad213721dd9e..2e159ff1e971 100644 --- a/pkgs/os-specific/linux/kernel/kernels-org.json +++ b/pkgs/os-specific/linux/kernel/kernels-org.json @@ -4,8 +4,8 @@ "hash": "sha256:071xwskg7rpa6j09khdxzzccqp8a2fk68l0p2bn7ycr51pyywxz9" }, "6.1": { - "version": "6.1.146", - "hash": "sha256:117gyi8zym09z2qarnv02i7v23v8596nqvllid07aydlcpihl9pv" + "version": "6.1.147", + "hash": "sha256:1xv6whvxjcdmvv0cil7nnac4hs2hxjnc98agx08xiqs179k2b3r1" }, "5.15": { "version": "5.15.189", From 6680f22c413fed6683795bf8f5448e0b138589bd Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Thu, 17 Jul 2025 06:38:26 +0200 Subject: [PATCH 56/72] =?UTF-8?q?ocamlPackages.brisk-reconciler:=20unstabl?= =?UTF-8?q?e-2020-12-02=20=E2=86=92=201.0.0-=CE=B11?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../brisk-reconciler/default.nix | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/pkgs/development/ocaml-modules/brisk-reconciler/default.nix b/pkgs/development/ocaml-modules/brisk-reconciler/default.nix index 91c9efc90e8f..d99e050d7642 100644 --- a/pkgs/development/ocaml-modules/brisk-reconciler/default.nix +++ b/pkgs/development/ocaml-modules/brisk-reconciler/default.nix @@ -4,23 +4,28 @@ lib, reason, ppxlib, + ocaml, }: +let + version = + if lib.versionAtLeast ocaml.version "5.3" then + throw "brisk-reconciler is not available for OCaml ${ocaml.version}" + else + "1.0.0-alpha1"; +in + buildDunePackage { pname = "brisk-reconciler"; - version = "unstable-2020-12-02"; - - duneVersion = "3"; + inherit version; src = fetchFromGitHub { owner = "briskml"; repo = "brisk-reconciler"; - rev = "c9d5c4cf5dd17ff2da994de2c3b0f34c72778f70"; - sha256 = "sha256-AAB4ZzBnwfwFXOAqX/sIT6imOl70F0YNMt96SWOOE9w="; + tag = "v${version}"; + hash = "sha256-Xj6GGsod3lnEEjrzPrlHwQAowq66uz8comlhpWK888k="; }; - nativeBuildInputs = [ reason ]; - buildInputs = [ ppxlib ]; From d48a5a8a094429e8b0898583873e868597f2eb7c Mon Sep 17 00:00:00 2001 From: TomaSajt <62384384+TomaSajt@users.noreply.github.com> Date: Thu, 24 Jul 2025 15:54:03 +0200 Subject: [PATCH 57/72] aliases.nix: add missing throws for removed packages --- pkgs/top-level/aliases.nix | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index c95c989ffdae..9d278d980217 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -766,7 +766,7 @@ mapAliases { gcj6 = throw "gcj6 has been removed from Nixpkgs, as it is unmaintained and obsolete"; # Added 2024-09-13 gcolor2 = throw "'gcolor2' has been removed due to lack of maintenance upstream and depending on gtk2. Consider using 'gcolor3' or 'eyedropper' instead"; # Added 2024-09-15 gdome2 = throw "'gdome2' has been removed from nixpkgs, as it is umaintained and obsolete"; # Added 2024-12-29 - geocode-glib = "throw 'geocode-glib' has been removed, as it was unused and used outdated libraries"; # Added 2025-04-16 + geocode-glib = throw "throw 'geocode-glib' has been removed, as it was unused and used outdated libraries"; # Added 2025-04-16 geos_3_11 = throw "geos_3_11 has been removed from nixpgks. Please use a more recent 'geos' instead."; gfbgraph = throw "'gfbgraph' has been removed as it was archived upstream and unused in nixpkgs"; # Added 2025-04-20 gfortran48 = throw "'gfortran48' has been removed from nixpkgs"; # Added 2024-09-10 @@ -893,7 +893,7 @@ mapAliases { gsignond = throw "'gsignond' and its plugins have been removed due to lack of maintenance upstream"; # added 2025-04-17 gsignondPlugins = throw "'gsignondPlugins' have been removed alongside 'gsignond' due to lack of maintenance upstream and depending on libsoup_2"; # added 2025-04-17 gtetrinet = throw "'gtetrinet' has been removed because it depends on GNOME 2 libraries"; # Added 2024-06-27 - gtk-engine-bluecurve = "'gtk-engine-bluecurve' has been removed as it has been archived upstream."; # Added 2024-12-04 + gtk-engine-bluecurve = throw "'gtk-engine-bluecurve' has been removed as it has been archived upstream."; # Added 2024-12-04 gtk2fontsel = throw "'gtk2fontsel' has been removed due to lack of maintenance upstream. GTK now has a built-in font chooser so it's no longer needed for newer apps"; # Added 2024-10-19 gtkcord4 = dissent; # Added 2024-03-10 gtkextra = throw "'gtkextra' has been removed due to lack of maintenance upstream."; # Added 2025-06-10 @@ -1810,7 +1810,7 @@ mapAliases { schildichat-desktop = schildichat-web; schildichat-desktop-wayland = schildichat-web; scitoken-cpp = scitokens-cpp; # Added 2024-02-12 - scry = "'scry' has been removed as it was archived upstream. Use 'crystalline' instead"; # Added 2025-02-12 + scry = throw "'scry' has been removed as it was archived upstream. Use 'crystalline' instead"; # Added 2025-02-12 semeru-bin-16 = throw "Semeru 16 has been removed as it has reached its end of life"; # Added 2024-08-01 semeru-jre-bin-16 = throw "Semeru 16 has been removed as it has reached its end of life"; # Added 2024-08-01 sensu = throw "sensu has been removed as the upstream project is deprecated. Consider using `sensu-go`"; # Added 2024-10-28 @@ -1996,9 +1996,9 @@ mapAliases { timelens = throw "'timelens' has been removed due to lack of upstream maintenance"; # Added 2025-01-25 tix = tclPackages.tix; # Added 2024-10-02 tkcvs = tkrev; # Added 2022-03-07 - tkgate = "'tkgate' has been removed as it is unmaintained"; # Added 2025-05-17 + tkgate = throw "'tkgate' has been removed as it is unmaintained"; # Added 2025-05-17 tkimg = tclPackages.tkimg; # Added 2024-10-02 - todiff = "'todiff' was removed due to lack of known users"; # Added 2025-01-25 + todiff = throw "'todiff' was removed due to lack of known users"; # Added 2025-01-25 toil = throw "toil was removed as it was broken and requires obsolete versions of libraries"; # Added 2024-09-22 tokodon = plasma5Packages.tokodon; tokyo-night-gtk = tokyonight-gtk-theme; # Added 2024-01-28 @@ -2049,7 +2049,7 @@ mapAliases { ubootBeagleboneBlack = throw "'ubootBeagleboneBlack' has been renamed to/replaced by 'ubootAmx335xEVM'"; # Converted to throw 2024-10-17 ubuntu_font_family = ubuntu-classic; # Added 2024-02-19 uclibc = uclibc-ng; # Added 2022-06-16 - unicap = "'unicap' has been removed because it is unmaintained"; # Added 2025-05-17 + unicap = throw "'unicap' has been removed because it is unmaintained"; # Added 2025-05-17 unicorn-emu = throw "'unicorn-emu' has been renamed to/replaced by 'unicorn'"; # Converted to throw 2024-10-17 uniffi-bindgen = throw "uniffi-bindgen has been removed since upstream no longer provides a standalone package for the CLI"; unifi-poller = unpoller; # Added 2022-11-24 From 8ab673b5fa793fdf8a93633ea527d421cd9c0d3c Mon Sep 17 00:00:00 2001 From: Casey Link Date: Thu, 24 Jul 2025 15:58:30 +0200 Subject: [PATCH 58/72] gickup: 0.10.38 -> 0.10.39 --- pkgs/by-name/gi/gickup/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/gi/gickup/package.nix b/pkgs/by-name/gi/gickup/package.nix index 5435cad7659a..47c8284ee12d 100644 --- a/pkgs/by-name/gi/gickup/package.nix +++ b/pkgs/by-name/gi/gickup/package.nix @@ -7,16 +7,16 @@ buildGoModule rec { pname = "gickup"; - version = "0.10.38"; + version = "0.10.39"; src = fetchFromGitHub { owner = "cooperspencer"; repo = "gickup"; tag = "v${version}"; - hash = "sha256-vthr4nkwuhvGXxH2P0uHeuQpjQFNTpGFHF+eXG2jiqk="; + hash = "sha256-Aalt/oiNzV2a8Ix/ruL4r3q0W1EY1UTe9IVPWNL+lLA="; }; - vendorHash = "sha256-RtuEpvux+8oJ829WEvz5OPfnYvFCdNo/9GCXhjXurRM="; + vendorHash = "sha256-Xtreh7nHovBYh0PnFYn2VuYGN8GQSmy6EPnZnHSdt/o="; ldflags = [ "-X main.version=${version}" ]; From 1dd8808e18962f73c6326f651b2db3435f5e0478 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 24 Jul 2025 14:04:25 +0000 Subject: [PATCH 59/72] inputplumber: 0.60.2 -> 0.60.7 --- pkgs/by-name/in/inputplumber/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/in/inputplumber/package.nix b/pkgs/by-name/in/inputplumber/package.nix index 5c10d9519ed7..f67b811b8b2b 100644 --- a/pkgs/by-name/in/inputplumber/package.nix +++ b/pkgs/by-name/in/inputplumber/package.nix @@ -10,17 +10,17 @@ rustPlatform.buildRustPackage rec { pname = "inputplumber"; - version = "0.60.2"; + version = "0.60.7"; src = fetchFromGitHub { owner = "ShadowBlip"; repo = "InputPlumber"; tag = "v${version}"; - hash = "sha256-zcy9scs7oRRLKm/FL6BfO64IstWY4HmTRxG/jJG0jLw="; + hash = "sha256-3o5Y6fbshC3oTerf8M+yuo01BbQAilkT7TdrlwO6YBs="; }; useFetchCargoVendor = true; - cargoHash = "sha256-fw7pM6HSy/8fNTYu7MqKiTl/2jdyDOLDBNhd0rpzb6M="; + cargoHash = "sha256-Tk3NCcturMHIs9hdGqwC87kqnhg/PvriCNSkYcq9+aM="; nativeBuildInputs = [ pkg-config From b4eee17286a2a4b616b144ef018071f8aee8e60b Mon Sep 17 00:00:00 2001 From: "Adam C. Stephens" Date: Thu, 24 Jul 2025 10:07:04 -0400 Subject: [PATCH 60/72] elixir-ls: fix elixir executable in path --- pkgs/development/beam-modules/elixir-ls/launch.sh.patch | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkgs/development/beam-modules/elixir-ls/launch.sh.patch b/pkgs/development/beam-modules/elixir-ls/launch.sh.patch index b497720e4bd9..ebbac1997fa4 100644 --- a/pkgs/development/beam-modules/elixir-ls/launch.sh.patch +++ b/pkgs/development/beam-modules/elixir-ls/launch.sh.patch @@ -1,5 +1,5 @@ diff --git c/scripts/launch.sh w/scripts/launch.sh -index 21afbb1e..6b61f0b4 100755 +index 21afbb1e..8bc5c382 100755 --- c/scripts/launch.sh +++ w/scripts/launch.sh @@ -1,125 +1,4 @@ @@ -129,7 +129,7 @@ index 21afbb1e..6b61f0b4 100755 # In case that people want to tweak the path, which Elixir to use, or # whatever prior to launching the language server or the debug adapter, we -@@ -138,29 +17,18 @@ fi +@@ -138,29 +17,22 @@ fi # script so we can correctly configure the Erlang library path to # include the local .ez files, and then do what we were asked to do. @@ -166,4 +166,8 @@ index 21afbb1e..6b61f0b4 100755 +ELX_STDLIB_PATH=${ELX_STDLIB_PATH:-@elixir@/lib/elixir} +export ELX_STDLIB_PATH + ++# ensure our elixir is in the path ++PATH="@elixir@/bin:$PATH" ++export PATH ++ +source "$SCRIPTPATH/exec.bash" From 66e97f7960c74ad73e39722d85c562cbcb7d9900 Mon Sep 17 00:00:00 2001 From: "\"Christopher Auer\"" Date: Thu, 24 Jul 2025 16:22:06 +0200 Subject: [PATCH 61/72] vimPlugins.opencode-nvim: init at 2025-07-24 --- pkgs/applications/editors/vim/plugins/generated.nix | 13 +++++++++++++ .../editors/vim/plugins/vim-plugin-names | 1 + 2 files changed, 14 insertions(+) diff --git a/pkgs/applications/editors/vim/plugins/generated.nix b/pkgs/applications/editors/vim/plugins/generated.nix index 955c598468bc..42ce508aabaf 100644 --- a/pkgs/applications/editors/vim/plugins/generated.nix +++ b/pkgs/applications/editors/vim/plugins/generated.nix @@ -12025,6 +12025,19 @@ final: prev: { meta.hydraPlatforms = [ ]; }; + opencode-nvim = buildVimPlugin { + pname = "opencode.nvim"; + version = "2025-07-24"; + src = fetchFromGitHub { + owner = "NickvanDyke"; + repo = "opencode.nvim"; + rev = "db3aa9ca3b738600c81e29646a3356477dabaa87"; + sha256 = "1yhspgja3zdnsf8r3ahci14cndk3bzxvq0w9jqggd7ya103nq6kz"; + }; + meta.homepage = "https://github.com/NickvanDyke/opencode.nvim/"; + meta.hydraPlatforms = [ ]; + }; + openingh-nvim = buildVimPlugin { pname = "openingh.nvim"; version = "2025-05-01"; diff --git a/pkgs/applications/editors/vim/plugins/vim-plugin-names b/pkgs/applications/editors/vim/plugins/vim-plugin-names index 330dba5b5178..8994b0de532c 100644 --- a/pkgs/applications/editors/vim/plugins/vim-plugin-names +++ b/pkgs/applications/editors/vim/plugins/vim-plugin-names @@ -923,6 +923,7 @@ https://github.com/sonph/onehalf/,, https://github.com/rmehri01/onenord.nvim/,main, https://github.com/tyru/open-browser-github.vim/,, https://github.com/tyru/open-browser.vim/,, +https://github.com/NickvanDyke/opencode.nvim/,HEAD, https://github.com/Almo7aya/openingh.nvim/,, https://github.com/salkin-mada/openscad.nvim/,HEAD, https://github.com/chipsenkbeil/org-roam.nvim/,HEAD, From cba7a76c0f25ada1bf49ad7f85ee4c953fce394a Mon Sep 17 00:00:00 2001 From: Defelo Date: Thu, 24 Jul 2025 10:55:20 +0000 Subject: [PATCH 62/72] chhoto-url: 6.2.10 -> 6.2.11 Changelog: https://github.com/SinTan1729/chhoto-url/releases/tag/6.2.11 Diff: https://github.com/SinTan1729/chhoto-url/compare/6.2.10...6.2.11 --- pkgs/by-name/ch/chhoto-url/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ch/chhoto-url/package.nix b/pkgs/by-name/ch/chhoto-url/package.nix index 57e4874fd2b3..e1af552d8fe9 100644 --- a/pkgs/by-name/ch/chhoto-url/package.nix +++ b/pkgs/by-name/ch/chhoto-url/package.nix @@ -8,13 +8,13 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "chhoto-url"; - version = "6.2.10"; + version = "6.2.11"; src = fetchFromGitHub { owner = "SinTan1729"; repo = "chhoto-url"; tag = finalAttrs.version; - hash = "sha256-56tbSOoYRtmRzKqRDe951JXOlPymRGtEyGSZ0dWXOcw="; + hash = "sha256-3VQmTQ6ZlDTRL3nx/sQxWLKgW8ee0Ts+C1CiWkiX2/g="; }; sourceRoot = "${finalAttrs.src.name}/actix"; @@ -24,7 +24,7 @@ rustPlatform.buildRustPackage (finalAttrs: { --replace-fail "./resources/" "${placeholder "out"}/share/chhoto-url/resources/" ''; - cargoHash = "sha256-z5BFo6X3Lpb/PJPMQ+3m1RozvXeHLaY81PABAE7gTTA="; + cargoHash = "sha256-QIqLzk/vAOrW0ain0Oq9tnqzCSyK4yDOYsjmil3xPc4="; postInstall = '' mkdir -p $out/share/chhoto-url From b6088b0d8e13e8d18464d78935f0130052784658 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Fri, 11 Jul 2025 16:27:56 +0200 Subject: [PATCH 63/72] nixos/nextcloud: remove with lib usage --- nixos/modules/services/web-apps/nextcloud.nix | 432 +++++++++--------- 1 file changed, 218 insertions(+), 214 deletions(-) diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix index 96c2ac7ec350..dcee09968bc1 100644 --- a/nixos/modules/services/web-apps/nextcloud.nix +++ b/nixos/modules/services/web-apps/nextcloud.nix @@ -4,10 +4,12 @@ pkgs, ... }: - -with lib; - let + inherit (lib) + mkIf + mkMerge + ; + cfg = config.services.nextcloud; overridePackage = cfg.package.override { @@ -43,7 +45,7 @@ let nix-apps = { enabled = cfg.extraApps != { }; linkTarget = pkgs.linkFarm "nix-apps" ( - mapAttrsToList (name: path: { inherit name path; }) cfg.extraApps + lib.mapAttrsToList (name: path: { inherit name path; }) cfg.extraApps ); writable = false; }; @@ -63,10 +65,10 @@ let '' mkdir $out ln -sfv "${overridePackage}"/* "$out" - ${concatStrings ( - mapAttrsToList ( + ${lib.concatStrings ( + lib.mapAttrsToList ( name: store: - optionalString (store.enabled && store ? linkTarget) '' + lib.optionalString (store.enabled && store ? linkTarget) '' if [ -e "$out"/${name} ]; then echo "Didn't expect ${name} already in $out!" exit 1 @@ -90,26 +92,26 @@ let intl sodium ] # recommended - ++ optional cfg.enableImagemagick imagick + ++ lib.optional cfg.enableImagemagick imagick # Optionally enabled depending on caching settings - ++ optional cfg.caching.apcu apcu - ++ optional cfg.caching.redis redis - ++ optional cfg.caching.memcached memcached - ++ optional (cfg.settings.log_type == "systemd") systemd + ++ lib.optional cfg.caching.apcu apcu + ++ lib.optional cfg.caching.redis redis + ++ lib.optional cfg.caching.memcached memcached + ++ lib.optional (cfg.settings.log_type == "systemd") systemd ) ++ cfg.phpExtraExtensions all; # Enabled by user extraConfig = toKeyValue cfg.phpOptions; }; - toKeyValue = generators.toKeyValue { - mkKeyValue = generators.mkKeyValueDefault { } " = "; + toKeyValue = lib.generators.toKeyValue { + mkKeyValue = lib.generators.mkKeyValueDefault { } " = "; }; - phpCli = concatStringsSep " " ( + phpCli = lib.concatStringsSep " " ( [ - "${getExe phpPackage}" + "${lib.getExe phpPackage}" ] - ++ optionals (cfg.cli.memoryLimit != null) [ + ++ lib.optionals (cfg.cli.memoryLimit != null) [ "-dmemory_limit=${cfg.cli.memoryLimit}" ] ); @@ -198,20 +200,20 @@ let let s3 = c.objectstore.s3; in - optionalString s3.enable '' + lib.optionalString s3.enable '' 'objectstore' => [ 'class' => '\\OC\\Files\\ObjectStore\\S3', 'arguments' => [ 'bucket' => '${s3.bucket}', - 'verify_bucket_exists' => ${boolToString s3.verify_bucket_exists}, + 'verify_bucket_exists' => ${lib.boolToString s3.verify_bucket_exists}, 'key' => '${s3.key}', 'secret' => nix_read_secret('s3_secret'), - ${optionalString (s3.hostname != null) "'hostname' => '${s3.hostname}',"} - ${optionalString (s3.port != null) "'port' => ${toString s3.port},"} - 'use_ssl' => ${boolToString s3.useSsl}, - ${optionalString (s3.region != null) "'region' => '${s3.region}',"} - 'use_path_style' => ${boolToString s3.usePathStyle}, - ${optionalString (s3.sseCKeyFile != null) "'sse_c_key' => nix_read_secret('s3_sse_c_key'),"} + ${lib.optionalString (s3.hostname != null) "'hostname' => '${s3.hostname}',"} + ${lib.optionalString (s3.port != null) "'port' => ${toString s3.port},"} + 'use_ssl' => ${lib.boolToString s3.useSsl}, + ${lib.optionalString (s3.region != null) "'region' => '${s3.region}',"} + 'use_path_style' => ${lib.boolToString s3.usePathStyle}, + ${lib.optionalString (s3.sseCKeyFile != null) "'sse_c_key' => nix_read_secret('s3_sse_c_key'),"} ], ] ''; @@ -220,17 +222,17 @@ let let x = cfg.appstoreEnable; in - if x == null then "false" else boolToString x; + if x == null then "false" else lib.boolToString x; mkAppStoreConfig = name: { enabled, writable, ... }: - optionalString enabled '' - [ 'path' => '${webroot}/${name}', 'url' => '/${name}', 'writable' => ${boolToString writable} ], + lib.optionalString enabled '' + [ 'path' => '${webroot}/${name}', 'url' => '/${name}', 'writable' => ${lib.boolToString writable} ], ''; in pkgs.writeText "nextcloud-config.php" '' [ - ${concatStrings (mapAttrsToList mkAppStoreConfig appStores)} + ${lib.concatStrings (lib.mapAttrsToList mkAppStoreConfig appStores)} ], - ${optionalString (showAppStoreSetting) "'appstoreenabled' => ${renderedAppStoreSetting},"} - ${optionalString cfg.caching.apcu "'memcache.local' => '\\OC\\Memcache\\APCu',"} - ${optionalString (c.dbname != null) "'dbname' => '${c.dbname}',"} - ${optionalString (c.dbhost != null) "'dbhost' => '${c.dbhost}',"} - ${optionalString (c.dbuser != null) "'dbuser' => '${c.dbuser}',"} - ${optionalString (c.dbtableprefix != null) "'dbtableprefix' => '${toString c.dbtableprefix}',"} - ${optionalString (c.dbpassFile != null) "'dbpassword' => nix_read_secret('dbpass'),"} + ${lib.optionalString (showAppStoreSetting) "'appstoreenabled' => ${renderedAppStoreSetting},"} + ${lib.optionalString cfg.caching.apcu "'memcache.local' => '\\OC\\Memcache\\APCu',"} + ${lib.optionalString (c.dbname != null) "'dbname' => '${c.dbname}',"} + ${lib.optionalString (c.dbhost != null) "'dbhost' => '${c.dbhost}',"} + ${lib.optionalString (c.dbuser != null) "'dbuser' => '${c.dbuser}',"} + ${lib.optionalString ( + c.dbtableprefix != null + ) "'dbtableprefix' => '${toString c.dbtableprefix}',"} + ${lib.optionalString (c.dbpassFile != null) "'dbpassword' => nix_read_secret('dbpass'),"} 'dbtype' => '${c.dbtype}', ${objectstoreConfig} ]; @@ -296,7 +300,7 @@ let "impossible: this should never happen (decoding generated settings file %s failed)" )); - ${optionalString (cfg.secretFile != null) '' + ${lib.optionalString (cfg.secretFile != null) '' $CONFIG = array_replace_recursive($CONFIG, nix_read_secret_and_decode_json_file('secret_file')); ''} ''; @@ -304,90 +308,90 @@ in { imports = [ - (mkRenamedOptionModule + (lib.mkRenamedOptionModule [ "services" "nextcloud" "cron" "memoryLimit" ] [ "services" "nextcloud" "cli" "memoryLimit" ] ) - (mkRemovedOptionModule [ "services" "nextcloud" "enableBrokenCiphersForSSE" ] '' + (lib.mkRemovedOptionModule [ "services" "nextcloud" "enableBrokenCiphersForSSE" ] '' This option has no effect since there's no supported Nextcloud version packaged here using OpenSSL for RC4 SSE. '') - (mkRemovedOptionModule [ "services" "nextcloud" "config" "dbport" ] '' + (lib.mkRemovedOptionModule [ "services" "nextcloud" "config" "dbport" ] '' Add port to services.nextcloud.config.dbhost instead. '') - (mkRenamedOptionModule + (lib.mkRenamedOptionModule [ "services" "nextcloud" "logLevel" ] [ "services" "nextcloud" "settings" "loglevel" ] ) - (mkRenamedOptionModule + (lib.mkRenamedOptionModule [ "services" "nextcloud" "logType" ] [ "services" "nextcloud" "settings" "log_type" ] ) - (mkRenamedOptionModule + (lib.mkRenamedOptionModule [ "services" "nextcloud" "config" "defaultPhoneRegion" ] [ "services" "nextcloud" "settings" "default_phone_region" ] ) - (mkRenamedOptionModule + (lib.mkRenamedOptionModule [ "services" "nextcloud" "config" "overwriteProtocol" ] [ "services" "nextcloud" "settings" "overwriteprotocol" ] ) - (mkRenamedOptionModule + (lib.mkRenamedOptionModule [ "services" "nextcloud" "skeletonDirectory" ] [ "services" "nextcloud" "settings" "skeletondirectory" ] ) - (mkRenamedOptionModule + (lib.mkRenamedOptionModule [ "services" "nextcloud" "globalProfiles" ] [ "services" "nextcloud" "settings" "profile.enabled" ] ) - (mkRenamedOptionModule + (lib.mkRenamedOptionModule [ "services" "nextcloud" "config" "extraTrustedDomains" ] [ "services" "nextcloud" "settings" "trusted_domains" ] ) - (mkRenamedOptionModule + (lib.mkRenamedOptionModule [ "services" "nextcloud" "config" "trustedProxies" ] [ "services" "nextcloud" "settings" "trusted_proxies" ] ) - (mkRenamedOptionModule + (lib.mkRenamedOptionModule [ "services" "nextcloud" "extraOptions" ] [ "services" "nextcloud" "settings" ] ) - (mkRenamedOptionModule + (lib.mkRenamedOptionModule [ "services" "nextcloud" "config" "objectstore" "s3" "autocreate" ] [ "services" "nextcloud" "config" "objectstore" "s3" "verify_bucket_exists" ] ) ]; options.services.nextcloud = { - enable = mkEnableOption "nextcloud"; + enable = lib.mkEnableOption "nextcloud"; - hostName = mkOption { - type = types.str; + hostName = lib.mkOption { + type = lib.types.str; description = "FQDN for the nextcloud instance."; }; - home = mkOption { - type = types.str; + home = lib.mkOption { + type = lib.types.str; default = "/var/lib/nextcloud"; description = "Storage path of nextcloud."; }; - datadir = mkOption { - type = types.str; + datadir = lib.mkOption { + type = lib.types.str; default = config.services.nextcloud.home; - defaultText = literalExpression "config.services.nextcloud.home"; + defaultText = lib.literalExpression "config.services.nextcloud.home"; description = '' Nextcloud's data storage path. Will be [](#opt-services.nextcloud.home) by default. This folder will be populated with a config.php file and a data folder which contains the state of the instance (excluding the database)."; ''; example = "/mnt/nextcloud-file"; }; - extraApps = mkOption { - type = types.attrsOf types.package; + extraApps = lib.mkOption { + type = lib.types.attrsOf lib.types.package; default = { }; description = '' Extra apps to install. Should be an attrSet of appid to packages generated by fetchNextcloudApp. The appid must be identical to the "id" value in the apps appinfo/info.xml. Using this will disable the appstore to prevent Nextcloud from updating these apps (see [](#opt-services.nextcloud.appstoreEnable)). ''; - example = literalExpression '' + example = lib.literalExpression '' { inherit (pkgs.nextcloud31Packages.apps) mail calendar contacts; phonetrack = pkgs.fetchNextcloudApp { @@ -399,16 +403,16 @@ in } ''; }; - extraAppsEnable = mkOption { - type = types.bool; + extraAppsEnable = lib.mkOption { + type = lib.types.bool; default = true; description = '' Automatically enable the apps in [](#opt-services.nextcloud.extraApps) every time Nextcloud starts. If set to false, apps need to be enabled in the Nextcloud web user interface or with `nextcloud-occ app:enable`. ''; }; - appstoreEnable = mkOption { - type = types.nullOr types.bool; + appstoreEnable = lib.mkOption { + type = lib.types.nullOr lib.types.bool; default = null; example = true; description = '' @@ -418,8 +422,8 @@ in Set this to false to disable the installation of apps from the global appstore. App management is always enabled regardless of this setting. ''; }; - https = mkOption { - type = types.bool; + https = lib.mkOption { + type = lib.types.bool; default = false; description = '' Use HTTPS for generated links. @@ -427,21 +431,21 @@ in Be aware that this also enables HTTP Strict Transport Security (HSTS) headers. ''; }; - package = mkOption { - type = types.package; + package = lib.mkOption { + type = lib.types.package; description = "Which package to use for the Nextcloud instance."; relatedPackages = [ "nextcloud30" "nextcloud31" ]; }; - phpPackage = mkPackageOption pkgs "php" { + phpPackage = lib.mkPackageOption pkgs "php" { default = [ "php83" ]; example = "php82"; }; - finalPackage = mkOption { - type = types.package; + finalPackage = lib.mkOption { + type = lib.types.package; readOnly = true; description = '' Package to the finalized Nextcloud package, including all installed apps. @@ -449,17 +453,17 @@ in ''; }; - maxUploadSize = mkOption { + maxUploadSize = lib.mkOption { default = "512M"; - type = types.str; + type = lib.types.str; description = '' The upload limit for files. This changes the relevant options in php.ini and nginx if enabled. ''; }; - webfinger = mkOption { - type = types.bool; + webfinger = lib.mkOption { + type = lib.types.bool; default = false; description = '' Enable this option if you plan on using the webfinger plugin. @@ -467,31 +471,31 @@ in ''; }; - phpExtraExtensions = mkOption { - type = with types; functionTo (listOf package); + phpExtraExtensions = lib.mkOption { + type = lib.types.functionTo (lib.types.listOf lib.types.package); default = all: [ ]; - defaultText = literalExpression "all: []"; + defaultText = lib.literalExpression "all: []"; description = '' Additional PHP extensions to use for Nextcloud. By default, only extensions necessary for a vanilla Nextcloud installation are enabled, but you may choose from the list of available extensions and add further ones. This is sometimes necessary to be able to install a certain Nextcloud app that has additional requirements. ''; - example = literalExpression '' + example = lib.literalExpression '' all: [ all.pdlib all.bz2 ] ''; }; - phpOptions = mkOption { - type = - with types; - attrsOf (oneOf [ - str - int - ]); - defaultText = literalExpression ( - generators.toPretty { } ( - defaultPHPSettings // { "openssl.cafile" = literalExpression "config.security.pki.caBundle"; } + phpOptions = lib.mkOption { + type = lib.types.attrsOf ( + lib.types.oneOf [ + lib.types.str + lib.types.int + ] + ); + defaultText = lib.literalExpression ( + lib.generators.toPretty { } ( + defaultPHPSettings // { "openssl.cafile" = lib.literalExpression "config.security.pki.caBundle"; } ) ); description = '' @@ -523,14 +527,14 @@ in ''; }; - poolSettings = mkOption { - type = - with types; - attrsOf (oneOf [ - str - int - bool - ]); + poolSettings = lib.mkOption { + type = lib.types.attrsOf ( + lib.types.oneOf [ + lib.types.str + lib.types.int + lib.types.bool + ] + ); default = { "pm" = "dynamic"; "pm.max_children" = "120"; @@ -548,16 +552,16 @@ in ''; }; - poolConfig = mkOption { - type = types.nullOr types.lines; + poolConfig = lib.mkOption { + type = lib.types.nullOr lib.types.lines; default = null; description = '' Options for Nextcloud's PHP pool. See the documentation on `php-fpm.conf` for details on configuration directives. ''; }; - fastcgiTimeout = mkOption { - type = types.int; + fastcgiTimeout = lib.mkOption { + type = lib.types.int; default = 120; description = '' FastCGI timeout for database connection in seconds. @@ -566,8 +570,8 @@ in database = { - createLocally = mkOption { - type = types.bool; + createLocally = lib.mkOption { + type = lib.types.bool; default = false; description = '' Whether to create the database and database user locally. @@ -577,9 +581,9 @@ in }; config = { - dbtype = mkOption { - type = types.nullOr ( - types.enum [ + dbtype = lib.mkOption { + type = lib.types.nullOr ( + lib.types.enum [ "sqlite" "pgsql" "mysql" @@ -588,25 +592,25 @@ in default = null; description = "Database type."; }; - dbname = mkOption { - type = types.nullOr types.str; + dbname = lib.mkOption { + type = lib.types.nullOr lib.types.str; default = "nextcloud"; description = "Database name."; }; - dbuser = mkOption { - type = types.nullOr types.str; + dbuser = lib.mkOption { + type = lib.types.nullOr lib.types.str; default = "nextcloud"; description = "Database user."; }; - dbpassFile = mkOption { - type = types.nullOr types.str; + dbpassFile = lib.mkOption { + type = lib.types.nullOr lib.types.str; default = null; description = '' The full path to a file that contains the database password. ''; }; - dbhost = mkOption { - type = types.nullOr types.str; + dbhost = lib.mkOption { + type = lib.types.nullOr lib.types.str; default = if pgsqlLocal then "/run/postgresql" @@ -623,8 +627,8 @@ in defaults to the correct Unix socket instead. ''; }; - dbtableprefix = mkOption { - type = types.nullOr types.str; + dbtableprefix = lib.mkOption { + type = lib.types.nullOr lib.types.str; default = null; description = '' Table prefix in Nextcloud's database. @@ -634,8 +638,8 @@ in with installations that were originally provisioned with Nextcloud <20. ''; }; - adminuser = mkOption { - type = types.str; + adminuser = lib.mkOption { + type = lib.types.str; default = "root"; description = '' Username for the admin account. The username is only set during the @@ -643,8 +647,8 @@ in ID internally, it cannot be changed later! ''; }; - adminpassFile = mkOption { - type = types.str; + adminpassFile = lib.mkOption { + type = lib.types.str; description = '' The full path to a file that contains the admin's password. The password is set only in the initial setup of Nextcloud by the systemd service `nextcloud-setup.service`. @@ -652,7 +656,7 @@ in }; objectstore = { s3 = { - enable = mkEnableOption '' + enable = lib.mkEnableOption '' S3 object storage as primary storage. This mounts a bucket on an Amazon S3 object storage or compatible @@ -661,66 +665,66 @@ in Further details about this feature can be found in the [upstream documentation](https://docs.nextcloud.com/server/22/admin_manual/configuration_files/primary_storage.html) ''; - bucket = mkOption { - type = types.str; + bucket = lib.mkOption { + type = lib.types.str; example = "nextcloud"; description = '' The name of the S3 bucket. ''; }; - verify_bucket_exists = mkOption { - type = types.bool; + verify_bucket_exists = lib.mkOption { + type = lib.types.bool; default = true; description = '' Create the objectstore bucket if it does not exist. ''; }; - key = mkOption { - type = types.str; + key = lib.mkOption { + type = lib.types.str; example = "EJ39ITYZEUH5BGWDRUFY"; description = '' The access key for the S3 bucket. ''; }; - secretFile = mkOption { - type = types.str; + secretFile = lib.mkOption { + type = lib.types.str; example = "/var/nextcloud-objectstore-s3-secret"; description = '' The full path to a file that contains the access secret. ''; }; - hostname = mkOption { - type = types.nullOr types.str; + hostname = lib.mkOption { + type = lib.types.nullOr lib.types.str; default = null; example = "example.com"; description = '' Required for some non-Amazon implementations. ''; }; - port = mkOption { - type = types.nullOr types.port; + port = lib.mkOption { + type = lib.types.nullOr lib.types.port; default = null; description = '' Required for some non-Amazon implementations. ''; }; - useSsl = mkOption { - type = types.bool; + useSsl = lib.mkOption { + type = lib.types.bool; default = true; description = '' Use SSL for objectstore access. ''; }; - region = mkOption { - type = types.nullOr types.str; + region = lib.mkOption { + type = lib.types.nullOr lib.types.str; default = null; example = "REGION"; description = '' Required for some non-Amazon implementations. ''; }; - usePathStyle = mkOption { - type = types.bool; + usePathStyle = lib.mkOption { + type = lib.types.bool; default = false; description = '' Required for some non-Amazon S3 implementations. @@ -731,8 +735,8 @@ in `http://hostname.domain/bucket` instead. ''; }; - sseCKeyFile = mkOption { - type = types.nullOr types.path; + sseCKeyFile = lib.mkOption { + type = lib.types.nullOr lib.types.path; default = null; example = "/var/nextcloud-objectstore-s3-sse-c-key"; description = '' @@ -755,7 +759,7 @@ in }; enableImagemagick = - mkEnableOption '' + lib.mkEnableOption '' the ImageMagick module for PHP. This is used by the theming app and for generating previews of certain images (e.g. SVG and HEIF). You may want to disable it for increased security. In that case, previews will still be available @@ -769,7 +773,7 @@ in configureRedis = lib.mkOption { type = lib.types.bool; default = config.services.nextcloud.notify_push.enable; - defaultText = literalExpression "config.services.nextcloud.notify_push.enable"; + defaultText = lib.literalExpression "config.services.nextcloud.notify_push.enable"; description = '' Whether to configure Nextcloud to use the recommended Redis settings for small instances. @@ -780,15 +784,15 @@ in }; caching = { - apcu = mkOption { - type = types.bool; + apcu = lib.mkOption { + type = lib.types.bool; default = true; description = '' Whether to load the APCu module into PHP. ''; }; - redis = mkOption { - type = types.bool; + redis = lib.mkOption { + type = lib.types.bool; default = false; description = '' Whether to load the Redis module into PHP. @@ -796,8 +800,8 @@ in See ''; }; - memcached = mkOption { - type = types.bool; + memcached = lib.mkOption { + type = lib.types.bool; default = false; description = '' Whether to load the Memcached module into PHP. @@ -807,15 +811,15 @@ in }; }; autoUpdateApps = { - enable = mkOption { - type = types.bool; + enable = lib.mkOption { + type = lib.types.bool; default = false; description = '' Run a regular auto-update of all apps installed from the Nextcloud app store. ''; }; - startAt = mkOption { - type = with types; either str (listOf str); + startAt = lib.mkOption { + type = lib.types.either lib.types.str (lib.types.listOf lib.types.str); default = "05:00:00"; example = "Sun 14:00:00"; description = '' @@ -823,22 +827,22 @@ in ''; }; }; - occ = mkOption { - type = types.package; + occ = lib.mkOption { + type = lib.types.package; default = occ; - defaultText = literalMD "generated script"; + defaultText = lib.literalMD "generated script"; description = '' The nextcloud-occ program preconfigured to target this Nextcloud instance. ''; }; - settings = mkOption { - type = types.submodule { + settings = lib.mkOption { + type = lib.types.submodule { freeformType = jsonFormat.type; options = { - loglevel = mkOption { - type = types.ints.between 0 4; + loglevel = lib.mkOption { + type = lib.types.ints.between 0 4; default = 2; description = '' Log level value between 0 (DEBUG) and 4 (FATAL). @@ -854,8 +858,8 @@ in - 4 (fatal): Log only fatal errors that cause the server to stop. ''; }; - log_type = mkOption { - type = types.enum [ + log_type = lib.mkOption { + type = lib.types.enum [ "errorlog" "file" "syslog" @@ -868,17 +872,17 @@ in See the [nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/logging_configuration.html) for details. ''; }; - skeletondirectory = mkOption { + skeletondirectory = lib.mkOption { default = ""; - type = types.str; + type = lib.types.str; description = '' The directory where the skeleton files are located. These files will be copied to the data directory of new users. Leave empty to not copy any skeleton files. ''; }; - trusted_domains = mkOption { - type = types.listOf types.str; + trusted_domains = lib.mkOption { + type = lib.types.listOf lib.types.str; default = [ ]; description = '' Trusted domains, from which the nextcloud installation will be @@ -886,16 +890,16 @@ in `services.nextcloud.hostname` here. ''; }; - trusted_proxies = mkOption { - type = types.listOf types.str; + trusted_proxies = lib.mkOption { + type = lib.types.listOf lib.types.str; default = [ ]; description = '' Trusted proxies, to provide if the nextcloud installation is being proxied to secure against e.g. spoofing. ''; }; - overwriteprotocol = mkOption { - type = types.enum [ + overwriteprotocol = lib.mkOption { + type = lib.types.enum [ "" "http" "https" @@ -909,9 +913,9 @@ in Nextcloud may be served via HTTPS. ''; }; - default_phone_region = mkOption { + default_phone_region = lib.mkOption { default = ""; - type = types.str; + type = lib.types.str; example = "DE"; description = '' An [ISO 3166-1](https://www.iso.org/iso-3166-country-codes.html) @@ -922,7 +926,7 @@ in the `+49` prefix can be omitted for phone numbers. ''; }; - "profile.enabled" = mkEnableOption "global profiles" // { + "profile.enabled" = lib.mkEnableOption "global profiles" // { description = '' Makes user-profiles globally available under `nextcloud.tld/u/user.name`. Even though it's enabled by default in Nextcloud, it must be explicitly enabled @@ -947,7 +951,7 @@ in description = '' Extra options which should be appended to Nextcloud's config.php file. ''; - example = literalExpression '' + example = lib.literalExpression '' { redis = { host = "/run/redis/redis.sock"; @@ -960,8 +964,8 @@ in ''; }; - secretFile = mkOption { - type = types.nullOr types.str; + secretFile = lib.mkOption { + type = lib.types.nullOr lib.types.str; default = null; description = '' Secret options which will be appended to Nextcloud's config.php file (written as JSON, in the same @@ -971,13 +975,13 @@ in }; nginx = { - recommendedHttpHeaders = mkOption { - type = types.bool; + recommendedHttpHeaders = lib.mkOption { + type = lib.types.bool; default = true; description = "Enable additional recommended HTTP response headers"; }; - hstsMaxAge = mkOption { - type = types.ints.positive; + hstsMaxAge = lib.mkOption { + type = lib.types.ints.positive; default = 15552000; description = '' Value for the `max-age` directive of the HTTP @@ -987,8 +991,8 @@ in directive and header. ''; }; - enableFastcgiRequestBuffering = mkOption { - type = types.bool; + enableFastcgiRequestBuffering = lib.mkOption { + type = lib.types.bool; default = false; description = '' Whether to buffer requests against fastcgi requests. This is a workaround @@ -1006,8 +1010,8 @@ in }; }; - cli.memoryLimit = mkOption { - type = types.nullOr types.str; + cli.memoryLimit = lib.mkOption { + type = lib.types.nullOr lib.types.str; default = null; example = "1G"; description = '' @@ -1036,27 +1040,27 @@ in ''; in - (optional (cfg.poolConfig != null) '' + (lib.optional (cfg.poolConfig != null) '' Using config.services.nextcloud.poolConfig is deprecated and will become unsupported in a future release. Please migrate your configuration to config.services.nextcloud.poolSettings. '') - ++ (optional (cfg.config.dbtableprefix != null) '' + ++ (lib.optional (cfg.config.dbtableprefix != null) '' Using `services.nextcloud.config.dbtableprefix` is deprecated. Fresh installations with this option set are not allowed anymore since v20. If you have an existing installation with a custom table prefix, make sure it is set correctly in `config.php` and remove the option from your NixOS config. '') - ++ (optional (versionOlder overridePackage.version "26") (upgradeWarning 25 "23.05")) - ++ (optional (versionOlder overridePackage.version "27") (upgradeWarning 26 "23.11")) - ++ (optional (versionOlder overridePackage.version "28") (upgradeWarning 27 "24.05")) - ++ (optional (versionOlder overridePackage.version "29") (upgradeWarning 28 "24.11")) - ++ (optional (versionOlder overridePackage.version "30") (upgradeWarning 29 "24.11")) - ++ (optional (versionOlder overridePackage.version "31") (upgradeWarning 30 "25.05")); + ++ (lib.optional (lib.versionOlder overridePackage.version "26") (upgradeWarning 25 "23.05")) + ++ (lib.optional (lib.versionOlder overridePackage.version "27") (upgradeWarning 26 "23.11")) + ++ (lib.optional (lib.versionOlder overridePackage.version "28") (upgradeWarning 27 "24.05")) + ++ (lib.optional (lib.versionOlder overridePackage.version "29") (upgradeWarning 28 "24.11")) + ++ (lib.optional (lib.versionOlder overridePackage.version "30") (upgradeWarning 29 "24.11")) + ++ (lib.optional (lib.versionOlder overridePackage.version "31") (upgradeWarning 30 "25.05")); services.nextcloud.package = with pkgs; - mkDefault ( + lib.mkDefault ( if pkgs ? nextcloud then throw '' The `pkgs.nextcloud`-attribute has been removed. If it's supposed to be the default @@ -1074,7 +1078,7 @@ in ); services.nextcloud.phpOptions = mkMerge [ - (mapAttrs (const mkOptionDefault) defaultPHPSettings) + (lib.mapAttrs (lib.const lib.mkOptionDefault) defaultPHPSettings) { upload_max_filesize = cfg.maxUploadSize; post_max_size = cfg.maxUploadSize; @@ -1163,8 +1167,8 @@ in arg = "ADMINPASS"; value = ''"$(<"$CREDENTIALS_DIRECTORY/adminpass")"''; }; - installFlags = concatStringsSep " \\\n " ( - mapAttrsToList (k: v: "${k} ${toString v}") { + installFlags = lib.concatStringsSep " \\\n " ( + lib.mapAttrsToList (k: v: "${k} ${toString v}") { "--database" = ''"${c.dbtype}"''; # The following attributes are optional depending on the type of # database. Those that evaluate to null on the left hand side @@ -1185,8 +1189,8 @@ in ${lib.getExe occ} maintenance:install \ ${installFlags} ''; - occSetTrustedDomainsCmd = concatStringsSep "\n" ( - imap0 (i: v: '' + occSetTrustedDomainsCmd = lib.concatStringsSep "\n" ( + lib.imap0 (i: v: '' ${lib.getExe occ} config:system:set trusted_domains \ ${toString i} --value="${toString v}" '') (lib.unique ([ cfg.hostName ] ++ cfg.settings.trusted_domains)) @@ -1197,12 +1201,12 @@ in wantedBy = [ "multi-user.target" ]; wants = [ "nextcloud-update-db.service" ]; before = [ "phpfpm-nextcloud.service" ]; - after = optional mysqlLocal "mysql.service" ++ optional pgsqlLocal "postgresql.target"; - requires = optional mysqlLocal "mysql.service" ++ optional pgsqlLocal "postgresql.target"; + after = lib.optional mysqlLocal "mysql.service" ++ lib.optional pgsqlLocal "postgresql.target"; + requires = lib.optional mysqlLocal "mysql.service" ++ lib.optional pgsqlLocal "postgresql.target"; path = [ occ ]; restartTriggers = [ overrideConfig ]; script = '' - ${optionalString (c.dbpassFile != null) '' + ${lib.optionalString (c.dbpassFile != null) '' if [ -z "$(<"$CREDENTIALS_DIRECTORY/dbpass")" ]; then echo "dbpassFile ${c.dbpassFile} is empty!" exit 1 @@ -1222,7 +1226,7 @@ in exit 1 fi - ${concatMapStrings + ${lib.concatMapStrings (name: '' if [ -d "${cfg.home}"/${name} ]; then echo "Cleaning up ${name}; these are now bundled in the webroot store-path!" @@ -1244,9 +1248,9 @@ in ${lib.getExe occ} config:system:delete trusted_domains - ${optionalString (cfg.extraAppsEnable && cfg.extraApps != { }) '' + ${lib.optionalString (cfg.extraAppsEnable && cfg.extraApps != { }) '' # Try to enable apps - ${lib.getExe occ} app:enable ${concatStringsSep " " (attrNames cfg.extraApps)} + ${lib.getExe occ} app:enable ${lib.concatStringsSep " " (lib.attrNames cfg.extraApps)} ''} ${occSetTrustedDomainsCmd} @@ -1356,7 +1360,7 @@ in PATH = "/run/wrappers/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin:/usr/bin:/bin"; }; settings = - mapAttrs (name: mkDefault) { + lib.mapAttrs (name: lib.mkDefault) { "listen.owner" = config.services.nginx.user; "listen.group" = config.services.nginx.group; } @@ -1410,13 +1414,13 @@ in services.nextcloud = { caching.redis = lib.mkIf cfg.configureRedis true; settings = mkMerge [ - ({ + { datadirectory = lib.mkDefault "${datadir}/data"; trusted_domains = [ cfg.hostName ]; "upgrade.disable-web" = true; # NixOS already provides its own integrity check and the nix store is read-only, therefore Nextcloud does not need to do its own integrity checks. "integrity.check.disabled" = true; - }) + } (lib.mkIf cfg.configureRedis { "memcache.distributed" = ''\OC\Memcache\Redis''; "memcache.locking" = ''\OC\Memcache\Redis''; @@ -1428,7 +1432,7 @@ in ]; }; - services.nginx.enable = mkDefault true; + services.nginx.enable = lib.mkDefault true; services.nginx.virtualHosts.${cfg.hostName} = { root = webroot; @@ -1527,7 +1531,7 @@ in }; extraConfig = '' index index.php index.html /index.php$request_uri; - ${optionalString (cfg.nginx.recommendedHttpHeaders) '' + ${lib.optionalString (cfg.nginx.recommendedHttpHeaders) '' add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; add_header X-Robots-Tag "noindex, nofollow"; @@ -1535,7 +1539,7 @@ in add_header X-Frame-Options sameorigin; add_header Referrer-Policy no-referrer; ''} - ${optionalString (cfg.https) '' + ${lib.optionalString (cfg.https) '' add_header Strict-Transport-Security "max-age=${toString cfg.nginx.hstsMaxAge}; includeSubDomains" always; ''} client_max_body_size ${cfg.maxUploadSize}; @@ -1548,7 +1552,7 @@ in gzip_proxied expired no-cache no-store private no_last_modified no_etag auth; gzip_types application/atom+xml text/javascript application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy; - ${optionalString cfg.webfinger '' + ${lib.optionalString cfg.webfinger '' rewrite ^/.well-known/host-meta /public.php?service=host-meta last; rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last; ''} @@ -1558,5 +1562,5 @@ in ]); meta.doc = ./nextcloud.md; - meta.maintainers = teams.nextcloud.members; + meta.maintainers = lib.teams.nextcloud.members; } From dd6fc34a7043f12cf2414c9bd4e8acf80844b274 Mon Sep 17 00:00:00 2001 From: Marcin Serwin Date: Sun, 6 Jul 2025 22:55:32 +0200 Subject: [PATCH 64/72] materialx: 1.38.10 -> 1.39.3 Signed-off-by: Marcin Serwin --- .../python-modules/materialx/default.nix | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/pkgs/development/python-modules/materialx/default.nix b/pkgs/development/python-modules/materialx/default.nix index ac858b468fdd..4e47efbb27ce 100644 --- a/pkgs/development/python-modules/materialx/default.nix +++ b/pkgs/development/python-modules/materialx/default.nix @@ -8,7 +8,7 @@ libX11, libXt, libGL, - openimageio_2, + openimageio, imath, python, apple-sdk_14, @@ -16,16 +16,13 @@ buildPythonPackage rec { pname = "materialx"; - version = "1.38.10"; + version = "1.39.3"; - # nixpkgs-update: no auto update - # Updates are disabled due to API breakage in 1.39+ that breaks almost all - # consumers. src = fetchFromGitHub { owner = "AcademySoftwareFoundation"; repo = "MaterialX"; rev = "v${version}"; - hash = "sha256-/kMHmW2dptZNtjuhE5s+jvPRIdtY+FRiVtMU+tiBgQo="; + hash = "sha256-ceVYD/dyb3SEEENoJZxjn94DGmUj6IYSNLjsJvmPM84="; }; format = "other"; @@ -36,7 +33,7 @@ buildPythonPackage rec { ]; buildInputs = [ - openimageio_2 + openimageio imath ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ @@ -50,6 +47,7 @@ buildPythonPackage rec { cmakeFlags = [ (lib.cmakeBool "MATERIALX_BUILD_OIIO" true) + (lib.cmakeBool "MATERIALX_BUILD_SHARED_LIBS" true) (lib.cmakeBool "MATERIALX_BUILD_PYTHON" true) (lib.cmakeBool "MATERIALX_BUILD_GEN_MSL" ( stdenv.hostPlatform.isLinux || stdenv.hostPlatform.isDarwin @@ -66,12 +64,6 @@ buildPythonPackage rec { ln -s $out/python $target_dir ''; - # Update to 1.39 has major API changes and downstream software - # needs to adapt, first. So, do not include in mass updates. For reference, see - # https://github.com/NixOS/nixpkgs/pull/326466#issuecomment-2293029160 - # and https://github.com/NixOS/nixpkgs/issues/380230 - passthru.skipBulkUpdate = true; - meta = { changelog = "https://github.com/AcademySoftwareFoundation/MaterialX/blob/${src.rev}/CHANGELOG.md"; description = "Open standard for representing rich material and look-development content in computer graphics"; From ade1c6ec36b941f3be8471be567ce520d8e0c16c Mon Sep 17 00:00:00 2001 From: Marcin Serwin Date: Sun, 6 Jul 2025 22:55:32 +0200 Subject: [PATCH 65/72] blender: unpin openimageio Signed-off-by: Marcin Serwin --- pkgs/by-name/bl/blender/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/bl/blender/package.nix b/pkgs/by-name/bl/blender/package.nix index dbc625085c3d..11e9b3a0fe91 100644 --- a/pkgs/by-name/bl/blender/package.nix +++ b/pkgs/by-name/bl/blender/package.nix @@ -58,7 +58,7 @@ opencolorio, openexr, openimagedenoise, - openimageio_2, + openimageio, openjpeg, openpgl, opensubdiv, @@ -250,7 +250,7 @@ stdenv'.mkDerivation (finalAttrs: { (manifold.override { tbb_2021 = tbb; }) opencolorio openexr - openimageio_2 + openimageio openjpeg (openpgl.override { inherit tbb; }) (opensubdiv.override { inherit cudaSupport; }) From e45acc03ce438dd5d15a9a588102ed694e78fe28 Mon Sep 17 00:00:00 2001 From: Marcin Serwin Date: Sun, 6 Jul 2025 22:55:32 +0200 Subject: [PATCH 66/72] gpupad: unpin openimageio Signed-off-by: Marcin Serwin --- pkgs/by-name/gp/gpupad/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/gp/gpupad/package.nix b/pkgs/by-name/gp/gpupad/package.nix index 59045737053e..25c740910bf0 100644 --- a/pkgs/by-name/gp/gpupad/package.nix +++ b/pkgs/by-name/gp/gpupad/package.nix @@ -7,7 +7,7 @@ glslang, imath, ktx-tools, - openimageio_2, + openimageio, qt6Packages, spdlog, spirv-cross, @@ -42,7 +42,7 @@ stdenv.mkDerivation (finalAttrs: { glslang imath # needed for openimageio ktx-tools - openimageio_2 + openimageio qt6Packages.qtbase qt6Packages.qtdeclarative qt6Packages.qtmultimedia From 77e5b4329024605e02d3941f53121dc8589b0deb Mon Sep 17 00:00:00 2001 From: Marcin Serwin Date: Sun, 6 Jul 2025 22:55:32 +0200 Subject: [PATCH 67/72] embree2: unpin openimageio Signed-off-by: Marcin Serwin --- pkgs/development/libraries/embree/2.x.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/embree/2.x.nix b/pkgs/development/libraries/embree/2.x.nix index 05764262a979..6ec8f1040769 100644 --- a/pkgs/development/libraries/embree/2.x.nix +++ b/pkgs/development/libraries/embree/2.x.nix @@ -7,7 +7,7 @@ ispc, tbb_2020, glfw, - openimageio_2, + openimageio, libjpeg, libpng, libpthreadstubs, @@ -38,7 +38,7 @@ stdenv.mkDerivation (finalAttrs: { # tbb_2021 is not backward compatible tbb_2020 glfw - openimageio_2 + openimageio libjpeg libpng libX11 From 651aae58b41a9f6463eb7190820b1d1a0bfb1cca Mon Sep 17 00:00:00 2001 From: Marcin Serwin Date: Tue, 8 Jul 2025 21:31:08 +0200 Subject: [PATCH 68/72] openimageio_2: drop Signed-off-by: Marcin Serwin --- pkgs/by-name/op/openimageio/2.nix | 15 --------------- pkgs/top-level/all-packages.nix | 2 -- 2 files changed, 17 deletions(-) delete mode 100644 pkgs/by-name/op/openimageio/2.nix diff --git a/pkgs/by-name/op/openimageio/2.nix b/pkgs/by-name/op/openimageio/2.nix deleted file mode 100644 index d31dd2190a51..000000000000 --- a/pkgs/by-name/op/openimageio/2.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ fetchFromGitHub, openimageio }: - -let - version = "2.5.17.0"; -in -openimageio.overrideAttrs { - inherit version; - - src = fetchFromGitHub { - owner = "AcademySoftwareFoundation"; - repo = "OpenImageIO"; - tag = "v${version}"; - hash = "sha256-d5LqRcqWj6E9jJYY/Pa5e7/MeuQGMjUo/hMCYRKsKeU="; - }; -} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index cf286aadb46b..c4708986aadd 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13335,8 +13335,6 @@ with pkgs; inherit (darwin) DarwinTools; }; - openimageio_2 = callPackage ../by-name/op/openimageio/2.nix { }; - open-music-kontrollers = lib.recurseIntoAttrs { eteroj = callPackage ../applications/audio/open-music-kontrollers/eteroj.nix { }; jit = callPackage ../applications/audio/open-music-kontrollers/jit.nix { }; From 2e1263f05a34d9379c180dbd6862f5e94d179ca6 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 30 Mar 2025 19:08:50 +0000 Subject: [PATCH 69/72] robin-map: 1.3.0 -> 1.4.0 --- pkgs/by-name/ro/robin-map/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ro/robin-map/package.nix b/pkgs/by-name/ro/robin-map/package.nix index c2afe76559e7..63ac6f1130c7 100644 --- a/pkgs/by-name/ro/robin-map/package.nix +++ b/pkgs/by-name/ro/robin-map/package.nix @@ -7,13 +7,13 @@ stdenv.mkDerivation rec { pname = "robin-map"; - version = "1.3.0"; + version = "1.4.0"; src = fetchFromGitHub { owner = "Tessil"; repo = "robin-map"; tag = "v${version}"; - hash = "sha256-dspOWp/8oNR0p5XRnqO7WtPcCx54/y8m1cDho4UBYyc="; + hash = "sha256-Hkgxiq2i0TuqMK/bI5OMOn3LkmSE40NimDjK1FBZpsA="; }; nativeBuildInputs = [ From 41221c2fe992e3014a64556531621fc090ad5341 Mon Sep 17 00:00:00 2001 From: Marcin Serwin Date: Mon, 21 Jul 2025 08:46:11 +0200 Subject: [PATCH 70/72] olive-editor: fix building with newer robin-map Signed-off-by: Marcin Serwin --- pkgs/applications/video/olive-editor/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/applications/video/olive-editor/default.nix b/pkgs/applications/video/olive-editor/default.nix index 4a49b281adaa..787062bd3178 100644 --- a/pkgs/applications/video/olive-editor/default.nix +++ b/pkgs/applications/video/olive-editor/default.nix @@ -30,6 +30,9 @@ let hash = "sha256-I2/JPmUBDb0bw7qbSZcAkYHB2q2Uo7En7ZurMwWhg/M="; } ); + + # robin-map headers require c++17 + cmakeFlags = (old.cmakeFlags or [ ]) ++ [ (lib.cmakeFeature "CMAKE_CXX_STANDARD" "17") ]; }); in From 5d08e168a58d835e08b97411f58eebdcc364ffa9 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 24 Jul 2025 15:50:32 +0000 Subject: [PATCH 71/72] opengamepadui: 0.40.3 -> 0.40.4 --- pkgs/by-name/op/opengamepadui/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/op/opengamepadui/package.nix b/pkgs/by-name/op/opengamepadui/package.nix index 5403a05e97b0..81a17828e417 100644 --- a/pkgs/by-name/op/opengamepadui/package.nix +++ b/pkgs/by-name/op/opengamepadui/package.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "opengamepadui"; - version = "0.40.3"; + version = "0.40.4"; buildType = if withDebug then "debug" else "release"; @@ -31,7 +31,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "ShadowBlip"; repo = "OpenGamepadUI"; tag = "v${finalAttrs.version}"; - hash = "sha256-ggCVNWh36q/clYMzObhhxU39qacWSb6urgXOI9yfQeo="; + hash = "sha256-o6n3b4dh3IHaRk2Zi7rt3gzKTZWt6s9L9WcG0WoCQ3U="; }; cargoDeps = rustPlatform.fetchCargoVendor { From 1cc578e8dbf3e9a9ed5584c234cf5b8298a9c820 Mon Sep 17 00:00:00 2001 From: Felix Bargfeldt <41747605+Defelo@users.noreply.github.com> Date: Thu, 24 Jul 2025 19:23:42 +0200 Subject: [PATCH 72/72] mergiraf: 0.12.1 -> 0.13.0 (#428020) Changelog: https://codeberg.org/mergiraf/mergiraf/releases/tag/v0.13.0 Diff: https://codeberg.org/mergiraf/mergiraf/compare/v0.12.1...v0.13.0 --- pkgs/by-name/me/mergiraf/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/me/mergiraf/package.nix b/pkgs/by-name/me/mergiraf/package.nix index 05a16236e6ef..168c0bb29b1e 100644 --- a/pkgs/by-name/me/mergiraf/package.nix +++ b/pkgs/by-name/me/mergiraf/package.nix @@ -11,18 +11,18 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "mergiraf"; - version = "0.12.1"; + version = "0.13.0"; src = fetchFromGitea { domain = "codeberg.org"; owner = "mergiraf"; repo = "mergiraf"; tag = "v${finalAttrs.version}"; - hash = "sha256-09C5A9ToH3zzUlUcLDd/5wOOkWs4jmjaqI9HpzGebUU="; + hash = "sha256-MPmpS4iLur05jkSUrGl6NCtzRO/8Pch9pRNuT6psNRo="; }; useFetchCargoVendor = true; - cargoHash = "sha256-TFGFHK35pary9nGG3XB474Bv2B8YW2X06NvInBLmcIA="; + cargoHash = "sha256-nT9HsG9eRBf4mRr7fqmRSQVI+yz+yr7wKCSQHG5JtD4="; nativeCheckInputs = [ git ];