Merge master into staging-next

Changed files
+193 -88
maintainers
nixos
doc
manual
release-notes
modules
services
networking
pkgs
applications
blockchains
polkadot
by-name
at
athens
bl
bluetuith
ca
capslock
di
distribution
ga
gatekeeper
go
go-critic
gobusybox
gr
grmon
jj
ke
keep-sorted
mo
monkeysAudio
ru
si
u-
u-root
up
uplosi
wg
wget2
xd
xdg-desktop-portal-shana
+6
maintainers/maintainer-list.nix
···
github = "michaelshmitty";
githubId = 114845;
+
michaelvanstraten = {
+
name = "Michael van Straten";
+
email = "michael@vanstraten.de";
+
github = "michaelvanstraten";
+
githubId = 50352631;
+
};
michalrus = {
email = "m@michalrus.com";
github = "michalrus";
+3
nixos/doc/manual/release-notes/rl-2505.section.md
···
- [ipfs-cluster](https://ipfscluster.io/), Pinset orchestration for IPFS. Available as [services.ipfs-cluster](#opt-services.ipfs-cluster.enable)
- [bitbox-bridge](https://github.com/BitBoxSwiss/bitbox-bridge), a bridge software that connects BitBox hardware wallets to computers & web wallets like [Rabby](https://rabby.io/). Allows one to interact & transact with smart contracts, Web3 websites & financial services without storing private keys anywhere other than the hardware wallet. Available as [services.bitbox-bridge](#opt-services.bitbox-bridge.enable).
+
+
- [GoDNS](https://github.com/TimothyYe/godns), a dynamic DNS client written in Go, which supports multiple DNS providers. Available as [services.godns](option.html#opt-services.godns.enable).
+
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
## Backward Incompatibilities {#sec-release-25.05-incompatibilities}
+1
nixos/modules/module-list.nix
···
./services/networking/go-shadowsocks2.nix
./services/networking/gobgpd.nix
./services/networking/gokapi.nix
+
./services/networking/godns.nix
./services/networking/gvpe.nix
./services/networking/hans.nix
./services/networking/harmonia.nix
+84
nixos/modules/services/networking/godns.nix
···
+
{
+
config,
+
lib,
+
pkgs,
+
...
+
}:
+
let
+
inherit (lib)
+
mkEnableOption
+
mkIf
+
mkOption
+
mkPackageOption
+
types
+
;
+
+
cfg = config.services.godns;
+
+
settingsFormat = pkgs.formats.yaml { };
+
in
+
{
+
options.services.godns = {
+
enable = mkEnableOption "GoDNS service";
+
+
package = mkPackageOption pkgs "godns" { };
+
+
settings = mkOption {
+
type = types.submodule {
+
freeformType = settingsFormat.type;
+
};
+
+
description = ''
+
Configuration for GoDNS. Refer to the [configuration section](1) in the
+
GoDNS GitHub repository for details.
+
+
[1]: https://github.com/TimothyYe/godns?tab=readme-ov-file#configuration
+
'';
+
+
example = {
+
provider = "Cloudflare";
+
login_token_file = "$CREDENTIALS_DIRECTORY/login_token";
+
domains = [
+
{
+
domain_name = "example.com";
+
sub_domains = [ "foo" ];
+
}
+
];
+
ipv6_urls = [
+
"https://api6.ipify.org"
+
"https://ip2location.io/ip"
+
"https://v6.ipinfo.io/ip"
+
];
+
ip_type = "IPv6";
+
interval = 300;
+
};
+
};
+
+
loadCredential = lib.mkOption {
+
type = types.listOf types.str;
+
default = [ ];
+
example = [ "login_token:/path/to/login_token" ];
+
description = ''
+
This can be used to pass secrets to the systemd service without adding
+
them to the nix store.
+
'';
+
};
+
};
+
+
config = mkIf cfg.enable {
+
systemd.services.godns = {
+
description = "GoDNS service";
+
wantedBy = [ "multi-user.target" ];
+
after = [ "network.target" ];
+
serviceConfig = {
+
DynamicUser = true;
+
ExecStart = "${lib.getExe cfg.package} -c ${settingsFormat.generate "config.yaml" cfg.settings}";
+
LoadCredential = cfg.loadCredential;
+
Restart = "always";
+
RestartSec = "2s";
+
};
+
};
+
};
+
+
meta.maintainers = [ lib.maintainers.michaelvanstraten ];
+
}
+7 -13
pkgs/applications/blockchains/polkadot/default.nix
···
{
+
cacert,
fetchFromGitHub,
lib,
openssl,
···
in
rustPlatform.buildRustPackage rec {
pname = "polkadot";
-
version = "2412-4";
+
version = "2503";
src = fetchFromGitHub {
owner = "paritytech";
repo = "polkadot-sdk";
rev = "polkadot-stable${version}";
-
hash = "sha256-MYv/3bpERjceBzQxR+NkbaRJZegzkJY0fN6TaF2xn8I=";
+
hash = "sha256-nPZFmsf82JpBrOrErH5hrEcmieECfgA7JWzEyEh8AAE=";
# the build process of polkadot requires a .git folder in order to determine
# the git commit hash that is being built and add it to the version string.
···
'';
useFetchCargoVendor = true;
-
cargoHash = "sha256-pvB507k3eYfz8tpTaVUzJOIKvtWEckaMu3Eux89V0uE=";
+
cargoHash = "sha256-yOJyvpsEK4Ab/Bh6xmqAEHhj1Rq4u/CevcP7vJi0zxo=";
buildType = "production";
buildAndTestSubdir = "polkadot";
-
# NOTE: tests currently fail to compile due to an issue with cargo-auditable
-
# and resolution of features flags, potentially related to this:
-
# https://github.com/rust-secure-code/cargo-auditable/issues/66
-
doCheck = false;
-
nativeBuildInputs = [
pkg-config
rustPlatform.bindgenHook
···
SystemConfiguration
];
-
# NOTE: currently we can't build the runtimes since it requires rebuilding rust std
-
# (-Zbuild-std), for which rust-src is required to be available in the sysroot of rustc.
-
# this should no longer be needed after: https://github.com/paritytech/polkadot-sdk/pull/7008
-
# since the new wasmv1-none target won't require rebuilding std.
-
SKIP_WASM_BUILD = 1;
+
checkInputs = [
+
cacert
+
];
OPENSSL_NO_VENDOR = 1;
PROTOC = "${protobuf}/bin/protoc";
+4 -4
pkgs/by-name/at/athens/package.nix
···
athens,
}:
-
buildGoModule rec {
+
buildGoModule (finalAttrs: {
pname = "athens";
version = "0.15.4";
src = fetchFromGitHub {
owner = "gomods";
repo = "athens";
-
rev = "v${version}";
+
tag = "v${finalAttrs.version}";
hash = "sha256-6NBdif8rQ1aj4nTYXhrWyErzRv0q8WpIheRnb2FCnkU=";
};
···
env.CGO_ENABLED = "0";
ldflags = [
"-s"
-
"-X github.com/gomods/athens/pkg/build.version=${version}"
+
"-X github.com/gomods/athens/pkg/build.version=${finalAttrs.version}"
];
subPackages = [ "cmd/proxy" ];
···
];
platforms = platforms.unix;
};
-
}
+
})
+5 -5
pkgs/by-name/bl/bluetuith/package.nix
···
nix-update-script,
}:
-
buildGoModule rec {
+
buildGoModule (finalAttrs: {
pname = "bluetuith";
version = "0.2.3";
src = fetchFromGitHub {
owner = "darkhz";
-
repo = pname;
-
rev = "v${version}";
+
repo = "bluetuith";
+
tag = "v${finalAttrs.version}";
hash = "sha256-yXH/koNT4ec/SOZhSU01iPNAfD1MdMjM2+wNmjXWsrk=";
};
···
ldflags = [
"-s"
"-w"
-
"-X github.com/darkhz/bluetuith/cmd.Version=${version}@nixpkgs"
+
"-X github.com/darkhz/bluetuith/cmd.Version=${finalAttrs.version}@nixpkgs"
];
passthru.updateScript = nix-update-script { };
···
katexochen
];
};
-
}
+
})
+3 -3
pkgs/by-name/ca/capslock/package.nix
···
nix-update-script,
}:
-
buildGoModule rec {
+
buildGoModule (finalAttrs: {
pname = "capslock";
version = "0.2.7";
src = fetchFromGitHub {
owner = "google";
repo = "capslock";
-
rev = "v${version}";
+
rev = "v${finalAttrs.version}";
hash = "sha256-kRuEcrx9LBzCpXFWlc9bSsgZt84T8R8VFdbAWAseSPQ=";
};
···
mainProgram = "capslock";
maintainers = with lib.maintainers; [ katexochen ];
};
-
}
+
})
+4 -4
pkgs/by-name/di/distribution/package.nix
···
distribution,
}:
-
buildGoModule rec {
+
buildGoModule (finalAttrs: {
pname = "distribution";
version = "3.0.0";
src = fetchFromGitHub {
owner = "distribution";
repo = "distribution";
-
tag = "v${version}";
+
tag = "v${finalAttrs.version}";
hash = "sha256-myezQTEdH7kkpCoAeZMf5OBxT4Bz8Qx6vCnwim230RY=";
};
···
passthru = {
tests.version = testers.testVersion {
package = distribution;
-
version = "v${version}";
+
version = "v${finalAttrs.version}";
};
updateScript = nix-update-script { };
};
···
mainProgram = "registry";
platforms = platforms.unix;
};
-
}
+
})
+4
pkgs/by-name/ga/gatekeeper/package.nix
···
installShellFiles
];
+
ldflags = [
+
"-X github.com/open-policy-agent/gatekeeper/v3/pkg/version.Version=${version}"
+
];
+
subPackages = [ "cmd/gator" ];
postInstall = ''
+5 -5
pkgs/by-name/go/go-critic/package.nix
···
go-critic,
}:
-
buildGoModule rec {
+
buildGoModule (finalAttrs: {
pname = "go-critic";
version = "0.13.0";
src = fetchFromGitHub {
owner = "go-critic";
repo = "go-critic";
-
rev = "v${version}";
+
rev = "v${finalAttrs.version}";
hash = "sha256-0AOhq7OhSHub4I6XXL018hg6i2ERkIbZCrO9osNjvHw=";
};
···
allowGoReference = true;
ldflags = [
-
"-X main.Version=${version}"
+
"-X main.Version=${finalAttrs.version}"
];
passthru = {
···
meta = {
description = "Most opinionated Go source code linter for code audit";
homepage = "https://go-critic.com/";
-
changelog = "https://github.com/go-critic/go-critic/releases/tag/${src.rev}";
+
changelog = "https://github.com/go-critic/go-critic/releases/tag/${finalAttrs.src.rev}";
license = lib.licenses.mit;
mainProgram = "gocritic";
maintainers = with lib.maintainers; [ katexochen ];
};
-
}
+
})
+3 -3
pkgs/by-name/go/gobusybox/package.nix
···
fetchFromGitHub,
}:
-
buildGoModule rec {
+
buildGoModule (finalAttrs: {
pname = "gobusybox";
version = "0.2.0-unstable-2024-03-05";
···
hash = "sha256-hS6YwN6eekyDjp7E6sisW+8HO5WHTEC68XyKZFPihK4=";
};
-
sourceRoot = "${src.name}/src";
+
sourceRoot = "${finalAttrs.src.name}/src";
subPackages = [
"cmd/gencmddeps"
···
maintainers = with lib.maintainers; [ katexochen ];
mainProgram = "makebb";
};
-
}
+
})
+3 -3
pkgs/by-name/gr/grmon/package.nix
···
nix-update-script,
}:
-
buildGoModule rec {
+
buildGoModule (finalAttrs: {
pname = "grmon";
version = "0.1";
src = fetchFromGitHub {
owner = "bcicen";
repo = "grmon";
-
rev = "v${version}";
+
rev = "v${finalAttrs.version}";
hash = "sha256-0J7f4DMADUut3Da0F1eTDsT1Hlk0rfInwzbcVcQNzg8=";
};
···
mainProgram = "grmon";
maintainers = with maintainers; [ katexochen ];
};
-
}
+
})
+4 -4
pkgs/by-name/jj/jj/package.nix
···
runCommand,
jj,
}:
-
buildGoModule rec {
+
buildGoModule (finalAttrs: {
pname = "jj";
version = "1.9.2";
src = fetchFromGitHub {
owner = "tidwall";
repo = "jj";
-
rev = "v${version}";
+
rev = "v${finalAttrs.version}";
hash = "sha256-Yijap5ZghTBe1ahkQgjjxuo++SriJWXgRqrNXIVQ0os=";
};
···
ldflags = [
"-s"
"-w"
-
"-X main.version=${version}"
+
"-X main.version=${finalAttrs.version}"
];
passthru = {
···
mainProgram = "jj";
maintainers = with maintainers; [ katexochen ];
};
-
}
+
})
+2 -2
pkgs/by-name/jj/jjui/package.nix
···
}:
buildGoModule rec {
pname = "jjui";
-
version = "0.8.2";
+
version = "0.8.4";
src = fetchFromGitHub {
owner = "idursun";
repo = "jjui";
tag = "v${version}";
-
hash = "sha256-Bao851E1AFTIjGTJrnYc95BWxXnQjWwyufSMQCbiYuU=";
+
hash = "sha256-9o7I4qk0flaFlrO5fBuntJO3XSEWAM9WuoPEA/Y+LXE=";
};
vendorHash = "sha256-YlOK+NvyH/3uvvFcCZixv2+Y2m26TP8+ohUSdl3ppro=";
+5 -5
pkgs/by-name/ke/keep-sorted/package.nix
···
versionCheckHook,
}:
-
buildGoModule rec {
+
buildGoModule (finalAttrs: {
pname = "keep-sorted";
version = "0.6.1";
src = fetchFromGitHub {
owner = "google";
repo = "keep-sorted";
-
tag = "v${version}";
+
tag = "v${finalAttrs.version}";
hash = "sha256-N/fJ0qj7/kQ9Q7ULpQpyhWAWFlnLkTjyNNKg8VhLvi0=";
};
···
# Inject version string instead of reading version from buildinfo.
postPatch = ''
substituteInPlace main.go \
-
--replace-fail 'readVersion())' '"v${version}")'
+
--replace-fail 'readVersion())' '"v${finalAttrs.version}")'
'';
env.CGO_ENABLED = "0";
···
passthru.updateScript = nix-update-script { };
meta = {
-
changelog = "https://github.com/google/keep-sorted/releases/tag/v${version}";
+
changelog = "https://github.com/google/keep-sorted/releases/tag/v${finalAttrs.version}";
description = "Language-agnostic formatter that sorts lines between two markers in a larger file";
homepage = "https://github.com/google/keep-sorted";
license = lib.licenses.asl20;
mainProgram = "keep-sorted";
maintainers = with lib.maintainers; [ katexochen ];
};
-
}
+
})
+2 -2
pkgs/by-name/mo/monkeysAudio/package.nix
···
}:
stdenv.mkDerivation (finalAttrs: {
-
version = "11.01";
+
version = "11.05";
pname = "monkeys-audio";
src = fetchzip {
url = "https://monkeysaudio.com/files/MAC_${builtins.concatStringsSep "" (lib.strings.splitString "." finalAttrs.version)}_SDK.zip";
-
hash = "sha256-d7rTwEsKdCZ9iKxwzaM+eduGQqclNvpLV0hW6NGNWqI=";
+
hash = "sha256-CHOkP5L5FITV2ZpeYjSL9r8K6eeG/p4ZBrUztRvnIU4=";
stripRoot = false;
};
+3 -3
pkgs/by-name/ru/ruff/package.nix
···
rustPlatform.buildRustPackage (finalAttrs: {
pname = "ruff";
-
version = "0.11.4";
+
version = "0.11.5";
src = fetchFromGitHub {
owner = "astral-sh";
repo = "ruff";
tag = finalAttrs.version;
-
hash = "sha256-6Nfnn8VOT0VBPxrMQJAsFt+FrR/rYbh6pyEsW8Ca43s=";
+
hash = "sha256-7R913Dt395qsyJCp7eXGQ9BcAAvV7GrJqoZAsXn6CTs=";
};
useFetchCargoVendor = true;
-
cargoHash = "sha256-zFF7DvkzgF0mVFFAvllz01DVmpdJrln0srd5Z9MwLPk=";
+
cargoHash = "sha256-dA2OEogzEBTu2c5OVoxU4dj5TuMWpxmHk7r63lFsEjU=";
nativeBuildInputs = [ installShellFiles ];
+3 -3
pkgs/by-name/si/sile/package.nix
···
stdenv.mkDerivation (finalAttrs: {
pname = "sile";
-
version = "0.15.11";
+
version = "0.15.12";
src = fetchurl {
url = "https://github.com/sile-typesetter/sile/releases/download/v${finalAttrs.version}/sile-${finalAttrs.version}.tar.zst";
-
hash = "sha256-J+S2jT8/1bX35E3FyLLvPnSGY4hT2P7Uqu59L95cI0I=";
+
hash = "sha256-oyNBEdVrsi8MuiYIlU7IjfJg60dy8FTtKXcJEgA+yKA=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit (finalAttrs) pname version src;
dontConfigure = true;
nativeBuildInputs = [ zstd ];
-
hash = "sha256-4hw2A9GYqNeNjEZRL7THKMoEBBmTnjKE00yQYLTW6zc=";
+
hash = "sha256-v/sqXA4aAXGcGy+/2UrtThN3jS30q35QPwpchS7oRgk=";
};
nativeBuildInputs = [
+3 -3
pkgs/by-name/u-/u-root/package.nix
···
linux_latest,
}:
-
buildGoModule rec {
+
buildGoModule (finalAttrs: {
pname = "u-root";
version = "0.14.0-unstable-2024-09-26";
···
'';
homepage = "https://u-root.org/";
downloadPage = "https://github.com/u-root/u-root";
-
changelog = "https://github.com/u-root/u-root/blob/${src.rev}/RELEASES";
+
changelog = "https://github.com/u-root/u-root/blob/${finalAttrs.src.rev}/RELEASES";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ katexochen ];
mainProgram = "u-root";
platforms = lib.platforms.linux;
};
-
}
+
})
+6 -6
pkgs/by-name/up/uplosi/package.nix
···
nix-update-script,
}:
-
buildGoModule rec {
+
buildGoModule (finalAttrs: {
pname = "uplosi";
version = "0.4.0";
src = fetchFromGitHub {
owner = "edgelesssys";
-
repo = pname;
-
rev = "v${version}";
+
repo = "uplosi";
+
tag = "v${finalAttrs.version}";
hash = "sha256-5I916T70sH4UAq5EGRjR7lnRBbPqMJIxaXwUCJQ4DcM=";
};
···
env.CGO_ENABLED = "0";
ldflags = [
"-s"
-
"-X main.version=${version}"
+
"-X main.version=${finalAttrs.version}"
];
nativeBuildInputs = [ installShellFiles ];
···
meta = {
description = "Upload OS images to cloud provider";
homepage = "https://github.com/edgelesssys/uplosi";
-
changelog = "https://github.com/edgelesssys/uplosi/releases/tag/v${version}";
+
changelog = "https://github.com/edgelesssys/uplosi/releases/tag/v${finalAttrs.version}";
license = lib.licenses.asl20;
mainProgram = "uplosi";
maintainers = with lib.maintainers; [
···
];
platforms = lib.platforms.unix;
};
-
}
+
})
+12 -4
pkgs/by-name/wg/wget2/package.nix
···
xz,
zlib,
zstd,
+
versionCheckHook,
}:
stdenv.mkDerivation rec {
pname = "wget2";
-
version = "2.1.0";
+
version = "2.2.0";
outputs = [
"out"
···
src = fetchFromGitLab {
owner = "gnuwget";
repo = pname;
-
rev = "v${version}";
-
hash = "sha256-+xw1nQMBs0m9RlunyrAYaSDPnLY1yRX8zt8hKOMXQT8=";
+
tag = "v${version}";
+
hash = "sha256-0tOoStZHr5opehFmuQdFRPYvOv8IMrDTBNFtoweY3VM=";
};
# wget2_noinstall contains forbidden reference to /build/
postPatch = ''
substituteInPlace src/Makefile.am \
-
--replace "bin_PROGRAMS = wget2 wget2_noinstall" "bin_PROGRAMS = wget2"
+
--replace-fail "bin_PROGRAMS = wget2 wget2_noinstall" "bin_PROGRAMS = wget2"
'';
strictDeps = true;
···
# TODO: https://gitlab.com/gnuwget/wget2/-/issues/537
(lib.withFeatureAs sslSupport "ssl" "openssl")
];
+
+
nativeInstallCheckInputs = [
+
versionCheckHook
+
];
+
doInstallCheck = true;
+
versionCheckProgram = "${placeholder "out"}/bin/${meta.mainProgram}";
+
versionCheckProgramArg = "--version";
meta = with lib; {
description = "Successor of GNU Wget, a file and recursive website downloader";
+21 -16
pkgs/by-name/xd/xdg-desktop-portal-shana/package.nix
···
{
lib,
+
stdenv,
rustPlatform,
fetchFromGitHub,
meson,
+
rustc,
+
cargo,
ninja,
xdg-desktop-portal,
}:
-
rustPlatform.buildRustPackage rec {
+
stdenv.mkDerivation (finalAttrs: {
pname = "xdg-desktop-portal-shana";
version = "0.3.14";
src = fetchFromGitHub {
owner = "Decodetalkers";
repo = "xdg-desktop-portal-shana";
-
rev = "v${version}";
+
rev = "v${finalAttrs.version}";
hash = "sha256-9uie6VFyi7sO8DbthUTgpEc68MvvLA+bUwyV/DSpKkE=";
};
+
cargoDeps = rustPlatform.fetchCargoVendor {
+
inherit (finalAttrs) pname version src;
+
hash = "sha256-f9kfCoH0YHVzzZC4rChJgz0yQqVVAYR7Gpa6HuXhQZY=";
+
};
+
nativeBuildInputs = [
meson
+
rustc
+
rustPlatform.cargoSetupHook
+
cargo
ninja
];
···
xdg-desktop-portal
];
-
# Needed for letting meson run. rustPackage will overwrite it otherwise.
-
configurePhase = "";
-
-
mesonBuildType = "release";
-
-
useFetchCargoVendor = true;
-
cargoHash = "sha256-f9kfCoH0YHVzzZC4rChJgz0yQqVVAYR7Gpa6HuXhQZY=";
-
-
meta = with lib; {
+
meta = {
description = "Filechooser portal backend for any desktop environment";
homepage = "https://github.com/Decodetalkers/xdg-desktop-portal-shana";
-
license = licenses.mit;
-
platforms = platforms.linux;
-
maintainers = [ maintainers.samuelefacenda ];
+
license = lib.licenses.mit;
+
platforms = lib.platforms.linux;
+
maintainers = with lib.maintainers; [
+
samuelefacenda
+
Rishik-Y
+
];
};
-
-
}
+
})