Turns out I accidentally committed one diff too many to libcrypto
(meaning one that didn't go through sthen's bulk) and as a well-deserved
punishment, I broke Qt stuff (what else?).
The diff below fixes the build of x11/qt4 for me.
The problem is that X509_getm_not{Before,After}() are now proper
functions instead of #defines accessing a X509 struct member, so
they need to be taught to the Qt dynamic linking mechanism.
Index: patches/patch-src_network_ssl_qsslcertificate_cpp
===================================================================
RCS file: patches/patch-src_network_ssl_qsslcertificate_cpp
diff -N patches/patch-src_network_ssl_qsslcertificate_cpp
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_network_ssl_qsslcertificate_cpp 26 Aug 2018 07:57:02
-0000
@@ -0,0 +1,16 @@
+$OpenBSD$
+
+Index: src/network/ssl/qsslcertificate.cpp
+--- src/network/ssl/qsslcertificate.cpp.orig
++++ src/network/ssl/qsslcertificate.cpp
+@@ -698,8 +698,8 @@ QSslCertificate QSslCertificatePrivate::QSslCertificat
+ if (!x509 || !QSslSocket::supportsSsl())
+ return certificate;
+
+- ASN1_TIME *nbef = q_X509_get_notBefore(x509);
+- ASN1_TIME *naft = q_X509_get_notAfter(x509);
++ ASN1_TIME *nbef = q_X509_getm_notBefore(x509);
++ ASN1_TIME *naft = q_X509_getm_notAfter(x509);
+ certificate.d->notValidBefore = q_getTimeFromASN1(nbef);
+ certificate.d->notValidAfter = q_getTimeFromASN1(naft);
+ certificate.d->null = false;
Index: patches/patch-src_network_ssl_qsslsocket_openssl_symbols_cpp
===================================================================
RCS file:
/cvs/ports/x11/qt4/patches/patch-src_network_ssl_qsslsocket_openssl_symbols_cpp,v
retrieving revision 1.3
diff -u -p -r1.3 patch-src_network_ssl_qsslsocket_openssl_symbols_cpp
--- patches/patch-src_network_ssl_qsslsocket_openssl_symbols_cpp 17 Sep
2015 12:24:42 -0000 1.3
+++ patches/patch-src_network_ssl_qsslsocket_openssl_symbols_cpp 26 Aug
2018 07:57:02 -0000
@@ -1,6 +1,7 @@
$OpenBSD: patch-src_network_ssl_qsslsocket_openssl_symbols_cpp,v 1.3
2015/09/17 12:24:42 dcoppa Exp $
---- src/network/ssl/qsslsocket_openssl_symbols.cpp.orig Wed Sep 16
13:27:39 2015
-+++ src/network/ssl/qsslsocket_openssl_symbols.cpp Wed Sep 16 13:33:06 2015
+Index: src/network/ssl/qsslsocket_openssl_symbols.cpp
+--- src/network/ssl/qsslsocket_openssl_symbols.cpp.orig
++++ src/network/ssl/qsslsocket_openssl_symbols.cpp
@@ -228,13 +228,17 @@ DEFINEFUNC(int, SSL_shutdown, SSL *a, a, return -1, re
#ifndef OPENSSL_NO_SSL2
DEFINEFUNC(const SSL_METHOD *, SSLv2_client_method, DUMMYARG, DUMMYARG,
return 0, return)
@@ -19,7 +20,16 @@ $OpenBSD: patch-src_network_ssl_qsslsock
DEFINEFUNC(const SSL_METHOD *, SSLv23_server_method, DUMMYARG, DUMMYARG,
return 0, return)
DEFINEFUNC(const SSL_METHOD *, TLSv1_server_method, DUMMYARG, DUMMYARG,
return 0, return)
#else
-@@ -822,13 +826,17 @@ bool q_resolveOpenSslSymbols()
+@@ -257,6 +261,8 @@ DEFINEFUNC(void, X509_free, X509 *a, a, return, DUMMYA
+ DEFINEFUNC2(X509_EXTENSION *, X509_get_ext, X509 *a, a, int b, b, return 0,
return)
+ DEFINEFUNC(int, X509_get_ext_count, X509 *a, a, return 0, return)
+ DEFINEFUNC4(void *, X509_get_ext_d2i, X509 *a, a, int b, b, int *c, c, int
*d, d, return 0, return)
++DEFINEFUNC(ASN1_TIME *, X509_getm_notBefore, const X509 *x, x, return 0,
return)
++DEFINEFUNC(ASN1_TIME *, X509_getm_notAfter, const X509 *x, x, return 0,
return)
+ DEFINEFUNC(X509_NAME *, X509_get_issuer_name, X509 *a, a, return 0, return)
+ DEFINEFUNC(X509_NAME *, X509_get_subject_name, X509 *a, a, return 0, return)
+ DEFINEFUNC(int, X509_verify_cert, X509_STORE_CTX *a, a, return -1, return)
+@@ -822,13 +828,17 @@ bool q_resolveOpenSslSymbols()
#ifndef OPENSSL_NO_SSL2
RESOLVEFUNC(SSLv2_client_method)
#endif
@@ -37,3 +47,12 @@ $OpenBSD: patch-src_network_ssl_qsslsock
RESOLVEFUNC(SSLv23_server_method)
RESOLVEFUNC(TLSv1_server_method)
RESOLVEFUNC(X509_NAME_entry_count)
+@@ -858,6 +868,8 @@ bool q_resolveOpenSslSymbols()
+ RESOLVEFUNC(X509_get_ext_d2i)
+ RESOLVEFUNC(X509_get_issuer_name)
+ RESOLVEFUNC(X509_get_subject_name)
++ RESOLVEFUNC(X509_getm_notAfter)
++ RESOLVEFUNC(X509_getm_notBefore)
+ RESOLVEFUNC(X509_verify_cert)
+ RESOLVEFUNC(d2i_X509)
+ RESOLVEFUNC(i2d_X509)
Index: patches/patch-src_network_ssl_qsslsocket_openssl_symbols_p_h
===================================================================
RCS file: patches/patch-src_network_ssl_qsslsocket_openssl_symbols_p_h
diff -N patches/patch-src_network_ssl_qsslsocket_openssl_symbols_p_h
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_network_ssl_qsslsocket_openssl_symbols_p_h 26 Aug
2018 07:57:02 -0000
@@ -0,0 +1,16 @@
+$OpenBSD$
+
+Index: src/network/ssl/qsslsocket_openssl_symbols_p.h
+--- src/network/ssl/qsslsocket_openssl_symbols_p.h.orig
++++ src/network/ssl/qsslsocket_openssl_symbols_p.h
+@@ -410,8 +410,8 @@ DSA *q_d2i_DSAPrivateKey(DSA **a, unsigned char **pp,
+ #define q_sk_SSL_CIPHER_value(st, i) q_SKM_sk_value(SSL_CIPHER, (st), (i))
+ #define q_SSL_CTX_add_extra_chain_cert(ctx,x509) \
+ q_SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)x509)
+-#define q_X509_get_notAfter(x) X509_get_notAfter(x)
+-#define q_X509_get_notBefore(x) X509_get_notBefore(x)
++#define q_X509_getm_notAfter(x) X509_getm_notAfter(x)
++#define q_X509_getm_notBefore(x) X509_getm_notBefore(x)
+ #define q_EVP_PKEY_assign_RSA(pkey,rsa)
q_EVP_PKEY_assign((pkey),EVP_PKEY_RSA,\
+ (char *)(rsa))
+ #define q_EVP_PKEY_assign_DSA(pkey,dsa)
q_EVP_PKEY_assign((pkey),EVP_PKEY_DSA,\