devel/boost: fix upcoming build failure in dependent ports

Use accessors instead of reaching into SSL_CTX. The requisite
accessors have been available since LibreSSL 2.7.2 and are thus
present in all supported versions.

positive feedback from brad, looks good to jsing
This commit is contained in:
tb 2021-05-10 15:08:50 +00:00
parent c376717119
commit c1bbcfa9d9
2 changed files with 88 additions and 2 deletions

View File

@ -1,4 +1,4 @@
# $OpenBSD: Makefile,v 1.112 2021/05/06 11:36:14 rsadowski Exp $
# $OpenBSD: Makefile,v 1.113 2021/05/10 15:08:50 tb Exp $
ONLY_FOR_ARCHS-md = aarch64 amd64 arm i386 mips64 mips64el powerpc powerpc64
@ -13,7 +13,7 @@ CATEGORIES= devel
MASTER_SITES= https://boostorg.jfrog.io/artifactory/main/release/${VERSION}/source/
EXTRACT_SUFX= .tar.bz2
FIX_EXTRACT_PERMISSIONS = Yes
REVISION-main= 0
REVISION-main= 1
SO_VERSION= 14.0
BOOST_LIBS= boost_atomic-mt \

View File

@ -0,0 +1,86 @@
$OpenBSD: patch-boost_asio_ssl_impl_context_ipp,v 1.3 2021/05/10 15:08:50 tb Exp $
Use accessors instead of reaching into SSL_CTX. The requisite
accessors have been available since LibreSSL 2.7.2 and are thus
present in all supported versions.
Index: boost/asio/ssl/impl/context.ipp
--- boost/asio/ssl/impl/context.ipp.orig
+++ boost/asio/ssl/impl/context.ipp
@@ -387,9 +387,7 @@ context::~context()
{
if (handle_)
{
-#if ((OPENSSL_VERSION_NUMBER >= 0x10100000L) \
- && !defined(LIBRESSL_VERSION_NUMBER)) \
- || defined(BOOST_ASIO_USE_WOLFSSL)
+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) || defined(BOOST_ASIO_USE_WOLFSSL)
void* cb_userdata = ::SSL_CTX_get_default_passwd_cb_userdata(handle_);
#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L)
void* cb_userdata = handle_->default_passwd_callback_userdata;
@@ -400,9 +398,7 @@ context::~context()
static_cast<detail::password_callback_base*>(
cb_userdata);
delete callback;
-#if ((OPENSSL_VERSION_NUMBER >= 0x10100000L) \
- && !defined(LIBRESSL_VERSION_NUMBER)) \
- || defined(BOOST_ASIO_USE_WOLFSSL)
+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) || defined(BOOST_ASIO_USE_WOLFSSL)
::SSL_CTX_set_default_passwd_cb_userdata(handle_, 0);
#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L)
handle_->default_passwd_callback_userdata = 0;
@@ -739,9 +735,7 @@ BOOST_ASIO_SYNC_OP_VOID context::use_certificate_chain
bio_cleanup bio = { make_buffer_bio(chain) };
if (bio.p)
{
-#if ((OPENSSL_VERSION_NUMBER >= 0x10100000L) \
- && !defined(LIBRESSL_VERSION_NUMBER)) \
- || defined(BOOST_ASIO_USE_WOLFSSL)
+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) || defined(BOOST_ASIO_USE_WOLFSSL)
pem_password_cb* callback = ::SSL_CTX_get_default_passwd_cb(handle_);
void* cb_userdata = ::SSL_CTX_get_default_passwd_cb_userdata(handle_);
#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L)
@@ -768,9 +762,7 @@ BOOST_ASIO_SYNC_OP_VOID context::use_certificate_chain
BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
}
-#if ((OPENSSL_VERSION_NUMBER >= 0x10002000L) \
- && !defined(LIBRESSL_VERSION_NUMBER)) \
- || defined(BOOST_ASIO_USE_WOLFSSL)
+#if (OPENSSL_VERSION_NUMBER >= 0x10002000L) || defined(BOOST_ASIO_USE_WOLFSSL)
::SSL_CTX_clear_chain_certs(handle_);
#else
if (handle_->extra_certs)
@@ -847,9 +839,7 @@ BOOST_ASIO_SYNC_OP_VOID context::use_private_key(
{
::ERR_clear_error();
-#if ((OPENSSL_VERSION_NUMBER >= 0x10100000L) \
- && !defined(LIBRESSL_VERSION_NUMBER)) \
- || defined(BOOST_ASIO_USE_WOLFSSL)
+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) || defined(BOOST_ASIO_USE_WOLFSSL)
pem_password_cb* callback = ::SSL_CTX_get_default_passwd_cb(handle_);
void* cb_userdata = ::SSL_CTX_get_default_passwd_cb_userdata(handle_);
#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L)
@@ -916,9 +906,7 @@ BOOST_ASIO_SYNC_OP_VOID context::use_rsa_private_key(
{
::ERR_clear_error();
-#if ((OPENSSL_VERSION_NUMBER >= 0x10100000L) \
- && !defined(LIBRESSL_VERSION_NUMBER)) \
- || defined(BOOST_ASIO_USE_WOLFSSL)
+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) || defined(BOOST_ASIO_USE_WOLFSSL)
pem_password_cb* callback = ::SSL_CTX_get_default_passwd_cb(handle_);
void* cb_userdata = ::SSL_CTX_get_default_passwd_cb_userdata(handle_);
#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L)
@@ -1157,9 +1145,7 @@ int context::verify_callback_function(int preverified,
BOOST_ASIO_SYNC_OP_VOID context::do_set_password_callback(
detail::password_callback_base* callback, boost::system::error_code& ec)
{
-#if ((OPENSSL_VERSION_NUMBER >= 0x10100000L) \
- && !defined(LIBRESSL_VERSION_NUMBER)) \
- || defined(BOOST_ASIO_USE_WOLFSSL)
+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) || defined(BOOST_ASIO_USE_WOLFSSL)
void* old_callback = ::SSL_CTX_get_default_passwd_cb_userdata(handle_);
::SSL_CTX_set_default_passwd_cb_userdata(handle_, callback);
#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L)