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 ...

Reply via email to