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

Likely regression with dependencies in 2.3.0 #255

Closed
mikeferguson opened this issue Dec 4, 2024 · 7 comments
Closed

Likely regression with dependencies in 2.3.0 #255

mikeferguson opened this issue Dec 4, 2024 · 7 comments

Comments

@mikeferguson
Copy link
Contributor

#239 adds a <build_depend> on libfcl-dev and <exec_depend> on libfcl - however when 2.3.0 was released, robot_calibration debians stopped building for Jazzy and Rolling with the following error:

/usr/bin/ld: cannot find -lfcl: No such file or directory

I don't directly do anything with fcl, but do find_package on geometric_shapes and link against (to utilize the mesh loader).

geometric_shapes has only three other (released) downstream users: moveit_core, moveit_ros_occupancy_map_monitor, moveit_ros_visualization - the latter two of which depend on moveit_core. moveit_core has a <depend> on libfcl-dev. Thus, these continued to build properly.

I've temporarily patched my build by adding a <depend>libfcl-dev</depend> to the package.xml of robot_calibration - but not sure if this maybe indicates a deeper problem that could catch other users of geometric_shapes off guard.

@peci1
Copy link
Contributor

peci1 commented Dec 4, 2024

I'm not sure why robot_calibration pulls fcl into linker. For geometric_shapes, it is (or should be) a private, non-transitive dependency. So it seems like something else pulls it in without declaring it?

@peci1
Copy link
Contributor

peci1 commented Dec 4, 2024

Hmm, maybe this:

https://github.com/moveit/geometric_shapes/blob/ros2/CMakeLists.txt#L93

should contain PRIVATE?

@peci1
Copy link
Contributor

peci1 commented Dec 5, 2024

Indeed, in http://packages.ros.org/ros2-testing/ubuntu/pool/main/r/ros-jazzy-geometric-shapes/ros-jazzy-geometric-shapes_2.3.0-1noble.20241203.001623_amd64.deb , in file data.tar.zst/opt/ros/jazzy/share/geometric_shapes/cmake/export_geometric_shapesExport.cmake, I see:

set_target_properties(geometric_shapes::geometric_shapes PROPERTIES
  INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include/geometric_shapes;/opt/ros/jazzy/include;/usr/include/eigen3;/usr/include;/usr/include/libqhull_r;${_IMPORT_PREFIX}/include"
  INTERFACE_LINK_LIBRARIES "fcl;console_bridge::console_bridge;geometry_msgs::geometry_msgs__rosidl_generator_c;..."
)

So fcl gets exported as interface link library.

I'll try to submit the fix I've proposed earlier.

peci1 added a commit to peci1/geometric_shapes that referenced this issue Dec 5, 2024
@peci1
Copy link
Contributor

peci1 commented Dec 5, 2024

See if #256 fixes the issue.

@mikeferguson
Copy link
Contributor Author

@peci1 I don't have a great way to test that PR - since merely having libfcl-dev installed fixes the issue - and I don't think I want to tear up that much of my system to test it...

@mikeferguson
Copy link
Contributor Author

Appears that 2.3.1 (which is now built on testing) does fix the issue - mikeferguson/robot_calibration#188

@peci1
Copy link
Contributor

peci1 commented Dec 6, 2024

Great, thanks for testing!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants