1
$\begingroup$

I have a project where I use a proprietary library to exchange data with a PLC, therefore I have to use debian as operating system. As a consequence, I have to build the ROS distro from source.

Instead of using a full .repos file and add COLCON_IGNORES for unwanted packages: Is there a possibility to get the package names of all ROS dependencies recursively up to the core ROS packages, starting from my workspace? I could then use this list to manually create a .repos file by looking for the correct git repositories.

The direct dependencies can be listed with

grep -RhI -e "^ *<exec_depend>" -e "^ *<build_depend>"  -e "^ *<run_depend>" ~/catkin_ws/src | sed -e "s/.*>\(.*\)<.*/\1/" | sort | uniq

from here, but their respective dependencies have to be searched iteratively after pulling the sources.

Or is there any smarter way to create a .repos file, or a different approach if there are no released ROS binaries for the target system?

$\endgroup$

1 Answer 1

2
$\begingroup$

I'm in a similar situation. I haven't found a comprehensive way to quickly generate a .repos file from my dependencies for example, but colcon graph definitely helped me get an overview of what packages depend on what. More documentation here: https://colcon.readthedocs.io/en/released/reference/verb/graph.html

$\endgroup$
1
  • $\begingroup$ Thanks, I wasn't aware of colcon graph. But maybe someone comes up with a direct solution.. $\endgroup$ Commented Nov 9, 2023 at 15:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.