-
Notifications
You must be signed in to change notification settings - Fork 340
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
dev dependencies listed as deps in released deb packages #475
Comments
Hmm interesting, In theory we should not have a |
I don't see that pcl-ros has an exec depend: https://github.com/ros-perception/perception_pcl/blob/ros2/pcl_ros/package.xml#L45-L50 |
That's what confused me. The package.xml all looked correct and builds fine from source. It seems the process of building this into a prebuilt package is the issue? |
This could be it? It looks like buildtool_export_depends are added as runtime dependencies in the debian package. |
Note that there is a difference between A |
When I change to bloom-generate rosdebian It generates the following control file:
This is how the libpcl-dev ends up in the dependencies. But the |
I think I found where it gets pulled in. Bloom uses a
Looks like this could be a difference in package.xml format 1 and format 2. Format 1 had run_depend as a key which translates to format 2's exec + build_export keys Possible solution would be if bloom could use the benefits of format 2's slimming down of dependencies. |
Is there a change in bloom/catkin_pkg that should be made? |
I think this could be solved in bloom alone. It looks like catkin_pkg will backfill the |
I'm not the most familiar on the topic but starting a discussion in bloom/catkin_pkg would be best to get inputs from experts on the matter. |
I responded to the Bloom ticket, but tl;dr is that we can't take advantage of the split between exec and build_export dependencies in deb packages until we split ROS packages into separate runtime and dev subpackages. |
That makes sense to me |
These posts are very interesting to read. I think it could be solved by splitting packages into -dev packages, but I don't think this will be solved in the short term unfortunately: https://discourse.ros.org/t/generating-dev-and-runtime-artefacts-from-ros-packages/12448 |
Our docker images were unusually large and I was able to track it down to the perception pcl packages. It looks like
libeigen3-dev, libpcl-dev
are listed as runtime dependencies in the control file. I switched to a source install of this package (current jazzy branch c1ccdd2) since the
package.xml
looked correct and was able to remove 2gb+ in our image size.I tried digging into root cause with bloom and the repo at https://github.com/ros2-gbp/perception_pcl-release but am unfortunately not familiar with how it all works.
http://packages.ros.org/ros2/ubuntu/dists/noble/main/binary-amd64/Packages:
The text was updated successfully, but these errors were encountered: