devel/boost-libs: unbreak consumers with libressl

$ make WITH=ASIO -C www/nghttp2
[...]
In file included from asio_common.cc:25:
In file included from ./asio_common.h:32:
In file included from ../src/includes/nghttp2/asio_http2.h:37:
In file included from /usr/local/include/boost/asio/ssl.hpp:19:
In file included from /usr/local/include/boost/asio/ssl/context.hpp:786:
/usr/local/include/boost/asio/ssl/impl/context.ipp:232:27: error: no member named 'SSL_CTX_get_default_passwd_cb_userdata' in the global namespace; did you mean 'SSL_CTX_set_default_passwd_cb_userdata'?
    void* cb_userdata = ::SSL_CTX_get_default_passwd_cb_userdata(handle_);
                        ~~^
/usr/local/include/openssl/ssl.h:1640:6: note: 'SSL_CTX_set_default_passwd_cb_userdata' declared here
void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u);
     ^

PR:		214793
Submitted by:	matthew@reztek.cz
Obtained from:	upstream (via Gentoo)
Approved by:	portmgr blanket
This commit is contained in:
Jan Beich 2016-11-24 02:30:37 +00:00
parent 4672aef568
commit 23cd2e673e
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=426988
2 changed files with 51 additions and 1 deletions

View file

@ -2,7 +2,7 @@
# $FreeBSD$
PORTNAME= boost-libs
PORTREVISION= 0
PORTREVISION= 1
COMMENT= Free portable C++ libraries (without Boost.Python)

View file

@ -0,0 +1,50 @@
Ticket #12575 fix compilation of software using libressl and boost asio
https://svn.boost.org/trac/boost/ticket/12575
--- boost/asio/ssl/impl/context.ipp.orig 2016-09-21 14:33:21 UTC
+++ boost/asio/ssl/impl/context.ipp
@@ -228,7 +228,7 @@ context::~context()
{
if (handle_)
{
-#if (OPENSSL_VERSION_NUMBER >= 0x10100000L)
+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER)
void* cb_userdata = ::SSL_CTX_get_default_passwd_cb_userdata(handle_);
#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L)
void* cb_userdata = handle_->default_passwd_callback_userdata;
@@ -578,7 +578,7 @@ boost::system::error_code context::use_c
bio_cleanup bio = { make_buffer_bio(chain) };
if (bio.p)
{
-#if (OPENSSL_VERSION_NUMBER >= 0x10100000L)
+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER)
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)
@@ -682,7 +682,7 @@ boost::system::error_code context::use_p
{
::ERR_clear_error();
-#if (OPENSSL_VERSION_NUMBER >= 0x10100000L)
+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER)
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)
@@ -749,7 +749,7 @@ boost::system::error_code context::use_r
{
::ERR_clear_error();
-#if (OPENSSL_VERSION_NUMBER >= 0x10100000L)
+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER)
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)
@@ -988,7 +988,7 @@ int context::verify_callback_function(in
boost::system::error_code context::do_set_password_callback(
detail::password_callback_base* callback, boost::system::error_code& ec)
{
-#if (OPENSSL_VERSION_NUMBER >= 0x10100000L)
+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER)
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)