This commit is contained in:
mjallen18
2026-01-05 23:31:06 -06:00
parent 77c76e6483
commit 3b780d4d78
26 changed files with 306 additions and 302 deletions

View File

@@ -0,0 +1,53 @@
{ ... }:
{
imports = [ ./overlays.nix ];
programs.ccache = {
enable = true;
packageNames = [
"bcachefs"
"bcachefs-tools"
"dolphin-emu"
"ffmpeg"
"ffmpeg_8"
"ffmpeg_7"
"ffmpeg_6"
"ffmpeg-full"
"ffmpeg-headless"
"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"
"opencv"
"opencv4"
"opencv4WithoutCuda"
"pipewire"
"qemu"
"qemu_kvm"
"qemu_full"
"qemu-host-cpu-only"
"qt3d"
"qtdeclarative"
"qtmultimedia"
"ryubing"
"sdl"
"sdl2"
"sdl3"
"webkitgtk"
];
cacheDir = "/var/cache/ccache";
};
}

View File

@@ -0,0 +1,177 @@
{ pkgs, namespace, ... }:
{
nixpkgs.overlays = [
(_self: super: {
${namespace} =
let
# clangCcacheStdenv = super.overrideCC super.llvmPackages.stdenv (
# super.ccacheWrapper.override {
# cc = super.llvmPackages.stdenv.cc;
# extraConfig = ''
# export CCACHE_SLOPPINESS=include_file_ctime,time_macros
# export CCACHE_DIR=/var/cache/ccache
# '';
# }
# );
clangCcacheStdenv = pkgs.llvmPackages.stdenv; # pkgs.overrideCC pkgs.clangStdenv (pkgs.ccacheWrapper.override { cc = pkgs.llvmPackages.clangUseLLVM; });
in
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 = clangCcacheStdenv;
# };
# linuxPackages_cachyos-lto-full = super.${namespace}.linuxPackages_cachyos-lto-full.override {
# stdenv = clangCcacheStdenv;
# };
linuxPackages_cachyos-lts = super.${namespace}.linuxPackages_cachyos-lts.override {
stdenv = super.ccacheStdenv;
};
# linuxPackages_cachyos-lts-lto = super.${namespace}.linuxPackages_cachyos-lts-lto.override {
# stdenv = clangCcacheStdenv;
# };
# linuxPackages_cachyos-lto-znver4 = super.${namespace}.linuxPackages_cachyos-lto-znver4.override {
# stdenv = clangCcacheStdenv;
# };
linuxPackages_cachyos-server = super.${namespace}.linuxPackages_cachyos-server.override {
stdenv = super.ccacheStdenv;
};
# linuxPackages_cachyos-server-lto = super.${namespace}.linuxPackages_cachyos-server-lto.override {
# stdenv = clangCcacheStdenv;
# };
# linuxPackages_cachyos-server-lto-znver4 =
# super.${namespace}.linuxPackages_cachyos-server-lto-znver4.override
# { stdenv = clangCcacheStdenv; };
linuxPackages_cachyos-rc = super.${namespace}.linuxPackages_cachyos-rc.override {
stdenv = super.ccacheStdenv;
};
# linuxPackages_cachyos-rc-lto = super.${namespace}.linuxPackages_cachyos-rc-lto.override {
# stdenv = clangCcacheStdenv;
# };
# linuxPackages_cachyos-rc-lto-znver4 =
# super.${namespace}.linuxPackages_cachyos-rc-lto-znver4.override
# { stdenv = clangCcacheStdenv; };
linuxPackages_cachyos-hardened = super.${namespace}.linuxPackages_cachyos-hardened.override {
stdenv = super.ccacheStdenv;
};
# linuxPackages_cachyos-hardened-lto =
# super.${namespace}.linuxPackages_cachyos-hardened-lto.override
# { stdenv = clangCcacheStdenv; };
# linuxPackages_cachyos-hardened-lto-znver4 =
# super.${namespace}.linuxPackages_cachyos-hardened-lto-znver4.override
# { stdenv = clangCcacheStdenv; };
linuxPackages_cachyos-deckify = super.${namespace}.linuxPackages_cachyos-deckify.override {
stdenv = super.ccacheStdenv;
};
# linuxPackages_cachyos-deckify-lto = super.${namespace}.linuxPackages_cachyos-deckify-lto.override {
# stdenv = clangCcacheStdenv;
# };
};
})
(_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: {
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;
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;
# });
# })
];
}

View File

@@ -6,236 +6,6 @@
...
}:
{
programs.ccache = {
enable = true;
packageNames = [
"bcachefs"
"bcachefs-tools"
"dolphin-emu"
# "ffmpeg"
"ffmpeg_8"
"ffmpeg_7"
"ffmpeg_6"
"ffmpeg-full"
"ffmpeg-headless"
"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} =
let
# clangCcacheStdenv = super.overrideCC super.llvmPackages.stdenv (
# super.ccacheWrapper.override {
# cc = super.llvmPackages.stdenv.cc;
# extraConfig = ''
# export CCACHE_SLOPPINESS=include_file_ctime,time_macros
# export CCACHE_DIR=/var/cache/ccache
# '';
# }
# );
clangCcacheStdenv = pkgs.overrideCC pkgs.ccacheStdenv (pkgs.ccacheWrapper.override { cc = pkgs.clang; });
in
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 = clangCcacheStdenv;
# };
# linuxPackages_cachyos-lto-full = super.${namespace}.linuxPackages_cachyos-lto-full.override {
# stdenv = clangCcacheStdenv;
# };
linuxPackages_cachyos-lts = super.${namespace}.linuxPackages_cachyos-lts.override {
stdenv = super.ccacheStdenv;
};
# linuxPackages_cachyos-lts-lto = super.${namespace}.linuxPackages_cachyos-lts-lto.override {
# stdenv = clangCcacheStdenv;
# };
# linuxPackages_cachyos-lto-znver4 = super.${namespace}.linuxPackages_cachyos-lto-znver4.override {
# stdenv = clangCcacheStdenv;
# };
linuxPackages_cachyos-server = super.${namespace}.linuxPackages_cachyos-server.override {
stdenv = super.ccacheStdenv;
};
# linuxPackages_cachyos-server-lto = super.${namespace}.linuxPackages_cachyos-server-lto.override {
# stdenv = clangCcacheStdenv;
# };
# linuxPackages_cachyos-server-lto-znver4 =
# super.${namespace}.linuxPackages_cachyos-server-lto-znver4.override
# { stdenv = clangCcacheStdenv; };
linuxPackages_cachyos-rc = super.${namespace}.linuxPackages_cachyos-rc.override {
stdenv = super.ccacheStdenv;
};
# linuxPackages_cachyos-rc-lto = super.${namespace}.linuxPackages_cachyos-rc-lto.override {
# stdenv = clangCcacheStdenv;
# };
# linuxPackages_cachyos-rc-lto-znver4 =
# super.${namespace}.linuxPackages_cachyos-rc-lto-znver4.override
# { stdenv = clangCcacheStdenv; };
linuxPackages_cachyos-hardened = super.${namespace}.linuxPackages_cachyos-hardened.override {
stdenv = super.ccacheStdenv;
};
# linuxPackages_cachyos-hardened-lto =
# super.${namespace}.linuxPackages_cachyos-hardened-lto.override
# { stdenv = clangCcacheStdenv; };
# linuxPackages_cachyos-hardened-lto-znver4 =
# super.${namespace}.linuxPackages_cachyos-hardened-lto-znver4.override
# { stdenv = clangCcacheStdenv; };
linuxPackages_cachyos-deckify = super.${namespace}.linuxPackages_cachyos-deckify.override {
stdenv = super.ccacheStdenv;
};
linuxPackages_cachyos-deckify-lto = super.${namespace}.linuxPackages_cachyos-deckify-lto.override {
stdenv = clangCcacheStdenv;
};
};
})
(_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 ];