Robotics StackExchange | Archived questions

Generate ros2 debain pacakge from source build on a custom platform

Hi ,

We are using debian-10 32 bit (buster) as out operating system. Since ros has no official support, we managed to compile the ros libraries following the official documentation building ros2 from source along with custominterfaces (msg/srv files) packages. The custominterfaces is created & complied following this tutorial and it looks good. we can perform ros2 interface show custom_interfaces/msg/.. and able to see the message.

I would like to debianise our custominterfaces packages and came across this discussion. After navigating in the custominterfaces package source code and When i tried doing this

 bloom-generate rosdebian 

It complaining

==> Generating debs for debian:buster for package(s) ['custom_interfaces']
No homepage set, defaulting to ''
ROS Distro index file associate with commit '4cf62ef1e90762fb83fbfcbe3d736f3a98654d13'
New ROS Distro index url: 'https://raw.githubusercontent.com/ros/rosdistro/4cf62ef1e90762fb83fbfcbe3d736f3a98654d13/index-v4.yaml'
Could not resolve rosdep key 'builtin_interfaces'
Try to resolve the problem with rosdep and then continue.

Asked by BhanuKiran.Chaluvadi on 2021-08-09 06:02:49 UTC

Comments

Answers

I think there is some confusion regarding debian as a package format and Debian as a distribution. While those commands can be used to generate .deb files, bloom-generate requires that the current platform be listed in rosdistro so that it can resolve the names of other packages in that ROS distrobution. Because we aren't building .deb packages for any Debian versions in ROS 2, rosdep is unable to resolve the appropriate .deb dependency name for any of the other packages (in this case, there is no .deb available for builtin_interfaces for Debian Buster).

Even if you could work around this requirement to force bloom to generate the package, the .deb that you create couldn't be installed because of the lack of dependencies.

Asked by cottsay on 2021-09-20 17:04:10 UTC

Comments

@cottsay ... At this stage I just want to create a debian package using bloom-generate. I cam across this ros answer Generate deb from dependent res package locally. I copied listed in rosdistro and modified release_platforms to debian buster and added the path to /etc/ros/rosdep/sources.list.d/50-my-packages.list as mentioned in the ros-answer. Unfortunately bloom-generate fails of same error as before

Asked by BhanuKiran.Chaluvadi on 2022-05-24 08:19:39 UTC

You'll need to set the ROSDISTRO_INDEX_URL environment variable to point to the index-v4.yaml in your fork of rosdistro prior to running Bloom. The sources.list.d change will affect the rosdep database, but not the ROS distribution index, which is controlled by that environment variable. The fact that both the ROS distribution index and the rosdep database are located in the same repository is somewhat coincidental.

Again, I'll warn you that your custom .deb will not be installable because there are no .debs for Debian Buster for any of your package's dependencies.

Asked by cottsay on 2022-05-24 13:37:57 UTC