From 9289daa324bba58b711a5ec47f78a9f8ea7bd619 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Mazur?= Date: Mon, 14 Sep 2026 12:17:56 +0200 Subject: [PATCH 1/4] diagnostic_updtater windows crash fix --- patch/ros-rolling-diagnostic-updater.patch | 100 +++++++++++ pkg_additional_info.yaml | 4 +- vinca.yaml | 194 +-------------------- 3 files changed, 108 insertions(+), 190 deletions(-) create mode 100644 patch/ros-rolling-diagnostic-updater.patch diff --git a/patch/ros-rolling-diagnostic-updater.patch b/patch/ros-rolling-diagnostic-updater.patch new file mode 100644 index 00000000..b06b269b --- /dev/null +++ b/patch/ros-rolling-diagnostic-updater.patch @@ -0,0 +1,100 @@ +diff --git a/diagnostic_updater/CMakeLists.txt b/diagnostic_updater/CMakeLists.txt +index 46c2ecc..bdbb811 100644 +--- a/diagnostic_updater/CMakeLists.txt ++++ b/diagnostic_updater/CMakeLists.txt +@@ -9,7 +9,7 @@ endif() + if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wall -Wextra -Wpedantic) + endif() +-set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) ++# set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) + + find_package(ament_cmake REQUIRED) + find_package(ament_cmake_ros REQUIRED) +@@ -19,9 +19,10 @@ find_package(rclcpp REQUIRED) + find_package(rclpy REQUIRED) + find_package(std_msgs REQUIRED) + +-add_library(${PROJECT_NAME} ++add_library(${PROJECT_NAME} SHARED + src/diagnostic_updater.cpp + ) ++target_compile_definitions(${PROJECT_NAME} PRIVATE DIAGNOSTIC_UPDATER_BUILDING_DLL) + target_include_directories( + ${PROJECT_NAME} + PUBLIC +diff --git a/diagnostic_updater/include/diagnostic_updater/diagnostic_updater.hpp b/diagnostic_updater/include/diagnostic_updater/diagnostic_updater.hpp +index 517a704..e5b2ad4 100644 +--- a/diagnostic_updater/include/diagnostic_updater/diagnostic_updater.hpp ++++ b/diagnostic_updater/include/diagnostic_updater/diagnostic_updater.hpp +@@ -46,6 +46,7 @@ + #include "diagnostic_msgs/msg/diagnostic_array.hpp" + #include "diagnostic_msgs/msg/diagnostic_status.hpp" + ++#include "diagnostic_updater/visibility_control.hpp" + #include "diagnostic_updater/diagnostic_status_wrapper.hpp" + + #include "rcl/time.h" +@@ -353,7 +354,7 @@ protected: + * determined by the "~/diagnostic_updater.period" ros2 parameter. + * The force_update function can always be triggered async to the period interval. + */ +-class Updater : public DiagnosticTaskVector ++class DIAGNOSTIC_UPDATER_PUBLIC Updater : public DiagnosticTaskVector + { + public: + bool verbose_; +diff --git a/diagnostic_updater/include/diagnostic_updater/visibility_control.hpp b/diagnostic_updater/include/diagnostic_updater/visibility_control.hpp +new file mode 100644 +index 0000000..c1684f1 +--- /dev/null ++++ b/diagnostic_updater/include/diagnostic_updater/visibility_control.hpp +@@ -0,0 +1,28 @@ ++#ifndef DIAGNOSTIC_UPDATER__VISIBILITY_CONTROL_HPP_ ++#define DIAGNOSTIC_UPDATER__VISIBILITY_CONTROL_HPP_ ++ ++#if defined _WIN32 || defined __CYGWIN__ ++ #ifdef __GNUC__ ++ #define DIAGNOSTIC_UPDATER_EXPORT __attribute__ ((dllexport)) ++ #define DIAGNOSTIC_UPDATER_IMPORT __attribute__ ((dllimport)) ++ #else ++ #define DIAGNOSTIC_UPDATER_EXPORT __declspec(dllexport) ++ #define DIAGNOSTIC_UPDATER_IMPORT __declspec(dllimport) ++ #endif ++ #ifdef DIAGNOSTIC_UPDATER_BUILDING_DLL ++ #define DIAGNOSTIC_UPDATER_PUBLIC DIAGNOSTIC_UPDATER_EXPORT ++ #else ++ #define DIAGNOSTIC_UPDATER_PUBLIC DIAGNOSTIC_UPDATER_IMPORT ++ #endif ++ #define DIAGNOSTIC_UPDATER_PUBLIC_TYPE DIAGNOSTIC_UPDATER_PUBLIC ++ #define DIAGNOSTIC_UPDATER_LOCAL ++#else ++ #define DIAGNOSTIC_UPDATER_EXPORT __attribute__ ((visibility ("default"))) ++ #define DIAGNOSTIC_UPDATER_IMPORT ++ #define DIAGNOSTIC_UPDATER_PUBLIC __attribute__ ((visibility ("default"))) ++ #define DIAGNOSTIC_UPDATER_LOCAL __attribute__ ((visibility ("hidden"))) ++ #define DIAGNOSTIC_UPDATER_PUBLIC_TYPE ++#endif ++ ++#endif // DIAGNOSTIC_UPDATER__VISIBILITY_CONTROL_HPP_ ++ +diff --git a/diagnostic_updater/src/diagnostic_updater.cpp b/diagnostic_updater/src/diagnostic_updater.cpp +index 188aa31..78d59d1 100644 +--- a/diagnostic_updater/src/diagnostic_updater.cpp ++++ b/diagnostic_updater/src/diagnostic_updater.cpp +@@ -31,14 +31,13 @@ + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *********************************************************************/ +- + #include + + #include "rclcpp/rclcpp.hpp" + + namespace diagnostic_updater + { +-Updater::Updater( ++DIAGNOSTIC_UPDATER_PUBLIC Updater::Updater( + std::shared_ptr base_interface, + std::shared_ptr clock_interface, + std::shared_ptr logging_interface, \ No newline at end of file diff --git a/pkg_additional_info.yaml b/pkg_additional_info.yaml index 88bec679..38277302 100644 --- a/pkg_additional_info.yaml +++ b/pkg_additional_info.yaml @@ -17,6 +17,8 @@ compressed_depth_image_transport: additional_cmake_args: "-DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON" console_bridge_vendor: additional_cmake_args: "-DAMENT_VENDOR_POLICY=NEVER_VENDOR_IGNORE_SATISFIED_CHECK" +controller_manager: + build_number: 1 cyclonedds: generate_dummy_package_with_run_deps: dep_name: cyclonedds @@ -26,7 +28,7 @@ data_tamer_cpp: # Remove once https://github.com/PickNikRobotics/data_tamer/pul diagnostic_aggregator: additional_cmake_args: "-DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON" diagnostic_updater: - additional_cmake_args: "-DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON" + build_number: 1 eigenpy: generate_dummy_package_with_run_deps: dep_name: eigenpy diff --git a/vinca.yaml b/vinca.yaml index 02206144..cdcd5a37 100644 --- a/vinca.yaml +++ b/vinca.yaml @@ -46,196 +46,12 @@ skip_existing: - https://prefix.dev/robostack-rolling/ packages_select_by_deps: - - ackermann-msgs - - ament_cmake_black - - ament_cmake_catch2 - - ament_cmake_clang_tidy - - ament_cmake_core - - ament_cmake_mypy - - apriltag_detector - - asio_cmake_module - - autoware_cmake - - autoware_common_msgs - - autoware_component_interface_specs - - autoware_control_msgs - - autoware_geography_utils - - autoware_global_parameter_loader - - autoware_internal_msgs - - autoware_interpolation - - autoware_kalman_filter - - autoware_localization_msgs - - autoware_map_msgs - - autoware_node - - autoware_object_recognition_utils - - autoware_perception_msgs - - autoware_planning_msgs - - autoware_point_types - - autoware_sensing_msgs - - autoware_signal_processing - - autoware_system_msgs - - autoware_utils - - autoware_v2x_msgs - - autoware_vehicle_info_utils - - autoware_vehicle_msgs - - battery_state_broadcaster - - behaviortree_cpp - - better_launch - - bond_core - - bondcpp - - can_msgs - - data_tamer_cpp # Requested in https://github.com/RoboStack/ros-humble/issues/325 - - desktop - - desktop_full - - dev_tools - - diagnostic-remote-logging - - diagnostics - - flex_sync - - foxglove_bridge - - foxglove_msgs - - gripper_controllers - - gtsam - - gz_ros2_control - - gz_ros2_control_demos - - lanelet2 - - magic_enum - - moveit - - moveit-chomp-optimizer-adapter # Requested in https://www.linkedin.com/feed/update/urn:li:activity:7346559234177703938/ - - moveit-planners-chomp - - moveit-ros-control-interface - - moveit-ros-trajectory-cache - - moveit-servo - - moveit-visual-tools - - nav2_minimal_tb3_sim - - nav2_minimal_tb4_sim - - navigation2 - - nmea-navsat-driver - - perception - - point_cloud_transport_plugins - - polygon_msgs - - proxsuite - - py-trees - - py-trees-ros - - py-trees-ros-interfaces - - py-trees-ros-viewer - - rmw_zenoh_cpp # requested in https://github.com/RoboStack/ros-humble/issues/252 - - roboplan # requested in https://github.com/RoboStack/ros-rolling/issues/28 - - roboplan_cartesian_planning - - roboplan_example_models - - roboplan_examples - - roboplan_oink - - roboplan_ros_cpp - - roboplan_ros_examples - - roboplan_ros_py - - roboplan_ros_visualization - - roboplan_rrt - - roboplan_simple_ik - - roboplan_toppra - - robot - - robot-localization - - ros2_control - - ros2_controllers - - ros2_fmt_logger - - ros2_socketcan_msgs - - ros_base - - ros_environment - - ros_gz - - ros_workspace - - rosbridge_suite - - rosidl_buffer - - rosidl_buffer_backend - - rosidl_buffer_backend_registry - - rosidl_buffer_py - - rviz_visual_tools - - sbg_driver - - simulation - - slam_toolbox - - teleop - - toppra - - turtlebot3 - - twist_mux # requested in https://github.com/RoboStack/ros-humble/issues/249 - - ublox - - ur - - ur_client_library - - ur_simulation_gz - - # - web-video-server - - persist-parameter-server - - - - twist_stamper # Requested in https://github.com/RoboStack/ros-rolling/issues/12 - - - urdf_tutorial + - diagnostic_updater + - controller_manager - # These packages are only built on Linux as they depend on Linux-specific API - - if: linux - then: - - libcamera - - nobleo_socketcan_bridge # Depends on socketcan - - ros2_socketcan # Depends on socketcan - - rosgraph_monitor - - usb_cam # Depends on v4l - - # These packages are currently only build on Linux, - # as trying to build them in the past on macos or Windows resulted in errors - - if: linux - then: - - apriltag_ros # Depends on camera_ros - - camera_ros # Depends on libcamera that is only available on linux - - livox_ros_driver2 - - mavros # libmavconn currently fails to build on macOS and windows - - py_binding_tools - - swri_serial_util # Serial communication only implemented for linux - - v4l2_camera # Depends on v4l that is only available on linux - - # These packages are currently not build on Windows, but they be with some work - - if: not win - then: - - apriltag_detector_mit - - apriltag_detector_umich - - apriltag_draw - - apriltag_tools - - autoware_core - - autoware_core_control # depends on autoware_motion_utils - - autoware_core_localization # depends on autoware_ekf_localizer - - autoware_ekf_localizer # Windows error: error C2338: static_assert failed: 'First argument to logging macros must be an rclcpp::Logger' - - autoware_lanlet2_utils # Windows errors: C3546 (no parameter packs to expand), C2678 (no operator '|' for transform_view) - - autoware_motion_utils # Windows error: error C2765: 'function': an explicit specialization of a function template cannot have any default arguments - - autoware_osqp_interface - - autoware_pose_initializer # depends on autoware_motion_utils - - autoware_qp_interface - - autoware_trajectory # depends on autoware_motion_utils - - dual-laser-merger - - ffmpeg_image_transport # TODO on windows: fix iconv link issue - - foxglove_compressed_video_transport - - grid_map # rviz linking problems on Windows, see https://github.com/RoboStack/ros-jazzy/pull/79#issuecomment-2993499990 - - laser-segmentation - - libg2o - - mocap4r2_control - - mocap4r2_control_msgs - - mocap4r2_dummy_driver - - mocap4r2_marker_publisher - - mocap4r2_marker_viz - - mocap4r2_marker_viz_srvs - - mocap4r2_robot_gt - - mocap4r2_robot_gt_msgs - - moveit-hybrid-planning # Windows error: error C3861: '__builtin_unreachable': identifier not found - - moveit-py - - moveit-ros-occupancy-map-monitor - - moveit-ros-perception - - moveit-runtime - - odom_to_tf_ros2 - - ouster_ros # TODO on windows: cannot open pcl_io.lib - - pinocchio - - plotjuggler-ros - - pointcloud-to-laserscan - - rplidar_ros - - rqt_mocap4r2_control - - rqt_tf_tree - - rslidar_sdk - - rviz_satellite - - serial_driver - - swri_console # Until sync of: https://github.com/ros/rosdistro/pull/49750 - - velodyne +packages_to_generate: + - diagnostic_updater + - controller_manager patch_dir: patch rosdistro_snapshot: rosdistro_snapshot.yaml From 2580ff70497b80c9a387a853f2c6d560a11e173b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Mazur?= Date: Mon, 14 Sep 2026 14:15:29 +0200 Subject: [PATCH 2/4] restored org vinca.yaml --- pkg_additional_info.yaml | 5 +- vinca.yaml | 113 ++++++++++++++++++++++++++++++++++++++- 2 files changed, 113 insertions(+), 5 deletions(-) diff --git a/pkg_additional_info.yaml b/pkg_additional_info.yaml index 38277302..16d439e0 100644 --- a/pkg_additional_info.yaml +++ b/pkg_additional_info.yaml @@ -17,8 +17,6 @@ compressed_depth_image_transport: additional_cmake_args: "-DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON" console_bridge_vendor: additional_cmake_args: "-DAMENT_VENDOR_POLICY=NEVER_VENDOR_IGNORE_SATISFIED_CHECK" -controller_manager: - build_number: 1 cyclonedds: generate_dummy_package_with_run_deps: dep_name: cyclonedds @@ -28,7 +26,8 @@ data_tamer_cpp: # Remove once https://github.com/PickNikRobotics/data_tamer/pul diagnostic_aggregator: additional_cmake_args: "-DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON" diagnostic_updater: - build_number: 1 + additional_cmake_args: "-DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON" + build_number: 26 eigenpy: generate_dummy_package_with_run_deps: dep_name: eigenpy diff --git a/vinca.yaml b/vinca.yaml index cdcd5a37..75824683 100644 --- a/vinca.yaml +++ b/vinca.yaml @@ -46,8 +46,117 @@ skip_existing: - https://prefix.dev/robostack-rolling/ packages_select_by_deps: - - diagnostic_updater - - controller_manager + - ackermann-msgs + - ament_cmake_black + - ament_cmake_catch2 + - ament_cmake_clang_tidy + - ament_cmake_core + - ament_cmake_mypy + - apriltag_detector + - asio_cmake_module + - autoware_cmake + - autoware_common_msgs + - autoware_component_interface_specs + - autoware_control_msgs + - autoware_geography_utils + - autoware_global_parameter_loader + - autoware_internal_msgs + - autoware_interpolation + - autoware_kalman_filter + - autoware_localization_msgs + - autoware_map_msgs + - autoware_node + - autoware_object_recognition_utils + - autoware_perception_msgs + - autoware_planning_msgs + - autoware_point_types + - autoware_sensing_msgs + - autoware_signal_processing + - autoware_system_msgs + - autoware_utils + - autoware_v2x_msgs + - autoware_vehicle_info_utils + - autoware_vehicle_msgs + - battery_state_broadcaster + - behaviortree_cpp + - better_launch + - bond_core + - bondcpp + - can_msgs + - data_tamer_cpp # Requested in https://github.com/RoboStack/ros-humble/issues/325 + - desktop + - desktop_full + - dev_tools + - diagnostic-remote-logging + - diagnostics + - flex_sync + - foxglove_bridge + - foxglove_msgs + - gripper_controllers + - gtsam + - gz_ros2_control + - gz_ros2_control_demos + - lanelet2 + - magic_enum + - moveit + - moveit-chomp-optimizer-adapter # Requested in https://www.linkedin.com/feed/update/urn:li:activity:7346559234177703938/ + - moveit-planners-chomp + - moveit-ros-control-interface + - moveit-ros-trajectory-cache + - moveit-servo + - moveit-visual-tools + - nav2_minimal_tb3_sim + - nav2_minimal_tb4_sim + - navigation2 + - nmea-navsat-driver + - perception + - point_cloud_transport_plugins + - polygon_msgs + - proxsuite + - py-trees + - py-trees-ros + - py-trees-ros-interfaces + - py-trees-ros-viewer + - rmw_zenoh_cpp # requested in https://github.com/RoboStack/ros-humble/issues/252 + - roboplan # requested in https://github.com/RoboStack/ros-rolling/issues/28 + - roboplan_cartesian_planning + - roboplan_example_models + - roboplan_examples + - roboplan_oink + - roboplan_ros_cpp + - roboplan_ros_examples + - roboplan_ros_py + - roboplan_ros_visualization + - roboplan_rrt + - roboplan_simple_ik + - roboplan_toppra + - robot + - robot-localization + - ros2_control + - ros2_controllers + - ros2_fmt_logger + - ros2_socketcan_msgs + - ros_base + - ros_environment + - ros_gz + - ros_workspace + - rosbridge_suite + - rosidl_buffer + - rosidl_buffer_backend + - rosidl_buffer_backend_registry + - rosidl_buffer_py + - rviz_visual_tools + - sbg_driver + - simulation + - slam_toolbox + - teleop + - toppra + - turtlebot3 + - twist_mux # requested in https://github.com/RoboStack/ros-humble/issues/249 + - ublox + - ur + - ur_client_library + - ur_simulation_gz packages_to_generate: - diagnostic_updater From 380884fe21722d7234acac218e5330ecd5e8511b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Mazur?= Date: Mon, 14 Sep 2026 14:52:39 +0200 Subject: [PATCH 3/4] restored org vinca.yaml - finally ;) --- vinca.yaml | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 78 insertions(+), 3 deletions(-) diff --git a/vinca.yaml b/vinca.yaml index 75824683..02206144 100644 --- a/vinca.yaml +++ b/vinca.yaml @@ -158,9 +158,84 @@ packages_select_by_deps: - ur_client_library - ur_simulation_gz -packages_to_generate: - - diagnostic_updater - - controller_manager + # - web-video-server + - persist-parameter-server + + + - twist_stamper # Requested in https://github.com/RoboStack/ros-rolling/issues/12 + + - urdf_tutorial + + # These packages are only built on Linux as they depend on Linux-specific API + - if: linux + then: + - libcamera + - nobleo_socketcan_bridge # Depends on socketcan + - ros2_socketcan # Depends on socketcan + - rosgraph_monitor + - usb_cam # Depends on v4l + + # These packages are currently only build on Linux, + # as trying to build them in the past on macos or Windows resulted in errors + - if: linux + then: + - apriltag_ros # Depends on camera_ros + - camera_ros # Depends on libcamera that is only available on linux + - livox_ros_driver2 + - mavros # libmavconn currently fails to build on macOS and windows + - py_binding_tools + - swri_serial_util # Serial communication only implemented for linux + - v4l2_camera # Depends on v4l that is only available on linux + + # These packages are currently not build on Windows, but they be with some work + - if: not win + then: + - apriltag_detector_mit + - apriltag_detector_umich + - apriltag_draw + - apriltag_tools + - autoware_core + - autoware_core_control # depends on autoware_motion_utils + - autoware_core_localization # depends on autoware_ekf_localizer + - autoware_ekf_localizer # Windows error: error C2338: static_assert failed: 'First argument to logging macros must be an rclcpp::Logger' + - autoware_lanlet2_utils # Windows errors: C3546 (no parameter packs to expand), C2678 (no operator '|' for transform_view) + - autoware_motion_utils # Windows error: error C2765: 'function': an explicit specialization of a function template cannot have any default arguments + - autoware_osqp_interface + - autoware_pose_initializer # depends on autoware_motion_utils + - autoware_qp_interface + - autoware_trajectory # depends on autoware_motion_utils + - dual-laser-merger + - ffmpeg_image_transport # TODO on windows: fix iconv link issue + - foxglove_compressed_video_transport + - grid_map # rviz linking problems on Windows, see https://github.com/RoboStack/ros-jazzy/pull/79#issuecomment-2993499990 + - laser-segmentation + - libg2o + - mocap4r2_control + - mocap4r2_control_msgs + - mocap4r2_dummy_driver + - mocap4r2_marker_publisher + - mocap4r2_marker_viz + - mocap4r2_marker_viz_srvs + - mocap4r2_robot_gt + - mocap4r2_robot_gt_msgs + - moveit-hybrid-planning # Windows error: error C3861: '__builtin_unreachable': identifier not found + - moveit-py + - moveit-ros-occupancy-map-monitor + - moveit-ros-perception + - moveit-runtime + - odom_to_tf_ros2 + - ouster_ros # TODO on windows: cannot open pcl_io.lib + - pinocchio + - plotjuggler-ros + - pointcloud-to-laserscan + - rplidar_ros + - rqt_mocap4r2_control + - rqt_tf_tree + - rslidar_sdk + - rviz_satellite + - serial_driver + - swri_console # Until sync of: https://github.com/ros/rosdistro/pull/49750 + - velodyne patch_dir: patch rosdistro_snapshot: rosdistro_snapshot.yaml From 4f1ed6c7adf41f68d3aa4a0dc894828ba32551bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Mazur?= Date: Tue, 15 Sep 2026 15:48:44 +0200 Subject: [PATCH 4/4] pkg_additional_info.yaml sort fix --- pkg_additional_info.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg_additional_info.yaml b/pkg_additional_info.yaml index 16d439e0..d8f6da8c 100644 --- a/pkg_additional_info.yaml +++ b/pkg_additional_info.yaml @@ -25,9 +25,6 @@ data_tamer_cpp: # Remove once https://github.com/PickNikRobotics/data_tamer/pul additional_cmake_args: "-DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON" diagnostic_aggregator: additional_cmake_args: "-DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON" -diagnostic_updater: - additional_cmake_args: "-DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON" - build_number: 26 eigenpy: generate_dummy_package_with_run_deps: dep_name: eigenpy @@ -232,6 +229,9 @@ visp: override_version: '3.6.0' zenoh_cpp_vendor: additional_cmake_args: "-DAMENT_VENDOR_POLICY=NEVER_VENDOR_IGNORE_SATISFIED_CHECK -DUSE_SYSTEM_ZENOH=ON" +diagnostic_updater: + additional_cmake_args: "-DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON" + build_number: 26 ros2cli: build_number: 26 rosidl_cli: