From: David Uhden Collado Subject: Re: [NEW] net/simplexmq and net/simplex-chat To: ports@openbsd.org Date: Tue, 28 Jul 2026 21:46:00 +0000 David Uhden Collado wrote: > Hello ports@, > > These are new ports for: > >   net/simplexmq    -- SimpleX Messaging Protocol server >   net/simplex-chat -- SimpleX Chat terminal client > > simplexmq provides the SMP message broker and the XFTP file-transfer > server. simplex-chat is the terminal client. Both use devel/cabal > and are restricted to amd64 and arm64 (GHC bootstrap is not > available on other architectures). > > The ports target the latest stable upstream releases: simplexmq > v6.5.5.0 (commit 92598c2d) and simplex-chat v6.5.6 (tag v6.5.6). > > Patches applied: >   - LibreSSL paths, ED448 fallback in XFTP server init >   - GHC 9.10+ and http2 5.x compatibility (TypeLits, > DuplicateRecordFields, Config -> defaultConfig API migration) >   - OpenBSD-style config and log directories under /etc/simplex/ and >     /var/simplex/ >   - crypton/ram bytearray migration (memory -> ram, asn1-* -> >     crypton-asn1-*) >   - HSEC-2026-0007 backport for aeson 2.2.1.0 >   - Service authentication moved from TLS client credentials to the >     SMP handshake >   - SPDX license identifiers and mdoc(7) man pages for the three >     binaries >   - dos2unix normalization of upstream sources before patching > > User/group: >   I am requesting UID 906 for _simplexmq. The pid file patch is >   included in the port. See infrastructure/db/user.list diff attached. > > Open items I would like feedback on: > > 1. Test failures in simplexmq >    The simplexmq test suite starts local SMP and XFTP servers to run >    integration tests. Most tests pass, but the XFTP transfer tests >    fail with a connect error ("end of file") when client tests try >    to connect to the XFTP test server on localhost:8000. The TLS >    handshake terminates immediately. > >    This may be a LibreSSL compatibility issue in the test server's >    TLS setup, or a port-binding race. I have not yet determined the >    root cause. If it turns out to be a test-infrastructure issue >    that does not affect runtime server behavior, it may be safe to >    mark the test suite as known-failing on OpenBSD. Feedback from >    anyone familiar with the TLS/crypton stack on OpenBSD would be >    very helpful here. > > 2. Test conflicts between simplexmq and simplex-chat >    Both test suites start local SMP/XFTP servers on fixed ports. >    Running `make test` in one port while the other is installed or >    running will cause port conflicts. For now, the tests should be >    run sequentially and on a clean system. I have not yet >    implemented randomized port selection for the test servers; >    patches welcome. > > 3. Vendored dependencies >    Both ports carry vendored Haskell dependencies via DIST_TUPLE >    (aeson, hs-socks, direct-sqlcipher, sqlcipher-simple, warp, >    warp-tls, terminal, android-support, zip, blst, libbbs). These >    are upstream forks pinned to specific commits. The cabal.inc >    manifests are regenerated via `make cabal-inc`, which requires >    cabal-bundler from Hackage. > > Build test: cabal-inc, build, fake, package on amd64-current with > GHC 9.10.3 and LibreSSL. > > Feedback welcome, especially on the test-failure diagnosis and > whether a known-failing annotation is acceptable. I've updated the net/simplexmq and net/simplex-chat ports to the latest stable release, 7.0.0. The Haskell direct-sqlcipher and simple-sqlcipher dependencies now link against the OpenBSD sqlcipher port instead of building their vendored copy. I made the same change for zlib. I also updated the existing patches and reorganized the rather large Makefile to make it easier to maintain. I'm still having trouble with the simplexmq test suite. I would appreciate any help identifying the cause of the failures. For simplex-chat, I'm currently using the latest 7.0.0 beta tag because there were no CLI changes between beta 6 and the final 7.0.0 release. Index: net/Makefile --- net/Makefile.orig +++ net/Makefile @@ -709,6 +709,8 @@ SUBDIR += silc-server SUBDIR += silc-server,operops SUBDIR += sing + SUBDIR += simplex-chat + SUBDIR += simplexmq SUBDIR += sipcalc SUBDIR += sipsak SUBDIR += slurm Index: infrastructure/db/user.list --- infrastructure/db/user.list.orig +++ infrastructure/db/user.list @@ -414,3 +414,4 @@ 903 _iaxmodem _iaxmodem telephony/iaxmodem 904 _neighbot _neighbot net/neighbot 905 _pgweb _pgweb www/pgweb +906 _simplexmq _simplexmq net/simplexmq