ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

gentoo ros2

asked 2022-11-06 21:37:16 -0500

tomkimsour gravatar image

updated 2022-11-06 22:17:32 -0500

Hi,

I am trying to recompile and update gentoo packages from https://github.com/ros/ros-overlay with the superflore tool which seem outdated. And while compiling, many package would just not compile and it seems a lot of them doesn't work. So far I've been running this command :

superflore-gen-ebuilds --ros-distro galactic --skip-keys depthai_ros_msgs depthai_examples depthai depthai-ros depthai_bridge behaviortree_cpp_v3 automotive_autonomy_msgs automotive_navigation_msgs automotive_platform_msgs --dry-run --output-repository-path ~/Documents/ros-overlay

Where the packages after the argument --skip-keys would be the ones I ignored so far. I am far from being finished and I saw that these packages are the ones distributed with ros_base but are they essential in order to run ros applications ?

Why are package like lanelet2 in ros base ? Shouldn't it be an external package ?

edit retag flag offensive close merge delete

Comments

depthai_ros_msgs and the other packages you list are definitely not in ros_base. See REP-2000 for what is part of ros_base in Galactic.


Edit: could you please not cross-post to ROS Discourse?

gvdhoorn gravatar image gvdhoorn  ( 2022-11-07 02:03:42 -0500 )edit

I guess superflore just compiles every packages listed by rosdistro then. Feels like there should be a way to separate builds between the different packages.

And regarding the post on rosdiscourse. I created it to discuss about the portage of ros to gentoo in general not in order to get answer to this question.

tomkimsour gravatar image tomkimsour  ( 2022-11-07 17:46:41 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
0

answered 2022-11-08 17:17:23 -0500

nuclearsandwich gravatar image

Superflore, unlike the standard ROS release tool bloom is designed to create release metadata for entire distributions at once rather than individual packages. superflore-gen-ebuilds has an --only flag which suggests that it's possible to restrict the packages which are generated but there is no flag to generate ebuilds for specified packages _and_ their dependencies, which is more than likely what you want.

When reporting problems like this it is best to include both the command that you ran (which you've done) and the output which is most likely related to the error you're requesting assistance with.

I ran superflore-gen-ebuilds --ros-distro rolling --dry-runlocally and confirmed that the issue is packages with conditional build types. I spent some time this afternoon drafting a patch to superflore which implements proper conditional evaluation (https://github.com/ros-infrastructure...). However during the dry run I'm seeing a number of warnings regarding missing system dependencies from rosdep and the run ended with an error running a specific docker image.


Where the packages after the argument --skip-keys would be the ones I ignored so far. I am far from being finished and I saw that these packages are the ones distributed with ros_base but are they essential in order to run ros applications ?

Why are package like lanelet2 in ros base ? Shouldn't it be an external package ?

What gives you the impression that these are packages associated with ros_base? superflore generates ebuilds for the _entire_ ROS distribution.


It looks like there are going to be more issues with superflore's overlay generation than just the above issue. Have you built ROS 2 from source on Gentoo recently? You could follow the ROS 2 development setup (Note: you will need to adapt the documentation to Gentoo as there are not currently gentoo-specific setup instructions.).

Using rosinstall_generator or the ros2.repos file used in the above listed instructions will allow you to test building a smaller set of ROS 2 packages.

edit flag offensive delete link more

Comments

My first thought was that superflore was compiling ros_base but it actually fetches all the packages from ros distribution as you mention it. Shouldn't there be an argument that says what you want to compile, let's say ros core, ros base, ros desktop, ros distribution ?

Have you built ROS 2 from source on Gentoo recently?

I am still trying to compile a ros_base version of gentoo but I am still not there. I mainly wanted to use superflore to update the packages of ros-overlay

tomkimsour gravatar image tomkimsour  ( 2022-11-08 18:36:34 -0500 )edit

I think that updates to ros-overlay are probably going to be long in coming.

I would suggest first building ROS 2 manually and verifying that you can successfully use rosdep to manage the dependencies for an installation of ros_base or the ros2.repos file used in ROS 2 development since that will probably be the first place you encounter blocking errors. Once rosdep is in good shape revisiting the ros-overlay updates will make sense but no changes to ros-overlay will be successful if dependencies have drifted since the last time anyone was building on Gentoo.

nuclearsandwich gravatar image nuclearsandwich  ( 2022-11-09 16:58:14 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2022-11-06 21:37:16 -0500

Seen: 163 times

Last updated: Nov 08 '22