Fix: Unblock Rolling builds on Ubuntu 24.04#31
Conversation
Implemented a source fallback for backward_ros and ament_cmake to address missing binary packages. Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Boopesh-foxy <boopesh.mc@gmail.com>
mini-1235
left a comment
There was a problem hiding this comment.
On my Ubuntu 24.04, I am able to see ament_cmake, geographic_msgs, and backward_ros from apt.
ros-rolling-ament-cmake-ros/noble,now 0.15.7-1noble.20260425.040136 amd64 [installed,automatic]
The ROS specific CMake bits in the ament buildsystem.
ros-rolling-ament-cmake-ros-core/noble,now 0.15.7-1noble.20260423.224207 amd64 [installed]
Core ROS specific CMake bits in the ament buildsystem.
ros-rolling-ament-cmake-target-dependencies/noble,now 2.8.7-1noble.20260423.213451 amd64 [installed]
The ability to add definitions, include directories and libraries of a package to a target in the ament buildsystem in CMake.
ros-rolling-ament-cmake-test/noble,now 2.8.7-1noble.20260423.213447 amd64 [installed]
The ability to add tests in the ament buildsystem in CMake.
ros-rolling-ament-cmake-uncrustify/noble,now 0.20.4-1noble.20260424.001515 amd64 [installed]
The CMake API for ament_uncrustify to check code against styleconventions using uncrustify.
ros-rolling-ament-cmake-vendor-package/noble,now 2.8.7-1noble.20260423.224211 amd64 [installed]
Macros for maintaining a 'vendor' package.
Do we really need to source build here?
During my earlier builds on the osrf/ros:rolling base image, apt was failing to locate ament-cmake-vendor-package and rosdep couldn't resolve the keys, which is why I implemented the source fallback. |
|
Hmmm, since ament_cmake is a core ros package, I would expect it to be picked up in every rolling sync via apt, so source-building it seems unnecessary (otherwise a lot of packages would already be failing during colcon build). But there might be something else going on here that I am not fully understanding |
|
I agree, this source build and skipping of special-child dependencies is not a good solution 🙃 |
|
I hear you both loud and clear. My attempt to unblock the build via source-clones and skip-keys was a hack that solved the symptoms but compromised the architecture of the image. I see now that creating special-child dependencies isn't the right path for a production-grade Dockerfile. |
This PR addresses the build failures in the Rolling/Noble environment (Issue #30) caused by the transition of ROS Rolling to Ubuntu 26.04.
Implemented conditional source-cloning for backward_ros (branch foxy-devel) and ament_cmake (branch rolling) to address missing binary packages in the frozen Noble-Rolling apt index.
Skipped rosdep update for Rolling builds on Noble. This prevents the pull of out-of-sync Plucky (26.04) metadata while utilizing the pre-cached base image state.
Added backward_ros, geographic_msgs, and ament_cmake_vendor_package to --skip-keys to prevent rosdep from failing on keys that are currently non-existent or mismatched for 24.04.
Fixed: [Bug]: Rolling builds failing on Ubuntu 24.04 due to missing backward_ros binary #30