From 194b237e428dbaf06240c12ab1d3b060faac45ca Mon Sep 17 00:00:00 2001 From: Adam Stephens Date: Tue, 24 Sep 2024 11:43:54 -0400 Subject: [PATCH] ollama: fix rocm build upstream added this extra cp, but it fails because it has already copied over the required symlinks. since we provide our own runtime anyway, i'm not sure what value this has regardless. + for dep in $(ldd "${BUILD_DIR}/bin/ollama_llama_server" | grep "=>" | cut -f2 -d= | cut -f2 -d' ' | grep -v "${GOARCH}/rocm${ROCM_VARIANT}" | grep -e rocm -e amdgpu -e libtinfo -e libnuma -e libelf) + cp -a /nix/store/d7wl4hnydqbqc2j1qg29sybpc614wkz8-rocm-path/lib/libhipblas.so.2 /nix/store/d7wl4hnydqbqc2j1qg29sybpc614wkz8-rocm-path/lib/libhipblas.so.2.0 ../../dist/linux-amd64//../linux-amd64-rocm/lib/ollama ++ readlink -f /nix/store/d7wl4hnydqbqc2j1qg29sybpc614wkz8-rocm-path/lib/libhipblas.so.2 + '[' /nix/store/2c04lrnax0x0jcdrdins3wykm1lb1360-hipblas-6.0.2/lib/libhipblas.so.2.0 '!=' /nix/store/d7wl4hnydqbqc2j1qg29sybpc614wkz8-rocm-path/lib/libhipblas.so.2 ']' ++ readlink -f /nix/store/d7wl4hnydqbqc2j1qg29sybpc614wkz8-rocm-path/lib/libhipblas.so.2 + cp /nix/store/2c04lrnax0x0jcdrdins3wykm1lb1360-hipblas-6.0.2/lib/libhipblas.so.2.0 ../../dist/linux-amd64//../linux-amd64-rocm/lib/ollama cp: '/nix/store/2c04lrnax0x0jcdrdins3wykm1lb1360-hipblas-6.0.2/lib/libhipblas.so.2.0' and '../../dist/linux-amd64//../linux-amd64-rocm/lib/ollama/libhipblas.so.2.0' are the same file --- pkgs/by-name/ol/ollama/package.nix | 3 +++ pkgs/by-name/ol/ollama/skip-rocm-cp.patch | 14 ++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 pkgs/by-name/ol/ollama/skip-rocm-cp.patch diff --git a/pkgs/by-name/ol/ollama/package.nix b/pkgs/by-name/ol/ollama/package.nix index f16103382494..0bffd4684ca2 100644 --- a/pkgs/by-name/ol/ollama/package.nix +++ b/pkgs/by-name/ol/ollama/package.nix @@ -157,6 +157,9 @@ goBuild { # this also disables necessary patches contained in `ollama/llm/patches/` # those patches are applied in `postPatch` ./disable-git.patch + + # we provide our own deps at runtime + ./skip-rocm-cp.patch ]; postPatch = '' diff --git a/pkgs/by-name/ol/ollama/skip-rocm-cp.patch b/pkgs/by-name/ol/ollama/skip-rocm-cp.patch new file mode 100644 index 000000000000..672b3f24b497 --- /dev/null +++ b/pkgs/by-name/ol/ollama/skip-rocm-cp.patch @@ -0,0 +1,14 @@ +diff --git a/llm/generate/gen_linux.sh b/llm/generate/gen_linux.sh +index 48d08fd0..e50f7b36 100755 +--- a/llm/generate/gen_linux.sh ++++ b/llm/generate/gen_linux.sh +@@ -284,9 +284,6 @@ if [ -z "${OLLAMA_SKIP_ROCM_GENERATE}" -a -d "${ROCM_PATH}" ]; then + mkdir -p "${ROCM_DIST_DIR}" + for dep in $(ldd "${BUILD_DIR}/bin/ollama_llama_server" | grep "=>" | cut -f2 -d= | cut -f2 -d' ' | grep -v "${GOARCH}/rocm${ROCM_VARIANT}" | grep -e rocm -e amdgpu -e libtinfo -e libnuma -e libelf ); do + cp -a "${dep}"* "${ROCM_DIST_DIR}" +- if [ $(readlink -f "${dep}") != "${dep}" ] ; then +- cp $(readlink -f "${dep}") "${ROCM_DIST_DIR}" +- fi + done + install + dist