I am creating a package that depends on the ROS package ros-noetic-moveit-core. More specifically, it contains a shared library linking against libmoveit_robot_model.so.
libmoveit_robot_model.so is i a symbolic link to libmoveit_robot_model.so.1.1.7, so libmoveit_robot_model.so.1.1.7 ends in the NEEDED section of my shared library.
However, when I package it, dpkg-shlibdeps only adds ros-noetic-moveit-core to the shlibs depends, without any version information.
When MoveIt! update to a newer version, like it did when updating from 1.1.6, the library libmoveit_robot_model.so.1.1.7 will be replaced by libmoveit_robot_model.so.1.1.8 (for example), and my package will no longer link, while dpkg do not see the conflict.
How can I make sure that my package correctly inform of its dependencies? I see two solutions:
- Find a way to not include the version suffix when linking so my package is compatible with multiple version of MoveIt!, but I do not like this solution (especially since MoveIt! do not provides a symbols file or event a symbolic link with a major version suffix, like
libmoveit_robot_model.so.1). - Find a way to make dpkg-shlibdeps find the used version of MoveIt! so my package is upgraded alongside MoveIt!.
If it is an error from the MoveIt! packager, what can they do, and what can I do while waiting for the packages to be fixed?
More information on MoveIt!:
- I am using this .deb package.
- There is no .symbols file.
- The file /var/lib/dpkg/info/ros-noetic-moveit-core.shlibs contains the following:
#... libmoveit_robot_model 1.1.7 ros-noetic-moveit-core #...