Download raw body.
NEW: editors/issy
Hey all,
New port: editors/issy, a small console text editor written in Zig.
BSD 3-Clause. https://github.com/davidemerson/issy, upstream v1.3.1.
I sent this once before (2026-07-13, at v1.2.4). That version
couldn't build on -current — lang/zig moved to 0.16.0 in May and
issy was 0.15-only. Fixed upstream: v1.3.1 builds and tests clean on
zig 0.15.2 (7.9 packages) and 0.16.0 (-current).
What it is:
Gap-buffer editor. Syntax highlighting for 20 languages,
multi-cursor editing, incremental search, undo/redo, PDF export
through its own PDF 1.4 writer with TTF/OTF embedding. No runtime
dependencies beyond libc.
Build notes:
zig build -Doptimize=ReleaseSafe. BUILD_DEPENDS on lang/zig; the
zig cache is redirected into ${WRKBUILD} via MAKE_ENV so the build
doesn't write to $HOME. No zig package dependencies, so no network
fetch — the distfile is self-contained. do-test runs
`zig build test`.
One trap: zig's build runner reads DESTDIR from the environment,
and MAKE_ENV carries DESTDIR='' during do-build. Without a pinned
prefix, zig installs the binary to ${DESTDIR}/usr instead of
./zig-out. do-build passes --prefix ${WRKBUILD}/zig-out for this
reason (comment in the Makefile). Any future zig-consumer module
needs the same guard.
As far as I can tell this is the first port consuming lang/zig as
a build tool — lang/zig itself bootstraps from CMake+LLVM — so
there's no zig module to inherit. If you want one factored out
(like lang/go), I'll help.
build.zig links libc on OpenBSD because the kernel kills processes
making raw syscalls. That's why WANTLIB has `c` on a pure-Zig
program.
The packaged binary carries a "dev" build stamp, which disables
the update-notification check. A pkg_add-installed issy never
phones home.
Arches:
ONLY_FOR_ARCHS = amd64 arm64, matching lang/zig.
Testing:
Verified at v1.3.1 on OpenBSD 7.9 amd64 with zig 0.15.2 from
packages: 1321 unit test executions pass under `zig build test`;
all 16 PTY integration suites (63 cases) pass under
`bash tests/run_tests.sh`. Same suites pass on zig 0.16.0.
Upstream CI runs the OpenBSD sequence in a 7.9 VM on every push.
The attached port was exercised in a clean 7.9 ports tree:
make checksum / build / fake / package / install all succeed;
portcheck is clean.
Port directory attached as a tarball; extract into ports/editors/.
Thanks,
David Emerson
NEW: editors/issy