ROS Debian Packages
ROS has a set of packages that depends on one of the others. There's a core and a defined set of typical variants. These are defined in a document [REP http://www.ros.org/reps/rep-0142.html]. In our case, we thought that a good target should be the desktop_full variant.
Quoting ROS documentation: The desktop variants are main entry points for users. The desktop_full is a "batteries included" experience for users and attempts to collect stable, well-documented libraries. These libraries may be specific to certain classes of robots, such as mobile robots, though they are not specific to a particular robot. The desktop variant is more minimal and only provides the stacks in the robot variant, plus visualization and debugging tools. Both of these variants contain tutorials for the stacks they provide.
We have created a set of packages of the core of ROS plus other extras. Currently, (Feb 2022) we have built more than a half of the packages of desktop_full installation. The packages have been in archive since Debian Stretch. The status of the packages is showed here. They obey Debian policies and have the needed SONAMES. We are working under the debian-science team umbrella and we are working to have our own team . The sources of the packages are hosted in https://salsa.debian.org .
We have patches mainly for all the packages for:
- Install them in places following Debian policies.
- Creating SONAMEs for all the libs (adding 0d to the name of the library).
Also, we have patched rospkg to work with packages installed in /usr/share and not be penalty in performance.
Comparing to Upstream packages
- The name of the packages in Debian and other things are not the same.
- Debian packages in archive are well done, with -dev, python3-, etc and upstream just generate only one package with all the contents.
- Upstream packages install all the stuff under /opt/ros
- Obviously, the ROS packages in archive follow Policy guidelines.