net-libs/nghttp2: Fixed build against ~dev-libst/boost-1.70.0
authorLars Wendler <polynomial-c@gentoo.org>
Fri, 19 Apr 2019 11:17:43 +0000 (13:17 +0200)
committerLars Wendler <polynomial-c@gentoo.org>
Fri, 19 Apr 2019 11:19:05 +0000 (13:19 +0200)
Closes: https://bugs.gentoo.org/683368
Package-Manager: Portage-2.3.64, Repoman-2.3.12
Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
net-libs/nghttp2/files/nghttp2-1.38.0-boost-1.70.0.patch [new file with mode: 0644]
net-libs/nghttp2/nghttp2-1.38.0.ebuild

diff --git a/net-libs/nghttp2/files/nghttp2-1.38.0-boost-1.70.0.patch b/net-libs/nghttp2/files/nghttp2-1.38.0-boost-1.70.0.patch
new file mode 100644 (file)
index 0000000..cc1100a
--- /dev/null
@@ -0,0 +1,50 @@
+From cbba1ebf8fcecb24392f0cc07b1235b17d0de9d8 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Adam=20Go=C5=82=C4=99biowski?= <adamg@pld-linux.org>
+Date: Thu, 18 Apr 2019 12:35:54 +0200
+Subject: [PATCH] asio: support boost-1.70
+
+In boost 1.70, deprecated get_io_context() has finally been removed.
+Introduce GET_IO_SERVICE macro that based on boost version uses
+old get_io_service() interface (boost < 1.70), or get_executor().context()
+for boost 1.70+.
+
+Commit based idea seen in monero-project/monero@17769db9462e5201befcb05f86ccbaeabf35caf8
+---
+ src/asio_server_connection.h | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/src/asio_server_connection.h b/src/asio_server_connection.h
+index 6be794060..56924c71a 100644
+--- a/src/asio_server_connection.h
++++ b/src/asio_server_connection.h
+@@ -51,6 +51,12 @@
+ #include "util.h"
+ #include "template.h"
++#if BOOST_VERSION >= 107000
++#define GET_IO_SERVICE(s) ((boost::asio::io_context&)(s).get_executor().context())
++#else
++#define GET_IO_SERVICE(s) ((s).get_io_service())
++#endif
++
+ namespace nghttp2 {
+ namespace asio_http2 {
+@@ -71,7 +77,7 @@ class connection : public std::enable_shared_from_this<connection<socket_type>>,
+       SocketArgs &&... args)
+       : socket_(std::forward<SocketArgs>(args)...),
+         mux_(mux),
+-        deadline_(socket_.get_io_service()),
++        deadline_(GET_IO_SERVICE(socket_)),
+         tls_handshake_timeout_(tls_handshake_timeout),
+         read_timeout_(read_timeout),
+         writing_(false),
+@@ -82,7 +88,7 @@ class connection : public std::enable_shared_from_this<connection<socket_type>>,
+     boost::system::error_code ec;
+     handler_ = std::make_shared<http2_handler>(
+-        socket_.get_io_service(), socket_.lowest_layer().remote_endpoint(ec),
++        GET_IO_SERVICE(socket_), socket_.lowest_layer().remote_endpoint(ec),
+         [this]() { do_write(); }, mux_);
+     if (handler_->start() != 0) {
+       stop();
index 1979bd70cc2c9c1fb3c9af6628fb5bd4528810a0..23ae1e8d57ba95edab6ace5bd824e6f8f15149ba 100644 (file)
@@ -52,7 +52,8 @@ DEPEND="${RDEPEND}
        test? ( >=dev-util/cunit-2.1[${MULTILIB_USEDEP}] )"
 
 PATCHES=(
-       "${WORKDIR}/${PN}-1.38.0-unbundle_http_parser.patch"
+       "${WORKDIR}/${PN}-1.38.0-unbundle_http_parser.patch" # 675772
+       "${FILESDIR}/${P}-boost-1.70.0.patch" #683368
 )
 
 src_prepare() {