I imported this port when I actively used it, but circumstances have changed and I have no longer any use for this TLS proxy, so I won't put any more effort into sending fixes upstream as well as maintaining our port.
1.6.0 was recently released, contains a few of my fixes merged upstream, but also brings new fixes and even features that seem to cause trouble on OpenBSD, namely support for client certificate validation. Below is a diff for starters to update hitch to 1.6.0 which already takes care of the fact that upstream now ships manuals in their dist tarballs such that we don't have to build them with rst2man (which upstream now again just looks for as "rst2man"; I used to fix this such that "rst2man-3" was preferred and picked up...). "make build" fails for 1.6.0 with cc -g -O2 -fno-strict-aliasing -O2 -pipe -L/usr/local/lib -o hitch hitch-configuration.o hitch-hitch.o hitch-hssl_locks.o hitch-logging.o hitch-ocsp.o hitch-ringbuffer.o -lssl -lcrypto -lcrypto -lev libcfg.a libforeign.a ld: error: undefined symbol: SSL_CTX_set1_verify_cert_store >>> referenced by hitch.c:949 (/usr/ports/pobj/hitch-1.6.0/hitch-1.6.0/src/hitch.c:949) >>> hitch-hitch.o:(make_ctx_fr) cc: error: linker command failed with exit code 1 (use -v to see invocation) There might be more in the new release, both build and runtime, but as mentioned above, I'll leave it here. Given that it's a TLS proxy and its history of bugs/fixes, I very much prefer to provide a well maintained port or none at all to either sticking to 1.5.2 or rolling best-effort future updates. So unless someone steps up to maintain this: is anyone actually using it/would anyone object to removing the port in case it stays unmaintained? Index: Makefile =================================================================== RCS file: /cvs/ports/security/hitch/Makefile,v retrieving revision 1.8 diff -u -p -r1.8 Makefile --- Makefile 26 Jun 2020 17:41:14 -0000 1.8 +++ Makefile 26 Jun 2020 17:54:28 -0000 @@ -2,9 +2,8 @@ COMMENT = libev-based high performance TLS proxy -V = 1.5.2 +V = 1.6.0 DISTNAME = hitch-${V} -REVISION = 0 CATEGORIES = security @@ -17,25 +16,19 @@ MASTER_SITES = https://hitch-tls.org/so WANTLIB = c crypto ev ssl -MODULES = lang/python -MODPY_VERSION = ${MODPY_DEFAULT_VERSION_3} -MODPY_RUNDEP = No - -BUILD_DEPENDS = textproc/py-docutils${MODPY_FLAVOR} LIB_DEPENDS = devel/libev>=4 TEST_DEPENDS = ${PKGPATH}=${V} \ net/curl SEPARATE_BUILD = Yes CONFIGURE_STYLE = gnu -CONFIGURE_ARGS = --with-rst2man=rst2man${MODPY_BIN_SUFFIX} CONFIGURE_ENV = CPPFLAGS='${CPPFLAGS} -I${LOCALBASE}/include' \ LDFLAGS='${LDFLAGS} -L${LOCALBASE}/lib' TEST_IS_INTERACTIVE = connects to hitch-tls.org:80 and 127.0.0.1:443 post-patch: - ${SUBST_CMD} ${WRKSRC}/{hitch.conf.man.rst,src/configuration.c} + ${SUBST_CMD} ${WRKSRC}/{hitch.conf.5,src/configuration.c} post-configure: ln -sf ${WRKSRC}/src/cfg_{lex,parser}.[ch] ${WRKBUILD}/src/ Index: distinfo =================================================================== RCS file: /cvs/ports/security/hitch/distinfo,v retrieving revision 1.3 diff -u -p -r1.3 distinfo --- distinfo 28 Nov 2019 20:00:44 -0000 1.3 +++ distinfo 26 Jun 2020 17:54:28 -0000 @@ -1,2 +1,2 @@ -SHA256 (hitch-1.5.2.tar.gz) = saT9ZFhM1P+Ba4UT7lUi2zSkQxdHBXQhtuhw9yLG39o= -SIZE (hitch-1.5.2.tar.gz) = 309626 +SHA256 (hitch-1.6.0.tar.gz) = TkfrSrt904CchCg1iK30Hd8Me8BlywDQkoJ0iJwHxwY= +SIZE (hitch-1.6.0.tar.gz) = 321384 Index: patches/patch-hitch_conf_5 =================================================================== RCS file: patches/patch-hitch_conf_5 diff -N patches/patch-hitch_conf_5 --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-hitch_conf_5 26 Jun 2020 17:54:28 -0000 @@ -0,0 +1,27 @@ +$OpenBSD$ + +Set correct ocsp_dir and default user. + +Index: hitch.conf.5 +--- hitch.conf.5.orig ++++ hitch.conf.5 +@@ -214,7 +214,7 @@ Default is 0. + .SS ocsp\-dir = <string> + .sp + Directory where Hitch will store and read OCSP responses for +-stapling. Default is "/var/lib/hitch/". ++stapling. Default is "${LOCALSTATEDIR}/hitch/". + .sp + Directory must be readable and writable for the configured Hitch user, or + automatic retrieval and updating of OCSP responses will not take place. +@@ -499,8 +499,8 @@ daemon = on + + # We strongly recommend you create a separate non\-privileged hitch + # user and group +-user = "hitch" +-group = "hitch" ++user = "_hitch" ++group = "_hitch" + + # Enable to let clients negotiate HTTP/2 with ALPN. (default off) + # alpn\-protos = "h2, http/1.1" Index: patches/patch-hitch_conf_man_rst =================================================================== RCS file: patches/patch-hitch_conf_man_rst diff -N patches/patch-hitch_conf_man_rst --- patches/patch-hitch_conf_man_rst 22 Apr 2020 11:18:32 -0000 1.4 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,27 +0,0 @@ -$OpenBSD: patch-hitch_conf_man_rst,v 1.4 2020/04/22 11:18:32 kn Exp $ - -Set ocsp_dir and default user. - -Index: hitch.conf.man.rst ---- hitch.conf.man.rst.orig -+++ hitch.conf.man.rst -@@ -148,7 +148,7 @@ ocsp-dir = <string> - ------------------- - - Directory where Hitch will store and read OCSP responses for --stapling. Default is "/var/lib/hitch/". -+stapling. Default is "${LOCALSTATEDIR}/hitch/". - - Directory must be readable and writable for the configured Hitch user, or - automatic retrieval and updating of OCSP responses will not take place. -@@ -416,8 +416,8 @@ The following file shows the syntax needed to get star - - # We strongly recommend you create a separate non-privileged hitch - # user and group -- user = "hitch" -- group = "hitch" -+ user = "_hitch" -+ group = "_hitch" - - # Enable to let clients negotiate HTTP/2 with ALPN. (default off) - # alpn-protos = "h2, http/1.1" Index: patches/patch-src_configuration_c =================================================================== RCS file: /cvs/ports/security/hitch/patches/patch-src_configuration_c,v retrieving revision 1.4 diff -u -p -r1.4 patch-src_configuration_c --- patches/patch-src_configuration_c 22 Apr 2020 11:18:32 -0000 1.4 +++ patches/patch-src_configuration_c 26 Jun 2020 17:54:28 -0000 @@ -5,7 +5,7 @@ Set ocsp_dir. Index: src/configuration.c --- src/configuration.c.orig +++ src/configuration.c -@@ -209,7 +209,7 @@ config_new(void) +@@ -211,7 +211,7 @@ config_new(void) r->CERT_FILES = NULL; r->LISTEN_ARGS = NULL; r->PEM_DIR = NULL;