NEW: editors/issy
"David Emerson" <[email protected]> Fri, 31 Jul 2026 15:50:05 -0400
| Newsgroups | gmane.os.openbsd.ports |
|---|---|
| Message-ID | <[email protected]> |
--b314e83e760aecaa6a2fff4409a77cdbc1765094
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
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 =E2=80=94 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=3DReleaseSafe. 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 =E2=80=94 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=3D'' 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 =E2=80=94 lang/zig itself bootstraps from CMake+LLVM =E2=80=
=94 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 =3D 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
--b314e83e760aecaa6a2fff4409a77cdbc1765094
Content-Disposition: attachment; filename="issy-port.tar.gz"
Content-Type: application/x-gzip; name="issy-port.tar.gz"
Content-Transfer-Encoding: base64
H4sIAN36bGoAA+1Ye28aRxDPv75PMVKtJFbgeNtqFEfBcLZpeAnIU5XQcrfAxnu71909bGxZ
6ofoJ+wn6eweuLbbJGolnFZhJDjYnedv9nEzTOtl4dFmqVgsHtRq4J772bNYrmbPFUGpVq5U
Sge1crUExVK5Uiw/gtqG/XKUakMUuhKRBYu+wIds0+kX5ldx3Dz/J8Rs/jvkjE4ZpxuygXjs
V6ufzX+5Vivdy3/loFp7BMUN+XOHvvP8N3qdTtAdweGOYWIJhl4YoBEzUoGZEwNcyjMNnJ1R
IJAoJgyNICEz6nknp+N6o9F746QdfDSmSkthZ/qD3k9Bw87YFWZHRvWTbr0T4Mii5Ff8kuc1
6qPgpDdoBUMczIxq77TXCfr1E8s3NybRzwuFGTPzdOKHMi7cNlNwmr1OvdUd4ScYoEjTzkOQ
McCL6JUQ7MJKvvS8H+Bo2IRKvsFJqqnXDwad1mjcrzdeZ+Y+UG2ZLtkMmNGUT4FpkIIvMd7w
DEOO8B+QONqvAhEREBXjLyYQKAphqhQVBhKpjEYtRlEKTzV+cSJmBVS6lwMtkVdqhFJRJ+W0
ExXOqQYbDYRErFXxJaqZpIxbs77X67Y/jI97g3F90Di1gK0csU543tGbVrs5bgb9oNu0kztr
q573rt4dtVtH8AxHQxvga0oTG+UTjeZC60VqQE5h10IPT10EmWENKhWQCsz7Ao8Hi8A55gL5
UQ2Bc8UMmXAKcxnTPR86TClMoYtsbd8BgpbkuUCoFjIkhiGK2iw59TF3r4Nx0H3rnPvYOhmf
tHtH9fa4UW+cBuNma3C4e/Vu8NpFd23V5WdcTgjPZ47/7O1kYu1e44tSHO2uhCwCI5SlFwln
ITOQzycKT78Lm20uSZSfUILrfPZ8hVGWAgRCUIWRChshQSXNYDhCW0DFgikpYpv9BUo6RJ5q
E/lHVtJXVEu+oC2BJwjnfWcL1wKuIFRyAwDh52RpE6IUw8WwUn745AlEqfUGIpnPPPn919/W
WbBIo5IpJ7Nctm4zI1kKJkwQhVtawu7VSt91IdXKcVES2ZxbcFCR763VP/d2wggcfsNB4xoe
P8Y/w2CEPl7jr7W/1w57azJz6gbE+8hbL/NNmRgWs0t6OKCcEk2HZIqJQJsrh9Hq7lWrOxzV
2217dJwM6p3rP71YaypgSG7XO+u7V/1BcNx6f30zfFtLp969rcFO+6V7cjER9lNazTqPDNXm
X4JgRT3PZyLkaUThxURHvl3+fnz20vvWB/1nyN3/EdN4+k/lhmx85f4vlvDlcH3/Vyo1vP+r
xVppe/8/BA1P6+XaPjy16yDv7mUf8fBnl3twCB8nbXlaeEbYjPTPguMofNP79OkiGS4Ly+FJ
akbLYNp8GxfSX2adQ2/Y+hh8Rk+pWi3+uF/6r+6B75nc/k/OZpusAf95/Vcp7le29d9D0E3+
++3WcLQZG187/4vVyv387x/sb8//h6BX+O4EN+9Pr/BtCO6/FX1rF7e0QbrZ/1ghNAabsfGV
/V+qlA/+sv+3738PQ66awsqXQMwEiwmHUAosWOmdVpCt9A21FTx8xHLHlp9wSZX0kIcqgVIR
TaiIqAixevWhZTSOTFEjVq4sosSacP2kUEa27QE6VJQKT2MZi5WT7TJlTSZn1bZZ7jSbnuP/
EAtsqnDAqQglT2OBnN456kcxhf4TrnOA9bZRhAnkRBYcFCHNR4ot0H+9FIZcwJzN5hw/WPTM
vFvVsBWbyHOrHKv8XNblAS2nBpRlx6NRzVzDByPRRia2Y4AqOFrTMFUydn0CF7Qw0lXha88Q
yhn1Pa+FknOGkg5EAjOSYPk4nVIFU9t0s/GjaoVR5/7OX8vllYuuwZIik8Z3bldw2rkRfV9o
E/zey0GccsPyYao0qrV5RIYcRovA214FeqSpbT3lIBWRLCCyMos4Idax1Mh8KOOEU9ewWbW5
JGbZSzDQxNgsu34Voi5tOwUr3TutsFVUiAPBpKC9fvMYSn4VbKvZc+GPRseF3ugYY0J+Gk9o
5MJYMIIyc3QmryTntu2EC5CqXAaauLXu3CpBnDCHsWsw8QWN/O2dtaUtbWlLX6M/AIKTPOAA
HgAA
--b314e83e760aecaa6a2fff4409a77cdbc1765094--