misc/opencode: New port: AI coding agent for the terminal
OpenCode is an open-source, model-agnostic AI coding agent that runs in
the terminal. It combines a full-screen TUI and a scriptable CLI with
a client/server architecture, LSP awareness and multi-session support.
Tested on arm64 and amd64.
lang/bun 1.4.2
JavaScript runtime, bundler, test runner, and package manager
lang/bun: update to 1.4.2
Update to 1.4.2 and rework the port for the upstream Rust build system.
Use lang/rust-nightly-bun instead of the moving lang/rust-nightly, add
aarch64 support, keep the patched WebKit fork, and drop the old Zig /
sysroot / prebuilt-binary machinery.
PR: 299115
Pull Request: https://github.com/freebsd/freebsd-ports/pull/644
sysutils/duplicity: Update to 3.2.2
- Fetch from GitLab: 3.2.2 is not on PyPI yet and the tarball
includes the test suite
- Enable tests
- Drop bogus OPTIONS_GROUP for GPG
ChangeLog: https://gitlab.com/duplicity/duplicity/-/blob/rel.3.2.2/CHANGELOG.md
MFH: 2026Q4
(cherry picked from commit 729a079b4b9916641562f1532ad77deae604895c)
misc/R-cran-xfun: Update to 0.62
Add zip to test dependencies and add R_ZIPCMD to MAKE_ENV to pass tests.
Remove WWW because the cran.mk's default is fine.
Changelog: https://github.com/yihui/xfun/releases/tag/v0.62
www/{nginx,nginx-devel,freenginx}: 3rd-party modules management
Build the iconv and json_status modules from their own source ports.
Sponsored by: Netzkommune GmbH
www/nginx-module-json-status: Add New Port
Sources of the json_status module for the NGINX ports. The module serves
the stub status counters, and the state of upstreams that have a zone, as a
JSON document.
Sponsored by: Netzkommune GmbH
www/nginx-module-iconv: Add New Port
Sources of the iconv module for the NGINX ports. The module converts text
between character sets, in a response body or in a variable.
Sponsored by: Netzkommune GmbH
math/R-cran-meta: New port: General package for meta-analysis
User-friendly general package providing standard methods for
meta-analysis and supporting the book "Meta-Analysis with R"
(Schwarzer, Carpenter, and Rucker, 2015).
Approved by: jrm (mentor)
Differential Revision: https://reviews.freebsd.org/D60855
math/R-cran-CompQuadForm: New port: Distribution function of quadratic forms in
normal variables
Computes the distribution function of quadratic forms in normal
variables using Imhof's method, Davies's algorithm, Farebrother's
algorithm or Liu et al.'s algorithm.
Dependency of math/R-cran-meta.
Approved by: jrm (mentor)
Differential Revision: https://reviews.freebsd.org/D60856
math/R-cran-metabook: New port: Data sets and code for "Meta-Analysis with R"
Approved by: jrm (mentor)
Differential Revision: https://reviews.freebsd.org/D60764
lang/rust-nightly-bun: add pinned Rust nightly toolchain
Add a binary port with the Rust nightly required by lang/bun, pinned to
2026-09-20 (rustc 1.100.0-nightly (feaadeeac 2026-09-19)). It installs
rustc, cargo, rust-std and rust-src under PREFIX/rust-nightly-bun so it
can coexist with lang/rust and lang/rust-nightly.
PR: 299115
databases/kividb: Add new port
Fast, multi-threaded Redis and Valkey alternative written in Rust:
drop-in compatible, with full-text and vector search built in.
Sponsored by: tipi.work
multimedia/jellyfin-ffmpeg: Link static chromaprint by full path
With -lchromaprint the ports -L${LOCALBASE}/lib comes first, so on a
build host with audio/chromaprint installed the shared library wins the
search and pulls in multimedia/ffmpeg's libavutil. Name the archives by
path, as multimedia/jellyfin-ffmpeg7 does.
Reviewed by: dtxdf
Approved by: dtxdf (mentor)
Differential Revision: https://reviews.freebsd.org/D60813
multimedia/jellyfin-ffmpeg7: Link chromaprint statically
Match multimedia/jellyfin-ffmpeg: build chromaprint 1.6.0 as a static
library on fftw3f, as upstream's builder does, and drop the
audio/chromaprint LIB_DEPENDS. audio/chromaprint uses multimedia/ffmpeg
for its FFT, so it pulled a second FFmpeg and about 30 other ports into
this port's runtime.
The archives are linked by full path: with -lchromaprint the ports
-L${LOCALBASE}/lib comes first, and an installed audio/chromaprint wins
the search.
Reviewed by: dtxdf
Approved by: dtxdf (mentor)
Differential Revision: https://reviews.freebsd.org/D60810
lang/rust-nightly-bun: add pinned Rust nightly toolchain
Add a binary port with the Rust nightly required by lang/bun, pinned to
2026-09-20 (rustc 1.100.0-nightly (feaadeeac 2026-09-19)). It installs
rustc, cargo, rust-std and rust-src under PREFIX/rust-nightly-bun so it
can coexist with lang/rust and lang/rust-nightly.
PR: 299115
devel/llvm17: Remove the LLDB option and fix plist with DOCS
LLDB's Python script interpreter fails to build with Python 3.13
(_Py_IsFinalizing was removed), which blocks switching the default
Python version to 3.13. Rather than patching an old debugger, remove
the LLDB option as discussed in PR 292105: LLDB remains available
from devel/llvm18 and later and from the base system.
This also drops the swig build dependency and the lua53 and libedit
library dependencies.
While here, fix the plist with DOCS enabled: the openmp HTML
documentation leaves an empty _sources directory behind, and
check-plist fails with an orphaned directory. Remove it, as was
done for devel/llvm12 in a4f732450dd3.
Also drop lldb-tblgen.1 from the installed man pages: it documents
an LLDB tool that is no longer built.
PR: 299426
devel/llvm16: Remove the LLDB option and fix plist with DOCS
LLDB's Python script interpreter fails to build with Python 3.13
(_Py_IsFinalizing was removed), which blocks switching the default
Python version to 3.13. Rather than patching an old debugger, remove
the LLDB option as discussed in PR 292105: LLDB remains available
from devel/llvm18 and later and from the base system.
This also drops the swig build dependency and the lua53 and libedit
library dependencies.
While here, fix the plist with DOCS enabled: the openmp HTML
documentation leaves an empty _sources directory behind, and
check-plist fails with an orphaned directory. Remove it, as was
done for devel/llvm12 in a4f732450dd3.
Also drop lldb-tblgen.1 from the installed man pages: it documents
an LLDB tool that is no longer built.
PR: 299425
devel/llvm15: Remove the LLDB option and fix plist with DOCS
LLDB's Python script interpreter fails to build with Python 3.13
(_Py_IsFinalizing was removed), which blocks switching the default
Python version to 3.13. Rather than patching an old debugger, remove
the LLDB option as discussed in PR 292105: LLDB remains available
from devel/llvm18 and later and from the base system.
This also drops the swig build dependency and the lua53 and libedit
library dependencies.
While here, fix the plist with DOCS enabled: the openmp HTML
documentation leaves an empty _sources directory behind, and
check-plist fails with an orphaned directory. Remove it, as was
done for devel/llvm12 in a4f732450dd3.
PR: 299424
devel/llvm14: remove FLANG and MLIR from the default build
It would be surprising if anyone was using these ancient versions so
stop wasting build time for most people.
devel/llvm14: Remove the LLDB option and fix plist with DOCS
LLDB's Python script interpreter fails to build with Python 3.13
(_Py_IsFinalizing was removed), which blocks switching the default
Python version to 3.13. Rather than patching an old debugger, remove
the LLDB option as discussed in PR 292105: LLDB remains available
from devel/llvm18 and later and from the base system.
This also drops the swig build dependency and the lua53 and libedit
library dependencies.
While here, fix the plist with DOCS enabled: the openmp and flang
HTML documentation leaves an empty _sources directory behind, and
check-plist fails with orphaned directories. Remove them;
devel/llvm12 does the same for openmp (a4f732450dd3).
PR: 299422
devel/llvm13: remove FLANG and MLIR from the default build
It would be surprising if anyone was using these ancient versions so
stop wasting build time for most people.
devel/llvm13: Remove the LLDB option and fix plist with DOCS
LLDB's Python script interpreter fails to build with Python 3.13
(PyEval_ThreadsInitialized was removed), which blocks switching the
default Python version to 3.13. Rather than patching an old debugger,
remove the LLDB option as discussed in PR 292105: LLDB remains available
from devel/llvm18 and later and from the base system.
This also drops the swig build dependency and the lua53 and libedit
library dependencies.
While here, fix the plist with DOCS enabled: the openmp and flang
HTML documentation leaves an empty _sources directory behind, and
check-plist fails with orphaned directories. Remove them;
devel/llvm12 does the same for openmp (a4f732450dd3).
PR: 299421
lang/swift6 6.4.0_1
Powerful, flexible, multiplatform programming language
lang/swift6: add powerpc64le support
Two bootstrap tarballs are needed because the long double ABI changed in
16.0: freebsd14 works on 14.x and on 15.x with misc/compat14x, freebsd16 is
for 16.0 and newer. Both were built with the port's own BOOTSTRAP_MODE.
PR: 299357
Approved by: tagattie (maintainer)
Mk/Uses/fpc.mk: use powerpc64 as FPC_ARCH on powerpc64le
fpc doesn't have a separate powerpc64le CPU, it's powerpc64 for both
endians. lang/fpc-devel already handles it, but ports using USES=fpc got
rtl/freebsd/powerpc64le and failed to patch.
www/py-bokeh 3.10.1
Interactive Web Plotting for Python
www/py-bokeh: Update 2.4.3 => 3.10.1
bokeh 2.4.3 uses np.bool8, which numpy 2 removed, so
"import bokeh.plotting" fails with the numpy 2.4 in the tree. It is
also too old for its consumers: dask[diagnostics] and the distributed
dashboard need bokeh>=3.1, arviz-plots needs bokeh>=3.4 and hits needs
bokeh>=3.2.
- Switch to PEP 517; the sdist ships the prebuilt BokehJS, so no node
is needed
- Add RUN_DEPENDS on narwhals and xyzservices; drop python-dateutil,
six and typing-extensions; tornado>=6.2
- Patch pyproject.toml for setuptools 63 (requires, PEP 639 license)
and do not install the stray top-level "typings" stub package
- Guard the setuptools>=64-only editable_wheel import in setup.py
- Requires Python 3.12+
Changelog: https://docs.bokeh.org/en/latest/docs/releases.html
lang/nim: fix on powerpc64
countProcessors() reads the 4-byte hw.ncpu into an 8-byte int, which puts
it in the high word on big-endian, so any nim c without --parallelBuild
tried to size its build state for 2^38 CPUs and got OOM-killed. That is
also why DOCS was turned off on powerpc64 in 2020, so enable it again.
Also take the upstream fix for the shr constant folding on big-endian and
apply it to the pre-generated bootstrap compiler too.
textproc/redisearch2: fix build on powerpc64*
VectorSimilarity falls back to the x86 cpu_features types on anything that
isn't aarch64. Add a generic fallback for everything else.
multimedia/vvenc: fix build on powerpc64
clang 19 crashes on v4f32 froundeven in the SIMDe x86 emulation
(llvm/llvm-project#121390), so turn the x86 SIMD code off here too.
net/dot1ag-utils 1.0.2
Utilities for IEEE 802.1ag Connectivity Fault Management
net/dot1ag-utils: fix build on powerpc64
IS_TAGGED() compared one byte of the frame with htons(0x8100), which only
works on little-endian by accident and makes clang's -Werror unhappy on
big-endian. Read the TPID through struct cfmencap instead.
dns/p5-Domain-PublicSuffix: New port
A perl module to parse a domain down to the root TLD utilizing the
Mozilla Public Suffix List.
This module utilizes the "public_suffix_list.dat" or "effective_tld_names.dat"
provided by Mozilla as a way to effectively reduce a fully qualified
domain name down to the absolute root. The Mozilla PublicSuffix file
is an open source, fully documented format that shows absolute root
TLDs, primarily for Mozilla's browser products to be able to determine
how far a cookie's security boundaries go.
Approved by: hrs (mentor)
japanese/mozc-server: Fix IPC handling and separate license definitions
- Set FreeBSD Unix socket permissions to 0600 with fchmod() before
bind(), and abort IPC initialization if permission setup fails.
- Close accepted sockets when peer credential validation fails,
preventing file descriptor leaks.
- Prevent zombie child processes in mozc_emacs_helper by setting
SA_NOCLDWAIT for SIGCHLD.
- Move license definitions and preparation rules into Makefile.licenses
to simplify the main Makefile. There is no functional change.