Skip to content

Commit 2c8bdd0

Browse files
committed
nixos/rebuilderd: init
1 parent 24987a5 commit 2c8bdd0

File tree

6 files changed

+96
-0
lines changed

6 files changed

+96
-0
lines changed

nixos/doc/manual/release-notes/rl-2505.section.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,8 @@
171171

172172
- [Recyclarr](https://github.com/recyclarr/recyclarr) a TRaSH Guides synchronizer for Sonarr and Radarr. Available as [services.recyclarr](#opt-services.recyclarr.enable).
173173

174+
- [Rebuilderd](https://github.com/kpcyrd/rebuilderd) an independent verification of binary packages - Reproducible Builds. Available as [services.rebuilderd](#opt-services.rebuilderd.enable).
175+
174176
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
175177

176178
## Backward Incompatibilities {#sec-release-25.05-incompatibilities}

nixos/modules/module-list.nix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -868,6 +868,7 @@
868868
./services/misc/radicle.nix
869869
./services/misc/readarr.nix
870870
./services/misc/realmd.nix
871+
./services/misc/rebuilderd.nix
871872
./services/misc/recyclarr.nix
872873
./services/misc/redlib.nix
873874
./services/misc/redmine.nix
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
{
2+
config,
3+
pkgs,
4+
lib,
5+
...
6+
}:
7+
8+
let
9+
inherit (lib) mkEnableOption mkIf mkPackageOption;
10+
cfg = config.services.rebuilderd;
11+
12+
format = pkgs.formats.toml { };
13+
settings = lib.attrsets.filterAttrs (n: v: v != null) cfg.settings;
14+
configFile = format.generate "rebuilderd.conf" settings;
15+
in
16+
{
17+
options.services.rebuilderd = {
18+
enable = mkEnableOption "rebuilderd service for independent verification of binary packages";
19+
package = mkPackageOption pkgs "rebuilderd" { };
20+
settings = lib.mkOption {
21+
type = lib.types.submodule {
22+
freeformType = format.type;
23+
};
24+
default = { };
25+
description = ''
26+
Configuration for rebuilderd (rebuilderd.conf)
27+
'';
28+
};
29+
};
30+
31+
config = mkIf cfg.enable {
32+
systemd.services.rebuilderd = {
33+
description = "Independent verification of binary packages";
34+
wantedBy = [ "multi-user.target" ];
35+
environment = {
36+
REBUILDERD_COOKIE_PATH = "/var/lib/rebuilderd/auth-cookie";
37+
};
38+
after = [
39+
"network.target"
40+
];
41+
serviceConfig = {
42+
ExecStart = "${cfg.package}/bin/rebuilderd --config ${configFile}";
43+
DynamicUser = true;
44+
StateDirectory = "rebuilderd";
45+
WorkingDirectory = "/var/lib/rebuilderd";
46+
};
47+
};
48+
};
49+
}

nixos/tests/all-tests.nix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -953,6 +953,7 @@ in {
953953
readarr = handleTest ./readarr.nix {};
954954
realm = handleTest ./realm.nix {};
955955
readeck = runTest ./readeck.nix;
956+
rebuilderd = runTest ./rebuilderd.nix;
956957
redis = handleTest ./redis.nix {};
957958
redlib = handleTest ./redlib.nix {};
958959
redmine = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./redmine.nix {};

nixos/tests/rebuilderd.nix

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
{ lib, ... }:
2+
3+
{
4+
name = "rebuilderd";
5+
6+
nodes = {
7+
machine =
8+
{ pkgs, ... }:
9+
{
10+
services.rebuilderd = {
11+
enable = true;
12+
};
13+
};
14+
15+
machine_custom_config =
16+
{ pkgs, ... }:
17+
{
18+
services.rebuilderd = {
19+
enable = true;
20+
settings = {
21+
http.bind_addr = "0.0.0.0:1234";
22+
};
23+
};
24+
};
25+
};
26+
27+
testScript = ''
28+
machine.start()
29+
machine.wait_for_unit("rebuilderd.service")
30+
machine.wait_for_open_port(8484)
31+
32+
machine_custom_config.start()
33+
machine_custom_config.wait_for_unit("rebuilderd.service")
34+
machine_custom_config.wait_for_open_port(1234)
35+
'';
36+
37+
meta.maintainers = [ lib.maintainers.drupol ];
38+
}

pkgs/by-name/re/rebuilderd/package.nix

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
darwin,
1616
buildPackages,
1717
versionCheckHook,
18+
nixosTests,
1819
nix-update-script,
1920
}:
2021

@@ -109,6 +110,10 @@ rustPlatform.buildRustPackage (finalAttrs: {
109110
versionCheckProgramArg = [ "--version" ];
110111
doInstallCheck = true;
111112

113+
passthru.tests = {
114+
rebuilderd = nixosTests.rebuilderd;
115+
};
116+
112117
passthru.updateScript = nix-update-script { };
113118

114119
meta = {

0 commit comments

Comments
 (0)