Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 09 Apr 2026 18:57:03 +0000
From:      Yuri Victorovich <yuri@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: f3d7bf27c485 - main - misc/ollama: update 0.20.=?utf-8?Q?2 =E2=86=92 0.?=20.4
Message-ID:  <69d7f67f.3af99.7ca4b744@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=f3d7bf27c485ac965a876158176f8dc2fa14dd9e

commit f3d7bf27c485ac965a876158176f8dc2fa14dd9e
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2026-04-09 18:56:50 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2026-04-09 18:57:00 +0000

    misc/ollama: update 0.20.2 → 0.20.4
---
 misc/ollama/Makefile                               |  2 +-
 misc/ollama/distinfo                               | 22 +++++------
 misc/ollama/files/patch-CMakeLists.txt             | 12 +++---
 .../files/patch-x_imagegen_mlx_CMakeLists.txt      | 43 +++++++++++++---------
 misc/ollama/files/patch-x_imagegen_mlx_mlx.go      | 12 +++---
 .../files/patch-x_imagegen_models_zimage_vae.go    |  6 +--
 misc/ollama/files/patch-x_imagegen_server.go       |  6 +--
 misc/ollama/files/patch-x_mlxrunner_mlx_dynamic.go | 39 +++++++++-----------
 misc/ollama/pkg-message                            |  2 +-
 9 files changed, 75 insertions(+), 69 deletions(-)

diff --git a/misc/ollama/Makefile b/misc/ollama/Makefile
index b6af2c9d50ed..2c6d9d0c6a26 100644
--- a/misc/ollama/Makefile
+++ b/misc/ollama/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	ollama
 DISTVERSIONPREFIX=	v
-DISTVERSION=	0.20.2
+DISTVERSION=	0.20.4
 CATEGORIES=	misc # machine-learning
 
 MAINTAINER=	yuri@FreeBSD.org
diff --git a/misc/ollama/distinfo b/misc/ollama/distinfo
index 35c9483925ba..b9706b3a09e0 100644
--- a/misc/ollama/distinfo
+++ b/misc/ollama/distinfo
@@ -1,11 +1,11 @@
-TIMESTAMP = 1775410961
-SHA256 (go/misc_ollama/ollama-v0.20.2/v0.31.1.tar.gz) = 37e2a585a2bb28bcd3432af1c45d5c1ba8d560704ae285c3f9fd22a041e37004
-SIZE (go/misc_ollama/ollama-v0.20.2/v0.31.1.tar.gz) = 4163405
-SHA256 (go/misc_ollama/ollama-v0.20.2/v0.6.0.tar.gz) = 6ec2eab86ed3ce661c0d9b834027870651546138b7b4470fa8ef5533498c79aa
-SIZE (go/misc_ollama/ollama-v0.20.2/v0.6.0.tar.gz) = 170186
-SHA256 (go/misc_ollama/ollama-v0.20.2/json.tar.xz) = d6c65aca6b1ed68e7a182f4757257b107ae403032760ed6ef121c9d55e81757d
-SIZE (go/misc_ollama/ollama-v0.20.2/json.tar.xz) = 110988
-SHA256 (go/misc_ollama/ollama-v0.20.2/v0.20.2.mod) = e660ffa37ad33611a4c1248967204e578f07ada9941e63ffe6a6fe3e95ac5039
-SIZE (go/misc_ollama/ollama-v0.20.2/v0.20.2.mod) = 4757
-SHA256 (go/misc_ollama/ollama-v0.20.2/v0.20.2.zip) = 6841003d5466a7ba7d6da6b8e8af89d020f380bb37b25b85316b23e729287533
-SIZE (go/misc_ollama/ollama-v0.20.2/v0.20.2.zip) = 26648607
+TIMESTAMP = 1775698154
+SHA256 (go/misc_ollama/ollama-v0.20.4/v0.31.1.tar.gz) = 37e2a585a2bb28bcd3432af1c45d5c1ba8d560704ae285c3f9fd22a041e37004
+SIZE (go/misc_ollama/ollama-v0.20.4/v0.31.1.tar.gz) = 4163405
+SHA256 (go/misc_ollama/ollama-v0.20.4/v0.6.0.tar.gz) = 6ec2eab86ed3ce661c0d9b834027870651546138b7b4470fa8ef5533498c79aa
+SIZE (go/misc_ollama/ollama-v0.20.4/v0.6.0.tar.gz) = 170186
+SHA256 (go/misc_ollama/ollama-v0.20.4/json.tar.xz) = d6c65aca6b1ed68e7a182f4757257b107ae403032760ed6ef121c9d55e81757d
+SIZE (go/misc_ollama/ollama-v0.20.4/json.tar.xz) = 110988
+SHA256 (go/misc_ollama/ollama-v0.20.4/v0.20.4.mod) = e660ffa37ad33611a4c1248967204e578f07ada9941e63ffe6a6fe3e95ac5039
+SIZE (go/misc_ollama/ollama-v0.20.4/v0.20.4.mod) = 4757
+SHA256 (go/misc_ollama/ollama-v0.20.4/v0.20.4.zip) = 8fb0cd28b99e0386676d81019ebc31aa4d84cdb189af7d306652a1e5d5e3fa05
+SIZE (go/misc_ollama/ollama-v0.20.4/v0.20.4.zip) = 26673929
diff --git a/misc/ollama/files/patch-CMakeLists.txt b/misc/ollama/files/patch-CMakeLists.txt
index 977273f77085..359b7f60b1f7 100644
--- a/misc/ollama/files/patch-CMakeLists.txt
+++ b/misc/ollama/files/patch-CMakeLists.txt
@@ -1,13 +1,13 @@
---- CMakeLists.txt.orig	2026-03-26 23:34:20.357190000 -0700
-+++ CMakeLists.txt	2026-03-26 23:34:25.336566000 -0700
-@@ -51,6 +51,10 @@
- if(APPLE)
+--- CMakeLists.txt.orig	1979-11-30 08:00:00 UTC
++++ CMakeLists.txt
+@@ -52,6 +52,10 @@ if(APPLE)
      set(CMAKE_BUILD_RPATH "@loader_path")
      set(CMAKE_INSTALL_RPATH "@loader_path")
-+    set(CMAKE_BUILD_WITH_INSTALL_RPATH ON)
+     set(CMAKE_BUILD_WITH_INSTALL_RPATH ON)
 +elseif(UNIX)
 +    set(CMAKE_BUILD_RPATH "$ORIGIN")
 +    set(CMAKE_INSTALL_RPATH "$ORIGIN")
-     set(CMAKE_BUILD_WITH_INSTALL_RPATH ON)
++    set(CMAKE_BUILD_WITH_INSTALL_RPATH ON)
  endif()
  
+ set(OLLAMA_BUILD_DIR ${CMAKE_BINARY_DIR}/lib/ollama)
diff --git a/misc/ollama/files/patch-x_imagegen_mlx_CMakeLists.txt b/misc/ollama/files/patch-x_imagegen_mlx_CMakeLists.txt
index 2ebbf324d1a1..f61429b0adfb 100644
--- a/misc/ollama/files/patch-x_imagegen_mlx_CMakeLists.txt
+++ b/misc/ollama/files/patch-x_imagegen_mlx_CMakeLists.txt
@@ -1,31 +1,40 @@
---- x/imagegen/mlx/CMakeLists.txt.orig	2026-03-27 00:01:53 UTC
+--- x/imagegen/mlx/CMakeLists.txt.orig	2026-04-09 01:41:08 UTC
 +++ x/imagegen/mlx/CMakeLists.txt
-@@ -98,28 +98,6 @@ file(COPY ${_mlx_c_hdrs} DESTINATION "${CMAKE_SOURCE_D
+@@ -98,37 +98,6 @@ file(COPY ${_mlx_c_hdrs} DESTINATION "${CMAKE_SOURCE_D
  file(GLOB _mlx_c_hdrs "${mlx-c_SOURCE_DIR}/mlx/c/*.h")
  file(COPY ${_mlx_c_hdrs} DESTINATION "${CMAKE_SOURCE_DIR}/x/mlxrunner/mlx/include/mlx/c/")
  
 -# Regenerate Go/C shim wrappers from the (possibly updated) headers.
--find_program(GO_EXECUTABLE go REQUIRED)
--message(STATUS "Regenerating MLX Go wrappers")
+-# Skip during cross-compilation — the generated files are arch-independent.
+-if(CMAKE_SYSTEM_PROCESSOR STREQUAL CMAKE_HOST_SYSTEM_PROCESSOR OR NOT APPLE)
+-    find_program(GO_EXECUTABLE go REQUIRED)
+-    message(STATUS "Regenerating MLX Go wrappers")
 -
--# Go's cgo splits CC on whitespace, so a CC like "C:/Program Files/…/cl.exe"
--# (set by cmake on Windows) breaks with "C:/Program" not found.  Clear CC
--# when it contains spaces so cgo falls back to its default (gcc).
--if(WIN32 AND "$ENV{CC}" MATCHES " ")
+-    # CGo's probe compilation is sensitive to CGO_CFLAGS/CGO_CXXFLAGS and CC.
+-    # Clear them so go generate uses default compiler settings:
+-    # - On Windows, CC may contain spaces (e.g., "C:/Program Files/.../cl.exe")
+-    #   which breaks CGo's CC parsing.
+-    # - On macOS, CGO_CFLAGS with -mmacosx-version-min breaks header search
+-    #   when cmake also sets CMAKE_OSX_DEPLOYMENT_TARGET.
 -    set(_SAVE_CC "$ENV{CC}")
+-    set(_SAVE_CGO_CFLAGS "$ENV{CGO_CFLAGS}")
+-    set(_SAVE_CGO_CXXFLAGS "$ENV{CGO_CXXFLAGS}")
 -    set(ENV{CC} "")
--endif()
+-    set(ENV{CGO_CFLAGS} "")
+-    set(ENV{CGO_CXXFLAGS} "")
 -
--execute_process(
--    COMMAND ${GO_EXECUTABLE} generate ./x/...
--    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
--    COMMAND_ERROR_IS_FATAL ANY
--)
+-    execute_process(
+-        COMMAND ${GO_EXECUTABLE} generate ./x/...
+-        WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+-        COMMAND_ERROR_IS_FATAL ANY
+-    )
 -
--if(DEFINED _SAVE_CC)
 -    set(ENV{CC} "${_SAVE_CC}")
+-    set(ENV{CGO_CFLAGS} "${_SAVE_CGO_CFLAGS}")
+-    set(ENV{CGO_CXXFLAGS} "${_SAVE_CGO_CXXFLAGS}")
+-else()
+-    message(STATUS "Skipping MLX Go wrapper generation (cross-compiling)")
 -endif()
--
+ 
  # For local dev builds, override MLX_VERSION with git describe output
  if(TARGET mlx_version AND DEFINED FETCHCONTENT_SOURCE_DIR_MLX)
-     execute_process(
diff --git a/misc/ollama/files/patch-x_imagegen_mlx_mlx.go b/misc/ollama/files/patch-x_imagegen_mlx_mlx.go
index a77de5f2beed..cee6e3f8ef1d 100644
--- a/misc/ollama/files/patch-x_imagegen_mlx_mlx.go
+++ b/misc/ollama/files/patch-x_imagegen_mlx_mlx.go
@@ -1,6 +1,6 @@
---- x/imagegen/mlx/mlx.go.orig	1979-11-30 00:00:00.000000000 -0800
-+++ x/imagegen/mlx/mlx.go	2026-03-27 00:29:56.018820000 -0700
-@@ -4,6 +4,7 @@
+--- x/imagegen/mlx/mlx.go.orig	1979-11-30 08:00:00 UTC
++++ x/imagegen/mlx/mlx.go
+@@ -4,6 +4,7 @@ package mlx
  #cgo CFLAGS: -O3 -I${SRCDIR}/../../mlxrunner/mlx/include -I${SRCDIR}
  #cgo darwin LDFLAGS: -lc++ -framework Metal -framework Foundation -framework Accelerate
  #cgo linux LDFLAGS: -lstdc++ -ldl
@@ -8,7 +8,7 @@
  #cgo windows LDFLAGS: -lstdc++
  
  // Use generated wrappers instead of direct MLX headers
-@@ -23,6 +24,10 @@
+@@ -23,6 +24,10 @@ static inline mlx_stream default_stream() {
  static inline mlx_stream default_stream() {
      if (_default_stream.ctx == NULL) {
          _default_stream = mlx_default_gpu_stream_new();
@@ -19,7 +19,7 @@
      }
      return _default_stream;
  }
-@@ -1512,14 +1517,21 @@
+@@ -1512,14 +1517,21 @@ func LoadSafetensorsNative(path string) (*SafetensorsF
  	defer C.free(unsafe.Pointer(cPath))
  
  	stream := C.default_stream()
@@ -44,7 +44,7 @@
  	}
  	return &SafetensorsFile{arrays: arrays, metadata: metadata}, nil
  }
-@@ -1755,12 +1767,17 @@
+@@ -1755,12 +1767,17 @@ func findMLXLibrary() string {
  			return candidate
  		}
  
diff --git a/misc/ollama/files/patch-x_imagegen_models_zimage_vae.go b/misc/ollama/files/patch-x_imagegen_models_zimage_vae.go
index 0c9e990b52ba..1cd9e0eaa6b8 100644
--- a/misc/ollama/files/patch-x_imagegen_models_zimage_vae.go
+++ b/misc/ollama/files/patch-x_imagegen_models_zimage_vae.go
@@ -1,6 +1,6 @@
---- x/imagegen/models/zimage/vae.go.orig	1979-11-30 00:00:00.000000000 -0800
+--- x/imagegen/models/zimage/vae.go.orig	1979-11-30 08:00:00 UTC
 +++ x/imagegen/models/zimage/vae.go
-@@ -332,6 +332,16 @@
+@@ -332,6 +332,16 @@ func (rb *ResnetBlock2D) Forward(x *mlx.Array) *mlx.Ar
  
  // Forward applies the ResNet block with staged evaluation
  func (rb *ResnetBlock2D) Forward(x *mlx.Array) *mlx.Array {
@@ -17,7 +17,7 @@
  	var h *mlx.Array
  
  	// Stage 1: norm1
-@@ -461,6 +471,15 @@
+@@ -461,6 +471,15 @@ func (ab *VAEAttentionBlock) Forward(x *mlx.Array) *ml
  // Input and output are in NHWC format [B, H, W, C]
  func (ab *VAEAttentionBlock) Forward(x *mlx.Array) *mlx.Array {
  	residual := x
diff --git a/misc/ollama/files/patch-x_imagegen_server.go b/misc/ollama/files/patch-x_imagegen_server.go
index a49851568dec..f22dcbbc665a 100644
--- a/misc/ollama/files/patch-x_imagegen_server.go
+++ b/misc/ollama/files/patch-x_imagegen_server.go
@@ -1,8 +1,8 @@
 -- same issue as first chunk: https://github.com/ollama/ollama/issues/15107
 
---- x/imagegen/server.go.orig
+--- x/imagegen/server.go.orig	1979-11-30 08:00:00 UTC
 +++ x/imagegen/server.go
-@@ -55,7 +55,9 @@
+@@ -55,7 +55,9 @@ func NewServer(modelName string) (*Server, error) {
  	return &Server{
  		modelName: modelName,
  		done:      make(chan error, 1),
@@ -13,7 +13,7 @@
  	}, nil
  }
  
-@@ -116,8 +118,8 @@
+@@ -116,8 +118,8 @@ func (s *Server) Load(ctx context.Context, _ ml.System
  	cmd := exec.Command(exe, "runner", "--imagegen-engine", "--model", s.modelName, "--port", strconv.Itoa(port))
  	cmd.Env = os.Environ()
  
diff --git a/misc/ollama/files/patch-x_mlxrunner_mlx_dynamic.go b/misc/ollama/files/patch-x_mlxrunner_mlx_dynamic.go
index 1d7586234740..76e6d0bec723 100644
--- a/misc/ollama/files/patch-x_mlxrunner_mlx_dynamic.go
+++ b/misc/ollama/files/patch-x_mlxrunner_mlx_dynamic.go
@@ -1,32 +1,29 @@
---- x/mlxrunner/mlx/dynamic.go.orig	2026-03-26 19:59:35.600583000 -0700
-+++ x/mlxrunner/mlx/dynamic.go	2026-03-26 20:00:54.082312000 -0700
-@@ -72,7 +72,7 @@
+--- x/mlxrunner/mlx/dynamic.go.orig	2026-04-09 01:42:19 UTC
++++ x/mlxrunner/mlx/dynamic.go
+@@ -83,7 +83,7 @@ func libOllamaRoots() []string {
+ 		case "darwin":
+ 			roots = append(roots, filepath.Join(exeDir, "lib", "ollama"))
+ 			roots = append(roots, exeDir) // app bundle: Contents/Resources/
+-		case "linux":
++		case "linux", "freebsd":
+ 			roots = append(roots, filepath.Join(exeDir, "..", "lib", "ollama"))
+ 		case "windows":
+ 			roots = append(roots, filepath.Join(exeDir, "lib", "ollama"))
+@@ -143,7 +143,7 @@ func prependLibraryPath(dir string) {
  	switch runtime.GOOS {
- 	case "windows":
- 		libraryName = "mlxc.dll"
+ 	case "darwin":
+ 		envVar = "DYLD_LIBRARY_PATH"
 -	case "linux":
 +	case "linux", "freebsd":
- 		libraryName = "libmlxc.so"
- 	}
- 
-@@ -93,7 +93,7 @@
+ 		envVar = "LD_LIBRARY_PATH"
+ 	default:
+ 		return
+@@ -157,7 +157,7 @@ func init() {
  
  func init() {
  	switch runtime.GOOS {
 -	case "darwin", "linux", "windows":
 +	case "darwin", "linux", "freebsd", "windows":
- 
  	default:
  		return
-@@ -126,7 +126,10 @@
- 		if eval, err := filepath.EvalSymlinks(exe); err == nil {
- 			exe = eval
- 		}
--		searchDirs = append(searchDirs, filepath.Dir(exe))
-+		exeDir := filepath.Dir(exe)
-+		searchDirs = append(searchDirs, exeDir)
-+		// On Linux/FreeBSD the installed layout is bin/ollama + lib/ollama/libmlxc.so
-+		searchDirs = append(searchDirs, filepath.Join(exeDir, "..", "lib", "ollama"))
  	}
- 
- 	if cwd, err := os.Getwd(); err == nil {
diff --git a/misc/ollama/pkg-message b/misc/ollama/pkg-message
index 0ad67fb6566c..f5cd56fa789b 100644
--- a/misc/ollama/pkg-message
+++ b/misc/ollama/pkg-message
@@ -47,7 +47,7 @@ Working examples:
   1. run 'OLLAMA_CONTEXT_LENGTH=65536 ollama serve'
      or
      setup and start the service 'ollama'
-  2. install claude-code and run:
+  2. run:
      ollama run x/z-image-turbo {textual description of the desired image}
 
 There are also a lot of text-to-text models that you can chat with.


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69d7f67f.3af99.7ca4b744>