Hi, I am currently trying to compile a ros distribution on gentoo in order to create a minimal OS for our robot.
However, this package is a major dependancy for ROS2 and is not distributed on gentoo.
I was wondering if it was possible to release the package for gentoo.
I think that submitting your request as an issue to the appropriate github repository would be better.
The official instructions for building ROS 2 from source actually skip package rti_connext_dds-6.0.1 when running rosdep. If Connext is not available (i.e. installed through the Debian package, or manually loaded in the build shell), then Connext's RMW (rmw_connextdds) will not produce any library and effectively be automatically skipped when building the ROS 2 source tree.
I'm not sure how you are implementing your Gentoo port of ROS (i.e. if you are also porting rosdep or if you are following a Gentoo-specific strategy to handle external dependencies), but I suggest implementing a similar solution which ignores the dependency to rti_connext_dds-6.0.1 (or rti_connext_dds-5.3.1 if you are building ROS Foxy or older).
Could you link me to the appropriate repo please ? I got quite confuse on which does what.
That is what I have done so far and I am not yet able to test my portage but I was wondering if it would break anything ? Would everything work as it should even without this dependancy ?
Support for running ROS 2 on top of RTI Connext DDS is implemented by rmw_connextdds, an implementation of ROS 2's RMW layer for Connext, which you can find in repository ros2/rmw_connextdds.
rmw_connextdds is one of the three "Tier 1" RMW implementations which are part of the ROS 2 source tree (i.e. it is part of ros2.repos).
The ros2/rmw_connextdds repository contains 4 ROS packages:
There is no public git repository for Connext: users typically install Connext using one of the official installers distributed through RTI's website. The official installers present users with the widest range of options to provision Connext on one of the many hardware and software platforms it supports. You can also request a free trial of the latest release to evaluate Connext on the three major desktop platforms (Windows, Linux, macOS).
RTI has also released some versions of Connext in Debian binary package format (.deb) to support the ROS 2 community. These packages contain a basic version of Connext that can be used to build rmw_connextdds on x86_64 Linux targets, bundled with a license for noncommerical and preproduction use only.
The packages are distributed through the ROS 2 apt repository. Their purpose is to allow the ROS build farm to generate binary packages for rmw_connextdds, and to allow users to evaluate ROS 2 with Connext without having to build rmw_connextdds from source.
The latest version of Connext released in this form is Connext 6.0.1, contained in package rti_connext_dds-6.0.1. The package will be automatically installed as a dependency if users install rmw_connextdds using apt.
Users who want to use a more recent version of Connext, or need features not included in the Debian distribution (e.g. security), should install Connext using the official installers provided by RTI, then build rmw_connextdds from source.
Yes, it should. As I hope I explained, the packages in ros2/rmw_connextdds are designed to not produce any error if Connext is not loaded in the environment. In fact, even if you had installed the dependency, but forgot to load Connext in the environment by setting the appropriate variables, the packages would behave the same way and not produce any library. At most, you might receive a warning message during the colcon build which you can ignore/suppress.
I hope this helps, let me know if you have more questions!