why the fuck was i zeroing the stats?

switched to socketed sccache server
wrote a systemd service to spin that socket up
This commit is contained in:
TheK0tYaRa 2026-03-09 07:44:09 +02:00
parent d6ac6c94b6
commit 374c73c925
2 changed files with 32 additions and 3 deletions

View file

@ -6,6 +6,7 @@
kernelPatches ? [ ],
extraConfig ? "",
sccacheDir ? "/var/cache/sccache",
sccacheServerUds ? "/run/sccache/server.sock",
enforceSccache ? true,
}:
@ -62,6 +63,7 @@ pkgs.callPackage (
pkgs.writeShellScriptBin name ''
set -euo pipefail
export SCCACHE_DIR=${lib.escapeShellArg sccacheDir}
export SCCACHE_SERVER_UDS=${lib.escapeShellArg sccacheServerUds}
if [ -n "''${SCCACHE_ENFORCE_MARKER-}" ]; then
: > "''${SCCACHE_ENFORCE_MARKER}"
fi
@ -74,6 +76,7 @@ pkgs.callPackage (
rustcSccache = pkgs.writeShellScriptBin "rustc" ''
set -euo pipefail
export SCCACHE_DIR=${lib.escapeShellArg sccacheDir}
export SCCACHE_SERVER_UDS=${lib.escapeShellArg sccacheServerUds}
if [ -n "''${SCCACHE_ENFORCE_MARKER-}" ]; then
: > "''${SCCACHE_ENFORCE_MARKER}"
fi
@ -83,6 +86,7 @@ pkgs.callPackage (
hostrustcSccache = pkgs.writeShellScriptBin "rustc" ''
set -euo pipefail
export SCCACHE_DIR=${lib.escapeShellArg sccacheDir}
export SCCACHE_SERVER_UDS=${lib.escapeShellArg sccacheServerUds}
if [ -n "''${SCCACHE_ENFORCE_MARKER-}" ]; then
: > "''${SCCACHE_ENFORCE_MARKER}"
fi
@ -131,18 +135,19 @@ pkgs.callPackage (
]
;
# Start with clean stats so the build-phase check reports only this build.
preBuild =
(args.preBuild or "")
+ lib.optionalString enforceSccache ''
${pkgs.sccache}/bin/sccache --start-server || true
${pkgs.sccache}/bin/sccache --zero-stats || true
export SCCACHE_DIR=${lib.escapeShellArg sccacheDir}
export SCCACHE_SERVER_UDS=${lib.escapeShellArg sccacheServerUds}
'';
buildPhase =
if enforceSccache then
''
runHook preBuild
export SCCACHE_DIR=${lib.escapeShellArg sccacheDir}
export SCCACHE_SERVER_UDS=${lib.escapeShellArg sccacheServerUds}
export SCCACHE_ENFORCE_MARKER="$NIX_BUILD_TOP/.sccache-used"
rm -f "$SCCACHE_ENFORCE_MARKER"
make "''${makeFlags[@]}" "''${buildFlags[@]}"

View file

@ -113,6 +113,7 @@
"thek0tyara"
];
extra-sandbox-paths = [
"/run/sccache"
"/var/cache/sccache"
];
download-buffer-size = 160000000;
@ -121,6 +122,29 @@
# setgid, чтобы файлы/папки сохраняли группу nixbld
"d /var/cache/sccache 2770 root nixbld - -"
];
systemd.services.sccache = {
description = "Shared sccache server for Nix builds";
after = [ "local-fs.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Type = "simple";
User = "root";
Group = "nixbld";
RuntimeDirectory = "sccache";
RuntimeDirectoryMode = "0770";
UMask = "0007";
ExecStart = "${pkgs.sccache}/bin/sccache";
Restart = "always";
RestartSec = 2;
};
environment = {
SCCACHE_DIR = "/var/cache/sccache";
SCCACHE_SERVER_UDS = "/run/sccache/server.sock";
SCCACHE_IDLE_TIMEOUT = "0";
SCCACHE_START_SERVER = "1";
SCCACHE_NO_DAEMON = "1";
};
};
boot = {
loader = {
systemd-boot.enable = true;