Index | Thread | Search

From:
David Uhden Collado <david@uhden.dev>
Subject:
Dealing with software using Linux TCP socket options
To:
ports@openbsd.org
Date:
Wed, 21 Aug 2024 23:30:52 +0200

Download raw body.

Thread
Dear all,

As mentioned in a previous email I sent to this mailing list [1], I am 
currently working on porting SimpleXMQ and SimpleX Chat CLI to OpenBSD. 
Unfortunately, I have encountered several challenges. In addition to the 
issue I previously discussed [1], two more complications have arisen:

1. OpenSSL Requirement: It is necessary to use OpenSSL because, 
unfortunately, LibreSSL does not support the encryption algorithms used 
by this software. This issue seems to have a relatively straightforward 
solution by installing OpenSSL from the ports tree and specifying the 
location of these libraries in a cabal.project.local file located in the 
root directory before compiling the software.

2. Linux TCP Socket Options: SimpleXMQ, on which the SimpleX Chat CLI 
client depends, uses Linux-specific TCP socket options [2] that are not 
available in OpenBSD [3], namely TCP_KEEPIDLE, TCP_KEEPINTVL, and 
TCP_KEEPCNT. My questions regarding this issue are:

    - Why are these options not present in OpenBSD's TCP stack? Both 
FreeBSD [4] and NetBSD [5] include them in their TCP stacks. Is there a 
specific reason for their absence in OpenBSD?

    - Is there an equivalent to these TCP socket options in OpenBSD? Are 
there other ports facing similar issues? If so, how have they been 
patched to function correctly in OpenBSD?

For your reference, here is the source code file I am attempting to 
patch to build SimpleXMQ on OpenBSD:

https://github.com/simplex-chat/simplexmq/blob/stable/src/Simplex/Messaging/Transport/KeepAlive.hs

References:
1. https://marc.info/?l=openbsd-ports&m=172387102027342&w=2
2. https://www.man7.org/linux/man-pages/man7/tcp.7.html
3. https://man.openbsd.org/tcp
4. https://man.freebsd.org/cgi/man.cgi?query=tcp&sektion=4
5. https://man.netbsd.org/tcp.4

Thank you for your time and assistance.

Best regards,
David.