Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 2 Nov 2018 02:09:29 +0000 (UTC)
From:      Jan Beich <jbeich@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r483766 - head/net-p2p/py-libtorrent-rasterbar/files
Message-ID:  <201811020209.wA229TrS053317@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jbeich
Date: Fri Nov  2 02:09:29 2018
New Revision: 483766
URL: https://svnweb.freebsd.org/changeset/ports/483766

Log:
  net-p2p/py-libtorrent-rasterbar: unbreak with boost 1.69
  
  bindings/python/src/error_code.cpp:119:10: error: no matching member function for call to 'def'
          .def("message", &error_category::message)
          ~^~~
  /usr/local/include/boost/python/class.hpp:229:11: note: candidate template ignored: couldn't infer template argument 'F'
      self& def(char const* name, F f)
            ^
  /usr/local/include/boost/python/class.hpp:219:11: note: candidate function template not viable: requires single argument 'visitor', but 2 arguments were provided
      self& def(def_visitor<Derived> const& visitor)
            ^
  /usr/local/include/boost/python/class.hpp:238:11: note: candidate function template not viable: requires 3 arguments, but 2 were provided
      self& def(char const* name, A1 a1, A2 const& a2)
            ^
  /usr/local/include/boost/python/class.hpp:245:11: note: candidate function template not viable: requires 4 arguments, but 2 were provided
      self& def(char const* name, Fn fn, A1 const& a1, A2 const& a2)
            ^
  /usr/local/include/boost/python/class.hpp:261:11: note: candidate function template not viable: requires 5 arguments, but 2 were provided
      self& def(char const* name, Fn fn, A1 const& a1, A2 const& a2, A3 const& a3)
            ^
  bindings/python/src/error_code.cpp:127:10: error: no matching member function for call to 'def'
          .def("message", &error_code::message)
          ~^~~
  /usr/local/include/boost/python/class.hpp:229:11: note: candidate template ignored: couldn't infer template argument 'F'
      self& def(char const* name, F f)
            ^
  /usr/local/include/boost/python/class.hpp:219:11: note: candidate function template not viable: requires single argument 'visitor', but 2 arguments were provided
      self& def(def_visitor<Derived> const& visitor)
            ^
  /usr/local/include/boost/python/class.hpp:238:11: note: candidate function template not viable: requires 3 arguments, but 2 were provided
      self& def(char const* name, A1 a1, A2 const& a2)
            ^
  /usr/local/include/boost/python/class.hpp:245:11: note: candidate function template not viable: requires 4 arguments, but 2 were provided
      self& def(char const* name, Fn fn, A1 const& a1, A2 const& a2)
            ^
  /usr/local/include/boost/python/class.hpp:261:11: note: candidate function template not viable: requires 5 arguments, but 2 were provided
      self& def(char const* name, Fn fn, A1 const& a1, A2 const& a2, A3 const& a3)
            ^
  
  PR:		232525
  Obtained from:	upstream (libtorrent 1.1.11)

Added:
  head/net-p2p/py-libtorrent-rasterbar/files/patch-boost-1.69   (contents, props changed)

Added: head/net-p2p/py-libtorrent-rasterbar/files/patch-boost-1.69
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-p2p/py-libtorrent-rasterbar/files/patch-boost-1.69	Fri Nov  2 02:09:29 2018	(r483766)
@@ -0,0 +1,201 @@
+https://github.com/arvidn/libtorrent/commit/512dc80fdd69
+
+--- Jamfile.orig	2018-10-05 09:19:18 UTC
++++ Jamfile
+@@ -12,8 +12,8 @@ BOOST_ROOT = [ modules.peek : BOOST_ROOT ] ;
+ # this is used to make bjam use the same version of python which is executing setup.py
+ LIBTORRENT_PYTHON_INTERPRETER = [ modules.peek : LIBTORRENT_PYTHON_INTERPRETER ] ;
+ 
+-feature visibility : default hidden : composite ;
+-feature.compose <visibility>hidden : <cflags>-fvisibility=hidden <cxxflags>-fvisibility-inlines-hidden ;
++feature lt-visibility : default hidden : composite ;
++feature.compose <lt-visibility>hidden : <cflags>-fvisibility=hidden <cxxflags>-fvisibility-inlines-hidden ;
+ 
+ feature libtorrent-link : shared static : composite propagated ;
+ feature libtorrent-python-pic : off on : composite propagated link-incompatible ;
+@@ -100,7 +100,7 @@ rule libtorrent_linking ( properties * )
+       || <toolset>clang in $(properties)
+       || <toolset>clang-darwin in $(properties)
+     {
+-        result += <visibility>hidden ;
++        result += <lt-visibility>hidden ;
+ 
+         if ( <toolset>gcc in $(properties) )
+         {
+--- src/error_code.cpp.orig	2018-10-05 09:19:18 UTC
++++ src/error_code.cpp
+@@ -112,11 +112,58 @@ namespace {
+ 	};
+ }
+ 
++struct category_holder
++{
++	category_holder(boost::system::error_category const& cat) : m_cat(&cat) {}
++	char const* name() const { return m_cat->name(); }
++	std::string message(int const v) const { return m_cat->message(v); }
++
++	friend bool operator==(category_holder const lhs, category_holder const rhs)
++	{ return *lhs.m_cat == *rhs.m_cat; }
++
++	friend bool operator!=(category_holder const lhs, category_holder const rhs)
++	{ return *lhs.m_cat != *rhs.m_cat; }
++
++	friend bool operator<(category_holder const lhs, category_holder const rhs)
++	{ return *lhs.m_cat < *rhs.m_cat; }
++
++	boost::system::error_category const& ref() const { return *m_cat; }
++	operator boost::system::error_category const&() const { return *m_cat; }
++private:
++	boost::system::error_category const* m_cat;
++};
++
++void error_code_assign(boost::system::error_code& self, int const v, category_holder const cat)
++{
++	self.assign(v, cat.ref());
++}
++
++category_holder error_code_category(boost::system::error_code const& self)
++{
++	return category_holder(self.category());
++}
++
++#define WRAP_CAT(name) \
++	category_holder wrap_ ##name## _category() { return category_holder(name## _category()); }
++
++WRAP_CAT(libtorrent)
++WRAP_CAT(upnp)
++WRAP_CAT(http)
++WRAP_CAT(socks)
++WRAP_CAT(bdecode)
++#if TORRENT_USE_I2P
++WRAP_CAT(i2p)
++#endif
++WRAP_CAT(generic)
++WRAP_CAT(system)
++
++#undef WRAP_CAT
++
+ void bind_error_code()
+ {
+-    class_<boost::system::error_category, boost::noncopyable>("error_category", no_init)
+-        .def("name", &error_category::name)
+-        .def("message", &error_category::message)
++    class_<category_holder>("error_category", no_init)
++        .def("name", &category_holder::name)
++        .def("message", &category_holder::message)
+         .def(self == self)
+         .def(self < self)
+         .def(self != self)
+@@ -124,39 +171,37 @@ void bind_error_code()
+ 
+     class_<error_code>("error_code")
+         .def(init<>())
+-        .def("message", &error_code::message)
++        .def(init<int, category_holder>())
++        .def("message", static_cast<std::string (error_code::*)() const>(&error_code::message))
+         .def("value", &error_code::value)
+         .def("clear", &error_code::clear)
+-        .def("category", &error_code::category
+-           , return_internal_reference<>())
+-        .def("assign", &error_code::assign)
++        .def("category", &error_code_category)
++        .def("assign", &error_code_assign)
+         .def_pickle(ec_pickle_suite())
+         ;
+ 
+-typedef return_value_policy<reference_existing_object> return_existing;
+-
+-    def("libtorrent_category", &libtorrent_category, return_existing());
+-    def("upnp_category", &upnp_category, return_existing());
+-    def("http_category", &http_category, return_existing());
+-    def("socks_category", &socks_category, return_existing());
+-    def("bdecode_category", &bdecode_category, return_existing());
++    def("libtorrent_category", &wrap_libtorrent_category);
++    def("upnp_category", &wrap_upnp_category);
++    def("http_category", &wrap_http_category);
++    def("socks_category", &wrap_socks_category);
++    def("bdecode_category", &wrap_bdecode_category);
+ #if TORRENT_USE_I2P
+-    def("i2p_category", &i2p_category, return_existing());
++    def("i2p_category", &wrap_i2p_category);
+ #endif
+ 
+ #ifndef TORRENT_NO_DEPRECATE
+-    def("get_libtorrent_category", &libtorrent_category, return_existing());
+-    def("get_upnp_category", &upnp_category, return_existing());
+-    def("get_http_category", &http_category, return_existing());
+-    def("get_socks_category", &socks_category, return_existing());
+-    def("get_bdecode_category", &bdecode_category, return_existing());
++    def("get_libtorrent_category", &wrap_libtorrent_category);
++    def("get_upnp_category", &wrap_upnp_category);
++    def("get_http_category", &wrap_http_category);
++    def("get_socks_category", &wrap_socks_category);
++    def("get_bdecode_category", &wrap_bdecode_category);
+ #if TORRENT_USE_I2P
+-    def("get_i2p_category", &i2p_category, return_existing());
++    def("get_i2p_category", &wrap_i2p_category);
+ #endif
+ #endif // TORRENT_NO_DEPRECATE
+ 
+-    def("generic_category", &boost::system::generic_category, return_existing());
++    def("generic_category", &wrap_generic_category);
+ 
+-    def("system_category", &boost::system::system_category, return_existing());
++    def("system_category", &wrap_system_category);
+ }
+ 
+--- ../../src/bdecode.cpp.orig	2018-10-05 09:19:18 UTC
++++ ../../src/bdecode.cpp
+@@ -172,7 +172,7 @@ namespace libtorrent
+ 
+ 	const char* bdecode_error_category::name() const BOOST_SYSTEM_NOEXCEPT
+ 	{
+-		return "bdecode error";
++		return "bdecode";
+ 	}
+ 
+ 	std::string bdecode_error_category::message(int ev) const BOOST_SYSTEM_NOEXCEPT
+--- ../../src/error_code.cpp.orig	2018-10-05 09:19:18 UTC
++++ ../../src/error_code.cpp
+@@ -290,7 +290,7 @@ namespace libtorrent
+ 	struct TORRENT_EXPORT http_error_category : boost::system::error_category
+ 	{
+ 		virtual const char* name() const BOOST_SYSTEM_NOEXCEPT
+-		{ return "http error"; }
++		{ return "http"; }
+ 		virtual std::string message(int ev) const BOOST_SYSTEM_NOEXCEPT
+ 		{
+ 			std::string ret;
+--- ../../src/socks5_stream.cpp.orig	2018-10-05 09:19:18 UTC
++++ ../../src/socks5_stream.cpp
+@@ -48,7 +48,7 @@ namespace libtorrent
+ 	struct socks_error_category : boost::system::error_category
+ 	{
+ 		virtual const char* name() const BOOST_SYSTEM_NOEXCEPT
+-		{ return "socks error"; }
++		{ return "socks"; }
+ 		virtual std::string message(int ev) const BOOST_SYSTEM_NOEXCEPT
+ 		{
+ 			static char const* messages[] =
+--- ../../src/upnp.cpp.orig	2018-10-05 09:19:18 UTC
++++ ../../src/upnp.cpp
+@@ -1159,7 +1159,7 @@ struct upnp_error_category : boost::system::error_cate
+ {
+ 	virtual const char* name() const BOOST_SYSTEM_NOEXCEPT
+ 	{
+-		return "UPnP error";
++		return "upnp";
+ 	}
+ 
+ 	virtual std::string message(int ev) const BOOST_SYSTEM_NOEXCEPT
+--- ../../test/test_bdecode.cpp.orig	2018-10-05 09:19:18 UTC
++++ ../../test/test_bdecode.cpp
+@@ -338,7 +338,7 @@ TORRENT_TEST(bdecode_error)
+ {
+ 	error_code ec(bdecode_errors::overflow);
+ 	TEST_EQUAL(ec.message(), "integer overflow");
+-	TEST_EQUAL(ec.category().name(), std::string("bdecode error"));
++	TEST_EQUAL(ec.category().name(), std::string("bdecode"));
+ 	ec.assign(5434, get_bdecode_category());
+ 	TEST_EQUAL(ec.message(), "Unknown error");
+ }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201811020209.wA229TrS053317>