If you're a regular user of st, let me know if this patch works for you or not.
The patch was written by tb@. Index: Makefile =================================================================== RCS file: /var/cvs/ports/x11/st/Makefile,v retrieving revision 1.13 diff -u -p -r1.13 Makefile --- Makefile 9 Oct 2016 18:47:49 -0000 1.13 +++ Makefile 28 Mar 2017 10:17:30 -0000 @@ -3,6 +3,7 @@ COMMENT= simple X terminal DISTNAME= st-0.7 +REVISION= 0 CATEGORIES= x11 @@ -13,6 +14,7 @@ MAINTAINER= Joerg Jung <[email protected] # MIT/X Consortium License PERMIT_PACKAGE_CDROM= Yes +# uses pledge() WANTLIB= c m util X11 Xft fontconfig freetype z MASTER_SITES= http://dl.suckless.org/st/ Index: patches/patch-config_mk =================================================================== RCS file: /var/cvs/ports/x11/st/patches/patch-config_mk,v retrieving revision 1.8 diff -u -p -r1.8 patch-config_mk --- patches/patch-config_mk 9 Oct 2016 18:47:49 -0000 1.8 +++ patches/patch-config_mk 28 Mar 2017 10:27:29 -0000 @@ -1,6 +1,6 @@ $OpenBSD: patch-config_mk,v 1.8 2016/10/09 18:47:49 czarkoff Exp $ ---- config.mk.orig Sat Oct 8 21:48:48 2016 -+++ config.mk Sat Oct 8 21:50:30 2016 +--- config.mk.orig Thu Aug 11 16:25:58 2016 ++++ config.mk Tue Mar 28 12:27:10 2017 @@ -4,24 +4,21 @@ VERSION = 0.7 # Customize below to fit your system @@ -27,9 +27,10 @@ $OpenBSD: patch-config_mk,v 1.8 2016/10/ +LIBS +!= pkg-config --libs fontconfig # flags - CPPFLAGS = -DVERSION=\"${VERSION}\" -D_XOPEN_SOURCE=600 +-CPPFLAGS = -DVERSION=\"${VERSION}\" -D_XOPEN_SOURCE=600 -CFLAGS += -g -std=c99 -pedantic -Wall -Wvariadic-macros -Os ${INCS} ${CPPFLAGS} -LDFLAGS += -g ${LIBS} ++CPPFLAGS = -DVERSION=\"${VERSION}\" -D_XOPEN_SOURCE=600 -D_BSD_SOURCE +CFLAGS += -std=c99 ${INCS} ${CPPFLAGS} +LDFLAGS += ${LIBS} Index: patches/patch-st_c =================================================================== RCS file: patches/patch-st_c diff -N patches/patch-st_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-st_c 28 Mar 2017 10:59:38 -0000 @@ -0,0 +1,48 @@ +$OpenBSD$ +--- st.c.orig Thu Aug 11 16:25:58 2016 ++++ st.c Tue Mar 28 12:59:33 2017 +@@ -1328,6 +1328,10 @@ execsh(void) + const struct passwd *pw; + char buf[sizeof(long) * 8 + 1]; + ++ if (pledge("stdio proc exec getpw", NULL) == -1) { ++ die("pledge\n"); ++ } ++ + errno = 0; + if ((pw = getpwuid(getuid())) == NULL) { + if (errno) +@@ -1336,6 +1340,10 @@ execsh(void) + die("who are you?\n"); + } + ++ if (pledge("stdio proc exec", NULL) == -1) { ++ die("pledge\n"); ++ } ++ + if ((sh = getenv("SHELL")) == NULL) + sh = (pw->pw_shell[0]) ? pw->pw_shell : shell; + +@@ -1457,6 +1465,8 @@ ttynew(void) + execsh(); + break; + default: ++ if (pledge("stdio rpath wpath tty", NULL) == -1) ++ die("pledge\n"); + close(s); + cmdfd = m; + signal(SIGCHLD, sigchld); +@@ -4397,6 +4407,13 @@ run: + tnew(MAX(cols, 1), MAX(rows, 1)); + xinit(); + selinit(); ++ if (!opt_io || !strcmp(opt_io, "-")) { ++ if (pledge("stdio rpath wpath getpw proc exec tty", NULL) == -1) ++ die("pledge\n"); ++ } else { ++ if (pledge("stdio rpath wpath cpath getpw proc exec tty", NULL) == -1) ++ die("pledge\n"); ++ } + run(); + + return 0;
