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

Attachment: simplex-chat.tar.gz
Description: application/gzip

Attachment: simplexmq.tar.gz
Description: application/gzip

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

Reply via email to