219 lines
7.9 KiB
Nix
219 lines
7.9 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
namespace,
|
|
...
|
|
}:
|
|
let
|
|
gpuTargets = [ "gfx1102" ]; # todo update when support is added gfx1150
|
|
in
|
|
{
|
|
programs.ccache = {
|
|
enable = true;
|
|
packageNames = [
|
|
"dolphin-emu"
|
|
# "ffmpeg"
|
|
"ffmpeg_8"
|
|
"ffmpeg_7"
|
|
"ffmpeg_6"
|
|
"ffmpeg-full"
|
|
"gamescope"
|
|
"gjs"
|
|
"gst-plugins-bad"
|
|
"gst-plugins-rs"
|
|
"gtk4"
|
|
"hipblaslt"
|
|
"jemalloc"
|
|
"jupiter-fan-control"
|
|
"libcamera-rpi"
|
|
"libsecret"
|
|
"linux"
|
|
"mesa"
|
|
"mesa_i686"
|
|
"mesa-radeonsi-jupiter"
|
|
"mesa-radv-jupiter"
|
|
"mgba"
|
|
"orca-slicer"
|
|
# "onnxruntime"
|
|
"opencv"
|
|
"opencv4"
|
|
"opencv4WithoutCuda"
|
|
"pipewire"
|
|
"qemu"
|
|
"qemu_kvm"
|
|
"qemu_full"
|
|
"qemu-host-cpu-only"
|
|
"qt3d"
|
|
"qtdeclarative"
|
|
"qtmultimedia"
|
|
"ryubing"
|
|
"sdl"
|
|
"sdl2"
|
|
"sdl3"
|
|
# "uv"
|
|
"webkitgtk"
|
|
];
|
|
cacheDir = "/var/cache/ccache"; # default location
|
|
};
|
|
|
|
nixpkgs.overlays = [
|
|
(_self: super: {
|
|
${namespace} = super.${namespace} // {
|
|
linuxPackages_rpi5 = super.linuxPackagesFor (super.${namespace}.linux-rpi.override { stdenv = super.ccacheStdenv; });
|
|
linuxPackages_rpi4 = super.linuxPackagesFor (super.${namespace}.linux-rpi.override { stdenv = super.ccacheStdenv; rpiVersion = 4; });
|
|
libraspberrypi = super.${namespace}.libraspberrypi.override { stdenv = super.ccacheStdenv; };
|
|
raspberrypi-utils = super.${namespace}.raspberrypi-utils.override { stdenv = super.ccacheStdenv; };
|
|
|
|
linuxPackages_cachyos = super.${namespace}.linuxPackages_cachyos.override { stdenv = super.ccacheStdenv; };
|
|
linuxPackages_cachyos-lto = super.${namespace}.linuxPackages_cachyos-lto.override { stdenv = super.ccacheStdenv; };
|
|
linuxPackages_cachyos-lto-full = super.${namespace}.linuxPackages_cachyos-lto-full.override { stdenv = super.ccacheStdenv; };
|
|
linuxPackages_cachyos-lto-znver4 = super.${namespace}.linuxPackages_cachyos-lto-znver4.override { stdenv = super.ccacheStdenv; };
|
|
linuxPackages_cachyos-server = super.${namespace}.linuxPackages_cachyos-server.override { stdenv = super.ccacheStdenv; };
|
|
linuxPackages_cachyos-server-lto = super.${namespace}.linuxPackages_cachyos-server-lto.override { stdenv = super.ccacheStdenv; };
|
|
linuxPackages_cachyos-server-lto-znver4 = super.${namespace}.linuxPackages_cachyos-server-lto-znver4.override { stdenv = super.ccacheStdenv; };
|
|
linuxPackages_cachyos-rc = super.${namespace}.linuxPackages_cachyos-rc.override { stdenv = super.ccacheStdenv; };
|
|
linuxPackages_cachyos-rc-lto = super.${namespace}.linuxPackages_cachyos-rc-lto.override { stdenv = super.ccacheStdenv; };
|
|
linuxPackages_cachyos-rc-lto-znver4 = super.${namespace}.linuxPackages_cachyos-rc-lto-znver4.override { stdenv = super.ccacheStdenv; };
|
|
linuxPackages_cachyos-hardened = super.${namespace}.linuxPackages_cachyos-hardened.override { stdenv = super.ccacheStdenv; };
|
|
linuxPackages_cachyos-hardened-lto = super.${namespace}.linuxPackages_cachyos-hardened-lto.override { stdenv = super.ccacheStdenv; };
|
|
linuxPackages_cachyos-hardened-lto-znver4 = super.${namespace}.linuxPackages_cachyos-hardened-lto-znver4.override { stdenv = super.ccacheStdenv; };
|
|
linuxPackages_cachyos-deckify = super.${namespace}.linuxPackages_cachyos-deckify.override { stdenv = super.ccacheStdenv; };
|
|
linuxPackages_cachyos-deckify-lto = super.${namespace}.linuxPackages_cachyos-deckify-lto.override { stdenv = super.ccacheStdenv; };
|
|
};
|
|
})
|
|
|
|
(_self: super: {
|
|
"raspberrypi-utils" = super.${namespace}."raspberrypi-utils";
|
|
"raspberrypi-udev-rules" = super.${namespace}."udev-rules";
|
|
})
|
|
(_self: super: {
|
|
"mesa" = super."mesa".override { buildPackages.stdenv = super.ccacheStdenv; };
|
|
})
|
|
(_self: super: {
|
|
"raspberrypi-utils" = super.${namespace}."raspberrypi-utils";
|
|
})
|
|
(_self: super: {
|
|
electron = super.stable.electron-bin;
|
|
electron_36 = super.stable.electron_36-bin;
|
|
electron_37 = super.stable.electron_37-bin;
|
|
})
|
|
# (_self: super: {
|
|
# "webkitgtk_4_1" = super.stable."webkitgtk_4_1".override { clangStdenv = super.ccacheStdenv; };
|
|
# })
|
|
# (_self: super: {
|
|
# "webkitgtk_6_0" = super."webkitgtk_6_0".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 = super.ffmpeg_7.override { stdenv = super.ccacheStdenv; }; };
|
|
# })
|
|
|
|
# todo: make these work
|
|
(_self: super: {
|
|
rocmPackages = super.stable.rocmPackages;
|
|
uv = super.stable.uv;
|
|
# libsecret = super.stable.libsecret;
|
|
piper-tts = super.stable.piper-tts;
|
|
python3Packages = super.python3Packages // {
|
|
torch = super.stable.python3Packages.torch;
|
|
};
|
|
})
|
|
# (_self: super: {
|
|
# rocmPackages = super.rocmPackages // {
|
|
# hipblaslt = super.rocmPackages.hipblaslt.override {
|
|
# stdenv = super.ccacheStdenv;
|
|
# inherit gpuTargets;
|
|
# };
|
|
# rocblas = super.rocmPackages.rocblas.override {
|
|
# # stdenv = super.ccacheStdenv;
|
|
# inherit gpuTargets;
|
|
# };
|
|
# rocsolver = super.rocmPackages.rocsolver.override {
|
|
# # stdenv = super.ccacheStdenv;
|
|
# inherit gpuTargets;
|
|
# };
|
|
# };
|
|
# })
|
|
(_self: super: {
|
|
pcsx2 = super.pcsx2.override {
|
|
llvmPackages = super.llvmPackages // {
|
|
stdenv = super.ccacheStdenv;
|
|
};
|
|
};
|
|
})
|
|
(_self: super: {
|
|
driversi686Linux = super.driversi686Linux // {
|
|
mesa = super.driversi686Linux.mesa.override {
|
|
stdenv = super.ccacheStdenv;
|
|
buildPackages = super.driversi686Linux.mesa.buildPackages // {
|
|
stdenv = super.ccacheStdenv;
|
|
};
|
|
};
|
|
};
|
|
})
|
|
(_self: super: {
|
|
kdePackages = super.kdePackages // {
|
|
qt3d = super.kdePackages.qt3d.override {
|
|
qtbase = super.kdePackages.qtbase.override { stdenv = super.ccacheStdenv; };
|
|
};
|
|
qtwebengine = super.stable.kdePackages.qtwebengine; #.override { stdenv = super.ccacheStdenv; };
|
|
};
|
|
})
|
|
# (_self: super: {
|
|
# python3Packages = super.python3Packages // {
|
|
# torch = super.python3Packages.torch.override {
|
|
# stdenv = super.ccacheStdenv;
|
|
# inherit gpuTargets;
|
|
# };
|
|
# };
|
|
# })
|
|
# (_self: super: {
|
|
# piper-tts = super.piper-tts.overridePythonAttrs (oldAttrs: {
|
|
# pythonCatchConflictsPhase = null;
|
|
# });
|
|
# })
|
|
];
|
|
|
|
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;
|
|
};
|
|
};
|
|
}
|