ros-naoqi / libqi-release

Release repo of the ROS port of Aldebaran's libqi
https://github.com/ros-naoqi/libqi
0 stars 11 forks source link

Support for ROS Noetic and ROS2 Foxy #10

Closed thibnoel closed 10 months ago

thibnoel commented 3 years ago

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
victorpaleologue commented 10 months ago

Both releases are out now.