Skip to content

Commit 5dd6d1d

Browse files
authored
kea: 2.6.3 -> 3.0.0 (#428872)
2 parents 871381d + 66e035f commit 5dd6d1d

4 files changed

Lines changed: 125 additions & 95 deletions

File tree

nixos/modules/services/networking/kea.nix

Lines changed: 52 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
config,
33
lib,
44
pkgs,
5+
utils,
56
...
67
}:
78
let
@@ -34,11 +35,11 @@ let
3435
DhcpDdns = cfg.dhcp-ddns.settings;
3536
}
3637
);
37-
38-
package = pkgs.kea;
3938
in
4039
{
4140
options.services.kea = with lib.types; {
41+
package = lib.mkPackageOption pkgs "kea" { };
42+
4243
ctrl-agent = lib.mkOption {
4344
description = ''
4445
Kea Control Agent configuration
@@ -60,7 +61,7 @@ in
6061
type = nullOr path;
6162
default = null;
6263
description = ''
63-
Kea Control Agent configuration as a path, see <https://kea.readthedocs.io/en/kea-${package.version}/arm/agent.html>.
64+
Kea Control Agent configuration as a path, see <https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/agent.html>.
6465
6566
Takes preference over [settings](#opt-services.kea.ctrl-agent.settings).
6667
Most users should prefer using [settings](#opt-services.kea.ctrl-agent.settings) instead.
@@ -71,7 +72,7 @@ in
7172
type = format.type;
7273
default = null;
7374
description = ''
74-
Kea Control Agent configuration as an attribute set, see <https://kea.readthedocs.io/en/kea-${package.version}/arm/agent.html>.
75+
Kea Control Agent configuration as an attribute set, see <https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/agent.html>.
7576
'';
7677
};
7778
};
@@ -99,7 +100,7 @@ in
99100
type = nullOr path;
100101
default = null;
101102
description = ''
102-
Kea DHCP4 configuration as a path, see <https://kea.readthedocs.io/en/kea-${package.version}/arm/dhcp4-srv.html>.
103+
Kea DHCP4 configuration as a path, see <https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/dhcp4-srv.html>.
103104
104105
Takes preference over [settings](#opt-services.kea.dhcp4.settings).
105106
Most users should prefer using [settings](#opt-services.kea.dhcp4.settings) instead.
@@ -136,7 +137,7 @@ in
136137
];
137138
};
138139
description = ''
139-
Kea DHCP4 configuration as an attribute set, see <https://kea.readthedocs.io/en/kea-${package.version}/arm/dhcp4-srv.html>.
140+
Kea DHCP4 configuration as an attribute set, see <https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/dhcp4-srv.html>.
140141
'';
141142
};
142143
};
@@ -164,7 +165,7 @@ in
164165
type = nullOr path;
165166
default = null;
166167
description = ''
167-
Kea DHCP6 configuration as a path, see <https://kea.readthedocs.io/en/kea-${package.version}/arm/dhcp6-srv.html>.
168+
Kea DHCP6 configuration as a path, see <https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/dhcp6-srv.html>.
168169
169170
Takes preference over [settings](#opt-services.kea.dhcp6.settings).
170171
Most users should prefer using [settings](#opt-services.kea.dhcp6.settings) instead.
@@ -202,7 +203,7 @@ in
202203
];
203204
};
204205
description = ''
205-
Kea DHCP6 configuration as an attribute set, see <https://kea.readthedocs.io/en/kea-${package.version}/arm/dhcp6-srv.html>.
206+
Kea DHCP6 configuration as an attribute set, see <https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/dhcp6-srv.html>.
206207
'';
207208
};
208209
};
@@ -230,7 +231,7 @@ in
230231
type = nullOr path;
231232
default = null;
232233
description = ''
233-
Kea DHCP-DDNS configuration as a path, see <https://kea.readthedocs.io/en/kea-${package.version}/arm/ddns.html>.
234+
Kea DHCP-DDNS configuration as a path, see <https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/ddns.html>.
234235
235236
Takes preference over [settings](#opt-services.kea.dhcp-ddns.settings).
236237
Most users should prefer using [settings](#opt-services.kea.dhcp-ddns.settings) instead.
@@ -255,7 +256,7 @@ in
255256
};
256257
};
257258
description = ''
258-
Kea DHCP-DDNS configuration as an attribute set, see <https://kea.readthedocs.io/en/kea-${package.version}/arm/ddns.html>.
259+
Kea DHCP-DDNS configuration as an attribute set, see <https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/ddns.html>.
259260
'';
260261
};
261262
};
@@ -266,9 +267,10 @@ in
266267
config =
267268
let
268269
commonEnvironment = {
269-
KEA_CONTROL_SOCKET_DIR = "/run/kea";
270-
KEA_LOCKFILE_DIR = "/run/kea";
271-
KEA_PIDFILE_DIR = "/run/kea";
270+
# Allow hook scripts only when they originate from the system configuration
271+
KEA_HOOK_SCRIPTS_PATH = lib.mkDefault "/nix/store";
272+
# Allow hooks to originate from the configured package
273+
KEA_HOOKS_PATH = lib.mkDefault "${cfg.package}/lib/kea/hooks";
272274
};
273275

274276
commonServiceConfig = {
@@ -291,7 +293,7 @@ in
291293
lib.mkIf (cfg.ctrl-agent.enable || cfg.dhcp4.enable || cfg.dhcp6.enable || cfg.dhcp-ddns.enable) (
292294
lib.mkMerge [
293295
{
294-
environment.systemPackages = [ package ];
296+
environment.systemPackages = [ cfg.package ];
295297

296298
users.users.kea = {
297299
isSystemUser = true;
@@ -314,7 +316,7 @@ in
314316
description = "Kea Control Agent";
315317
documentation = [
316318
"man:kea-ctrl-agent(8)"
317-
"https://kea.readthedocs.io/en/kea-${package.version}/arm/agent.html"
319+
"https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/agent.html"
318320
];
319321

320322
wants = [
@@ -337,7 +339,14 @@ in
337339
];
338340

339341
serviceConfig = {
340-
ExecStart = "${package}/bin/kea-ctrl-agent -c /etc/kea/ctrl-agent.conf ${lib.escapeShellArgs cfg.ctrl-agent.extraArgs}";
342+
ExecStart = utils.escapeSystemdExecArgs (
343+
[
344+
(lib.getExe' cfg.package "kea-ctrl-agent")
345+
"-c"
346+
"/etc/kea/ctrl-agent.conf"
347+
]
348+
++ cfg.ctrl-agent.extraArgs
349+
);
341350
KillMode = "process";
342351
Restart = "on-failure";
343352
}
@@ -359,7 +368,7 @@ in
359368
description = "Kea DHCP4 Server";
360369
documentation = [
361370
"man:kea-dhcp4(8)"
362-
"https://kea.readthedocs.io/en/kea-${package.version}/arm/dhcp4-srv.html"
371+
"https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/dhcp4-srv.html"
363372
];
364373

365374
after = [
@@ -380,7 +389,14 @@ in
380389
];
381390

382391
serviceConfig = {
383-
ExecStart = "${package}/bin/kea-dhcp4 -c /etc/kea/dhcp4-server.conf ${lib.escapeShellArgs cfg.dhcp4.extraArgs}";
392+
ExecStart = utils.escapeSystemdExecArgs (
393+
[
394+
(lib.getExe' cfg.package "kea-dhcp4")
395+
"-c"
396+
"etc/kea/dhcp4-server.conf"
397+
]
398+
++ cfg.dhcp4.extraArgs
399+
);
384400
# Kea does not request capabilities by itself
385401
AmbientCapabilities = [
386402
"CAP_NET_BIND_SERVICE"
@@ -409,7 +425,7 @@ in
409425
description = "Kea DHCP6 Server";
410426
documentation = [
411427
"man:kea-dhcp6(8)"
412-
"https://kea.readthedocs.io/en/kea-${package.version}/arm/dhcp6-srv.html"
428+
"https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/dhcp6-srv.html"
413429
];
414430

415431
after = [
@@ -430,7 +446,14 @@ in
430446
];
431447

432448
serviceConfig = {
433-
ExecStart = "${package}/bin/kea-dhcp6 -c /etc/kea/dhcp6-server.conf ${lib.escapeShellArgs cfg.dhcp6.extraArgs}";
449+
ExecStart = utils.escapeSystemdExecArgs (
450+
[
451+
(lib.getExe' cfg.package "kea-dhcp6")
452+
"-c"
453+
"/etc/kea/dhcp6-server.conf"
454+
]
455+
++ cfg.dhcp6.extraArgs
456+
);
434457
# Kea does not request capabilities by itself
435458
AmbientCapabilities = [
436459
"CAP_NET_BIND_SERVICE"
@@ -457,7 +480,7 @@ in
457480
description = "Kea DHCP-DDNS Server";
458481
documentation = [
459482
"man:kea-dhcp-ddns(8)"
460-
"https://kea.readthedocs.io/en/kea-${package.version}/arm/ddns.html"
483+
"https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/ddns.html"
461484
];
462485

463486
wants = [ "network-online.target" ];
@@ -476,7 +499,14 @@ in
476499
];
477500

478501
serviceConfig = {
479-
ExecStart = "${package}/bin/kea-dhcp-ddns -c /etc/kea/dhcp-ddns.conf ${lib.escapeShellArgs cfg.dhcp-ddns.extraArgs}";
502+
ExecStart = utils.escapeSystemdExecArgs (
503+
[
504+
(lib.getExe' cfg.package "kea-dhcp-ddns")
505+
"-c"
506+
"/etc/kea/dhcp-ddns.conf"
507+
]
508+
++ cfg.dhcp-ddns.extraArgs
509+
);
480510
AmbientCapabilities = [
481511
"CAP_NET_BIND_SERVICE"
482512
];
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
diff --git a/meson.build b/meson.build
2+
index 24ab9b5bd7..8f44076cf7 100644
3+
--- a/meson.build
4+
+++ b/meson.build
5+
@@ -1118,10 +1118,6 @@ top_docs = [
6+
]
7+
install_data(top_docs, install_dir: DATADIR / 'doc/kea')
8+
9+
-install_emptydir(LOGDIR)
10+
-install_emptydir(RUNSTATEDIR)
11+
-install_emptydir(SHAREDSTATEDIR)
12+
-
13+
# Meson is annoying with its opinionated alteration of certain paths based on whether prefix is default or not.
14+
# So we revert what it does..
15+
# In case prefix is default, install to hardcoded path.

pkgs/by-name/ke/kea/dont-create-var.patch

Lines changed: 0 additions & 34 deletions
This file was deleted.

0 commit comments

Comments
 (0)