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
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 .deb
s for Debian Buster for any of your package's dependencies.
Asked by cottsay on 2022-05-24 13:37:57 UTC
Comments