refactor: clean-up Nix code

- `nix-vm-test` does not use `flake-utils` as input anymore, so no
  reason to override it.
- `pkgs.system` was deprecated, now `pkgs.stdenv.hostPlatform.system` is
  to be used. This is more precise, in particular for cross compilation.
- Avoid shadowing of symbols in `relase-package.nix` to make the code
  clearer.
- `lib.trivial.importTOML` is the canonical way to read and parse a
  TOML file.
- `toString` is in the prelude, no reason to write `builtins.toString`.
- Remove some unnecessary parentheses.
- Remove unused attributes in a function arguments.

Signed-off-by: wucke13 <wucke13+github@gmail.com>
This commit is contained in:
wucke13
2026-07-16 12:31:58 +02:00
parent ebd6cc49c5
commit 696e2ba7fc
9 changed files with 38 additions and 48 deletions
-1
View File
@@ -5,7 +5,6 @@
nix-vm-test.url = "github:numtide/nix-vm-test";
nix-vm-test.inputs.nixpkgs.follows = "nixpkgs";
nix-vm-test.inputs.flake-utils.follows = "flake-utils";
# for rust nightly with llvm-tools-preview
rust-overlay.url = "github:oxalica/rust-overlay";
+2 -2
View File
@@ -1,6 +1,6 @@
{
lib,
system,
stdenvNoCC,
runCommand,
rosenpass,
rpm,
@@ -10,7 +10,7 @@ let
splitVersion = lib.strings.splitString "-" rosenpass.version;
version = builtins.head splitVersion;
release = if builtins.length splitVersion != 2 then "release" else builtins.elemAt splitVersion 1;
arch = builtins.head (builtins.split "-" system);
arch = builtins.head (builtins.split "-" stdenvNoCC.hostPlatform.system);
in
runCommand "rosenpass-${version}.rpm" { } ''
+8 -12
View File
@@ -1,30 +1,26 @@
{
lib,
stdenvNoCC,
runCommand,
pkgsStatic,
rosenpass,
rosenpass-oci-image,
rp,
}@args:
}:
let
version = rosenpass.version;
# select static packages on Linux, default packages otherwise
package = if stdenvNoCC.hostPlatform.isLinux then pkgsStatic.rosenpass else args.rosenpass;
rp = if stdenvNoCC.hostPlatform.isLinux then pkgsStatic.rp else args.rp;
oci-image =
if stdenvNoCC.hostPlatform.isLinux then
pkgsStatic.rosenpass-oci-image
else
args.rosenpass-oci-image;
rosenpass' = if stdenvNoCC.hostPlatform.isLinux then pkgsStatic.rosenpass else rosenpass;
rp' = if stdenvNoCC.hostPlatform.isLinux then pkgsStatic.rp else rp;
rosenpass-oci-image' =
if stdenvNoCC.hostPlatform.isLinux then pkgsStatic.rosenpass-oci-image else rosenpass-oci-image;
in
runCommand "lace-result" { } ''
mkdir {bin,$out}
tar -cvf $out/rosenpass-${stdenvNoCC.hostPlatform.system}-${version}.tar \
-C ${package} bin/rosenpass lib/systemd \
-C ${rp} bin/rp
cp ${oci-image} \
-C ${rosenpass'} bin/rosenpass lib/systemd \
-C ${rp'} bin/rp
cp ${rosenpass-oci-image'} \
$out/rosenpass-oci-image-${stdenvNoCC.hostPlatform.system}-${version}.tar.gz
''
+1 -1
View File
@@ -56,7 +56,7 @@ let
};
# parsed Cargo.toml
cargoToml = builtins.fromTOML (builtins.readFile (src + "/rosenpass/Cargo.toml"));
cargoToml = lib.trivial.importTOML (src + "/rosenpass/Cargo.toml");
in
rustPlatform.buildRustPackage {
name = cargoToml.package.name;
-1
View File
@@ -1,6 +1,5 @@
{
lib,
pkgs,
config,
...
}:
+26 -26
View File
@@ -42,18 +42,18 @@ let
''
public_key = "${rosenpassKeyFolder}/self.pk"
secret_key = "${rosenpassKeyFolder}/self.sk"
listen = ["[::]:${builtins.toString rpPort}"]
listen = ["[::]:${toString rpPort}"]
verbosity = "Verbose"
[[peers]]
public_key = "${rosenpassKeyFolder}/peer-b.pk"
endpoint = "peerbkeyexchanger:${builtins.toString rpPort}"
endpoint = "peerbkeyexchanger:${toString rpPort}"
key_out = "${keyExchangePathAB}"
''
+ (lib.optionalString multiPeer ''
[[peers]]
public_key = "${rosenpassKeyFolder}/peer-c.pk"
endpoint = "peerckeyexchanger:${builtins.toString rpPort}"
endpoint = "peerckeyexchanger:${toString rpPort}"
key_out = "${keyExchangePathAC}"
'')
);
@@ -66,18 +66,18 @@ let
''
public_key = "${rosenpassKeyFolder}/self.pk"
secret_key = "${rosenpassKeyFolder}/self.sk"
listen = ["[::]:${builtins.toString rpPort}"]
listen = ["[::]:${toString rpPort}"]
verbosity = "Verbose"
[[peers]]
public_key = "${rosenpassKeyFolder}/peer-a.pk"
endpoint = "peerakeyexchanger:${builtins.toString rpPort}"
endpoint = "peerakeyexchanger:${toString rpPort}"
key_out = "${keyExchangePathBA}"
''
+ (lib.optionalString multiPeer ''
[[peers]]
public_key = "${rosenpassKeyFolder}/peer-c.pk"
endpoint = "peerckeyexchanger:${builtins.toString rpPort}"
endpoint = "peerckeyexchanger:${toString rpPort}"
key_out = "${keyExchangePathBC}"
'')
);
@@ -92,15 +92,15 @@ let
rosenpassConfig = builtins.toFile "peer-c.toml" ''
public_key = "${rosenpassKeyFolder}/self.pk"
secret_key = "${rosenpassKeyFolder}/self.sk"
listen = ["[::]:${builtins.toString rpPort}"]
listen = ["[::]:${toString rpPort}"]
verbosity = "Verbose"
[[peers]]
public_key = "${rosenpassKeyFolder}/peer-a.pk"
endpoint = "peerakeyexchanger:${builtins.toString rpPort}"
endpoint = "peerakeyexchanger:${toString rpPort}"
key_out = "${keyExchangePathCA}"
[[peers]]
public_key = "${rosenpassKeyFolder}/peer-b.pk"
endpoint = "peerckeyexchanger:${builtins.toString rpPort}"
endpoint = "peerckeyexchanger:${toString rpPort}"
key_out = "${keyExchangePathCB}"
'';
};
@@ -146,7 +146,7 @@ in
rpHost = "peerakeyexchanger";
peerPubkeyFile = staticConfig.peerB.wgPublicKeyFile;
remoteKeyPath = keyExchangePathAB;
endpoint = "peerB:${builtins.toString wgPort}";
endpoint = "peerB:${toString wgPort}";
allowedIps = "${staticConfig.peerB.innerIp}/32";
};
}
@@ -158,7 +158,7 @@ in
rpHost = "peerakeyexchanger";
peerPubkeyFile = staticConfig.peerC.wgPublicKeyFile;
remoteKeyPath = keyExchangePathAC;
endpoint = "peerC:${builtins.toString wgPort}";
endpoint = "peerC:${toString wgPort}";
allowedIps = "${staticConfig.peerC.innerIp}/32";
};
};
@@ -175,7 +175,7 @@ in
rpHost = "peerbkeyexchanger";
peerPubkeyFile = staticConfig.peerA.wgPublicKeyFile;
remoteKeyPath = keyExchangePathBA;
endpoint = "peerA:${builtins.toString wgPort}";
endpoint = "peerA:${toString wgPort}";
allowedIps = "${staticConfig.peerA.innerIp}/32";
};
}
@@ -187,7 +187,7 @@ in
rpHost = "peerbkeyexchanger";
peerPubkeyFile = staticConfig.peerC.wgPublicKeyFile;
remoteKeyPath = keyExchangePathBC;
endpoint = "peerC:${builtins.toString wgPort}";
endpoint = "peerC:${toString wgPort}";
allowedIps = "${staticConfig.peerC.innerIp}/32";
};
};
@@ -235,7 +235,7 @@ in
rpHost = "peerckeyexchanger";
peerPubkeyFile = staticConfig.peerA.wgPublicKeyFile;
remoteKeyPath = keyExchangePathCA;
endpoint = "peerA:${builtins.toString wgPort}";
endpoint = "peerA:${toString wgPort}";
allowedIps = "${staticConfig.peerA.innerIp}/32";
};
CB = {
@@ -245,7 +245,7 @@ in
rpHost = "peerckeyexchanger";
peerPubkeyFile = staticConfig.peerB.wgPublicKeyFile;
remoteKeyPath = keyExchangePathCB;
endpoint = "peerB:${builtins.toString wgPort}";
endpoint = "peerB:${toString wgPort}";
allowedIps = "${staticConfig.peerB.innerIp}/32";
};
};
@@ -315,7 +315,7 @@ in
};
};
testScript = (''
testScript = ''
start_all()
print("""Config file versions supported by peers
@@ -381,10 +381,10 @@ in
# Set up wireguard on peerA
peerA.succeed("ip link add ${wgInterface} type wireguard")
peerA.succeed("${pkgs.wireguard-tools}/bin/wg set ${wgInterface} private-key ${staticConfig.peerA.wgPrivateKeyFile} listen-port ${builtins.toString wgPort}")
peerA.succeed(f"${pkgs.wireguard-tools}/bin/wg set ${wgInterface} peer {peerBWgPk} allowed-ips ${staticConfig.peerB.innerIp}/32 endpoint peerB:${builtins.toString wgPort} preshared-key ${wireguardKeyFolder}/peerB.psk")
peerA.succeed("${pkgs.wireguard-tools}/bin/wg set ${wgInterface} private-key ${staticConfig.peerA.wgPrivateKeyFile} listen-port ${toString wgPort}")
peerA.succeed(f"${pkgs.wireguard-tools}/bin/wg set ${wgInterface} peer {peerBWgPk} allowed-ips ${staticConfig.peerB.innerIp}/32 endpoint peerB:${toString wgPort} preshared-key ${wireguardKeyFolder}/peerB.psk")
${lib.optionalString multiPeer ''
peerA.succeed(f"${pkgs.wireguard-tools}/bin/wg set ${wgInterface} peer {peerCWgPk} allowed-ips ${staticConfig.peerC.innerIp}/32 endpoint peerC:${builtins.toString wgPort} preshared-key ${wireguardKeyFolder}/peerC.psk")
peerA.succeed(f"${pkgs.wireguard-tools}/bin/wg set ${wgInterface} peer {peerCWgPk} allowed-ips ${staticConfig.peerC.innerIp}/32 endpoint peerC:${toString wgPort} preshared-key ${wireguardKeyFolder}/peerC.psk")
''}
peerA.succeed("ip addr add ${staticConfig.peerA.innerIp}/32 dev ${wgInterface}")
peerA.succeed("ip link set ${wgInterface} up")
@@ -395,10 +395,10 @@ in
# Set up wireguard on peerB
peerB.succeed("ip link add ${wgInterface} type wireguard")
peerB.succeed("${pkgs.wireguard-tools}/bin/wg set ${wgInterface} private-key ${staticConfig.peerB.wgPrivateKeyFile} listen-port ${builtins.toString wgPort}")
peerB.succeed(f"${pkgs.wireguard-tools}/bin/wg set ${wgInterface} peer {peerAWgPk} allowed-ips ${staticConfig.peerA.innerIp}/32 endpoint peerA:${builtins.toString wgPort} preshared-key ${wireguardKeyFolder}/peerA.psk")
peerB.succeed("${pkgs.wireguard-tools}/bin/wg set ${wgInterface} private-key ${staticConfig.peerB.wgPrivateKeyFile} listen-port ${toString wgPort}")
peerB.succeed(f"${pkgs.wireguard-tools}/bin/wg set ${wgInterface} peer {peerAWgPk} allowed-ips ${staticConfig.peerA.innerIp}/32 endpoint peerA:${toString wgPort} preshared-key ${wireguardKeyFolder}/peerA.psk")
${lib.optionalString multiPeer ''
peerB.succeed(f"${pkgs.wireguard-tools}/bin/wg set ${wgInterface} peer {peerCWgPk} allowed-ips ${staticConfig.peerC.innerIp}/32 endpoint peerC:${builtins.toString wgPort} preshared-key ${wireguardKeyFolder}/peerC.psk")
peerB.succeed(f"${pkgs.wireguard-tools}/bin/wg set ${wgInterface} peer {peerCWgPk} allowed-ips ${staticConfig.peerC.innerIp}/32 endpoint peerC:${toString wgPort} preshared-key ${wireguardKeyFolder}/peerC.psk")
''}
peerB.succeed("ip addr add ${staticConfig.peerB.innerIp}/32 dev ${wgInterface}")
peerB.succeed("ip link set ${wgInterface} up")
@@ -410,9 +410,9 @@ in
# Set up wireguard on peerC
${lib.optionalString multiPeer ''
peerC.succeed("ip link add ${wgInterface} type wireguard")
peerC.succeed("${pkgs.wireguard-tools}/bin/wg set ${wgInterface} private-key ${staticConfig.peerC.wgPrivateKeyFile} listen-port ${builtins.toString wgPort}")
peerC.succeed(f"${pkgs.wireguard-tools}/bin/wg set ${wgInterface} peer {peerAWgPk} allowed-ips ${staticConfig.peerA.innerIp}/32 endpoint peerA:${builtins.toString wgPort} preshared-key ${wireguardKeyFolder}/peerA.psk")
peerC.succeed(f"${pkgs.wireguard-tools}/bin/wg set ${wgInterface} peer {peerBWgPk} allowed-ips ${staticConfig.peerB.innerIp}/32 endpoint peerB:${builtins.toString wgPort} preshared-key ${wireguardKeyFolder}/peerB.psk")
peerC.succeed("${pkgs.wireguard-tools}/bin/wg set ${wgInterface} private-key ${staticConfig.peerC.wgPrivateKeyFile} listen-port ${toString wgPort}")
peerC.succeed(f"${pkgs.wireguard-tools}/bin/wg set ${wgInterface} peer {peerAWgPk} allowed-ips ${staticConfig.peerA.innerIp}/32 endpoint peerA:${toString wgPort} preshared-key ${wireguardKeyFolder}/peerA.psk")
peerC.succeed(f"${pkgs.wireguard-tools}/bin/wg set ${wgInterface} peer {peerBWgPk} allowed-ips ${staticConfig.peerB.innerIp}/32 endpoint peerB:${toString wgPort} preshared-key ${wireguardKeyFolder}/peerB.psk")
peerC.succeed("ip addr add ${staticConfig.peerC.innerIp}/32 dev ${wgInterface}")
peerC.succeed("ip link set ${wgInterface} up")
peerC.succeed("ip route add ${staticConfig.peerA.innerIp} dev ${wgInterface} scope link")
@@ -578,5 +578,5 @@ in
peerC.succeed("${pkgs.wireguard-tools}/bin/wg show all preshared-keys 1>&2")
''}
'');
'';
}
-2
View File
@@ -69,8 +69,6 @@ in
shared =
peer:
{
config,
modulesPath,
pkgs,
...
}:
-2
View File
@@ -59,8 +59,6 @@ in
shared =
peer:
{
config,
modulesPath,
pkgs,
...
}:
+1 -1
View File
@@ -1,4 +1,4 @@
{ pkgs, ... }:
{ ... }:
{
# Used to find the project root
projectRootFile = "flake.nix";