rclcpp needs specific version of rcl [humble]
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 805
- Forks
- 564
- Avg merge
- 1d 17h
- Merged PRs (30d)
- 27
Description
Bug report
Required Info:
- Operating System:
- Ubuntu 22.04
- Installation type:
- binaries
- Version or commit hash:
- ROS 2 Humble Hawksbill - Patch Release 4
- DDS implementation:
- N/A
- Client library (if applicable):
- rclcpp, rcl
Steps to reproduce issue
rocker --home --network host -- ros:humble-ros-base
apt update; apt install ros-humble-rclcpp # do not update ros-humble-rcl
# build any simple colcon package
Expected behavior
No errors
Actual behavior
Getting error:
/usr/bin/ld: /opt/ros/humble/lib/librclcpp.so: undefined reference to `rcl_clock_time_started'
Additional information
Ever since PR #2210 has been merged, rclcpp now requires rcl_clock_time_started to be available in the rcl library, which was added here. Currently there's no version check for rcl and now that the Patch 4 with this change is out it's possible to update rclcpp without updating rcl:
Package: ros-humble-rclcpp
Version: 16.0.5-2jammy.20230721.204813
Priority: optional
Section: misc
Maintainer: Ivan Paunovic <ivanpauno@ekumenlabs.com>
Installed-Size: 3342 kB
Depends: libc6 (>= 2.34), libgcc-s1 (>= 3.3.1), libstdc++6 (>= 12), ros-humble-ament-index-cpp, ros-humble-builtin-interfaces, ros-humble-libstatistics-collector, ros-humble-rcl, ros-humble-rcl-interfaces, ros-humble-rcl-yaml-param-parser, ros-humble-rcpputils, ros-humble-rcutils, ros-humble-rmw, ros-humble-rosgraph-msgs, ros-humble-rosidl-runtime-cpp, ros-humble-rosidl-typesupport-c, ros-humble-rosidl-typesupport-cpp, ros-humble-statistics-msgs, ros-humble-tracetools, ros-humble-ros-workspace
I scoured the ros2 infrastructure stuff and can't find where dependency versions are defined or how they're even built (using cpack or bloom), so I hope it's the correct place for this issue.
If someone tells me where this is defined, I can even open a PR for this fairly minor issue.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with ros_buildfarm/scripts/release/build_binarydeb.py and the generated package metadata, then compare rclcpp PR #2210 with rcl PR #1021. Trace how the rclcpp dependency on rcl is declared and verify the reported binary-install reproduction. Done means incompatible rclcpp and rcl versions are not installable together and the linker error no longer occurs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- build-system, release
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100