From the documentation of keep-outputs, setting it to true would prevent the GC from removing build time dependencies: If true, the garbage collector will keep the outputs of non-garbage derivations. If false (default), outputs will be deleted unless they are GC roots themselves (or reachable from other roots). In general, outputs must be registered as roots separately. However, even if the output of a derivation is registered as a root, the collector will still delete store paths that are used only at build time (e.g., the C compiler, or source tarballs downloaded from the network). To prevent it from doing so, set this option to true. See: https://nix.dev/manual/nix/2.24/command-ref/conf-file.html#conf-keep-outputs Reviewed-by: Aleix Roca Nonell <aleix.rocanonell@bsc.es>
59 lines
1.9 KiB
Nix
59 lines
1.9 KiB
Nix
{ pkgs, nixpkgs, bscpkgs, theFlake, ... }:
|
||
|
||
{
|
||
nixpkgs.overlays = [
|
||
bscpkgs.bscOverlay
|
||
(import ../../../pkgs/overlay.nix)
|
||
];
|
||
|
||
nix = {
|
||
nixPath = [
|
||
"nixpkgs=${nixpkgs}"
|
||
"jungle=${theFlake.outPath}"
|
||
];
|
||
|
||
registry = {
|
||
nixpkgs.flake = nixpkgs;
|
||
jungle.flake = theFlake;
|
||
};
|
||
|
||
settings = {
|
||
experimental-features = [ "nix-command" "flakes" ];
|
||
sandbox = "relaxed";
|
||
trusted-users = [ "@wheel" ];
|
||
flake-registry = pkgs.writeText "global-registry.json"
|
||
''{"flakes":[],"version":2}'';
|
||
keep-outputs = true;
|
||
};
|
||
|
||
gc = {
|
||
automatic = true;
|
||
dates = "weekly";
|
||
options = "--delete-older-than 30d";
|
||
};
|
||
};
|
||
|
||
# The nix-gc.service can begin its execution *before* /home is mounted,
|
||
# causing it to remove all gcroots considering them as stale, as it cannot
|
||
# access the symlink. To prevent this problem, we force the service to wait
|
||
# until /home is mounted as well as other remote FS like /ceph.
|
||
systemd.services.nix-gc = {
|
||
# Start remote-fs.target if not already being started and fail if it fails
|
||
# to start. It will also be stopped if the remote-fs.target fails after
|
||
# starting successfully.
|
||
bindsTo = [ "remote-fs.target" ];
|
||
# Wait until remote-fs.target fully starts before starting this one.
|
||
after = [ "remote-fs.target"];
|
||
# Ensure we can access a remote path inside /home
|
||
unitConfig.ConditionPathExists = "/home/Computational";
|
||
};
|
||
|
||
# This value determines the NixOS release from which the default
|
||
# settings for stateful data, like file locations and database versions
|
||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||
# this value at the release version of the first install of this system.
|
||
# Before changing this value read the documentation for this option
|
||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||
system.stateVersion = "22.11"; # Did you read the comment?
|
||
}
|