From 070eb31c8c899bcceacc2c45fe66a526ebc39551 Mon Sep 17 00:00:00 2001 From: Ihar Hrachyshka Date: Thu, 11 Sep 2025 18:22:29 -0400 Subject: [PATCH 1/4] llama-cpp: require newer apple sdk for Metal Latest update [1] pulled code that relies on MTLBuffer `gpuaddress` property that was added in macOS 13.0+ [2]. Build failed with: error: property 'gpuAddress' not found on object of type 'id' [1] https://github.com/NixOS/nixpkgs/pull/438529 [2] https://developer.apple.com/documentation/metal/mtlbuffer/gpuaddress --- pkgs/by-name/ll/llama-cpp/package.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/by-name/ll/llama-cpp/package.nix b/pkgs/by-name/ll/llama-cpp/package.nix index 9f9af59cc7de..376ec300c826 100644 --- a/pkgs/by-name/ll/llama-cpp/package.nix +++ b/pkgs/by-name/ll/llama-cpp/package.nix @@ -30,6 +30,7 @@ metalSupport ? stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64 && !openclSupport, vulkanSupport ? false, rpcSupport ? false, + apple-sdk_14, curl, shaderc, vulkan-headers, @@ -119,6 +120,7 @@ effectiveStdenv.mkDerivation (finalAttrs: { ++ optionals rocmSupport rocmBuildInputs ++ optionals blasSupport [ blas ] ++ optionals vulkanSupport vulkanBuildInputs + ++ optionals metalSupport [ apple-sdk_14 ] ++ [ curl ]; preConfigure = '' From 94f2a818e8650546d71f56149091546f3efecb65 Mon Sep 17 00:00:00 2001 From: Ihar Hrachyshka Date: Thu, 11 Sep 2025 18:29:17 -0400 Subject: [PATCH 2/4] llama-cpp: remove with lib; --- pkgs/by-name/ll/llama-cpp/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/ll/llama-cpp/package.nix b/pkgs/by-name/ll/llama-cpp/package.nix index 376ec300c826..07d7ad0e71b4 100644 --- a/pkgs/by-name/ll/llama-cpp/package.nix +++ b/pkgs/by-name/ll/llama-cpp/package.nix @@ -183,17 +183,17 @@ effectiveStdenv.mkDerivation (finalAttrs: { ]; }; - meta = with lib; { + meta = { description = "Inference of Meta's LLaMA model (and others) in pure C/C++"; homepage = "https://github.com/ggml-org/llama.cpp"; - license = licenses.mit; + license = lib.licenses.mit; mainProgram = "llama"; - maintainers = with maintainers; [ + maintainers = with lib.maintainers; [ dit7ya philiptaron xddxdd ]; - platforms = platforms.unix; + platforms = lib.platforms.unix; badPlatforms = optionals (cudaSupport || openclSupport) lib.platforms.darwin; broken = metalSupport && !effectiveStdenv.hostPlatform.isDarwin; }; From 2eb6522e21c8795e31bd00fbf86d69496763979e Mon Sep 17 00:00:00 2001 From: Ihar Hrachyshka Date: Thu, 11 Sep 2025 18:32:18 -0400 Subject: [PATCH 3/4] llama-cpp: add metal test case --- pkgs/by-name/ll/llama-cpp/package.nix | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/ll/llama-cpp/package.nix b/pkgs/by-name/ll/llama-cpp/package.nix index 07d7ad0e71b4..4b259bf9dad2 100644 --- a/pkgs/by-name/ll/llama-cpp/package.nix +++ b/pkgs/by-name/ll/llama-cpp/package.nix @@ -32,6 +32,7 @@ rpcSupport ? false, apple-sdk_14, curl, + llama-cpp, shaderc, vulkan-headers, vulkan-loader, @@ -175,12 +176,17 @@ effectiveStdenv.mkDerivation (finalAttrs: { # the tests are failing as of 2025-08 doCheck = false; - passthru.updateScript = nix-update-script { - attrPath = "llama-cpp"; - extraArgs = [ - "--version-regex" - "b(.*)" - ]; + passthru = { + tests = { + metal = llama-cpp.override { metalSupport = true; }; + }; + updateScript = nix-update-script { + attrPath = "llama-cpp"; + extraArgs = [ + "--version-regex" + "b(.*)" + ]; + }; }; meta = { From 8e99f421475e3c189a5ef35e5f5f3021a3d4d017 Mon Sep 17 00:00:00 2001 From: Ihar Hrachyshka Date: Thu, 11 Sep 2025 18:32:52 -0400 Subject: [PATCH 4/4] llama-cpp: add booxter as maintainer I already maintain llama-cpp-python and I have some awareness of llama-cpp build system, as well as contributed some patches for Metal supportto ggml. I'd like to be notified about updates to confirm Darwin is not broken. --- pkgs/by-name/ll/llama-cpp/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/ll/llama-cpp/package.nix b/pkgs/by-name/ll/llama-cpp/package.nix index 4b259bf9dad2..c3ae8e1dc0c7 100644 --- a/pkgs/by-name/ll/llama-cpp/package.nix +++ b/pkgs/by-name/ll/llama-cpp/package.nix @@ -195,6 +195,7 @@ effectiveStdenv.mkDerivation (finalAttrs: { license = lib.licenses.mit; mainProgram = "llama"; maintainers = with lib.maintainers; [ + booxter dit7ya philiptaron xddxdd