vuls: init at 0.27.0
[NixPkgs.git] / nixos / modules / system / boot / tmp.nix
blob8287fa5f872f4cc91fc6323a13b50beee221ee1e
1 { config, lib, ... }:
2 let
3   cfg = config.boot.tmp;
4 in
6   imports = [
7     (lib.mkRenamedOptionModule [ "boot" "cleanTmpDir" ] [ "boot" "tmp" "cleanOnBoot" ])
8     (lib.mkRenamedOptionModule [ "boot" "tmpOnTmpfs" ] [ "boot" "tmp" "useTmpfs" ])
9     (lib.mkRenamedOptionModule [ "boot" "tmpOnTmpfsSize" ] [ "boot" "tmp" "tmpfsSize" ])
10   ];
12   options = {
13     boot.tmp = {
14       cleanOnBoot = lib.mkOption {
15         type = lib.types.bool;
16         default = false;
17         description = ''
18           Whether to delete all files in {file}`/tmp` during boot.
19         '';
20       };
22       tmpfsSize = lib.mkOption {
23         type = lib.types.oneOf [ lib.types.str lib.types.ints.positive ];
24         default = "50%";
25         description = ''
26           Size of tmpfs in percentage.
27           Percentage is defined by systemd.
28         '';
29       };
31       useTmpfs = lib.mkOption {
32         type = lib.types.bool;
33         default = false;
34         description = ''
35            Whether to mount a tmpfs on {file}`/tmp` during boot.
37            ::: {.note}
38            Large Nix builds can fail if the mounted tmpfs is not large enough.
39            In such a case either increase the tmpfsSize or disable this option.
40            :::
41         '';
42       };
43     };
44   };
46   config = {
47     # When changing remember to update /tmp mount in virtualisation/qemu-vm.nix
48     systemd.mounts = lib.mkIf cfg.useTmpfs [
49       {
50         what = "tmpfs";
51         where = "/tmp";
52         type = "tmpfs";
53         mountConfig.Options = lib.concatStringsSep "," [
54           "mode=1777"
55           "strictatime"
56           "rw"
57           "nosuid"
58           "nodev"
59           "size=${toString cfg.tmpfsSize}"
60         ];
61       }
62     ];
64     systemd.tmpfiles.rules = lib.optional cfg.cleanOnBoot "D! /tmp 1777 root root";
65   };