From d1a28bbdb48244f7a3edf027e4c90b6de0bb1bf3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Sun, 6 Oct 2024 02:05:32 +0200 Subject: [PATCH 01/61] nixos/nginx: add locations."name".uwsgiPass and related options and use it --- nixos/modules/services/mail/mailman.nix | 2 +- .../services/web-servers/nginx/default.nix | 64 ++++++++++++++++++- .../web-servers/nginx/location-options.nix | 19 ++++++ 3 files changed, 83 insertions(+), 2 deletions(-) diff --git a/nixos/modules/services/mail/mailman.nix b/nixos/modules/services/mail/mailman.nix index 95b77da250b2..fe5383b6622d 100644 --- a/nixos/modules/services/mail/mailman.nix +++ b/nixos/modules/services/mail/mailman.nix @@ -441,7 +441,7 @@ in { enable = lib.mkDefault true; virtualHosts = lib.genAttrs cfg.webHosts (webHost: { locations = { - ${cfg.serve.virtualRoot}.extraConfig = "uwsgi_pass unix:/run/mailman-web.socket;"; + ${cfg.serve.virtualRoot}.uwsgiPass = "unix:/run/mailman-web.socket"; "${lib.removeSuffix "/" cfg.serve.virtualRoot}/static/".alias = webSettings.STATIC_ROOT + "/"; }; }); diff --git a/nixos/modules/services/web-servers/nginx/default.nix b/nixos/modules/services/web-servers/nginx/default.nix index a7efd69adac3..22ee5a7a04db 100644 --- a/nixos/modules/services/web-servers/nginx/default.nix +++ b/nixos/modules/services/web-servers/nginx/default.nix @@ -94,7 +94,7 @@ let REDIRECT_STATUS = "200"; }; - recommendedProxyConfig = pkgs.writeText "nginx-recommended-proxy-headers.conf" '' + recommendedProxyConfig = pkgs.writeText "nginx-recommended-proxy_set_header-headers.conf" '' proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; @@ -102,6 +102,14 @@ let proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; ''; + recommendedUwsgiConfig = pkgs.writeText "nginx-recommended-uwsgi_param-headers.conf" '' + uwsgi_param HTTP_HOST $host; + uwsgi_param HTTP_X_REAL_IP $remote_addr; + uwsgi_param HTTP_X_FORWARDED_FOR $proxy_add_x_forwarded_for; + uwsgi_param HTTP_X_FORWARDED_PROTO $scheme; + uwsgi_param HTTP_X_FORWARDED_HOST $host; + uwsgi_param HTTP_X_FORWARDED_SERVER $host; + ''; proxyCachePathConfig = concatStringsSep "\n" (mapAttrsToList (name: proxyCachePath: '' proxy_cache_path ${concatStringsSep " " [ @@ -238,6 +246,15 @@ let include ${recommendedProxyConfig}; ''} + ${optionalString cfg.recommendedUwsgiSettings '' + uwsgi_connect_timeout ${cfg.uwsgiTimeout}; + uwsgi_send_timeout ${cfg.uwsgiTimeout}; + uwsgi_read_timeout ${cfg.uwsgiTimeout}; + uwsgi_param HTTP_CONNECTION ""; + include ${cfg.package}/conf/uwsgi_params; + include ${recommendedUwsgiConfig}; + ''} + ${optionalString (cfg.mapHashBucketSize != null) '' map_hash_bucket_size ${toString cfg.mapHashBucketSize}; ''} @@ -442,6 +459,13 @@ let proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; ''} + ${optionalString (config.uwsgiPass != null && !cfg.uwsgiResolveWhileRunning) + "uwsgi_pass ${config.uwsgiPass};" + } + ${optionalString (config.uwsgiPass != null && cfg.uwsgiResolveWhileRunning) '' + set $nix_proxy_target "${config.uwsgiPass}"; + uwsgi_pass $nix_proxy_target; + ''} ${concatStringsSep "\n" (mapAttrsToList (n: v: ''fastcgi_param ${n} "${v}";'') (optionalAttrs (config.fastcgiParams != {}) @@ -453,6 +477,7 @@ let ${optionalString (config.return != null) "return ${toString config.return};"} ${config.extraConfig} ${optionalString (config.proxyPass != null && config.recommendedProxySettings) "include ${recommendedProxyConfig};"} + ${optionalString (config.uwsgiPass != null && config.recommendedUwsgiSettings) "include ${cfg.package}/conf/uwsgi_params; include ${recommendedUwsgiConfig};"} ${mkBasicAuth "sublocation" config} } '') (sortProperties (mapAttrsToList (k: v: v // { location = k; }) locations))); @@ -553,6 +578,23 @@ in ''; }; + recommendedUwsgiSettings = mkOption { + default = false; + type = types.bool; + description = '' + Whether to enable recommended uwsgi settings if a vhost does not specify the option manually. + ''; + }; + + uwsgiTimeout = mkOption { + type = types.str; + default = "60s"; + example = "20s"; + description = '' + Change the uwsgi related timeouts in recommendedUwsgiSettings. + ''; + }; + defaultListen = mkOption { type = with types; listOf (submodule { options = { @@ -859,6 +901,16 @@ in ''; }; + uwsgiResolveWhileRunning = mkOption { + type = types.bool; + default = false; + description = '' + Resolves domains of uwsgi targets at runtime + and not only at start, you have to set + services.nginx.resolver, too. + ''; + }; + mapHashBucketSize = mkOption { type = types.nullOr (types.enum [ 32 64 128 ]); default = null; @@ -1163,6 +1215,16 @@ in ''; } + { + assertion = all (host: + all (location: !(location.proxyPass != null && location.uwsgiPass != null)) (attrValues host.locations)) + (attrValues virtualHosts); + message = '' + Options services.nginx.service.virtualHosts..proxyPass and + services.nginx.virtualHosts..uwsgiPass are mutually exclusive. + ''; + } + { assertion = cfg.package.pname != "nginxQuic" && cfg.package.pname != "angieQuic" -> !(cfg.enableQuicBPF); message = '' diff --git a/nixos/modules/services/web-servers/nginx/location-options.nix b/nixos/modules/services/web-servers/nginx/location-options.nix index 8cefd481d3f9..5c399e8d5958 100644 --- a/nixos/modules/services/web-servers/nginx/location-options.nix +++ b/nixos/modules/services/web-servers/nginx/location-options.nix @@ -56,6 +56,16 @@ with lib; ''; }; + uwsgiPass = mkOption { + type = types.nullOr types.str; + default = null; + example = "unix:/run/example/example.sock"; + description = '' + Adds uwsgi_pass directive and sets recommended proxy headers if + recommendedUwsgiSettings is enabled. + ''; + }; + index = mkOption { type = types.nullOr types.str; default = null; @@ -137,5 +147,14 @@ with lib; Enable recommended proxy settings. ''; }; + + recommendedUwsgiSettings = mkOption { + type = types.bool; + default = config.services.nginx.recommendedUwsgiSettings; + defaultText = literalExpression "config.services.nginx.recommendedUwsgiSettings"; + description = '' + Enable recommended uwsgi settings. + ''; + }; }; } From 2c47cfa4ed05b293d81fab6f9132662297b38628 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 11 Jan 2025 00:49:21 +0000 Subject: [PATCH 02/61] pgbouncer: 1.23.1 -> 1.24.0 --- pkgs/by-name/pg/pgbouncer/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/pg/pgbouncer/package.nix b/pkgs/by-name/pg/pgbouncer/package.nix index b3ee07147c84..90ae5b91d429 100644 --- a/pkgs/by-name/pg/pgbouncer/package.nix +++ b/pkgs/by-name/pg/pgbouncer/package.nix @@ -12,11 +12,11 @@ stdenv.mkDerivation rec { pname = "pgbouncer"; - version = "1.23.1"; + version = "1.24.0"; src = fetchurl { url = "https://www.pgbouncer.org/downloads/files/${version}/${pname}-${version}.tar.gz"; - hash = "sha256-GWO0lyMdmlYKYtJm5KLq5ogatAGFPZPl0pLDdA7sUIQ="; + hash = "sha256-52rflBoxkaQW4iPAss2/cxWe74CioyMUr2+9guQaHUE="; }; nativeBuildInputs = [ pkg-config ]; From 3d36f0d2a72d90939d7d1d43e00de1d78c7e31ce Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 20 Feb 2025 02:55:12 +0000 Subject: [PATCH 03/61] buildkit: 0.19.0 -> 0.20.0 --- pkgs/by-name/bu/buildkit/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/bu/buildkit/package.nix b/pkgs/by-name/bu/buildkit/package.nix index ac82c1adc103..3b28a9b04f76 100644 --- a/pkgs/by-name/bu/buildkit/package.nix +++ b/pkgs/by-name/bu/buildkit/package.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "buildkit"; - version = "0.19.0"; + version = "0.20.0"; src = fetchFromGitHub { owner = "moby"; repo = "buildkit"; rev = "v${version}"; - hash = "sha256-TN6IJLQxbwhflNdnrPgcqzw2o6di+aHOqwa6efkyV0k="; + hash = "sha256-ApmAeR93szAqeOJR7h5MwtDPf6nrUy4vYKgFeRZlCXw="; }; vendorHash = null; From 2ad694fff9ed8ccaaca963dad229bda4f517f579 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Fri, 21 Feb 2025 13:48:07 +0100 Subject: [PATCH 04/61] nixos/nginx: remove custom HTTP_ header from recommendedUwsgiSettings `uwsgi_pass` uses the uwsgi protocol instead of the HTTP protocol (that's what `proxy_pass` is for). Also, the source IP is already derived from the REMOTE_ADDR param that's specified by the uwsgi defaults from nginx, similarily to how it's done for fcgi. Hence, removing that since it seems not necessary (and perhaps even wrong). --- nixos/modules/services/web-servers/nginx/default.nix | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/nixos/modules/services/web-servers/nginx/default.nix b/nixos/modules/services/web-servers/nginx/default.nix index 22ee5a7a04db..f42bac4d9487 100644 --- a/nixos/modules/services/web-servers/nginx/default.nix +++ b/nixos/modules/services/web-servers/nginx/default.nix @@ -102,14 +102,6 @@ let proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; ''; - recommendedUwsgiConfig = pkgs.writeText "nginx-recommended-uwsgi_param-headers.conf" '' - uwsgi_param HTTP_HOST $host; - uwsgi_param HTTP_X_REAL_IP $remote_addr; - uwsgi_param HTTP_X_FORWARDED_FOR $proxy_add_x_forwarded_for; - uwsgi_param HTTP_X_FORWARDED_PROTO $scheme; - uwsgi_param HTTP_X_FORWARDED_HOST $host; - uwsgi_param HTTP_X_FORWARDED_SERVER $host; - ''; proxyCachePathConfig = concatStringsSep "\n" (mapAttrsToList (name: proxyCachePath: '' proxy_cache_path ${concatStringsSep " " [ @@ -252,7 +244,6 @@ let uwsgi_read_timeout ${cfg.uwsgiTimeout}; uwsgi_param HTTP_CONNECTION ""; include ${cfg.package}/conf/uwsgi_params; - include ${recommendedUwsgiConfig}; ''} ${optionalString (cfg.mapHashBucketSize != null) '' @@ -477,7 +468,7 @@ let ${optionalString (config.return != null) "return ${toString config.return};"} ${config.extraConfig} ${optionalString (config.proxyPass != null && config.recommendedProxySettings) "include ${recommendedProxyConfig};"} - ${optionalString (config.uwsgiPass != null && config.recommendedUwsgiSettings) "include ${cfg.package}/conf/uwsgi_params; include ${recommendedUwsgiConfig};"} + ${optionalString (config.uwsgiPass != null && config.recommendedUwsgiSettings) "include ${cfg.package}/conf/uwsgi_params;"} ${mkBasicAuth "sublocation" config} } '') (sortProperties (mapAttrsToList (k: v: v // { location = k; }) locations))); From 3218ced8b89b47bffddef5c3488c69f09590806e Mon Sep 17 00:00:00 2001 From: Sergei Zimmerman <145775305+xokdvium@users.noreply.github.com> Date: Fri, 21 Feb 2025 19:45:31 +0000 Subject: [PATCH 05/61] rathole: regenerate expired self-signed certs for tests Upstream dummy self-signed cert has expired and now tests fail: ``` Certificate: Data: Version: 3 (0x2) Serial Number: 1c:f6:27:75:97:e5:99:b0:d5:ff:7d:02:f8:11:d0:4a:23:6f:51:34 Signature Algorithm: sha256WithRSAEncryption Issuer: CN=MyOwnCA, C=US, L=San Fransisco Validity Not Before: Feb 15 05:04:49 2024 GMT Not After : Feb 5 05:04:49 2025 GMT ``` --- pkgs/by-name/ra/rathole/package.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/by-name/ra/rathole/package.nix b/pkgs/by-name/ra/rathole/package.nix index e58c023ee090..b9ddaf1f8671 100644 --- a/pkgs/by-name/ra/rathole/package.nix +++ b/pkgs/by-name/ra/rathole/package.nix @@ -33,6 +33,12 @@ rustPlatform.buildRustPackage { __darwinAllowLocalNetworking = true; + nativeCheckInputs = [ openssl ]; + preCheck = '' + patchShebangs examples/tls/create_self_signed_cert.sh + (cd examples/tls && chmod +x create_self_signed_cert.sh && ./create_self_signed_cert.sh) + ''; + passthru.tests = { inherit (nixosTests) rathole; }; From c2dd438510a523bfa53652d800a0d3c6142b59b8 Mon Sep 17 00:00:00 2001 From: Sergei Zimmerman <145775305+xokdvium@users.noreply.github.com> Date: Fri, 21 Feb 2025 20:18:29 +0000 Subject: [PATCH 06/61] rathole: get rid of vergen Fixes build on darwin. Drops legacy darwin SDK pattern (which is a no-op). --- .../ra/rathole/0001-no-more-vergen.patch | 22 +++++++++++ pkgs/by-name/ra/rathole/package.nix | 37 +++++++++++++++---- 2 files changed, 52 insertions(+), 7 deletions(-) create mode 100644 pkgs/by-name/ra/rathole/0001-no-more-vergen.patch diff --git a/pkgs/by-name/ra/rathole/0001-no-more-vergen.patch b/pkgs/by-name/ra/rathole/0001-no-more-vergen.patch new file mode 100644 index 000000000000..9e6285cfb487 --- /dev/null +++ b/pkgs/by-name/ra/rathole/0001-no-more-vergen.patch @@ -0,0 +1,22 @@ +diff --git a/Cargo.toml b/Cargo.toml +index e7a944e..e6bae43 100644 +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -7,7 +7,6 @@ description = "A reverse proxy for NAT traversal" + license = "Apache-2.0" + repository = "https://github.com/rapiz1/rathole" + readme = "README.md" +-build = "build.rs" + include = ["src/**/*", "LICENSE", "README.md", "build.rs"] + + [features] +@@ -130,9 +129,4 @@ p12 = { version = "0.6.3", optional = true } + openssl = { version = "0.10", features = ["vendored"], optional = true } + + [build-dependencies] +-vergen = { version = "7.4.2", default-features = false, features = [ +- "build", +- "git", +- "cargo", +-] } + anyhow = "1.0" diff --git a/pkgs/by-name/ra/rathole/package.nix b/pkgs/by-name/ra/rathole/package.nix index b9ddaf1f8671..e7834483e8bc 100644 --- a/pkgs/by-name/ra/rathole/package.nix +++ b/pkgs/by-name/ra/rathole/package.nix @@ -3,13 +3,13 @@ stdenv, fetchFromGitHub, rustPlatform, + rustc, pkg-config, openssl, nixosTests, - darwin, }: -rustPlatform.buildRustPackage { +rustPlatform.buildRustPackage rec { pname = "rathole"; version = "0.5.0-unstable-2024-06-06"; @@ -20,16 +20,27 @@ rustPlatform.buildRustPackage { hash = "sha256-C0/G4JOZ4pTAvcKZhRHsGvlLlwAyWBQ0rMScLvaLSuA="; }; + # Get rid of git dependency on vergen. No reason to require libgit2-sys as + # well as libz-sys. Vendored c libraries for libgit2/zlib fail to build on + # darwin and using libs from nixpkgs seems excessive. + patches = [ + ./0001-no-more-vergen.patch + ]; + + # Build script is only needed for vergen and does nothing when not in a git + # repo. + postPatch = '' + rm build.rs + ''; + useFetchCargoVendor = true; cargoHash = "sha256-IgPDe8kuWzJ6nF2DceUbN7fw0eGkoYhu1IGMdlSMFos="; nativeBuildInputs = [ pkg-config ]; - buildInputs = - [ - openssl - ] - ++ lib.optionals stdenv.hostPlatform.isDarwin (with darwin.apple_sdk.frameworks; [ CoreServices ]); + buildInputs = [ + openssl + ]; __darwinAllowLocalNetworking = true; @@ -39,6 +50,18 @@ rustPlatform.buildRustPackage { (cd examples/tls && chmod +x create_self_signed_cert.sh && ./create_self_signed_cert.sh) ''; + env = { + VERGEN_BUILD_TIMESTAMP = "0"; + VERGEN_BUILD_SEMVER = version; + VERGEN_GIT_COMMIT_TIMESTAMP = "0"; + VERGEN_GIT_BRANCH = "main"; + VERGEN_RUSTC_SEMVER = rustc.version; + VERGEN_RUSTC_CHANNEL = "stable"; + VERGEN_CARGO_PROFILE = "release"; + VERGEN_CARGO_FEATURES = ""; + VERGEN_CARGO_TARGET_TRIPLE = "${stdenv.hostPlatform.rust.rustcTarget}"; + }; + passthru.tests = { inherit (nixosTests) rathole; }; From 1d575e19e4003f7f972a50719d298d0dfc84096a Mon Sep 17 00:00:00 2001 From: Ivan Trubach Date: Sun, 23 Feb 2025 19:53:26 +0300 Subject: [PATCH 07/61] pulumi: add tie as maintainer --- pkgs/by-name/pu/pulumi/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/pu/pulumi/package.nix b/pkgs/by-name/pu/pulumi/package.nix index a59203394e66..31b7a8659c99 100644 --- a/pkgs/by-name/pu/pulumi/package.nix +++ b/pkgs/by-name/pu/pulumi/package.nix @@ -155,6 +155,7 @@ buildGo122Module rec { maintainers = with maintainers; [ trundle veehaitch + tie ]; }; } From b257e7c1dfc16d80642371681c2dfc8f452ff400 Mon Sep 17 00:00:00 2001 From: Ivan Trubach Date: Sun, 23 Feb 2025 19:55:42 +0300 Subject: [PATCH 08/61] pulumi: remove `with lib;` --- pkgs/by-name/pu/pulumi/package.nix | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/pu/pulumi/package.nix b/pkgs/by-name/pu/pulumi/package.nix index 31b7a8659c99..35322aeafa46 100644 --- a/pkgs/by-name/pu/pulumi/package.nix +++ b/pkgs/by-name/pu/pulumi/package.nix @@ -1,6 +1,6 @@ { - stdenv, lib, + stdenv, buildGo122Module, coreutils, fetchFromGitHub, @@ -146,13 +146,13 @@ buildGo122Module rec { ''; }; - meta = with lib; { + meta = { homepage = "https://pulumi.io/"; description = "Pulumi is a cloud development platform that makes creating cloud programs easy and productive"; - sourceProvenance = [ sourceTypes.fromSource ]; - license = licenses.asl20; - platforms = platforms.unix; - maintainers = with maintainers; [ + sourceProvenance = [ lib.sourceTypes.fromSource ]; + license = lib.licenses.asl20; + platforms = lib.platforms.unix; + maintainers = with lib.maintainers; [ trundle veehaitch tie From d7f4e399bfffc7b3602c1c7e5d3fa3bfe90d6865 Mon Sep 17 00:00:00 2001 From: Ivan Trubach Date: Sun, 23 Feb 2025 19:57:31 +0300 Subject: [PATCH 09/61] pulumi: update meta --- pkgs/by-name/pu/pulumi/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/pu/pulumi/package.nix b/pkgs/by-name/pu/pulumi/package.nix index 35322aeafa46..18ed550fca93 100644 --- a/pkgs/by-name/pu/pulumi/package.nix +++ b/pkgs/by-name/pu/pulumi/package.nix @@ -147,11 +147,11 @@ buildGo122Module rec { }; meta = { - homepage = "https://pulumi.io/"; + homepage = "https://www.pulumi.com"; description = "Pulumi is a cloud development platform that makes creating cloud programs easy and productive"; sourceProvenance = [ lib.sourceTypes.fromSource ]; license = lib.licenses.asl20; - platforms = lib.platforms.unix; + mainProgram = "pulumi"; maintainers = with lib.maintainers; [ trundle veehaitch From eb693ca3c454660958e9f8a51996d7b7bea8f1fc Mon Sep 17 00:00:00 2001 From: Ivan Trubach Date: Sun, 23 Feb 2025 20:21:45 +0300 Subject: [PATCH 10/61] pulumiPackages.pulumi-language-go: update meta --- .../admin/pulumi-packages/pulumi-language-go.nix | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix b/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix index 01d1fec500c5..b952cd4d0571 100644 --- a/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix +++ b/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix @@ -20,10 +20,13 @@ buildGoModule rec { # go: inconsistent vendoring in ... doCheck = false; - meta = with lib; { - description = "Golang language host plugin for Pulumi"; + meta = { + homepage = "https://www.pulumi.com/docs/iac/languages-sdks/go/"; + description = "Language host for Pulumi programs written in Go"; + license = lib.licenses.asl20; mainProgram = "pulumi-language-go"; - homepage = "https://github.com/pulumi/pulumi/tree/master/sdk/go"; - license = licenses.asl20; + maintainers = with lib.maintainers; [ + tie + ]; }; } From 1348ad901f5705d41793d83d0f4e1662eee6ad10 Mon Sep 17 00:00:00 2001 From: Ivan Trubach Date: Sun, 23 Feb 2025 20:22:57 +0300 Subject: [PATCH 11/61] pulumiPackages.pulumi-language-nodejs: update meta --- .../admin/pulumi-packages/pulumi-language-nodejs.nix | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix b/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix index 3fcd92e58d21..5e7d27beab78 100644 --- a/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix +++ b/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix @@ -1,4 +1,5 @@ { + lib, buildGoModule, pulumi, nodejs, @@ -28,4 +29,14 @@ buildGoModule rec { nativeCheckInputs = [ nodejs ]; + + meta = { + homepage = "https://www.pulumi.com/docs/iac/languages-sdks/javascript/"; + description = "Language host for Pulumi programs written in TypeScript & JavaScript (Node.js)"; + license = lib.licenses.asl20; + mainProgram = "pulumi-language-nodejs"; + maintainers = with lib.maintainers; [ + tie + ]; + }; } From 5e736861f638f64b94ebc0b01c3e1dd9efaef4d5 Mon Sep 17 00:00:00 2001 From: Ivan Trubach Date: Sun, 23 Feb 2025 20:23:56 +0300 Subject: [PATCH 12/61] pulumiPackages.pulumi-language-python: update meta --- .../admin/pulumi-packages/pulumi-language-python.nix | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix b/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix index b685a8ff6335..3f38abaa32ad 100644 --- a/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix +++ b/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix @@ -1,4 +1,5 @@ { + lib, buildGoModule, pulumi, python3, @@ -33,4 +34,14 @@ buildGoModule rec { cp ../../dist/pulumi-resource-pulumi-python $out/bin cp ../../dist/pulumi-analyzer-policy-python $out/bin ''; + + meta = { + homepage = "https://www.pulumi.com/docs/iac/languages-sdks/python/"; + description = "Language host for Pulumi programs written in Python"; + license = lib.licenses.asl20; + mainProgram = "pulumi-language-python"; + maintainers = with lib.maintainers; [ + tie + ]; + }; } From 8b62f1454d98fe4e65b74cd4159787a9e2daf1c6 Mon Sep 17 00:00:00 2001 From: Ivan Trubach Date: Sun, 23 Feb 2025 20:46:28 +0300 Subject: [PATCH 13/61] pulumiPackages.pulumi-language-go: clean up --- .../admin/pulumi-packages/pulumi-language-go.nix | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix b/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix index b952cd4d0571..93109a69d0b8 100644 --- a/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix +++ b/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix @@ -14,11 +14,19 @@ buildGoModule rec { ldflags = [ "-s" "-w" - "-X github.com/pulumi/pulumi/sdk/v3/go/common/version.Version=${version}" + "-X=github.com/pulumi/pulumi/sdk/v3/go/common/version.Version=${version}" ]; - # go: inconsistent vendoring in ... - doCheck = false; + checkFlags = [ + "-skip=^${ + lib.concatStringsSep "$|^" [ + "TestLanguage" + "TestPluginsAndDependencies_vendored" + "TestPluginsAndDependencies_subdir" + "TestPluginsAndDependencies_moduleMode" + ] + }$" + ]; meta = { homepage = "https://www.pulumi.com/docs/iac/languages-sdks/go/"; From feaffd719946277aef433293b762e3bbec915213 Mon Sep 17 00:00:00 2001 From: Ivan Trubach Date: Sun, 23 Feb 2025 20:48:15 +0300 Subject: [PATCH 14/61] pulumiPackages.pulumi-language-nodejs: clean up --- .../pulumi-language-nodejs.nix | 32 +++++++++++++------ 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix b/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix index 5e7d27beab78..3a4c129c13a1 100644 --- a/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix +++ b/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix @@ -2,34 +2,46 @@ lib, buildGoModule, pulumi, + bash, nodejs, }: buildGoModule rec { - inherit (pulumi) version src; - pname = "pulumi-language-nodejs"; + inherit (pulumi) version src; sourceRoot = "${src.name}/sdk/nodejs/cmd/pulumi-language-nodejs"; vendorHash = "sha256-L91qIud8dWx7dWWEcknKUSTJe+f4OBL8wBg6dKUWgkQ="; - postPatch = '' - # Gives github.com/pulumi/pulumi/pkg/v3: is replaced in go.mod, but not marked as replaced in vendor/modules.txt etc - substituteInPlace language_test.go \ - --replace "TestLanguage" \ - "SkipTestLanguage" - ''; - ldflags = [ "-s" "-w" - "-X github.com/pulumi/pulumi/sdk/v3/go/common/version.Version=${version}" + "-X=github.com/pulumi/pulumi/sdk/v3/go/common/version.Version=${version}" + ]; + + checkFlags = [ + "-skip=^${ + lib.concatStringsSep "$|^" [ + "TestLanguage" + ] + }$" ]; nativeCheckInputs = [ nodejs ]; + # For patchShebangsAuto (see scripts copied in postInstall). + buildInputs = [ + bash + ]; + + postInstall = '' + cp -t "$out/bin" \ + ../../dist/pulumi-resource-pulumi-nodejs \ + ../../dist/pulumi-analyzer-policy + ''; + meta = { homepage = "https://www.pulumi.com/docs/iac/languages-sdks/javascript/"; description = "Language host for Pulumi programs written in TypeScript & JavaScript (Node.js)"; From e263a52767d316859cc45c9aedd9337758593eb0 Mon Sep 17 00:00:00 2001 From: Ivan Trubach Date: Sun, 23 Feb 2025 20:52:22 +0300 Subject: [PATCH 15/61] pulumiPackages.pulumi-language-python: clean up --- .../pulumi-language-python.nix | 33 ++++++++++++------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix b/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix index 3f38abaa32ad..c38daccd2c48 100644 --- a/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix +++ b/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix @@ -2,37 +2,46 @@ lib, buildGoModule, pulumi, + bash, python3, }: buildGoModule rec { - inherit (pulumi) version src; - pname = "pulumi-language-python"; + inherit (pulumi) version src; sourceRoot = "${src.name}/sdk/python/cmd/pulumi-language-python"; vendorHash = "sha256-Q8nnYJJN5+W2luY8JQJj1X9KIk9ad511FBywr+0wBNg="; - postPatch = '' - substituteInPlace main_test.go \ - --replace "TestDeterminePulumiPackages" \ - "SkipTestDeterminePulumiPackages" - ''; - ldflags = [ "-s" "-w" - "-X github.com/pulumi/pulumi/sdk/v3/go/common/version.Version=${version}" + "-X=github.com/pulumi/pulumi/sdk/v3/go/common/version.Version=${version}" + ]; + + checkFlags = [ + "-skip=^${ + lib.concatStringsSep "$|^" [ + "TestDeterminePulumiPackages" + ] + }$" ]; nativeCheckInputs = [ python3 ]; + # For patchShebangsAuto (see scripts copied in postInstall). + buildInputs = [ + bash + python3 + ]; + postInstall = '' - cp ../pulumi-language-python-exec $out/bin - cp ../../dist/pulumi-resource-pulumi-python $out/bin - cp ../../dist/pulumi-analyzer-policy-python $out/bin + cp -t "$out/bin" \ + ../pulumi-language-python-exec \ + ../../dist/pulumi-resource-pulumi-python \ + ../../dist/pulumi-analyzer-policy-python ''; meta = { From 421c26da8cdf5c9d6135e88d7fd8105b9a30b1c8 Mon Sep 17 00:00:00 2001 From: Ivan Trubach Date: Wed, 19 Feb 2025 17:28:35 +0300 Subject: [PATCH 16/61] pulumi: 3.122.0 -> 3.152.0 --- pkgs/by-name/pu/pulumi/package.nix | 155 ++++++++---------- .../python-modules/pulumi/default.nix | 109 +++++++----- .../pulumi-packages/pulumi-language-go.nix | 2 +- .../pulumi-language-nodejs.nix | 5 +- .../pulumi-language-python.nix | 3 +- pkgs/top-level/python-packages.nix | 2 +- 6 files changed, 145 insertions(+), 131 deletions(-) diff --git a/pkgs/by-name/pu/pulumi/package.nix b/pkgs/by-name/pu/pulumi/package.nix index 18ed550fca93..ace63027c10e 100644 --- a/pkgs/by-name/pu/pulumi/package.nix +++ b/pkgs/by-name/pu/pulumi/package.nix @@ -1,128 +1,106 @@ { lib, stdenv, - buildGo122Module, - coreutils, + buildGoModule, fetchFromGitHub, - fetchpatch, installShellFiles, git, # passthru runCommand, makeWrapper, + testers, pulumi, pulumiPackages, }: - -# Using go 1.22 as pulumi 3.122.0 will not build with 1.23. -# Issue: https://github.com/NixOS/nixpkgs/issues/351955 -# Upgrading pulumi version should fix it, but requires more involved changes, so -# this is a temporary workaround. -# Upgrade: https://github.com/NixOS/nixpkgs/pull/352221 -buildGo122Module rec { +buildGoModule rec { pname = "pulumi"; - version = "3.122.0"; + version = "3.152.0"; src = fetchFromGitHub { - owner = pname; - repo = pname; - rev = "v${version}"; - hash = "sha256-5KHptoQliqPtJ6J5u23ZgRZOdO77BJhZbdc3Cty9Myk="; + owner = "pulumi"; + repo = "pulumi"; + tag = "v${version}"; + hash = "sha256-/cRWj7y6d5sNQRUXg9l7eDAOkUqNGXTzgpWDQdPP8zw="; # Some tests rely on checkout directory name name = "pulumi"; }; - vendorHash = "sha256-1UyYbmNNHlAeaW6M6AkaQ5Hs25ziHenSs4QjlnUQGjs="; - - patches = [ - # Fix a test failure, can be dropped in next release (3.100.0) - (fetchpatch { - url = "https://github.com/pulumi/pulumi/commit/6dba7192d134d3b6f7e26dee9205711ccc736fa7.patch"; - hash = "sha256-QRN6XnIR2rrqJ4UFYNt/YmIlokTSkGUvnBO/Q9UN8X8="; - stripLen = 1; - }) - ]; + vendorHash = "sha256-JhIyivD+YpUUr9T8roNpINb3Tx8ZElHa+BrpJkyFx60="; sourceRoot = "${src.name}/pkg"; nativeBuildInputs = [ installShellFiles ]; - # Bundle release metadata + nativeCheckInputs = [ git ]; + + # https://github.com/pulumi/pulumi/blob/3ec1aa75d5bf7103b283f46297321a9a4b1a8a33/.goreleaser.yml#L20-L26 + tags = [ "osusergo" ]; ldflags = [ - # Omit the symbol table and debug information. "-s" - # Omit the DWARF symbol table. "-w" - ] ++ importpathFlags; - - importpathFlags = [ - "-X github.com/pulumi/pulumi/pkg/v3/version.Version=v${version}" + "-X=github.com/pulumi/pulumi/sdk/v3/go/common/version.Version=v${version}" ]; - nativeCheckInputs = [ - git + excludedPackages = [ + "util/generate" + "codegen/gen_program_test" ]; - preCheck = - '' - # The tests require `version.Version` to be unset - ldflags=''${ldflags//"$importpathFlags"/} + # Required for user.Current implementation with osusergo on Darwin. + preCheck = '' + export HOME=$TMPDIR USER=nixbld + ''; - # Create some placeholders for plugins used in tests. Otherwise, Pulumi - # tries to donwload them and fails, resulting in really long test runs - dummyPluginPath=$(mktemp -d) - for name in pulumi-{resource-pkg{A,B},-pkgB}; do - ln -s ${coreutils}/bin/true "$dummyPluginPath/$name" - done + checkFlags = [ + # The tests require `version.Version` (i.e. ldflags) to be unset. + "-ldflags=" + # Skip tests that fail in Nix sandbox. + "-skip=^${ + lib.concatStringsSep "$|^" [ + # Seems to require TTY. + "TestProgressEvents" - export PATH=$dummyPluginPath''${PATH:+:}$PATH + # Tries to clone repo: https://github.com/pulumi/test-repo.git + "TestValidateRelativeDirectory" + "TestRepoLookup" + "TestDSConfigureGit" - # Code generation tests also download dependencies from network - rm codegen/{docs,dotnet,go,nodejs,python,schema}/*_test.go - rm -R codegen/{dotnet,go,nodejs,python}/gen_program_test - - '' - + lib.optionalString stdenv.hostPlatform.isDarwin '' - export PULUMI_HOME=$(mktemp -d) - ''; - - checkFlags = - let - disabledTests = [ - # Flaky test - "TestPendingDeleteOrder" # Tries to clone repo: github.com/pulumi/templates.git "TestGenerateOnlyProjectCheck" - # Following tests give this error, not quite sure why: - # Error Trace: /build/pulumi/pkg/engine/lifecycletest/update_plan_test.go:273 - # Error: Received unexpected error: - # Unexpected diag message: <{%reset%}>using pulumi-resource-pkgA from $PATH at /build/tmp.bS8caxmTx7/pulumi-resource-pkgA<{%reset%}> - # Test: TestUnplannedDelete - "TestExpectedDelete" - "TestPlannedInputOutputDifferences" - "TestPlannedUpdateChangedStack" - "TestExpectedCreate" - "TestUnplannedDelete" - # Following test gives this error, not sure why: - # --- Expected - # +++ Actual - # @@ -1 +1 @@ - # -gcp - # +aws - "TestPluginMapper_MappedNamesDifferFromPulumiName" - "TestProtect" - ]; - in - [ "-skip=^${lib.concatStringsSep "$|^" disabledTests}$" ]; + "TestPulumiNewSetsTemplateTag" + "TestPulumiPromptRuntimeOptions" + + # Connects to https://pulumi-testing.vault.azure.net/… + "TestAzureCloudManager" + "TestAzureKeyEditProjectStack" + "TestAzureKeyVaultAutoFix15329" + "TestAzureKeyVaultExistingKey" + "TestAzureKeyVaultExistingKeyState" + "TestAzureKeyVaultExistingState" + + # Requires pulumi-yaml + "TestProjectNameDefaults" + "TestProjectNameOverrides" + + # Downloads pulumi-resource-random from Pulumi plugin registry. + "TestPluginInstallCancellation" + + # Requires language-specific tooling and/or Internet access. + "TestGenerateProgram" + "TestGenerateProgramVersionSelection" + "TestGeneratePackage" + "TestGeneratePackageOne" + "TestGeneratePackageThree" + "TestGeneratePackageTwo" + "TestParseAndRenderDocs" + "TestImportResourceRef" + ] + }$" + ]; # Allow tests that bind or connect to localhost on macOS. __darwinAllowLocalNetworking = true; - doInstallCheck = true; - installCheckPhase = '' - PULUMI_SKIP_UPDATE_CHECK=1 $out/bin/pulumi version | grep v${version} > /dev/null - ''; - postInstall = '' installShellCompletion --cmd pulumi \ --bash <($out/bin/pulumi gen-completion bash) \ @@ -144,6 +122,13 @@ buildGo122Module rec { --suffix PATH : ${lib.makeBinPath (f pulumiPackages)} \ --set LD_LIBRARY_PATH "${lib.getLib stdenv.cc.cc}/lib" ''; + tests = { + version = testers.testVersion { + package = pulumi; + version = "v${version}"; + command = "PULUMI_SKIP_UPDATE_CHECK=1 pulumi version"; + }; + }; }; meta = { diff --git a/pkgs/development/python-modules/pulumi/default.nix b/pkgs/development/python-modules/pulumi/default.nix index 1f835c0f9325..89ae0e6193d4 100644 --- a/pkgs/development/python-modules/pulumi/default.nix +++ b/pkgs/development/python-modules/pulumi/default.nix @@ -1,71 +1,96 @@ { lib, + pkgs, + pulumiPackages, buildPythonPackage, + pythonOlder, + hatchling, protobuf, - dill, grpcio, - pulumi, - isPy27, - semver, - pip, - pytestCheckHook, - pyyaml, + dill, six, + semver, + pyyaml, + debugpy, + pip, + pytest, + pytest-asyncio, + pytest-timeout, + python, }: -buildPythonPackage rec { - inherit (pulumi) version src; +let + inherit (pkgs.pulumi) pname version src; + inherit (pulumiPackages) pulumi-language-python; + sourceRoot = "${src.name}/sdk/python"; +in +buildPythonPackage { + inherit + pname + version + src + sourceRoot + ; - pname = "pulumi"; - format = "setuptools"; + outputs = [ + "out" + "dev" + ]; - disabled = isPy27; + pyproject = true; - propagatedBuildInputs = [ - semver + disabled = pythonOlder "3.9"; + + build-system = [ hatchling ]; + + dependencies = [ protobuf - dill grpcio - pyyaml + dill six + semver + pyyaml + debugpy + pip + ]; + + pythonRelaxDeps = [ + "grpcio" + "pip" + "semver" ]; nativeCheckInputs = [ - pip - pulumi.pkgs.pulumi-language-python - pytestCheckHook + pytest + pytest-asyncio + pytest-timeout + pulumi-language-python ]; - pytestFlagsArray = [ "test/" ]; - - sourceRoot = "${src.name}/sdk/python/lib"; - - # we apply the modifications done in the pulumi/sdk/python/Makefile - # but without the venv code - postPatch = '' - cp ../../README.md . - substituteInPlace setup.py \ - --replace "3.0.0" "${version}" \ - --replace "grpcio==1.56.2" "grpcio" \ - --replace "semver~=2.13" "semver" + # https://github.com/pulumi/pulumi/blob/0acaf8060640fdd892abccf1ce7435cd6aae69fe/sdk/python/scripts/test_fast.sh#L10-L11 + # https://github.com/pulumi/pulumi/blob/0acaf8060640fdd892abccf1ce7435cd6aae69fe/sdk/python/scripts/test_fast.sh#L16 + installCheckPhase = '' + runHook preInstallCheck + ${python.executable} -m pytest --ignore=lib/test/automation lib/test + pushd lib/test_with_mocks + ${python.executable} -m pytest + popd + runHook postInstallCheck ''; # Allow local networking in tests on Darwin __darwinAllowLocalNetworking = true; - # Verify that the version substitution works - preCheck = '' - pip show "${pname}" | grep "Version: ${version}" > /dev/null \ - || (echo "ERROR: Version substitution seems to be broken"; exit 1) - ''; - pythonImportsCheck = [ "pulumi" ]; - meta = with lib; { + meta = { description = "Modern Infrastructure as Code. Any cloud, any language"; - homepage = "https://github.com/pulumi/pulumi"; - license = licenses.asl20; - maintainers = with maintainers; [ teto ]; + homepage = "https://www.pulumi.com"; + license = lib.licenses.asl20; # https://github.com/pulumi/pulumi/issues/16828 - broken = versionAtLeast protobuf.version "5"; + broken = lib.versionAtLeast protobuf.version "5"; + maintainers = with lib.maintainers; [ + teto + tie + ]; }; } diff --git a/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix b/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix index 93109a69d0b8..f6f5ab016efd 100644 --- a/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix +++ b/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix @@ -9,7 +9,7 @@ buildGoModule rec { sourceRoot = "${src.name}/sdk/go/pulumi-language-go"; - vendorHash = "sha256-eHsTEb4Vff2bfADScLSkZiotSSnT1q0bexlUMaWgqbg="; + vendorHash = "sha256-mhwmHxZ+I/IdNGpEzXYJWPDKt7Gnun3HuXsjmFme6GI="; ldflags = [ "-s" diff --git a/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix b/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix index 3a4c129c13a1..8819fb107afd 100644 --- a/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix +++ b/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix @@ -4,6 +4,7 @@ pulumi, bash, nodejs, + python3, }: buildGoModule rec { pname = "pulumi-language-nodejs"; @@ -11,7 +12,7 @@ buildGoModule rec { sourceRoot = "${src.name}/sdk/nodejs/cmd/pulumi-language-nodejs"; - vendorHash = "sha256-L91qIud8dWx7dWWEcknKUSTJe+f4OBL8wBg6dKUWgkQ="; + vendorHash = "sha256-vmFoMxWK5sj3vsBVFAji0Pz2wtf1H3MJhbrkHshDOno="; ldflags = [ "-s" @@ -23,11 +24,13 @@ buildGoModule rec { "-skip=^${ lib.concatStringsSep "$|^" [ "TestLanguage" + "TestGetProgramDependencies" ] }$" ]; nativeCheckInputs = [ + python3 # for TestNonblockingStdout nodejs ]; diff --git a/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix b/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix index c38daccd2c48..687d9df8bf64 100644 --- a/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix +++ b/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix @@ -11,7 +11,7 @@ buildGoModule rec { sourceRoot = "${src.name}/sdk/python/cmd/pulumi-language-python"; - vendorHash = "sha256-Q8nnYJJN5+W2luY8JQJj1X9KIk9ad511FBywr+0wBNg="; + vendorHash = "sha256-2K3EIG0xRcRRJES9h72Sk9V442T6dHZbYxz1uxxEKWI="; ldflags = [ "-s" @@ -22,6 +22,7 @@ buildGoModule rec { checkFlags = [ "-skip=^${ lib.concatStringsSep "$|^" [ + "TestLanguage" "TestDeterminePulumiPackages" ] }$" diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 618d4192a534..0a26ba4a8ed1 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1460,7 +1460,7 @@ self: super: with self; { pueblo = callPackage ../development/python-modules/pueblo { }; - pulumi = callPackage ../development/python-modules/pulumi { inherit (pkgs) pulumi; }; + pulumi = callPackage ../development/python-modules/pulumi { }; pulumi-aws = callPackage ../development/python-modules/pulumi-aws { }; From 6c1f4eab6450572476adc07164336164e38cbfba Mon Sep 17 00:00:00 2001 From: Ivan Trubach Date: Wed, 19 Feb 2025 17:50:52 +0300 Subject: [PATCH 17/61] pulumi: fix cross-compilation --- pkgs/by-name/pu/pulumi/package.nix | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/pu/pulumi/package.nix b/pkgs/by-name/pu/pulumi/package.nix index ace63027c10e..561ec997b7f6 100644 --- a/pkgs/by-name/pu/pulumi/package.nix +++ b/pkgs/by-name/pu/pulumi/package.nix @@ -5,6 +5,7 @@ fetchFromGitHub, installShellFiles, git, + buildPackages, # passthru runCommand, makeWrapper, @@ -101,11 +102,18 @@ buildGoModule rec { # Allow tests that bind or connect to localhost on macOS. __darwinAllowLocalNetworking = true; + # Use pulumi from the previous stage if we can’t execute compiled binary. + pulumiExe = + if stdenv.buildPlatform.canExecute stdenv.hostPlatform then + "${placeholder "out"}/bin/pulumi" + else + "${buildPackages.pulumi}/bin/pulumi"; + postInstall = '' - installShellCompletion --cmd pulumi \ - --bash <($out/bin/pulumi gen-completion bash) \ - --fish <($out/bin/pulumi gen-completion fish) \ - --zsh <($out/bin/pulumi gen-completion zsh) + for shell in bash fish zsh; do + "$pulumiExe" gen-completion $shell >pulumi.$shell + installShellCompletion pulumi.$shell + done ''; passthru = { From 2542b9e428abb552ac1915576edac707399954d7 Mon Sep 17 00:00:00 2001 From: Felix Buehler Date: Sat, 22 Feb 2025 20:05:33 +0100 Subject: [PATCH 18/61] nixos/servarr: add options and env-var functions --- .../misc/servarr/settings-options.nix | 88 +++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 nixos/modules/services/misc/servarr/settings-options.nix diff --git a/nixos/modules/services/misc/servarr/settings-options.nix b/nixos/modules/services/misc/servarr/settings-options.nix new file mode 100644 index 000000000000..007deba75425 --- /dev/null +++ b/nixos/modules/services/misc/servarr/settings-options.nix @@ -0,0 +1,88 @@ +{ lib, pkgs }: +{ + mkServarrSettingsOptions = + name: port: + lib.mkOption { + type = lib.types.submodule { + freeformType = (pkgs.formats.ini { }).type; + options = { + update = { + mechanism = lib.mkOption { + type = + with lib.types; + nullOr (enum [ + "external" + "builtIn" + "script" + ]); + description = "which update mechanism to use"; + default = "external"; + }; + automatically = lib.mkOption { + type = lib.types.bool; + description = "Automatically download and install updates."; + default = false; + }; + }; + server = { + port = lib.mkOption { + type = lib.types.int; + description = "Port Number"; + default = port; + }; + }; + log = { + analyticsEnabled = lib.mkOption { + type = lib.types.bool; + description = "Send Anonymous Usage Data"; + default = false; + }; + }; + }; + }; + example = lib.options.literalExpression '' + { + update.mechanism = "internal"; + server = { + urlbase = "localhost"; + port = ${toString port}; + bindaddress = "*"; + }; + } + ''; + default = { }; + description = '' + Attribute set of arbitrary config options. + Please consult the documentation at the [wiki](https://wiki.servarr.com/useful-tools#using-environment-variables-for-config). + + WARNING: this configuration is stored in the world-readable Nix store! + For secrets use [](#opt-services.${name}.environmentFiles). + ''; + }; + + mkServarrEnvironmentFiles = + name: + lib.mkOption { + type = lib.types.listOf lib.types.path; + default = [ ]; + description = '' + Environment file to pass secret configuration values. + Each line must follow the `${lib.toUpper name}__SECTION__KEY=value` pattern. + Please consult the documentation at the [wiki](https://wiki.servarr.com/useful-tools#using-environment-variables-for-config). + ''; + }; + + mkServarrSettingsEnvVars = + name: settings: + lib.pipe settings [ + (lib.mapAttrsRecursive ( + path: value: + lib.optionalAttrs (value != null) { + name = lib.toUpper "${name}__${lib.concatStringsSep "__" path}"; + value = toString (if lib.isBool value then lib.boolToString value else value); + } + )) + (lib.collect (x: lib.isString x.name or false && lib.isString x.value or false)) + lib.listToAttrs + ]; +} From dcf1b856ac43439755d401ab9db417be7535aced Mon Sep 17 00:00:00 2001 From: Felix Buehler Date: Fri, 21 Feb 2025 22:34:12 +0100 Subject: [PATCH 19/61] nixos/sonarr: add settings option --- nixos/modules/services/misc/sonarr.nix | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/nixos/modules/services/misc/sonarr.nix b/nixos/modules/services/misc/sonarr.nix index 65f43df08312..bb79a63df0f8 100644 --- a/nixos/modules/services/misc/sonarr.nix +++ b/nixos/modules/services/misc/sonarr.nix @@ -7,6 +7,7 @@ }: let cfg = config.services.sonarr; + servarr = import ./servarr/settings-options.nix { inherit lib pkgs; }; in { options = { @@ -27,6 +28,10 @@ in ''; }; + environmentFiles = servarr.mkServarrEnvironmentFiles "sonarr"; + + settings = servarr.mkServarrSettingsOptions "sonarr" 8989; + user = lib.mkOption { type = lib.types.str; default = "sonarr"; @@ -52,11 +57,12 @@ in description = "Sonarr"; after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; - + environment = servarr.mkServarrSettingsEnvVars "SONARR" cfg.settings; serviceConfig = { Type = "simple"; User = cfg.user; Group = cfg.group; + EnvironmentFile = cfg.environmentFiles; ExecStart = utils.escapeSystemdExecArgs [ (lib.getExe cfg.package) "-nobrowser" @@ -67,7 +73,7 @@ in }; networking.firewall = lib.mkIf cfg.openFirewall { - allowedTCPPorts = [ 8989 ]; + allowedTCPPorts = [ cfg.settings.server.port ]; }; users.users = lib.mkIf (cfg.user == "sonarr") { From 0ee1f7fd4c0f5cbed65eb4aacf8d85b9917192b1 Mon Sep 17 00:00:00 2001 From: Felix Buehler Date: Fri, 21 Feb 2025 22:42:12 +0100 Subject: [PATCH 20/61] nixos/radarr: add settings option --- nixos/modules/services/misc/radarr.nix | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/nixos/modules/services/misc/radarr.nix b/nixos/modules/services/misc/radarr.nix index bb645acd5f92..400287d1ffcf 100644 --- a/nixos/modules/services/misc/radarr.nix +++ b/nixos/modules/services/misc/radarr.nix @@ -6,7 +6,7 @@ }: let cfg = config.services.radarr; - + servarr = import ./servarr/settings-options.nix { inherit lib pkgs; }; in { options = { @@ -27,6 +27,10 @@ in description = "Open ports in the firewall for the Radarr web interface."; }; + settings = servarr.mkServarrSettingsOptions "radarr" 7878; + + environmentFiles = servarr.mkServarrEnvironmentFiles "radarr"; + user = lib.mkOption { type = lib.types.str; default = "radarr"; @@ -51,18 +55,20 @@ in description = "Radarr"; after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; + environment = servarr.mkServarrSettingsEnvVars "RADARR" cfg.settings; serviceConfig = { Type = "simple"; User = cfg.user; Group = cfg.group; + EnvironmentFile = cfg.environmentFiles; ExecStart = "${cfg.package}/bin/Radarr -nobrowser -data='${cfg.dataDir}'"; Restart = "on-failure"; }; }; networking.firewall = lib.mkIf cfg.openFirewall { - allowedTCPPorts = [ 7878 ]; + allowedTCPPorts = [ cfg.settings.server.port ]; }; users.users = lib.mkIf (cfg.user == "radarr") { From ae25ae9c3d7e9cdf7867003abe0f92d6af88f65b Mon Sep 17 00:00:00 2001 From: Felix Buehler Date: Fri, 21 Feb 2025 22:42:22 +0100 Subject: [PATCH 21/61] nixos/lidarr: add settings option --- nixos/modules/services/misc/lidarr.nix | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/misc/lidarr.nix b/nixos/modules/services/misc/lidarr.nix index 1ca0697205b5..dc46f559c5fe 100644 --- a/nixos/modules/services/misc/lidarr.nix +++ b/nixos/modules/services/misc/lidarr.nix @@ -6,6 +6,7 @@ }: let cfg = config.services.lidarr; + servarr = import ./servarr/settings-options.nix { inherit lib pkgs; }; in { options = { @@ -28,6 +29,10 @@ in ''; }; + settings = servarr.mkServarrSettingsOptions "lidarr" 8686; + + environmentFiles = servarr.mkServarrEnvironmentFiles "lidarr"; + user = lib.mkOption { type = lib.types.str; default = "lidarr"; @@ -56,18 +61,20 @@ in description = "Lidarr"; after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; + environment = servarr.mkServarrSettingsEnvVars "LIDARR" cfg.settings; serviceConfig = { Type = "simple"; User = cfg.user; Group = cfg.group; + EnvironmentFile = cfg.environmentFiles; ExecStart = "${cfg.package}/bin/Lidarr -nobrowser -data='${cfg.dataDir}'"; Restart = "on-failure"; }; }; networking.firewall = lib.mkIf cfg.openFirewall { - allowedTCPPorts = [ 8686 ]; + allowedTCPPorts = [ cfg.settings.server.port ]; }; users.users = lib.mkIf (cfg.user == "lidarr") { From 7045b5061f56cf5ef657ffe1bc373d5e1e0beb63 Mon Sep 17 00:00:00 2001 From: Felix Buehler Date: Fri, 21 Feb 2025 22:42:36 +0100 Subject: [PATCH 22/61] nixos/readarr: add settings option --- nixos/modules/services/misc/readarr.nix | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/misc/readarr.nix b/nixos/modules/services/misc/readarr.nix index 49a3fde81a9d..f10cc8847ab9 100644 --- a/nixos/modules/services/misc/readarr.nix +++ b/nixos/modules/services/misc/readarr.nix @@ -6,6 +6,7 @@ }: let cfg = config.services.readarr; + servarr = import ./servarr/settings-options.nix { inherit lib pkgs; }; in { options = { @@ -28,6 +29,10 @@ in ''; }; + settings = servarr.mkServarrSettingsOptions "readarr" 8787; + + environmentFiles = servarr.mkServarrEnvironmentFiles "readarr"; + user = lib.mkOption { type = lib.types.str; default = "readarr"; @@ -56,18 +61,20 @@ in description = "Readarr"; after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; + environment = servarr.mkServarrSettingsEnvVars "READARR" cfg.settings; serviceConfig = { Type = "simple"; User = cfg.user; Group = cfg.group; + EnvironmentFile = cfg.environmentFiles; ExecStart = "${cfg.package}/bin/Readarr -nobrowser -data='${cfg.dataDir}'"; Restart = "on-failure"; }; }; networking.firewall = lib.mkIf cfg.openFirewall { - allowedTCPPorts = [ 8787 ]; + allowedTCPPorts = [ cfg.settings.server.port ]; }; users.users = lib.mkIf (cfg.user == "readarr") { From 22b311429ffb62adce41826d084e6bccae007209 Mon Sep 17 00:00:00 2001 From: Felix Buehler Date: Fri, 21 Feb 2025 22:42:51 +0100 Subject: [PATCH 23/61] nixos/whisparr: add settings option --- nixos/modules/services/misc/whisparr.nix | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/misc/whisparr.nix b/nixos/modules/services/misc/whisparr.nix index bf15ee70fde4..02db788fc3ae 100644 --- a/nixos/modules/services/misc/whisparr.nix +++ b/nixos/modules/services/misc/whisparr.nix @@ -7,6 +7,7 @@ let cfg = config.services.whisparr; + servarr = import ./servarr/settings-options.nix { inherit lib pkgs; }; in { options = { @@ -27,6 +28,10 @@ in description = "Open ports in the firewall for the Whisparr web interface."; }; + settings = servarr.mkServarrSettingsOptions "whisparr" 6969; + + environmentFiles = servarr.mkServarrEnvironmentFiles "whisparr"; + user = lib.mkOption { type = lib.types.str; default = "whisparr"; @@ -48,17 +53,21 @@ in description = "Whisparr"; after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; + environment = servarr.mkServarrSettingsEnvVars "WHISPARR" cfg.settings; serviceConfig = { Type = "simple"; User = cfg.user; Group = cfg.group; + EnvironmentFile = cfg.environmentFiles; ExecStart = "${lib.getExe cfg.package} -nobrowser -data='${cfg.dataDir}'"; Restart = "on-failure"; }; }; - networking.firewall = lib.mkIf cfg.openFirewall { allowedTCPPorts = [ 6969 ]; }; + networking.firewall = lib.mkIf cfg.openFirewall { + allowedTCPPorts = [ cfg.settings.server.port ]; + }; users.users = lib.mkIf (cfg.user == "whisparr") { whisparr = { From 7b0f7e26962927ba1f6a02775e8dd35b8a252c28 Mon Sep 17 00:00:00 2001 From: Felix Buehler Date: Fri, 21 Feb 2025 22:43:05 +0100 Subject: [PATCH 24/61] nixos/prowlarr: add settings option --- nixos/modules/services/misc/prowlarr.nix | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/nixos/modules/services/misc/prowlarr.nix b/nixos/modules/services/misc/prowlarr.nix index 21296985b3ef..d0488241f2d2 100644 --- a/nixos/modules/services/misc/prowlarr.nix +++ b/nixos/modules/services/misc/prowlarr.nix @@ -6,7 +6,7 @@ }: let cfg = config.services.prowlarr; - + servarr = import ./servarr/settings-options.nix { inherit lib pkgs; }; in { options = { @@ -20,6 +20,10 @@ in default = false; description = "Open ports in the firewall for the Prowlarr web interface."; }; + + settings = servarr.mkServarrSettingsOptions "prowlarr" 9696; + + environmentFiles = servarr.mkServarrEnvironmentFiles "prowlarr"; }; }; @@ -28,19 +32,22 @@ in description = "Prowlarr"; after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; + environment = servarr.mkServarrSettingsEnvVars "PROWLARR" cfg.settings // { + HOME = "/var/empty"; + }; serviceConfig = { Type = "simple"; DynamicUser = true; StateDirectory = "prowlarr"; + EnvironmentFile = cfg.environmentFiles; ExecStart = "${lib.getExe cfg.package} -nobrowser -data=/var/lib/prowlarr"; Restart = "on-failure"; }; - environment.HOME = "/var/empty"; }; networking.firewall = lib.mkIf cfg.openFirewall { - allowedTCPPorts = [ 9696 ]; + allowedTCPPorts = [ cfg.settings.server.port ]; }; }; } From 4618d53edafeefd21ffc6f362b7c5100fd3e1ccb Mon Sep 17 00:00:00 2001 From: Felix Buehler Date: Mon, 24 Feb 2025 18:46:54 +0100 Subject: [PATCH 25/61] nixos/servarr: organize files --- nixos/modules/module-list.nix | 12 ++++++------ nixos/modules/services/misc/{ => servarr}/lidarr.nix | 2 +- .../modules/services/misc/{ => servarr}/prowlarr.nix | 2 +- nixos/modules/services/misc/{ => servarr}/radarr.nix | 2 +- .../modules/services/misc/{ => servarr}/readarr.nix | 2 +- nixos/modules/services/misc/{ => servarr}/sonarr.nix | 2 +- .../modules/services/misc/{ => servarr}/whisparr.nix | 2 +- 7 files changed, 12 insertions(+), 12 deletions(-) rename nixos/modules/services/misc/{ => servarr}/lidarr.nix (96%) rename nixos/modules/services/misc/{ => servarr}/prowlarr.nix (94%) rename nixos/modules/services/misc/{ => servarr}/radarr.nix (96%) rename nixos/modules/services/misc/{ => servarr}/readarr.nix (96%) rename nixos/modules/services/misc/{ => servarr}/sonarr.nix (96%) rename nixos/modules/services/misc/{ => servarr}/whisparr.nix (96%) diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 9dcd3e88bfe8..55c556bc7a29 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -820,7 +820,6 @@ ./services/misc/klipper.nix ./services/misc/languagetool.nix ./services/misc/leaps.nix - ./services/misc/lidarr.nix ./services/misc/lifecycled.nix ./services/misc/llama-cpp.nix ./services/misc/logkeys.nix @@ -860,12 +859,9 @@ ./services/misc/portunus.nix ./services/misc/preload.nix ./services/misc/private-gpt.nix - ./services/misc/prowlarr.nix ./services/misc/pufferpanel.nix ./services/misc/pykms.nix - ./services/misc/radarr.nix ./services/misc/radicle.nix - ./services/misc/readarr.nix ./services/misc/realmd.nix ./services/misc/recyclarr.nix ./services/misc/redlib.nix @@ -876,13 +872,18 @@ ./services/misc/rshim.nix ./services/misc/safeeyes.nix ./services/misc/sdrplay.nix + ./services/misc/servarr/lidarr.nix + ./services/misc/servarr/prowlarr.nix + ./services/misc/servarr/radarr.nix + ./services/misc/servarr/readarr.nix + ./services/misc/servarr/sonarr.nix + ./services/misc/servarr/whisparr.nix ./services/misc/serviio.nix ./services/misc/sickbeard.nix ./services/misc/signald.nix ./services/misc/siproxd.nix ./services/misc/snapper.nix ./services/misc/soft-serve.nix - ./services/misc/sonarr.nix ./services/misc/sourcehut ./services/misc/spice-autorandr.nix ./services/misc/spice-vdagentd.nix @@ -908,7 +909,6 @@ ./services/misc/wastebin.nix ./services/misc/weechat.nix ./services/misc/workout-tracker.nix - ./services/misc/whisparr.nix ./services/misc/xmrig.nix ./services/misc/ytdl-sub.nix ./services/misc/zoneminder.nix diff --git a/nixos/modules/services/misc/lidarr.nix b/nixos/modules/services/misc/servarr/lidarr.nix similarity index 96% rename from nixos/modules/services/misc/lidarr.nix rename to nixos/modules/services/misc/servarr/lidarr.nix index dc46f559c5fe..09df550fb2cd 100644 --- a/nixos/modules/services/misc/lidarr.nix +++ b/nixos/modules/services/misc/servarr/lidarr.nix @@ -6,7 +6,7 @@ }: let cfg = config.services.lidarr; - servarr = import ./servarr/settings-options.nix { inherit lib pkgs; }; + servarr = import ./settings-options.nix { inherit lib pkgs; }; in { options = { diff --git a/nixos/modules/services/misc/prowlarr.nix b/nixos/modules/services/misc/servarr/prowlarr.nix similarity index 94% rename from nixos/modules/services/misc/prowlarr.nix rename to nixos/modules/services/misc/servarr/prowlarr.nix index d0488241f2d2..dcf5b18005b4 100644 --- a/nixos/modules/services/misc/prowlarr.nix +++ b/nixos/modules/services/misc/servarr/prowlarr.nix @@ -6,7 +6,7 @@ }: let cfg = config.services.prowlarr; - servarr = import ./servarr/settings-options.nix { inherit lib pkgs; }; + servarr = import ./settings-options.nix { inherit lib pkgs; }; in { options = { diff --git a/nixos/modules/services/misc/radarr.nix b/nixos/modules/services/misc/servarr/radarr.nix similarity index 96% rename from nixos/modules/services/misc/radarr.nix rename to nixos/modules/services/misc/servarr/radarr.nix index 400287d1ffcf..9ca4b889de63 100644 --- a/nixos/modules/services/misc/radarr.nix +++ b/nixos/modules/services/misc/servarr/radarr.nix @@ -6,7 +6,7 @@ }: let cfg = config.services.radarr; - servarr = import ./servarr/settings-options.nix { inherit lib pkgs; }; + servarr = import ./settings-options.nix { inherit lib pkgs; }; in { options = { diff --git a/nixos/modules/services/misc/readarr.nix b/nixos/modules/services/misc/servarr/readarr.nix similarity index 96% rename from nixos/modules/services/misc/readarr.nix rename to nixos/modules/services/misc/servarr/readarr.nix index f10cc8847ab9..3933ec0305f4 100644 --- a/nixos/modules/services/misc/readarr.nix +++ b/nixos/modules/services/misc/servarr/readarr.nix @@ -6,7 +6,7 @@ }: let cfg = config.services.readarr; - servarr = import ./servarr/settings-options.nix { inherit lib pkgs; }; + servarr = import ./settings-options.nix { inherit lib pkgs; }; in { options = { diff --git a/nixos/modules/services/misc/sonarr.nix b/nixos/modules/services/misc/servarr/sonarr.nix similarity index 96% rename from nixos/modules/services/misc/sonarr.nix rename to nixos/modules/services/misc/servarr/sonarr.nix index bb79a63df0f8..9918c9da28f5 100644 --- a/nixos/modules/services/misc/sonarr.nix +++ b/nixos/modules/services/misc/servarr/sonarr.nix @@ -7,7 +7,7 @@ }: let cfg = config.services.sonarr; - servarr = import ./servarr/settings-options.nix { inherit lib pkgs; }; + servarr = import ./settings-options.nix { inherit lib pkgs; }; in { options = { diff --git a/nixos/modules/services/misc/whisparr.nix b/nixos/modules/services/misc/servarr/whisparr.nix similarity index 96% rename from nixos/modules/services/misc/whisparr.nix rename to nixos/modules/services/misc/servarr/whisparr.nix index 02db788fc3ae..b686c8a76691 100644 --- a/nixos/modules/services/misc/whisparr.nix +++ b/nixos/modules/services/misc/servarr/whisparr.nix @@ -7,7 +7,7 @@ let cfg = config.services.whisparr; - servarr = import ./servarr/settings-options.nix { inherit lib pkgs; }; + servarr = import ./settings-options.nix { inherit lib pkgs; }; in { options = { From 4d2678a6e924c900479e533fd7c8d85bac45c176 Mon Sep 17 00:00:00 2001 From: Kaeeraa Date: Mon, 24 Feb 2025 20:42:28 +0000 Subject: [PATCH 26/61] maintainers: add kaeeraa --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 96e2861a706d..fc0b8e43ff01 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -11947,6 +11947,12 @@ githubId = 44864956; keys = [ { fingerprint = "3F87 0A7C A7B4 3731 2F13 6083 749F D4DF A2E9 4236"; } ]; }; + kaeeraa = { + name = "kaeeraa"; + email = "kaeeraa@nebula-nook.ru"; + github = "kaeeraa"; + githubId = 99148867; + }; kaiha = { email = "kai.harries@gmail.com"; github = "KaiHa"; From 3afc7a4bb49ffe4af4fc638736f567f4f17dc8d2 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 26 Feb 2025 02:29:12 +0000 Subject: [PATCH 27/61] nats-server: 2.10.25 -> 2.10.26 --- pkgs/by-name/na/nats-server/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/na/nats-server/package.nix b/pkgs/by-name/na/nats-server/package.nix index d15df89ddf7f..7008db74155f 100644 --- a/pkgs/by-name/na/nats-server/package.nix +++ b/pkgs/by-name/na/nats-server/package.nix @@ -7,16 +7,16 @@ buildGoModule rec { pname = "nats-server"; - version = "2.10.25"; + version = "2.10.26"; src = fetchFromGitHub { owner = "nats-io"; repo = pname; rev = "v${version}"; - hash = "sha256-cpAUyTnGEPPPA2RRJ+jYQgUSZuI8YJQ3s4uhHvoYDCg="; + hash = "sha256-jOfS1uHI8sTL7xTyIiK/M7bFFNLTZZ6+Xy5QErBe9VY="; }; - vendorHash = "sha256-8wExTV9seztPnpgyckDZnGc5iF3oY453YX7aoRcZHaI="; + vendorHash = "sha256-9BkcN4XLQPc9Df6m/CssKYxUk1nKJHB5SRPMrsXd+lQ="; doCheck = false; From b029646afcf018616183b642d652567340de396d Mon Sep 17 00:00:00 2001 From: Felix Buehler Date: Wed, 26 Feb 2025 20:38:12 +0100 Subject: [PATCH 28/61] nixosTests/prometheus-exporters.exportarr-sonarr: use new env-vars --- nixos/tests/prometheus-exporters.nix | 26 ++++---------------------- 1 file changed, 4 insertions(+), 22 deletions(-) diff --git a/nixos/tests/prometheus-exporters.nix b/nixos/tests/prometheus-exporters.nix index be11bddb9329..89e33952697f 100644 --- a/nixos/tests/prometheus-exporters.nix +++ b/nixos/tests/prometheus-exporters.nix @@ -364,28 +364,10 @@ let apiKeyFile = pkgs.writeText "dummy-api-key" apikey; }; metricProvider = { - services.sonarr.enable = true; - systemd.services.sonarr.serviceConfig.ExecStartPre = - let - sonarr_config = pkgs.writeText "config.xml" '' - - info - False - 8989 - 9898 - - * - ${apikey} - None - BuiltIn - main - Sonarr - - ''; - in - [ - ''${pkgs.coreutils}/bin/install -D -m 777 ${sonarr_config} -T /var/lib/sonarr/.config/NzbDrone/config.xml'' - ]; + services.sonarr = { + enable = true; + environmentFiles = [(pkgs.writeText "sonarr-env" "SONARR__AUTH__APIKEY=${apikey}")]; + }; }; exporterTest = '' wait_for_unit("sonarr.service") From 188b6b6d8859d630856519afd56fa4f3a08d059a Mon Sep 17 00:00:00 2001 From: Albert Ilagan Date: Thu, 27 Feb 2025 16:19:13 +0800 Subject: [PATCH 29/61] maintainers: add albertilagan --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 396133bf4161..38754fbe8387 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -1014,6 +1014,12 @@ githubId = 217050; name = "Albert Chae"; }; + albertilagan = { + email = "me@albertilagan.dev"; + github = "albertilagan"; + githubId = 22500561; + name = "Albert Ilagan"; + }; albertodvp = { email = "alberto.fanton@protonmail.com"; github = "albertodvp"; From 5af1d19112213970bfec2319514b17aa3ac868c2 Mon Sep 17 00:00:00 2001 From: Fernando Rodrigues Date: Thu, 27 Feb 2025 17:45:48 -0300 Subject: [PATCH 30/61] xen: patch with XSA-467 When setting up interrupt remapping for legacy PCI(-X) devices, including PCI(-X) bridges, a lookup of the upstream bridge is required. This lookup, itself involving acquiring of a lock, is done in a context where acquiring that lock is unsafe. This can lead to a deadlock. The passing through of certain kinds of devices to an unprivileged guest can result in a Denial of Service (DoS) affecting the entire host. Note: Normal usage of such devices by a privileged domain can also trigger the issue. In such a scenario, the deadlock is not considered a security issue, but just a plain bug. Systems with Intel IOMMU hardware (VT-d) are affected. Systems using AMD or non-x86 hardware are not affected. Only systems where certain kinds of devices are passed through to an unprivileged guest are vulnerable. Signed-off-by: Fernando Rodrigues --- pkgs/by-name/xe/xen/package.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/by-name/xe/xen/package.nix b/pkgs/by-name/xe/xen/package.nix index b77a181c3c13..8383d175ad1a 100644 --- a/pkgs/by-name/xe/xen/package.nix +++ b/pkgs/by-name/xe/xen/package.nix @@ -12,6 +12,10 @@ buildXenPackage.override { inherit python3Packages; } { url = "https://lore.kernel.org/xen-devel/e2caa6648a0b6c429349a9826d8fbc4338222482.1733766758.git.andrii.sultanov@cloud.com/raw"; hash = "sha256-JC1ueXuC1Jdi2gtUsjOHmTeEx56zjotMMLde5vBonxc="; }) + (fetchpatch { + url = "https://xenbits.xenproject.org/xsa/xsa467.patch"; + hash = "sha256-O2IwfRo6BnXAO04xjKmOyrV6J6Q1mAVLHWNCxqIEQGU="; + }) ]; rev = "ccf400846780289ae779c62ef0c94757ff43bb60"; hash = "sha256-s0eCBCd6ybl+kLtXCC6E1sk++w7txXn/B/Cg5acQFfY="; From 72629a62614e40dbbef5f593c5ebd16ae0c8550a Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 28 Feb 2025 00:32:41 +0000 Subject: [PATCH 31/61] azurehound: 2.2.1 -> 2.3.0 --- pkgs/by-name/az/azurehound/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/az/azurehound/package.nix b/pkgs/by-name/az/azurehound/package.nix index 0222f32a3dae..e21a59cc6f69 100644 --- a/pkgs/by-name/az/azurehound/package.nix +++ b/pkgs/by-name/az/azurehound/package.nix @@ -7,13 +7,13 @@ buildGoModule rec { pname = "azurehound"; - version = "2.2.1"; + version = "2.3.0"; src = fetchFromGitHub { owner = "SpecterOps"; repo = "AzureHound"; tag = "v${version}"; - hash = "sha256-DqoEtL0uyLsP/2PJdOpAmXryEZQDlyGWPQHThF+3gJA="; + hash = "sha256-BbwQ3u1SD4AjNjHzT6QB0x7QJAZ59m1DtvhjZapLIx4="; }; vendorHash = "sha256-FG3207OTzkMEoSvQsTH7Ky9T3ur7glG7k0ERfd12SO0="; From 16957e130a20e8b2eba1253e089f27be8f51fcfe Mon Sep 17 00:00:00 2001 From: phanirithvij Date: Mon, 24 Feb 2025 12:24:10 +0530 Subject: [PATCH 32/61] n-m3u8dl-re: init at 0.3.0-beta Co-authored-by: Luis Co-authored-by: Rebecca Turner Signed-off-by: phanirithvij --- pkgs/by-name/n-/n-m3u8dl-re/deps.json | 17 +++++++ pkgs/by-name/n-/n-m3u8dl-re/package.nix | 46 +++++++++++++++++++ pkgs/by-name/n-/n-m3u8dl-re/publish-fix.patch | 10 ++++ pkgs/by-name/n-/n-m3u8dl-re/reverse-arr.patch | 42 +++++++++++++++++ 4 files changed, 115 insertions(+) create mode 100644 pkgs/by-name/n-/n-m3u8dl-re/deps.json create mode 100644 pkgs/by-name/n-/n-m3u8dl-re/package.nix create mode 100644 pkgs/by-name/n-/n-m3u8dl-re/publish-fix.patch create mode 100644 pkgs/by-name/n-/n-m3u8dl-re/reverse-arr.patch diff --git a/pkgs/by-name/n-/n-m3u8dl-re/deps.json b/pkgs/by-name/n-/n-m3u8dl-re/deps.json new file mode 100644 index 000000000000..2aa2b24a72db --- /dev/null +++ b/pkgs/by-name/n-/n-m3u8dl-re/deps.json @@ -0,0 +1,17 @@ +[ + { + "pname": "NiL.JS", + "version": "2.5.1684", + "hash": "sha256-lxFTYyuj0SuNzIQGq+rK9s0tAqxqQg8PBj/YdktJunw=" + }, + { + "pname": "Spectre.Console", + "version": "0.49.2-preview.0.50", + "hash": "sha256-ivFyHTfQxPf/RIin+aftmd+G4PcrqmJXmdu0u/RU6YA=" + }, + { + "pname": "System.CommandLine", + "version": "2.0.0-beta4.22272.1", + "hash": "sha256-zSO+CYnMH8deBHDI9DHhCPj79Ce3GOzHCyH1/TiHxcc=" + } +] diff --git a/pkgs/by-name/n-/n-m3u8dl-re/package.nix b/pkgs/by-name/n-/n-m3u8dl-re/package.nix new file mode 100644 index 000000000000..513f7a5c8c84 --- /dev/null +++ b/pkgs/by-name/n-/n-m3u8dl-re/package.nix @@ -0,0 +1,46 @@ +{ + lib, + buildDotnetModule, + fetchFromGitHub, + dotnetCorePackages, +}: +buildDotnetModule rec { + pname = "n-m3u8dl-re"; + version = "0.3.0-beta"; + src = fetchFromGitHub { + owner = "nilaoda"; + repo = "N_m3u8DL-RE"; + tag = "v${version}"; + sha256 = "sha256-AVLO7pxD1LCoogsJPPN5aoOmVBIm3Y/EVsiQWdYI6QU="; + }; + patches = [ + ./publish-fix.patch + ./reverse-arr.patch + ]; + + # from openutau/default.nix + # [...]/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(248,5): error MSB4018: The "GenerateDepsFile" task failed unexpectedly. [[...]/N_m3u8DL-RE.Common.csproj] + # [...]/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(248,5): error MSB4018: System.IO.IOException: The process cannot access the file '[...]/N_m3u8DL-RE.Common.deps.json' because it is being used by another process. [[...]/N_m3u8DL-RE.Common.csproj] + enableParallelBuilding = false; + + projectFile = "src/N_m3u8DL-RE.sln"; + nugetDeps = ./deps.json; + + executables = [ "N_m3u8DL-RE" ]; + + dotnet-sdk = dotnetCorePackages.sdk_9_0; + dotnet-runtime = dotnetCorePackages.runtime_9_0; + + postFixup = '' + ln -s $out/bin/N_m3u8DL-RE $out/bin/n-m3u8dl-re + ''; + + meta = { + description = "Cross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM"; + homepage = "https://github.com/nilaoda/N_m3u8DL-RE"; + license = lib.licenses.mit; + mainProgram = "n-m3u8dl-re"; + maintainers = with lib.maintainers; [ phanirithvij ]; + platforms = lib.platforms.linux ++ lib.platforms.unix; + }; +} diff --git a/pkgs/by-name/n-/n-m3u8dl-re/publish-fix.patch b/pkgs/by-name/n-/n-m3u8dl-re/publish-fix.patch new file mode 100644 index 000000000000..1d710ac7b725 --- /dev/null +++ b/pkgs/by-name/n-/n-m3u8dl-re/publish-fix.patch @@ -0,0 +1,10 @@ +--- a/src/N_m3u8DL-RE/Directory.Build.props ++++ b/src/N_m3u8DL-RE/Directory.Build.props +@@ -9,7 +9,6 @@ + true + true + zh-CN;zh-TW;en-US +- true + true + aarch64-linux-gnu-objcopy + diff --git a/pkgs/by-name/n-/n-m3u8dl-re/reverse-arr.patch b/pkgs/by-name/n-/n-m3u8dl-re/reverse-arr.patch new file mode 100644 index 000000000000..1372adfc6414 --- /dev/null +++ b/pkgs/by-name/n-/n-m3u8dl-re/reverse-arr.patch @@ -0,0 +1,42 @@ +diff --git a/src/N_m3u8DL-RE.Common/Entity/WebVttSub.cs b/src/N_m3u8DL-RE.Common/Entity/WebVttSub.cs +index 6b6d284..b57fc24 100644 +--- a/src/N_m3u8DL-RE.Common/Entity/WebVttSub.cs ++++ b/src/N_m3u8DL-RE.Common/Entity/WebVttSub.cs +@@ -201,7 +201,8 @@ public partial class WebVttSub + time += Convert.ToInt32(parts.Last().PadRight(3, '0')); + str = parts.First(); + } +- var t = str.Split(':').Reverse().ToList(); ++ var t = str.Split(':').ToList(); ++ t.Reverse(); + for (int i = 0; i < t.Count; i++) + { + time += (long)Math.Pow(60, i) * Convert.ToInt32(t[i]) * 1000; +@@ -265,4 +266,4 @@ public partial class WebVttSub + + return srt; + } +-} +\ No newline at end of file ++} +diff --git a/src/N_m3u8DL-RE/Util/OtherUtil.cs b/src/N_m3u8DL-RE/Util/OtherUtil.cs +index b2487f3..4eab23f 100644 +--- a/src/N_m3u8DL-RE/Util/OtherUtil.cs ++++ b/src/N_m3u8DL-RE/Util/OtherUtil.cs +@@ -70,7 +70,8 @@ internal static partial class OtherUtil + var hours = -1; + var mins = -1; + var secs = -1; +- arr.Reverse().Select(i => Convert.ToInt32(i)).ToList().ForEach(item => ++ arr.Reverse(); ++ arr.Select(i => Convert.ToInt32(i)).ToList().ForEach(item => + { + if (secs == -1) secs = item; + else if (mins == -1) mins = item; +@@ -170,4 +171,4 @@ internal static partial class OtherUtil + + [GeneratedRegex(@"^(?:(\d+)h)?(?:(\d+)m)?(?:(\d+)s)?$")] + private static partial Regex TimeStrRegex(); +-} +\ No newline at end of file ++} From f4d6f4e1f372ce3aab1c51166606d5c91603a4e4 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 28 Feb 2025 12:36:38 +0000 Subject: [PATCH 33/61] pgpool: 4.5.5 -> 4.6.0 --- pkgs/by-name/pg/pgpool/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/pg/pgpool/package.nix b/pkgs/by-name/pg/pgpool/package.nix index 063eaebe766e..f2a1700b0252 100644 --- a/pkgs/by-name/pg/pgpool/package.nix +++ b/pkgs/by-name/pg/pgpool/package.nix @@ -10,12 +10,12 @@ stdenv.mkDerivation rec { pname = "pgpool-II"; - version = "4.5.5"; + version = "4.6.0"; src = fetchurl { url = "https://www.pgpool.net/mediawiki/download.php?f=pgpool-II-${version}.tar.gz"; name = "pgpool-II-${version}.tar.gz"; - hash = "sha256-lf/urrawzr6oA04w/Bkz/sc4SyJ61REwXqzMXQkP+Zg="; + hash = "sha256-9oplcUQtfqU7afOddJrUV3kLABgOGbAZ/ILiNbqwcyE="; }; buildInputs = [ From f70879f8d8ec8e9de94bdf0aa05ed781b37377f1 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 28 Feb 2025 14:01:19 +0000 Subject: [PATCH 34/61] python312Packages.folium: 0.19.4 -> 0.19.5 --- pkgs/development/python-modules/folium/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/folium/default.nix b/pkgs/development/python-modules/folium/default.nix index 5a45f37e4100..c45f97fec14b 100644 --- a/pkgs/development/python-modules/folium/default.nix +++ b/pkgs/development/python-modules/folium/default.nix @@ -21,7 +21,7 @@ buildPythonPackage rec { pname = "folium"; - version = "0.19.4"; + version = "0.19.5"; pyproject = true; disabled = pythonOlder "3.9"; @@ -30,7 +30,7 @@ buildPythonPackage rec { owner = "python-visualization"; repo = "folium"; tag = "v${version}"; - hash = "sha256-qTTJK12nHIhcMkPu4rb2IYWm96EjRafftacrlfeGqZg="; + hash = "sha256-jZrGJWSmQXQNlZYldeNSh5AhlTHow5gxCEkksEoKZ7E="; }; build-system = [ From bab68266959577575206aff4bc93b4ec43397d5d Mon Sep 17 00:00:00 2001 From: Franz Pletz Date: Fri, 28 Feb 2025 16:31:32 +0100 Subject: [PATCH 35/61] ntpd-rs: 1.4.0 -> 1.5.0 --- pkgs/by-name/nt/ntpd-rs/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/nt/ntpd-rs/package.nix b/pkgs/by-name/nt/ntpd-rs/package.nix index 7387291ebe32..9836a34f8dc4 100644 --- a/pkgs/by-name/nt/ntpd-rs/package.nix +++ b/pkgs/by-name/nt/ntpd-rs/package.nix @@ -13,17 +13,17 @@ rustPlatform.buildRustPackage rec { pname = "ntpd-rs"; - version = "1.4.0"; + version = "1.5.0"; src = fetchFromGitHub { owner = "pendulum-project"; repo = "ntpd-rs"; tag = "v${version}"; - hash = "sha256-usLtf4qwKkn+lEYSQWCa1ap9h/52YYMVFDkpFJVD00k="; + hash = "sha256-APQHxlsyUMA1N6FatQvotOokxNikOO22GGyXUMh3ABo="; }; useFetchCargoVendor = true; - cargoHash = "sha256-Zm7uRdgX9zgLeVdcSdp3z+NjyD9HB0GHX37qjgjSatI="; + cargoHash = "sha256-BiLYKOgmmqOesfl/8y4590Xo2Z4+u/Rn7CglNjQk2bU="; nativeBuildInputs = [ pandoc From 75403c4e2316308067b153bb294b891adb0ccdd2 Mon Sep 17 00:00:00 2001 From: David Flatz Date: Fri, 28 Feb 2025 17:17:10 +0100 Subject: [PATCH 36/61] mutt: Add zlib to buildInputs This enables the usage of $imap_deflate[1]. [1] http://www.mutt.org/doc/manual/#imap-deflate --- pkgs/by-name/mu/mutt/package.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/mu/mutt/package.nix b/pkgs/by-name/mu/mutt/package.nix index 69a4c2fbca06..0f47ad426674 100644 --- a/pkgs/by-name/mu/mutt/package.nix +++ b/pkgs/by-name/mu/mutt/package.nix @@ -12,6 +12,7 @@ gnupg, gpgme, libkrb5, + zlib, headerCache ? true, sslSupport ? true, saslSupport ? true, @@ -61,7 +62,10 @@ stdenv.mkDerivation rec { ]; buildInputs = - [ ncurses ] + [ + ncurses + zlib + ] ++ lib.optional headerCache gdbm ++ lib.optional sslSupport openssl ++ lib.optional gssSupport libkrb5 From 72fe6ca5f1f9339d0fa2e1234504d30552c59951 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 28 Feb 2025 18:00:54 +0000 Subject: [PATCH 37/61] dbeaver-bin: 24.3.4 -> 24.3.5 --- pkgs/by-name/db/dbeaver-bin/package.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/db/dbeaver-bin/package.nix b/pkgs/by-name/db/dbeaver-bin/package.nix index bc85dc350031..b90a9ca71bf0 100644 --- a/pkgs/by-name/db/dbeaver-bin/package.nix +++ b/pkgs/by-name/db/dbeaver-bin/package.nix @@ -17,7 +17,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { pname = "dbeaver-bin"; - version = "24.3.4"; + version = "24.3.5"; src = let @@ -30,10 +30,10 @@ stdenvNoCC.mkDerivation (finalAttrs: { aarch64-darwin = "macos-aarch64.dmg"; }; hash = selectSystem { - x86_64-linux = "sha256-t9yhOgcka7zRSP1QyZvnc3iefKn9gv+pjobFJongb3A="; - aarch64-linux = "sha256-JanACJPOgHqhjLt2BzR+H9ZHwA2uPIrmyluVkRBqAhY="; - x86_64-darwin = "sha256-6FFMRBj6Z4UhqENclixtcgOrrmcYuabBqeIFGEqRQEA="; - aarch64-darwin = "sha256-vBb1w7Y8ADvhpEx/bf4W5llNIlng6kfZEUKB5bzQ8TY="; + x86_64-linux = "sha256-Kt+CPPgeqKMxZZeWG3NjNKdlcQFyS9NvEaAQSI9c5CI="; + aarch64-linux = "sha256-9O0BhsrhVMpf3FMzqZeaNrCKdSscsOrLmo6Mq42aRLU="; + x86_64-darwin = "sha256-4uZrlgjHJz7zOgGn7mTRtz/qjlvzBglXAVcjf7SDmCs="; + aarch64-darwin = "sha256-Hm9215hcoNEc/amTQ9mBX2wl95aTCF1/T+5crctbaeA="; }; in fetchurl { From 8954980a7d4c79b6c2b80a2cc2321205654757f4 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 28 Feb 2025 18:19:45 +0000 Subject: [PATCH 38/61] python312Packages.zwave-js-server-python: 0.60.0 -> 0.60.1 --- .../python-modules/zwave-js-server-python/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/zwave-js-server-python/default.nix b/pkgs/development/python-modules/zwave-js-server-python/default.nix index 389e8635de4d..c18ed1d3ec99 100644 --- a/pkgs/development/python-modules/zwave-js-server-python/default.nix +++ b/pkgs/development/python-modules/zwave-js-server-python/default.nix @@ -12,7 +12,7 @@ buildPythonPackage rec { pname = "zwave-js-server-python"; - version = "0.60.0"; + version = "0.60.1"; pyproject = true; disabled = pythonOlder "3.11"; @@ -21,7 +21,7 @@ buildPythonPackage rec { owner = "home-assistant-libs"; repo = "zwave-js-server-python"; tag = version; - hash = "sha256-+TW+6NhbtANtXf5ITAs+Mz8I7iZk93YYdUkUhp4m7pw="; + hash = "sha256-YRC9DA77sLuTxw7YRbhYKxUOaBQaERTV4UWAwAEldhU="; }; build-system = [ setuptools ]; @@ -41,7 +41,7 @@ buildPythonPackage rec { meta = with lib; { description = "Python wrapper for zwave-js-server"; homepage = "https://github.com/home-assistant-libs/zwave-js-server-python"; - changelog = "https://github.com/home-assistant-libs/zwave-js-server-python/releases/tag/${version}"; + changelog = "https://github.com/home-assistant-libs/zwave-js-server-python/releases/tag/${src.tag}"; license = with licenses; [ asl20 ]; maintainers = with maintainers; [ fab ]; mainProgram = "zwave-js-server-python"; From 764b1ae7b65c3349bcd2432be0cb66a63259d1f6 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 28 Feb 2025 19:38:18 +0000 Subject: [PATCH 39/61] gpxsee: 13.35 -> 13.36 --- pkgs/applications/misc/gpxsee/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/misc/gpxsee/default.nix b/pkgs/applications/misc/gpxsee/default.nix index b2bfa4c20ca9..b56f5f6bc4d4 100644 --- a/pkgs/applications/misc/gpxsee/default.nix +++ b/pkgs/applications/misc/gpxsee/default.nix @@ -18,13 +18,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "gpxsee"; - version = "13.35"; + version = "13.36"; src = fetchFromGitHub { owner = "tumic0"; repo = "GPXSee"; rev = finalAttrs.version; - hash = "sha256-TvDopZyrRx+604ARrOiy2OsswE8/K+W5LIhOitttt3U="; + hash = "sha256-yPDbQfsclpDvLsKt1mLBXWs+lY9qDVWfVWF7/RQkFso="; }; buildInputs = From afcc902c69cbecfe59cbb1ed31fcc2c320cf684c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 28 Feb 2025 22:13:01 +0000 Subject: [PATCH 40/61] python312Packages.checkdmarc: 5.7.8 -> 5.8.1 --- pkgs/development/python-modules/checkdmarc/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/checkdmarc/default.nix b/pkgs/development/python-modules/checkdmarc/default.nix index 9f8ff2ea696e..23cd39a4464a 100644 --- a/pkgs/development/python-modules/checkdmarc/default.nix +++ b/pkgs/development/python-modules/checkdmarc/default.nix @@ -19,7 +19,7 @@ buildPythonPackage rec { pname = "checkdmarc"; - version = "5.7.8"; + version = "5.8.1"; format = "pyproject"; disabled = pythonOlder "3.7"; @@ -28,7 +28,7 @@ buildPythonPackage rec { owner = "domainaware"; repo = "checkdmarc"; tag = version; - hash = "sha256-fqSRqiakwFk1Cfb79oOEBbPF/fbtumuV7M6Mjl09Vmw="; + hash = "sha256-mdEfVfqK277A8QUc8rpLxS2pfdyg4Z5XqWpWkh9mFLk="; }; pythonRelaxDeps = [ "xmltodict" ]; @@ -69,7 +69,7 @@ buildPythonPackage rec { description = "Parser for SPF and DMARC DNS records"; mainProgram = "checkdmarc"; homepage = "https://github.com/domainaware/checkdmarc"; - changelog = "https://github.com/domainaware/checkdmarc/blob/${version}/CHANGELOG.md"; + changelog = "https://github.com/domainaware/checkdmarc/blob/${src.tag}/CHANGELOG.md"; license = licenses.asl20; maintainers = with maintainers; [ fab ]; }; From 3d368ed050ba9915c7ccda13175f5deab3638374 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 1 Mar 2025 00:11:49 +0000 Subject: [PATCH 41/61] immich: 1.127.0 -> 1.128.0 --- pkgs/by-name/im/immich/sources.json | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/pkgs/by-name/im/immich/sources.json b/pkgs/by-name/im/immich/sources.json index fe812ff8b2b0..031cb33bd394 100644 --- a/pkgs/by-name/im/immich/sources.json +++ b/pkgs/by-name/im/immich/sources.json @@ -1,26 +1,26 @@ { - "version": "1.127.0", - "hash": "sha256-9lCMVQxMNNZgu9KTxNJfE4woZ+xLhS8JvfurtC/nf8c=", + "version": "1.128.0", + "hash": "sha256-g/lDI8/ap+CfoXH6dZKKt6xQJ79YqvWD44qW/HpOwFg=", "components": { "cli": { - "npmDepsHash": "sha256-iKKENhyGgAfpetYt4SPxvJZrxYWevMID0jjCou9t8X8=", - "version": "2.2.51" + "npmDepsHash": "sha256-hQlCvMkUJNUJ2QkXuQ6w7U/P3EjgYdd+qG40cKKeSzw=", + "version": "2.2.52" }, "server": { - "npmDepsHash": "sha256-ZWRiQlXHXofUiyxNY74RL4IMIpv5XhNrR6g/GUcyaDA=", - "version": "1.127.0" + "npmDepsHash": "sha256-s5T/IAcpW3u7Gb37dCuIY8PR9CbR/gjye9PbQ+eLQeo=", + "version": "1.128.0" }, "web": { - "npmDepsHash": "sha256-A7bhxO/l0x5UoFCSy48BbUZX4mOXsXQwSS3EQHnAsFE=", - "version": "1.127.0" + "npmDepsHash": "sha256-/CCemxeHiitcRF2r4RWSkHHZ5BU54SjShnv4AE0l7sM=", + "version": "1.128.0" }, "open-api/typescript-sdk": { - "npmDepsHash": "sha256-14bcRhQi0VoodQl+GoK+uXFSqqDou7C2Rh50UoW71J8=", - "version": "1.127.0" + "npmDepsHash": "sha256-tLj6Wd8i1NGC5Udbd/Or4FK1IXHDMVXY6QZkkg1Ixys=", + "version": "1.128.0" }, "geonames": { - "timestamp": "20250129185843", - "hash": "sha256-poOvoBprzlEe4WDOdcO0TnIcwUp5xuKScumHMJ8YgO8=" + "timestamp": "20250228235146", + "hash": "sha256-ljkYXqotHYkJOWRYIGHUhEWN0hVb2ELBAsZnTxLm2tU=" } } } From 5c3ef3a2c3456e8a811d5c63a5a06a9ffcf9db5e Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 1 Mar 2025 00:58:59 +0000 Subject: [PATCH 42/61] jreleaser-cli: 1.16.0 -> 1.17.0 --- pkgs/by-name/jr/jreleaser-cli/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/jr/jreleaser-cli/package.nix b/pkgs/by-name/jr/jreleaser-cli/package.nix index f45a6f0b6347..3754e8577554 100644 --- a/pkgs/by-name/jr/jreleaser-cli/package.nix +++ b/pkgs/by-name/jr/jreleaser-cli/package.nix @@ -7,11 +7,11 @@ }: stdenv.mkDerivation rec { pname = "jreleaser-cli"; - version = "1.16.0"; + version = "1.17.0"; src = fetchurl { url = "https://github.com/jreleaser/jreleaser/releases/download/v${version}/jreleaser-tool-provider-${version}.jar"; - hash = "sha256-86FvsGitzJBGQUZ9cxtnxO/hfplnpLekxrS+k5ToeLM="; + hash = "sha256-V3RDSpoHLJxUImPf+8wQdfukFNftfsZI1L9k+sD4yZg="; }; nativeBuildInputs = [ makeWrapper ]; From 3fc8dc557e9d08ce6c08faeac68629752f60ace8 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 1 Mar 2025 01:57:37 +0000 Subject: [PATCH 43/61] fcitx5-mcbopomofo: 2.9.0 -> 2.9.1 --- pkgs/by-name/fc/fcitx5-mcbopomofo/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/fc/fcitx5-mcbopomofo/package.nix b/pkgs/by-name/fc/fcitx5-mcbopomofo/package.nix index 35361b499756..6a3a7f36396b 100644 --- a/pkgs/by-name/fc/fcitx5-mcbopomofo/package.nix +++ b/pkgs/by-name/fc/fcitx5-mcbopomofo/package.nix @@ -15,13 +15,13 @@ stdenv.mkDerivation rec { pname = "fcitx5-mcbopomofo"; - version = "2.9.0"; + version = "2.9.1"; src = fetchFromGitHub { owner = "openvanilla"; repo = "fcitx5-mcbopomofo"; rev = version; - hash = "sha256-xW3nxAfhdW7S0UJNl/NKhB1vzm0mMd92cA5ksPn7+QI="; + hash = "sha256-fHDNhZhSVgVuZLfRA3eJErm1gwhUZJw+emCXfeO5HVo="; }; nativeBuildInputs = [ From 52362420d17d8d88402f08abc464c8d57ce2e8d1 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 1 Mar 2025 04:49:16 +0000 Subject: [PATCH 44/61] changedetection-io: 0.49.1 -> 0.49.3 --- pkgs/by-name/ch/changedetection-io/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ch/changedetection-io/package.nix b/pkgs/by-name/ch/changedetection-io/package.nix index 9943b8b01c51..9780dc4ef637 100644 --- a/pkgs/by-name/ch/changedetection-io/package.nix +++ b/pkgs/by-name/ch/changedetection-io/package.nix @@ -6,14 +6,14 @@ python3.pkgs.buildPythonApplication rec { pname = "changedetection-io"; - version = "0.49.1"; + version = "0.49.3"; format = "setuptools"; src = fetchFromGitHub { owner = "dgtlmoon"; repo = "changedetection.io"; tag = version; - hash = "sha256-2DfuD7/LmJXJIbtEhwoDdANBfP7lIXpd7BWDuvd+ci8="; + hash = "sha256-QYghHpT78hlCZvliPsTdDE9bdSlr0kJn5xxwi3mnP/w="; }; pythonRelaxDeps = true; From 15f0e5abde7b9a73f3ed243185ab6c1a0b552980 Mon Sep 17 00:00:00 2001 From: Albert Ilagan Date: Sat, 1 Mar 2025 13:54:39 +0800 Subject: [PATCH 45/61] heimdall-proxy: init at 0.15.5 --- pkgs/by-name/he/heimdall-proxy/package.nix | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 pkgs/by-name/he/heimdall-proxy/package.nix diff --git a/pkgs/by-name/he/heimdall-proxy/package.nix b/pkgs/by-name/he/heimdall-proxy/package.nix new file mode 100644 index 000000000000..e2dccadcdf88 --- /dev/null +++ b/pkgs/by-name/he/heimdall-proxy/package.nix @@ -0,0 +1,42 @@ +{ + fetchFromGitHub, + buildGoModule, + lib, +}: +let + version = "0.15.5"; +in +buildGoModule { + inherit version; + + pname = "heimdall-proxy"; + src = fetchFromGitHub { + owner = "dadrus"; + repo = "heimdall"; + tag = "v${version}"; + hash = "sha256-tVWdxhdHr8HvestvGbyfstSagzwIB35Uub+9X64tTAA="; + }; + + vendorHash = "sha256-DkqM/zkatYskXQl+MOWJX3PkZGHCqyXZ0v/EEJUS3cA="; + + tags = [ "sqlite" ]; + + subPackages = [ "." ]; + + env.CGO_ENABLED = 0; + + # Pass versioning information via ldflags + ldflags = [ + "-s" + "-w" + "-X github.com/dadrus/heimdall/version.Version=${version}" + ]; + + meta = { + description = "A cloud native Identity Aware Proxy and Access Control Decision service"; + homepage = "https://dadrus.github.io/heimdall"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ albertilagan ]; + mainProgram = "heimdall-proxy"; + }; +} From 76bebdf18ffd0f02c6a59947bc241322ac9cfdd6 Mon Sep 17 00:00:00 2001 From: Albert Ilagan Date: Sat, 1 Mar 2025 14:10:50 +0800 Subject: [PATCH 46/61] heimdall-proxy: init at 0.15.5 --- pkgs/by-name/he/heimdall-proxy/package.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/he/heimdall-proxy/package.nix b/pkgs/by-name/he/heimdall-proxy/package.nix index e2dccadcdf88..774008723724 100644 --- a/pkgs/by-name/he/heimdall-proxy/package.nix +++ b/pkgs/by-name/he/heimdall-proxy/package.nix @@ -7,9 +7,10 @@ let version = "0.15.5"; in buildGoModule { + pname = "heimdall-proxy"; + inherit version; - pname = "heimdall-proxy"; src = fetchFromGitHub { owner = "dadrus"; repo = "heimdall"; From 568375f50533ebfef22c9a1ee4de99c7f900b603 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 1 Mar 2025 07:52:03 +0000 Subject: [PATCH 47/61] deck: 1.44.1 -> 1.45.0 --- pkgs/by-name/de/deck/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/de/deck/package.nix b/pkgs/by-name/de/deck/package.nix index 34a1dad53ce0..53412526e224 100644 --- a/pkgs/by-name/de/deck/package.nix +++ b/pkgs/by-name/de/deck/package.nix @@ -8,13 +8,13 @@ buildGoModule rec { pname = "deck"; - version = "1.44.1"; + version = "1.45.0"; src = fetchFromGitHub { owner = "Kong"; repo = "deck"; tag = "v${version}"; - hash = "sha256-PXFbYxBlHLWcxzyWfbK+n7G/dt/MgbyC1gGy7sq0OtM="; + hash = "sha256-XIv1ql2PNhosFVlw9nfXcoTouTkIC3chtWLDjrsF0nY="; }; nativeBuildInputs = [ installShellFiles ]; @@ -27,7 +27,7 @@ buildGoModule rec { ]; proxyVendor = true; # darwin/linux hash mismatch - vendorHash = "sha256-XBiOAVXuvhaJrhgvM2b/rdt/bmvMAp6ctgWzIgeaUGc="; + vendorHash = "sha256-bVHRzhie5OkuZ8MJ5LnXqr8R38exq5nwrU1w5gSfhVI="; postInstall = '' installShellCompletion --cmd deck \ From 862a3e90a063cdfd4f6ef06c7c9087eb8ad03c18 Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Fri, 28 Feb 2025 17:13:09 +0100 Subject: [PATCH 48/61] build-support/php: support `lib.extendMkDerivation` for `php.buildComposerProject2` Inspired from https://github.com/NixOS/nixpkgs/pull/382550 Context: https://github.com/NixOS/nixpkgs/pull/234651 --- .../builders/v2/build-composer-project.nix | 94 +++++++++++-------- 1 file changed, 54 insertions(+), 40 deletions(-) diff --git a/pkgs/build-support/php/builders/v2/build-composer-project.nix b/pkgs/build-support/php/builders/v2/build-composer-project.nix index bfbd2327812b..a777b8a830e2 100644 --- a/pkgs/build-support/php/builders/v2/build-composer-project.nix +++ b/pkgs/build-support/php/builders/v2/build-composer-project.nix @@ -3,100 +3,114 @@ stdenvNoCC, lib, php, -}: +}@toplevel: let buildComposerProjectOverride = - finalAttrs: previousAttrs: - - let - phpDrv = finalAttrs.php or php; - composer = finalAttrs.composer or phpDrv.packages.composer; - in + finalAttrs: { - composerLock = previousAttrs.composerLock or null; - composerNoDev = previousAttrs.composerNoDev or true; - composerNoPlugins = previousAttrs.composerNoPlugins or true; - composerNoScripts = previousAttrs.composerNoScripts or true; - composerStrictValidation = previousAttrs.composerStrictValidation or true; - - nativeBuildInputs = (previousAttrs.nativeBuildInputs or [ ]) ++ [ + php ? toplevel.php, + composer ? toplevel.php.packages.composer, + composerVendor ? null, + vendorHash ? null, + composerLock ? null, + composerNoDev ? true, + composerNoPlugins ? true, + composerNoScripts ? true, + composerStrictValidation ? true, + buildInputs ? [ ], + nativeBuildInputs ? [ ], + strictDeps ? true, + patches ? [ ], + doCheck ? true, + doInstallCheck ? true, + passthru ? { }, + meta ? { }, + ... + }@args: + { + inherit + patches + strictDeps + doCheck + doInstallCheck + ; + nativeBuildInputs = nativeBuildInputs ++ [ composer - phpDrv - phpDrv.composerHooks2.composerInstallHook + php + php.composerHooks2.composerInstallHook ]; - buildInputs = (previousAttrs.buildInputs or [ ]) ++ [ phpDrv ]; - - patches = previousAttrs.patches or [ ]; - strictDeps = previousAttrs.strictDeps or true; + buildInputs = buildInputs ++ [ php ]; # Should we keep these empty phases? configurePhase = - previousAttrs.configurePhase or '' + args.configurePhase or '' runHook preConfigure runHook postConfigure ''; buildPhase = - previousAttrs.buildPhase or '' + args.buildPhase or '' runHook preBuild runHook postBuild ''; - doCheck = previousAttrs.doCheck or true; checkPhase = - previousAttrs.checkPhase or '' + args.checkPhase or '' runHook preCheck runHook postCheck ''; installPhase = - previousAttrs.installPhase or '' + args.installPhase or '' runHook preInstall runHook postInstall ''; - doInstallCheck = previousAttrs.doInstallCheck or false; installCheckPhase = - previousAttrs.installCheckPhase or '' + args.installCheckPhase or '' runHook preInstallCheck runHook postInstallCheck ''; composerVendor = - previousAttrs.composerVendor or (phpDrv.mkComposerVendor { - inherit composer; + args.composerVendor or (php.mkComposerVendor { + inherit + composer + composerLock + composerNoDev + composerNoPlugins + composerNoScripts + composerStrictValidation + vendorHash + ; inherit (finalAttrs) patches pname src - vendorHash version ; - - composerLock = previousAttrs.composerLock or null; - composerNoDev = previousAttrs.composerNoDev or true; - composerNoPlugins = previousAttrs.composerNoPlugins or true; - composerNoScripts = previousAttrs.composerNoScripts or true; - composerStrictValidation = previousAttrs.composerStrictValidation or true; }); # Projects providing a lockfile from upstream can be automatically updated. - passthru = previousAttrs.passthru or { } // { + passthru = passthru // { updateScript = - previousAttrs.passthru.updateScript + args.passthru.updateScript or (if finalAttrs.composerVendor.composerLock == null then nix-update-script { } else null); }; - meta = previousAttrs.meta or { } // { + meta = meta // { platforms = lib.platforms.all; }; }; in -args: (stdenvNoCC.mkDerivation args).overrideAttrs buildComposerProjectOverride +lib.extendMkDerivation { + constructDrv = stdenvNoCC.mkDerivation; + extendDrvArgs = buildComposerProjectOverride; +} From cd850d57e0df12812af9fdb060671ff9873714b8 Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Fri, 28 Feb 2025 18:02:51 +0100 Subject: [PATCH 49/61] build-support/php: support `lib.extendMkDerivation` for `php.mkComposerVendor` Inspired from https://github.com/NixOS/nixpkgs/pull/382550 Context: https://github.com/NixOS/nixpkgs/pull/234651 --- .../php/builders/v2/build-composer-vendor.nix | 86 +++++++++---------- 1 file changed, 40 insertions(+), 46 deletions(-) diff --git a/pkgs/build-support/php/builders/v2/build-composer-vendor.nix b/pkgs/build-support/php/builders/v2/build-composer-vendor.nix index 75f93d066f83..c66dedb614da 100644 --- a/pkgs/build-support/php/builders/v2/build-composer-vendor.nix +++ b/pkgs/build-support/php/builders/v2/build-composer-vendor.nix @@ -2,86 +2,77 @@ stdenvNoCC, lib, php, -}: +}@toplevel: let mkComposerVendorOverride = - /* - We cannot destruct finalAttrs since the attrset below is used to construct it - and Nix currently does not support lazy attribute names. - { - php ? null, - composer ? null, - composerLock ? "composer.lock", - src, - vendorHash, - ... - }@finalAttrs: - */ - finalAttrs: previousAttrs: - - let - phpDrv = finalAttrs.php or php; - composer = finalAttrs.composer or phpDrv.packages.composer; - in - assert (lib.assertMsg (previousAttrs ? src) "mkComposerVendor expects src argument."); - assert (lib.assertMsg (previousAttrs ? vendorHash) "mkComposerVendor expects vendorHash argument."); - assert (lib.assertMsg (previousAttrs ? version) "mkComposerVendor expects version argument."); - assert (lib.assertMsg (previousAttrs ? pname) "mkComposerVendor expects pname argument."); + finalAttrs: { - composerNoDev = previousAttrs.composerNoDev or true; - composerNoPlugins = previousAttrs.composerNoPlugins or true; - composerNoScripts = previousAttrs.composerNoScripts or true; - composerStrictValidation = previousAttrs.composerStrictValidation or true; - - name = "${previousAttrs.pname}-composer-repository-${previousAttrs.version}"; + php ? toplevel.php, + composer ? toplevel.php.packages.composer, + composerLock, + vendorHash ? null, + composerNoDev ? true, + composerNoPlugins ? true, + composerNoScripts ? true, + composerStrictValidation ? true, + buildInputs ? [ ], + nativeBuildInputs ? [ ], + dontPatchShebangs ? true, + strictDeps ? true, + doCheck ? true, + doInstallCheck ? false, + ... + }@args: + assert (lib.assertMsg (args ? src) "mkComposerVendor expects src argument."); + assert (lib.assertMsg (args ? vendorHash) "mkComposerVendor expects vendorHash argument."); + assert (lib.assertMsg (args ? version) "mkComposerVendor expects version argument."); + assert (lib.assertMsg (args ? pname) "mkComposerVendor expects pname argument."); + { + name = "${args.pname}-composer-vendor-${args.version}"; # See https://github.com/NixOS/nix/issues/6660 - dontPatchShebangs = previousAttrs.dontPatchShebangs or true; + inherit dontPatchShebangs; - nativeBuildInputs = (previousAttrs.nativeBuildInputs or [ ]) ++ [ + inherit buildInputs strictDeps doCheck; + + nativeBuildInputs = nativeBuildInputs ++ [ composer - phpDrv - phpDrv.composerHooks2.composerVendorHook + php + php.composerHooks2.composerVendorHook ]; - buildInputs = previousAttrs.buildInputs or [ ]; - - strictDeps = previousAttrs.strictDeps or true; - # Should we keep these empty phases? configurePhase = - previousAttrs.configurePhase or '' + args.configurePhase or '' runHook preConfigure runHook postConfigure ''; buildPhase = - previousAttrs.buildPhase or '' + args.buildPhase or '' runHook preBuild runHook postBuild ''; - doCheck = previousAttrs.doCheck or true; checkPhase = - previousAttrs.checkPhase or '' + args.checkPhase or '' runHook preCheck runHook postCheck ''; installPhase = - previousAttrs.installPhase or '' + args.installPhase or '' runHook preInstall runHook postInstall ''; - doInstallCheck = previousAttrs.doInstallCheck or false; installCheckPhase = - previousAttrs.installCheckPhase or '' + args.installCheckPhase or '' runHook preInstallCheck runHook postInstallCheck @@ -90,7 +81,10 @@ let outputHashMode = "recursive"; outputHashAlgo = if (finalAttrs ? vendorHash && finalAttrs.vendorHash != "") then null else "sha256"; - outputHash = finalAttrs.vendorHash or ""; + outputHash = vendorHash; }; in -args: (stdenvNoCC.mkDerivation args).overrideAttrs mkComposerVendorOverride +lib.extendMkDerivation { + constructDrv = stdenvNoCC.mkDerivation; + extendDrvArgs = mkComposerVendorOverride; +} From ea9c81bc8d62cf8b50b9900e095c4d31050e1c18 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 27 Feb 2025 13:28:41 +0000 Subject: [PATCH 50/61] gfs2-utils: 3.5.1 -> 3.6.0 --- pkgs/by-name/gf/gfs2-utils/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/gf/gfs2-utils/package.nix b/pkgs/by-name/gf/gfs2-utils/package.nix index 6c3634fe48d3..af183d726ac7 100644 --- a/pkgs/by-name/gf/gfs2-utils/package.nix +++ b/pkgs/by-name/gf/gfs2-utils/package.nix @@ -15,11 +15,11 @@ stdenv.mkDerivation rec { pname = "gfs2-utils"; - version = "3.5.1"; + version = "3.6.0"; src = fetchurl { url = "https://pagure.io/gfs2-utils/archive/${version}/gfs2-utils-${version}.tar.gz"; - hash = "sha256-ZWzNfYuhIxGmSAe454vRjAKp9Lq7EBBSY36P7qVgZnw="; + hash = "sha256-1+wgG8HEB3ic/hyLDY+JaPElqicHrSsS2AUBq6kh3sc="; }; outputs = [ From 074660896aa345b3502a8192f4758bb54c27a0e0 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Mon, 24 Feb 2025 18:20:10 +0100 Subject: [PATCH 51/61] perlPackages.Xapian: init at 1.4.27 These are the perl bindings for xapian 1.4 shipped with their xapian-bindings release. --- pkgs/development/libraries/xapian/default.nix | 2 +- pkgs/top-level/perl-packages.nix | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/xapian/default.nix b/pkgs/development/libraries/xapian/default.nix index 502a9e5809c9..6c4521260995 100644 --- a/pkgs/development/libraries/xapian/default.nix +++ b/pkgs/development/libraries/xapian/default.nix @@ -47,7 +47,7 @@ let passthru.tests = { inherit mu xapian-omega; - inherit (perlPackages) SearchXapian; + inherit (perlPackages) SearchXapian Xapian; python-xapian = python3.pkgs.xapian; }; diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix index 71d4e3c881f4..38e42a46a879 100644 --- a/pkgs/top-level/perl-packages.nix +++ b/pkgs/top-level/perl-packages.nix @@ -28613,6 +28613,35 @@ with self; { }; }; + Xapian = buildPerlModule rec { + pname = "Xapian"; + version = "1.4.27"; + src = fetchurl { + url = "https://oligarchy.co.uk/xapian/${version}/xapian-bindings-${version}.tar.xz"; + sha256 = "1fhq6rydjymmyn79cdza0j4rmlizrrwmf5mx276rlmwyh085wfxs"; + }; + buildInputs = [ pkgs.xapian ]; + preConfigure = '' + # FIXME: doesn't work for cross + export PERL_LIB="$out/lib/perl5/site_perl/${perl.version}" + export PERL_ARCH="$PERL_LIB/$(perl -MConfig -e 'print $Config{archname}')" + ''; + configureFlags = [ + "--with-perl" + ]; + outputs = [ "out" ]; # no "devdoc" + # Use default phases + buildPhase = null; + checkPhase = null; + checkTarget = "check"; + installPhase = null; + meta = { + description = "Bindings allowing Xapian to be used from Perl"; + homepage = "https://xapian.org"; + license = [ lib.licenses.gpl2Plus ]; + }; + }; + XMLDescent = buildPerlModule { pname = "XML-Descent"; version = "1.04"; From 1fc36967926e06984823fbe36874ae71ba36ef4c Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Mon, 24 Feb 2025 18:21:01 +0100 Subject: [PATCH 52/61] public-inbox: use Xapian over SearchXapian SearchXapian no longer builds with / supports (?) the xapian 1.4 version we are shipping in nixpkgs. --- pkgs/servers/mail/public-inbox/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/mail/public-inbox/default.nix b/pkgs/servers/mail/public-inbox/default.nix index 9360f1bef003..90d699a24ffb 100644 --- a/pkgs/servers/mail/public-inbox/default.nix +++ b/pkgs/servers/mail/public-inbox/default.nix @@ -38,7 +38,7 @@ Plack, PlackMiddlewareReverseProxy, PlackTestExternalServer, - SearchXapian, + Xapian, TestSimple13, TimeDate, URI, @@ -128,7 +128,7 @@ buildPerlPackage rec { ParseRecDescent Plack PlackMiddlewareReverseProxy - SearchXapian + Xapian TimeDate URI libgit2 # For Gcf2 From f5090d4920dfce82eb1c8f53e653541290391206 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Mon, 24 Feb 2025 18:32:00 +0100 Subject: [PATCH 53/61] perlPackages.SearchXapian: remove at 1.2.25.5 Not sure to what extent we can expect maintenance going forward. --- doc/release-notes/rl-2505.section.md | 3 +++ pkgs/development/libraries/xapian/default.nix | 2 +- pkgs/top-level/perl-packages.nix | 15 --------------- 3 files changed, 4 insertions(+), 16 deletions(-) diff --git a/doc/release-notes/rl-2505.section.md b/doc/release-notes/rl-2505.section.md index 20937069624f..18ca84c3eb66 100644 --- a/doc/release-notes/rl-2505.section.md +++ b/doc/release-notes/rl-2505.section.md @@ -12,6 +12,9 @@ The hook can be disabled by providing `dontCheckForBrokenSymlinks = true;` as an argument to `mkDerivation`. For more information, [check the docs](https://nixos.org/manual/nixpkgs/unstable/#no-broken-symlinks.sh) or [see this PR](https://github.com/NixOS/nixpkgs/pull/370750). +- The hand written `perlPackages.SearchXapian` bindings have been dropped in favor of the (mostly compatible) + `perlPackages.Xapian`. + - The `nixLog*` family of functions made available through the standard environment have been rewritten to prefix messages with both the debug level and the function name of the caller. The `nixLog` function, which logs unconditionally, was also re-introduced and modified to prefix messages with the function name of the caller. For more information, [see this PR](https://github.com/NixOS/nixpkgs/pull/370742). diff --git a/pkgs/development/libraries/xapian/default.nix b/pkgs/development/libraries/xapian/default.nix index 6c4521260995..70ea0a11eaf9 100644 --- a/pkgs/development/libraries/xapian/default.nix +++ b/pkgs/development/libraries/xapian/default.nix @@ -47,7 +47,7 @@ let passthru.tests = { inherit mu xapian-omega; - inherit (perlPackages) SearchXapian Xapian; + inherit (perlPackages) Xapian; python-xapian = python3.pkgs.xapian; }; diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix index 38e42a46a879..7e7243f0566f 100644 --- a/pkgs/top-level/perl-packages.nix +++ b/pkgs/top-level/perl-packages.nix @@ -22487,21 +22487,6 @@ with self; { }; }; - SearchXapian = buildPerlPackage { - pname = "Search-Xapian"; - version = "1.2.25.5"; - src = fetchurl { - url = "mirror://cpan/authors/id/O/OL/OLLY/Search-Xapian-1.2.25.5.tar.gz"; - hash = "sha256-IE+9xxLWcR/6tmjB9M/AB7Y5qftkrX4ZyyD8EKkQuos="; - }; - buildInputs = [ pkgs.xapian DevelLeak ]; - meta = { - description = "Perl XS frontend to the Xapian C++ search library"; - homepage = "https://xapian.org"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; - }; - }; - SeleniumRemoteDriver = buildPerlPackage { pname = "Selenium-Remote-Driver"; version = "1.49"; From 2934e7b22f6e8ff59e9acd61a4ca90811a8e73db Mon Sep 17 00:00:00 2001 From: patka Date: Sat, 1 Mar 2025 10:28:46 +0100 Subject: [PATCH 54/61] vscode-extensions.bmewburn.vscode-intelephense-client: 1.14.1 -> 1.14.2 release notes: https://github.com/bmewburn/vscode-intelephense/releases/tag/v1.14.2 --- pkgs/applications/editors/vscode/extensions/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix index 14f5affa5d7f..89cb6f977659 100644 --- a/pkgs/applications/editors/vscode/extensions/default.nix +++ b/pkgs/applications/editors/vscode/extensions/default.nix @@ -737,8 +737,8 @@ let mktplcRef = { name = "vscode-intelephense-client"; publisher = "bmewburn"; - version = "1.14.1"; - hash = "sha256-h9ROZtTLY7/QbM6ftiZJCtHkEYSVkrMU9pgv4QyTrzg="; + version = "1.14.2"; + hash = "sha256-T0uaJedhlH3s6QnCEZvNxU8ErYW4+L1VBz79hnhwSyU="; }; meta = { description = "PHP code intelligence for Visual Studio Code"; From a75a0d157699e17d5fd8355296ea81de57c4a87b Mon Sep 17 00:00:00 2001 From: bakito Date: Sat, 22 Feb 2025 09:27:32 +0100 Subject: [PATCH 55/61] maintainers: add bakito Signed-off-by: bakito --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 566b70056df9..e438d26d0208 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -2547,6 +2547,12 @@ github = "Baitinq"; githubId = 30861839; }; + bakito = { + email = "github@bakito.ch"; + name = "Marc Brugger"; + github = "bakito"; + githubId = 2733215; + }; baksa = { email = "baksa@pm.me"; name = "Kryštof Baksa"; From 6c678cb7f1729214a77d454ca95c712362576bf5 Mon Sep 17 00:00:00 2001 From: Matteo Pacini Date: Sat, 1 Mar 2025 09:36:08 +0000 Subject: [PATCH 56/61] vscode-extensions.equinusocio.vsc-material-theme{-icons}: move to aliases --- pkgs/applications/editors/vscode/extensions/default.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix index 14f5affa5d7f..79e623f95c3e 100644 --- a/pkgs/applications/editors/vscode/extensions/default.nix +++ b/pkgs/applications/editors/vscode/extensions/default.nix @@ -1780,9 +1780,6 @@ let }; }; - equinusocio.vsc-material-theme = throw "'equinusocio.vsc-material-theme' has been removed due to security concerns. The extension contained potentially malicious code and was taken down."; # Added 2025-02-28 - equinusocio.vsc-material-theme-icons = throw "'equinusocio.vsc-material-theme-icons' has been removed due to security concerns. The extension contained potentially malicious code and was taken down."; # Added 2025-02-28 - esbenp.prettier-vscode = buildVscodeMarketplaceExtension { mktplcRef = { name = "prettier-vscode"; @@ -5690,6 +5687,8 @@ let _2gua = throw "_2gua is deprecated in favor of 2gua"; # Added 2024-05-29 _4ops = throw "_4ops is deprecated in favor of 4ops"; # Added 2024-05-29 Arjun.swagger-viewer = throw "Arjun.swagger-viewer is deprecated in favor of arjun.swagger-viewer"; # Added 2024-05-29 + equinusocio.vsc-material-theme = throw "'equinusocio.vsc-material-theme' has been removed due to security concerns. The extension contained potentially malicious code and was taken down."; # Added 2025-02-28 + equinusocio.vsc-material-theme-icons = throw "'equinusocio.vsc-material-theme-icons' has been removed due to security concerns. The extension contained potentially malicious code and was taken down."; # Added 2025-02-28 jakebecker.elixir-ls = throw "jakebecker.elixir-ls is deprecated in favor of elixir-lsp.vscode-elixir-ls"; # Added 2024-05-29 jpoissonnier.vscode-styled-components = throw "jpoissonnier.vscode-styled-components is deprecated in favor of styled-components.vscode-styled-components"; # Added 2024-05-29 matklad.rust-analyzer = throw "matklad.rust-analyzer is deprecated in favor of rust-lang.rust-analyzer"; # Added 2024-05-29 From 1df8cc80419e904d28c0271d675d96801cf87f20 Mon Sep 17 00:00:00 2001 From: bakito Date: Sat, 22 Feb 2025 09:52:39 +0100 Subject: [PATCH 57/61] kubexporter: init at 0.6.3 Signed-off-by: bakito --- pkgs/by-name/ku/kubexporter/package.nix | 42 +++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 pkgs/by-name/ku/kubexporter/package.nix diff --git a/pkgs/by-name/ku/kubexporter/package.nix b/pkgs/by-name/ku/kubexporter/package.nix new file mode 100644 index 000000000000..893aebb476a5 --- /dev/null +++ b/pkgs/by-name/ku/kubexporter/package.nix @@ -0,0 +1,42 @@ +{ + lib, + buildGoModule, + fetchFromGitHub, + versionCheckHook, + nix-update-script, +}: + +buildGoModule rec { + pname = "kubexporter"; + version = "0.6.3"; + + src = fetchFromGitHub { + owner = "bakito"; + repo = "kubexporter"; + tag = "v${version}"; + hash = "sha256-9TtoACuX6dEcoWX246a5PofEIksB5KnxzRjdk/HV/Ww="; + }; + + vendorHash = "sha256-SWStAW5XkZGM57ZoxrVdxM7vtmZpSPkByrhFREHqfW0="; + + ldflags = [ + "-s" + "-w" + "-X github.com/bakito/kubexporter/version.Version=${version}" + ]; + + nativeInstallCheckInputs = [ versionCheckHook ]; + versionCheckProgramArg = "--version"; + doInstallCheck = true; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Tool for exporting Kubernetes resources as YAML or JSON files"; + homepage = "https://github.com/bakito/kubexporter"; + changelog = "https://github.com/bakito/kubexporter/releases/tag/v${version}"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ bakito ]; + mainProgram = "kubexporter"; + }; +} From d5a896024c9087cfa070637ed5da447d698302e9 Mon Sep 17 00:00:00 2001 From: Kaeeraa Date: Mon, 24 Feb 2025 20:48:30 +0000 Subject: [PATCH 58/61] ayugram-desktop: add kaeeraa and s0me1newithhand7s to maintainers --- pkgs/by-name/ay/ayugram-desktop/package.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/ay/ayugram-desktop/package.nix b/pkgs/by-name/ay/ayugram-desktop/package.nix index 44d94cff8808..d48e1142458e 100644 --- a/pkgs/by-name/ay/ayugram-desktop/package.nix +++ b/pkgs/by-name/ay/ayugram-desktop/package.nix @@ -31,7 +31,10 @@ telegram-desktop.override { ''; homepage = "https://github.com/AyuGram/AyuGramDesktop"; changelog = "https://github.com/AyuGram/AyuGramDesktop/releases/tag/v${finalAttrs.version}"; - maintainers = with lib.maintainers; [ ]; + maintainers = with lib.maintainers; [ + kaeeraa + s0me1newithhand7s + ]; }; } ); From ea6e596d8e81f376b199a9201292993dcdbb9943 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Sat, 1 Mar 2025 10:40:09 +0100 Subject: [PATCH 59/61] cargo-sort: 1.1.0 -> 1.0.9 This essentially reverts commit 781e0616520410bd919aef1964fdfd12faf76d33. Signed-off-by: Matthias Beyer --- pkgs/by-name/ca/cargo-sort/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ca/cargo-sort/package.nix b/pkgs/by-name/ca/cargo-sort/package.nix index 18f8cebb75e2..1037a74688af 100644 --- a/pkgs/by-name/ca/cargo-sort/package.nix +++ b/pkgs/by-name/ca/cargo-sort/package.nix @@ -6,17 +6,17 @@ rustPlatform.buildRustPackage rec { pname = "cargo-sort"; - version = "1.1.0"; + version = "1.0.9"; src = fetchFromGitHub { owner = "devinr528"; repo = pname; rev = "v${version}"; - sha256 = "sha256-AUtue1xkhrhlF7PtqsCQ9rdhV0/0i85DWrp7YL9SAYk="; + sha256 = "sha256-fqmyL4ZSz+nKfUIrcrfLRT9paEas5d00Y/kvEqyz2vw="; }; useFetchCargoVendor = true; - cargoHash = "sha256-yNHVhnJiawUrWncrIC8cAS25OYIZX7wVM9zMaupfTKM="; + cargoHash = "sha256-z5YT+6fU12WrByu3NZwodU9Y5489eCRrHUY+H/Hka+c="; meta = with lib; { description = "Tool to check that your Cargo.toml dependencies are sorted alphabetically"; From e154a5da7dcb4911218c63974726bb041e776605 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Sat, 1 Mar 2025 10:54:11 +0000 Subject: [PATCH 60/61] vcmi: 1.6.6 -> 1.6.7 Changes: https://github.com/vcmi/vcmi/blob/master/ChangeLog.md#166---167 --- pkgs/games/vcmi/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/games/vcmi/default.nix b/pkgs/games/vcmi/default.nix index f213aab406d8..f36b912b471f 100644 --- a/pkgs/games/vcmi/default.nix +++ b/pkgs/games/vcmi/default.nix @@ -29,14 +29,14 @@ stdenv.mkDerivation rec { pname = "vcmi"; - version = "1.6.6"; + version = "1.6.7"; src = fetchFromGitHub { owner = "vcmi"; repo = "vcmi"; rev = version; fetchSubmodules = true; - hash = "sha256-JlRZMYS4w6yScpEehNDbtogzeBMq6zwE2Qfsuxmmib8="; + hash = "sha256-ImfEKVyuvl8VAsaq34DBe+fiAxf11Mr0jWVI51EsSRs="; }; nativeBuildInputs = [ From bb9abd73464c9ec1bc79673e78a1b7e01b72f243 Mon Sep 17 00:00:00 2001 From: emaryn Date: Sat, 1 Mar 2025 19:11:46 +0800 Subject: [PATCH 61/61] spades: 4.0.0 -> 4.1.0 --- pkgs/by-name/sp/spades/package.nix | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/pkgs/by-name/sp/spades/package.nix b/pkgs/by-name/sp/spades/package.nix index f17d0f6d0ebd..01f8063cbb3d 100644 --- a/pkgs/by-name/sp/spades/package.nix +++ b/pkgs/by-name/sp/spades/package.nix @@ -4,7 +4,6 @@ bzip2, cmake, fetchFromGitHub, - fetchpatch, ncurses, python3, readline, @@ -12,28 +11,17 @@ stdenv.mkDerivation (finalAttrs: { pname = "spades"; - version = "4.0.0"; + version = "4.1.0"; src = fetchFromGitHub { owner = "ablab"; repo = "spades"; - rev = "v${finalAttrs.version}"; - hash = "sha256-k2+ddJIgGE41KGZODovU9VdurbWerEtdqNrFDwyuFjo="; + tag = "v${finalAttrs.version}"; + hash = "sha256-JKtWlVf0nXXLgb6BxMgVVtEdjUOOYc0bPaFMDm5O6vg="; }; sourceRoot = "${finalAttrs.src.name}/src"; - patches = [ - # https://github.com/ablab/spades/pull/1314 - (fetchpatch { - name = "copytree.patch"; - url = "https://github.com/ablab/spades/commit/af1f756a46c5da669897b841d4f753af1eaa9588.patch"; - hash = "sha256-tkT7hb0TqsbLkcTs9u43nzvV8bVdh3G9VKYqFFLrQv8="; - stripLen = 3; - extraPrefix = "projects/"; - }) - ]; - cmakeFlags = [ "-DZLIB_ENABLE_TESTS=OFF" "-DSPADES_BUILD_INTERNAL=OFF"