From nobody Mon Jan 5 00:20:01 2026 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4dkw0x3jfNz6N60y for ; Mon, 05 Jan 2026 00:20:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4dkw0x16k0z3pJf for ; Mon, 05 Jan 2026 00:20:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1767572401; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BZq8VO48Yk/fMP6p9YMHUW1UUIU6YvH4R1XGzBkhpeM=; b=Q7quYfkw3Z3Ytnqi+FDHdWkrlvCzs7Wf/8irUEX98ixziVsXZgZXqf7iLhTuGYVux3ZkS0 4G5XDteMR2FgA4AldbyNZX9NF6CJWNWGQlBsKhNc+XqX68ZyiOrjj3+QTfplVuX177zd1g A+nL7oHEH/TuM2QhjDb5OhIH24AEQ1ZYzbO+eYwi+kbJnk/+M0/qwqNsv6t1J79QFuyYXR kVyl+xnuKTPnulHuomvpY11yVciEXF0d94lbBlpdWoDcO1TJS7GRv0Y98bb9eX6UwQXKpq 5zq3sdMgz1ZOT4q2+9bWQGlMd5FqeFnt1vXUE/zQtryoKhEFs96cpp9jOxQVgg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1767572401; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BZq8VO48Yk/fMP6p9YMHUW1UUIU6YvH4R1XGzBkhpeM=; b=MXJTxUMAoIGvtLb83Y38oP1U2xhmrHPvfQJVFn0XRyg/PKAUfFv4XB7KesnNY2mLAgBJ9w U3v8OQSZZEFTsygsZooVt2iIxkWXfaf4fAEcgqqJnss1n/XBIhIrJurBM+/M1iGc4IkHe7 kstJZHOWSf4yEvRW4LXT5rvtOOUaGeC5IOjhCegu0Z7bCIpScjhb3X8m6G/+zgbmZt8z3H 2pa/Mg1qx08rOp5bPz7pjQAzIdh9jQZ1MIrne1Aoxbv/g99VYxHPfVueLRFJoT1Hw1qzc5 p+ZiY8XUMaxq3KAlQVYO1VHnIhe++faG3jvHOysJRo1TmkUHf3hN7zGx7G8qzQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1767572401; a=rsa-sha256; cv=none; b=CUkhRFET63CLmxdP55TKnusZHrx3aNLPd1itB8AQwa5KTA9HhDnOaGE24d+EbVCirPh0QE 84mZId87XU5SVa/vYbku14SqPf3nzae5FDfeEMnbIGdxoBEDh8arSVxQf4DLRSSJcYk656 /ZtQr6bDK+LWcCK1fGs8RkZK8R7kfX8r/wCB4S/U7erH6mykb2Rbt55dNOswzNX2pjTOjC WT6FKVI+TgCabYuQl7r0QgXNTinku8F+AYtPeHBl2S9+UTmEN+l/61uu5BSYVG7c1z33Jc Aa3pm2ogvzH16y7zlmr4isVYaCnOKVrWHaAj+jeIuW6Wj75Jghd799cNY4OIsA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4dkw0x0RrLzxbd for ; Mon, 05 Jan 2026 00:20:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 333e6 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 05 Jan 2026 00:20:01 +0000 To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Yuri Victorovich Subject: git: 97909c8f60a6 - main - misc/ollama: update 0.13.1-rc0=?utf-8?Q? =E2=86=92 0.1?=3.5 List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-ports-main@freebsd.org Sender: owner-dev-commits-ports-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: yuri X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 97909c8f60a6d95a01c95e0b23b1e1eddfc4a10b Auto-Submitted: auto-generated Date: Mon, 05 Jan 2026 00:20:01 +0000 Message-Id: <695b03b1.333e6.2433eab@gitrepo.freebsd.org> The branch main has been updated by yuri: URL: https://cgit.FreeBSD.org/ports/commit/?id=97909c8f60a6d95a01c95e0b23b1e1eddfc4a10b commit 97909c8f60a6d95a01c95e0b23b1e1eddfc4a10b Author: Yuri Victorovich AuthorDate: 2026-01-05 00:19:45 +0000 Commit: Yuri Victorovich 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 ++#include ++#include ++*/ ++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{}