programs.criu: add nixos option for installing criu + kernel flags

Changed files
+44
nixos
modules
pkgs
os-specific
linux
+1
nixos/modules/module-list.nix
···
./programs/cdemu.nix
./programs/chromium.nix
./programs/command-not-found/command-not-found.nix
+
./programs/criu.nix
./programs/dconf.nix
./programs/environment.nix
./programs/fish.nix
+26
nixos/modules/programs/criu.nix
···
+
{ config, lib, pkgs, ... }:
+
+
with lib;
+
+
let cfg = config.programs.criu;
+
in {
+
+
options = {
+
programs.criu = {
+
enable = mkOption {
+
default = false;
+
description = ''
+
Install <command>criu</command> along with necessary kernel options.
+
'';
+
};
+
};
+
};
+
config = mkIf cfg.enable {
+
system.requiredKernelConfig = with config.lib.kernelConfig; [
+
(isYes "CHECKPOINT_RESTORE")
+
];
+
boot.kernel.features.criu = true;
+
environment.systemPackages = [ pkgs.criu ];
+
};
+
+
}
+17
pkgs/os-specific/linux/kernel/common-config.nix
···
WW_MUTEX_SELFTEST? n
''}
+
${optionalString (features.criu or false) ''
+
EXPERT y
+
CHECKPOINT_RESTORE y
+
''}
+
+
${optionalString ((features.criu or false) && (features.criu_revert_expert or true))
+
# Revert some changes, introduced by EXPERT, when necessary for criu
+
''
+
RFKILL_INPUT? y
+
HID_PICOLCD_FB? y
+
HID_PICOLCD_BACKLIGHT? y
+
HID_PICOLCD_LCD? y
+
HID_PICOLCD_LEDS? y
+
HID_PICOLCD_CIR? y
+
DEBUG_MEMORY_INIT? y
+
''}
+
${extraConfig}
''