Lucas Gabriel Vuotto wrote:
Hello David,

On Sat, Oct 17, 2026 at 04:53:00AM +0000, David Uhden Collado wrote:
Hello,

Please find attached two new ports:

- net/simplexmq 7.0.1
- net/simplex-chat 7.0.4

Upstream:
https://github.com/simplex-chat/simplexmq
https://github.com/simplex-chat/simplex-chat

SimpleXMQ provides the SMP messaging server and XFTP file transfer
server. SimpleX Chat is a terminal-based client supporting end-to-end
encrypted messaging, group chats and file transfers without requiring
global user identifiers.

Both ports use devel/cabal and include compatibility patches for
OpenBSD, GHC 9.10, LibreSSL, SQLCipher and several Haskell dependencies.
The patches also address asynchronous cancellation, thread cleanup,
database consistency and test reliability.

The SimpleXMQ port includes:

- Two rc.d services: smp_server and xftp_server.
- A dedicated _simplexmq user and group (UID/GID 907).
- Configuration under /etc/simplex and state under /var/simplex.
- Initialization instructions in pkg/README.
- ED25519 as the default XFTP certificate algorithm, since LibreSSL
   does not support ED448.

Worth keeping in mind:

eqr6$ pax -zf tmp/ports/simplexmq-v7.0.1.tar.gz | wc -l
      102
eqr6$ pax -zf tmp/ports/simplex-chat-v7.0.4.tar.gz | wc -l
       96

I took a look at only the first 10 out of 55 patches in simplexmq. The
ones dropping "opt" from paths are alright. The others include diverging
behaviour from upstream that doesn't belong to OpenBSD (all of
patch-src_Simplex_FileTransfer_*, for example). If that needs to be
fixed, it should happen with upstream. If it's integrated but not yet
released (and does fix some critical), reference the upstream commit.
Otherwise, in general, it doesn't really belong in the ports tree.

simplexmq Makefile has its executable bit set. Also it's 281 lines long.
Now, I don't really know the cabal module (I've never ported anything
Haskell-based), but all the users of it in-tree have makefiles with 56
lines or less. That's a smell.

The Cabal module was not designed to handle software this complex. I've spent months debugging one problem after another, first with Cabal dependencies, then with the GHC version, and finally with OpenBSD-specific issues.

I genuinely believe I've done my best to organize everything as properly as possible. It's literally been a nightmare, especially since GHC is even slower than Cargo when it comes to compiling software.


I believe it's the only port using the files/ directory for patches. As
an example, editors/neovim successfully uses DIST_TUPLE and patches for
the extra depedencies.

There are no explanations for deviating from upstream required versions.

The services run as _simplexmq and must be initialized and explicitly
enabled by the administrator.

I have also attached the corresponding net/Makefile and
infrastructure/db/user.list patches.

Both ports were built and their test suites executed on OpenBSD 8.0-current
amd64 with GHC 9.10.3:

     simplexmq 7.0.1:
     822 examples, 0 failures, 38 pending

     simplex-chat 7.0.4:
     981 examples, 0 failures, 39 pending

Both test suites passed. The pending examples are not counted as
successful tests, and arm64 remains untested.

I would appreciate review and additional testing, particularly of
the OpenBSD compatibility patches and rc.d integration.

Thank you for your time and consideration.

I don't think this remotely in shape for being accepted, and I refuse
to spend more time reviewing the current version.

        Lucas

Reply via email to