Download raw body.
update: wayland/havoc 0.7.0
relatively straightforward. Upstream has improved portability, so 2
patches can go away.
ok ?
Index: Makefile
===================================================================
RCS file: /local/cvs/ports/wayland/havoc/Makefile,v
diff -u -p -u -r1.5 Makefile
--- Makefile 5 Nov 2024 17:43:45 -0000 1.5
+++ Makefile 30 Jul 2025 15:10:58 -0000
@@ -2,7 +2,7 @@ COMMENT = minimal terminal emulator for
GH_ACCOUNT = ii8
GH_PROJECT = havoc
-GH_TAGNAME = 0.6.0
+GH_TAGNAME = 0.7.0
CATEGORIES = wayland
Index: distinfo
===================================================================
RCS file: /local/cvs/ports/wayland/havoc/distinfo,v
diff -u -p -u -r1.3 distinfo
--- distinfo 5 Nov 2024 17:43:45 -0000 1.3
+++ distinfo 30 Jul 2025 15:10:58 -0000
@@ -1,2 +1,2 @@
-SHA256 (havoc-0.6.0.tar.gz) = P2U464orWEZFnzjCg+7yyBUohqTtB54QOLAtDDGjJHw=
-SIZE (havoc-0.6.0.tar.gz) = 95645
+SHA256 (havoc-0.7.0.tar.gz) = tPgZv8Ow+OqWcBiUjb86cfF0oCiG0A7hYSFzn80UDW8=
+SIZE (havoc-0.7.0.tar.gz) = 93445
Index: patches/patch-Makefile
===================================================================
RCS file: /local/cvs/ports/wayland/havoc/patches/patch-Makefile,v
diff -u -p -u -r1.3 patch-Makefile
--- patches/patch-Makefile 5 Nov 2024 17:43:45 -0000 1.3
+++ patches/patch-Makefile 30 Jul 2025 15:10:58 -0000
@@ -1,29 +1,23 @@
Index: Makefile
--- Makefile.orig
+++ Makefile
-@@ -6,7 +6,7 @@ BINDIR ?= $(PREFIX)/bin
+@@ -11,7 +11,7 @@ CDEFS = -DVERSION='$(VERSION)' -D_XOPEN_SOURCE=700
- VERSION="0.6.0"
+ WAYLAND_PROTOCOLS_DIR != $(PKG_CONFIG) --variable=pkgdatadir wayland-protocols
--CFLAGS ?= -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-format-overflow
-+CFLAGS += -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -I/usr/local/include -I/usr/local/include/libepoll-shim
- override CFLAGS += -DVERSION=\"$(VERSION)\"
+-LIBRARIES = wayland-client wayland-cursor xkbcommon
++LIBRARIES = wayland-client wayland-cursor xkbcommon epoll-shim
+ PKG_CFLAGS != $(PKG_CONFIG) --cflags $(LIBRARIES)
+ PKG_LIBS != $(PKG_CONFIG) --libs $(LIBRARIES)
- VPATH = $(WAYLAND_PROTOCOLS_DIR)/stable/xdg-shell \
-@@ -17,14 +17,14 @@ GEN = xdg-shell.h xdg-shell.c \
- xdg-decoration-unstable-v1.h xdg-decoration-unstable-v1.c \
- primary-selection-unstable-v1.h primary-selection-unstable-v1.c
-
--LIBS=-lrt -lm -lutil -lwayland-client -lwayland-cursor -lxkbcommon -Ltsm -lhtsm
-+LIBS=-L/usr/local/lib -R/usr/local/lib -lm -lutil -lwayland-client -lwayland-cursor -lxkbcommon -Ltsm -lhtsm -lepoll-shim
- OBJ=xdg-shell.o xdg-decoration-unstable-v1.o primary-selection-unstable-v1.o glyph.o main.o
-
- havoc: tsm $(OBJ)
- $(CC) $(LDFLAGS) -o $@ $(OBJ) $(LIBS)
+@@ -72,8 +72,8 @@ primary-selection-unstable-v1.xml:
+ cp $(WAYLAND_PROTOCOLS_DIR)/unstable/primary-selection/$@ $@
install: havoc
-- install -D -t $(DESTDIR)$(BINDIR) havoc
-+ install -m 755 havoc $(BINDIR)
+- mkdir -p $(DESTDIR)$(BINDIR)
+- install -m 755 havoc $(DESTDIR)$(BINDIR)/havoc
++ mkdir -p $(BINDIR)
++ install -m 755 havoc $(BINDIR)/havoc
uninstall:
- rm -f $(DESTDIR)$(BINDIR)/havoc
+ rm $(DESTDIR)$(BINDIR)/havoc
Index: patches/patch-main_c
===================================================================
RCS file: patches/patch-main_c
diff -N patches/patch-main_c
--- patches/patch-main_c 5 Nov 2024 17:43:45 -0000 1.4
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,162 +0,0 @@
-Index: main.c
---- main.c.orig
-+++ main.c
-@@ -13,7 +13,13 @@
- #include <sys/timerfd.h>
- #include <fcntl.h>
- #include <unistd.h>
-+#ifndef __OpenBSD__
- #include <pty.h>
-+#else
-+#include <sys/ioctl.h>
-+#include <sys/ttycom.h>
-+#include <util.h>
-+#endif
-
- #include <xkbcommon/xkbcommon-compose.h>
- #include <wayland-client-core.h>
-@@ -203,7 +209,7 @@ static struct {
- [TSM_COLOR_LIGHT_CYAN] = { 0, 255, 255 },
- [TSM_COLOR_WHITE] = { 255, 255, 255 },
- [TSM_COLOR_FOREGROUND] = { 229, 229, 229 },
-- [TSM_COLOR_BACKGROUND] = { 0, 0, 0 },
-+ [TSM_COLOR_BACKGROUND] = { 0, 0, 1 },
- },
- .opt.app_id = "havoc"
- };
-@@ -212,7 +218,7 @@ static void wcb(struct tsm_vte *vte, const char *u8, s
- {
- assert(len <= PIPE_BUF);
- if (term.master_fd >= 0 && write(term.master_fd, u8, len) < 0) {
-- fprintf(stderr, "could not write to pty master: %m\n");
-+ fprintf(stderr, "could not write to pty master: %s\n", strerror(errno));
- abort();
- }
- }
-@@ -223,7 +229,7 @@ static void handle_display(int ev)
- term.die = true;
- } else if (ev & EPOLLIN) {
- if (wl_display_dispatch(term.display) < 0) {
-- fprintf(stderr, "could not dispatch events: %m\n");
-+ fprintf(stderr, "could not dispatch events: %s\n", strerror(errno));
- abort();
- }
- }
-@@ -234,22 +240,22 @@ static void handle_tty(int ev)
- char data[256];
- int len;
-
-- if (ev & EPOLLIN) {
-+ if (ev & EPOLLHUP) {
-+ epoll_ctl(term.fd, EPOLL_CTL_DEL, term.master_fd, NULL);
-+ close(term.master_fd);
-+ term.master_fd = -1;
-+ if (!term.opt.linger)
-+ term.die = true;
-+ } else if (ev & EPOLLIN) {
- term.need_redraw = true;
- len = read(term.master_fd, data, sizeof(data));
- assert(len);
- if (len < 0) {
-- fprintf(stderr, "could not read from pty: %m\n");
-+ fprintf(stderr, "could not read from pty: %s\n", strerror(errno));
- abort();
- } else {
- tsm_vte_input(term.vte, data, len);
- }
-- } else if (ev & EPOLLHUP) {
-- epoll_ctl(term.fd, EPOLL_CTL_DEL, term.master_fd, NULL);
-- close(term.master_fd);
-- term.master_fd = -1;
-- if (!term.opt.linger)
-- term.die = true;
- }
- }
-
-@@ -528,20 +534,20 @@ static int buffer_init(struct buffer *buf)
- stride = term.width * 4;
- buf->size = stride * term.height;
-
-- srand(time(NULL));
- do {
-- sprintf(shm_name, "/havoc-%d", rand() % 1000000);
-+ snprintf(shm_name, sizeof(shm_name), "/havoc-%d",
-+ arc4random_uniform(1000000));
- fd = shm_open(shm_name, O_RDWR | O_CREAT | O_EXCL, 0600);
- } while (fd < 0 && errno == EEXIST && --max);
-
- if (fd < 0) {
-- fprintf(stderr, "shm_open failed: %m\n");
-+ fprintf(stderr, "shm_open failed: %s\n", strerror(errno));
- return -1;
- }
- shm_unlink(shm_name);
-
- if (ftruncate(fd, buf->size) < 0) {
-- fprintf(stderr, "ftruncate failed: %m\n");
-+ fprintf(stderr, "ftruncate failed: %s\n", strerror(errno));
- close(fd);
- return -1;
- }
-@@ -550,7 +556,7 @@ static int buffer_init(struct buffer *buf)
- fd, 0);
-
- if (buf->data == MAP_FAILED) {
-- fprintf(stderr, "mmap failed: %m\n");
-+ fprintf(stderr, "mmap failed: %s\n", strerror(errno));
- close(fd);
- return -1;
- }
-@@ -1492,7 +1498,7 @@ static void configure(void *d, struct xdg_surface *sur
- term.row = row;
- tsm_screen_resize(term.screen, col, row);
- if (term.master_fd >= 0 && ioctl(term.master_fd, TIOCSWINSZ, &ws) < 0)
-- fprintf(stderr, "could not resize pty: %m\n");
-+ fprintf(stderr, "could not resize pty: %s\n", strerror(errno));
-
- term.need_redraw = true;
- term.resize = 2;
-@@ -1579,7 +1585,7 @@ static void setup_pty(char *argv[])
- pid_t pid = forkpty(&term.master_fd, NULL, NULL, NULL);
-
- if (pid < 0) {
-- fprintf(stderr, "forkpty failed: %m");
-+ fprintf(stderr, "forkpty failed: %s", strerror(errno));
- exit(EXIT_FAILURE);
- } else if (pid == 0) {
- char *prog;
-@@ -1591,7 +1597,7 @@ static void setup_pty(char *argv[])
- execlp(term.cfg.shell, term.cfg.shell, (char *) NULL);
- prog = term.cfg.shell;
- }
-- fprintf(stderr, "could not execute %s: %m", prog);
-+ fprintf(stderr, "could not execute %s: %s", prog, strerror(errno));
- pause();
- exit(EXIT_FAILURE);
- }
-@@ -1794,9 +1800,9 @@ static FILE *open_config(void)
-
- f = fopen(term.opt.config, "r");
- if (f == NULL)
-- fprintf(stderr, "could not open '%s': %m, "
-+ fprintf(stderr, "could not open '%s': %s, "
- "using default configuration\n",
-- term.opt.config);
-+ term.opt.config, strerror(errno));
- return f;
- }
-
-@@ -2018,9 +2024,10 @@ retry:
-
- term.repeat.fd = timerfd_create(CLOCK_MONOTONIC,
- TFD_NONBLOCK | TFD_CLOEXEC);
-- if (term.repeat.fd < 0)
-- fail(etimer, "could not create key repeat timer: %m");
--
-+ if (term.repeat.fd < 0) {
-+ fprintf(stderr, "could not create key repeat timer: %s", strerror(errno));
-+ goto etimer;
-+ }
- if (term.d_dm && term.seat) {
- term.d_d = wl_data_device_manager_get_data_device(
- term.d_dm, term.seat);
Index: patches/patch-tsm_Makefile
===================================================================
RCS file: patches/patch-tsm_Makefile
diff -N patches/patch-tsm_Makefile
--- patches/patch-tsm_Makefile 26 Feb 2024 18:17:32 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,9 +0,0 @@
-Index: tsm/Makefile
---- tsm/Makefile.orig
-+++ tsm/Makefile
-@@ -1,4 +1,5 @@
- CFLAGS ?= -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-format-overflow
-+CFLAGS += -I/usr/local/include
-
- OBJ=wcwidth.o shl-htable.o\
- tsm-render.o tsm-screen.o tsm-selection.o\
--
Matthieu Herrb
update: wayland/havoc 0.7.0