mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
dev-ros/libmavconn: fix build with boost 1.70
Package-Manager: Portage-2.3.73, Repoman-2.3.17 Signed-off-by: Alexis Ballier <aballier@gentoo.org>
This commit is contained in:
98
dev-ros/libmavconn/files/boost170.patch
Normal file
98
dev-ros/libmavconn/files/boost170.patch
Normal file
@@ -0,0 +1,98 @@
|
||||
Index: libmavconn/src/tcp.cpp
|
||||
===================================================================
|
||||
--- libmavconn.orig/src/tcp.cpp
|
||||
+++ libmavconn/src/tcp.cpp
|
||||
@@ -41,13 +41,19 @@ static bool resolve_address_tcp(io_servi
|
||||
error_code ec;
|
||||
|
||||
tcp::resolver::query query(host, "");
|
||||
- std::for_each(resolver.resolve(query, ec), tcp::resolver::iterator(),
|
||||
- [&](const tcp::endpoint & q_ep) {
|
||||
- ep = q_ep;
|
||||
- ep.port(port);
|
||||
- result = true;
|
||||
- CONSOLE_BRIDGE_logDebug(PFXd "host %s resolved as %s", chan, host.c_str(), to_string_ss(ep).c_str());
|
||||
- });
|
||||
+
|
||||
+ auto fn = [&](const tcp::endpoint & q_ep) {
|
||||
+ ep = q_ep;
|
||||
+ ep.port(port);
|
||||
+ result = true;
|
||||
+ CONSOLE_BRIDGE_logDebug(PFXd "host %s resolved as %s", chan, host.c_str(), to_string_ss(ep).c_str());
|
||||
+ };
|
||||
+
|
||||
+#if BOOST_ASIO_VERSION >= 101200
|
||||
+ for (auto q_ep : resolver.resolve(query, ec)) fn(q_ep);
|
||||
+#else
|
||||
+ std::for_each(resolver.resolve(query, ec), tcp::resolver::iterator(), fn);
|
||||
+#endif
|
||||
|
||||
if (ec) {
|
||||
CONSOLE_BRIDGE_logWarn(PFXd "resolve error: %s", chan, ec.message().c_str());
|
||||
@@ -112,7 +118,7 @@ void MAVConnTCPClient::client_connected(
|
||||
server_channel, conn_id, to_string_ss(server_ep).c_str());
|
||||
|
||||
// start recv
|
||||
- socket.get_io_service().post(std::bind(&MAVConnTCPClient::do_recv, shared_from_this()));
|
||||
+ static_cast<boost::asio::io_service&>(socket.get_executor().context()).post(std::bind(&MAVConnTCPClient::do_recv, shared_from_this()));
|
||||
}
|
||||
|
||||
MAVConnTCPClient::~MAVConnTCPClient()
|
||||
@@ -152,7 +158,7 @@ void MAVConnTCPClient::send_bytes(const
|
||||
|
||||
tx_q.emplace_back(bytes, length);
|
||||
}
|
||||
- socket.get_io_service().post(std::bind(&MAVConnTCPClient::do_send, shared_from_this(), true));
|
||||
+ static_cast<boost::asio::io_service&>(socket.get_executor().context()).post(std::bind(&MAVConnTCPClient::do_send, shared_from_this(), true));
|
||||
}
|
||||
|
||||
void MAVConnTCPClient::send_message(const mavlink_message_t *message)
|
||||
@@ -174,7 +180,7 @@ void MAVConnTCPClient::send_message(cons
|
||||
|
||||
tx_q.emplace_back(message);
|
||||
}
|
||||
- socket.get_io_service().post(std::bind(&MAVConnTCPClient::do_send, shared_from_this(), true));
|
||||
+ static_cast<boost::asio::io_service&>(socket.get_executor().context()).post(std::bind(&MAVConnTCPClient::do_send, shared_from_this(), true));
|
||||
}
|
||||
|
||||
void MAVConnTCPClient::send_message(const mavlink::Message &message)
|
||||
@@ -194,7 +200,7 @@ void MAVConnTCPClient::send_message(cons
|
||||
|
||||
tx_q.emplace_back(message, get_status_p(), sys_id, comp_id);
|
||||
}
|
||||
- socket.get_io_service().post(std::bind(&MAVConnTCPClient::do_send, shared_from_this(), true));
|
||||
+ static_cast<boost::asio::io_service&>(socket.get_executor().context()).post(std::bind(&MAVConnTCPClient::do_send, shared_from_this(), true));
|
||||
}
|
||||
|
||||
void MAVConnTCPClient::do_recv()
|
||||
Index: libmavconn/src/udp.cpp
|
||||
===================================================================
|
||||
--- libmavconn.orig/src/udp.cpp
|
||||
+++ libmavconn/src/udp.cpp
|
||||
@@ -41,13 +41,19 @@ static bool resolve_address_udp(io_servi
|
||||
error_code ec;
|
||||
|
||||
udp::resolver::query query(host, "");
|
||||
- std::for_each(resolver.resolve(query, ec), udp::resolver::iterator(),
|
||||
- [&](const udp::endpoint & q_ep) {
|
||||
- ep = q_ep;
|
||||
- ep.port(port);
|
||||
- result = true;
|
||||
- CONSOLE_BRIDGE_logDebug(PFXd "host %s resolved as %s", chan, host.c_str(), to_string_ss(ep).c_str());
|
||||
- });
|
||||
+
|
||||
+ auto fn = [&](const udp::endpoint & q_ep) {
|
||||
+ ep = q_ep;
|
||||
+ ep.port(port);
|
||||
+ result = true;
|
||||
+ CONSOLE_BRIDGE_logDebug(PFXd "host %s resolved as %s", chan, host.c_str(), to_string_ss(ep).c_str());
|
||||
+ };
|
||||
+
|
||||
+#if BOOST_ASIO_VERSION >= 101200
|
||||
+ for (auto q_ep : resolver.resolve(query, ec)) fn(q_ep);
|
||||
+#else
|
||||
+ std::for_each(resolver.resolve(query, ec), udp::resolver::iterator(), fn);
|
||||
+#endif
|
||||
|
||||
if (ec) {
|
||||
CONSOLE_BRIDGE_logWarn(PFXd "resolve error: %s", chan, ec.message().c_str());
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=5
|
||||
@@ -19,4 +19,7 @@ RDEPEND="
|
||||
dev-libs/console_bridge:=
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
PATCHES=( "${FILESDIR}/logging.patch" )
|
||||
PATCHES=(
|
||||
"${FILESDIR}/logging.patch"
|
||||
"${FILESDIR}/boost170.patch"
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user