From: "David Emerson" Subject: NEW: editors/issy To: ports@openbsd.org Date: Fri, 31 Jul 2026 15:50:05 -0400 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