grafana-alloy: don't build the frontend twice
[NixPkgs.git] / nixos / modules / services / security / esdm.nix
blob835c3b6a090e243ca3b2d5aeadd9fece8c2a5f7b
1 { lib, config, pkgs, ... }:
3 let
4   cfg = config.services.esdm;
5 in
7   imports = [
8     # removed option 'services.esdm.cuseRandomEnable'
9     (lib.mkRemovedOptionModule [ "services" "esdm" "cuseRandomEnable" ] ''
10       Use services.esdm.enableLinuxCompatServices instead.
11     '')
12     # removed option 'services.esdm.cuseUrandomEnable'
13     (lib.mkRemovedOptionModule [ "services" "esdm" "cuseUrandomEnable" ] ''
14       Use services.esdm.enableLinuxCompatServices instead.
15     '')
16     # removed option 'services.esdm.procEnable'
17     (lib.mkRemovedOptionModule [ "services" "esdm" "procEnable" ] ''
18       Use services.esdm.enableLinuxCompatServices instead.
19     '')
20     # removed option 'services.esdm.verbose'
21     (lib.mkRemovedOptionModule [ "services" "esdm" "verbose" ] ''
22       There is no replacement.
23     '')
24   ];
26   options.services.esdm = {
27     enable = lib.mkEnableOption "ESDM service configuration";
28     package = lib.mkPackageOption pkgs "esdm" { };
29     enableLinuxCompatServices = lib.mkOption {
30       type = lib.types.bool;
31       default = true;
32       description = ''
33         Enable /dev/random, /dev/urandom and /proc/sys/kernel/random/* userspace wrapper.
34       '';
35     };
36   };
38   config = lib.mkIf cfg.enable (
39     lib.mkMerge [
40       ({
41         systemd.packages = [ cfg.package ];
42         systemd.services."esdm-server".wantedBy = [ "basic.target" ];
43       })
44       # It is necessary to set those options for these services to be started by systemd in NixOS
45       (lib.mkIf cfg.enableLinuxCompatServices {
46         systemd.targets."esdm-linux-compat".wantedBy = [ "basic.target" ];
47         systemd.services."esdm-server-suspend".wantedBy = [ "sleep.target" "suspend.target" "hibernate.target" ];
48         systemd.services."esdm-server-resume".wantedBy = [ "sleep.target" "suspend.target" "hibernate.target" ];
49       })
50     ]);
52   meta.maintainers = with lib.maintainers; [ orichter thillux ];