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>