lucasw / ros_from_src

Build ros from source without using a PPA in a github action. Probably just copy what archlinux is doing. See also https://github.com/ros-o/ros-o
BSD 3-Clause "New" or "Revised" License
102 stars 16 forks source link

ros2 rolling from source on Ubuntu 23.10 #30

Closed lucasw closed 8 months ago

lucasw commented 1 year ago

Similar to https://github.com/lucasw/ros_from_src/issues/29

mkdir ros2_rolling/src -p
cd ros2_rolling/src
wget https://raw.githubusercontent.com/ros2/ros2/rolling/ros2.repos
vcs import < ros2.repos

Also more repos in https://github.com/lucasw/ros_from_src/issues/29#issuecomment-1737960359

lucasw commented 1 year ago

upgrade 23.04 to 23.10

sudo do-release-upgrade -c
Checking for a new Ubuntu release
New release '23.10' available.
Run 'do-release-upgrade' to upgrade to it.
sudo do-release-upgrade
lucasw commented 11 months ago

vcs pulled today and running into this output when compiling minimal_publisher:

--- stderr: ros2_example_cpp                              
In file included from /usr/include/c++/13/bits/hashtable_policy.h:36,
                 from /usr/include/c++/13/bits/hashtable.h:35,
                 from /usr/include/c++/13/bits/unordered_map.h:33,
                 from /usr/include/c++/13/unordered_map:41,
                 from /usr/include/c++/13/functional:63,
                 from /home/lucasw/ros/ros2_rolling_misc/src/ros_one2z/ros2_example_cpp/src/minimal_publisher.cpp:7:
In static member function ‘static _Up* std::__copy_move<_IsMove, true, std::random_access_iterator_tag>::__copy_m(_Tp*, _Tp*, _Up*) [with _Tp = const long unsigned int; _Up = long unsigned int; bool _IsMove = false]’,
    inlined from ‘_OI std::__copy_move_a2(_II, _II, _OI) [with bool _IsMove = false; _II = const long unsigned int*; _OI = long unsigned int*]’ at /usr/include/c++/13/bits/stl_algobase.h:506:30,
    inlined from ‘_OI std::__copy_move_a1(_II, _II, _OI) [with bool _IsMove = false; _II = const long unsigned int*; _OI = long unsigned int*]’ at /usr/include/c++/13/bits/stl_algobase.h:533:42,
    inlined from ‘_OI std::__copy_move_a(_II, _II, _OI) [with bool _IsMove = false; _II = __gnu_cxx::__normal_iterator<const long unsigned int*, vector<long unsigned int> >; _OI = long unsigned int*]’ at /usr/include/c++/13/bits/stl_algobase.h:540:31,
    inlined from ‘_OI std::copy(_II, _II, _OI) [with _II = __gnu_cxx::__normal_iterator<const long unsigned int*, vector<long unsigned int> >; _OI = long unsigned int*]’ at /usr/include/c++/13/bits/stl_algobase.h:633:7,
    inlined from ‘static _ForwardIterator std::__uninitialized_copy<true>::__uninit_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >; _ForwardIterator = long unsigned int*]’ at /usr/include/c++/13/bits/stl_uninitialized.h:147:27,
    inlined from ‘_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const long unsigned int*, vector<long unsigned int> >; _ForwardIterator = long unsigned int*]’ at /usr/include/c++/13/bits/stl_uninitialized.h:185:15,
    inlined from ‘_ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, allocator<_Tp>&) [with _InputIterator = __gnu_cxx::__normal_iterator<const long unsigned int*, vector<long unsigned int> >; _ForwardIterator = long unsigned int*; _Tp = long unsigned int]’ at /usr/include/c++/13/bits/stl_uninitialized.h:373:37,
    inlined from ‘std::vector<_Tp, _Alloc>::vector(const std::vector<_Tp, _Alloc>&) [with _Tp = long unsigned int; _Alloc = std::allocator<long unsigned int>]’ at /usr/include/c++/13/bits/stl_vector.h:603:31,
    inlined from ‘void rclcpp::experimental::IntraProcessManager::do_intra_process_publish(uint64_t, std::unique_ptr<MessageT, Deleter>, typename std::allocator_traits<_NodeAlloc>::rebind_traits<MessageT>::allocator_type&) [with MessageT = std_msgs::msg::String_<std::allocator<void> >; ROSMessageType = std_msgs::msg::String_<std::allocator<void> >; Alloc = std::allocator<void>; Deleter = std::default_delete<std_msgs::msg::String_<std::allocator<void> > >]’ at /home/lucasw/ros/ros2_rolling/install/rclcpp/include/rclcpp/rclcpp/experimental/intra_process_manager.hpp:217:29:
/usr/include/c++/13/bits/stl_algobase.h:437:30: warning: ‘void* __builtin_memmove(void*, const void*, long unsigned int)’ forming offset 8 is out of the bounds [0, 8] [-Warray-bounds=]
  437 |             __builtin_memmove(__result, __first, sizeof(_Tp) * _Num);
      |             ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In static member function ‘static _Up* std::__copy_move<_IsMove, true, std::random_access_iterator_tag>::__copy_m(_Tp*, _Tp*, _Up*) [with _Tp = const long unsigned int; _Up = long unsigned int; bool _IsMove = false]’,
    inlined from ‘_OI std::__copy_move_a2(_II, _II, _OI) [with bool _IsMove = false; _II = const long unsigned int*; _OI = long unsigned int*]’ at /usr/include/c++/13/bits/stl_algobase.h:506:30,
    inlined from ‘_OI std::__copy_move_a1(_II, _II, _OI) [with bool _IsMove = false; _II = const long unsigned int*; _OI = long unsigned int*]’ at /usr/include/c++/13/bits/stl_algobase.h:533:42,
    inlined from ‘_OI std::__copy_move_a(_II, _II, _OI) [with bool _IsMove = false; _II = __gnu_cxx::__normal_iterator<const long unsigned int*, vector<long unsigned int> >; _OI = long unsigned int*]’ at /usr/include/c++/13/bits/stl_algobase.h:540:31,
    inlined from ‘_OI std::copy(_II, _II, _OI) [with _II = __gnu_cxx::__normal_iterator<const long unsigned int*, vector<long unsigned int> >; _OI = long unsigned int*]’ at /usr/include/c++/13/bits/stl_algobase.h:633:7,
    inlined from ‘static _ForwardIterator std::__uninitialized_copy<true>::__uninit_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >; _ForwardIterator = long unsigned int*]’ at /usr/include/c++/13/bits/stl_uninitialized.h:147:27,
    inlined from ‘_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const long unsigned int*, vector<long unsigned int> >; _ForwardIterator = long unsigned int*]’ at /usr/include/c++/13/bits/stl_uninitialized.h:185:15,
    inlined from ‘_ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, allocator<_Tp>&) [with _InputIterator = __gnu_cxx::__normal_iterator<const long unsigned int*, vector<long unsigned int> >; _ForwardIterator = long unsigned int*; _Tp = long unsigned int]’ at /usr/include/c++/13/bits/stl_uninitialized.h:373:37,
    inlined from ‘void std::vector<_Tp, _Alloc>::_M_range_insert(iterator, _ForwardIterator, _ForwardIterator, std::forward_iterator_tag) [with _ForwardIterator = __gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >; _Tp = long unsigned int; _Alloc = std::allocator<long unsigned int>]’ at /usr/include/c++/13/bits/vector.tcc:781:34,
    inlined from ‘std::vector<_Tp, _Alloc>::iterator std::vector<_Tp, _Alloc>::insert(const_iterator, _InputIterator, _InputIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >; <template-parameter-2-2> = void; _Tp = long unsigned int; _Alloc = std::allocator<long unsigned int>]’ at /usr/include/c++/13/bits/stl_vector.h:1483:19,
    inlined from ‘void rclcpp::experimental::IntraProcessManager::do_intra_process_publish(uint64_t, std::unique_ptr<MessageT, Deleter>, typename std::allocator_traits<_NodeAlloc>::rebind_traits<MessageT>::allocator_type&) [with MessageT = std_msgs::msg::String_<std::allocator<void> >; ROSMessageType = std_msgs::msg::String_<std::allocator<void> >; Alloc = std::allocator<void>; Deleter = std::default_delete<std_msgs::msg::String_<std::allocator<void> > >]’ at /home/lucasw/ros/ros2_rolling/install/rclcpp/include/rclcpp/rclcpp/experimental/intra_process_manager.hpp:218:33:
/usr/include/c++/13/bits/stl_algobase.h:437:30: warning: ‘void* __builtin_memmove(void*, const void*, long unsigned int)’ writing between 9 and 9223372036854775807 bytes into a region of size 8 overflows the destination [-Wstringop-overflow=]
  437 |             __builtin_memmove(__result, __first, sizeof(_Tp) * _Num);
      |             ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/c++/13/bits/c++allocator.h:33,
                 from /usr/include/c++/13/bits/allocator.h:46,
                 from /usr/include/c++/13/bits/alloc_traits.h:39,
                 from /usr/include/c++/13/ext/alloc_traits.h:34,
                 from /usr/include/c++/13/bits/hashtable_policy.h:39:
In member function ‘_Tp* std::__new_allocator<_Tp>::allocate(size_type, const void*) [with _Tp = long unsigned int]’,
    inlined from ‘static _Tp* std::allocator_traits<std::allocator<_Tp1> >::allocate(allocator_type&, size_type) [with _Tp = long unsigned int]’ at /usr/include/c++/13/bits/alloc_traits.h:482:28,
    inlined from ‘std::_Vector_base<_Tp, _Alloc>::pointer std::_Vector_base<_Tp, _Alloc>::_M_allocate(std::size_t) [with _Tp = long unsigned int; _Alloc = std::allocator<long unsigned int>]’ at /usr/include/c++/13/bits/stl_vector.h:378:33,
    inlined from ‘void std::_Vector_base<_Tp, _Alloc>::_M_create_storage(std::size_t) [with _Tp = long unsigned int; _Alloc = std::allocator<long unsigned int>]’ at /usr/include/c++/13/bits/stl_vector.h:395:44,
    inlined from ‘std::_Vector_base<_Tp, _Alloc>::_Vector_base(std::size_t, const allocator_type&) [with _Tp = long unsigned int; _Alloc = std::allocator<long unsigned int>]’ at /usr/include/c++/13/bits/stl_vector.h:332:26,
    inlined from ‘std::vector<_Tp, _Alloc>::vector(const std::vector<_Tp, _Alloc>&) [with _Tp = long unsigned int; _Alloc = std::allocator<long unsigned int>]’ at /usr/include/c++/13/bits/stl_vector.h:600:61,
    inlined from ‘void rclcpp::experimental::IntraProcessManager::do_intra_process_publish(uint64_t, std::unique_ptr<MessageT, Deleter>, typename std::allocator_traits<_NodeAlloc>::rebind_traits<MessageT>::allocator_type&) [with MessageT = std_msgs::msg::String_<std::allocator<void> >; ROSMessageType = std_msgs::msg::String_<std::allocator<void> >; Alloc = std::allocator<void>; Deleter = std::default_delete<std_msgs::msg::String_<std::allocator<void> > >]’ at /home/lucasw/ros/ros2_rolling/install/rclcpp/include/rclcpp/rclcpp/experimental/intra_process_manager.hpp:217:29:
/usr/include/c++/13/bits/new_allocator.h:147:55: note: destination object of size 8 allocated by ‘operator new’
  147 |         return static_cast<_Tp*>(_GLIBCXX_OPERATOR_NEW(__n * sizeof(_Tp)));
      |                                                       ^
---
Finished <<< ros2_example_cpp [6.26s]

Summary: 1 package finished [7.26s]
  1 package had stderr output: ros2_example_cpp

commenting out this line makes it compile:

      publisher_->publish(message);

It still runs fine but that's a lot of warning/'note' output

lucasw commented 8 months ago

updating to today

sudo apt install liblttng-ctl-dev
lucasw commented 8 months ago
CMake Error at /home/lucasw/ros/ros2_rolling/install/rviz_default_plugins/share/rviz_default_plugins/cmake/rviz_default_pluginsExport.cmake:61 (set_target_properties):
  The link interface of target "rviz_default_plugins::rviz_default_plugins"
  contains:

    point_cloud_transport::point_cloud_transport

  but the target was not found.  Possible reasons include:

    * There is a typo in the target name.
    * A find_package call is missing for an IMPORTED target.
    * An ALIAS target is missing.

Call Stack (most recent call first):
  /home/lucasw/ros/ros2_rolling/install/rviz_default_plugins/share/rviz_default_plugins/cmake/ament_cmake_export_targets-extras.cmake:9 (include)
  /home/lucasw/ros/ros2_rolling/install/rviz_default_plugins/share/rviz_default_plugins/cmake/rviz_default_pluginsConfig.cmake:41 (include)
  CMakeLists.txt:31 (find_package)

This fixes it, but not sure why - don't see anything in this package about point clouds (was the above error also for vision_msgs_rviz_plugins)

lucasw@lucasw-XPS-8940:~/ros/ros2_rolling/src/misc/vision_msgs/vision_msgs_rviz_plugins$ git diff
diff --git a/vision_msgs_rviz_plugins/CMakeLists.txt b/vision_msgs_rviz_plugins/CMakeLists.txt
index d199135..64eb5e2 100644
--- a/vision_msgs_rviz_plugins/CMakeLists.txt
+++ b/vision_msgs_rviz_plugins/CMakeLists.txt
@@ -27,6 +27,7 @@ find_package(rclcpp REQUIRED)
 find_package(rclpy REQUIRED)

 find_package(pluginlib REQUIRED)
+find_package(point_cloud_transport REQUIRED)
 find_package(rviz_common REQUIRED)
 find_package(rviz_default_plugins REQUIRED)
 find_package(rviz_rendering REQUIRED)
diff --git a/vision_msgs_rviz_plugins/package.xml b/vision_msgs_rviz_plugins/package.xml
index effc363..5f2301e 100644
--- a/vision_msgs_rviz_plugins/package.xml
+++ b/vision_msgs_rviz_plugins/package.xml
@@ -19,6 +19,7 @@
   <depend>rclcpp</depend>
   <depend>rclpy</depend>
   <depend>pluginlib</depend>
+  <depend>point_cloud_transport</depend>

   <depend>rviz_common</depend>
   <depend>rviz_default_plugins</depend>

Duplicate this in another build


tried on another computer, ran into same error, but solution seems to be to manually build point_cloud_transport with packages-select first, don't need to modify package.xml/CMakeLists.txt (rviz_default_plugins aleady lists it)