Index | Thread | Search

From:
"David Emerson" <d@nnix.com>
Subject:
NEW: editors/issy
To:
ports@openbsd.org
Date:
Fri, 31 Jul 2026 15:50:05 -0400

Download raw body.

Thread
  • David Emerson:

    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