From 3d694b826b2222f2ec43f53da0104ca31b1a2a58 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Wed, 14 Jan 2026 14:57:43 +0000 Subject: [PATCH 1/2] ggml: init at 0.9.5 --- pkgs/by-name/gg/ggml/package.nix | 45 ++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 pkgs/by-name/gg/ggml/package.nix diff --git a/pkgs/by-name/gg/ggml/package.nix b/pkgs/by-name/gg/ggml/package.nix new file mode 100644 index 000000000000..f4ab7cd27c79 --- /dev/null +++ b/pkgs/by-name/gg/ggml/package.nix @@ -0,0 +1,45 @@ +{ + lib, + stdenv, + fetchFromGitHub, + cmake, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "ggml"; + version = "0.9.5"; + + src = fetchFromGitHub { + owner = "ggml-org"; + repo = "ggml"; + tag = "v${finalAttrs.version}"; + hash = "sha256-lNrON8vKUJU7cxfpRKsVCIWqZj3xtkaf/Fv8zNZFN6o="; + }; + + # The cmake package does not handle absolute CMAKE_INSTALL_LIBDIR and CMAKE_INSTALL_INCLUDEDIR + # correctly. + # Tracking: https://github.com/NixOS/nixpkgs/issues/144170 + postPatch = '' + substituteInPlace ggml.pc.in \ + --replace-fail \ + "\''${prefix}/@CMAKE_INSTALL_INCLUDEDIR@" \ + "@CMAKE_INSTALL_FULL_INCLUDEDIR@" \ + --replace-fail \ + "\''${prefix}/@CMAKE_INSTALL_LIBDIR@" \ + "@CMAKE_INSTALL_FULL_LIBDIR@" + ''; + + strictDeps = true; + + nativeBuildInputs = [ + cmake + ]; + + meta = { + description = "Tensor library for machine learning"; + homepage = "https://github.com/ggml-org/ggml"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ GaetanLepage ]; + platforms = lib.platforms.all; + }; +}) From a568ec4e70c78d310090d111ceb4d642c83dc43b Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Wed, 14 Jan 2026 15:20:41 +0000 Subject: [PATCH 2/2] python3Packages.ggml-python: init at 0.0.37 --- .../python-modules/ggml-python/default.nix | 102 ++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 104 insertions(+) create mode 100644 pkgs/development/python-modules/ggml-python/default.nix diff --git a/pkgs/development/python-modules/ggml-python/default.nix b/pkgs/development/python-modules/ggml-python/default.nix new file mode 100644 index 000000000000..e8d9ba375597 --- /dev/null +++ b/pkgs/development/python-modules/ggml-python/default.nix @@ -0,0 +1,102 @@ +{ + lib, + stdenv, + buildPythonPackage, + fetchFromGitHub, + replaceVars, + + # build-system + cmake, + ninja, + scikit-build-core, + + # buildInputs + ggml, + + # dependencies + numpy, + typing-extensions, + + # optional-dependencies + accelerate, + sentencepiece, + torch, + torchaudio, + torchvision, + transformers, + cairosvg, + mkdocs, + mkdocs-material, + mkdocstrings, + pillow, + + # tests + pytestCheckHook, +}: + +buildPythonPackage (finalAttrs: { + pname = "ggml-python"; + version = "0.0.37"; + pyproject = true; + + src = fetchFromGitHub { + owner = "abetlen"; + repo = "ggml-python"; + tag = "v${finalAttrs.version}"; + # ggml-python expects an older version of ggml than pkgs.ggml's + fetchSubmodules = true; + hash = "sha256-QFpUGQ8m4c0SpHWnHhoyPdQkcywBToeLahDtG+JMcmA="; + }; + + build-system = [ + cmake + ninja + scikit-build-core + ]; + dontUseCmakeConfigure = true; + + buildInputs = [ + ggml + ]; + + dependencies = [ + numpy + typing-extensions + ]; + + optional-dependencies = { + convert = [ + accelerate + numpy + sentencepiece + torch + torchaudio + torchvision + transformers + ]; + docs = [ + cairosvg + mkdocs + mkdocs-material + mkdocstrings + pillow + ]; + }; + + pythonImportsCheck = [ "ggml" ]; + + preCheck = '' + rm -rf ggml + ''; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + meta = { + description = "Python bindings for ggml"; + homepage = "https://github.com/abetlen/ggml-python"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ GaetanLepage ]; + }; +}) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 56376101a6cb..e8cb7b69dc79 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -6111,6 +6111,8 @@ self: super: with self; { gftools = callPackage ../development/python-modules/gftools { }; + ggml-python = callPackage ../development/python-modules/ggml-python { }; + gguf = callPackage ../development/python-modules/gguf { }; ghapi = callPackage ../development/python-modules/ghapi { };