This port uses an #ifdef LIBRESSL_VERSION_NUMBER to force use of version
fixed TLS_client_methods, presumably because at some point the min/max
proto version API was not available.

Once we define LIBRESSL_HAS_TLS1_3, this port's build will break since
it will hit a code path was never even compile tested: it uses the
TLSv1_3_client_method(). This function never existed in OpenSSL and
will unlikely ever exist in LibreSSL.

We can use the OpenSSL 1.1 code path and this will do the right thing
now and continue to do the right thing once LIBRESSL_HAS_TLS1_3 will be
defined.

PS: The port is somewhat outdated, upstream has released 6.4.12 a few
days ago. I can send an update for this if there's interest.


Index: Makefile
===================================================================
RCS file: /var/cvs/ports/mail/fetchmail/Makefile,v
retrieving revision 1.156
diff -u -p -r1.156 Makefile
--- Makefile    12 Jun 2020 13:02:35 -0000      1.156
+++ Makefile    6 Sep 2020 23:05:49 -0000
@@ -4,6 +4,7 @@ COMMENT=        mail retrieval utility for POP2
 
 DISTNAME=      fetchmail-6.4.6
 EXTRACT_SUFX=  .tar.xz
+REVISION=      0
 
 CATEGORIES=    mail
 MASTER_SITES=  ${MASTER_SITE_SOURCEFORGE:=fetchmail/}
Index: patches/patch-socket_c
===================================================================
RCS file: patches/patch-socket_c
diff -N patches/patch-socket_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-socket_c      6 Sep 2020 23:18:56 -0000
@@ -0,0 +1,14 @@
+$OpenBSD$
+
+Index: socket.c
+--- socket.c.orig
++++ socket.c
+@@ -902,7 +902,7 @@ static const char *SSLCertGetCN(const char *mycert,
+       return ret;
+ }
+ 
+-#if defined(LIBRESSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x1010000fL
++#if OPENSSL_VERSION_NUMBER < 0x1010000fL
+ /* OSSL_proto_version_logic for OpenSSL 1.0.x and LibreSSL */
+ static int OSSL10X_proto_version_logic(int sock, const char **myproto, int 
*avoid_ssl_versions)
+ {

Reply via email to