Friday, August 14, 2026

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

David Uhden Collado wrote: > 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. Hello, Two updated versions, following the previous set: simplexmq (7.0.1): - Updated to simplexmq 7.0.1 and switched to tls >= 2.4.3 (pinned to tls 2.4.3), with several new compatibility patches: - synchronous shutdown for protocol clients, agents and the SMP server, so restarts cannot overlap live TLS sessions or stores; - abort incomplete TLS contexts without a graceful shutdown, since tls 2.4's TLS 1.3 bye can deadlock on rejected certificates; - prefer the IPv4 wildcard on OpenBSD (no IPv4-mapped connections on IPv6 sockets); - XFTP download retry on premature SIZE responses under http2 5.x; - ED25519 is now the port default for XFTP/notification-server certificate generation (LibreSSL lacks ED448; ED448 remains selectable with a compatible openssl(1)); - per-interface multicast membership for the remote control discovery (IP_MULTICAST_IF). - Extra test patches for slow builders (watchdog bounds, connection budgets, AUTH timing, ioProperty leak fix). - All patches now carry SPDX headers and Index: lines; entropy patches renamed to the standard ports style. - rc scripts: rc_cmd "$1" and split rc_env lines. simplex-chat (v7.0.0): - Moved from v7.0.0-beta.6 to the final v7.0.0 release. - Carries the same tls 2.4 pin and the simplexmq compatibility patches listed above, plus an extended test watchdog patch for slow builders. - Hackage deps refreshed (wai 3.2.5, warp 3.4.15, etc.) and several cabal revisions dropped to 0. Both build and pass their test suites here. Comments and testing welcome. Best regards, David.

No comments:

Post a Comment