From aa7a51b0bbe8beb8c767bfdc8767240930c637be Mon Sep 17 00:00:00 2001 From: Tim Clephas Date: Mon, 26 Oct 2026 07:44:02 +0100 Subject: [PATCH 1/3] Beluga for Lyrical --- distros/lyrical/rosdistro_additional_recipes.yaml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/distros/lyrical/rosdistro_additional_recipes.yaml b/distros/lyrical/rosdistro_additional_recipes.yaml index 32943aa18..67d74c4d2 100644 --- a/distros/lyrical/rosdistro_additional_recipes.yaml +++ b/distros/lyrical/rosdistro_additional_recipes.yaml @@ -346,6 +346,18 @@ autoware_velocity_smoother: tag: release/humble/autoware_velocity_smoother/1.7.0-1 url: https://github.com/ros2-gbp/autoware_core-release.git version: 1.7.0 +beluga: + tag: release/jazzy/beluga/2.1.1-1 + url: https://github.com/ros2-gbp/beluga-release.git + version: 2.1.1 +beluga_amcl: + tag: release/jazzy/beluga_amcl/2.1.1-1 + url: https://github.com/ros2-gbp/beluga-release.git + version: 2.1.1 +beluga_ros: + tag: release/jazzy/beluga_ros/2.1.1-1 + url: https://github.com/ros2-gbp/beluga-release.git + version: 2.1.1 better_launch: tag: 1.3.0 url: https://github.com/dfki-ric/better_launch.git From 03b1f9e73201f9248a519c3910f93600808c8062 Mon Sep 17 00:00:00 2001 From: Tim Clephas Date: Mon, 26 Oct 2026 10:09:53 +0100 Subject: [PATCH 2/3] fixup! Beluga for Lyrical --- .github/workflows/testpr.yaml | 9 ++++++--- distros/lyrical/rosdistro_additional_recipes.yaml | 6 +++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/.github/workflows/testpr.yaml b/.github/workflows/testpr.yaml index 725f8a1f8..a3be67295 100644 --- a/.github/workflows/testpr.yaml +++ b/.github/workflows/testpr.yaml @@ -259,9 +259,12 @@ jobs: extra=() # shorter work dirs for MAX_PATH on Windows [ "$PLATFORM" == "win-64" ] && extra+=(--no-build-id) - # independent recipes side by side, with a shared jobserver keeping them at the - # runner's cores in total; Windows has no jobserver, and was no faster with two - [ "$PLATFORM" != "win-64" ] && extra+=(--parallel-builds "3:$(getconf _NPROCESSORS_ONLN)") + # Temporarily one at a time everywhere, as in tools/robostack.py (PARALLEL_BUILDS): + # rattler-build 0.77 gives two variants of a recipe started in the same second the + # same build directory (prefix-dev/rattler-build#2898, e.g. beluga's hdf5 variants). + # Back to --parallel-builds "3:$(getconf _NPROCESSORS_ONLN)" off Windows once + # prefix-dev/rattler-build#2899 is released. + extra+=(--parallel-builds 1) pixi run rs "$DISTRO" build --target-platform "$PLATFORM" "${extra[@]}" 2>&1 | tee rattler-build.log status=${PIPESTATUS[0]} echo "exit-code=${status}" >> "$GITHUB_OUTPUT" diff --git a/distros/lyrical/rosdistro_additional_recipes.yaml b/distros/lyrical/rosdistro_additional_recipes.yaml index 67d74c4d2..04afc7ec5 100644 --- a/distros/lyrical/rosdistro_additional_recipes.yaml +++ b/distros/lyrical/rosdistro_additional_recipes.yaml @@ -346,15 +346,15 @@ autoware_velocity_smoother: tag: release/humble/autoware_velocity_smoother/1.7.0-1 url: https://github.com/ros2-gbp/autoware_core-release.git version: 1.7.0 -beluga: +beluga: # Until: https://github.com/Ekumen-OS/beluga/issues/587 tag: release/jazzy/beluga/2.1.1-1 url: https://github.com/ros2-gbp/beluga-release.git version: 2.1.1 -beluga_amcl: +beluga_amcl: # Until: https://github.com/Ekumen-OS/beluga/issues/587 tag: release/jazzy/beluga_amcl/2.1.1-1 url: https://github.com/ros2-gbp/beluga-release.git version: 2.1.1 -beluga_ros: +beluga_ros: # Until: https://github.com/Ekumen-OS/beluga/issues/587 tag: release/jazzy/beluga_ros/2.1.1-1 url: https://github.com/ros2-gbp/beluga-release.git version: 2.1.1 From 48f881195aec27176d79f708a9c1e6edd12d8c79 Mon Sep 17 00:00:00 2001 From: Tim Clephas Date: Mon, 26 Oct 2026 10:44:30 +0100 Subject: [PATCH 3/3] Changes for c++20 --- distros/lyrical/ci.yaml | 3 ++- shared/patch/ros2-beluga.osx.patch | 7 +++++-- shared/patch/ros2-beluga.patch | 15 ++++++++++++++- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/distros/lyrical/ci.yaml b/distros/lyrical/ci.yaml index 63d3a18eb..ccea9e45b 100644 --- a/distros/lyrical/ci.yaml +++ b/distros/lyrical/ci.yaml @@ -23,4 +23,5 @@ full_rebuild: false # # Remember that dependents are not rebuilt automatically: evict them as well if # they must pick up the change. -evict_cache: [] +evict_cache: + - beluga # patch changed (result_of, _LIBCPP_DISABLE_AVAILABILITY) diff --git a/shared/patch/ros2-beluga.osx.patch b/shared/patch/ros2-beluga.osx.patch index fbba71b6a..30ac1f23b 100644 --- a/shared/patch/ros2-beluga.osx.patch +++ b/shared/patch/ros2-beluga.osx.patch @@ -1,14 +1,17 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index b94a7f1..cacf183 100644 +index b94a7f1..2d3f68d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -72,6 +72,9 @@ target_include_directories( +@@ -72,6 +72,12 @@ target_include_directories( "$") target_link_libraries(${PROJECT_NAME} INTERFACE ${_deps}) target_compile_features(${PROJECT_NAME} INTERFACE cxx_std_17) +# libc++ only has the execution policies with -fexperimental-library +target_compile_options(${PROJECT_NAME} INTERFACE $<$:-fexperimental-library>) +target_link_options(${PROJECT_NAME} INTERFACE $<$:-fexperimental-library>) ++# which in C++20 also brings in 's tzdb, unavailable for the system libc++; conda-forge's ++# libc++ is the one used at runtime ++target_compile_definitions(${PROJECT_NAME} INTERFACE $<$:_LIBCPP_DISABLE_AVAILABILITY>) target_compile_definitions(${PROJECT_NAME} INTERFACE EIGEN_NO_DEBUG SOPHUS_USE_BASIC_LOGGING) diff --git a/shared/patch/ros2-beluga.patch b/shared/patch/ros2-beluga.patch index 779429568..1a5008668 100644 --- a/shared/patch/ros2-beluga.patch +++ b/shared/patch/ros2-beluga.patch @@ -11,6 +11,19 @@ index 5c08a64..b94a7f1 100644 if(BUILD_TESTING) message(STATUS "Build testing enabled.") enable_testing() +diff --git a/include/beluga/algorithm/unscented_transform.hpp b/include/beluga/algorithm/unscented_transform.hpp +index c7ebd13..170738c 100644 +--- a/include/beluga/algorithm/unscented_transform.hpp ++++ b/include/beluga/algorithm/unscented_transform.hpp +@@ -80,7 +80,7 @@ template < + typename MeanDerived, + typename CovarianceDerived, + typename TransferFn, +- typename TransformedT = std::result_of_t, ++ typename TransformedT = std::invoke_result_t, + typename MeanFn = detail::default_weighted_mean_fn, + typename ResidualFn = std::minus> + auto unscented_transform( diff --git a/include/beluga/policies/on_motion.hpp b/include/beluga/policies/on_motion.hpp index 9d7ad43..5cb6d95 100644 --- a/include/beluga/policies/on_motion.hpp @@ -63,4 +76,4 @@ index 21d4d6f..35aff49 100644 + const H5::H5File file(path_to_hdf5_file.string(), H5F_ACC_RDONLY); const H5::DataSet means_dataset = file.openDataSet("means"); const H5::DataSet covariances_dataset = file.openDataSet("covariances"); - const H5::DataSet resolution_dataset = file.openDataSet("resolution"); \ No newline at end of file + const H5::DataSet resolution_dataset = file.openDataSet("resolution");