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