diff --git a/configuration.nix b/configuration.nix index c65d8bc..6832da4 100644 --- a/configuration.nix +++ b/configuration.nix @@ -178,7 +178,7 @@ gamescope telegram-desktop ladybird - # krita # BOOST BROKE, FUCK + krita meld pavucontrol pwvucontrol diff --git a/custom/modules/kernel.nix b/custom/modules/kernel.nix index 6d67533..7956fa7 100644 --- a/custom/modules/kernel.nix +++ b/custom/modules/kernel.nix @@ -5,7 +5,7 @@ structuredExtraConfig ? { }, kernelPatches ? [ ], extraConfig ? "", - sccacheDir ? "/var/cache/sccache", + sccacheDir ? "/var/cache/sccache/nix-builds/kernel", sccacheServerUds ? null, enforceSccache ? true, }: @@ -57,12 +57,17 @@ pkgs.callPackage ( realHostLd = lib.getExe' buildLlvm.lld "ld.lld"; realRustc = lib.getExe' rust "rustc"; realHostRustc = realRustc; + sccacheConfig = pkgs.writeText "kernel-sccache.conf" '' + [cache.disk] + dir = "${sccacheDir}" + size = "100G" + ''; mkSccacheWrapper = name: compiler: pkgs.writeShellScriptBin name '' set -euo pipefail - export SCCACHE_DIR=${lib.escapeShellArg sccacheDir} + export SCCACHE_CONF=${lib.escapeShellArg sccacheConfig} ${lib.optionalString (sccacheServerUds != null) "export SCCACHE_SERVER_UDS=${lib.escapeShellArg sccacheServerUds}"} if [ -n "''${SCCACHE_ENFORCE_MARKER-}" ]; then : > "''${SCCACHE_ENFORCE_MARKER}" @@ -75,7 +80,7 @@ pkgs.callPackage ( hostcxxSccache = mkSccacheWrapper "c++" realHostCXX; rustcSccache = pkgs.writeShellScriptBin "rustc" '' set -euo pipefail - export SCCACHE_DIR=${lib.escapeShellArg sccacheDir} + export SCCACHE_CONF=${lib.escapeShellArg sccacheConfig} ${lib.optionalString (sccacheServerUds != null) "export SCCACHE_SERVER_UDS=${lib.escapeShellArg sccacheServerUds}"} if [ -n "''${SCCACHE_ENFORCE_MARKER-}" ]; then : > "''${SCCACHE_ENFORCE_MARKER}" @@ -85,7 +90,7 @@ pkgs.callPackage ( hostrustcSccache = pkgs.writeShellScriptBin "rustc" '' set -euo pipefail - export SCCACHE_DIR=${lib.escapeShellArg sccacheDir} + export SCCACHE_CONF=${lib.escapeShellArg sccacheConfig} ${lib.optionalString (sccacheServerUds != null) "export SCCACHE_SERVER_UDS=${lib.escapeShellArg sccacheServerUds}"} if [ -n "''${SCCACHE_ENFORCE_MARKER-}" ]; then : > "''${SCCACHE_ENFORCE_MARKER}" @@ -138,7 +143,9 @@ pkgs.callPackage ( preBuild = (args.preBuild or "") + lib.optionalString enforceSccache '' - export SCCACHE_DIR=${lib.escapeShellArg sccacheDir} + mkdir -p ${lib.escapeShellArg sccacheDir} + chmod 0777 ${lib.escapeShellArg sccacheDir} || true + export SCCACHE_CONF=${lib.escapeShellArg sccacheConfig} ${lib.optionalString (sccacheServerUds != null) "export SCCACHE_SERVER_UDS=${lib.escapeShellArg sccacheServerUds}"} ''; @@ -146,7 +153,9 @@ pkgs.callPackage ( if enforceSccache then '' runHook preBuild - export SCCACHE_DIR=${lib.escapeShellArg sccacheDir} + mkdir -p ${lib.escapeShellArg sccacheDir} + chmod 0777 ${lib.escapeShellArg sccacheDir} || true + export SCCACHE_CONF=${lib.escapeShellArg sccacheConfig} ${lib.optionalString (sccacheServerUds != null) "export SCCACHE_SERVER_UDS=${lib.escapeShellArg sccacheServerUds}"} export SCCACHE_ENFORCE_MARKER="$NIX_BUILD_TOP/.sccache-used" rm -f "$SCCACHE_ENFORCE_MARKER" diff --git a/custom/override.nix b/custom/override.nix index 711198c..ad13ce9 100644 --- a/custom/override.nix +++ b/custom/override.nix @@ -1,8 +1,245 @@ final: prev: let winePkg = final.wineWow64Packages.full; + sandboxSccacheDir = "/var/cache/sccache/nix-builds/packages"; + sharedSccacheConfig = final.writeText "sccache.conf" '' + [cache.disk] + dir = "${sandboxSccacheDir}" + size = "100G" + ''; + versionBumpAttrs = + oldVersion: version: attrs: + if final.lib.versionOlder oldVersion version then attrs else { }; + modify = + target: f: + if target ? overridePythonAttrs then + target.overridePythonAttrs f + else if target ? overrideAttrs then + target.overrideAttrs f + else if target ? overrideScope then + target.overrideScope f + else + throw "modify: target does not support overridePythonAttrs, overrideAttrs, or overrideScope"; + mkSccacheLauncher = + { + name, + sccacheDir ? null, + sccacheServerUds ? null, + sccacheCacheSize ? "100G", + noDaemon ? false, + passthroughWrappedCompiler ? false, + }: + let + sccacheConfig = final.writeText "${name}-config" '' + [cache.disk] + dir = "${if sccacheDir != null then sccacheDir else sandboxSccacheDir}" + size = "${sccacheCacheSize}" + ''; + effectiveSccacheConfig = + if sccacheDir == null && sccacheCacheSize == "100G" then sharedSccacheConfig else sccacheConfig; + in + final.writeShellScriptBin name '' + is_cmake_derivation() { + case " ''${nativeBuildInputs:-} ''${propagatedNativeBuildInputs:-} " in + *"/cmake-"*) return 0 ;; + esac + + [ -n "''${cmakeFlags:-}" ] || [ -n "''${cmakeDir:-}" ] || [ -n "''${cmakeBuildType:-}" ] + } + + is_cmake_probe_invocation() { + local arg + for arg in "$@"; do + case "$arg" in + *CMakeFiles/*CompilerId*|*CMakeFiles/CMakeTmp/*|*CMakeScratch/*) + return 0 + ;; + esac + done + + return 1 + } + + export SCCACHE_CONF=${final.lib.escapeShellArg effectiveSccacheConfig} + unset SCCACHE_START_SERVER + ${final.lib.optionalString noDaemon '' + export SCCACHE_NO_DAEMON=1 + unset SCCACHE_SERVER_UDS + ''} + ${final.lib.optionalString (!noDaemon && sccacheServerUds != null) '' + export SCCACHE_SERVER_UDS=${final.lib.escapeShellArg sccacheServerUds} + ''} + if [ "$#" -eq 0 ] || [ "''${1#-}" != "$1" ]; then + exec ${final.sccache}/bin/sccache "$@" + fi + + compiler="$1" + shift + + if [ "''${SCCACHE_WRAPPED_COMPILER_PASSTHROUGH:-}" = 1 ] || { + is_cmake_derivation && is_cmake_probe_invocation "$@" + }; then + exec "$compiler" "$@" + fi + + ${final.lib.optionalString passthroughWrappedCompiler '' + export SCCACHE_WRAPPED_COMPILER_PASSTHROUGH=1 + ''} + exec ${final.sccache}/bin/sccache "$compiler" "$@" + ''; + buildSccacheLauncher = mkSccacheLauncher { + name = "build-sccache"; + }; + mkBuildSccacheAttrs = + old: + { + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ buildSccacheLauncher ]; + + preConfigure = (old.preConfigure or "") + '' + + mkdir -p ${final.lib.escapeShellArg sandboxSccacheDir} + chmod 0777 ${final.lib.escapeShellArg sandboxSccacheDir} || true + export SCCACHE_SERVER_UDS="$TMPDIR/sccache/server.sock" + 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 "") + '' + + ${buildSccacheLauncher}/bin/build-sccache --show-stats --stats-format text || true + ${buildSccacheLauncher}/bin/build-sccache --stop-server || true + ''; + }; + mkCmakeSccacheAttrs = + old: + let + sccacheLauncher = mkSccacheLauncher { + name = "cmake-sccache"; + passthroughWrappedCompiler = true; + }; + in + { + cmakeFlags = (old.cmakeFlags or [ ]) ++ [ + "-DCMAKE_C_COMPILER_LAUNCHER=${sccacheLauncher}/bin/cmake-sccache" + "-DCMAKE_CXX_COMPILER_LAUNCHER=${sccacheLauncher}/bin/cmake-sccache" + ]; + + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ sccacheLauncher ]; + + preConfigure = (old.preConfigure or "") + '' + + mkdir -p ${final.lib.escapeShellArg sandboxSccacheDir} + chmod 0777 ${final.lib.escapeShellArg sandboxSccacheDir} || true + export SCCACHE_SERVER_UDS="$TMPDIR/sccache/server.sock" + 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 + ''; + + postBuild = (old.postBuild or "") + '' + + ${sccacheLauncher}/bin/cmake-sccache --show-stats --stats-format text || true + ${sccacheLauncher}/bin/cmake-sccache --stop-server || true + ''; + }; + mkSccacheStdenv = + { + stdenv, + sccacheDir ? "/var/cache/sccache/nix-builds/packages", + sccacheServerUds ? null, + noDaemon ? true, + }: + let + cc = stdenv.cc; + ccName = "${cc.targetPrefix or ""}cc"; + cxxName = "${cc.targetPrefix or ""}c++"; + sccacheLauncher = mkSccacheLauncher { + name = "stdenv-sccache"; + inherit sccacheDir sccacheServerUds noDaemon; + }; + sccacheCc = cc.overrideAttrs (old: { + setupHooks = (old.setupHooks or [ ]) ++ [ + (final.writeText "sccache-wrapped-compiler-hook.sh" '' + set_sccache_passthrough_for_cmake_configure() { + case " ''${nativeBuildInputs:-} ''${propagatedNativeBuildInputs:-} " in + *"/cmake-"*) + export SCCACHE_WRAPPED_COMPILER_PASSTHROUGH=1 + ;; + *) + if [ -n "''${cmakeFlags:-}" ] || [ -n "''${cmakeDir:-}" ] || [ -n "''${cmakeBuildType:-}" ]; then + export SCCACHE_WRAPPED_COMPILER_PASSTHROUGH=1 + fi + ;; + esac + } + + clear_sccache_passthrough_after_configure() { + unset SCCACHE_WRAPPED_COMPILER_PASSTHROUGH + } + + preConfigureHooks+=(set_sccache_passthrough_for_cmake_configure) + postConfigureHooks+=(clear_sccache_passthrough_after_configure) + '') + ]; + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ + final.makeWrapper + sccacheLauncher + ]; + postFixup = (old.postFixup or "") + '' + + wrap_with_sccache() { + local tool_path="$1" + if [ ! -x "$tool_path" ]; then + return 0 + fi + + mv "$tool_path" "$tool_path.orig" + makeWrapper ${sccacheLauncher}/bin/stdenv-sccache "$tool_path" \ + --add-flags "$tool_path.orig" + } + + wrap_with_sccache "$out/bin/${ccName}" + wrap_with_sccache "$out/bin/${cxxName}" + wrap_with_sccache "$out/bin/gcc" + wrap_with_sccache "$out/bin/g++" + wrap_with_sccache "$out/bin/clang" + wrap_with_sccache "$out/bin/clang++" + wrap_with_sccache "$out/bin/arocc" + ''; + }); + in + final.overrideCC stdenv sccacheCc; in { + sccache-config = sharedSccacheConfig; + intel-sycl = modify prev."intel-sycl" ( + syFinal: syPrev: { + llvm = modify syPrev.llvm mkCmakeSccacheAttrs; + lld = modify syPrev.lld mkCmakeSccacheAttrs; + stdenv = mkSccacheStdenv { + stdenv = syPrev.stdenv; + }; + } + ); # xdg-desktop-portal-cosmic = prev.xdg-desktop-portal-cosmic.overrideAttrs (old: { # postPatch = (old.postPatch or "") + '' # unitDir="$out/lib/systemd/user" @@ -11,29 +248,34 @@ in # ''; # }); # ); - codex = prev.codex.overrideAttrs ( + codex = modify prev.codex ( old: let version = "0.114.0"; - src = prev.fetchFromGitHub { - owner = "openai"; - repo = "codex"; - tag = "rust-v${version}"; - hash = "sha256-7t+mVwP4+YrG1ciI+OLqsK7TUM9SrDbPsJNrt26iy9c="; - #hash = ""; - }; in - { - inherit version src; - sourceRoot = "${src.name}/codex-rs"; - - cargoDeps = prev.rustPlatform.fetchCargoVendor { - inherit src; + (versionBumpAttrs old.version version ( + let + src = prev.fetchFromGitHub { + owner = "openai"; + repo = "codex"; + tag = "rust-v${version}"; + hash = "sha256-7t+mVwP4+YrG1ciI+OLqsK7TUM9SrDbPsJNrt26iy9c="; + #hash = ""; + }; + in + { + inherit version src; sourceRoot = "${src.name}/codex-rs"; - hash = "sha256-XThIexu3V18JG4OtyvYmybaRMctYpDuBLLH+lUvrtt8="; - #hash = prev.lib.fakeHash; - }; + cargoDeps = prev.rustPlatform.fetchCargoVendor { + inherit src; + sourceRoot = "${src.name}/codex-rs"; + hash = "sha256-XThIexu3V18JG4OtyvYmybaRMctYpDuBLLH+lUvrtt8="; + #hash = prev.lib.fakeHash; + }; + } + )) + // { buildInputs = (old.buildInputs or [ ]) ++ [ prev.libcap ]; preBuild = (old.preBuild or "") + '' @@ -42,28 +284,191 @@ in ''; } ); - llama-cpp = prev.llama-cpp.overrideAttrs (old: rec { - version = "8124"; - src = prev.fetchFromGitHub { - owner = "ggml-org"; - repo = "llama.cpp"; - tag = "b${version}"; - hash = old.src.hash; - }; - # nativeBuildInputs = old.nativeBuildInputs ++ [ prev.pkgs.curl ]; - }); - pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [ - (pyFinal: pyPrev: { - haystack-ai = pyPrev.haystack-ai.overridePythonAttrs (old: rec { - version = "2.24.1"; + electron_39 = + let + angleLib = final.lib.getLib final.angle; + electronUnwrapped = modify prev.electron_39.passthru.unwrapped ( + old: + let + buildSccacheAttrs = mkBuildSccacheAttrs old; + electronGnFlags = + "${old.gnFlags or ""} 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 "") + '' - src = final.fetchFromGitHub { - owner = "deepset-ai"; - repo = "haystack"; - rev = "v${version}"; - hash = "sha256-tlQ3Bp+HcIsmoUoOMkm2APUSgNcdsujMUnSx+un/r8c="; + 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; + }; + oneapi-ccl = modify (prev.oneapi-ccl.override { + intel-sycl = final."intel-sycl"; + }) ( + old: + let + version = "2021.17.2"; + intelSycl = final."intel-sycl".llvm; + intelSyclDev = final.lib.getDev intelSycl; + intelSyclLib = final.lib.getLib intelSycl; + levelZero = final.lib.getDev final.level-zero; + openclHeaders = final.opencl-headers; + cmakeSccacheAttrs = mkCmakeSccacheAttrs old; + in + (versionBumpAttrs old.version version { + inherit version; + + src = prev.fetchFromGitHub { + owner = "uxlfoundation"; + repo = "oneCCL"; + rev = version; + hash = "sha256-dV1PadrcJSdwwpNxXAK1fo/B5p26Lvd36wqC+xM5KJM="; + }; + }) + // cmakeSccacheAttrs + // { + setOutputFlags = false; + + postPatch = (old.postPatch or "") + '' + mkdir -p deps/level_zero + rm -rf 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\ +#cmakedefine CCL_ENABLE_SYCL\ +#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 '/^inline sycl::event get_last_event(const sycl::queue &q) {$/, /^inline sycl::event submit_wait_on_events(sycl::queue q, const std::vector &deps) {$/c\ +inline sycl::event get_last_event(const sycl::queue &q) {\ + auto last_event_opt = q.ext_oneapi_get_last_event();\ + if (last_event_opt.has_value()) {\ + return last_event_opt.value();\ + }\ + return sycl::event{};\ +}\ +\ +inline sycl::event submit_wait_on_events(sycl::queue q, const std::vector \&deps) {' src/coll/algorithms/utils/sycl_coll_base.hpp + + 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' {} + + + awk ' + pending { + if ($0 ~ /^[[:space:]]*send_buf, new_send_count,/) { + sub(/send_buf, new_send_count,/, "q, send_buf, new_send_count,") + } + pending = 0 + } + /^[[:space:]]*e = allgatherv_large\($/ { + pending = 1 + } + { print } + ' src/coll/algorithms/allgatherv/sycl/allgatherv_sycl.cpp \ + > src/coll/algorithms/allgatherv/sycl/allgatherv_sycl.cpp.tmp + mv src/coll/algorithms/allgatherv/sycl/allgatherv_sycl.cpp.tmp \ + src/coll/algorithms/allgatherv/sycl/allgatherv_sycl.cpp + ''; + + cmakeFlags = (cmakeSccacheAttrs.cmakeFlags or [ ]) ++ [ + "-DCMAKE_INSTALL_INCLUDEDIR=include" + "-DINTEL_SYCL_INCLUDE_DIRS=${intelSyclDev}/include" + "-DINTEL_SYCL_LIBRARIES=${intelSyclLib}/lib/libsycl.so" + ]; + + buildInputs = (old.buildInputs or [ ]) ++ [ openclHeaders ]; + + meta = (old.meta or { }) // { + broken = false; + }; + } + ); + oneapi-dpl = + let + version = "2022.11.1"; + in + modify prev.oneapi-dpl (old: + (versionBumpAttrs old.version version { + inherit version; + + src = prev.fetchFromGitHub { + owner = "uxlfoundation"; + repo = "oneDPL"; + rev = "oneDPL-${version}-release"; + hash = "sha256-NfyV34mdKfCxlU+l6ETKWcC9MwvVEgwcBedtLe6WCV4="; }; + meta = (old.meta or { }) // { + changelog = "https://github.com/uxlfoundation/oneDPL/releases/tag/oneDPL-${version}-release"; + }; + }) + // (mkCmakeSccacheAttrs old) + ); + llama-cpp = modify prev.llama-cpp ( + old: + let + version = "8124"; + in + (versionBumpAttrs old.version version { + inherit version; + src = prev.fetchFromGitHub { + owner = "ggml-org"; + repo = "llama.cpp"; + tag = "b${version}"; + hash = old.src.hash; + }; + }) + // (mkCmakeSccacheAttrs old) + ); + pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [ + (pyFinal: pyPrev: { + haystack-ai = modify pyPrev.haystack-ai ( + old: + let + version = "2.24.1"; + in + (versionBumpAttrs old.version version { + inherit version; + + src = final.fetchFromGitHub { + owner = "deepset-ai"; + repo = "haystack"; + rev = "v${version}"; + hash = "sha256-tlQ3Bp+HcIsmoUoOMkm2APUSgNcdsujMUnSx+un/r8c="; + }; + }) + // { propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ (with pyPrev; [ @@ -79,8 +484,9 @@ in meta = (old.meta or { }) // { broken = false; }; - }); - sseclient-py = pyPrev.sseclient-py.overridePythonAttrs (old: rec { + } + ); + sseclient-py = modify pyPrev.sseclient-py (old: rec { format = "pyproject"; nativeBuildInputs = (old.nativeBuildInputs or [ ]) @@ -91,24 +497,31 @@ in ]); doCheck = false; }); - vllm = pyPrev.vllm.overridePythonAttrs (old: rec { - version = "0.17.1"; + vllm = modify pyPrev.vllm ( + old: + let + version = "0.17.1"; + in + versionBumpAttrs old.version version { + inherit version; - src = final.fetchFromGitHub { - owner = "vllm-project"; - repo = "vllm"; - rev = "v${version}"; - hash = "sha256-EZozwA+GIjN8/CBNhtdeM3HsPhVdx1/J0B9gvvn2qKU="; - }; - }); + src = final.fetchFromGitHub { + owner = "vllm-project"; + repo = "vllm"; + rev = "v${version}"; + hash = "sha256-EZozwA+GIjN8/CBNhtdeM3HsPhVdx1/J0B9gvvn2qKU="; + }; + } + ); }) ]; - lutris-unwrapped = prev.lutris-unwrapped.overrideAttrs ( + lutris-unwrapped = modify prev.lutris-unwrapped ( old: let version = "0.5.22"; in - { + versionBumpAttrs old.version version { + inherit version; src = prev.fetchFromGitHub { owner = "lutris"; repo = "lutris"; @@ -117,12 +530,10 @@ in }; } ); - winetricks = final.symlinkJoin { - name = "winetricks-${prev.winetricks.version}"; - paths = [ prev.winetricks ]; - nativeBuildInputs = [ final.makeWrapper ]; + winetricks = modify prev.winetricks (old: { + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ final.makeWrapper ]; - postBuild = '' + postFixup = (old.postFixup or "") + '' wrapProgram "$out/bin/winetricks" \ --prefix PATH : "${final.lib.makeBinPath [ winePkg ]}" \ --set-default WINE "${winePkg}/bin/wine" \ @@ -130,9 +541,7 @@ in --run ': "''${WINE_BIN:=$wine_dir/.wine}"' \ --run 'export WINE WINESERVER WINE_BIN WINESERVER_BIN' ''; - - meta = prev.winetricks.meta; - }; + }); # winetricks = prev.winetricks.overrideAttrs ( # old: # let diff --git a/flake.lock b/flake.lock index d670d25..ede1a9d 100644 --- a/flake.lock +++ b/flake.lock @@ -46,11 +46,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1773421907, - "narHash": "sha256-TN8Qf8RhmOX7TAwhdjGaE/clgAxzfHwsOjGSxz0Bz/0=", + "lastModified": 1773504138, + "narHash": "sha256-CQZelDz8KtJBcY88cP9KKpqD5WNYkkwOR2U7RhW53T8=", "owner": "sadjow", "repo": "claude-code-nix", - "rev": "4746a848ccb3e1ba1a1c99fd063bf998045b81ac", + "rev": "57fec627abf180c338ebdf1b0c5230b59e536ce0", "type": "github" }, "original": { @@ -176,11 +176,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1773118123, - "narHash": "sha256-uwU+JTxjzveJgepaA84gyi28cx/akT7RE/qH8s7qMjk=", + "lastModified": 1773492089, + "narHash": "sha256-ZKzjqbc4vAivOptaxEsfWt9yoD7rmlYVyTgr168+sdc=", "owner": "imaviso", "repo": "dwproton-flake", - "rev": "2279531470e2d98febfe0ad7433bcbd7dc83c9aa", + "rev": "ec94234a5c7d185855975c5854115c7cacef7323", "type": "github" }, "original": { @@ -451,11 +451,11 @@ ] }, "locked": { - "lastModified": 1773422513, - "narHash": "sha256-MPjR48roW7CUMU6lu0+qQGqj92Kuh3paIulMWFZy+NQ=", + "lastModified": 1773681856, + "narHash": "sha256-+bRqxoFCJFO9ZTFhcCkzNXbDT3b8AEk88fyjB7Is6eo=", "owner": "nix-community", "repo": "home-manager", - "rev": "ef12a9a2b0f77c8fa3dda1e7e494fca668909056", + "rev": "57d5560ee92a424fb71fde800acd6ed2c725dfce", "type": "github" }, "original": { @@ -540,16 +540,16 @@ "kernel-src": { "flake": false, "locked": { - "lastModified": 1773006395, - "narHash": "sha256-f3IzNvzYFskEwgQZi2v0g5tcKabCUZfpDHn2x5dpNIU=", + "lastModified": 1773493865, + "narHash": "sha256-3f17iyo1Dh96KKPYLAGFAUQxVZrxe06ne2uy/Y3FPuE=", "ref": "refs/heads/drm-tip", - "rev": "6884fe03ff2bc5a2f501ba4710f950dd4933ac84", + "rev": "bbe6ae2e40f59b05f04a75989b3b3bbb005342a2", "shallow": true, "type": "git", "url": "https://gitlab.freedesktop.org/drm/tip.git" }, "original": { - "rev": "6884fe03ff2bc5a2f501ba4710f950dd4933ac84", + "rev": "bbe6ae2e40f59b05f04a75989b3b3bbb005342a2", "shallow": true, "type": "git", "url": "https://gitlab.freedesktop.org/drm/tip.git" @@ -611,11 +611,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1773390002, - "narHash": "sha256-0RVjh9h0sgPHngxEs/Wd2/xdGsgKgZWjxFu5JsX3ASw=", + "lastModified": 1773675540, + "narHash": "sha256-P4S7I15rxuJ+Iq7F4Z1OrMAcZaJEiIasYNioiJjc4/s=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "adc63b19724247f947385381481effd225a6e2fc", + "rev": "9061fa226d41fceec5bcec72e0e7ee2282b5645e", "type": "github" }, "original": { @@ -680,11 +680,11 @@ ] }, "locked": { - "lastModified": 1772945408, - "narHash": "sha256-PMt48sEQ8cgCeljQ9I/32uoBq/8t8y+7W/nAZhf72TQ=", + "lastModified": 1773552174, + "narHash": "sha256-mHSRNrT1rjeYBgkAlj07dW3+1nFEgAd8Gu6lgyfT9DU=", "owner": "nix-community", "repo": "nix-index-database", - "rev": "1c1d8ea87b047788fd7567adf531418c5da321ec", + "rev": "8faeb68130df077450451b6734a221ba0d6cde42", "type": "github" }, "original": { @@ -726,11 +726,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1773222311, - "narHash": "sha256-BHoB/XpbqoZkVYZCfXJXfkR+GXFqwb/4zbWnOr2cRcU=", + "lastModified": 1773610124, + "narHash": "sha256-EpC7ELOKmb+xXaqpK5ZRpJ5g9fxxg6tWny7/rUBfrwk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "0590cd39f728e129122770c029970378a79d076a", + "rev": "9fe1300f4360e13f39d6d1d006e54fd5093e9ad5", "type": "github" }, "original": { @@ -787,11 +787,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1773282481, - "narHash": "sha256-b/GV2ysM8mKHhinse2wz+uP37epUrSE+sAKXy/xvBY4=", + "lastModified": 1773646010, + "narHash": "sha256-iYrs97hS7p5u4lQzuNWzuALGIOdkPXvjz7bviiBjUu8=", "owner": "nixos", "repo": "nixpkgs", - "rev": "fe416aaedd397cacb33a610b33d60ff2b431b127", + "rev": "5b2c2d84341b2afb5647081c1386a80d7a8d8605", "type": "github" }, "original": { @@ -1015,11 +1015,11 @@ ] }, "locked": { - "lastModified": 1772751120, - "narHash": "sha256-4cBOTPXv6Pkqa6qL1SH3UZTShciQWpyKJy3c3cQEU8I=", + "lastModified": 1773673214, + "narHash": "sha256-cjdDXKuMFO9mtBr1jCQsfKMsPBUdbG/8Hklhym29X5k=", "owner": "mozilla", "repo": "sccache", - "rev": "2b65ac80ed3a3ff63c41711d65ae10106a163a09", + "rev": "7b751fccd4e3dfc4e16564f967dae306649dee0b", "type": "github" }, "original": { @@ -1288,11 +1288,11 @@ "xwayland-satellite-unstable": { "flake": false, "locked": { - "lastModified": 1772429643, - "narHash": "sha256-M+bAeCCcjBnVk6w/4dIVvXvpJwOKnXjwi/lDbaN6Yws=", + "lastModified": 1773622265, + "narHash": "sha256-wToKwH7IgWdGLMSIWksEDs4eumR6UbbsuPQ42r0oTXQ=", "owner": "Supreeeme", "repo": "xwayland-satellite", - "rev": "10f985b84cdbcc3bbf35b3e7e43d1b2a84fa9ce2", + "rev": "a879e5e0896a326adc79c474bf457b8b99011027", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 425dcc1..cc4b9c0 100644 --- a/flake.nix +++ b/flake.nix @@ -51,7 +51,7 @@ let system = "x86_64-linux"; # pkgs = nixpkgs.${system}.packages; - pkgs = nixpkgs { + pkgs = import nixpkgs { inherit system; overlays = [ sccache.overlays.default @@ -101,6 +101,12 @@ intel-ocl vpl-gpu-rt intel-compute-runtime + ### intel-hw + oneapi-ccl + oneapi-dpl + oneapi-math + oneapi-tbb + unified-memory-framework ] ); # ++ (with inputs.intel-hw.packages."${system}"; [ @@ -145,7 +151,7 @@ RestartSec = 2; }; environment = { - SCCACHE_DIR = "/var/cache/sccache"; + SCCACHE_CONF = pkgs."sccache-config"; SCCACHE_SERVER_UDS = "/run/sccache/server.sock"; SCCACHE_IDLE_TIMEOUT = "0"; SCCACHE_START_SERVER = "1";