From d1cc7f8063b789835c0fde2c54ce8d3c6ee12199 Mon Sep 17 00:00:00 2001 From: Florian Vahl Date: Wed, 10 Dec 2025 15:38:59 +0100 Subject: [PATCH 1/3] Port https://github.com/RoboStack/ros-jazzy/pull/137 --- patch/ros-jazzy-rclpy.patch | 66 +++++++++++++++++++++++++++++++++++++ pkg_additional_info.yaml | 2 ++ 2 files changed, 68 insertions(+) create mode 100644 patch/ros-jazzy-rclpy.patch diff --git a/patch/ros-jazzy-rclpy.patch b/patch/ros-jazzy-rclpy.patch new file mode 100644 index 000000000..177e33c0c --- /dev/null +++ b/patch/ros-jazzy-rclpy.patch @@ -0,0 +1,66 @@ +diff --git a/rclpy/src/rclpy/events_executor/events_executor.cpp b/rclpy/src/rclpy/events_executor/events_executor.cpp +index 526d2ca..99a4e91 100644 +--- a/rclpy/src/rclpy/events_executor/events_executor.cpp ++++ b/rclpy/src/rclpy/events_executor/events_executor.cpp +@@ -172,7 +172,7 @@ void EventsExecutor::spin(std::optional timeout_sec, bool stop_after_use + const auto timeout_ns = std::chrono::duration_cast( + std::chrono::duration(*timeout_sec)); + const auto end = std::chrono::steady_clock::now() + timeout_ns; +- events_queue_.RunUntil(end); ++ events_queue_.Run(end); + } else { + events_queue_.Run(); + } +diff --git a/rclpy/src/rclpy/events_executor/events_queue.cpp b/rclpy/src/rclpy/events_executor/events_queue.cpp +index a65c22b..6fa0aac 100644 +--- a/rclpy/src/rclpy/events_executor/events_queue.cpp ++++ b/rclpy/src/rclpy/events_executor/events_queue.cpp +@@ -29,15 +29,18 @@ void EventsQueue::Enqueue(std::function event_handler) + cv_.notify_one(); + } + +-void EventsQueue::Run() {RunUntil(std::chrono::steady_clock::time_point::max());} +- +-void EventsQueue::RunUntil(std::chrono::steady_clock::time_point deadline) ++void EventsQueue::Run(const std::optional deadline) + { + while (true) { + std::function handler; + { + std::unique_lock lock(mutex_); +- cv_.wait_until(lock, deadline, [this]() {return stopped_ || !queue_.empty();}); ++ auto pred = [this]() {return stopped_ || !queue_.empty();}; ++ if (deadline) { ++ cv_.wait_until(lock, *deadline, pred); ++ } else { ++ cv_.wait(lock, pred); ++ } + if (stopped_ || queue_.empty()) { + // We stopped for some reason other than being ready to run something (stopped or timeout) + return; +diff --git a/rclpy/src/rclpy/events_executor/events_queue.hpp b/rclpy/src/rclpy/events_executor/events_queue.hpp +index a6d7b59..3012313 100644 +--- a/rclpy/src/rclpy/events_executor/events_queue.hpp ++++ b/rclpy/src/rclpy/events_executor/events_queue.hpp +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include + + namespace rclpy + { +@@ -37,12 +38,9 @@ public: + /// Add an event handler to the queue to be dispatched. Can be invoked by any thread. + void Enqueue(std::function); + +- /// Run event handlers indefinitely, until stopped. +- void Run(); +- + /// Run all ready event handlers, and any that become ready before the given deadline. Calling + /// Stop() will make this return immediately even if ready handlers are enqueued. +- void RunUntil(std::chrono::steady_clock::time_point); ++ void Run(const std::optional = {}); + + /// Causes any Run*() methods outstanding to return immediately. Can be invoked from any thread. + /// The stopped condition persists (causing any *subsequent* Run*() calls to also return) until diff --git a/pkg_additional_info.yaml b/pkg_additional_info.yaml index 5bacb3d35..0cef197b6 100644 --- a/pkg_additional_info.yaml +++ b/pkg_additional_info.yaml @@ -146,3 +146,5 @@ proxsuite: dep_name: proxsuite max_pin: 'x.x' override_version: '0.7.2' +rclpy: + build_number: 15 \ No newline at end of file From ee844f77c7a6a28f5a7d15df36e0aae09f9a134d Mon Sep 17 00:00:00 2001 From: Florian Vahl Date: Wed, 10 Dec 2025 15:40:38 +0100 Subject: [PATCH 2/3] Bump macos version --- .github/workflows/testpr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/testpr.yml b/.github/workflows/testpr.yml index 48da09538..4de2934b3 100644 --- a/.github/workflows/testpr.yml +++ b/.github/workflows/testpr.yml @@ -21,7 +21,7 @@ jobs: - os: ubuntu-24.04-arm platform: linux-aarch64 folder_cache: 'output/linux-aarch64' - - os: macos-13 + - os: macos-15-intel platform: osx-64 folder_cache: 'output/osx-64' - os: macos-14 From 4a06a2298b4aba60a4c6e59ca176c532f7440baa Mon Sep 17 00:00:00 2001 From: Florian Vahl Date: Mon, 19 Jan 2026 22:56:07 +0100 Subject: [PATCH 3/3] Fix distro name in rclpy patch --- patch/{ros-jazzy-rclpy.patch => ros-kilted-rclpy.patch} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename patch/{ros-jazzy-rclpy.patch => ros-kilted-rclpy.patch} (100%) diff --git a/patch/ros-jazzy-rclpy.patch b/patch/ros-kilted-rclpy.patch similarity index 100% rename from patch/ros-jazzy-rclpy.patch rename to patch/ros-kilted-rclpy.patch