Hello,
I dont know if this is the right place to ask this, please tell me if I should move this issue. Since ROS Melodic is not supported on Ubuntu 20.04, and moving forward ROS support will progressively be dropped in favor of ROS2, do you plan to update the ROS releases of libqi to provide support for noetic and/or foxy ? I tried using the noetic/package.xml file to compile the upstream repo with catkin and similarly for libqicore, but did not succeed yet :
CMake Error at /home/tnoel/.local/share/cmake/qibuild/modules/gmock-config.cmake:6 (clean):
Unknown CMake command "clean".)
My goal is to have Pepper running with ROS noetic or ROS2 foxy ideally, to avoid reverting to a previous ubuntu version.
Thanks in advance for any help !
EDIT : I progressed a bit in the catkin compilation of libqi for Noetic, getting rid of the unknown Cmake command error by requiring Cmake version > 3.0 in the CMakeLists.txt of libqi and libqicore, but I'm now facing the same boost compilation issues as in : https://github.com/aldebaran/libqi/issues/30 . I applied the patch proposed in this issue, but it still fails for now with the following errors :
/home/tnoel/noetic_ws/src/libqicore/libqicore/src/logmanager_proxy.cpp:10:10: fatal error: qi/detail/warn_push_ignore_deprecated.hpp: No such file or directory
10 | #include <qi/detail/warn_push_ignore_deprecated.hpp>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [libqicore/libqicore/CMakeFiles/qicore.dir/build.make:141: libqicore/libqicore/CMakeFiles/qicore.dir/src/fileimpl.cpp.o] Error 1
/home/tnoel/noetic_ws/src/libqi/tests/ka/test_typetraits.cpp:4:10: fatal error: boost/config/suffix.hpp: No such file or directory
4 | #include <boost/config/suffix.hpp>
| ^~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
/home/tnoel/noetic_ws/src/libqi/tests/ka/test_functional.cpp: In member function ‘virtual void FunctionalComposeT_Bind_Test::TestBody()’:
/home/tnoel/noetic_ws/src/libqi/tests/ka/test_functional.cpp:522:49: error: reference to ‘_1’ is ambiguous
522 | auto comp_even = std::bind(compose_t{}, even, _1); // comp_even f = even ∘ f
| ^~
In file included from /usr/include/boost/bind/bind.hpp:2356,
from /usr/include/boost/bind.hpp:22,
from /usr/include/boost/thread/pthread/shared_mutex.hpp:12,
from /usr/include/boost/thread/shared_mutex.hpp:28,
from /home/tnoel/noetic_ws/src/libqi/tests/ka/test_functional.cpp:12:
/usr/include/boost/bind/placeholders.hpp:46:38: note: candidates are: ‘constexpr const boost::arg<1> boost::placeholders::_1’
46 | BOOST_STATIC_CONSTEXPR boost::arg<1> _1;
| ^~
In file included from /usr/include/boost/utility/compare_pointees.hpp:15,
from /usr/include/boost/optional/optional.hpp:55,
from /usr/include/boost/optional.hpp:15,
from /home/tnoel/noetic_ws/src/libqi/tests/ka/test_functional.cpp:11:
/usr/include/c++/9/functional:211:34: note: ‘const std::_Placeholder<1> std::placeholders::_1’
211 | extern const _Placeholder<1> _1;
|
In file included from /home/tnoel/noetic_ws/src/libqi/src/messaging/sock/socketptr.hpp:8,
from /home/tnoel/noetic_ws/src/libqi/src/messaging/sock/option.hpp:11,
from /home/tnoel/noetic_ws/src/libqi/src/messaging/sock/common.hpp:15,
from /home/tnoel/noetic_ws/src/libqi/tests/messaging/sock/networkmock.hpp:16,
from /home/tnoel/noetic_ws/src/libqi/tests/messaging/test_tcpmessagesocket.cpp:6:
/home/tnoel/noetic_ws/src/libqi/src/messaging/sock/socketwithcontext.hpp: In instantiation of ‘qi::sock::SocketWithContext<N>::io_service_t& qi::sock::SocketWithContext<N>::get_io_service() [with N = mock::Network; qi::sock::SocketWithContext<N>::io_service_t = mock::Network::io_service_type]’:
/home/tnoel/noetic_ws/src/libqi/src/messaging/sock/disconnectingstate.hpp:47:36: required from ‘void qi::sock::Disconnecting<N, S>::operator()() [with N = mock::Network; S = qi::sock::SocketWithContext<mock::Network>]’
/home/tnoel/noetic_ws/src/libqi/src/messaging/tcpmessagesocket.hpp:533:17: required from ‘void qi::TcpMessageSocket<N, S>::enterDisconnectedState(const SocketPtr&, qi::Promise<void>) [with N = mock::Network; S = qi::sock::SocketWithContext<mock::Network>; qi::TcpMessageSocket<N, S>::SocketPtr = boost::shared_ptr<qi::sock::SocketWithContext<mock::Network> >]’
/home/tnoel/noetic_ws/src/libqi/src/messaging/tcpmessagesocket.hpp:469:11: required from ‘qi::FutureSync<void> qi::TcpMessageSocket<N, S>::connect(const qi::Url&) [with N = mock::Network; S = qi::sock::SocketWithContext<mock::Network>]’
/home/tnoel/noetic_ws/src/libqi/tests/messaging/test_tcpmessagesocket.cpp:577:18: required from ‘void NetMessageSocket_DisconnectWhileDisconnecting_Test<gtest_TypeParam_>::TestBody() [with gtest_TypeParam_ = {anonymous}::SchemeTcpSSL]’
/home/tnoel/noetic_ws/src/libqi/tests/messaging/test_tcpmessagesocket.cpp:525:1: required from here
/home/tnoel/noetic_ws/src/libqi/src/messaging/sock/socketwithcontext.hpp:41:48: error: ‘using socket_t = qi::sock::SslSocket<mock::Network>’ {aka ‘struct mock::Network::ssl_socket_type’} has no member named ‘get_executor’
41 | return ((boost::asio::io_context&)socket.get_executor().context());
| ~~~~~~~^~~~~~~~~~~~
make[2]: *** [libqi/tests/messaging/CMakeFiles/test_messaging_internal.dir/build.make:180: libqi/tests/messaging/CMakeFiles/test_messaging_internal.dir/test_tcpmessagesocket.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1559: libqi/tests/messaging/CMakeFiles/test_messaging_internal.dir/all] Error 2
Hello, I dont know if this is the right place to ask this, please tell me if I should move this issue. Since ROS Melodic is not supported on Ubuntu 20.04, and moving forward ROS support will progressively be dropped in favor of ROS2, do you plan to update the ROS releases of libqi to provide support for noetic and/or foxy ? I tried using the
noetic/package.xml
file to compile the upstream repo with catkin and similarly for libqicore, but did not succeed yet :My goal is to have Pepper running with ROS noetic or ROS2 foxy ideally, to avoid reverting to a previous ubuntu version. Thanks in advance for any help !
EDIT : I progressed a bit in the catkin compilation of libqi for Noetic, getting rid of the unknown Cmake command error by requiring Cmake version > 3.0 in the CMakeLists.txt of libqi and libqicore, but I'm now facing the same boost compilation issues as in : https://github.com/aldebaran/libqi/issues/30 . I applied the patch proposed in this issue, but it still fails for now with the following errors :