736 lines
23 KiB
Nix
736 lines
23 KiB
Nix
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";
|
|
mkRealCompilerBasePath =
|
|
{
|
|
name,
|
|
toolchain,
|
|
}:
|
|
final.runCommand name { } ''
|
|
resolve_orig_cc_root() {
|
|
local current_root="$1"
|
|
local next_root
|
|
|
|
while [ -r "$current_root/nix-support/orig-cc" ]; do
|
|
next_root="$(tr -d '\n' < "$current_root/nix-support/orig-cc")"
|
|
if [ -z "$next_root" ] || [ "$next_root" = "$current_root" ]; then
|
|
break
|
|
fi
|
|
current_root="$next_root"
|
|
done
|
|
|
|
printf '%s\n' "$current_root"
|
|
}
|
|
|
|
wrapped_clang="$(readlink -f ${toolchain}/bin/clang)"
|
|
wrapped_root="$(dirname "$(dirname "$wrapped_clang")")"
|
|
orig_cc_root="$(resolve_orig_cc_root "$wrapped_root")"
|
|
|
|
if [ -z "$orig_cc_root" ] || [ ! -d "$orig_cc_root/bin" ]; then
|
|
echo "mkRealCompilerBasePath: invalid orig-cc root: $orig_cc_root" >&2
|
|
exit 1
|
|
fi
|
|
if [ ! -x "$orig_cc_root/bin/clang" ] || [ ! -x "$orig_cc_root/bin/clang++" ]; then
|
|
echo "mkRealCompilerBasePath: clang or clang++ missing in $orig_cc_root/bin" >&2
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p "$out/bin"
|
|
|
|
for executable in ${toolchain}/bin/*; do
|
|
executable_name="$(basename "$executable")"
|
|
case "$executable_name" in
|
|
clang|clang++|cc|c++)
|
|
continue
|
|
;;
|
|
esac
|
|
ln -s "$executable" "$out/bin/$executable_name"
|
|
done
|
|
|
|
ln -s "$orig_cc_root/bin/clang" "$out/bin/clang"
|
|
ln -s "$orig_cc_root/bin/clang++" "$out/bin/clang++"
|
|
ln -s clang "$out/bin/cc"
|
|
ln -s clang++ "$out/bin/c++"
|
|
|
|
for path in ${toolchain}/*; do
|
|
path_name="$(basename "$path")"
|
|
if [ "$path_name" != bin ]; then
|
|
ln -s "$path" "$out/$path_name"
|
|
fi
|
|
done
|
|
'';
|
|
mkSccacheLauncher =
|
|
{
|
|
name,
|
|
sccacheDir ? null,
|
|
sccacheServerUds ? null,
|
|
sccacheCacheSize ? "100G",
|
|
noDaemon ? false,
|
|
passthroughWrappedCompiler ? false,
|
|
extraSetup ? "",
|
|
}:
|
|
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 response_file
|
|
for arg in "$@"; do
|
|
case "$arg" in
|
|
*CMakeFiles/*CompilerId*|*CMakeFiles/CMakeTmp/*|*CMakeScratch/*)
|
|
return 0
|
|
;;
|
|
@*)
|
|
response_file="''${arg#@}"
|
|
if [ -f "$response_file" ] && grep -Eq 'CMakeFiles/.+CompilerId|CMakeFiles/CMakeTmp|CMakeScratch' "$response_file"; then
|
|
return 0
|
|
fi
|
|
;;
|
|
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}
|
|
''}
|
|
${extraSetup}
|
|
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}
|
|
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}
|
|
export SCCACHE_WRAPPED_COMPILER_PASSTHROUGH=1
|
|
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
|
|
'';
|
|
|
|
postConfigure = (old.postConfigure or "") + ''
|
|
unset SCCACHE_WRAPPED_COMPILER_PASSTHROUGH
|
|
'';
|
|
|
|
postBuild = (old.postBuild or "") + ''
|
|
|
|
${sccacheLauncher}/bin/cmake-sccache --show-stats --stats-format text || true
|
|
${sccacheLauncher}/bin/cmake-sccache --stop-server || true
|
|
'';
|
|
};
|
|
mkSccacheExtraConfig =
|
|
{
|
|
sccacheDir ? sandboxSccacheDir,
|
|
extraConfig ? "",
|
|
}:
|
|
''
|
|
mkdir -p ${final.lib.escapeShellArg sccacheDir}
|
|
export SCCACHE_CONF=${final.lib.escapeShellArg (
|
|
final.writeText "sccache-stdenv.conf" ''
|
|
[cache.disk]
|
|
dir = "${sccacheDir}"
|
|
size = "100G"
|
|
''
|
|
)}
|
|
export SCCACHE_NO_DAEMON=1
|
|
unset SCCACHE_SERVER_UDS
|
|
${extraConfig}
|
|
'';
|
|
mkWrappedCcForSccache =
|
|
{
|
|
cc,
|
|
extraConfig ? "",
|
|
}:
|
|
let
|
|
wrappedCompiler = final.sccache.links {
|
|
inherit extraConfig;
|
|
unwrappedCC = cc.cc;
|
|
};
|
|
overrideArgs = cc.override.__functionArgs or { };
|
|
in
|
|
if overrideArgs ? cc then
|
|
cc.override { cc = wrappedCompiler; }
|
|
else if overrideArgs ? llvm then
|
|
cc.override { llvm = wrappedCompiler; }
|
|
else
|
|
throw "mkWrappedCcForSccache: unsupported compiler wrapper override interface";
|
|
mkSccacheStdenv =
|
|
{
|
|
stdenv,
|
|
sccacheDir ? "/var/cache/sccache/nix-builds/packages",
|
|
extraConfig ? "",
|
|
}:
|
|
final.overrideCC stdenv (
|
|
mkWrappedCcForSccache {
|
|
inherit (stdenv) cc;
|
|
extraConfig = mkSccacheExtraConfig {
|
|
inherit extraConfig sccacheDir;
|
|
};
|
|
}
|
|
);
|
|
in
|
|
{
|
|
sccache = modify prev.sccache (old: {
|
|
postPatch = (old.postPatch or "") + ''
|
|
substituteInPlace src/compiler/gcc.rs \
|
|
--replace-fail \
|
|
' take_arg!("-isystem", PathBuf, CanBeSeparated, PreprocessorArgumentPath),' \
|
|
' take_arg!("-isystem", PathBuf, CanBeSeparated, PreprocessorArgumentPath),
|
|
take_arg!("-cxx-isystem", PathBuf, CanBeSeparated, PreprocessorArgumentPath),'
|
|
'';
|
|
passthru = (old.passthru or { }) // {
|
|
links =
|
|
{ unwrappedCC, extraConfig ? "" }:
|
|
let
|
|
sccacheLauncher = mkSccacheLauncher {
|
|
name = "wrapped-sccache";
|
|
noDaemon = true;
|
|
extraSetup = extraConfig;
|
|
};
|
|
in
|
|
final.stdenv.mkDerivation {
|
|
pname = "sccache-links";
|
|
inherit (old) version;
|
|
passthru = {
|
|
isClang = unwrappedCC.isClang or false;
|
|
isGNU = unwrappedCC.isGNU or false;
|
|
isSccache = true;
|
|
dev = unwrappedCC.dev or null;
|
|
lib = unwrappedCC.lib or (final.lib.getLib unwrappedCC);
|
|
} // final.lib.optionalAttrs (unwrappedCC ? rsrc) {
|
|
inherit (unwrappedCC) rsrc;
|
|
};
|
|
dev = unwrappedCC.dev or null;
|
|
lib = unwrappedCC.lib or (final.lib.getLib unwrappedCC);
|
|
rsrc = unwrappedCC.rsrc or null;
|
|
nativeBuildInputs = [ final.makeWrapper ];
|
|
buildCommand =
|
|
let
|
|
targetPrefix =
|
|
if unwrappedCC.isClang or false then
|
|
""
|
|
else
|
|
(final.lib.optionalString (
|
|
unwrappedCC ? targetConfig && unwrappedCC.targetConfig != null && unwrappedCC.targetConfig != ""
|
|
) "${unwrappedCC.targetConfig}-");
|
|
in
|
|
''
|
|
mkdir -p $out/bin
|
|
mkdir -p $out/nix-support
|
|
|
|
wrap() {
|
|
local cname="${targetPrefix}$1"
|
|
if [ -x "${unwrappedCC}/bin/$cname" ]; then
|
|
makeWrapper ${sccacheLauncher}/bin/wrapped-sccache $out/bin/$cname \
|
|
--add-flags ${unwrappedCC}/bin/$cname
|
|
fi
|
|
}
|
|
|
|
wrap cc
|
|
wrap c++
|
|
wrap gcc
|
|
wrap g++
|
|
wrap clang
|
|
wrap clang++
|
|
|
|
for executable in $(ls ${unwrappedCC}/bin); do
|
|
if [ ! -x "$out/bin/$executable" ]; then
|
|
ln -s ${unwrappedCC}/bin/$executable $out/bin/$executable
|
|
fi
|
|
done
|
|
for file in $(ls ${unwrappedCC} | grep -vw bin); do
|
|
ln -s ${unwrappedCC}/$file $out/$file
|
|
done
|
|
|
|
printf '%s\n' "${unwrappedCC}" > $out/nix-support/orig-cc
|
|
'';
|
|
meta = final.lib.optionalAttrs (unwrappedCC.meta ? mainProgram) {
|
|
inherit (unwrappedCC.meta) mainProgram;
|
|
};
|
|
};
|
|
};
|
|
});
|
|
sccacheWrapper =
|
|
final.lib.makeOverridable (
|
|
{
|
|
extraConfig ? "",
|
|
cc,
|
|
}:
|
|
mkWrappedCcForSccache {
|
|
inherit cc extraConfig;
|
|
}
|
|
) {
|
|
extraConfig = "";
|
|
inherit (final.stdenv) cc;
|
|
};
|
|
sccacheStdenv = final.lib.lowPrio (
|
|
final.lib.makeOverridable (
|
|
{
|
|
stdenv,
|
|
...
|
|
}@extraArgs:
|
|
final.overrideCC stdenv (
|
|
final.buildPackages.sccacheWrapper.override (
|
|
{ inherit (stdenv) cc; }
|
|
// final.lib.optionalAttrs (builtins.hasAttr "extraConfig" extraArgs) {
|
|
extraConfig = extraArgs.extraConfig;
|
|
}
|
|
)
|
|
)
|
|
) {
|
|
inherit (final) stdenv;
|
|
}
|
|
);
|
|
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"
|
|
# ln -sfn org.freedesktop.impl.portal.desktop.cosmic.service \
|
|
# "$unitDir/xdg-desktop-portal-cosmic.service"
|
|
# '';
|
|
# });
|
|
# );
|
|
codex = modify prev.codex (
|
|
old:
|
|
let
|
|
version = "0.114.0";
|
|
in
|
|
(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";
|
|
|
|
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 "") + ''
|
|
export CARGO_PROFILE_RELEASE_LTO=thin
|
|
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 \
|
|
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<sycl::event> &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<sycl::event> \&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-math-sycl-blas = modify prev.oneapi-math-sycl-blas (
|
|
old: mkCmakeSccacheAttrs old
|
|
);
|
|
oneapi-math = modify prev.oneapi-math (
|
|
old: mkCmakeSccacheAttrs old
|
|
);
|
|
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; [
|
|
docstring-parser
|
|
filetype
|
|
jinja2
|
|
openai
|
|
])
|
|
++ [
|
|
pyFinal."haystack-experimental"
|
|
];
|
|
|
|
meta = (old.meta or { }) // {
|
|
broken = false;
|
|
};
|
|
}
|
|
);
|
|
sseclient-py = modify pyPrev.sseclient-py (old: rec {
|
|
format = "pyproject";
|
|
nativeBuildInputs =
|
|
(old.nativeBuildInputs or [ ])
|
|
++ (with pyPrev; [
|
|
hatchling
|
|
#pypaBuildHook
|
|
#pypaInstallHook
|
|
]);
|
|
doCheck = false;
|
|
});
|
|
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=";
|
|
};
|
|
}
|
|
);
|
|
})
|
|
];
|
|
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";
|
|
tag = "v${version}";
|
|
hash = "sha256-4mNknvfJQJEPZjQoNdKLQcW4CI93D6BUDPj8LtD940A=";
|
|
};
|
|
}
|
|
);
|
|
winetricks = modify prev.winetricks (old: {
|
|
nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ final.makeWrapper ];
|
|
|
|
postFixup = (old.postFixup or "") + ''
|
|
wrapProgram "$out/bin/winetricks" \
|
|
--prefix PATH : "${final.lib.makeBinPath [ winePkg ]}" \
|
|
--set-default WINE "${winePkg}/bin/wine" \
|
|
--run 'wine_dir="$(${final.coreutils}/bin/dirname "$(${final.coreutils}/bin/readlink -f "$WINE")")"' \
|
|
--run ': "''${WINE_BIN:=$wine_dir/.wine}"' \
|
|
--run 'export WINE WINESERVER WINE_BIN WINESERVER_BIN'
|
|
'';
|
|
});
|
|
# winetricks = prev.winetricks.overrideAttrs (
|
|
# old:
|
|
# let
|
|
# version = "20260125";
|
|
# in
|
|
# {
|
|
# inherit version;
|
|
# src = final.fetchurl {
|
|
# url = "https://github.com/Winetricks/winetricks/archive/refs/tags/${version}.tar.gz";
|
|
# hash = "sha256-KJC9n7ut5GOOWLSZmiNycxkt8DtYUWrnuHceCcItL1Y=";
|
|
# };
|
|
# }
|
|
# );
|
|
}
|