Hello community,

here is the log from the commit of package libtorrent-rasterbar for 
openSUSE:Factory checked in at 2017-12-31 19:32:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libtorrent-rasterbar (Old)
 and      /work/SRC/openSUSE:Factory/.libtorrent-rasterbar.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libtorrent-rasterbar"

Sun Dec 31 19:32:26 2017 rev:52 rq:560762 version:1.1.5

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/libtorrent-rasterbar/libtorrent-rasterbar.changes    
    2017-10-23 16:52:33.406748824 +0200
+++ 
/work/SRC/openSUSE:Factory/.libtorrent-rasterbar.new/libtorrent-rasterbar.changes
   2017-12-31 19:32:27.789204670 +0100
@@ -1,0 +2,6 @@
+Sat Dec 30 13:59:54 UTC 2017 - [email protected]
+
+- Add fix-build-against-boost-1.66.patch to fix build with the
+  latest boost in Factory
+
+-------------------------------------------------------------------

New:
----
  fix-build-against-boost-1.66.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libtorrent-rasterbar.spec ++++++
--- /var/tmp/diff_new_pack.oy5Rsc/_old  2017-12-31 19:32:28.492969884 +0100
+++ /var/tmp/diff_new_pack.oy5Rsc/_new  2017-12-31 19:32:28.492969884 +0100
@@ -29,6 +29,8 @@
 Group:          Development/Libraries/C and C++
 Url:            http://libtorrent.org/
 Source:         
https://github.com/arvidn/%{_name}/releases/download/%{_name}-%{_version}/%{name}-%{version}.tar.gz
+# PATCH-FIX-UPSTREAM fix-build-against-boost-1.66.patch -- fix build with 
latest boost in Factory
+Patch:          fix-build-against-boost-1.66.patch
 BuildRequires:  gcc-c++
 BuildRequires:  pkgconfig
 BuildRequires:  python-devel
@@ -137,6 +139,7 @@
 
 %prep
 %setup -q
+%patch -p1
 
 %build
 export CFLAGS="%{optflags} -fno-strict-aliasing"

++++++ fix-build-against-boost-1.66.patch ++++++
>From d1a63cd781e79e1e3792a258c0bc7f9455f2272f Mon Sep 17 00:00:00 2001
From: arvidn <[email protected]>
Date: Thu, 14 Dec 2017 01:37:27 +0100
Subject: [PATCH] fix build against boost-1.66, specifically the boost.asio
 changes

diff --git a/include/libtorrent/proxy_base.hpp 
b/include/libtorrent/proxy_base.hpp
index 00246af76e..7e8ab32930 100644
--- a/include/libtorrent/proxy_base.hpp
+++ b/include/libtorrent/proxy_base.hpp
@@ -66,6 +66,11 @@ class proxy_base : boost::noncopyable
                m_port = port;
        }
 
+#if BOOST_VERSION >= 106600
+       typedef tcp::socket::executor_type executor_type;
+       executor_type get_executor() { return m_sock.get_executor(); }
+#endif
+
        template <class Mutable_Buffers, class Handler>
        void async_read_some(Mutable_Buffers const& buffers, Handler const& 
handler)
        {
@@ -122,6 +127,18 @@ class proxy_base : boost::noncopyable
                m_sock.async_write_some(buffers, handler);
        }
 
+#ifndef BOOST_NO_EXCEPTIONS
+       void non_blocking(bool b)
+       {
+               m_sock.non_blocking(b);
+       }
+#endif
+
+       error_code non_blocking(bool b, error_code& ec)
+       {
+               return m_sock.non_blocking(b, ec);
+       }
+
 #ifndef BOOST_NO_EXCEPTIONS
        template <class SettableSocketOption>
        void set_option(SettableSocketOption const& opt)
diff --git a/include/libtorrent/socket_type.hpp 
b/include/libtorrent/socket_type.hpp
index 0b58159715..884a86e684 100644
--- a/include/libtorrent/socket_type.hpp
+++ b/include/libtorrent/socket_type.hpp
@@ -267,6 +267,14 @@ namespace libtorrent
                error_code set_option(SettableSocketOption const& opt, 
error_code& ec)
                { TORRENT_SOCKTYPE_FORWARD_RET(set_option(opt, ec), ec) }
 
+               void non_blocking(bool b, error_code& ec)
+               { TORRENT_SOCKTYPE_FORWARD(non_blocking(b, ec)) }
+
+#ifndef BOOST_NO_EXCEPTIONS
+               void non_blocking(bool b)
+               { TORRENT_SOCKTYPE_FORWARD(non_blocking(b)) }
+#endif
+
 #ifndef BOOST_NO_EXCEPTIONS
                template <class GettableSocketOption>
                void get_option(GettableSocketOption& opt)
diff --git a/include/libtorrent/ssl_stream.hpp 
b/include/libtorrent/ssl_stream.hpp
index 48fe111289..a18416c723 100644
--- a/include/libtorrent/ssl_stream.hpp
+++ b/include/libtorrent/ssl_stream.hpp
@@ -85,6 +85,10 @@ class ssl_stream
        typedef typename Stream::lowest_layer_type lowest_layer_type;
        typedef typename Stream::endpoint_type endpoint_type;
        typedef typename Stream::protocol_type protocol_type;
+#if BOOST_VERSION >= 106600
+       typedef typename sock_type::executor_type executor_type;
+       executor_type get_executor() { return m_sock.get_executor(); }
+#endif
 
        void set_host_name(std::string name)
        {
@@ -204,6 +208,13 @@ class ssl_stream
                m_sock.next_layer().io_control(ioc, ec);
        }
 
+#ifndef BOOST_NO_EXCEPTIONS
+       void non_blocking(bool b) { m_sock.next_layer().non_blocking(b); }
+#endif
+
+       error_code non_blocking(bool b, error_code& ec)
+       { return m_sock.next_layer().non_blocking(b, ec); }
+
        template <class Const_Buffers, class Handler>
        void async_write_some(Const_Buffers const& buffers, Handler const& 
handler)
        {
diff --git a/include/libtorrent/utp_stream.hpp 
b/include/libtorrent/utp_stream.hpp
index ede524e2e6..896c0365e0 100644
--- a/include/libtorrent/utp_stream.hpp
+++ b/include/libtorrent/utp_stream.hpp
@@ -201,6 +201,11 @@ class TORRENT_EXTRA_EXPORT utp_stream
        typedef tcp::socket::endpoint_type endpoint_type;
        typedef tcp::socket::protocol_type protocol_type;
 
+#if BOOST_VERSION >= 106600
+       typedef tcp::socket::executor_type executor_type;
+       executor_type get_executor() { return m_io_service.get_executor(); }
+#endif
+
        explicit utp_stream(io_service& io_service);
        ~utp_stream();
 
@@ -218,6 +223,12 @@ class TORRENT_EXTRA_EXPORT utp_stream
        template <class IO_Control_Command>
        void io_control(IO_Control_Command&, error_code&) {}
 
+#ifndef BOOST_NO_EXCEPTIONS
+       void non_blocking(bool) {}
+#endif
+
+       error_code non_blocking(bool, error_code&) { return error_code(); }
+
 #ifndef BOOST_NO_EXCEPTIONS
        void bind(endpoint_type const& /*endpoint*/) {}
 #endif
@@ -330,8 +341,13 @@ class TORRENT_EXTRA_EXPORT utp_stream
                        return;
                }
                std::size_t bytes_added = 0;
+#if BOOST_VERSION >= 106600
+               for (auto i = buffer_sequence_begin(buffers)
+                       , end(buffer_sequence_end(buffers)); i != end; ++i)
+#else
                for (typename Mutable_Buffers::const_iterator i = 
buffers.begin()
                        , end(buffers.end()); i != end; ++i)
+#endif
                {
                        if (buffer_size(*i) == 0) continue;
                        using boost::asio::buffer_cast;
@@ -401,8 +417,13 @@ class TORRENT_EXTRA_EXPORT utp_stream
                size_t buf_size = 0;
 #endif
 
+#if BOOST_VERSION >= 106600
+               for (auto i = buffer_sequence_begin(buffers)
+                       , end(buffer_sequence_end(buffers)); i != end; ++i)
+#else
                for (typename Mutable_Buffers::const_iterator i = 
buffers.begin()
                        , end(buffers.end()); i != end; ++i)
+#endif
                {
                        using boost::asio::buffer_cast;
                        using boost::asio::buffer_size;
@@ -466,8 +487,13 @@ class TORRENT_EXTRA_EXPORT utp_stream
                }
 
                std::size_t bytes_added = 0;
+#if BOOST_VERSION >= 106600
+               for (auto i = buffer_sequence_begin(buffers)
+                       , end(buffer_sequence_end(buffers)); i != end; ++i)
+#else
                for (typename Const_Buffers::const_iterator i = buffers.begin()
                        , end(buffers.end()); i != end; ++i)
+#endif
                {
                        if (buffer_size(*i) == 0) continue;
                        using boost::asio::buffer_cast;
diff --git a/src/http_connection.cpp b/src/http_connection.cpp
index a099973f99..7efb4131b7 100644
--- a/src/http_connection.cpp
+++ b/src/http_connection.cpp
@@ -330,8 +330,7 @@ void http_connection::start(std::string const& hostname, 
int port
                {
                        if (m_ssl_ctx == 0)
                        {
-                               m_ssl_ctx = new (std::nothrow) ssl::context(
-                                       m_timer.get_io_service(), 
ssl::context::sslv23_client);
+                               m_ssl_ctx = new (std::nothrow) 
ssl::context(ssl::context::sslv23_client);
                                if (m_ssl_ctx)
                                {
                                        m_own_ssl_context = true;
diff --git a/src/peer_connection.cpp b/src/peer_connection.cpp
index 1c94fb278f..10b8e1a57c 100644
--- a/src/peer_connection.cpp
+++ b/src/peer_connection.cpp
@@ -309,9 +309,8 @@ namespace libtorrent
 
                if (!m_outgoing)
                {
-                       tcp::socket::non_blocking_io ioc(true);
                        error_code ec;
-                       m_socket->io_control(ioc, ec);
+                       m_socket->non_blocking(true, ec);
                        if (ec)
                        {
                                disconnect(ec, op_iocontrol);
@@ -6406,11 +6405,10 @@ namespace libtorrent
 
                // set the socket to non-blocking, so that we can
                // read the entire buffer on each read event we get
-               tcp::socket::non_blocking_io ioc(true);
 #ifndef TORRENT_DISABLE_LOGGING
                peer_log(peer_log_alert::info, "SET_NON_BLOCKING");
 #endif
-               m_socket->io_control(ioc, ec);
+               m_socket->non_blocking(true, ec);
                if (ec)
                {
                        disconnect(ec, op_iocontrol);
diff --git a/src/session_impl.cpp b/src/session_impl.cpp
index 043d791fef..88718441bd 100644
--- a/src/session_impl.cpp
+++ b/src/session_impl.cpp
@@ -346,7 +346,7 @@ namespace aux {
 #endif
                m_io_service(ios)
 #ifdef TORRENT_USE_OPENSSL
-               , m_ssl_ctx(m_io_service, boost::asio::ssl::context::sslv23)
+               , m_ssl_ctx(boost::asio::ssl::context::sslv23)
 #endif
                , m_alerts(m_settings.get_int(settings_pack::alert_queue_size), 
alert::all_categories)
 #ifndef TORRENT_NO_DEPRECATE
diff --git a/src/torrent.cpp b/src/torrent.cpp
index 2b6bae7446..0795b1d104 100644
--- a/src/torrent.cpp
+++ b/src/torrent.cpp
@@ -1702,7 +1702,7 @@ namespace libtorrent
                // create the SSL context for this torrent. We need to
                // inject the root certificate, and no other, to
                // verify other peers against
-               boost::shared_ptr<context> ctx = 
boost::make_shared<context>(boost::ref(m_ses.get_io_service()), 
context::sslv23);
+               boost::shared_ptr<context> ctx = 
boost::make_shared<context>(context::sslv23);
 
                if (!ctx)
                {
@@ -1739,7 +1739,7 @@ namespace libtorrent
                        return;
                }
 
-               SSL_CTX* ssl_ctx = ctx->impl();
+               SSL_CTX* ssl_ctx = ctx->native_handle();
                // create a new x.509 certificate store
                X509_STORE* cert_store = X509_STORE_new();
                if (!cert_store)
diff --git a/src/udp_socket.cpp b/src/udp_socket.cpp
index d2e6ae3b80..551412c659 100644
--- a/src/udp_socket.cpp
+++ b/src/udp_socket.cpp
@@ -806,8 +806,7 @@ void udp_socket::bind(udp::endpoint const& ep, error_code& 
ec)
 
                m_ipv4_sock.bind(ep, ec);
                if (ec) return;
-               udp::socket::non_blocking_io ioc(true);
-               m_ipv4_sock.io_control(ioc, ec);
+               m_ipv4_sock.non_blocking(true, ec);
                if (ec) return;
                setup_read(&m_ipv4_sock);
        }
@@ -837,8 +836,7 @@ void udp_socket::bind(udp::endpoint const& ep, error_code& 
ec)
                        , boost::system::generic_category()))
                {
                        if (ec) return;
-                       udp::socket::non_blocking_io ioc(true);
-                       m_ipv6_sock.io_control(ioc, ec);
+                       m_ipv6_sock.non_blocking(true, ec);
                        if (ec) return;
                        setup_read(&m_ipv6_sock);
                }
diff --git a/test/test_ssl.cpp b/test/test_ssl.cpp
index 2903332dd2..679780b1b1 100644
--- a/test/test_ssl.cpp
+++ b/test/test_ssl.cpp
@@ -363,7 +363,7 @@ bool try_connect(libtorrent::session& ses1, int port
        // create the SSL context for this torrent. We need to
        // inject the root certificate, and no other, to
        // verify other peers against
-       context ctx(ios, context::sslv23);
+       context ctx(context::sslv23);
 
        ctx.set_options(context::default_workarounds
                | boost::asio::ssl::context::no_sslv2

>From f42b63c7ea82173837920d8712d2891cc3ecb6c2 Mon Sep 17 00:00:00 2001
From: arvidn <[email protected]>
Date: Tue, 28 Nov 2017 23:57:38 +0100
Subject: [PATCH] update io_service forward declaration to be boost-1.66
 compatible

diff --git a/include/libtorrent/io_service_fwd.hpp 
b/include/libtorrent/io_service_fwd.hpp
index c14997d82e..398c91216f 100644
--- a/include/libtorrent/io_service_fwd.hpp
+++ b/include/libtorrent/io_service_fwd.hpp
@@ -54,7 +54,12 @@ namespace sim { namespace asio {
 #endif
 
 namespace boost { namespace asio {
+#if BOOST_VERSION < 106600
        class io_service;
+#else
+       class io_context;
+       typedef io_context io_service;
+#endif
 }}
 
 namespace libtorrent

Reply via email to