1{
2 config,
3 lib,
4 pkgs,
5 ...
6}:
7
8let
9 cfg = config.programs.criu;
10in
11{
12
13 options = {
14 programs.criu = {
15 enable = lib.mkOption {
16 type = lib.types.bool;
17 default = false;
18 description = ''
19 Install {command}`criu` along with necessary kernel options.
20 '';
21 };
22 };
23 };
24 config = lib.mkIf cfg.enable {
25 system.requiredKernelConfig = with config.lib.kernelConfig; [
26 (isYes "CHECKPOINT_RESTORE")
27 ];
28 boot.kernel.features.criu = true;
29 environment.systemPackages = [ pkgs.criu ];
30 };
31
32}