98 lines
2.5 KiB
Nix
98 lines
2.5 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
namespace,
|
|
...
|
|
}:
|
|
{
|
|
programs.ccache = {
|
|
enable = true;
|
|
packageNames = [
|
|
"cachyos-lto"
|
|
"cachyos-lto-x86_64-unknown-linux-gnu-6.18.0"
|
|
"cachyos-lto-x86_64-unknown-linux-gnu"
|
|
"cachyos-lto-znver4"
|
|
"cachyos-server-lto"
|
|
"cachyos-server-lto-znver4"
|
|
"cachyos-rc-lto"
|
|
"cachyos-rc-lto-znver4"
|
|
"chromium"
|
|
"electron"
|
|
"ffmpeg"
|
|
"ffmpeg-full"
|
|
"ffmpeg-headless-rpi"
|
|
"gjs"
|
|
"gst-plugins-bad"
|
|
"gtk4"
|
|
"jemalloc"
|
|
"libcamera-rpi"
|
|
"libraspberrypi"
|
|
"libsecret"
|
|
"linux"
|
|
"onnxruntime"
|
|
"opencv"
|
|
"pipewire"
|
|
"qemu"
|
|
"qtwebengine"
|
|
"raspberrypi-utils"
|
|
"sdl"
|
|
"sdl2"
|
|
"torch"
|
|
"uv"
|
|
"webkitgtk"
|
|
# "yubioath-flutter"
|
|
];
|
|
cacheDir = "/var/cache/ccache"; # default location
|
|
};
|
|
|
|
nixpkgs.overlays = [
|
|
(self: super: {
|
|
"webkitgtk_4_1" = super."webkitgtk_4_1".override { clangStdenv = super.ccacheStdenv; };
|
|
})
|
|
(self: super: {
|
|
"jellyfin-ffmpeg" = super."jellyfin-ffmpeg".override { ffmpeg_7-full = super.ffmpeg_7-full.override { stdenv = super.ccacheStdenv; }; };
|
|
})
|
|
(self: super: {
|
|
"ffmpeg-headless-rpi" = super."ffmpeg-headless-rpi".override { ffmpeg_7-full = super.ffmpeg_7-headless.override { stdenv = super.ccacheStdenv; }; };
|
|
})
|
|
];
|
|
|
|
nix = {
|
|
settings = {
|
|
extra-sandbox-paths = [ config.programs.ccache.cacheDir ];
|
|
substituters = [
|
|
"https://cache.mjallen.dev/nas-cache"
|
|
"https://nixos-raspberrypi.cachix.org"
|
|
"https://nix-community.cachix.org"
|
|
"https://cache.nixos.org/"
|
|
];
|
|
trusted-public-keys = [
|
|
"nas-cache:Y7PR+XTLr1bLIL85PKb9Tk9/BnE5HndTKvZYWVP1/48="
|
|
"nixos-raspberrypi.cachix.org-1:4iMO9LXa8BqhU+Rpg6LQKiGa2lsNh/j2oiYLNOQ5sPI="
|
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
|
];
|
|
warn-dirty = lib.mkForce false;
|
|
experimental-features = lib.mkForce [
|
|
"nix-command"
|
|
"flakes"
|
|
];
|
|
trusted-users = [ "@wheel" ];
|
|
};
|
|
|
|
# Garbage collect automatically every week
|
|
gc.automatic = lib.mkDefault true;
|
|
gc.options = lib.mkDefault "--delete-older-than 30d";
|
|
|
|
optimise.automatic = lib.mkDefault true;
|
|
};
|
|
|
|
nixpkgs = {
|
|
config = {
|
|
cudaSupport = lib.mkDefault config.${namespace}.hardware.nvidia.enable;
|
|
rocmSupport = lib.mkDefault config.${namespace}.hardware.amd.enable;
|
|
allowUnsupportedSystem = true;
|
|
};
|
|
};
|
|
}
|