ollama: 0.5.7 -> 0.5.11 (#383387)

This commit is contained in:
Pavol Rusnak
2025-02-20 22:34:35 +01:00
committed by GitHub
+40 -18
View File
@@ -2,21 +2,22 @@
lib,
buildGoModule,
fetchFromGitHub,
fetchpatch,
buildEnv,
linkFarm,
overrideCC,
makeWrapper,
stdenv,
addDriverRunpath,
nix-update-script,
cmake,
gcc12,
gitMinimal,
clblast,
libdrm,
rocmPackages,
rocmGpuTargets ? rocmPackages.clr.gpuTargets or [ ],
cudaPackages,
cudaArches ? cudaPackages.cudaFlags.realArches or [ ],
darwin,
autoAddDriverRunpath,
versionCheckHook,
@@ -43,17 +44,17 @@ assert builtins.elem acceleration [
let
pname = "ollama";
# don't forget to invalidate all hashes each update
version = "0.5.7";
version = "0.5.11";
src = fetchFromGitHub {
owner = "ollama";
repo = "ollama";
tag = "v${version}";
hash = "sha256-DW7gHNyW1ML8kqgMFsqTxS/30bjNlWmYmeov2/uZn00=";
hash = "sha256-Yc/FwIoPvzYSxlrhjkc6xFL5iCunDYmZkG16MiWVZck=";
fetchSubmodules = true;
};
vendorHash = "sha256-1uk3Oi0n4Q39DVZe3PnZqqqmlwwoHmEolcRrib0uu4I=";
vendorHash = "sha256-wtmtuwuu+rcfXsyte1C4YLQA4pnjqqxFmH1H18Fw75g=";
validateFallback = lib.warnIf (config.rocmSupport && config.cudaSupport) (lib.concatStrings [
"both `nixpkgs.config.rocmSupport` and `nixpkgs.config.cudaSupport` are enabled, "
@@ -172,6 +173,15 @@ goBuild {
++ lib.optionals enableCuda cudaLibs
++ lib.optionals stdenv.hostPlatform.isDarwin metalFrameworks;
patches = [
# don't try to build x86_64 architectures on linux-aarch64
# NOTE: should be removed after 0.5.11
(fetchpatch {
url = "https://github.com/ollama/ollama/commit/08a299e1d0636056b09d669f9aa347139cde6ec0.patch";
hash = "sha256-PC9jQklPAN/ZdHlQEQ6/RweGGBiUPDehHyaboX0tRZk=";
})
];
# replace inaccurate version number with actual release version
postPatch = ''
substituteInPlace version/version.go \
@@ -187,24 +197,35 @@ goBuild {
preBuild =
let
dist_cmd =
if cudaRequested then
"dist_cuda_v${cudaMajorVersion}"
else if rocmRequested then
"dist_rocm"
else
"dist";
removeSMPrefix =
str:
let
matched = builtins.match "sm_(.*)" str;
in
if matched == null then str else builtins.head matched;
cudaArchitectures = builtins.concatStringsSep ";" (builtins.map removeSMPrefix cudaArches);
rocmTargets = builtins.concatStringsSep ";" rocmGpuTargets;
cmakeFlagsCudaArchitectures = lib.optionalString enableCuda "-DCMAKE_CUDA_ARCHITECTURES='${cudaArchitectures}'";
cmakeFlagsRocmTargets = lib.optionalString enableRocm "-DAMDGPU_TARGETS='${rocmTargets}'";
in
# build llama.cpp libraries for ollama
''
make ${dist_cmd} -j $NIX_BUILD_CORES
cmake -B build \
-DCMAKE_SKIP_BUILD_RPATH=ON \
-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \
${cmakeFlagsCudaArchitectures} \
${cmakeFlagsRocmTargets} \
cmake --build build -j $NIX_BUILD_CORES
'';
postInstall = lib.optionalString (stdenv.hostPlatform.isx86 || enableRocm || enableCuda) ''
# copy libggml_*.so and runners into lib
# https://github.com/ollama/ollama/blob/v0.4.4/llama/make/gpu.make#L90
# ollama looks for acceleration libs in ../lib/ollama/ (now also for CPU-only with arch specific optimizations)
# https://github.com/ollama/ollama/blob/v0.5.11/docs/development.md#library-detection
postInstall = ''
mkdir -p $out/lib
cp -r dist/*/lib/* $out/lib/
cp -r build/lib/ollama $out/lib/
'';
postFixup =
@@ -261,6 +282,7 @@ goBuild {
abysssol
dit7ya
elohmeier
prusnak
roydubnium
];
};