Without the patch to x11/qt5/qtbase below, the build of x11/qt5/qtdeclarative fails with the following linking errors:
/usr/local/lib/qt5/libQt5Network.so.2.2: undefined reference to `X509_getm_notBefore' /usr/local/lib/qt5/libQt5Network.so.2.2: undefined reference to `X509_getm_notAfter' (note that the above library is part of the qtbase package) The patch is analogous to the fix for qt4 that I sent out earlier today, but for some reason its absence doesn't break the build for qtbase. Index: patches/patch-src_network_ssl_qsslcertificate_openssl_cpp =================================================================== RCS file: patches/patch-src_network_ssl_qsslcertificate_openssl_cpp diff -N patches/patch-src_network_ssl_qsslcertificate_openssl_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-src_network_ssl_qsslcertificate_openssl_cpp 26 Aug 2018 11:41:26 -0000 @@ -0,0 +1,16 @@ +$OpenBSD$ + +Index: src/network/ssl/qsslcertificate_openssl.cpp +--- src/network/ssl/qsslcertificate_openssl.cpp.orig ++++ src/network/ssl/qsslcertificate_openssl.cpp +@@ -619,8 +619,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: /var/cvs/ports/x11/qt5/qtbase/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 21 Jul 2017 15:28:25 -0000 1.3 +++ patches/patch-src_network_ssl_qsslsocket_openssl_symbols_cpp 26 Aug 2018 12:51:23 -0000 @@ -13,7 +13,16 @@ Index: src/network/ssl/qsslsocket_openss DEFINEFUNC2(int, BN_is_word, BIGNUM *a, a, BN_ULONG w, w, return 0, return) #endif DEFINEFUNC2(BN_ULONG, BN_mod_word, const BIGNUM *a, a, BN_ULONG w, w, return static_cast<BN_ULONG>(-1), return) -@@ -461,6 +461,8 @@ DEFINEFUNC5(int, PKCS12_parse, PKCS12 *p12, p12, const +@@ -378,6 +378,8 @@ DEFINEFUNC2(int, ASN1_STRING_print, BIO *a, a, ASN1_ST + DEFINEFUNC2(int, X509_check_issued, X509 *a, a, X509 *b, b, return -1, 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(ASN1_TIME *, X509_getm_notAfter, const X509 *a, a, return 0, return) ++DEFINEFUNC(ASN1_TIME *, X509_getm_notBefore, const X509 *a, a, return 0, return) + DEFINEFUNC(int, X509_verify_cert, X509_STORE_CTX *a, a, return -1, return) + DEFINEFUNC(int, X509_NAME_entry_count, X509_NAME *a, a, return 0, return) + DEFINEFUNC2(X509_NAME_ENTRY *, X509_NAME_get_entry, X509_NAME *a, a, int b, b, return 0, return) +@@ -461,6 +463,8 @@ DEFINEFUNC5(int, PKCS12_parse, PKCS12 *p12, p12, const DEFINEFUNC2(PKCS12 *, d2i_PKCS12_bio, BIO *bio, bio, PKCS12 **pkcs12, pkcs12, return 0, return); DEFINEFUNC(void, PKCS12_free, PKCS12 *pkcs12, pkcs12, return, DUMMYARG) @@ -22,7 +31,7 @@ Index: src/network/ssl/qsslsocket_openss #define RESOLVEFUNC(func) \ if (!(_q_##func = _q_PTR_##func(libs.first->resolve(#func))) \ && !(_q_##func = _q_PTR_##func(libs.second->resolve(#func)))) \ -@@ -790,7 +792,7 @@ bool q_resolveOpenSslSymbols() +@@ -790,7 +794,7 @@ bool q_resolveOpenSslSymbols() RESOLVEFUNC(EC_GROUP_get_degree) #endif RESOLVEFUNC(BN_num_bits) @@ -31,7 +40,16 @@ Index: src/network/ssl/qsslsocket_openss RESOLVEFUNC(BN_is_word) #endif RESOLVEFUNC(BN_mod_word) -@@ -1028,12 +1030,13 @@ bool q_resolveOpenSslSymbols() +@@ -982,6 +986,8 @@ bool q_resolveOpenSslSymbols() + RESOLVEFUNC(X509_check_issued) + 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) +@@ -1028,12 +1034,13 @@ bool q_resolveOpenSslSymbols() RESOLVEFUNC(d2i_PKCS12_bio) RESOLVEFUNC(PKCS12_free) Index: patches/patch-src_network_ssl_qsslsocket_openssl_symbols_p_h =================================================================== RCS file: /var/cvs/ports/x11/qt5/qtbase/patches/patch-src_network_ssl_qsslsocket_openssl_symbols_p_h,v retrieving revision 1.3 diff -u -p -r1.3 patch-src_network_ssl_qsslsocket_openssl_symbols_p_h --- patches/patch-src_network_ssl_qsslsocket_openssl_symbols_p_h 21 Jul 2017 15:28:25 -0000 1.3 +++ patches/patch-src_network_ssl_qsslsocket_openssl_symbols_p_h 26 Aug 2018 12:47:01 -0000 @@ -13,7 +13,27 @@ Index: src/network/ssl/qsslsocket_openss int q_BN_is_word(BIGNUM *a, BN_ULONG w); #else // BN_is_word is implemented purely as a -@@ -599,6 +599,9 @@ void q_SSL_get0_alpn_selected(const SSL *ssl, const un +@@ -471,6 +471,8 @@ int q_ASN1_STRING_print(BIO *a, ASN1_STRING *b); + int q_X509_check_issued(X509 *a, X509 *b); + X509_NAME *q_X509_get_issuer_name(X509 *a); + X509_NAME *q_X509_get_subject_name(X509 *a); ++ASN1_TIME *q_X509_getm_notAfter(const X509 *x); ++ASN1_TIME *q_X509_getm_notBefore(const X509 *x); + int q_X509_verify_cert(X509_STORE_CTX *ctx); + int q_X509_NAME_entry_count(X509_NAME *a); + X509_NAME_ENTRY *q_X509_NAME_get_entry(X509_NAME *a,int b); +@@ -558,8 +560,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,\ +@@ -599,6 +601,9 @@ void q_SSL_get0_alpn_selected(const SSL *ssl, const un unsigned *len); #endif #endif // OPENSSL_VERSION_NUMBER >= 0x1000100fL ...