Quite a few of the OpenBSD patches have been folded upstream. The project also added support for some quick ssl mode which libressl doesn't have any code for, so disable that on OpenBSD.
Also added (commented out) disable-graphics3d. see https://github.com/uniconproject/unicon/issues/678 about that, I hope to have it fixed eventually. Index: Makefile =================================================================== RCS file: /vide/cvs/ports/lang/unicon/Makefile,v diff -u -p -r1.37 Makefile --- Makefile 17 Jul 2026 08:49:21 -0000 1.37 +++ Makefile 8 Oct 2026 08:30:23 -0000 @@ -4,8 +4,8 @@ CATEGORIES= lang GH_ACCOUNT = uniconproject # XXX switched to commit because I'm upstreaming patches # GH_TAGNAME = 13.2 -DISTNAME = unicon-13.3beta1 -GH_COMMIT = 0b8f99c2affe981f87639fc2577d2a68d05739ba +DISTNAME = unicon-13.3beta2 +GH_COMMIT = 788a535d0909e4487e797cc8c9218d7470ba2ae7 GH_PROJECT = unicon HOMEPAGE= https://unicon.sourceforge.net/ @@ -40,6 +40,7 @@ CONFIGURE_ARGS += --with-Xft=${X11BASE} CONFIGURE_ARGS += --without-zlib # we don't have this, so avoid it entirely CONFIGURE_ARGS += --without-voip +#CONFIGURE_ARGS += --disable-graphics3d # in case something breaks Index: distinfo =================================================================== RCS file: /vide/cvs/ports/lang/unicon/distinfo,v diff -u -p -r1.5 distinfo --- distinfo 17 Jul 2026 08:49:21 -0000 1.5 +++ distinfo 8 Oct 2026 08:30:30 -0000 @@ -1,2 +1,2 @@ -SHA256 (unicon-13.3beta1-0b8f99c2.tar.gz) = yf6OSKDyNScfolZTCNZ4ZAusXU70WUA9dkkXvtdkNJQ= -SIZE (unicon-13.3beta1-0b8f99c2.tar.gz) = 18526560 +SHA256 (unicon-13.3beta2-788a535d.tar.gz) = QXPpTF0JKOa/MKR0yh6NqG64pAu72LPPbIv7g6iiyig= +SIZE (unicon-13.3beta2-788a535d.tar.gz) = 19667760 Index: patches/patch-configure_ac =================================================================== RCS file: /vide/cvs/ports/lang/unicon/patches/patch-configure_ac,v diff -u -p -r1.1 patch-configure_ac --- patches/patch-configure_ac 17 Jul 2026 08:49:21 -0000 1.1 +++ patches/patch-configure_ac 8 Oct 2026 09:28:52 -0000 @@ -1,76 +1,7 @@ Index: configure.ac --- configure.ac.orig +++ configure.ac -@@ -98,6 +98,11 @@ case $host_os in - unicon_os="aix" - AC_DEFINE([UNIX], [1], [Unix platform]) - ;; -+ *openbsd*) -+ unicon_os="openbsd" -+ AC_DEFINE([UNIX], [1], [Unix platform]) -+ AC_DEFINE([OpenBSD], [1], [OpenBSD OS]) -+ ;; - *bsd*) - # freebsd for now - unicon_os="freebsd" -@@ -421,6 +426,9 @@ fi - # AC_CFLAG([-Wmissing-declarations]) - #fi - -+# remove some noise for now -+AC_CFLAG([-Wno-deprecated-non-prototype]) -+ - # We always want these CFLAGS if available; the second one is necessary for a stable runtime - AC_CFLAG([-fno-omit-frame-pointer]) - -@@ -432,6 +440,10 @@ if test x"$CC" = x"clang" || test x"$unicon_os" = x"ma - AC_CFLAG([-Werror -Wno-parentheses-equality], [], [CFLAGS="$CFLAGS -Wno-parentheses-equality"]) - AC_CXXFLAG([-Werror -Wno-parentheses-equality], [], [CXXFLAGS="$CXXFLAGS -Wno-parentheses-equality"]) - fi -+AC_CFLAG([-Werror -Wno-deprecated-non-prototype], [], [ICONCCFLAGS="$ICONCCFLAGS -Wno-deprecated-non-prototype"]) -+AC_CFLAG([-Werror -Wno-parentheses-equality], [], [ICONCCFLAGS="$ICONCCFLAGS -Wno-parentheses-equality"]) -+AC_CFLAG([-Werror -Wno-unused-value], [], [ICONCCFLAGS="$ICONCCFLAGS -Wno-unused-value"]) -+AC_CFLAG([-Werror -Wno-return-type], [], [ICONCCFLAGS="$ICONCCFLAGS -Wno-return-type"]) - - #if test x"${enable_werror}" = x"yes" ; then - # WERROR="-Werror" -@@ -622,6 +634,7 @@ AC_SUBST(CFDYN) - AC_SUBST(LDDYN) - AC_SUBST(SO) - AC_SUBST(ICONCTARGET) -+AC_SUBST(ICONCCFLAGS) - - AC_SUBST(UDBTOOLS) - AC_SUBST(UNIPROGS) -@@ -778,12 +791,7 @@ if ! test "x$graphics" = "xno"; then - else - CHECK_OPENGL() - fi -- # A C++ compiler must be present and usable -- if test "x$CXX" = "xg++" -a "x$GXX" = "xyes"; then -- CHECK_FTGL() -- else -- echo "FTGL: missing or untrusted C++; CXX is $CXX and GXX is $GXX" -- fi -+ CHECK_FTGL() - else - AC_DEFINE([NoGraphics3D], [1], [No Graphics3D]) - fi -@@ -895,12 +903,7 @@ else - fi - - if ! test "x$voip" = "xno"; then -- # A C++ compiler must be present and usable -- if test "$CXX" = "g++" -a "$GXX" = "yes"; then -- CHECK_VOICE() -- else -- echo "VOIP: missing or untrusted C++; CXX is $CXX and GXX is $GXX" -- fi -+ CHECK_VOICE() - else - AC_DEFINE([NoVoip], [1], [No VOIP]) - fi -@@ -987,6 +990,7 @@ AC_CONFIG_FILES([Makefile:Makefile.in],) +@@ -1032,6 +1032,7 @@ AC_CONFIG_FILES([Makefile:Makefile.in],) AC_CONFIG_FILES([Makedefs:Makedefs.in],) AC_CONFIG_FILES([Makedefs.uni:Makedefs.uni.in],) AC_CONFIG_HEADERS([src/h/auto.h:src/h/auto.in],) Index: patches/patch-ipl_cfuncs_fpoll_c =================================================================== RCS file: patches/patch-ipl_cfuncs_fpoll_c diff -N patches/patch-ipl_cfuncs_fpoll_c --- patches/patch-ipl_cfuncs_fpoll_c 17 Jul 2026 08:49:21 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,18 +0,0 @@ -Index: ipl/cfuncs/fpoll.c ---- ipl/cfuncs/fpoll.c.orig -+++ ipl/cfuncs/fpoll.c -@@ -69,11 +69,13 @@ int fpoll(int argc, descriptor *argv) /*: await data f - #elif __linux - if (f->_IO_read_ptr < f->_IO_read_end) - RetArg(1); --#elif __bsdi__ || __FreeBSD__ || __NetBSD__ || __OpenBSD__ || __APPLE__ -+#elif __bsdi__ || __FreeBSD__ || __NetBSD__ || __APPLE__ - if (f->_r > 0) - RetArg(1); - #elif __sun - /* insert your implementation here */ -+#elif __OpenBSD__ -+ /* no way to do in OpenBSD, FILEs are opaque, sorry ! */ - #else - if (f->_cnt > 0) - RetArg(1); Index: patches/patch-src_h_config_h =================================================================== RCS file: /vide/cvs/ports/lang/unicon/patches/patch-src_h_config_h,v diff -u -p -r1.1 patch-src_h_config_h --- patches/patch-src_h_config_h 17 Jul 2026 08:49:21 -0000 1.1 +++ patches/patch-src_h_config_h 8 Oct 2026 09:20:09 -0000 @@ -1,7 +1,7 @@ Index: src/h/config.h --- src/h/config.h.orig +++ src/h/config.h -@@ -106,6 +106,23 @@ +@@ -106,6 +106,25 @@ #define NoVFork #endif /* SUN */ @@ -21,6 +21,8 @@ Index: src/h/config.h +#define HAVE_GETHOSTNAME 1 +#define HAVE_GETPWUID 1 +#define HAVE_GETUID 1 ++/* libressl doesn't have that support */ ++#define OPENSSL_NO_DTLS 1 +#endif /* OpenBSD */ #if FreeBSD Index: patches/patch-src_h_sys_h =================================================================== RCS file: /vide/cvs/ports/lang/unicon/patches/patch-src_h_sys_h,v diff -u -p -r1.1 patch-src_h_sys_h --- patches/patch-src_h_sys_h 17 Jul 2026 08:49:21 -0000 1.1 +++ patches/patch-src_h_sys_h 8 Oct 2026 09:10:50 -0000 @@ -1,7 +1,7 @@ Index: src/h/sys.h --- src/h/sys.h.orig +++ src/h/sys.h -@@ -176,7 +176,11 @@ +@@ -180,7 +180,11 @@ #endif /* PseudoPty || Audio */ #ifdef Audio #include <sys/ioctl.h> Index: patches/patch-src_iconc_ccomp_c =================================================================== RCS file: /vide/cvs/ports/lang/unicon/patches/patch-src_iconc_ccomp_c,v diff -u -p -r1.1 patch-src_iconc_ccomp_c --- patches/patch-src_iconc_ccomp_c 17 Jul 2026 08:49:21 -0000 1.1 +++ patches/patch-src_iconc_ccomp_c 8 Oct 2026 09:10:50 -0000 @@ -1,7 +1,7 @@ Index: src/iconc/ccomp.c --- src/iconc/ccomp.c.orig +++ src/iconc/ccomp.c -@@ -323,6 +323,9 @@ Deliberate Syntax Error +@@ -327,6 +327,9 @@ Deliberate Syntax Error #endif /* NTGCC */ #if UNIX @@ -11,7 +11,7 @@ Index: src/iconc/ccomp.c #ifdef MacOS /* needs to be more precise, add a HAVE_LIBDL or some such */ buf = growcat(buf, &buflen, 1, " -ldl -Wl,-export_dynamic "); -@@ -331,6 +334,7 @@ Deliberate Syntax Error +@@ -335,6 +338,7 @@ Deliberate Syntax Error buf = growcat(buf, &buflen, 1, " -ldl -export-dynamic "); #endif /* MacOS */ #endif /* UNIX */ Index: patches/patch-src_runtime_fmonitr_r =================================================================== RCS file: patches/patch-src_runtime_fmonitr_r diff -N patches/patch-src_runtime_fmonitr_r --- patches/patch-src_runtime_fmonitr_r 17 Jul 2026 08:49:21 -0000 1.3 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,19 +0,0 @@ -Index: src/runtime/fmonitr.r ---- src/runtime/fmonitr.r.orig -+++ src/runtime/fmonitr.r -@@ -565,11 +565,15 @@ void EVInit() - * the text segment. - */ - #if HAVE_PROFIL -+#ifdef OpenBSD -+ profil((char *)(ticker.s), sizeof(ticker.s), 2, (long) EVInit & ~0x3FFFF, 2, -1); -+#else - #ifdef PROFIL_CHAR_P - profil((char *)(ticker.s), sizeof(ticker.s), (long) EVInit & ~0x3FFFF, 2); - #else /* PROFIL_CHAR_P */ - profil((unsigned short *)(ticker.s), sizeof(ticker.s), - (long) EVInit & ~0x3FFFF, 2); -+#endif - #endif /* PROFIL_CHAR_P */ - #endif /* HAVE_PROFIL */ - #endif /* UNIX */ Index: patches/patch-src_runtime_rsys_r =================================================================== RCS file: patches/patch-src_runtime_rsys_r diff -N patches/patch-src_runtime_rsys_r --- patches/patch-src_runtime_rsys_r 17 Jul 2026 08:49:21 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,21 +0,0 @@ -Index: src/runtime/rsys.r ---- src/runtime/rsys.r.orig -+++ src/runtime/rsys.r -@@ -1392,7 +1392,7 @@ void ptclose(struct ptstruct *ptStruct) - struct ptstruct *ptopen(char *command) - { - char **av; --#if defined(MacOS) || defined(FreeBSD) -+#if defined(MacOS) || defined(FreeBSD) || defined(OpenBSD) - char *tmps; - #endif /* MacOS || FreeBSD */ - #if NT -@@ -1482,7 +1482,7 @@ struct ptstruct *ptopen(char *command) - if(ttyname_r(newPtStruct->master_fd,newPtStruct->slave_filename, - sizeof(newPtStruct->slave_filename)) != 0) { - #else /* SUN */ --#if defined(MacOS) || defined(FreeBSD) -+#if defined(MacOS) || defined(FreeBSD) || defined(OpenBSD) - if (((tmps = ptsname(newPtStruct->master_fd)) == NULL) || - (strlen(tmps) > sizeof(newPtStruct->slave_filename)-1) || - (!strcpy(newPtStruct->slave_filename, tmps))){ Index: patches/patch-tests_Makefile_test =================================================================== RCS file: /vide/cvs/ports/lang/unicon/patches/patch-tests_Makefile_test,v diff -u -p -r1.1 patch-tests_Makefile_test --- patches/patch-tests_Makefile_test 17 Jul 2026 08:49:21 -0000 1.1 +++ patches/patch-tests_Makefile_test 8 Oct 2026 09:10:50 -0000 @@ -1,7 +1,7 @@ Index: tests/Makefile.test --- tests/Makefile.test.orig +++ tests/Makefile.test -@@ -85,14 +85,14 @@ endif +@@ -89,14 +89,14 @@ endif diff -wq stand/[email protected] local/[email protected] >/dev/null; \ if [ $$? -eq 0 ] ; then echo "w pass"; \ else echo "w FAIL"; \ Index: patches/patch-tests_posix_tcp_icn =================================================================== RCS file: patches/patch-tests_posix_tcp_icn diff -N patches/patch-tests_posix_tcp_icn --- patches/patch-tests_posix_tcp_icn 17 Jul 2026 08:49:21 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,25 +0,0 @@ -Index: tests/posix/tcp.icn ---- tests/posix/tcp.icn.orig -+++ tests/posix/tcp.icn -@@ -2,9 +2,11 @@ - - procedure main() -+# random port because we want to avoid REUSE_ADDR errors -+ sockname := "127.0.0.1:" || string(1234+?10000) - - if fork() ~= 0 then { - delay(2) -- f := open("127.0.0.1:1234", "n") | stop("Couldn't open connection: ", -+ f := open(sockname, "n") | stop("Couldn't open connection: ", - &errortext | "Unknown") - write(f, "hellow, world!") - write("ret: ", read(f)) -@@ -12,7 +14,7 @@ procedure main() - exit(0) - } - -- if f := open("127.0.0.1:1234", "na") then { -+ if f := open(sockname, "na") then { - if fork() = 0 then { - handle(f) - exit(0) Index: pkg/PLIST =================================================================== RCS file: /vide/cvs/ports/lang/unicon/pkg/PLIST,v diff -u -p -r1.9 PLIST --- pkg/PLIST 17 Jul 2026 08:49:21 -0000 1.9 +++ pkg/PLIST 8 Oct 2026 09:45:37 -0000 @@ -5,12 +5,14 @@ bin/ivib @bin bin/iyacc @bin bin/patchstr bin/udb +bin/uflex bin/ui bin/ulsp bin/unicon bin/unidep bin/unidoc bin/uprof +bin/uscribe lib/unicon/ lib/unicon/ipl/ lib/unicon/ipl/gincl/ @@ -693,6 +695,7 @@ lib/unicon/ipl/procs/ximage.icn lib/unicon/ipl/procs/xoptions.icn lib/unicon/ipl/procs/xrotate.icn lib/unicon/ipl/procs/zipread.icn +@so lib/unicon/libcfunc.so lib/unicon/plugins/ lib/unicon/plugins/lib/ @so lib/unicon/plugins/lib/bitman.so @@ -853,6 +856,7 @@ lib/unicon/uni/gui/menucomponent.u lib/unicon/uni/gui/menuseparator.icn lib/unicon/uni/gui/menuseparator.u lib/unicon/uni/gui/messagebox.icn +lib/unicon/uni/gui/messagebox.u lib/unicon/uni/gui/migration.icn lib/unicon/uni/gui/migration.u lib/unicon/uni/gui/node.icn @@ -907,6 +911,8 @@ lib/unicon/uni/gui/textlist.icn lib/unicon/uni/gui/textlist.u lib/unicon/uni/gui/textmenuitem.icn lib/unicon/uni/gui/textmenuitem.u +lib/unicon/uni/gui/theme.icn +lib/unicon/uni/gui/theme.u lib/unicon/uni/gui/ticker.icn lib/unicon/uni/gui/ticker.u lib/unicon/uni/gui/toggle.icn @@ -976,6 +982,8 @@ lib/unicon/uni/lib/contentdisposition.ic lib/unicon/uni/lib/contentdisposition.u lib/unicon/uni/lib/contenttype.icn lib/unicon/uni/lib/contenttype.u +lib/unicon/uni/lib/crypto.icn +lib/unicon/uni/lib/crypto.u lib/unicon/uni/lib/cvsuser.icn lib/unicon/uni/lib/cvsuser.u lib/unicon/uni/lib/cvsutil.icn @@ -1025,8 +1033,12 @@ lib/unicon/uni/lib/httprequest.icn lib/unicon/uni/lib/httprequest.u lib/unicon/uni/lib/httpresponse.icn lib/unicon/uni/lib/httpresponse.u +lib/unicon/uni/lib/icmp.icn +lib/unicon/uni/lib/icmp.u lib/unicon/uni/lib/icon.icn lib/unicon/uni/lib/iconbutton.icn +lib/unicon/uni/lib/igmp.icn +lib/unicon/uni/lib/igmp.u lib/unicon/uni/lib/json.icn lib/unicon/uni/lib/json.u lib/unicon/uni/lib/jsonrpc.icn @@ -1081,6 +1093,8 @@ lib/unicon/uni/lib/object.icn lib/unicon/uni/lib/object.u lib/unicon/uni/lib/overlayitem.icn lib/unicon/uni/lib/overlayset.icn +lib/unicon/uni/lib/packetspec.icn +lib/unicon/uni/lib/packetspec.u lib/unicon/uni/lib/pdb_util.icn lib/unicon/uni/lib/pdb_util.u lib/unicon/uni/lib/popclient.icn @@ -1128,6 +1142,8 @@ lib/unicon/uni/lib/soap_util.icn lib/unicon/uni/lib/soapclient.icn lib/unicon/uni/lib/soapserver.icn lib/unicon/uni/lib/sql.icn +lib/unicon/uni/lib/ssh.icn +lib/unicon/uni/lib/ssh.u lib/unicon/uni/lib/str_replacer.icn lib/unicon/uni/lib/str_replacer.u lib/unicon/uni/lib/str_util.icn @@ -1289,6 +1305,53 @@ lib/unicon/uni/unidoc/buildDocs.sh lib/unicon/uni/unidoc/buildIPLdoc.sh lib/unicon/uni/unidoc/uniclass.dir lib/unicon/uni/unidoc/uniclass.pag +lib/unicon/uni/uscribe/ +lib/unicon/uni/uscribe/README.md +lib/unicon/uni/uscribe/bib.icn +lib/unicon/uni/uscribe/bib.u +lib/unicon/uni/uscribe/config.icn +lib/unicon/uni/uscribe/config.u +lib/unicon/uni/uscribe/directive.icn +lib/unicon/uni/uscribe/directive.u +lib/unicon/uni/uscribe/inline.icn +lib/unicon/uni/uscribe/inline.u +lib/unicon/uni/uscribe/labeltable.icn +lib/unicon/uni/uscribe/labeltable.u +lib/unicon/uni/uscribe/latexout.icn +lib/unicon/uni/uscribe/latexout.u +lib/unicon/uni/uscribe/main.icn +lib/unicon/uni/uscribe/main.u +lib/unicon/uni/uscribe/manifest.icn +lib/unicon/uni/uscribe/manifest.u +lib/unicon/uni/uscribe/node.icn +lib/unicon/uni/uscribe/node.u +lib/unicon/uni/uscribe/outputter.icn +lib/unicon/uni/uscribe/outputter.u +lib/unicon/uni/uscribe/parser.icn +lib/unicon/uni/uscribe/parser.u +lib/unicon/uni/uscribe/scan.icn +lib/unicon/uni/uscribe/scan.u +lib/unicon/uni/uscribe/themes/ +lib/unicon/uni/uscribe/themes/README.md +lib/unicon/uni/uscribe/themes/_shared/ +lib/unicon/uni/uscribe/themes/_shared/highlight-unicon.js +lib/unicon/uni/uscribe/themes/_shared/highlight.css +lib/unicon/uni/uscribe/themes/_shared/search.js +lib/unicon/uni/uscribe/themes/_shared/theme-switcher.js +lib/unicon/uni/uscribe/themes/basic/ +lib/unicon/uni/uscribe/themes/basic/static/ +lib/unicon/uni/uscribe/themes/basic/static/book.css +lib/unicon/uni/uscribe/themes/basic/theme.conf +lib/unicon/uni/uscribe/themes/classic/ +lib/unicon/uni/uscribe/themes/classic/static/ +lib/unicon/uni/uscribe/themes/classic/static/book.css +lib/unicon/uni/uscribe/themes/classic/theme.conf +lib/unicon/uni/uscribe/themes/dark/ +lib/unicon/uni/uscribe/themes/dark/static/ +lib/unicon/uni/uscribe/themes/dark/static/book.css +lib/unicon/uni/uscribe/themes/dark/theme.conf +lib/unicon/uni/uscribe/uniclass.dir +lib/unicon/uni/uscribe/uniclass.pag lib/unicon/uni/xml/ lib/unicon/uni/xml/attlist.icn lib/unicon/uni/xml/attlist.u
