commit:     6db89937508f33ef9e9cf27ef9cc8c17c45c8eef
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Mon Feb  5 05:50:07 2018 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Mon Feb  5 05:50:50 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6db89937

net-libs/libtorrent-rasterbar: Temp. restore 1.0.11-r1

Package-Manager: Portage-2.3.24, Repoman-2.3.6

 net-libs/libtorrent-rasterbar/Manifest             |   1 +
 ...rent-rasterbar-1.0.11-boost-config-header.patch |  31 ++++
 ...libtorrent-rasterbar-1.0.11-fix-abicompat.patch | 157 +++++++++++++++++++++
 .../libtorrent-rasterbar-1.0.11-fix-test_ssl.patch |  21 +++
 .../libtorrent-rasterbar-1.0.11-move-header.patch  |  34 +++++
 ...orrent-rasterbar-1.0.9-test_torrent_parse.patch |  41 ++++++
 .../libtorrent-rasterbar-1.0.11-r1.ebuild          | 117 +++++++++++++++
 7 files changed, 402 insertions(+)

diff --git a/net-libs/libtorrent-rasterbar/Manifest 
b/net-libs/libtorrent-rasterbar/Manifest
index 38db164ee52..0bcb190e818 100644
--- a/net-libs/libtorrent-rasterbar/Manifest
+++ b/net-libs/libtorrent-rasterbar/Manifest
@@ -1 +1,2 @@
+DIST libtorrent-rasterbar-1.0.11.tar.gz 3325786 BLAKE2B 
ef49c3242f520e222da2724385a41944fb752f09eab45fe60588df999d69832a82ed6b7b7494a0bf303cd6f05b28679f4d7776e6dd66e41cd22b1038f3391800
 SHA512 
770d16b241174ae4b121af9b2ac7bcde8b14c6ed99352b827b760a3cbdc2c0ebd0d505319762897720c5f72acdff506ee9948ac1140e6d4591805eca5439b184
 DIST libtorrent-rasterbar-1.1.5.tar.gz 3942894 BLAKE2B 
0a1102e1b74049c1f5d8980363a6b92a3378339349609d64d3b7a38a58baf6c2898a26f70e92b0de0d6a1f4b6725a576a850aacaa5764fe7d96fa0b541dfa2d7
 SHA512 
d0e7fe944c8a396aaf79ce80c7513be07a855bc8a9eee3bca46ed83d5e190aaa5ea4dc9a8a7208e27e18ae8f15733e6e34eabd375f0bde43d4dc4607840782e7

diff --git 
a/net-libs/libtorrent-rasterbar/files/libtorrent-rasterbar-1.0.11-boost-config-header.patch
 
b/net-libs/libtorrent-rasterbar/files/libtorrent-rasterbar-1.0.11-boost-config-header.patch
new file mode 100644
index 00000000000..f3a81c381d8
--- /dev/null
+++ 
b/net-libs/libtorrent-rasterbar/files/libtorrent-rasterbar-1.0.11-boost-config-header.patch
@@ -0,0 +1,31 @@
+commit 7eb3cf6bc6dbada3fa7bb7ff4d5981182813a0e2
+Author: arvidn <ar...@cs.umu.se>
+Date:   Tue Jul 11 23:16:50 2017 -0700
+
+    use the official boost.config header
+
+diff --git a/include/libtorrent/export.hpp b/include/libtorrent/export.hpp
+index 87536af2a..503afe27a 100644
+--- a/include/libtorrent/export.hpp
++++ b/include/libtorrent/export.hpp
+@@ -33,19 +33,7 @@ POSSIBILITY OF SUCH DAMAGE.
+ #ifndef TORRENT_EXPORT_HPP_INCLUDED
+ #define TORRENT_EXPORT_HPP_INCLUDED
+ 
+-#if !defined(BOOST_COMPILER_CONFIG) && !defined(BOOST_NO_COMPILER_CONFIG)
+-#  include <boost/config/select_compiler_config.hpp>
+-#endif
+-#ifdef BOOST_COMPILER_CONFIG
+-#  include BOOST_COMPILER_CONFIG
+-#endif
+-
+-#if !defined(BOOST_PLATFORM_CONFIG) && !defined(BOOST_NO_PLATFORM_CONFIG)
+-#  include <boost/config/select_platform_config.hpp>
+-#endif
+-#ifdef BOOST_PLATFORM_CONFIG
+-#  include BOOST_PLATFORM_CONFIG
+-#endif
++#include <boost/config.hpp>
+ 
+ // backwards compatibility with older versions of boost
+ #if !defined BOOST_SYMBOL_EXPORT && !defined BOOST_SYMBOL_IMPORT

diff --git 
a/net-libs/libtorrent-rasterbar/files/libtorrent-rasterbar-1.0.11-fix-abicompat.patch
 
b/net-libs/libtorrent-rasterbar/files/libtorrent-rasterbar-1.0.11-fix-abicompat.patch
new file mode 100644
index 00000000000..eebee122551
--- /dev/null
+++ 
b/net-libs/libtorrent-rasterbar/files/libtorrent-rasterbar-1.0.11-fix-abicompat.patch
@@ -0,0 +1,157 @@
+From 76381835be19da2f8f1fc501445e31d32e6d83e4 Mon Sep 17 00:00:00 2001
+From: Arvid Norberg <arvid.norb...@gmail.com>
+Date: Sun, 12 Feb 2017 21:05:22 -0500
+Subject: [PATCH] fix ABI compatibility issue introduced with preformatted
+ entry type (#1702)
+
+fix ABI compatibility issue introduced with preformatted entry type
+---
+ ChangeLog                              |  2 ++
+ bindings/python/src/create_torrent.cpp |  2 +-
+ include/libtorrent/create_torrent.hpp  |  6 ++++++
+ src/create_torrent.cpp                 | 31 ++++++++++++++++++++++++++++---
+ src/torrent.cpp                        | 11 ++++++++---
+ test/test_create_torrent.cpp           |  2 +-
+ 6 files changed, 46 insertions(+), 8 deletions(-)
+
+diff --git a/ChangeLog b/ChangeLog
+index 9b501ce..9defe7c 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,5 @@
++      * fix ABI compatibility issue introduced with preformatted entry type
++
+ 1.0.11 release
+ 
+       * updating super seeding would include the torrent in state_update_alert
+diff --git a/bindings/python/src/create_torrent.cpp 
b/bindings/python/src/create_torrent.cpp
+index 55b6b51..31abb07 100644
+--- a/bindings/python/src/create_torrent.cpp
++++ b/bindings/python/src/create_torrent.cpp
+@@ -127,7 +127,7 @@ void bind_create_torrent()
+ 
+     class_<create_torrent>("create_torrent", no_init)
+         .def(init<file_storage&>())
+-        .def(init<torrent_info const&>(arg("ti")))
++        .def(init<torrent_info const&, int>((arg("ti"), arg("version") = 
LIBTORRENT_VERSION_NUM)))
+         .def(init<file_storage&, int, int, int>((arg("storage"), 
arg("piece_size") = 0
+             , arg("pad_file_limit") = -1, arg("flags") = 
int(libtorrent::create_torrent::optimize))))
+ 
+diff --git a/include/libtorrent/create_torrent.hpp 
b/include/libtorrent/create_torrent.hpp
+index 05dc6ca..d55e86a 100644
+--- a/include/libtorrent/create_torrent.hpp
++++ b/include/libtorrent/create_torrent.hpp
+@@ -42,6 +42,7 @@ POSSIBILITY OF SUCH DAMAGE.
+ #include "libtorrent/utf8.hpp"
+ #include "libtorrent/allocator.hpp"
+ #include "libtorrent/file.hpp" // for combine_path etc.
++#include "libtorrent/version.hpp"
+ 
+ #include <vector>
+ #include <string>
+@@ -171,9 +172,12 @@ namespace libtorrent
+               // ``alignment`` is used when pad files are enabled. This is 
the size
+               // eligible files are aligned to. The default is -1, which 
means the
+               // piece size of the torrent.
++              // The ``use_preformatted`` parameter can be set to true to 
preserve
++              // invalid encoding of the .torrent file.
+               create_torrent(file_storage& fs, int piece_size = 0
+                       , int pad_file_limit = -1, int flags = optimize, int 
alignment = -1);
+               create_torrent(torrent_info const& ti);
++              create_torrent(torrent_info const& ti, bool use_preformatted);
+ 
+               // internal
+               ~create_torrent();
+@@ -290,6 +294,8 @@ namespace libtorrent
+ 
+       private:
+ 
++              void load_from_torrent_info(torrent_info const& ti, bool const 
use_preformatted);
++
+               file_storage& m_files;
+               // if m_info_dict is initialized, it is 
+               // used instead of m_files to generate
+diff --git a/src/create_torrent.cpp b/src/create_torrent.cpp
+index df4c759..aab5574 100644
+--- a/src/create_torrent.cpp
++++ b/src/create_torrent.cpp
+@@ -330,6 +330,24 @@ namespace libtorrent
+               , m_include_symlinks(false)
+               , m_calculate_file_hashes(false)
+       {
++              load_from_torrent_info(ti, false);
++      }
++
++      create_torrent::create_torrent(torrent_info const& ti, bool const 
use_preformatted)
++              : m_files(const_cast<file_storage&>(ti.files()))
++              , m_creation_date(time(0))
++              , m_multifile(ti.num_files() > 1)
++              , m_private(ti.priv())
++              , m_merkle_torrent(ti.is_merkle_torrent())
++              , m_include_mtime(false)
++              , m_include_symlinks(false)
++              , m_calculate_file_hashes(false)
++      {
++              load_from_torrent_info(ti, use_preformatted);
++      }
++
++      void create_torrent::load_from_torrent_info(torrent_info const& ti, 
bool const use_preformatted)
++      {
+               TORRENT_ASSERT(ti.is_valid());
+               if (!ti.is_valid()) return;
+ 
+@@ -361,9 +379,16 @@ namespace libtorrent
+               m_piece_hash.resize(m_files.num_pieces());
+               for (int i = 0; i < num_pieces(); ++i) set_hash(i, 
ti.hash_for_piece(i));
+ 
+-              boost::shared_array<char> const info = ti.metadata();
+-              int const size = ti.metadata_size();
+-              m_info_dict.preformatted().assign(&info[0], &info[0] + size);
++              if (use_preformatted)
++              {
++                      boost::shared_array<char> const info = ti.metadata();
++                      int const size = ti.metadata_size();
++                      m_info_dict.preformatted().assign(&info[0], &info[0] + 
size);
++              }
++              else
++              {
++                      m_info_dict = bdecode(&ti.metadata()[0], 
&ti.metadata()[0] + ti.metadata_size());
++              }
+               m_info_hash = ti.info_hash();
+       }
+ 
+diff --git a/src/torrent.cpp b/src/torrent.cpp
+index 75f0cc7..ef05dfd 100644
+--- a/src/torrent.cpp
++++ b/src/torrent.cpp
+@@ -5601,9 +5601,14 @@ namespace libtorrent
+               {
+                       if (m_magnet_link || (m_save_resume_flags & 
torrent_handle::save_info_dict))
+                       {
+-                              boost::shared_array<char> const info = 
torrent_file().metadata();
+-                              int const size = torrent_file().metadata_size();
+-                              ret["info"].preformatted().assign(&info[0], 
&info[0] + size);
++                              ret["info"] = 
bdecode(&torrent_file().metadata()[0]
++                                      , &torrent_file().metadata()[0] + 
torrent_file().metadata_size());
++// TODO: re-enable this code once there's a non-inlined encoder function. Or
++// perhaps this should not be used until saving resume_data via
++// add_torrent_params and a free function, similar to read_resume_data
++//                            boost::shared_array<char> const info = 
torrent_file().metadata();
++//                            int const size = torrent_file().metadata_size();
++//                            ret["info"].preformatted().assign(&info[0], 
&info[0] + size);
+                       }
+               }
+ 
+diff --git a/test/test_create_torrent.cpp b/test/test_create_torrent.cpp
+index 0a87c08..33fd3e8 100644
+--- a/test/test_create_torrent.cpp
++++ b/test/test_create_torrent.cpp
+@@ -51,7 +51,7 @@ int test_main()
+ 
+       lt::torrent_info info(test_torrent, sizeof(test_torrent) - 1);
+ 
+-      lt::create_torrent t(info);
++      lt::create_torrent t(info, true);
+ 
+       std::vector<char> buffer;
+       lt::bencode(std::back_inserter(buffer), t.generate());

diff --git 
a/net-libs/libtorrent-rasterbar/files/libtorrent-rasterbar-1.0.11-fix-test_ssl.patch
 
b/net-libs/libtorrent-rasterbar/files/libtorrent-rasterbar-1.0.11-fix-test_ssl.patch
new file mode 100644
index 00000000000..2add42c7dd2
--- /dev/null
+++ 
b/net-libs/libtorrent-rasterbar/files/libtorrent-rasterbar-1.0.11-fix-test_ssl.patch
@@ -0,0 +1,21 @@
+From 7f060e4a70b21974bcf154cf1a93c7b68c5a9aa8 Mon Sep 17 00:00:00 2001
+From: Alden Torres <alde...@gmail.com>
+Date: Sat, 8 Oct 2016 01:12:15 -0400
+Subject: [PATCH] fix openssl compilation with boost 1.62 (#1193)
+
+---
+ test/test_ssl.cpp | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/test/test_ssl.cpp b/test/test_ssl.cpp
+index 659973c..5aa6b15 100644
+--- a/test/test_ssl.cpp
++++ b/test/test_ssl.cpp
+@@ -47,7 +47,6 @@ POSSIBILITY OF SUCH DAMAGE.
+ #include <boost/asio/connect.hpp>
+ 
+ #ifdef TORRENT_USE_OPENSSL
+-#include <boost/asio/ssl/error.hpp> // for asio::error::get_ssl_category()
+ #include <boost/asio/ssl.hpp>
+ 
+ using namespace libtorrent;

diff --git 
a/net-libs/libtorrent-rasterbar/files/libtorrent-rasterbar-1.0.11-move-header.patch
 
b/net-libs/libtorrent-rasterbar/files/libtorrent-rasterbar-1.0.11-move-header.patch
new file mode 100644
index 00000000000..589998b7fb3
--- /dev/null
+++ 
b/net-libs/libtorrent-rasterbar/files/libtorrent-rasterbar-1.0.11-move-header.patch
@@ -0,0 +1,34 @@
+From ecd20f15cb3fa5a0ebabd647b1f57f3cd62cb4b7 Mon Sep 17 00:00:00 2001
+From: sledgehammer_999 <hammered...@gmail.com>
+Date: Mon, 20 Feb 2017 01:22:27 +0200
+Subject: [PATCH] Move include into implementation instead(from #1702).
+
+---
+ bindings/python/src/create_torrent.cpp | 1 +
+ include/libtorrent/create_torrent.hpp  | 1 -
+ 2 files changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/bindings/python/src/create_torrent.cpp 
b/bindings/python/src/create_torrent.cpp
+index 31abb07..e856d85 100644
+--- a/bindings/python/src/create_torrent.cpp
++++ b/bindings/python/src/create_torrent.cpp
+@@ -6,6 +6,7 @@
+ #include <libtorrent/create_torrent.hpp>
+ #include <libtorrent/file_storage.hpp>
+ #include "libtorrent/intrusive_ptr_base.hpp"
++#include <libtorrent/version.hpp>
+ #include "bytes.hpp"
+ 
+ using namespace boost::python;
+diff --git a/include/libtorrent/create_torrent.hpp 
b/include/libtorrent/create_torrent.hpp
+index d55e86a..8d2c680 100644
+--- a/include/libtorrent/create_torrent.hpp
++++ b/include/libtorrent/create_torrent.hpp
+@@ -42,7 +42,6 @@ POSSIBILITY OF SUCH DAMAGE.
+ #include "libtorrent/utf8.hpp"
+ #include "libtorrent/allocator.hpp"
+ #include "libtorrent/file.hpp" // for combine_path etc.
+-#include "libtorrent/version.hpp"
+ 
+ #include <vector>
+ #include <string>

diff --git 
a/net-libs/libtorrent-rasterbar/files/libtorrent-rasterbar-1.0.9-test_torrent_parse.patch
 
b/net-libs/libtorrent-rasterbar/files/libtorrent-rasterbar-1.0.9-test_torrent_parse.patch
new file mode 100644
index 00000000000..658c0aa5715
--- /dev/null
+++ 
b/net-libs/libtorrent-rasterbar/files/libtorrent-rasterbar-1.0.9-test_torrent_parse.patch
@@ -0,0 +1,41 @@
+From bdd91e29225b44a1a13e670dc4cecfb58f241d28 Mon Sep 17 00:00:00 2001
+From: Davide Pesavento <p...@gentoo.org>
+Date: Sun, 7 Aug 2016 12:14:57 +0200
+Subject: [PATCH] Disable failing torrent_parse tests
+
+For unknown reasons, some test torrents are missing from the tarball.
+Skip the corresponding test cases to avoid spurious failures.
+---
+ test/test_torrent_parse.cpp | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/test/test_torrent_parse.cpp b/test/test_torrent_parse.cpp
+index 663f341..2de6fb5 100644
+--- a/test/test_torrent_parse.cpp
++++ b/test/test_torrent_parse.cpp
+@@ -49,13 +49,10 @@ using namespace libtorrent;
+ test_torrent_t test_torrents[] =
+ {
+       { "base.torrent" },
+-      { "empty_path.torrent" },
+       { "parent_path.torrent" },
+       { "hidden_parent_path.torrent" },
+       { "single_multi_file.torrent" },
+       { "slash_path.torrent" },
+-      { "slash_path2.torrent" },
+-      { "slash_path3.torrent" },
+       { "backslash_path.torrent" },
+       { "url_list.torrent" },
+       { "url_list2.torrent" },
+@@ -75,8 +72,6 @@ test_torrent_t test_torrents[] =
+       { "root_hash.torrent" },
+       { "empty_path_multi.torrent" },
+       { "duplicate_web_seeds.torrent" },
+-      { "invalid_name3.torrent" },
+-      { "symlink1.torrent" },
+ };
+ 
+ struct test_failing_torrent_t
+-- 
+2.9.2
+

diff --git 
a/net-libs/libtorrent-rasterbar/libtorrent-rasterbar-1.0.11-r1.ebuild 
b/net-libs/libtorrent-rasterbar/libtorrent-rasterbar-1.0.11-r1.ebuild
new file mode 100644
index 00000000000..77e5c5b9b40
--- /dev/null
+++ b/net-libs/libtorrent-rasterbar/libtorrent-rasterbar-1.0.11-r1.ebuild
@@ -0,0 +1,117 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 python3_{4,5} )
+PYTHON_REQ_USE="threads"
+DISTUTILS_OPTIONAL=true
+DISTUTILS_IN_SOURCE_BUILD=true
+
+inherit distutils-r1 versionator
+
+MY_PV=$(replace_all_version_separators _)
+
+DESCRIPTION="C++ BitTorrent implementation focusing on efficiency and 
scalability"
+HOMEPAGE="http://libtorrent.org";
+SRC_URI="https://github.com/arvidn/libtorrent/releases/download/libtorrent-${MY_PV}/${P}.tar.gz";
+
+LICENSE="BSD"
+SLOT="0/8"
+KEYWORDS="amd64 arm ppc ppc64 ~sparc x86 ~x86-fbsd"
+IUSE="debug +dht doc examples +geoip libressl python +ssl static-libs test"
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+COMMON_DEPEND="
+       dev-libs/boost:=[threads]
+       virtual/libiconv
+       geoip? ( dev-libs/geoip )
+       python? (
+               ${PYTHON_DEPS}
+               dev-libs/boost:=[python,${PYTHON_USEDEP}]
+       )
+       ssl? (
+               !libressl? ( dev-libs/openssl:0= )
+               libressl? ( dev-libs/libressl:= )
+       )
+"
+DEPEND="${COMMON_DEPEND}
+       sys-devel/libtool
+"
+RDEPEND="${COMMON_DEPEND}
+       examples? ( !net-p2p/mldonkey )
+"
+
+PATCHES=(
+       "${FILESDIR}/${PN}-1.0.9-test_torrent_parse.patch"
+       # RC_1_0 branch
+       "${FILESDIR}/${P}-fix-abicompat.patch"
+       "${FILESDIR}/${P}-move-header.patch"
+       # master branch
+       "${FILESDIR}/${P}-fix-test_ssl.patch"
+       "${FILESDIR}/${P}-boost-config-header.patch"
+)
+
+src_prepare() {
+       default
+
+       # bug 578026
+       # prepend -L${S}/... to ensure bindings link against the lib we just 
built
+       sed -i -e "s|^|-L${S}/src/.libs |" bindings/python/compile_flags.in || 
die
+
+       use python && distutils-r1_src_prepare
+}
+
+src_configure() {
+       local myeconfargs=(
+               $(use_enable debug)
+               $(use_enable debug logging)
+               $(use_enable debug statistics)
+               $(use_enable debug disk-stats)
+               $(use_enable dht dht $(usex debug logging yes))
+               $(use_enable examples)
+               $(use_enable geoip)
+               $(use_with   geoip libgeoip)
+               $(use_enable ssl encryption)
+               $(use_enable static-libs static)
+               $(use_enable test tests)
+               --with-libiconv
+       )
+       econf "${myeconfargs[@]}"
+
+       if use python; then
+               myeconfargs+=(
+                       --enable-python-binding
+                       --with-boost-python
+               )
+               python_configure() {
+                       econf "${myeconfargs[@]}"
+               }
+               distutils-r1_src_configure
+       fi
+}
+
+src_compile() {
+       default
+
+       python_compile() {
+               cd "${BUILD_DIR}/../bindings/python" || die
+               distutils-r1_python_compile
+       }
+       use python && distutils-r1_src_compile
+}
+
+src_install() {
+       use doc && HTML_DOCS+=( "${S}"/docs )
+
+       default
+
+       python_install() {
+               cd "${BUILD_DIR}/../bindings/python" || die
+               distutils-r1_python_install
+       }
+       use python && distutils-r1_src_install
+
+       find "${D}" -name '*.la' -delete || die
+}

Reply via email to