Skip to content

Fix: Unblock Rolling builds on Ubuntu 24.04#31

Open
BOOPESH-foxy wants to merge 1 commit into
ros-navigation:mainfrom
BOOPESH-foxy:main
Open

Fix: Unblock Rolling builds on Ubuntu 24.04#31
BOOPESH-foxy wants to merge 1 commit into
ros-navigation:mainfrom
BOOPESH-foxy:main

Conversation

@BOOPESH-foxy
Copy link
Copy Markdown
Contributor

@BOOPESH-foxy BOOPESH-foxy commented May 9, 2026

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

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>
Copy link
Copy Markdown

@mini-1235 mini-1235 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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?

@BOOPESH-foxy
Copy link
Copy Markdown
Contributor Author

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.

@mini-1235
Copy link
Copy Markdown

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

@SteveMacenski
Copy link
Copy Markdown
Member

I agree, this source build and skipping of special-child dependencies is not a good solution 🙃

@BOOPESH-foxy
Copy link
Copy Markdown
Contributor Author

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.

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

Successfully merging this pull request may close these issues.

[Bug]: Rolling builds failing on Ubuntu 24.04 due to missing backward_ros binary

3 participants