Skip to content

Commit

Permalink
Merge pull request #791 from lilyball/linux-builder-tmpdir
Browse files Browse the repository at this point in the history
linux-builder: avoid /tmp for certs
  • Loading branch information
Enzime authored Oct 27, 2023
2 parents 19f75c2 + 160eb3d commit afe83cb
Showing 1 changed file with 13 additions and 1 deletion.
14 changes: 13 additions & 1 deletion modules/nix/linux-builder.nix
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,18 @@ let
builderWithOverrides = cfg.package.override {
inherit (cfg) modules;
};

# create-builder uses TMPDIR to share files with the builder, notably certs.
# macOS will clean up files in /tmp automatically that haven't been accessed in 3+ days.
# If we let it use /tmp, leaving the computer asleep for 3 days makes the certs vanish.
# So we'll use /run/org.nixos.linux-builder instead and clean it up ourselves.
script = pkgs.writeShellScript "linux-builder-start" ''
export TMPDIR=/run/org.nixos.linux-builder USE_TMPDIR=1
rm -rf $TMPDIR
mkdir -p $TMPDIR
trap "rm -rf $TMPDIR" EXIT
${builderWithOverrides}/bin/create-builder
'';
in

{
Expand Down Expand Up @@ -85,7 +97,7 @@ in
serviceConfig = {
ProgramArguments = [
"/bin/sh" "-c"
"/bin/wait4path /nix/store && exec ${builderWithOverrides}/bin/create-builder"
"/bin/wait4path /nix/store && exec ${script}"
];
KeepAlive = true;
RunAtLoad = true;
Expand Down

0 comments on commit afe83cb

Please sign in to comment.