[NEW] net/simplexmq and net/simplex-chat

David Uhden Collado <[email protected]>
Newsgroups gmane.os.openbsd.ports
Message-ID <[email protected]>
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.
user.list.patch (text/x-patch, 232 B)
Index: infrastructure/db/user.list
--- infrastructure/db/user.list.orig
+++ infrastructure/db/user.list
@@ -905,3 +905,4 @@
 905 _pgweb               _pgweb          www/pgweb
+906 _simplexmq           _simplexmq      net/simplexmq
simplexmq.tar.gz (application/gzip, 50.4 KB) - not displayed
simplex-chat.tar.gz (application/gzip, 46.9 KB) - not displayed
net-makefile.patch (text/x-patch, 269 B)
Index: net/Makefile
--- net/Makefile.orig
+++ net/Makefile
@@ -1762,6 +1762,8 @@
      SUBDIR += signald
      SUBDIR += silc-client
      SUBDIR += silc-server
+     SUBDIR += simplex-chat
+     SUBDIR += simplexmq
      SUBDIR += sipcalc
      SUBDIR += slowhttptest
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.