Download raw body.
[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.
[NEW] net/simplexmq and net/simplex-chat