dput-ng: fix eval (#364540)
[NixPkgs.git] / nixos / modules / services / security / esdm.nix
blobfbce629262751a66ded8c5bfdea05cb29cf1ecc6
2   lib,
3   config,
4   pkgs,
5   ...
6 }:
8 let
9   cfg = config.services.esdm;
12   imports = [
13     # removed option 'services.esdm.cuseRandomEnable'
14     (lib.mkRemovedOptionModule [ "services" "esdm" "cuseRandomEnable" ] ''
15       Use services.esdm.enableLinuxCompatServices instead.
16     '')
17     # removed option 'services.esdm.cuseUrandomEnable'
18     (lib.mkRemovedOptionModule [ "services" "esdm" "cuseUrandomEnable" ] ''
19       Use services.esdm.enableLinuxCompatServices instead.
20     '')
21     # removed option 'services.esdm.procEnable'
22     (lib.mkRemovedOptionModule [ "services" "esdm" "procEnable" ] ''
23       Use services.esdm.enableLinuxCompatServices instead.
24     '')
25     # removed option 'services.esdm.verbose'
26     (lib.mkRemovedOptionModule [ "services" "esdm" "verbose" ] ''
27       There is no replacement.
28     '')
29   ];
31   options.services.esdm = {
32     enable = lib.mkEnableOption "ESDM service configuration";
33     package = lib.mkPackageOption pkgs "esdm" { };
34     enableLinuxCompatServices = lib.mkOption {
35       type = lib.types.bool;
36       default = true;
37       description = ''
38         Enable /dev/random, /dev/urandom and /proc/sys/kernel/random/* userspace wrapper.
39       '';
40     };
41   };
43   config = lib.mkIf cfg.enable (
44     lib.mkMerge [
45       ({
46         systemd.packages = [ cfg.package ];
47         systemd.services."esdm-server".wantedBy = [ "basic.target" ];
48       })
49       # It is necessary to set those options for these services to be started by systemd in NixOS
50       (lib.mkIf cfg.enableLinuxCompatServices {
51         systemd.targets."esdm-linux-compat".wantedBy = [ "basic.target" ];
52         systemd.services."esdm-server-suspend".wantedBy = [
53           "sleep.target"
54           "suspend.target"
55           "hibernate.target"
56         ];
57         systemd.services."esdm-server-resume".wantedBy = [
58           "sleep.target"
59           "suspend.target"
60           "hibernate.target"
61         ];
62       })
63     ]
64   );
66   meta.maintainers = with lib.maintainers; [
67     orichter
68     thillux
69   ];