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

David Uhden Collado <[email protected]>
Newsgroups gmane.os.openbsd.ports
Message-ID <[email protected]>
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.
simplex-chat.tar.gz (application/gzip, 59.1 KB) - not displayed
simplexmq.tar.gz (application/gzip, 75 KB) - not displayed
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.