Compare commits
4 commits
7fa7351aa7
...
ae936d55e3
| Author | SHA1 | Date | |
|---|---|---|---|
| ae936d55e3 | |||
| 9831a10505 | |||
| 8f97a15738 | |||
| 339ef75baf |
7 changed files with 865 additions and 432 deletions
|
|
@ -123,6 +123,9 @@
|
||||||
CONTEXT_SWITCH_TRACER = lib.mkForce no;
|
CONTEXT_SWITCH_TRACER = lib.mkForce no;
|
||||||
SCHED_TRACER = lib.mkForce no;
|
SCHED_TRACER = lib.mkForce no;
|
||||||
STACK_TRACER = lib.mkForce no;
|
STACK_TRACER = lib.mkForce no;
|
||||||
|
#
|
||||||
|
CXL = no;
|
||||||
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -73,23 +73,26 @@ let
|
||||||
dir = "${sccacheDir}"
|
dir = "${sccacheDir}"
|
||||||
size = "100G"
|
size = "100G"
|
||||||
'';
|
'';
|
||||||
sccacheSetup = lib.optionalString enforceSccache ''
|
|
||||||
mkdir -p ${lib.escapeShellArg sccacheDir} 2>/dev/null || true
|
|
||||||
export SCCACHE_CONF=${lib.escapeShellArg sccacheConfig}
|
|
||||||
${lib.optionalString (sccacheServerUds != null) "export SCCACHE_SERVER_UDS=${lib.escapeShellArg sccacheServerUds}"}
|
|
||||||
'';
|
|
||||||
|
|
||||||
mkSccacheWrapper =
|
mkSccacheWrapper =
|
||||||
name: compiler:
|
name: compiler:
|
||||||
pkgs.writeShellScriptBin name ''
|
pkgs.runCommand "${name}-sccache-wrapper"
|
||||||
set -euo pipefail
|
{
|
||||||
mkdir -p ${lib.escapeShellArg sccacheDir} 2>/dev/null || true
|
passthru.meta.mainProgram = name;
|
||||||
export SCCACHE_CONF=${lib.escapeShellArg sccacheConfig}
|
}
|
||||||
${lib.optionalString (sccacheServerUds != null) "export SCCACHE_SERVER_UDS=${lib.escapeShellArg sccacheServerUds}"}
|
''
|
||||||
if [ -n "''${SCCACHE_ENFORCE_MARKER-}" ]; then
|
mkdir -p $out/bin
|
||||||
: > "''${SCCACHE_ENFORCE_MARKER}"
|
cat > $out/bin/${name} <<'WRAP'
|
||||||
fi
|
#!${pkgs.bash}/bin/bash
|
||||||
exec ${pkgs.sccache}/bin/sccache ${compiler} "$@"
|
exec ${pkgs.sccache}/bin/sccache ${compiler} "$@"
|
||||||
|
WRAP
|
||||||
|
chmod +x $out/bin/${name}
|
||||||
|
'';
|
||||||
|
sccacheSetup = lib.optionalString enforceSccache ''
|
||||||
|
mkdir -p ${lib.escapeShellArg sccacheDir} 2>/dev/null || true
|
||||||
|
mkdir -p "$NIX_BUILD_TOP/.sccache/preprocessor" 2>/dev/null || true
|
||||||
|
export SCCACHE_CONF=${lib.escapeShellArg sccacheConfig}
|
||||||
|
export SCCACHE_LOCAL_PREPROCESSOR_CACHE_DIR="$NIX_BUILD_TOP/.sccache/preprocessor"
|
||||||
|
export SCCACHE_NO_DAEMON=1
|
||||||
'';
|
'';
|
||||||
|
|
||||||
clangSccache = mkSccacheWrapper "clang" realClang;
|
clangSccache = mkSccacheWrapper "clang" realClang;
|
||||||
|
|
@ -98,8 +101,13 @@ let
|
||||||
rustcSccache = pkgs.writeShellScriptBin "rustc" ''
|
rustcSccache = pkgs.writeShellScriptBin "rustc" ''
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
mkdir -p ${lib.escapeShellArg sccacheDir} 2>/dev/null || true
|
mkdir -p ${lib.escapeShellArg sccacheDir} 2>/dev/null || true
|
||||||
|
mkdir -p "$NIX_BUILD_TOP/.sccache/preprocessor" 2>/dev/null || true
|
||||||
export SCCACHE_CONF=${lib.escapeShellArg sccacheConfig}
|
export SCCACHE_CONF=${lib.escapeShellArg sccacheConfig}
|
||||||
${lib.optionalString (sccacheServerUds != null) "export SCCACHE_SERVER_UDS=${lib.escapeShellArg sccacheServerUds}"}
|
export SCCACHE_LOCAL_PREPROCESSOR_CACHE_DIR="$NIX_BUILD_TOP/.sccache/preprocessor"
|
||||||
|
export SCCACHE_NO_DAEMON=1
|
||||||
|
${lib.optionalString (
|
||||||
|
sccacheServerUds != null
|
||||||
|
) "export SCCACHE_SERVER_UDS=${lib.escapeShellArg sccacheServerUds}"}
|
||||||
if [ -n "''${SCCACHE_ENFORCE_MARKER-}" ]; then
|
if [ -n "''${SCCACHE_ENFORCE_MARKER-}" ]; then
|
||||||
: > "''${SCCACHE_ENFORCE_MARKER}"
|
: > "''${SCCACHE_ENFORCE_MARKER}"
|
||||||
fi
|
fi
|
||||||
|
|
@ -109,12 +117,13 @@ let
|
||||||
hostrustcSccache = pkgs.writeShellScriptBin "rustc" ''
|
hostrustcSccache = pkgs.writeShellScriptBin "rustc" ''
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
mkdir -p ${lib.escapeShellArg sccacheDir} 2>/dev/null || true
|
mkdir -p ${lib.escapeShellArg sccacheDir} 2>/dev/null || true
|
||||||
|
mkdir -p "$NIX_BUILD_TOP/.sccache/preprocessor" 2>/dev/null || true
|
||||||
export SCCACHE_CONF=${lib.escapeShellArg sccacheConfig}
|
export SCCACHE_CONF=${lib.escapeShellArg sccacheConfig}
|
||||||
${lib.optionalString (sccacheServerUds != null) "export SCCACHE_SERVER_UDS=${lib.escapeShellArg sccacheServerUds}"}
|
export SCCACHE_LOCAL_PREPROCESSOR_CACHE_DIR="$NIX_BUILD_TOP/.sccache/preprocessor"
|
||||||
if [ -n "''${SCCACHE_ENFORCE_MARKER-}" ]; then
|
export SCCACHE_NO_DAEMON=1
|
||||||
: > "''${SCCACHE_ENFORCE_MARKER}"
|
${lib.optionalString (
|
||||||
fi
|
sccacheServerUds != null
|
||||||
exec ${pkgs.sccache}/bin/sccache ${realHostRustc} "$@"
|
) "export SCCACHE_SERVER_UDS=${lib.escapeShellArg sccacheServerUds}"}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
structuredExtraConfig' =
|
structuredExtraConfig' =
|
||||||
|
|
@ -125,7 +134,7 @@ let
|
||||||
})
|
})
|
||||||
// structuredExtraConfig;
|
// structuredExtraConfig;
|
||||||
in
|
in
|
||||||
buildLinux (
|
(buildLinux (
|
||||||
args
|
args
|
||||||
// {
|
// {
|
||||||
kernelPatches = kernelPatches';
|
kernelPatches = kernelPatches';
|
||||||
|
|
@ -138,12 +147,10 @@ buildLinux (
|
||||||
stdenv = llvm.stdenv;
|
stdenv = llvm.stdenv;
|
||||||
buildPackages = llvmBuildPackages;
|
buildPackages = llvmBuildPackages;
|
||||||
|
|
||||||
extraMakeFlags =
|
extraMakeFlags = (args.extraMakeFlags or [ ]) ++ [
|
||||||
(args.extraMakeFlags or [ ])
|
|
||||||
++ [
|
|
||||||
"LLVM=1"
|
"LLVM=1"
|
||||||
"LLVM_IAS=1"
|
"LLVM_IAS=1"
|
||||||
"CC=${if enforceSccache then lib.getExe clangSccache else realClang}"
|
"CC=${lib.getExe clangSccache}"
|
||||||
"LD=${realLd}"
|
"LD=${realLd}"
|
||||||
"AR=${realAr}"
|
"AR=${realAr}"
|
||||||
"NM=${realNm}"
|
"NM=${realNm}"
|
||||||
|
|
@ -151,42 +158,13 @@ buildLinux (
|
||||||
"OBJCOPY=${realObjcopy}"
|
"OBJCOPY=${realObjcopy}"
|
||||||
"OBJDUMP=${realObjdump}"
|
"OBJDUMP=${realObjdump}"
|
||||||
"READELF=${realReadelf}"
|
"READELF=${realReadelf}"
|
||||||
"HOSTCC=${if enforceSccache then lib.getExe hostccSccache else realHostCC}"
|
"HOSTCC=${lib.getExe hostccSccache}"
|
||||||
"HOSTCXX=${if enforceSccache then lib.getExe hostcxxSccache else realHostCXX}"
|
"HOSTCXX=${lib.getExe hostcxxSccache}"
|
||||||
"HOSTAR=${realHostAr}"
|
"HOSTAR=${realHostAr}"
|
||||||
"HOSTLD=${realHostLd}"
|
"HOSTLD=${realHostLd}"
|
||||||
"RUSTC=${if enforceSccache then lib.getExe rustcSccache else realRustc}"
|
"RUSTC=${lib.getExe rustcSccache}"
|
||||||
"HOSTRUSTC=${if enforceSccache then lib.getExe hostrustcSccache else realHostRustc}"
|
"HOSTRUSTC=${lib.getExe hostrustcSccache}"
|
||||||
]
|
];
|
||||||
;
|
|
||||||
|
|
||||||
preConfigure = (args.preConfigure or "") + sccacheSetup;
|
|
||||||
|
|
||||||
preBuild = (args.preBuild or "") + sccacheSetup;
|
|
||||||
|
|
||||||
buildPhase =
|
|
||||||
if enforceSccache then
|
|
||||||
''
|
|
||||||
runHook preBuild
|
|
||||||
export SCCACHE_ENFORCE_MARKER="$NIX_BUILD_TOP/.sccache-used"
|
|
||||||
rm -f "$SCCACHE_ENFORCE_MARKER"
|
|
||||||
make "''${makeFlags[@]}" "''${buildFlags[@]}"
|
|
||||||
if [ ! -e "$SCCACHE_ENFORCE_MARKER" ]; then
|
|
||||||
echo "FATAL: sccache enforcement failed during buildPhase: compiler wrappers were not invoked."
|
|
||||||
echo "This means the build stage did not use your CC/HOSTCC/HOSTCXX/RUSTC/HOSTRUSTC overrides."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
${pkgs.sccache}/bin/sccache --show-stats --stats-format text || true
|
|
||||||
runHook postBuild
|
|
||||||
''
|
|
||||||
else
|
|
||||||
(args.buildPhase or ''
|
|
||||||
runHook preBuild
|
|
||||||
make "''${makeFlags[@]}" "''${buildFlags[@]}"
|
|
||||||
runHook postBuild
|
|
||||||
'');
|
|
||||||
|
|
||||||
postBuild = args.postBuild or "";
|
|
||||||
|
|
||||||
structuredExtraConfig = structuredExtraConfig';
|
structuredExtraConfig = structuredExtraConfig';
|
||||||
|
|
||||||
|
|
@ -194,4 +172,51 @@ buildLinux (
|
||||||
|
|
||||||
extraMeta.branch = "${V}.${P}";
|
extraMeta.branch = "${V}.${P}";
|
||||||
}
|
}
|
||||||
)
|
)).overrideAttrs
|
||||||
|
(old: {
|
||||||
|
__noChroot = true;
|
||||||
|
postPatch =
|
||||||
|
(old.postPatch or "")
|
||||||
|
+ sccacheSetup
|
||||||
|
+ lib.optionalString enforceSccache ''
|
||||||
|
# -- Sccache caching smoke test --
|
||||||
|
echo "==> Testing sccache caching..."
|
||||||
|
SCCACHE_TEST_SRC="$NIX_BUILD_TOP/.sccache-test.c"
|
||||||
|
SCCACHE_TEST_OBJ="$NIX_BUILD_TOP/.sccache-test.o"
|
||||||
|
SCCACHE_TEST_ID=$(date +%s%N)
|
||||||
|
printf '// sccache smoke test %s\nint main(void) { return 0; }\n' "$SCCACHE_TEST_ID" > "$SCCACHE_TEST_SRC"
|
||||||
|
${pkgs.sccache}/bin/sccache --zero-stats >/dev/null 2>&1 || true
|
||||||
|
|
||||||
|
${lib.getExe clangSccache} -c "$SCCACHE_TEST_SRC" -o "$SCCACHE_TEST_OBJ" 2>&1
|
||||||
|
STATS1=$(${pkgs.sccache}/bin/sccache --show-stats --stats-format json 2>/dev/null || echo '{}')
|
||||||
|
COMPILED=$(echo "$STATS1" | ${pkgs.jq}/bin/jq '[.stats.cache_hits.counts // {}, .stats.cache_misses.counts // {}] | add | to_entries | map(.value) | add // 0' 2>/dev/null || echo 0)
|
||||||
|
WRITE_ERRORS=$(echo "$STATS1" | ${pkgs.jq}/bin/jq '.stats.cache_errors.counts // {} | to_entries | map(.value) | add // 0' 2>/dev/null || echo 0)
|
||||||
|
|
||||||
|
if [ "$COMPILED" -lt 1 ]; then
|
||||||
|
echo "FATAL: sccache first compile was not cached."
|
||||||
|
${pkgs.sccache}/bin/sccache --show-stats --stats-format text || true
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ "$WRITE_ERRORS" -gt 0 ]; then
|
||||||
|
echo "FATAL: sccache cache write errors detected ($WRITE_ERRORS)."
|
||||||
|
${pkgs.sccache}/bin/sccache --show-stats --stats-format text || true
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "==> sccache first compile OK (cached=$COMPILED, write_errors=$WRITE_ERRORS)"
|
||||||
|
|
||||||
|
rm -f "$SCCACHE_TEST_OBJ"
|
||||||
|
${lib.getExe clangSccache} -c "$SCCACHE_TEST_SRC" -o "$SCCACHE_TEST_OBJ" 2>&1
|
||||||
|
STATS2=$(${pkgs.sccache}/bin/sccache --show-stats --stats-format json 2>/dev/null || echo '{}')
|
||||||
|
HITS=$(echo "$STATS2" | ${pkgs.jq}/bin/jq '.stats.cache_hits.counts // {} | to_entries | map(.value) | add // 0' 2>/dev/null || echo 0)
|
||||||
|
|
||||||
|
if [ "$HITS" -lt 1 ]; then
|
||||||
|
echo "FATAL: sccache second compile did not hit cache."
|
||||||
|
${pkgs.sccache}/bin/sccache --show-stats --stats-format text || true
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "==> sccache cache hit OK (hits=$HITS)"
|
||||||
|
rm -f "$SCCACHE_TEST_SRC" "$SCCACHE_TEST_OBJ"
|
||||||
|
${pkgs.sccache}/bin/sccache --zero-stats >/dev/null 2>&1 || true
|
||||||
|
# -- End sccache caching smoke test --
|
||||||
|
'';
|
||||||
|
})
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,22 @@ final: prev:
|
||||||
let
|
let
|
||||||
winePkg = final.wineWow64Packages.full;
|
winePkg = final.wineWow64Packages.full;
|
||||||
sandboxSccacheDir = "/var/cache/sccache/nix-builds/packages";
|
sandboxSccacheDir = "/var/cache/sccache/nix-builds/packages";
|
||||||
|
# Toggle this to switch between shared socketed sccache and per-build daemon mode.
|
||||||
|
# Shared socketed mode still fails for sandboxed package builds; keep disabled.
|
||||||
|
useSocketedSccache = false;
|
||||||
|
sharedSccacheServerUds = "/run/sccache/server.sock";
|
||||||
|
effectiveSccacheServerUds = if useSocketedSccache then sharedSccacheServerUds else null;
|
||||||
|
sccacheRuntimeModeSetup = ''
|
||||||
|
unset SCCACHE_NO_DAEMON
|
||||||
|
${final.lib.optionalString (effectiveSccacheServerUds != null) ''
|
||||||
|
export SCCACHE_SERVER_UDS=${final.lib.escapeShellArg effectiveSccacheServerUds}
|
||||||
|
unset SCCACHE_IDLE_TIMEOUT
|
||||||
|
''}
|
||||||
|
${final.lib.optionalString (effectiveSccacheServerUds == null) ''
|
||||||
|
unset SCCACHE_SERVER_UDS
|
||||||
|
export SCCACHE_IDLE_TIMEOUT=0
|
||||||
|
''}
|
||||||
|
'';
|
||||||
sharedSccacheConfig = final.writeText "sccache.conf" ''
|
sharedSccacheConfig = final.writeText "sccache.conf" ''
|
||||||
[cache.disk]
|
[cache.disk]
|
||||||
dir = "${sandboxSccacheDir}"
|
dir = "${sandboxSccacheDir}"
|
||||||
|
|
@ -82,9 +98,10 @@ let
|
||||||
{
|
{
|
||||||
name,
|
name,
|
||||||
sccacheDir ? null,
|
sccacheDir ? null,
|
||||||
sccacheServerUds ? null,
|
sccacheServerUds ? effectiveSccacheServerUds,
|
||||||
sccacheCacheSize ? "100G",
|
sccacheCacheSize ? "100G",
|
||||||
noDaemon ? false,
|
noDaemon ? false,
|
||||||
|
bypassIfCmakeLauncher ? false,
|
||||||
passthroughWrappedCompiler ? false,
|
passthroughWrappedCompiler ? false,
|
||||||
extraSetup ? "",
|
extraSetup ? "",
|
||||||
}:
|
}:
|
||||||
|
|
@ -125,7 +142,18 @@ let
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
has_cmake_compiler_launcher() {
|
||||||
|
[ -n "''${CMAKE_C_COMPILER_LAUNCHER:-}" ] \
|
||||||
|
|| [ -n "''${CMAKE_CXX_COMPILER_LAUNCHER:-}" ] \
|
||||||
|
|| [ -n "''${CMAKE_Fortran_COMPILER_LAUNCHER:-}" ] \
|
||||||
|
|| [ -n "''${CMAKE_CUDA_COMPILER_LAUNCHER:-}" ] \
|
||||||
|
|| [ -n "''${CMAKE_HIP_COMPILER_LAUNCHER:-}" ] \
|
||||||
|
|| [ -n "''${CMAKE_OBJC_COMPILER_LAUNCHER:-}" ] \
|
||||||
|
|| [ -n "''${CMAKE_OBJCXX_COMPILER_LAUNCHER:-}" ]
|
||||||
|
}
|
||||||
|
|
||||||
export SCCACHE_CONF=${final.lib.escapeShellArg effectiveSccacheConfig}
|
export SCCACHE_CONF=${final.lib.escapeShellArg effectiveSccacheConfig}
|
||||||
|
mkdir -p ${final.lib.escapeShellArg sandboxSccacheDir}
|
||||||
unset SCCACHE_START_SERVER
|
unset SCCACHE_START_SERVER
|
||||||
${final.lib.optionalString noDaemon ''
|
${final.lib.optionalString noDaemon ''
|
||||||
export SCCACHE_NO_DAEMON=1
|
export SCCACHE_NO_DAEMON=1
|
||||||
|
|
@ -134,15 +162,24 @@ let
|
||||||
${final.lib.optionalString (!noDaemon && sccacheServerUds != null) ''
|
${final.lib.optionalString (!noDaemon && sccacheServerUds != null) ''
|
||||||
export SCCACHE_SERVER_UDS=${final.lib.escapeShellArg sccacheServerUds}
|
export SCCACHE_SERVER_UDS=${final.lib.escapeShellArg sccacheServerUds}
|
||||||
''}
|
''}
|
||||||
|
${final.lib.optionalString (!noDaemon && sccacheServerUds == null) ''
|
||||||
|
unset SCCACHE_SERVER_UDS
|
||||||
|
unset SCCACHE_NO_DAEMON
|
||||||
|
''}
|
||||||
${extraSetup}
|
${extraSetup}
|
||||||
if [ "$#" -eq 0 ] || [ "''${1#-}" != "$1" ]; then
|
if [ "$#" -eq 0 ]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
if [ "''${1#-}" != "$1" ]; then
|
||||||
exec ${final.sccache}/bin/sccache "$@"
|
exec ${final.sccache}/bin/sccache "$@"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
compiler="$1"
|
compiler="$1"
|
||||||
shift
|
shift
|
||||||
|
|
||||||
if [ "''${SCCACHE_WRAPPED_COMPILER_PASSTHROUGH:-}" = 1 ] || {
|
if [ "''${SCCACHE_WRAPPED_COMPILER_PASSTHROUGH:-}" = 1 ] \
|
||||||
|
|| { [ ${if bypassIfCmakeLauncher then "1" else "0"} -eq 1 ] && has_cmake_compiler_launcher; } \
|
||||||
|
|| {
|
||||||
is_cmake_derivation && is_cmake_probe_invocation "$@"
|
is_cmake_derivation && is_cmake_probe_invocation "$@"
|
||||||
}; then
|
}; then
|
||||||
exec "$compiler" "$@"
|
exec "$compiler" "$@"
|
||||||
|
|
@ -156,33 +193,18 @@ let
|
||||||
buildSccacheLauncher = mkSccacheLauncher {
|
buildSccacheLauncher = mkSccacheLauncher {
|
||||||
name = "build-sccache";
|
name = "build-sccache";
|
||||||
};
|
};
|
||||||
mkBuildSccacheAttrs =
|
mkBuildSccacheAttrs = old: {
|
||||||
old:
|
|
||||||
{
|
|
||||||
nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ buildSccacheLauncher ];
|
nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ buildSccacheLauncher ];
|
||||||
|
|
||||||
preConfigure = (old.preConfigure or "") + ''
|
preConfigure = (old.preConfigure or "") + ''
|
||||||
|
|
||||||
mkdir -p ${final.lib.escapeShellArg sandboxSccacheDir}
|
mkdir -p ${final.lib.escapeShellArg sandboxSccacheDir}
|
||||||
export SCCACHE_SERVER_UDS="$TMPDIR/sccache/server.sock"
|
${sccacheRuntimeModeSetup}
|
||||||
export SCCACHE_IDLE_TIMEOUT=0
|
|
||||||
unset SCCACHE_NO_DAEMON
|
|
||||||
mkdir -p "$(dirname "$SCCACHE_SERVER_UDS")"
|
|
||||||
if ! ${buildSccacheLauncher}/bin/build-sccache --show-stats >/dev/null 2>&1; then
|
|
||||||
rm -f "$SCCACHE_SERVER_UDS"
|
|
||||||
if ! ${buildSccacheLauncher}/bin/build-sccache --start-server >/tmp/sccache-start.log 2>&1; then
|
|
||||||
if ! grep -Fq "Address already in use" /tmp/sccache-start.log; then
|
|
||||||
cat /tmp/sccache-start.log >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
postBuild = (old.postBuild or "") + ''
|
postBuild = (old.postBuild or "") + ''
|
||||||
|
|
||||||
${buildSccacheLauncher}/bin/build-sccache --show-stats --stats-format text || true
|
${buildSccacheLauncher}/bin/build-sccache --show-stats --stats-format text || true
|
||||||
${buildSccacheLauncher}/bin/build-sccache --stop-server || true
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
mkCmakeSccacheAttrs =
|
mkCmakeSccacheAttrs =
|
||||||
|
|
@ -204,19 +226,7 @@ let
|
||||||
preConfigure = (old.preConfigure or "") + ''
|
preConfigure = (old.preConfigure or "") + ''
|
||||||
mkdir -p ${final.lib.escapeShellArg sandboxSccacheDir}
|
mkdir -p ${final.lib.escapeShellArg sandboxSccacheDir}
|
||||||
export SCCACHE_WRAPPED_COMPILER_PASSTHROUGH=1
|
export SCCACHE_WRAPPED_COMPILER_PASSTHROUGH=1
|
||||||
export SCCACHE_SERVER_UDS="$TMPDIR/sccache/server.sock"
|
${sccacheRuntimeModeSetup}
|
||||||
export SCCACHE_IDLE_TIMEOUT=0
|
|
||||||
unset SCCACHE_NO_DAEMON
|
|
||||||
mkdir -p "$(dirname "$SCCACHE_SERVER_UDS")"
|
|
||||||
if ! ${sccacheLauncher}/bin/cmake-sccache --show-stats >/dev/null 2>&1; then
|
|
||||||
rm -f "$SCCACHE_SERVER_UDS"
|
|
||||||
if ! ${sccacheLauncher}/bin/cmake-sccache --start-server >/tmp/sccache-start.log 2>&1; then
|
|
||||||
if ! grep -Fq "Address already in use" /tmp/sccache-start.log; then
|
|
||||||
cat /tmp/sccache-start.log >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
postConfigure = (old.postConfigure or "") + ''
|
postConfigure = (old.postConfigure or "") + ''
|
||||||
|
|
@ -226,9 +236,24 @@ let
|
||||||
postBuild = (old.postBuild or "") + ''
|
postBuild = (old.postBuild or "") + ''
|
||||||
|
|
||||||
${sccacheLauncher}/bin/cmake-sccache --show-stats --stats-format text || true
|
${sccacheLauncher}/bin/cmake-sccache --show-stats --stats-format text || true
|
||||||
${sccacheLauncher}/bin/cmake-sccache --stop-server || true
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
mkCmakeSccacheWithLlvmTargetAttrs =
|
||||||
|
llvmTarget: old:
|
||||||
|
let
|
||||||
|
base = mkCmakeSccacheAttrs old;
|
||||||
|
targetFlag = "-DLLVM_TARGETS_TO_BUILD=${llvmTarget}";
|
||||||
|
hasTargetFlag = flag: final.lib.hasPrefix "-DLLVM_TARGETS_TO_BUILD=" flag;
|
||||||
|
replacedFlags = map (flag: if hasTargetFlag flag then targetFlag else flag) (
|
||||||
|
base.cmakeFlags or [ ]
|
||||||
|
);
|
||||||
|
withTargetFlag =
|
||||||
|
replacedFlags ++ final.lib.optional (!(final.lib.any hasTargetFlag replacedFlags)) targetFlag;
|
||||||
|
in
|
||||||
|
base
|
||||||
|
// {
|
||||||
|
cmakeFlags = withTargetFlag;
|
||||||
|
};
|
||||||
mkSccacheExtraConfig =
|
mkSccacheExtraConfig =
|
||||||
{
|
{
|
||||||
sccacheDir ? sandboxSccacheDir,
|
sccacheDir ? sandboxSccacheDir,
|
||||||
|
|
@ -243,8 +268,7 @@ let
|
||||||
size = "100G"
|
size = "100G"
|
||||||
''
|
''
|
||||||
)}
|
)}
|
||||||
export SCCACHE_NO_DAEMON=1
|
${sccacheRuntimeModeSetup}
|
||||||
unset SCCACHE_SERVER_UDS
|
|
||||||
${extraConfig}
|
${extraConfig}
|
||||||
'';
|
'';
|
||||||
mkWrappedCcForSccache =
|
mkWrappedCcForSccache =
|
||||||
|
|
@ -271,14 +295,12 @@ let
|
||||||
sccacheDir ? "/var/cache/sccache/nix-builds/packages",
|
sccacheDir ? "/var/cache/sccache/nix-builds/packages",
|
||||||
extraConfig ? "",
|
extraConfig ? "",
|
||||||
}:
|
}:
|
||||||
final.overrideCC stdenv (
|
final.overrideCC stdenv (mkWrappedCcForSccache {
|
||||||
mkWrappedCcForSccache {
|
|
||||||
inherit (stdenv) cc;
|
inherit (stdenv) cc;
|
||||||
extraConfig = mkSccacheExtraConfig {
|
extraConfig = mkSccacheExtraConfig {
|
||||||
inherit extraConfig sccacheDir;
|
inherit extraConfig sccacheDir;
|
||||||
};
|
};
|
||||||
}
|
});
|
||||||
);
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
sccache = modify prev.sccache (old: {
|
sccache = modify prev.sccache (old: {
|
||||||
|
|
@ -289,13 +311,23 @@ in
|
||||||
' take_arg!("-isystem", PathBuf, CanBeSeparated, PreprocessorArgumentPath),
|
' take_arg!("-isystem", PathBuf, CanBeSeparated, PreprocessorArgumentPath),
|
||||||
take_arg!("-cxx-isystem", PathBuf, CanBeSeparated, PreprocessorArgumentPath),'
|
take_arg!("-cxx-isystem", PathBuf, CanBeSeparated, PreprocessorArgumentPath),'
|
||||||
'';
|
'';
|
||||||
|
env = (old.env or { }) // {
|
||||||
|
RUSTC_WRAPPER = "${prev.sccache}/bin/sccache";
|
||||||
|
SCCACHE_CONF = sharedSccacheConfig;
|
||||||
|
};
|
||||||
|
preBuild = (old.preBuild or "") + ''
|
||||||
|
mkdir -p ${final.lib.escapeShellArg sandboxSccacheDir}
|
||||||
|
'';
|
||||||
passthru = (old.passthru or { }) // {
|
passthru = (old.passthru or { }) // {
|
||||||
links =
|
links =
|
||||||
{ unwrappedCC, extraConfig ? "" }:
|
{
|
||||||
|
unwrappedCC,
|
||||||
|
extraConfig ? "",
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
sccacheLauncher = mkSccacheLauncher {
|
sccacheLauncher = mkSccacheLauncher {
|
||||||
name = "wrapped-sccache";
|
name = "wrapped-sccache";
|
||||||
noDaemon = true;
|
bypassIfCmakeLauncher = true;
|
||||||
extraSetup = extraConfig;
|
extraSetup = extraConfig;
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
|
|
@ -308,7 +340,8 @@ in
|
||||||
isSccache = true;
|
isSccache = true;
|
||||||
dev = unwrappedCC.dev or null;
|
dev = unwrappedCC.dev or null;
|
||||||
lib = unwrappedCC.lib or (final.lib.getLib unwrappedCC);
|
lib = unwrappedCC.lib or (final.lib.getLib unwrappedCC);
|
||||||
} // final.lib.optionalAttrs (unwrappedCC ? rsrc) {
|
}
|
||||||
|
// final.lib.optionalAttrs (unwrappedCC ? rsrc) {
|
||||||
inherit (unwrappedCC) rsrc;
|
inherit (unwrappedCC) rsrc;
|
||||||
};
|
};
|
||||||
dev = unwrappedCC.dev or null;
|
dev = unwrappedCC.dev or null;
|
||||||
|
|
@ -362,7 +395,8 @@ in
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
sccacheWrapper =
|
sccacheWrapper =
|
||||||
final.lib.makeOverridable (
|
final.lib.makeOverridable
|
||||||
|
(
|
||||||
{
|
{
|
||||||
extraConfig ? "",
|
extraConfig ? "",
|
||||||
cc,
|
cc,
|
||||||
|
|
@ -370,36 +404,69 @@ in
|
||||||
mkWrappedCcForSccache {
|
mkWrappedCcForSccache {
|
||||||
inherit cc extraConfig;
|
inherit cc extraConfig;
|
||||||
}
|
}
|
||||||
) {
|
)
|
||||||
|
{
|
||||||
extraConfig = "";
|
extraConfig = "";
|
||||||
inherit (final.stdenv) cc;
|
inherit (final.stdenv) cc;
|
||||||
};
|
};
|
||||||
sccacheStdenv = final.lib.lowPrio (
|
sccacheStdenv = final.lib.lowPrio (
|
||||||
final.lib.makeOverridable (
|
final.lib.makeOverridable
|
||||||
|
(
|
||||||
{
|
{
|
||||||
stdenv,
|
stdenv,
|
||||||
...
|
...
|
||||||
}@extraArgs:
|
}@extraArgs:
|
||||||
final.overrideCC stdenv (
|
final.overrideCC stdenv (
|
||||||
final.buildPackages.sccacheWrapper.override (
|
final.buildPackages.sccacheWrapper.override (
|
||||||
{ inherit (stdenv) cc; }
|
{
|
||||||
|
inherit (stdenv) cc;
|
||||||
|
}
|
||||||
// final.lib.optionalAttrs (builtins.hasAttr "extraConfig" extraArgs) {
|
// final.lib.optionalAttrs (builtins.hasAttr "extraConfig" extraArgs) {
|
||||||
extraConfig = extraArgs.extraConfig;
|
extraConfig = extraArgs.extraConfig;
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
) {
|
)
|
||||||
|
{
|
||||||
inherit (final) stdenv;
|
inherit (final) stdenv;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
sccache-config = sharedSccacheConfig;
|
sccache-config = sharedSccacheConfig;
|
||||||
intel-sycl = modify prev."intel-sycl" (
|
intel-sycl = modify prev.intel-sycl (
|
||||||
syFinal: syPrev: {
|
syFinal: syPrev:
|
||||||
llvm = modify syPrev.llvm mkCmakeSccacheAttrs;
|
let
|
||||||
lld = modify syPrev.lld mkCmakeSccacheAttrs;
|
llvmTargetForHost =
|
||||||
stdenv = mkSccacheStdenv {
|
if syFinal.stdenv.hostPlatform.isx86_64 || syFinal.stdenv.hostPlatform.isi686 then
|
||||||
stdenv = syPrev.stdenv;
|
"X86"
|
||||||
|
else if syFinal.stdenv.hostPlatform.isAarch64 then
|
||||||
|
"AArch64"
|
||||||
|
else if syFinal.stdenv.hostPlatform.isRiscV64 then
|
||||||
|
"RISCV"
|
||||||
|
else if syFinal.stdenv.hostPlatform.isPower64 then
|
||||||
|
"PowerPC"
|
||||||
|
else
|
||||||
|
"Native";
|
||||||
|
sccacheWrappedDpcpp = final.sccache.links {
|
||||||
|
unwrappedCC = syFinal.dpcpp-compat;
|
||||||
|
extraConfig = mkSccacheExtraConfig { };
|
||||||
};
|
};
|
||||||
|
sccacheWrappedCompatStdenv = final.overrideCC syPrev.compatStdenv sccacheWrappedDpcpp;
|
||||||
|
# Inject sccache into stdenv without wrapping the compiler
|
||||||
|
# (avoids sccache-links-wrapper depending on intel-llvm-nightly directly)
|
||||||
|
sccacheStdenv = syPrev.stdenv.override (old: {
|
||||||
|
extraNativeBuildInputs = (old.extraNativeBuildInputs or [ ]) ++ [ final.sccache ];
|
||||||
|
preHook = (old.preHook or "") + ''
|
||||||
|
export SCCACHE_CONF=${final.lib.escapeShellArg sharedSccacheConfig}
|
||||||
|
${final.coreutils}/bin/mkdir -p ${final.lib.escapeShellArg sandboxSccacheDir}
|
||||||
|
export RUSTC_WRAPPER="${final.sccache}/bin/sccache"
|
||||||
|
'';
|
||||||
|
});
|
||||||
|
in
|
||||||
|
{
|
||||||
|
llvm = modify syPrev.llvm (mkCmakeSccacheWithLlvmTargetAttrs llvmTargetForHost);
|
||||||
|
lld = modify syPrev.lld (mkCmakeSccacheWithLlvmTargetAttrs llvmTargetForHost);
|
||||||
|
stdenv = sccacheStdenv;
|
||||||
|
compatStdenv = sccacheWrappedCompatStdenv;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
# xdg-desktop-portal-cosmic = prev.xdg-desktop-portal-cosmic.overrideAttrs (old: {
|
# xdg-desktop-portal-cosmic = prev.xdg-desktop-portal-cosmic.overrideAttrs (old: {
|
||||||
|
|
@ -413,7 +480,7 @@ in
|
||||||
codex = modify prev.codex (
|
codex = modify prev.codex (
|
||||||
old:
|
old:
|
||||||
let
|
let
|
||||||
version = "0.114.0";
|
version = "0.116.0";
|
||||||
in
|
in
|
||||||
(versionBumpAttrs old.version version (
|
(versionBumpAttrs old.version version (
|
||||||
let
|
let
|
||||||
|
|
@ -421,8 +488,8 @@ in
|
||||||
owner = "openai";
|
owner = "openai";
|
||||||
repo = "codex";
|
repo = "codex";
|
||||||
tag = "rust-v${version}";
|
tag = "rust-v${version}";
|
||||||
hash = "sha256-7t+mVwP4+YrG1ciI+OLqsK7TUM9SrDbPsJNrt26iy9c=";
|
hash = "sha256-PTsKphg3gPlBUs5oMM34RhJJ4jxvD6hand5aVjXcuZ4=";
|
||||||
#hash = "";
|
# hash = "";
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
@ -432,8 +499,8 @@ in
|
||||||
cargoDeps = prev.rustPlatform.fetchCargoVendor {
|
cargoDeps = prev.rustPlatform.fetchCargoVendor {
|
||||||
inherit src;
|
inherit src;
|
||||||
sourceRoot = "${src.name}/codex-rs";
|
sourceRoot = "${src.name}/codex-rs";
|
||||||
hash = "sha256-XThIexu3V18JG4OtyvYmybaRMctYpDuBLLH+lUvrtt8=";
|
hash = "sha256-X5Yh8+3UrCZfzIplb4OzFfcfoklMu3FikU9vZ6CJbfc=";
|
||||||
#hash = prev.lib.fakeHash;
|
# hash = prev.lib.fakeHash;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
))
|
))
|
||||||
|
|
@ -441,72 +508,78 @@ in
|
||||||
buildInputs = (old.buildInputs or [ ]) ++ [ prev.libcap ];
|
buildInputs = (old.buildInputs or [ ]) ++ [ prev.libcap ];
|
||||||
|
|
||||||
preBuild = (old.preBuild or "") + ''
|
preBuild = (old.preBuild or "") + ''
|
||||||
|
mkdir -p ${final.lib.escapeShellArg sandboxSccacheDir}
|
||||||
export CARGO_PROFILE_RELEASE_LTO=thin
|
export CARGO_PROFILE_RELEASE_LTO=thin
|
||||||
export CARGO_PROFILE_RELEASE_CODEGEN_UNITS=8
|
export CARGO_PROFILE_RELEASE_CODEGEN_UNITS=8
|
||||||
'';
|
'';
|
||||||
}
|
|
||||||
);
|
|
||||||
electron_39 =
|
|
||||||
let
|
|
||||||
angleLib = final.lib.getLib final.angle;
|
|
||||||
realElectronClangBasePath = mkRealCompilerBasePath {
|
|
||||||
name = "electron-real-clang-base";
|
|
||||||
toolchain = prev.electron_39.passthru.unwrapped.llvmCcAndBintools;
|
|
||||||
};
|
|
||||||
electronUnwrapped = modify prev.electron_39.passthru.unwrapped (
|
|
||||||
old:
|
|
||||||
let
|
|
||||||
buildSccacheAttrs = mkBuildSccacheAttrs old;
|
|
||||||
oldClangBasePath = "clang_base_path=\"${old.llvmCcAndBintools}\"";
|
|
||||||
newClangBasePath = "clang_base_path=\"${realElectronClangBasePath}\"";
|
|
||||||
baseGnFlags = builtins.replaceStrings
|
|
||||||
[ oldClangBasePath ]
|
|
||||||
[ newClangBasePath ]
|
|
||||||
(old.gnFlags or "");
|
|
||||||
electronGnFlags =
|
|
||||||
"${baseGnFlags} cc_wrapper=\"${buildSccacheLauncher}/bin/build-sccache\"";
|
|
||||||
in
|
|
||||||
buildSccacheAttrs
|
|
||||||
// {
|
|
||||||
gnFlags = electronGnFlags;
|
|
||||||
configurePhase = builtins.replaceStrings
|
|
||||||
[ old.gnFlags or "" ]
|
|
||||||
[ electronGnFlags ]
|
|
||||||
(old.configurePhase or "");
|
|
||||||
patches = builtins.filter (
|
|
||||||
patch: builtins.baseNameOf (toString patch) != "39-angle-patchdir.patch"
|
|
||||||
) (old.patches or [ ]);
|
|
||||||
postPatch = ''
|
|
||||||
substituteInPlace electron/patches/config.json \
|
|
||||||
--replace-fail '"repo": "src/third_party/angle/src"' '"repo": "src/third_party/angle"'
|
|
||||||
'' + (old.postPatch or "");
|
|
||||||
postFixup = (old.postFixup or "") + ''
|
|
||||||
|
|
||||||
for angleLibName in \
|
env = (old.env or { }) // {
|
||||||
libEGL.so \
|
RUSTC_WRAPPER = "${final.sccache}/bin/sccache";
|
||||||
libEGL_vulkan_secondaries.so \
|
SCCACHE_CONF = sharedSccacheConfig;
|
||||||
libGLESv1_CM.so \
|
};
|
||||||
libGLESv2.so \
|
|
||||||
libGLESv2_vulkan_secondaries.so \
|
|
||||||
libGLESv2_with_capture.so \
|
|
||||||
libVkICD_mock_icd.so \
|
|
||||||
libfeature_support.so
|
|
||||||
do
|
|
||||||
if [ -e "$libExecPath/$angleLibName" ] || [ -L "$libExecPath/$angleLibName" ]; then
|
|
||||||
rm -f "$libExecPath/$angleLibName"
|
|
||||||
fi
|
|
||||||
ln -s ${angleLib}/lib/"$angleLibName" "$libExecPath/$angleLibName"
|
|
||||||
done
|
|
||||||
'';
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
in
|
# electron_39 =
|
||||||
prev.electron_39.override {
|
# let
|
||||||
electron-unwrapped = electronUnwrapped;
|
# angleLib = final.lib.getLib final.angle;
|
||||||
};
|
# realElectronClangBasePath = mkRealCompilerBasePath {
|
||||||
oneapi-ccl = modify (prev.oneapi-ccl.override {
|
# name = "electron-real-clang-base";
|
||||||
|
# toolchain = prev.electron_39.passthru.unwrapped.llvmCcAndBintools;
|
||||||
|
# };
|
||||||
|
# electronUnwrapped = modify prev.electron_39.passthru.unwrapped (
|
||||||
|
# old:
|
||||||
|
# let
|
||||||
|
# buildSccacheAttrs = mkBuildSccacheAttrs old;
|
||||||
|
# oldClangBasePath = "clang_base_path=\"${old.llvmCcAndBintools}\"";
|
||||||
|
# newClangBasePath = "clang_base_path=\"${realElectronClangBasePath}\"";
|
||||||
|
# baseGnFlags = builtins.replaceStrings [ oldClangBasePath ] [ newClangBasePath ] (old.gnFlags or "");
|
||||||
|
# electronGnFlags = "${baseGnFlags} cc_wrapper=\"${buildSccacheLauncher}/bin/build-sccache\"";
|
||||||
|
# in
|
||||||
|
# buildSccacheAttrs
|
||||||
|
# // {
|
||||||
|
# gnFlags = electronGnFlags;
|
||||||
|
# configurePhase = builtins.replaceStrings [ old.gnFlags or "" ] [ electronGnFlags ] (
|
||||||
|
# old.configurePhase or ""
|
||||||
|
# );
|
||||||
|
# patches = builtins.filter (
|
||||||
|
# patch: builtins.baseNameOf (toString patch) != "39-angle-patchdir.patch"
|
||||||
|
# ) (old.patches or [ ]);
|
||||||
|
# postPatch = ''
|
||||||
|
# substituteInPlace electron/patches/config.json \
|
||||||
|
# --replace-fail '"repo": "src/third_party/angle/src"' '"repo": "src/third_party/angle"'
|
||||||
|
# ''
|
||||||
|
# + (old.postPatch or "");
|
||||||
|
# postFixup = (old.postFixup or "") + ''
|
||||||
|
|
||||||
|
# for angleLibName in \
|
||||||
|
# libEGL.so \
|
||||||
|
# libEGL_vulkan_secondaries.so \
|
||||||
|
# libGLESv1_CM.so \
|
||||||
|
# libGLESv2.so \
|
||||||
|
# libGLESv2_vulkan_secondaries.so \
|
||||||
|
# libGLESv2_with_capture.so \
|
||||||
|
# libVkICD_mock_icd.so \
|
||||||
|
# libfeature_support.so
|
||||||
|
# do
|
||||||
|
# if [ -e "$libExecPath/$angleLibName" ] || [ -L "$libExecPath/$angleLibName" ]; then
|
||||||
|
# rm -f "$libExecPath/$angleLibName"
|
||||||
|
# fi
|
||||||
|
# ln -s ${angleLib}/lib/"$angleLibName" "$libExecPath/$angleLibName"
|
||||||
|
# done
|
||||||
|
# '';
|
||||||
|
# }
|
||||||
|
# );
|
||||||
|
# in
|
||||||
|
# prev.electron_39.override {
|
||||||
|
# electron-unwrapped = electronUnwrapped;
|
||||||
|
# };
|
||||||
|
electron_39 = prev.electron_39-bin;
|
||||||
|
oneapi-ccl =
|
||||||
|
modify
|
||||||
|
(prev.oneapi-ccl.override {
|
||||||
intel-sycl = final."intel-sycl";
|
intel-sycl = final."intel-sycl";
|
||||||
}) (
|
})
|
||||||
|
(
|
||||||
old:
|
old:
|
||||||
let
|
let
|
||||||
version = "2021.17.2";
|
version = "2021.17.2";
|
||||||
|
|
@ -537,21 +610,21 @@ in
|
||||||
ln -s ${levelZero}/include/level_zero deps/level_zero/include
|
ln -s ${levelZero}/include/level_zero deps/level_zero/include
|
||||||
|
|
||||||
sed -i '/^#if defined(SYCL_LANGUAGE_VERSION) && defined (__INTEL_LLVM_COMPILER)$/,/^#endif$/c\
|
sed -i '/^#if defined(SYCL_LANGUAGE_VERSION) && defined (__INTEL_LLVM_COMPILER)$/,/^#endif$/c\
|
||||||
#cmakedefine CCL_ENABLE_SYCL\
|
#cmakedefine CCL_ENABLE_SYCL\
|
||||||
#cmakedefine CCL_ENABLE_ZE' include/oneapi/ccl/config.h.in
|
#cmakedefine CCL_ENABLE_ZE' include/oneapi/ccl/config.h.in
|
||||||
|
|
||||||
sed -i 's/^#define ICPX_VERSION 0$/#define ICPX_VERSION 140000/' src/common/utils/sycl_utils.hpp
|
sed -i 's/^#define ICPX_VERSION 0$/#define ICPX_VERSION 140000/' src/common/utils/sycl_utils.hpp
|
||||||
|
|
||||||
sed -i '/^inline sycl::event get_last_event(const sycl::queue &q) {$/, /^inline sycl::event submit_wait_on_events(sycl::queue q, const std::vector<sycl::event> &deps) {$/c\
|
sed -i '/^inline sycl::event get_last_event(const sycl::queue &q) {$/, /^inline sycl::event submit_wait_on_events(sycl::queue q, const std::vector<sycl::event> &deps) {$/c\
|
||||||
inline sycl::event get_last_event(const sycl::queue &q) {\
|
inline sycl::event get_last_event(const sycl::queue &q) {\
|
||||||
auto last_event_opt = q.ext_oneapi_get_last_event();\
|
auto last_event_opt = q.ext_oneapi_get_last_event();\
|
||||||
if (last_event_opt.has_value()) {\
|
if (last_event_opt.has_value()) {\
|
||||||
return last_event_opt.value();\
|
return last_event_opt.value();\
|
||||||
}\
|
}\
|
||||||
return sycl::event{};\
|
return sycl::event{};\
|
||||||
}\
|
}\
|
||||||
\
|
\
|
||||||
inline sycl::event submit_wait_on_events(sycl::queue q, const std::vector<sycl::event> \&deps) {' src/coll/algorithms/utils/sycl_coll_base.hpp
|
inline sycl::event submit_wait_on_events(sycl::queue q, const std::vector<sycl::event> \&deps) {' src/coll/algorithms/utils/sycl_coll_base.hpp
|
||||||
|
|
||||||
find src -type f \( -name '*.hpp' -o -name '*.cpp' \) \
|
find src -type f \( -name '*.hpp' -o -name '*.cpp' \) \
|
||||||
-exec sed -i 's/reqd_sub_group_size(sg_size)/reqd_sub_group_size(32)/g' {} +
|
-exec sed -i 's/reqd_sub_group_size(sg_size)/reqd_sub_group_size(32)/g' {} +
|
||||||
|
|
@ -586,17 +659,14 @@ inline sycl::event submit_wait_on_events(sycl::queue q, const std::vector<sycl::
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
oneapi-math-sycl-blas = modify prev.oneapi-math-sycl-blas (
|
oneapi-math-sycl-blas = modify prev.oneapi-math-sycl-blas (old: mkCmakeSccacheAttrs old);
|
||||||
old: mkCmakeSccacheAttrs old
|
oneapi-math = modify prev.oneapi-math (old: mkCmakeSccacheAttrs old);
|
||||||
);
|
|
||||||
oneapi-math = modify prev.oneapi-math (
|
|
||||||
old: mkCmakeSccacheAttrs old
|
|
||||||
);
|
|
||||||
oneapi-dpl =
|
oneapi-dpl =
|
||||||
let
|
let
|
||||||
version = "2022.11.1";
|
version = "2022.11.1";
|
||||||
in
|
in
|
||||||
modify prev.oneapi-dpl (old:
|
modify prev.oneapi-dpl (
|
||||||
|
old:
|
||||||
(versionBumpAttrs old.version version {
|
(versionBumpAttrs old.version version {
|
||||||
inherit version;
|
inherit version;
|
||||||
|
|
||||||
|
|
@ -691,6 +761,220 @@ inline sycl::event submit_wait_on_events(sycl::queue q, const std::vector<sycl::
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
triton-xpu = pyFinal.buildPythonPackage rec {
|
||||||
|
pname = "pytorch_triton_xpu";
|
||||||
|
version = "3.5.0";
|
||||||
|
format = "wheel";
|
||||||
|
src = final.fetchurl {
|
||||||
|
url = "https://download.pytorch.org/whl/${pname}-${version}-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl";
|
||||||
|
hash = "sha256-DSTBcWCI8nZNDSTGQidzIZW2pCcGw8X8ie60kEv6CBg=";
|
||||||
|
};
|
||||||
|
build-system = with final.python3Packages; [
|
||||||
|
setuptools
|
||||||
|
];
|
||||||
|
nativeBuildInputs = (
|
||||||
|
with final;
|
||||||
|
[
|
||||||
|
autoPatchelfHook
|
||||||
|
]
|
||||||
|
);
|
||||||
|
buildInputs = [ final.zlib ];
|
||||||
|
postFixup = ''
|
||||||
|
substituteInPlace $out/${pyFinal.python.sitePackages}/triton/backends/intel/driver.py \
|
||||||
|
--replace-fail 'ze_root = os.getenv("ZE_PATH", default="/usr/local")' \
|
||||||
|
'ze_root = os.getenv("ZE_PATH", default="${final.level-zero}")'
|
||||||
|
substituteInPlace $out/${pyFinal.python.sitePackages}/triton/runtime/build.py \
|
||||||
|
--replace-fail 'icpx = shutil.which("icpx")' \
|
||||||
|
'icpx = "${final."intel-sycl".clang}/bin/clang++"'
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
torch =
|
||||||
|
let
|
||||||
|
intelHwSrc = builtins.fetchGit {
|
||||||
|
url = "https://github.com/MordragT/nixos.git";
|
||||||
|
rev = "5fc6b35b8aafafbe9fa8bda6e0dc4ddbb0327b43";
|
||||||
|
};
|
||||||
|
torchDir = intelHwSrc + /pkgs/by-lang/intel-python/torch;
|
||||||
|
torchFn = import torchDir;
|
||||||
|
torchSyclRoot =
|
||||||
|
let
|
||||||
|
intelSyclLlvm = final."intel-sycl".llvm;
|
||||||
|
intelSyclDev = final.lib.getDev intelSyclLlvm;
|
||||||
|
intelSyclLib = final.lib.getLib intelSyclLlvm;
|
||||||
|
in
|
||||||
|
final.runCommand "torch-sycl-root" { } ''
|
||||||
|
mkdir -p "$out/bin" "$out/include" "$out/lib"
|
||||||
|
|
||||||
|
ln -s ${final."intel-sycl".stdenv.cc}/bin/clang "$out/bin/clang"
|
||||||
|
ln -s ${final."intel-sycl".stdenv.cc}/bin/clang++ "$out/bin/clang++"
|
||||||
|
ln -s clang "$out/bin/icx"
|
||||||
|
ln -s clang++ "$out/bin/icpx"
|
||||||
|
|
||||||
|
for path in ${intelSyclDev}/include/*; do
|
||||||
|
ln -s "$path" "$out/include/"
|
||||||
|
done
|
||||||
|
|
||||||
|
for path in ${intelSyclLib}/lib/libsycl*.so*; do
|
||||||
|
ln -s "$path" "$out/lib/"
|
||||||
|
done
|
||||||
|
|
||||||
|
ln -s ${final.ocl-icd}/lib/libOpenCL.so "$out/lib/libOpenCL.so"
|
||||||
|
ln -s ${final.ocl-icd}/lib/libOpenCL.so.1 "$out/lib/libOpenCL.so.1"
|
||||||
|
'';
|
||||||
|
torchCmakeSccache = mkSccacheLauncher {
|
||||||
|
name = "torch-cmake-sccache";
|
||||||
|
passthroughWrappedCompiler = true;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
(torchFn {
|
||||||
|
inherit (final)
|
||||||
|
lib
|
||||||
|
cmake
|
||||||
|
which
|
||||||
|
pkg-config
|
||||||
|
breakpointHook
|
||||||
|
writeShellScript
|
||||||
|
;
|
||||||
|
inherit (final)
|
||||||
|
openssl
|
||||||
|
ocl-icd
|
||||||
|
opencl-headers
|
||||||
|
level-zero
|
||||||
|
;
|
||||||
|
inherit (final)
|
||||||
|
fetchFromGitHub
|
||||||
|
fetchFromGitLab
|
||||||
|
runCommand
|
||||||
|
callPackage
|
||||||
|
applyPatches
|
||||||
|
;
|
||||||
|
inherit (final.buildPackages) ninja;
|
||||||
|
inherit (pyFinal)
|
||||||
|
buildPythonPackage
|
||||||
|
python
|
||||||
|
pybind11
|
||||||
|
astunparse
|
||||||
|
expecttest
|
||||||
|
filelock
|
||||||
|
fsspec
|
||||||
|
hypothesis
|
||||||
|
jinja2
|
||||||
|
networkx
|
||||||
|
packaging
|
||||||
|
psutil
|
||||||
|
pyyaml
|
||||||
|
requests
|
||||||
|
sympy
|
||||||
|
types-dataclasses
|
||||||
|
typing-extensions
|
||||||
|
pillow
|
||||||
|
six
|
||||||
|
tensorboard
|
||||||
|
protobuf
|
||||||
|
;
|
||||||
|
intel-sycl = final."intel-sycl";
|
||||||
|
oneapi-dnn = final.oneapi-dnn;
|
||||||
|
pti-gpu = final.pti-gpu;
|
||||||
|
intel-compute-runtime = final.intel-compute-runtime;
|
||||||
|
triton-xpu = pyFinal.triton-xpu;
|
||||||
|
inherit (final) git-unroll binutils;
|
||||||
|
}).overrideAttrs
|
||||||
|
(old: {
|
||||||
|
nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [
|
||||||
|
final.shaderc
|
||||||
|
final.glibc.bin
|
||||||
|
torchCmakeSccache
|
||||||
|
];
|
||||||
|
buildInputs = (old.buildInputs or [ ]) ++ [
|
||||||
|
final.vulkan-headers
|
||||||
|
final.vulkan-loader
|
||||||
|
];
|
||||||
|
postPatch = (old.postPatch or "") + ''
|
||||||
|
substituteInPlace cmake/Modules/FindOpenMP.cmake \
|
||||||
|
--replace-fail 'set(OMP_FLAG_Clang "-fopenmp=libomp" "-fopenmp=libiomp5" "-fopenmp")' \
|
||||||
|
'set(OMP_FLAG_Clang "-fopenmp=libomp -I''${OpenMP_PREFIX}/include" "-fopenmp=libiomp5 -I''${OpenMP_PREFIX}/include" "-fopenmp -I''${OpenMP_PREFIX}/include" "-fopenmp=libomp" "-fopenmp=libiomp5" "-fopenmp")'
|
||||||
|
'';
|
||||||
|
preBuild = ''
|
||||||
|
export MAX_JOBS=$NIX_BUILD_CORES
|
||||||
|
|
||||||
|
mkdir -p ${final.lib.escapeShellArg sandboxSccacheDir}
|
||||||
|
export SCCACHE_CONF=${final.lib.escapeShellArg sharedSccacheConfig}
|
||||||
|
${sccacheRuntimeModeSetup}
|
||||||
|
|
||||||
|
export SYCL_ROOT=${final.lib.escapeShellArg torchSyclRoot}
|
||||||
|
export CMPLR_ROOT=${final.lib.escapeShellArg torchSyclRoot}
|
||||||
|
export LD_LIBRARY_PATH="$SYCL_ROOT/lib''${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
|
||||||
|
export CMAKE_C_COMPILER_LAUNCHER=${torchCmakeSccache}/bin/torch-cmake-sccache
|
||||||
|
export CMAKE_CXX_COMPILER_LAUNCHER=${torchCmakeSccache}/bin/torch-cmake-sccache
|
||||||
|
|
||||||
|
omp_lib_dir=
|
||||||
|
for dep in $buildInputs $nativeBuildInputs; do
|
||||||
|
if [ -f "$dep/include/omp.h" ]; then
|
||||||
|
export OMP_PREFIX="$dep"
|
||||||
|
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I$dep/include"
|
||||||
|
export CFLAGS="$CFLAGS -I$dep/include"
|
||||||
|
export CXXFLAGS="$CXXFLAGS -I$dep/include"
|
||||||
|
if [ -f "$dep/nix-support/propagated-build-inputs" ]; then
|
||||||
|
for propagated in $(cat "$dep/nix-support/propagated-build-inputs"); do
|
||||||
|
if [ -f "$propagated/lib/libomp.so" ] || [ -f "$propagated/lib/libiomp5.so" ]; then
|
||||||
|
omp_lib_dir="$propagated/lib"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [ -n "$omp_lib_dir" ]; then
|
||||||
|
export LIBRARY_PATH="$omp_lib_dir''${LIBRARY_PATH:+:$LIBRARY_PATH}"
|
||||||
|
export NIX_LDFLAGS="$NIX_LDFLAGS -L$omp_lib_dir -Wl,-rpath,$omp_lib_dir"
|
||||||
|
export LDFLAGS="$LDFLAGS -L$omp_lib_dir -Wl,-rpath,$omp_lib_dir"
|
||||||
|
fi
|
||||||
|
export SCCACHE_WRAPPED_COMPILER_PASSTHROUGH=1
|
||||||
|
python setup.py build --cmake-only
|
||||||
|
unset SCCACHE_WRAPPED_COMPILER_PASSTHROUGH
|
||||||
|
cmake --build build
|
||||||
|
'';
|
||||||
|
postBuild = (old.postBuild or "") + ''
|
||||||
|
${torchCmakeSccache}/bin/torch-cmake-sccache --show-stats --stats-format text || true
|
||||||
|
'';
|
||||||
|
env = (old.env or { }) // {
|
||||||
|
SYCL_ROOT = "${torchSyclRoot}";
|
||||||
|
CMPLR_ROOT = "${torchSyclRoot}";
|
||||||
|
USE_VULKAN = "1";
|
||||||
|
USE_OPENCL = "1";
|
||||||
|
USE_XCCL = "0";
|
||||||
|
USE_OPENMP = "1";
|
||||||
|
VULKAN_SDK = "${final.shaderc}";
|
||||||
|
USE_CUDNN = "0";
|
||||||
|
USE_CUDSS = "0";
|
||||||
|
USE_CUFILE = "0";
|
||||||
|
USE_CUSPARSELT = "0";
|
||||||
|
USE_STATIC_NCCL = "0";
|
||||||
|
USE_NVRTC = "0";
|
||||||
|
USE_ROCM = "0";
|
||||||
|
USE_RCCL = "0";
|
||||||
|
USE_MPS = "0";
|
||||||
|
USE_PYTORCH_METAL = "0";
|
||||||
|
USE_PYTORCH_METAL_EXPORT = "0";
|
||||||
|
USE_COREML_DELEGATE = "0";
|
||||||
|
USE_MAGMA = "0";
|
||||||
|
USE_NNPACK = "0";
|
||||||
|
USE_XNNPACK = "0";
|
||||||
|
USE_PYTORCH_QNNPACK = "0";
|
||||||
|
USE_SNPE = "0";
|
||||||
|
USE_NNAPI = "0";
|
||||||
|
USE_KINETO = "0";
|
||||||
|
USE_ITT = "0";
|
||||||
|
USE_DISTRIBUTED = "0";
|
||||||
|
USE_GLOO = "0";
|
||||||
|
USE_MPI = "0";
|
||||||
|
USE_TENSORPIPE = "0";
|
||||||
|
USE_UCC = "0";
|
||||||
|
CC = "${final."intel-sycl".compatStdenv.cc}/bin/clang";
|
||||||
|
CXX = "${final."intel-sycl".compatStdenv.cc}/bin/clang++";
|
||||||
|
};
|
||||||
|
});
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
lutris-unwrapped = modify prev.lutris-unwrapped (
|
lutris-unwrapped = modify prev.lutris-unwrapped (
|
||||||
|
|
@ -720,17 +1004,105 @@ inline sycl::event submit_wait_on_events(sycl::queue q, const std::vector<sycl::
|
||||||
--run 'export WINE WINESERVER WINE_BIN WINESERVER_BIN'
|
--run 'export WINE WINESERVER WINE_BIN WINESERVER_BIN'
|
||||||
'';
|
'';
|
||||||
});
|
});
|
||||||
# winetricks = prev.winetricks.overrideAttrs (
|
intel-openmp-nightly = modify prev.intel-openmp-nightly (
|
||||||
# old:
|
old:
|
||||||
# let
|
let
|
||||||
# version = "20260125";
|
cmakeSccacheAttrs = mkCmakeSccacheAttrs old;
|
||||||
# in
|
in
|
||||||
# {
|
cmakeSccacheAttrs
|
||||||
# inherit version;
|
// {
|
||||||
# src = final.fetchurl {
|
cmakeFlags = (cmakeSccacheAttrs.cmakeFlags or [ ]);
|
||||||
# url = "https://github.com/Winetricks/winetricks/archive/refs/tags/${version}.tar.gz";
|
}
|
||||||
# hash = "sha256-KJC9n7ut5GOOWLSZmiNycxkt8DtYUWrnuHceCcItL1Y=";
|
);
|
||||||
# };
|
intel-compute-runtime = modify prev.intel-compute-runtime (
|
||||||
# }
|
old:
|
||||||
# );
|
let
|
||||||
|
cmakeSccacheAttrs = mkCmakeSccacheAttrs old;
|
||||||
|
#
|
||||||
|
# Build against the drm/tip 7.0.0-rc4 kernel headers for xe driver ABI compatibility
|
||||||
|
kernelSrc = builtins.fetchGit {
|
||||||
|
url = "https://gitlab.freedesktop.org/drm/tip.git";
|
||||||
|
rev = "61409ba11a36fa5aff4ce0f0086a6026a43c5bce";
|
||||||
|
shallow = true;
|
||||||
|
};
|
||||||
|
kernelHeaders = final.runCommand "xe-kernel-headers" { } ''
|
||||||
|
mkdir -p $out/include/drm
|
||||||
|
cp -v ${kernelSrc}/include/drm/xe_drm.h $out/include/drm/ 2>/dev/null || true
|
||||||
|
cp -v ${kernelSrc}/include/uapi/drm/xe_drm.h $out/include/drm/ 2>/dev/null || true
|
||||||
|
# Also copy other drm headers the compute runtime might need
|
||||||
|
for f in ${kernelSrc}/include/drm/*.h ${kernelSrc}/include/uapi/drm/*.h; do
|
||||||
|
[ -f "$f" ] && cp -v "$f" $out/include/drm/ 2>/dev/null || true
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
cmakeSccacheAttrs
|
||||||
|
// {
|
||||||
|
cmakeFlags = (cmakeSccacheAttrs.cmakeFlags or [ ]) ++ [
|
||||||
|
(prev.lib.cmakeBool "DISABLE_WDDM_LINUX" true)
|
||||||
|
(prev.lib.cmakeBool "NEO_ENABLE_I915_PRELIM_DETECTION" false)
|
||||||
|
(prev.lib.cmakeBool "NEO_ENABLE_XE_PRELIM_DETECTION" false)
|
||||||
|
(prev.lib.cmakeBool "SUPPORT_GEN12LP" false)
|
||||||
|
(prev.lib.cmakeBool "SUPPORT_XE_HPG_CORE" false)
|
||||||
|
(prev.lib.cmakeBool "SUPPORT_XE_HPC_CORE" false)
|
||||||
|
(prev.lib.cmakeBool "SUPPORT_XE3_CORE" false)
|
||||||
|
(prev.lib.cmakeBool "SUPPORT_XE3P_CORE" false)
|
||||||
|
(prev.lib.cmakeBool "SUPPORT_XE2_HPG_CORE" true)
|
||||||
|
(prev.lib.cmakeBool "SUPPORT_LNL" false)
|
||||||
|
(prev.lib.cmakeBool "SUPPORT_BMG" true)
|
||||||
|
];
|
||||||
|
buildInputs = (old.buildInputs or [ ]) ++ [ kernelHeaders ];
|
||||||
|
postPatch = (old.postPatch or "") + ''
|
||||||
|
# Copy xe_drm.h from the drm/tip kernel into all compute-runtime header locations
|
||||||
|
if [ -f "${kernelHeaders}/include/drm/xe_drm.h" ]; then
|
||||||
|
for dest in \
|
||||||
|
third_party/uapi/drm-next/xe \
|
||||||
|
third_party/uapi/drm-uapi-helper/xe \
|
||||||
|
third_party/uapi-eudebug/drm \
|
||||||
|
; do
|
||||||
|
if [ -d "$dest" ]; then
|
||||||
|
cp -v "${kernelHeaders}/include/drm/xe_drm.h" "$dest/"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Patch GMM resource creation failures to be non-fatal.
|
||||||
|
# intel-gmmlib can't create resource info for BMG on kernel 7.0 xe driver
|
||||||
|
# in certain initialization paths. Patch the abort and add null guards.
|
||||||
|
|
||||||
|
# 1. resource_info.cpp: return nullptr instead of aborting
|
||||||
|
sed -i 's/UNRECOVERABLE_IF(resourceInfo->peekHandle() == 0);/if(resourceInfo->peekHandle() == 0) { delete resourceInfo; return nullptr; }/' \
|
||||||
|
shared/source/gmm_helper/resource_info.cpp
|
||||||
|
|
||||||
|
# 2. gmm.cpp: change UNRECOVERABLE_IF to graceful return first (line 104)
|
||||||
|
sed -i 's/UNRECOVERABLE_IF(this->gmmResourceInfo == nullptr);/if (this->gmmResourceInfo == nullptr) { return; }/' \
|
||||||
|
shared/source/gmm_helper/gmm.cpp
|
||||||
|
|
||||||
|
# 3. gmm.cpp: add null checks after GmmResourceInfo::create calls that lack them
|
||||||
|
# Lines 76 and 85 (line 103 already handled by step 2 after the UNRECOVERABLE_IF replacement)
|
||||||
|
sed -i '76a\ if (this->gmmResourceInfo == nullptr) { return; }' \
|
||||||
|
shared/source/gmm_helper/gmm.cpp
|
||||||
|
sed -i '87a\ if (this->gmmResourceInfo == nullptr) { return; }' \
|
||||||
|
shared/source/gmm_helper/gmm.cpp
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
);
|
||||||
|
umu-launcher-unwrapped = modify prev.umu-launcher-unwrapped rec {
|
||||||
|
version = "1.4.0";
|
||||||
|
|
||||||
|
src = prev.fetchFromGitHub {
|
||||||
|
inherit version;
|
||||||
|
owner = "Open-Wine-Components";
|
||||||
|
repo = "umu-launcher";
|
||||||
|
tag = version;
|
||||||
|
hash = "sha256-7BdA/iAAIn2NR/uLzxdvsIh5/1SZacSfkiXJVJBT3EQ=";
|
||||||
|
};
|
||||||
|
|
||||||
|
cargoDeps = prev.rustPlatform.fetchCargoVendor {
|
||||||
|
inherit src;
|
||||||
|
hash = "sha256-CVcbktCBRZGnEuDVvl2iJpRgKh+ShFe5mjT6oMHIjtQ=";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
umu-launcher = prev.umu-launcher.override {
|
||||||
|
extraLibraries = prevPkgs: [ prevPkgs.zstd ];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
18
devenv.lock
18
devenv.lock
|
|
@ -3,11 +3,11 @@
|
||||||
"devenv": {
|
"devenv": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"dir": "src/modules",
|
"dir": "src/modules",
|
||||||
"lastModified": 1773937316,
|
"lastModified": 1774466721,
|
||||||
"narHash": "sha256-1Ou0hiagyj7urRqWZgPW51VdcaCcM3GUwrMBHQ27stU=",
|
"narHash": "sha256-yi8Y0l5ZeJEGbvs48zBSqi183lMncn/ZQlpEbV07NEo=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "devenv",
|
"repo": "devenv",
|
||||||
"rev": "450735a11ddd934e923aaea8b693336d31e7df32",
|
"rev": "1172f805e4497b6d562b32116c8a15ba5d207967",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -22,11 +22,11 @@
|
||||||
"nixpkgs-src": "nixpkgs-src"
|
"nixpkgs-src": "nixpkgs-src"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1773704619,
|
"lastModified": 1774287239,
|
||||||
"narHash": "sha256-LKtmit8Sr81z8+N2vpIaN/fyiQJ8f7XJ6tMSKyDVQ9s=",
|
"narHash": "sha256-W3krsWcDwYuA3gPWsFA24YAXxOFUL6iIlT6IknAoNSE=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "devenv-nixpkgs",
|
"repo": "devenv-nixpkgs",
|
||||||
"rev": "906534d75b0e2fe74a719559dfb1ad3563485f43",
|
"rev": "fa7125ea7f1ae5430010a6e071f68375a39bd24c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -39,11 +39,11 @@
|
||||||
"nixpkgs-src": {
|
"nixpkgs-src": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1773597492,
|
"lastModified": 1773840656,
|
||||||
"narHash": "sha256-hQ284SkIeNaeyud+LS0WVLX+WL2rxcVZLFEaK0e03zg=",
|
"narHash": "sha256-9tpvMGFteZnd3gRQZFlRCohVpqooygFuy9yjuyRL2C0=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "a07d4ce6bee67d7c838a8a5796e75dff9caa21ef",
|
"rev": "9cf7092bdd603554bd8b63c216e8943cf9b12512",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
||||||
146
flake.lock
generated
146
flake.lock
generated
|
|
@ -46,11 +46,11 @@
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1773961521,
|
"lastModified": 1774419577,
|
||||||
"narHash": "sha256-enhjd1AcHHU+3RCRdSWVQj6TIqRXkJUbQSFVXzC6xLo=",
|
"narHash": "sha256-1dmCZWYAhJ1Z65Bl11wgXCHcCu1CTTD0j+PBGFfjanM=",
|
||||||
"owner": "sadjow",
|
"owner": "sadjow",
|
||||||
"repo": "claude-code-nix",
|
"repo": "claude-code-nix",
|
||||||
"rev": "1519be1f77ed017ae4a88916ac54529cef885573",
|
"rev": "8117d36a65200c7a2870620427296b381acb4c35",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -84,11 +84,11 @@
|
||||||
},
|
},
|
||||||
"crane": {
|
"crane": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1771121070,
|
"lastModified": 1772080396,
|
||||||
"narHash": "sha256-aIlv7FRXF9q70DNJPI237dEDAznSKaXmL5lfK/Id/bI=",
|
"narHash": "sha256-84W9UNtSk9DNMh43WBkOjpkbfODlmg+RDi854PnNgLE=",
|
||||||
"owner": "ipetkov",
|
"owner": "ipetkov",
|
||||||
"repo": "crane",
|
"repo": "crane",
|
||||||
"rev": "a2812c19f1ed2e5ed5ce2ef7109798b575c180e1",
|
"rev": "8525580bc0316c39dbfa18bd09a1331e98c9e463",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -158,11 +158,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1771469470,
|
"lastModified": 1773889306,
|
||||||
"narHash": "sha256-GnqdqhrguKNN3HtVfl6z+zbV9R9jhHFm3Z8nu7R6ml0=",
|
"narHash": "sha256-PAqwnsBSI9SVC2QugvQ3xeYCB0otOwCacB1ueQj2tgw=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "4707eec8d1d2db5182ea06ed48c820a86a42dc13",
|
"rev": "5ad85c82cc52264f4beddc934ba57f3789f28347",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -176,11 +176,11 @@
|
||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": "nixpkgs_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1773921118,
|
"lastModified": 1774147244,
|
||||||
"narHash": "sha256-ZBb59LTDi00YbqtEv4WGELVQp1OVUuIKsH1OFj3ccJs=",
|
"narHash": "sha256-t0LgngMyJu9sRCvNTrkE0oxQgS1jFDheZtuUJbrYoTI=",
|
||||||
"owner": "imaviso",
|
"owner": "imaviso",
|
||||||
"repo": "dwproton-flake",
|
"repo": "dwproton-flake",
|
||||||
"rev": "f32d216870fcbc4a3a24764f39bbbaa3991f7f53",
|
"rev": "c5dda756199e5f7ae4850ceb6981f1856cd1497a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -198,11 +198,11 @@
|
||||||
"rust-analyzer-src": "rust-analyzer-src"
|
"rust-analyzer-src": "rust-analyzer-src"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1769929675,
|
"lastModified": 1772348640,
|
||||||
"narHash": "sha256-EBpe7sXCPLs+qVePXbA7kc+Kmpmp0pWysEpjjEWTK+E=",
|
"narHash": "sha256-caiKs7O4khFydpKyg8O8/nmvw/NfN4fn/4spageGoig=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "fenix",
|
"repo": "fenix",
|
||||||
"rev": "78d518f5ca32a86dc767de481160dbae640c70cf",
|
"rev": "47c5355eaba0b08836e720d5d545c8ea1e1783db",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -268,11 +268,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1769996383,
|
"lastModified": 1772408722,
|
||||||
"narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=",
|
"narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "57928607ea566b5db3ad13af0e57e921e6b12381",
|
"rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -363,11 +363,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770726378,
|
"lastModified": 1772893680,
|
||||||
"narHash": "sha256-kck+vIbGOaM/dHea7aTBxdFYpeUl/jHOy5W3eyRvVx8=",
|
"narHash": "sha256-JDqZMgxUTCq85ObSaFw0HhE+lvdOre1lx9iI6vYyOEs=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "git-hooks.nix",
|
"repo": "git-hooks.nix",
|
||||||
"rev": "5eaaedde414f6eb1aea8b8525c466dc37bba95ae",
|
"rev": "8baab586afc9c9b57645a734c820e4ac0a604af9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -451,11 +451,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1774007980,
|
"lastModified": 1774379316,
|
||||||
"narHash": "sha256-FOnZjElEI8pqqCvB6K/1JRHTE8o4rer8driivTpq2uo=",
|
"narHash": "sha256-0nGNxWDUH2Hzlj/R3Zf4FEK6fsFNB/dvewuboSRZqiI=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "9670de2921812bc4e0452f6e3efd8c859696c183",
|
"rev": "1eb0549a1ab3fe3f5acf86668249be15fa0e64f7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -472,11 +472,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1771519029,
|
"lastModified": 1774007980,
|
||||||
"narHash": "sha256-H59Qf82wv5kBXVoyXsmUKW+9J3o8FqgY4uKaLdsLdLg=",
|
"narHash": "sha256-FOnZjElEI8pqqCvB6K/1JRHTE8o4rer8driivTpq2uo=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "167e0b6837115e672ec5f58e2b0ea39093abe807",
|
"rev": "9670de2921812bc4e0452f6e3efd8c859696c183",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -524,11 +524,11 @@
|
||||||
"vaultix": "vaultix"
|
"vaultix": "vaultix"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1772131544,
|
"lastModified": 1774176252,
|
||||||
"narHash": "sha256-rhKS/XoOMN90xpGZleFEQQ9gmn1+8Cagzg12kRRypuE=",
|
"narHash": "sha256-ldrHZQdua0rHq3dFy12nFkU4ZgCOf3CXpRe9SgJ7ZFM=",
|
||||||
"owner": "MordragT",
|
"owner": "MordragT",
|
||||||
"repo": "nixos",
|
"repo": "nixos",
|
||||||
"rev": "5fc6b35b8aafafbe9fa8bda6e0dc4ddbb0327b43",
|
"rev": "c329d001d4ea63b686315ff449a15d30338b515f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -540,16 +540,16 @@
|
||||||
"kernel-src": {
|
"kernel-src": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1773844285,
|
"lastModified": 1774368605,
|
||||||
"narHash": "sha256-vOF2HIA1J5Ktzt2aYqGPBv3AEQb0ziORKRQIOj+6h04=",
|
"narHash": "sha256-9wxoMXSl3z7LuLNjyue/Vbxq+1WY9XaccEzkej7Tsn4=",
|
||||||
"ref": "refs/heads/drm-tip",
|
"ref": "refs/heads/drm-tip",
|
||||||
"rev": "61409ba11a36fa5aff4ce0f0086a6026a43c5bce",
|
"rev": "0be244ee3139de3578e9acc56e1b917a4bd162cd",
|
||||||
"shallow": true,
|
"shallow": true,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://gitlab.freedesktop.org/drm/tip.git"
|
"url": "https://gitlab.freedesktop.org/drm/tip.git"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"rev": "61409ba11a36fa5aff4ce0f0086a6026a43c5bce",
|
"rev": "0be244ee3139de3578e9acc56e1b917a4bd162cd",
|
||||||
"shallow": true,
|
"shallow": true,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://gitlab.freedesktop.org/drm/tip.git"
|
"url": "https://gitlab.freedesktop.org/drm/tip.git"
|
||||||
|
|
@ -566,11 +566,11 @@
|
||||||
"rust-overlay": "rust-overlay"
|
"rust-overlay": "rust-overlay"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1771492583,
|
"lastModified": 1773344150,
|
||||||
"narHash": "sha256-nQzvnU4BGu8dA6BsPPCqmVcab/3ebVmHtX3ZWbW3Hxc=",
|
"narHash": "sha256-JSsXufJy2zdg5XS5pRGlkwF1dqN+sWPmCgrvJsnhEzg=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "lanzaboote",
|
"repo": "lanzaboote",
|
||||||
"rev": "5e9380994665ef66c87ab8e22c913ff837174ce4",
|
"rev": "d21013305ef39e1d9d2d06b161c3785ffad82281",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -611,11 +611,11 @@
|
||||||
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1773889880,
|
"lastModified": 1774283383,
|
||||||
"narHash": "sha256-cu23CGP+mD2wKPKaoGM7evZ1dXfjd+cjryqqqx2HloE=",
|
"narHash": "sha256-3aCfmL8hOcdIl783LTnK+lHcjMGCnc+2zQ98xUyefCU=",
|
||||||
"owner": "sodiboo",
|
"owner": "sodiboo",
|
||||||
"repo": "niri-flake",
|
"repo": "niri-flake",
|
||||||
"rev": "63767d4572eb2e3da5e68f68de77d8f2cdeca8dd",
|
"rev": "8a583029606cf072cc01c7e2f4298cc75a7ada28",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -680,11 +680,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1773552174,
|
"lastModified": 1774156144,
|
||||||
"narHash": "sha256-mHSRNrT1rjeYBgkAlj07dW3+1nFEgAd8Gu6lgyfT9DU=",
|
"narHash": "sha256-gdYe9wTPl4ignDyXUl1LlICWj41+S0GB5lG1fKP17+A=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nix-index-database",
|
"repo": "nix-index-database",
|
||||||
"rev": "8faeb68130df077450451b6734a221ba0d6cde42",
|
"rev": "55b588747fa3d7fc351a11831c4b874dab992862",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -695,11 +695,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1773628058,
|
"lastModified": 1774273680,
|
||||||
"narHash": "sha256-hpXH0z3K9xv0fHaje136KY872VT2T5uwxtezlAskQgY=",
|
"narHash": "sha256-a++tZ1RQsDb1I0NHrFwdGuRlR5TORvCEUksM459wKUA=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "f8573b9c935cfaa162dd62cc9e75ae2db86f85df",
|
"rev": "fdc7b8f7b30fdbedec91b71ed82f36e1637483ed",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -726,11 +726,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1773814637,
|
"lastModified": 1774244481,
|
||||||
"narHash": "sha256-GNU+ooRmrHLfjlMsKdn0prEKVa0faVanm0jrgu1J/gY=",
|
"narHash": "sha256-4XfMXU0DjN83o6HWZoKG9PegCvKvIhNUnRUI19vzTcQ=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "fea3b367d61c1a6592bc47c72f40a9f3e6a53e96",
|
"rev": "4590696c8693fea477850fe379a01544293ca4e2",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -758,11 +758,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1771369470,
|
"lastModified": 1773821835,
|
||||||
"narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=",
|
"narHash": "sha256-TJ3lSQtW0E2JrznGVm8hOQGVpXjJyXY2guAxku2O9A4=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "0182a361324364ae3f436a63005877674cf45efb",
|
"rev": "b40629efe5d6ec48dd1efba650c797ddbd39ace0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -787,11 +787,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_5": {
|
"nixpkgs_5": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1773821835,
|
"lastModified": 1774106199,
|
||||||
"narHash": "sha256-TJ3lSQtW0E2JrznGVm8hOQGVpXjJyXY2guAxku2O9A4=",
|
"narHash": "sha256-US5Tda2sKmjrg2lNHQL3jRQ6p96cgfWh3J1QBliQ8Ws=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "b40629efe5d6ec48dd1efba650c797ddbd39ace0",
|
"rev": "6c9a78c09ff4d6c21d0319114873508a6ec01655",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -826,11 +826,11 @@
|
||||||
"utils": "utils_2"
|
"utils": "utils_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767894517,
|
"lastModified": 1773168029,
|
||||||
"narHash": "sha256-QF7hieotASi8KTe6dhJEaRg+Ex0HO1SkoqwsILzwO4k=",
|
"narHash": "sha256-dLcdUV+M7z5YIPpLGWKhJ71TZhHHHhEjsJAI0BqlHeI=",
|
||||||
"owner": "MordragT",
|
"owner": "MordragT",
|
||||||
"repo": "nu-env",
|
"repo": "nu-env",
|
||||||
"rev": "0b6d3b1ee6a5535e13e28d94a85a6eba0585964d",
|
"rev": "0636a884cd447d624e039f730b390d8737dad04c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -850,11 +850,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770726378,
|
"lastModified": 1772024342,
|
||||||
"narHash": "sha256-kck+vIbGOaM/dHea7aTBxdFYpeUl/jHOy5W3eyRvVx8=",
|
"narHash": "sha256-+eXlIc4/7dE6EcPs9a2DaSY3fTA9AE526hGqkNID3Wg=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "pre-commit-hooks.nix",
|
"repo": "pre-commit-hooks.nix",
|
||||||
"rev": "5eaaedde414f6eb1aea8b8525c466dc37bba95ae",
|
"rev": "6e34e97ed9788b17796ee43ccdbaf871a5c2b476",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -874,11 +874,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770726378,
|
"lastModified": 1772893680,
|
||||||
"narHash": "sha256-kck+vIbGOaM/dHea7aTBxdFYpeUl/jHOy5W3eyRvVx8=",
|
"narHash": "sha256-JDqZMgxUTCq85ObSaFw0HhE+lvdOre1lx9iI6vYyOEs=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "git-hooks.nix",
|
"repo": "git-hooks.nix",
|
||||||
"rev": "5eaaedde414f6eb1aea8b8525c466dc37bba95ae",
|
"rev": "8baab586afc9c9b57645a734c820e4ac0a604af9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -928,11 +928,11 @@
|
||||||
"rust-analyzer-src": {
|
"rust-analyzer-src": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1769857242,
|
"lastModified": 1772310333,
|
||||||
"narHash": "sha256-3eKpRRzKz0KzY7CJzRXFm4POwEqbuTohyQ2ajI/zKvg=",
|
"narHash": "sha256-njFwHnxYcfQINwSa+XWhenv8s8PMg/j5ID0HpIa49xM=",
|
||||||
"owner": "rust-lang",
|
"owner": "rust-lang",
|
||||||
"repo": "rust-analyzer",
|
"repo": "rust-analyzer",
|
||||||
"rev": "17304e9c7e11d26139672d3d77aa498b1cae0d69",
|
"rev": "a96b6a9b887008bae01839543f9ca8e1f67f4ebe",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -951,11 +951,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1771125043,
|
"lastModified": 1772334676,
|
||||||
"narHash": "sha256-ldf/s49n6rOAxl7pYLJGGS1N/assoHkCOWdEdLyNZkc=",
|
"narHash": "sha256-Jrc0J3AH+iNJDlUze3+FJZv2R0BZnhANFnD52V4kyvI=",
|
||||||
"owner": "oxalica",
|
"owner": "oxalica",
|
||||||
"repo": "rust-overlay",
|
"repo": "rust-overlay",
|
||||||
"rev": "4912f951a26dc8142b176be2c2ad834319dc06e8",
|
"rev": "9879be11f30fd3bbf848e653a7f991549e8973b5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -1015,11 +1015,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1773852796,
|
"lastModified": 1774443684,
|
||||||
"narHash": "sha256-aEriBf9qkKeUoICKuxOj9e1GE8PZEnKke83+TzXpBT8=",
|
"narHash": "sha256-eXRUZ6Fvlfq0MreTDOXzXTpDGIBWJj+JxdhcZgr8kgs=",
|
||||||
"owner": "mozilla",
|
"owner": "mozilla",
|
||||||
"repo": "sccache",
|
"repo": "sccache",
|
||||||
"rev": "8d6cab9ee9356ff4054409c60f7a607cb798de03",
|
"rev": "f5edaf1076a093a1a0d17ab153e19bf920dc052b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
||||||
30
flake.nix
30
flake.nix
|
|
@ -24,7 +24,7 @@
|
||||||
nix-flatpak.url = "github:gmodena/nix-flatpak/latest";
|
nix-flatpak.url = "github:gmodena/nix-flatpak/latest";
|
||||||
kernel-src = {
|
kernel-src = {
|
||||||
# url = "git+https://gitlab.freedesktop.org/drm/tip.git?shallow=1";
|
# url = "git+https://gitlab.freedesktop.org/drm/tip.git?shallow=1";
|
||||||
url = "git+https://gitlab.freedesktop.org/drm/tip.git?rev=61409ba11a36fa5aff4ce0f0086a6026a43c5bce&shallow=1";
|
url = "git+https://gitlab.freedesktop.org/drm/tip.git?rev=0be244ee3139de3578e9acc56e1b917a4bd162cd&shallow=1";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
sccache = {
|
sccache = {
|
||||||
|
|
@ -85,7 +85,8 @@
|
||||||
pkgdefault = pkg: pkg.packages.${pkgs.stdenv.hostPlatform.system}.default;
|
pkgdefault = pkg: pkg.packages.${pkgs.stdenv.hostPlatform.system}.default;
|
||||||
};
|
};
|
||||||
nixpkgs.overlays = [
|
nixpkgs.overlays = [
|
||||||
intel-hw.overlays.default
|
intel-hw.overlays.by-scope
|
||||||
|
intel-hw.overlays.by-name
|
||||||
mypkgs.overlays.default
|
mypkgs.overlays.default
|
||||||
(import ./custom/override.nix)
|
(import ./custom/override.nix)
|
||||||
niri-flake.overlays.niri
|
niri-flake.overlays.niri
|
||||||
|
|
@ -101,12 +102,14 @@
|
||||||
intel-ocl
|
intel-ocl
|
||||||
vpl-gpu-rt
|
vpl-gpu-rt
|
||||||
intel-compute-runtime
|
intel-compute-runtime
|
||||||
|
intel-compute-runtime.drivers
|
||||||
### intel-hw
|
### intel-hw
|
||||||
oneapi-ccl
|
oneapi-ccl
|
||||||
oneapi-dpl
|
oneapi-dpl
|
||||||
oneapi-math
|
oneapi-math
|
||||||
oneapi-tbb
|
oneapi-tbb
|
||||||
unified-memory-framework
|
unified-memory-framework
|
||||||
|
level-zero
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
# ++ (with inputs.intel-hw.packages."${system}"; [
|
# ++ (with inputs.intel-hw.packages."${system}"; [
|
||||||
|
|
@ -124,7 +127,7 @@
|
||||||
"root"
|
"root"
|
||||||
"thek0tyara"
|
"thek0tyara"
|
||||||
];
|
];
|
||||||
sandbox = "relaxed";
|
sandbox = true;
|
||||||
extra-sandbox-paths = [
|
extra-sandbox-paths = [
|
||||||
"/run/sccache"
|
"/run/sccache"
|
||||||
"/var/cache/sccache"
|
"/var/cache/sccache"
|
||||||
|
|
@ -135,11 +138,11 @@
|
||||||
download-buffer-size = 160000000;
|
download-buffer-size = 160000000;
|
||||||
};
|
};
|
||||||
systemd.tmpfiles.rules = [
|
systemd.tmpfiles.rules = [
|
||||||
# setgid, чтобы файлы/папки сохраняли группу nixbld
|
# setgid, to preserve group nixbld
|
||||||
"d /var/cache/sccache 2770 root nixbld - -"
|
"d /var/cache/sccache 1777 root root - -"
|
||||||
"d /var/cache/sccache/nix-builds 2770 root nixbld - -"
|
"d /var/cache/sccache/nix-builds 1777 root root - -"
|
||||||
"d /var/cache/sccache/nix-builds/packages 2770 root nixbld - -"
|
"d /var/cache/sccache/nix-builds/packages 1777 root root - -"
|
||||||
"d /var/cache/sccache/nix-builds/kernel 2770 root nixbld - -"
|
"d /var/cache/sccache/nix-builds/kernel 1777 root root - -"
|
||||||
];
|
];
|
||||||
systemd.services.sccache = {
|
systemd.services.sccache = {
|
||||||
description = "Shared sccache server for Nix builds";
|
description = "Shared sccache server for Nix builds";
|
||||||
|
|
@ -246,6 +249,17 @@
|
||||||
security = {
|
security = {
|
||||||
polkit = {
|
polkit = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
extraConfig = ''
|
||||||
|
polkit.addRule(function(action, subject) {
|
||||||
|
if (action.id == "org.freedesktop.policykit.exec" &&
|
||||||
|
subject.isInGroup("wheel")) {
|
||||||
|
var cmd = action.lookup("program");
|
||||||
|
if (cmd && cmd.match(/\/ls$/)) {
|
||||||
|
return polkit.Result.YES;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
rtkit.enable = true;
|
rtkit.enable = true;
|
||||||
sudo = {
|
sudo = {
|
||||||
|
|
|
||||||
31
home.nix
31
home.nix
|
|
@ -27,6 +27,7 @@
|
||||||
package = pkgs.apple-cursor;
|
package = pkgs.apple-cursor;
|
||||||
size = 28;
|
size = 28;
|
||||||
};
|
};
|
||||||
|
gtk4.theme = config.gtk.theme;
|
||||||
};
|
};
|
||||||
home = {
|
home = {
|
||||||
stateVersion = "25.11";
|
stateVersion = "25.11";
|
||||||
|
|
@ -53,7 +54,7 @@
|
||||||
arch-install-scripts
|
arch-install-scripts
|
||||||
kdocker # tray the untrayable
|
kdocker # tray the untrayable
|
||||||
xwayland-satellite
|
xwayland-satellite
|
||||||
winboat
|
# winboat
|
||||||
xfce4-taskmanager
|
xfce4-taskmanager
|
||||||
xdg-desktop-portal-cosmic
|
xdg-desktop-portal-cosmic
|
||||||
file
|
file
|
||||||
|
|
@ -92,17 +93,20 @@
|
||||||
vintagestory
|
vintagestory
|
||||||
prismlauncher
|
prismlauncher
|
||||||
# bottles # sunthetik2 mouse issues
|
# bottles # sunthetik2 mouse issues
|
||||||
# umu-launcher
|
umu-launcher
|
||||||
|
|
||||||
### neural networks
|
### neural networks
|
||||||
dsearch
|
dsearch
|
||||||
lmstudio
|
# lmstudio
|
||||||
# vllm
|
# vllm
|
||||||
claude-code
|
claude-code
|
||||||
|
|
||||||
# kdePackages.kdenlive
|
# kdePackages.kdenlive
|
||||||
(python313.withPackages (
|
(python313.withPackages (
|
||||||
py: with py; [
|
py: with py; [
|
||||||
|
# torch
|
||||||
|
# triton-xpu
|
||||||
|
#
|
||||||
huggingface-hub
|
huggingface-hub
|
||||||
# haystack-ai
|
# haystack-ai
|
||||||
# raganything
|
# raganything
|
||||||
|
|
@ -398,7 +402,7 @@
|
||||||
"mcp-server-qdrant"
|
"mcp-server-qdrant"
|
||||||
];
|
];
|
||||||
enabled = true;
|
enabled = true;
|
||||||
timeout = 15000;
|
timeout = 20000;
|
||||||
environment = {
|
environment = {
|
||||||
# NumPy from uvx needs libstdc++.so.6 on NixOS.
|
# NumPy from uvx needs libstdc++.so.6 on NixOS.
|
||||||
LD_LIBRARY_PATH = lib.makeLibraryPath [ pkgs.stdenv.cc.cc ];
|
LD_LIBRARY_PATH = lib.makeLibraryPath [ pkgs.stdenv.cc.cc ];
|
||||||
|
|
@ -456,6 +460,7 @@
|
||||||
theme = "opencode";
|
theme = "opencode";
|
||||||
autoupdate = false;
|
autoupdate = false;
|
||||||
share = "manual";
|
share = "manual";
|
||||||
|
model = "openrouter/openrouter/free";
|
||||||
|
|
||||||
# server = {
|
# server = {
|
||||||
# port = 4096;
|
# port = 4096;
|
||||||
|
|
@ -604,13 +609,11 @@
|
||||||
mod-key = "Super";
|
mod-key = "Super";
|
||||||
};
|
};
|
||||||
layout.default-column-width = { };
|
layout.default-column-width = { };
|
||||||
|
|
||||||
spawn-at-startup = [
|
spawn-at-startup = [
|
||||||
{
|
{
|
||||||
sh = "systemctl --user restart xdg-desktop-portal xdg-desktop-portal-wlr xdg-desktop-portal-gtk";
|
sh = "systemctl --user restart xdg-desktop-portal xdg-desktop-portal-wlr xdg-desktop-portal-gtk";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
workspaces = {
|
workspaces = {
|
||||||
"1-social" = {
|
"1-social" = {
|
||||||
name = "social";
|
name = "social";
|
||||||
|
|
@ -669,6 +672,22 @@
|
||||||
# tiled-state = false;
|
# tiled-state = false;
|
||||||
open-on-workspace = "gaming";
|
open-on-workspace = "gaming";
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
matches = [
|
||||||
|
{
|
||||||
|
app-id = "steam";
|
||||||
|
title = "^notificationtoasts_[0-9]*_desktop$";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
# open-floating = false;
|
||||||
|
default-floating-position = {
|
||||||
|
x = 0;
|
||||||
|
y = 20;
|
||||||
|
relative-to = "top-left";
|
||||||
|
};
|
||||||
|
open-floating = true;
|
||||||
|
open-on-workspace = "gaming";
|
||||||
|
}
|
||||||
{
|
{
|
||||||
matches = [
|
matches = [
|
||||||
{ title = "^Picture-in-Picture$"; }
|
{ title = "^Picture-in-Picture$"; }
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue