commit:     2b01e7caec293f9e124749610ebe13b51ebeed96
Author:     David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Sun Aug 11 18:09:56 2019 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Sun Aug 11 18:09:56 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2b01e7ca

dev-cpp/websocketpp: Fix building against boost 1.70

Closes: https://bugs.gentoo.org/683472
Package-Manager: Portage-2.3.71, Repoman-2.3.17
Signed-off-by: David Seifert <soap <AT> gentoo.org>

 .../files/websocketpp-0.8.1-boost-1.70.patch       | 139 +++++++++++++++++++++
 ...test_transport-test_transport_asio_timers.patch |  46 +++++++
 dev-cpp/websocketpp/websocketpp-0.8.1.ebuild       |  13 +-
 3 files changed, 193 insertions(+), 5 deletions(-)

diff --git a/dev-cpp/websocketpp/files/websocketpp-0.8.1-boost-1.70.patch 
b/dev-cpp/websocketpp/files/websocketpp-0.8.1-boost-1.70.patch
new file mode 100644
index 00000000000..40ae155307d
--- /dev/null
+++ b/dev-cpp/websocketpp/files/websocketpp-0.8.1-boost-1.70.patch
@@ -0,0 +1,139 @@
+From c769c9238ad62178f506038178714a1c35aa2769 Mon Sep 17 00:00:00 2001
+From: Stefan Floeren <42731906+stefan-floe...@users.noreply.github.com>
+Date: Tue, 16 Apr 2019 08:38:01 +0200
+Subject: [PATCH 1/2] Replace make_shared with new in some cases
+
+Replace make_shared for asio types that take a lib::ref as a parameter.
+This should fix the ASIO change (boostorg/asio@59066d8) for 1.70,
+while keeping it backwards compatible to older boost versions.
+---
+ websocketpp/transport/asio/connection.hpp    | 7 ++++---
+ websocketpp/transport/asio/endpoint.hpp      | 3 +--
+ websocketpp/transport/asio/security/none.hpp | 3 +--
+ websocketpp/transport/asio/security/tls.hpp  | 3 +--
+ 4 files changed, 7 insertions(+), 9 deletions(-)
+
+diff --git a/websocketpp/transport/asio/connection.hpp 
b/websocketpp/transport/asio/connection.hpp
+index 60f88a79..1ccda8f3 100644
+--- a/websocketpp/transport/asio/connection.hpp
++++ b/websocketpp/transport/asio/connection.hpp
+@@ -311,9 +311,10 @@ class connection : public 
config::socket_type::socket_con_type {
+      * needed.
+      */
+     timer_ptr set_timer(long duration, timer_handler callback) {
+-        timer_ptr new_timer = lib::make_shared<lib::asio::steady_timer>(
+-            lib::ref(*m_io_service),
+-            lib::asio::milliseconds(duration)
++        timer_ptr new_timer(
++            new lib::asio::steady_timer(
++                *m_io_service,
++                lib::asio::milliseconds(duration))
+         );
+ 
+         if (config::enable_multithreading) {
+diff --git a/websocketpp/transport/asio/endpoint.hpp 
b/websocketpp/transport/asio/endpoint.hpp
+index ddab2c74..4b719a97 100644
+--- a/websocketpp/transport/asio/endpoint.hpp
++++ b/websocketpp/transport/asio/endpoint.hpp
+@@ -195,8 +195,7 @@ class endpoint : public config::socket_type {
+ 
+         m_io_service = ptr;
+         m_external_io_service = true;
+-        m_acceptor = lib::make_shared<lib::asio::ip::tcp::acceptor>(
+-            lib::ref(*m_io_service));
++        m_acceptor.reset(new lib::asio::ip::tcp::acceptor(*m_io_service));
+ 
+         m_state = READY;
+         ec = lib::error_code();
+diff --git a/websocketpp/transport/asio/security/none.hpp 
b/websocketpp/transport/asio/security/none.hpp
+index 5c8293db..6c7d3524 100644
+--- a/websocketpp/transport/asio/security/none.hpp
++++ b/websocketpp/transport/asio/security/none.hpp
+@@ -168,8 +168,7 @@ class connection : public 
lib::enable_shared_from_this<connection> {
+             return socket::make_error_code(socket::error::invalid_state);
+         }
+ 
+-        m_socket = lib::make_shared<lib::asio::ip::tcp::socket>(
+-            lib::ref(*service));
++        m_socket.reset(new lib::asio::ip::tcp::socket(*service));
+ 
+         if (m_socket_init_handler) {
+             m_socket_init_handler(m_hdl, *m_socket);
+diff --git a/websocketpp/transport/asio/security/tls.hpp 
b/websocketpp/transport/asio/security/tls.hpp
+index c76fd9aa..04ac3790 100644
+--- a/websocketpp/transport/asio/security/tls.hpp
++++ b/websocketpp/transport/asio/security/tls.hpp
+@@ -193,8 +193,7 @@ class connection : public 
lib::enable_shared_from_this<connection> {
+         if (!m_context) {
+             return 
socket::make_error_code(socket::error::invalid_tls_context);
+         }
+-        m_socket = lib::make_shared<socket_type>(
+-            _WEBSOCKETPP_REF(*service),lib::ref(*m_context));
++        m_socket.reset(new socket_type(*service, *m_context));
+ 
+         if (m_socket_init_handler) {
+             m_socket_init_handler(m_hdl, get_socket());
+
+From f810ca2e800e9b55be41c5911cf1d1185fcd516b Mon Sep 17 00:00:00 2001
+From: Stefan Floeren <42731906+stefan-floe...@users.noreply.github.com>
+Date: Wed, 17 Apr 2019 10:06:18 +0000
+Subject: [PATCH 2/2] Fix missed entries; fix testing
+
+---
+ CMakeLists.txt                            | 2 +-
+ websocketpp/transport/asio/connection.hpp | 3 +--
+ websocketpp/transport/asio/endpoint.hpp   | 7 ++-----
+ 3 files changed, 4 insertions(+), 8 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2786aba9..951de975 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -202,7 +202,7 @@ if (BUILD_TESTS OR BUILD_EXAMPLES)
+       endif ()
+ 
+     if (NOT Boost_USE_STATIC_LIBS)
+-        add_definitions (/DBOOST_TEST_DYN_LINK)
++        add_definitions (-DBOOST_TEST_DYN_LINK)
+     endif ()
+ 
+     set (Boost_FIND_REQUIRED TRUE)
+diff --git a/websocketpp/transport/asio/connection.hpp 
b/websocketpp/transport/asio/connection.hpp
+index 1ccda8f3..57dda74a 100644
+--- a/websocketpp/transport/asio/connection.hpp
++++ b/websocketpp/transport/asio/connection.hpp
+@@ -462,8 +462,7 @@ class connection : public 
config::socket_type::socket_con_type {
+         m_io_service = io_service;
+ 
+         if (config::enable_multithreading) {
+-            m_strand = lib::make_shared<lib::asio::io_service::strand>(
+-                lib::ref(*io_service));
++            m_strand.reset(new lib::asio::io_service::strand(*io_service));
+         }
+ 
+         lib::error_code ec = socket_con_type::init_asio(io_service, m_strand,
+diff --git a/websocketpp/transport/asio/endpoint.hpp 
b/websocketpp/transport/asio/endpoint.hpp
+index 4b719a97..94509adb 100644
+--- a/websocketpp/transport/asio/endpoint.hpp
++++ b/websocketpp/transport/asio/endpoint.hpp
+@@ -687,9 +687,7 @@ class endpoint : public config::socket_type {
+      * @since 0.3.0
+      */
+     void start_perpetual() {
+-        m_work = lib::make_shared<lib::asio::io_service::work>(
+-            lib::ref(*m_io_service)
+-        );
++        m_work.reset(new lib::asio::io_service::work(*m_io_service));
+     }
+ 
+     /// Clears the endpoint's perpetual flag, allowing it to exit when empty
+@@ -853,8 +851,7 @@ class endpoint : public config::socket_type {
+ 
+         // Create a resolver
+         if (!m_resolver) {
+-            m_resolver = lib::make_shared<lib::asio::ip::tcp::resolver>(
+-                lib::ref(*m_io_service));
++            m_resolver.reset(new lib::asio::ip::tcp::resolver(*m_io_service));
+         }
+ 
+         tcon->set_uri(u);

diff --git 
a/dev-cpp/websocketpp/files/websocketpp-0.8.1-disable-test_transport-test_transport_asio_timers.patch
 
b/dev-cpp/websocketpp/files/websocketpp-0.8.1-disable-test_transport-test_transport_asio_timers.patch
new file mode 100644
index 00000000000..8d6c93fcec3
--- /dev/null
+++ 
b/dev-cpp/websocketpp/files/websocketpp-0.8.1-disable-test_transport-test_transport_asio_timers.patch
@@ -0,0 +1,46 @@
+--- a/test/transport/CMakeLists.txt
++++ b/test/transport/CMakeLists.txt
+@@ -1,24 +1,24 @@
+ if (OPENSSL_FOUND)
+ 
+-# Test transport integration
+-file (GLOB SOURCE integration.cpp)
+-
+-init_target (test_transport)
+-build_test (${TARGET_NAME} ${SOURCE})
+-link_boost ()
+-link_openssl()
+-final_target ()
+-set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test")
+-
+-# Test transport asio timers
+-file (GLOB SOURCE asio/timers.cpp)
+-
+-init_target (test_transport_asio_timers)
+-build_test (${TARGET_NAME} ${SOURCE})
+-link_boost ()
+-link_openssl()
+-final_target ()
+-set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test")
++## Test transport integration
++#file (GLOB SOURCE integration.cpp)
++#
++#init_target (test_transport)
++#build_test (${TARGET_NAME} ${SOURCE})
++#link_boost ()
++#link_openssl()
++#final_target ()
++#set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test")
++#
++## Test transport asio timers
++#file (GLOB SOURCE asio/timers.cpp)
++#
++#init_target (test_transport_asio_timers)
++#build_test (${TARGET_NAME} ${SOURCE})
++#link_boost ()
++#link_openssl()
++#final_target ()
++#set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test")
+ 
+ # Test transport asio security
+ file (GLOB SOURCE asio/security.cpp)

diff --git a/dev-cpp/websocketpp/websocketpp-0.8.1.ebuild 
b/dev-cpp/websocketpp/websocketpp-0.8.1.ebuild
index 6bf27e854c1..7a4b182f57c 100644
--- a/dev-cpp/websocketpp/websocketpp-0.8.1.ebuild
+++ b/dev-cpp/websocketpp/websocketpp-0.8.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Authors
+# Copyright 1999-2019 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
@@ -19,10 +19,13 @@ RDEPEND="${DEPEND}
        boost? ( dev-libs/boost )
 "
 
-# bug 630450
-RESTRICT="test"
-
-PATCHES=( "${FILESDIR}/${PN}-0.7.0-cmake-install.patch" )
+PATCHES=(
+       "${FILESDIR}"/${PN}-0.7.0-cmake-install.patch
+       "${FILESDIR}"/${PN}-0.8.1-boost-1.70.patch
+       # disable tests that are timing sensitive
+       # https://bugzilla.redhat.com/show_bug.cgi?id=1461069
+       
"${FILESDIR}"/${PN}-0.8.1-disable-test_transport-test_transport_asio_timers.patch
+)
 
 src_configure() {
        local mycmakeargs=(

Reply via email to