Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 05 Jan 2026 00:20:01 +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: 97909c8f60a6 - main - misc/ollama: update 0.13.1-rc0=?utf-8?Q? =E2=86=92 0.1?=3.5
Message-ID:  <695b03b1.333e6.2433eab@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=97909c8f60a6d95a01c95e0b23b1e1eddfc4a10b

commit 97909c8f60a6d95a01c95e0b23b1e1eddfc4a10b
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2026-01-05 00:19:45 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2026-01-05 00:19:57 +0000

    misc/ollama: update 0.13.1-rc0 → 0.13.5
---
 misc/ollama/Makefile                          |   9 +-
 misc/ollama/distinfo                          |  10 +-
 misc/ollama/files/freebsd-compatibility.patch | 160 ++++++++++++++++++++++++++
 3 files changed, 171 insertions(+), 8 deletions(-)

diff --git a/misc/ollama/Makefile b/misc/ollama/Makefile
index f2a31fea0eb1..16188023fff8 100644
--- a/misc/ollama/Makefile
+++ b/misc/ollama/Makefile
@@ -1,7 +1,7 @@
 PORTNAME=	ollama
 DISTVERSIONPREFIX=	v
-DISTVERSION=	0.13.1-rc0
-PORTREVISION=	2
+DISTVERSION=	0.13.5
+DISTVERSIONSUFFIX=	-x1 # x1 because it doesn't seem possible to update the cached tag on GoLang servers
 CATEGORIES=	misc # machine-learning
 
 MAINTAINER=	yuri@FreeBSD.org
@@ -50,9 +50,12 @@ VULKAN_PLIST_FILES=	lib/ollama/libggml-vulkan.so
 
 _CMAKE_FLAGS=	-DCMAKE_BUILD_TYPE=Release -DGGML_BACKEND_DL=ON -DGGML_BACKEND_DIR=${PREFIX}/lib/ollama
 
-post-patch: # change import path to the fork
+post-patch:
+	# change import path to the fork
 	@cd ${WRKSRC} && \
 		(${GREP} -rl ollama/ollama | ${XARGS} ${REINPLACE_CMD} -i '' -e 's|ollama/ollama|yurivict/ollama|g')
+	@${REINPLACE_CMD} -e 's|var Version string = "0.0.0"|var Version string = "${PORTVERSION}"|g' \
+		${WRKSRC}/go.mod ${WRKSRC}/version/version.go
 
 pre-build-CPU-on:
 	@${MKDIR} ${WRKSRC}/build && \
diff --git a/misc/ollama/distinfo b/misc/ollama/distinfo
index a22b0ff08646..438d8ba70ae8 100644
--- a/misc/ollama/distinfo
+++ b/misc/ollama/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1764279505
-SHA256 (go/misc_ollama/ollama-v0.13.1-rc0/v0.13.1-rc0.mod) = 24e9aaaef0e2169fef54d14b95b528fce46e0f6788ffb71a93bcd3b035f99654
-SIZE (go/misc_ollama/ollama-v0.13.1-rc0/v0.13.1-rc0.mod) = 3454
-SHA256 (go/misc_ollama/ollama-v0.13.1-rc0/v0.13.1-rc0.zip) = 07d7cb01a4556fb134ab8c4986239afcf87363c12a074e60c9893dda977a5ea3
-SIZE (go/misc_ollama/ollama-v0.13.1-rc0/v0.13.1-rc0.zip) = 20653199
+TIMESTAMP = 1767567167
+SHA256 (go/misc_ollama/ollama-v0.13.5-x1/v0.13.5-x1.mod) = 24e9aaaef0e2169fef54d14b95b528fce46e0f6788ffb71a93bcd3b035f99654
+SIZE (go/misc_ollama/ollama-v0.13.5-x1/v0.13.5-x1.mod) = 3454
+SHA256 (go/misc_ollama/ollama-v0.13.5-x1/v0.13.5-x1.zip) = ceaac09c6c3e456af9567737e9f81d36dc70e0cfce2d10b7b1e67e8a77a1b73b
+SIZE (go/misc_ollama/ollama-v0.13.5-x1/v0.13.5-x1.zip) = 20969740
diff --git a/misc/ollama/files/freebsd-compatibility.patch b/misc/ollama/files/freebsd-compatibility.patch
new file mode 100644
index 000000000000..0008a31d661d
--- /dev/null
+++ b/misc/ollama/files/freebsd-compatibility.patch
@@ -0,0 +1,160 @@
+diff -ruN a/discover/cpu_freebsd.go b/discover/cpu_freebsd.go
+--- a/discover/cpu_freebsd.go	1969-12-31 16:00:00.000000000 -0800
++++ b/discover/cpu_freebsd.go	2026-01-04 13:08:45.255018000 -0800
+@@ -0,0 +1,122 @@
++package discover
++
++/*
++#include <stdlib.h>
++#include <sys/types.h>
++#include <sys/sysctl.h>
++*/
++import "C"
++
++import (
++	"log/slog"
++	"strings"
++	"syscall"
++	"unsafe"
++)
++
++func sysctlUint64(name string) (uint64, error) {
++	cname := C.CString(name)
++	defer C.free(unsafe.Pointer(cname))
++	
++	var value C.uint64_t
++	size := C.size_t(unsafe.Sizeof(value))
++	
++	ret := C.sysctlbyname(cname, unsafe.Pointer(&value), &size, nil, 0)
++	if ret != 0 {
++		return 0, syscall.Errno(ret)
++	}
++	
++	return uint64(value), nil
++}
++
++func GetCPUMem() (memInfo, error) {
++	var mem memInfo
++
++	// Get page size - this is a 32-bit value
++	pageSize32, err := syscall.SysctlUint32("vm.stats.vm.v_page_size")
++	if err != nil {
++		return mem, err
++	}
++	pageSize := uint64(pageSize32)
++
++	// Get physical memory - use sysctlUint64
++	physmem, err := sysctlUint64("hw.physmem")
++	if err != nil {
++		return mem, err
++	}
++
++	// Get free page count - this is also a 32-bit value
++	freeCount32, err := syscall.SysctlUint32("vm.stats.vm.v_free_count")
++	if err != nil {
++		return mem, err
++	}
++	freeCount := uint64(freeCount32)
++
++	// Get swap total - use sysctlUint64
++	swapTotal, err := sysctlUint64("vm.swap_total")
++	if err != nil {
++		// Swap may not be configured, default to 0
++		swapTotal = 0
++	}
++
++	mem.TotalMemory = physmem
++	mem.FreeMemory = freeCount * pageSize
++	mem.FreeSwap = swapTotal
++
++	slog.Debug("GetCPUMem", "total_memory", mem.TotalMemory, "free_memory", mem.FreeMemory, "free_swap", mem.FreeSwap)
++
++	return mem, nil
++}
++
++func GetCPUDetails() []CPU {
++	var cpus []CPU
++
++	// Get CPU model name - this is a string
++	modelName, err := syscall.Sysctl("hw.model")
++	if err != nil {
++		slog.Warn("failed to get CPU model", "error", err)
++		modelName = "Unknown"
++	}
++
++	// Get number of physical cores - this is a 32-bit integer
++	cores32, err := syscall.SysctlUint32("kern.smp.cores")
++	if err != nil {
++		slog.Warn("failed to get CPU cores", "error", err)
++		return nil
++	}
++	cores := int(cores32)
++
++	// Get number of logical CPUs (threads) - this is a 32-bit integer
++	threads32, err := syscall.SysctlUint32("hw.ncpu")
++	if err != nil {
++		slog.Warn("failed to get CPU threads", "error", err)
++		return nil
++	}
++	threads := int(threads32)
++
++	// Extract vendor ID from model name if possible
++	vendorID := ""
++	modelNameLower := strings.ToLower(modelName)
++	if strings.Contains(modelNameLower, "intel") {
++		vendorID = "GenuineIntel"
++	} else if strings.Contains(modelNameLower, "amd") {
++		vendorID = "AuthenticAMD"
++	}
++
++	// For FreeBSD, we assume a single socket for now
++	// In the future, this could be enhanced to detect multi-socket systems
++	cpu := CPU{
++		ID:                  "0",
++		VendorID:            vendorID,
++		ModelName:           strings.TrimSpace(modelName),
++		CoreCount:           cores,
++		EfficiencyCoreCount: 0, // FreeBSD doesn't distinguish efficiency cores
++		ThreadCount:         threads,
++	}
++
++	cpus = append(cpus, cpu)
++
++	slog.Debug("GetCPUDetails", "cpus", cpus)
++
++	return cpus
++}
+diff -ruN a/go.mod b/go.mod
+--- a/go.mod	2026-01-04 13:08:38.543919000 -0800
++++ b/go.mod	2026-01-04 13:08:45.213194000 -0800
+@@ -36,6 +36,7 @@
+ 
+ require (
+ 	github.com/apache/arrow/go/arrow v0.0.0-20211112161151-bc219186db40 // indirect
++	github.com/blabber/go-freebsd-sysctl v0.0.0-20201130114544-503969f39d8f // indirect
+ 	github.com/bytedance/sonic/loader v0.1.1 // indirect
+ 	github.com/chewxy/hm v1.0.0 // indirect
+ 	github.com/chewxy/math32 v1.11.0 // indirect
+diff -ruN a/go.sum b/go.sum
+--- a/go.sum	2026-01-04 13:08:38.572637000 -0800
++++ b/go.sum	2026-01-04 13:08:45.221946000 -0800
+@@ -14,6 +14,8 @@
+ github.com/apache/arrow/go/arrow v0.0.0-20211112161151-bc219186db40/go.mod h1:Q7yQnSMnLvcXlZ8RV+jwz/6y1rQTqbX6C82SndT52Zs=
+ github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0 h1:jfIu9sQUG6Ig+0+Ap1h4unLjW6YQJpKZVmUzxsD4E/Q=
+ github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0/go.mod h1:t2tdKJDJF9BV14lnkjHmOQgcvEKgtqs5a1N3LNdJhGE=
++github.com/blabber/go-freebsd-sysctl v0.0.0-20201130114544-503969f39d8f h1:gMH+lz/KRpSqdoL+IQjgd91bP1LB8vrVEfNxr47GYC8=
++github.com/blabber/go-freebsd-sysctl v0.0.0-20201130114544-503969f39d8f/go.mod h1:cTRyHktEaXkKTTEyZ0hAgS7H4V0AVoKhB8Dx0tVr/tY=
+ github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
+ github.com/bytedance/sonic v1.11.6 h1:oUp34TzMlL+OY1OUWxHqsdkgC/Zfc85zGqw9siXjrc0=
+ github.com/bytedance/sonic v1.11.6/go.mod h1:LysEHSvpvDySVdC2f87zGWf6CIKJcAvqab1ZaiQtds4=
+diff -ruN a/llm/llm_freebsd.go b/llm/llm_freebsd.go
+--- a/llm/llm_freebsd.go	1969-12-31 16:00:00.000000000 -0800
++++ b/llm/llm_freebsd.go	2026-01-04 13:08:45.214499000 -0800
+@@ -0,0 +1,7 @@
++package llm
++
++import (
++	"syscall"
++)
++
++var LlamaServerSysProcAttr = &syscall.SysProcAttr{}


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?695b03b1.333e6.2433eab>