Skip to content
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

Fix header install destination #3134

Open
rhaschke opened this issue Nov 27, 2024 · 3 comments
Open

Fix header install destination #3134

rhaschke opened this issue Nov 27, 2024 · 3 comments
Labels
bug Something isn't working

Comments

@rhaschke
Copy link
Contributor

rhaschke commented Nov 27, 2024

We frequently see bug reports about ABI incompatibilities when overlaying existing binary packages.
I strongly believe that this related to the header installation problem raised in ros2/ros2#1150.
For ROS Humble, the TSC decided to install headers into a subfolder /opt/ros//include///:
https://docs.ros.org/en/humble/Releases/Release-Humble-Hawksbill.html#c-headers-are-installed-in-a-subdirectory
https://colcon.readthedocs.io/en/released/user/overriding-packages.html#install-headers-to-a-unique-include-directory

MoveIt2 never implemented that change, causing ABI issues with package overlays to persist.
We recently fixed this for srdfdom: moveit/srdfdom#132 and moveit/srdfdom@65ce909.
I think, it's time to go through all MoveIt-releated packages and eventually fix it.

affected ROS distros: Humble+

@mikeferguson
Copy link
Contributor

@TSNoble you might be interested in working on this - once released, it would avoid many (all?) of the "source build overlaying binaries causes weird ABI crashes" that I think were plaguing you recently.

@rhaschke
Copy link
Contributor Author

There is another example what to do in moveit/geometric_shapes#253.

@rr-tom-noble
Copy link
Contributor

rr-tom-noble commented Nov 28, 2024

To be fair, I think most of our failures have just been poor dependency management on our part e.g. the last failure was caused by building against 2.5.5, but linking dynamically against 2.5.6.

Currently on my agenda:

  1. Get Enhancement/use hpp for headers #3113 merged
  2. Pick up follow on header work listed here
  3. Implement the proposal in Ability to attach collision objects to collision objects? #3060 (@rhaschke unrelated, but would be good to get your thoughts)

This ticket feels like it'd sit quite nicely with the rest of the items in point 2, which all feel fairly small in isolation, so I don't mind taking a shot at it. Also, thanks for the examples. I'll probably work through that list after 1, although work is very busy currently so mainly doing this in my spare time 😅

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants