diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b91e0faa..1fe517a9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,9 +6,18 @@ on: ci_target_ref: required: true type: string + workflow_dispatch: + inputs: + name: + description: "Manual trigger" env: ROS_DISTRO: rolling + # Pinned to avoid a flaky api.github.com lookup for the latest release + # Keep it updated with the latest version from + # https://github.com/ros-infrastructure/ros-apt-source/releases + # (an outdated version stops working when the ROS repository key changes) + ROS_APT_SOURCE_VERSION: 1.3.0 jobs: @@ -24,6 +33,14 @@ jobs: path: src/micro_ros_setup ref: ${{ inputs.ci_target_ref }} + # Installing the ROS apt source beforehand makes setup-ros skip its + # api.github.com lookup, which is often rate-limited on shared runners + - name: Install ROS apt source + run: | + apt-get update && apt-get install -y ca-certificates curl + curl -fL -o /tmp/ros2-apt-source.deb https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-testing-apt-source_${ROS_APT_SOURCE_VERSION}.resolute_all.deb + apt-get install -y /tmp/ros2-apt-source.deb + - uses: ros-tooling/setup-ros@0.7.19 with: # Rolling binaries for Ubuntu Resolute are only published to the @@ -74,6 +91,14 @@ jobs: path: src/micro_ros_setup ref: ${{ inputs.ci_target_ref }} + # Installing the ROS apt source beforehand makes setup-ros skip its + # api.github.com lookup, which is often rate-limited on shared runners + - name: Install ROS apt source + run: | + apt-get update && apt-get install -y ca-certificates curl + curl -fL -o /tmp/ros2-apt-source.deb https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-testing-apt-source_${ROS_APT_SOURCE_VERSION}.resolute_all.deb + apt-get install -y /tmp/ros2-apt-source.deb + - uses: ros-tooling/setup-ros@0.7.19 with: # Rolling binaries for Ubuntu Resolute are only published to the @@ -227,6 +252,14 @@ jobs: path: src/micro_ros_setup ref: ${{ inputs.ci_target_ref }} + # Installing the ROS apt source beforehand makes setup-ros skip its + # api.github.com lookup, which is often rate-limited on shared runners + - name: Install ROS apt source + run: | + apt-get update && apt-get install -y ca-certificates curl + curl -fL -o /tmp/ros2-apt-source.deb https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-testing-apt-source_${ROS_APT_SOURCE_VERSION}.resolute_all.deb + apt-get install -y /tmp/ros2-apt-source.deb + - uses: ros-tooling/setup-ros@0.7.19 with: # Rolling binaries for Ubuntu Resolute are only published to the diff --git a/config/android/generic/create.sh b/config/android/generic/create.sh index 460ca3dd..f5268715 100755 --- a/config/android/generic/create.sh +++ b/config/android/generic/create.sh @@ -3,11 +3,19 @@ pushd $FW_TARGETDIR >/dev/null # ignore broken packages touch mcu_ws/ros2/rcl_logging/rcl_logging_log4cxx/COLCON_IGNORE touch mcu_ws/ros2/rcl_logging/rcl_logging_spdlog/COLCON_IGNORE + touch mcu_ws/ros2/rcl_logging/rcl_logging_implementation/COLCON_IGNORE touch mcu_ws/ros2/rcl/COLCON_IGNORE touch mcu_ws/ros2_tracing/test_tracetools/COLCON_IGNORE touch mcu_ws/ros2/rosidl/rosidl_typesupport_introspection_cpp/COLCON_IGNORE touch mcu_ws/uros/rcl/rcl_yaml_param_parser/COLCON_IGNORE touch mcu_ws/uros/rclc/rclc_examples/COLCON_IGNORE touch mcu_ws/ros2/ros2_tracing/lttngpy/COLCON_IGNORE + # TEMPORARY: rosidl_buffer_py does not exist at the pinned ros2/rosidl commit + # touch mcu_ws/ros2/rosidl/rosidl_buffer_py/COLCON_IGNORE + # TEMPORARY: nothing requires these at the pinned ros2/rosidl commit, and they are + # C++ with exceptions, so they cannot build here + touch mcu_ws/ros2/rosidl/rosidl_buffer/COLCON_IGNORE + touch mcu_ws/ros2/rosidl/rosidl_buffer_backend/COLCON_IGNORE + touch mcu_ws/ros2/rosidl/rosidl_buffer_backend_registry/COLCON_IGNORE popd >/dev/null diff --git a/config/freertos/crazyflie21/create.sh b/config/freertos/crazyflie21/create.sh index 9c78ddb8..64e58a4d 100755 --- a/config/freertos/crazyflie21/create.sh +++ b/config/freertos/crazyflie21/create.sh @@ -13,6 +13,7 @@ pushd $FW_TARGETDIR >/dev/null # ignore broken packages touch mcu_ws/ros2/rcl_logging/rcl_logging_spdlog/COLCON_IGNORE + touch mcu_ws/ros2/rcl_logging/rcl_logging_implementation/COLCON_IGNORE touch mcu_ws/ros2/rcl/COLCON_IGNORE touch mcu_ws/ros2/rosidl/rosidl_typesupport_introspection_cpp/COLCON_IGNORE touch mcu_ws/ros2/rcpputils/COLCON_IGNORE @@ -20,5 +21,12 @@ pushd $FW_TARGETDIR >/dev/null touch mcu_ws/uros/rcl/rcl_yaml_param_parser/COLCON_IGNORE touch mcu_ws/uros/rclc/rclc_examples/COLCON_IGNORE touch mcu_ws/ros2/ros2_tracing/lttngpy/COLCON_IGNORE + # TEMPORARY: rosidl_buffer_py does not exist at the pinned ros2/rosidl commit + # touch mcu_ws/ros2/rosidl/rosidl_buffer_py/COLCON_IGNORE + # TEMPORARY: nothing requires these at the pinned ros2/rosidl commit, and they are + # C++ with exceptions, so they cannot build here + touch mcu_ws/ros2/rosidl/rosidl_buffer/COLCON_IGNORE + touch mcu_ws/ros2/rosidl/rosidl_buffer_backend/COLCON_IGNORE + touch mcu_ws/ros2/rosidl/rosidl_buffer_backend_registry/COLCON_IGNORE popd >/dev/null \ No newline at end of file diff --git a/config/freertos/esp32/build.sh b/config/freertos/esp32/build.sh index 3325c457..4f8867fd 100755 --- a/config/freertos/esp32/build.sh +++ b/config/freertos/esp32/build.sh @@ -8,6 +8,11 @@ source $FW_TARGETDIR/venv/bin/activate export IDF_TOOLS_PATH=$FW_TARGETDIR/toolchain/espressif export IDF_PATH=$FW_TARGETDIR/toolchain/esp-idf +# ESP-IDF v4.1 vendors third-party trees (mbedtls) whose cmake_minimum_required +# predates 3.5, which CMake 4 rejects outright. Restore the old floor until the +# pinned ESP-IDF is bumped. +export CMAKE_POLICY_VERSION_MINIMUM=3.5 + eval $(python3 $FW_TARGETDIR/toolchain/esp-idf/tools/idf_tools.py export --prefer-system) . $IDF_PATH/export.sh diff --git a/config/freertos/esp32/configure.sh b/config/freertos/esp32/configure.sh index b1d5dd62..6d55a3e9 100755 --- a/config/freertos/esp32/configure.sh +++ b/config/freertos/esp32/configure.sh @@ -57,6 +57,11 @@ UROS_APP_FOLDER="$FW_TARGETDIR/freertos_apps/apps/$UROS_APP" export IDF_TOOLS_PATH=$FW_TARGETDIR/toolchain/espressif export IDF_PATH=$FW_TARGETDIR/toolchain/esp-idf +# ESP-IDF v4.1 vendors third-party trees (mbedtls) whose cmake_minimum_required +# predates 3.5, which CMake 4 rejects outright. Restore the old floor until the +# pinned ESP-IDF is bumped. +export CMAKE_POLICY_VERSION_MINIMUM=3.5 + eval $(python3 $FW_TARGETDIR/toolchain/esp-idf/tools/idf_tools.py export --prefer-system) . $IDF_PATH/export.sh diff --git a/config/freertos/esp32/create.sh b/config/freertos/esp32/create.sh index 06d60a59..eb58219c 100755 --- a/config/freertos/esp32/create.sh +++ b/config/freertos/esp32/create.sh @@ -47,6 +47,7 @@ pushd $FW_TARGETDIR >/dev/null # ignore broken packages touch mcu_ws/ros2/rcl_logging/rcl_logging_spdlog/COLCON_IGNORE + touch mcu_ws/ros2/rcl_logging/rcl_logging_implementation/COLCON_IGNORE touch mcu_ws/ros2/rcl/COLCON_IGNORE touch mcu_ws/ros2/rosidl/rosidl_typesupport_introspection_cpp/COLCON_IGNORE touch mcu_ws/ros2/rcpputils/COLCON_IGNORE @@ -54,5 +55,12 @@ pushd $FW_TARGETDIR >/dev/null touch mcu_ws/uros/rcl/rcl_yaml_param_parser/COLCON_IGNORE touch mcu_ws/uros/rclc/rclc_examples/COLCON_IGNORE touch mcu_ws/ros2/ros2_tracing/lttngpy/COLCON_IGNORE + # TEMPORARY: rosidl_buffer_py does not exist at the pinned ros2/rosidl commit + # touch mcu_ws/ros2/rosidl/rosidl_buffer_py/COLCON_IGNORE + # TEMPORARY: nothing requires these at the pinned ros2/rosidl commit, and they are + # C++ with exceptions, so they cannot build here + touch mcu_ws/ros2/rosidl/rosidl_buffer/COLCON_IGNORE + touch mcu_ws/ros2/rosidl/rosidl_buffer_backend/COLCON_IGNORE + touch mcu_ws/ros2/rosidl/rosidl_buffer_backend_registry/COLCON_IGNORE popd >/dev/null diff --git a/config/freertos/nucleo_f446re/create.sh b/config/freertos/nucleo_f446re/create.sh index 7b4b4b74..6ae917d8 100755 --- a/config/freertos/nucleo_f446re/create.sh +++ b/config/freertos/nucleo_f446re/create.sh @@ -14,6 +14,7 @@ pushd $FW_TARGETDIR >/dev/null # ignore broken packages touch mcu_ws/ros2/rcl_logging/rcl_logging_spdlog/COLCON_IGNORE + touch mcu_ws/ros2/rcl_logging/rcl_logging_implementation/COLCON_IGNORE touch mcu_ws/ros2/rcl/COLCON_IGNORE touch mcu_ws/ros2/rosidl/rosidl_typesupport_introspection_cpp/COLCON_IGNORE touch mcu_ws/ros2/rcpputils/COLCON_IGNORE @@ -21,5 +22,12 @@ pushd $FW_TARGETDIR >/dev/null touch mcu_ws/uros/rcl/rcl_yaml_param_parser/COLCON_IGNORE touch mcu_ws/uros/rclc/rclc_examples/COLCON_IGNORE touch mcu_ws/ros2/ros2_tracing/lttngpy/COLCON_IGNORE + # TEMPORARY: rosidl_buffer_py does not exist at the pinned ros2/rosidl commit + # touch mcu_ws/ros2/rosidl/rosidl_buffer_py/COLCON_IGNORE + # TEMPORARY: nothing requires these at the pinned ros2/rosidl commit, and they are + # C++ with exceptions, so they cannot build here + touch mcu_ws/ros2/rosidl/rosidl_buffer/COLCON_IGNORE + touch mcu_ws/ros2/rosidl/rosidl_buffer_backend/COLCON_IGNORE + touch mcu_ws/ros2/rosidl/rosidl_buffer_backend_registry/COLCON_IGNORE popd >/dev/null diff --git a/config/freertos/nucleo_f446ze/create.sh b/config/freertos/nucleo_f446ze/create.sh index 1e4ba43e..c3c2dbeb 100755 --- a/config/freertos/nucleo_f446ze/create.sh +++ b/config/freertos/nucleo_f446ze/create.sh @@ -14,6 +14,7 @@ pushd $FW_TARGETDIR >/dev/null # ignore broken packages touch mcu_ws/ros2/rcl_logging/rcl_logging_spdlog/COLCON_IGNORE + touch mcu_ws/ros2/rcl_logging/rcl_logging_implementation/COLCON_IGNORE touch mcu_ws/ros2/rcl/COLCON_IGNORE touch mcu_ws/ros2/rosidl/rosidl_typesupport_introspection_cpp/COLCON_IGNORE touch mcu_ws/ros2/rcpputils/COLCON_IGNORE @@ -21,5 +22,12 @@ pushd $FW_TARGETDIR >/dev/null touch mcu_ws/uros/rcl/rcl_yaml_param_parser/COLCON_IGNORE touch mcu_ws/uros/rclc/rclc_examples/COLCON_IGNORE touch mcu_ws/ros2/ros2_tracing/lttngpy/COLCON_IGNORE + # TEMPORARY: rosidl_buffer_py does not exist at the pinned ros2/rosidl commit + # touch mcu_ws/ros2/rosidl/rosidl_buffer_py/COLCON_IGNORE + # TEMPORARY: nothing requires these at the pinned ros2/rosidl commit, and they are + # C++ with exceptions, so they cannot build here + touch mcu_ws/ros2/rosidl/rosidl_buffer/COLCON_IGNORE + touch mcu_ws/ros2/rosidl/rosidl_buffer_backend/COLCON_IGNORE + touch mcu_ws/ros2/rosidl/rosidl_buffer_backend_registry/COLCON_IGNORE popd >/dev/null \ No newline at end of file diff --git a/config/freertos/nucleo_f746zg/create.sh b/config/freertos/nucleo_f746zg/create.sh index 1e4ba43e..c3c2dbeb 100755 --- a/config/freertos/nucleo_f746zg/create.sh +++ b/config/freertos/nucleo_f746zg/create.sh @@ -14,6 +14,7 @@ pushd $FW_TARGETDIR >/dev/null # ignore broken packages touch mcu_ws/ros2/rcl_logging/rcl_logging_spdlog/COLCON_IGNORE + touch mcu_ws/ros2/rcl_logging/rcl_logging_implementation/COLCON_IGNORE touch mcu_ws/ros2/rcl/COLCON_IGNORE touch mcu_ws/ros2/rosidl/rosidl_typesupport_introspection_cpp/COLCON_IGNORE touch mcu_ws/ros2/rcpputils/COLCON_IGNORE @@ -21,5 +22,12 @@ pushd $FW_TARGETDIR >/dev/null touch mcu_ws/uros/rcl/rcl_yaml_param_parser/COLCON_IGNORE touch mcu_ws/uros/rclc/rclc_examples/COLCON_IGNORE touch mcu_ws/ros2/ros2_tracing/lttngpy/COLCON_IGNORE + # TEMPORARY: rosidl_buffer_py does not exist at the pinned ros2/rosidl commit + # touch mcu_ws/ros2/rosidl/rosidl_buffer_py/COLCON_IGNORE + # TEMPORARY: nothing requires these at the pinned ros2/rosidl commit, and they are + # C++ with exceptions, so they cannot build here + touch mcu_ws/ros2/rosidl/rosidl_buffer/COLCON_IGNORE + touch mcu_ws/ros2/rosidl/rosidl_buffer_backend/COLCON_IGNORE + touch mcu_ws/ros2/rosidl/rosidl_buffer_backend_registry/COLCON_IGNORE popd >/dev/null \ No newline at end of file diff --git a/config/freertos/nucleo_f767zi/create.sh b/config/freertos/nucleo_f767zi/create.sh index 1e4ba43e..c3c2dbeb 100755 --- a/config/freertos/nucleo_f767zi/create.sh +++ b/config/freertos/nucleo_f767zi/create.sh @@ -14,6 +14,7 @@ pushd $FW_TARGETDIR >/dev/null # ignore broken packages touch mcu_ws/ros2/rcl_logging/rcl_logging_spdlog/COLCON_IGNORE + touch mcu_ws/ros2/rcl_logging/rcl_logging_implementation/COLCON_IGNORE touch mcu_ws/ros2/rcl/COLCON_IGNORE touch mcu_ws/ros2/rosidl/rosidl_typesupport_introspection_cpp/COLCON_IGNORE touch mcu_ws/ros2/rcpputils/COLCON_IGNORE @@ -21,5 +22,12 @@ pushd $FW_TARGETDIR >/dev/null touch mcu_ws/uros/rcl/rcl_yaml_param_parser/COLCON_IGNORE touch mcu_ws/uros/rclc/rclc_examples/COLCON_IGNORE touch mcu_ws/ros2/ros2_tracing/lttngpy/COLCON_IGNORE + # TEMPORARY: rosidl_buffer_py does not exist at the pinned ros2/rosidl commit + # touch mcu_ws/ros2/rosidl/rosidl_buffer_py/COLCON_IGNORE + # TEMPORARY: nothing requires these at the pinned ros2/rosidl commit, and they are + # C++ with exceptions, so they cannot build here + touch mcu_ws/ros2/rosidl/rosidl_buffer/COLCON_IGNORE + touch mcu_ws/ros2/rosidl/rosidl_buffer_backend/COLCON_IGNORE + touch mcu_ws/ros2/rosidl/rosidl_buffer_backend_registry/COLCON_IGNORE popd >/dev/null \ No newline at end of file diff --git a/config/freertos/olimex-stm32-e407/create.sh b/config/freertos/olimex-stm32-e407/create.sh index 1331c351..2b11241b 100755 --- a/config/freertos/olimex-stm32-e407/create.sh +++ b/config/freertos/olimex-stm32-e407/create.sh @@ -14,6 +14,7 @@ pushd $FW_TARGETDIR >/dev/null # ignore broken packages touch mcu_ws/ros2/rcl_logging/rcl_logging_spdlog/COLCON_IGNORE + touch mcu_ws/ros2/rcl_logging/rcl_logging_implementation/COLCON_IGNORE touch mcu_ws/ros2/rcl/COLCON_IGNORE touch mcu_ws/ros2/rosidl/rosidl_typesupport_introspection_cpp/COLCON_IGNORE touch mcu_ws/ros2/rcpputils/COLCON_IGNORE @@ -21,6 +22,13 @@ pushd $FW_TARGETDIR >/dev/null touch mcu_ws/uros/rcl/rcl_yaml_param_parser/COLCON_IGNORE touch mcu_ws/uros/rclc/rclc_examples/COLCON_IGNORE touch mcu_ws/ros2/ros2_tracing/lttngpy/COLCON_IGNORE + # TEMPORARY: rosidl_buffer_py does not exist at the pinned ros2/rosidl commit + # touch mcu_ws/ros2/rosidl/rosidl_buffer_py/COLCON_IGNORE + # TEMPORARY: nothing requires these at the pinned ros2/rosidl commit, and they are + # C++ with exceptions, so they cannot build here + touch mcu_ws/ros2/rosidl/rosidl_buffer/COLCON_IGNORE + touch mcu_ws/ros2/rosidl/rosidl_buffer_backend/COLCON_IGNORE + touch mcu_ws/ros2/rosidl/rosidl_buffer_backend_registry/COLCON_IGNORE touch mcu_ws/ros2/rmw/rmw_security_common/COLCON_IGNORE popd >/dev/null \ No newline at end of file diff --git a/config/generate_lib/generic/create.sh b/config/generate_lib/generic/create.sh index ec90323b..69be40db 100755 --- a/config/generate_lib/generic/create.sh +++ b/config/generate_lib/generic/create.sh @@ -2,6 +2,7 @@ pushd $FW_TARGETDIR >/dev/null # ignore broken packages touch mcu_ws/ros2/rcl_logging/rcl_logging_spdlog/COLCON_IGNORE + touch mcu_ws/ros2/rcl_logging/rcl_logging_implementation/COLCON_IGNORE touch mcu_ws/ros2/rcl/COLCON_IGNORE touch mcu_ws/ros2/rosidl/rosidl_typesupport_introspection_cpp/COLCON_IGNORE touch mcu_ws/ros2/rcpputils/COLCON_IGNORE @@ -9,6 +10,13 @@ pushd $FW_TARGETDIR >/dev/null touch mcu_ws/uros/rcl/rcl_yaml_param_parser/COLCON_IGNORE touch mcu_ws/uros/rclc/rclc_examples/COLCON_IGNORE touch mcu_ws/ros2/ros2_tracing/lttngpy/COLCON_IGNORE + # TEMPORARY: rosidl_buffer_py does not exist at the pinned ros2/rosidl commit + # touch mcu_ws/ros2/rosidl/rosidl_buffer_py/COLCON_IGNORE + # TEMPORARY: nothing requires these at the pinned ros2/rosidl commit, and they are + # C++ with exceptions, so they cannot build here + touch mcu_ws/ros2/rosidl/rosidl_buffer/COLCON_IGNORE + touch mcu_ws/ros2/rosidl/rosidl_buffer_backend/COLCON_IGNORE + touch mcu_ws/ros2/rosidl/rosidl_buffer_backend_registry/COLCON_IGNORE touch mcu_ws/ros2/rmw/rmw_security_common/COLCON_IGNORE popd >/dev/null diff --git a/config/raspbian/generic/configure.sh b/config/raspbian/generic/configure.sh index 002c29f7..24518f73 100755 --- a/config/raspbian/generic/configure.sh +++ b/config/raspbian/generic/configure.sh @@ -8,9 +8,22 @@ pushd $FW_TARGETDIR >/dev/null ros2 run micro_ros_setup yaml_filter.py raspbian_apps/$CONFIG_NAME/ros2_repos.filter > ros2.repos vcs import --input ros2.repos mcu_ws/ && rm ros2.repos + # TEMPORARY: pin ros2/rosidl to the last commit before ros2/rosidl#942, which made + # rosidl_runtime_c (C) depend on rosidl_buffer (C++, throws std::runtime_error) + if [ -d mcu_ws/ros2/rosidl ]; then + git -C mcu_ws/ros2/rosidl reset --hard 5f4ace0288ecf942307ed62b9239ab5986884676 + fi + if [ -d mcu_ws/ros2/rosidl ]; then touch mcu_ws/ros2/rosidl/rosidl_typesupport_introspection_c/COLCON_IGNORE touch mcu_ws/ros2/rosidl/rosidl_typesupport_introspection_cpp/COLCON_IGNORE + # TEMPORARY: rosidl_buffer_py does not exist at the pinned ros2/rosidl commit + # touch mcu_ws/ros2/rosidl/rosidl_buffer_py/COLCON_IGNORE + # TEMPORARY: nothing requires these at the pinned ros2/rosidl commit, and they are + # C++ with exceptions, so they cannot build here + touch mcu_ws/ros2/rosidl/rosidl_buffer/COLCON_IGNORE + touch mcu_ws/ros2/rosidl/rosidl_buffer_backend/COLCON_IGNORE + touch mcu_ws/ros2/rosidl/rosidl_buffer_backend_registry/COLCON_IGNORE fi vcs import --input raspbian_apps/$CONFIG_NAME/app.repos mcu_ws/ diff --git a/config/zephyr/generic/build.sh b/config/zephyr/generic/build.sh index 41bc9d12..ca8e4f01 100755 --- a/config/zephyr/generic/build.sh +++ b/config/zephyr/generic/build.sh @@ -9,6 +9,11 @@ pushd $FW_TARGETDIR >/dev/null export ZEPHYR_SDK_INSTALL_DIR=$FW_TARGETDIR/zephyr-sdk export PATH=~/.local/bin:"$PATH" + # Zephyr v2.6.0 vendors third-party modules (civetweb) whose + # cmake_minimum_required predates 3.5, which CMake 4 rejects outright. + # Restore the old floor until the pinned Zephyr is bumped. + export CMAKE_POLICY_VERSION_MINIMUM=3.5 + # Retrieve user app unset UROS_APP diff --git a/config/zephyr/generic/create.sh b/config/zephyr/generic/create.sh index 0d4ef02b..a05b22d5 100755 --- a/config/zephyr/generic/create.sh +++ b/config/zephyr/generic/create.sh @@ -70,6 +70,7 @@ pushd $FW_TARGETDIR >/dev/null # ignore broken packages touch mcu_ws/ros2/rcl_logging/rcl_logging_spdlog/COLCON_IGNORE + touch mcu_ws/ros2/rcl_logging/rcl_logging_implementation/COLCON_IGNORE touch mcu_ws/ros2/rcl/COLCON_IGNORE touch mcu_ws/ros2/rosidl/rosidl_typesupport_introspection_cpp/COLCON_IGNORE touch mcu_ws/ros2/rcpputils/COLCON_IGNORE @@ -77,6 +78,13 @@ pushd $FW_TARGETDIR >/dev/null touch mcu_ws/uros/rcl/rcl_yaml_param_parser/COLCON_IGNORE touch mcu_ws/uros/rclc/rclc_examples/COLCON_IGNORE touch mcu_ws/ros2/ros2_tracing/lttngpy/COLCON_IGNORE + # TEMPORARY: rosidl_buffer_py does not exist at the pinned ros2/rosidl commit + # touch mcu_ws/ros2/rosidl/rosidl_buffer_py/COLCON_IGNORE + # TEMPORARY: nothing requires these at the pinned ros2/rosidl commit, and they are + # C++ with exceptions, so they cannot build here + touch mcu_ws/ros2/rosidl/rosidl_buffer/COLCON_IGNORE + touch mcu_ws/ros2/rosidl/rosidl_buffer_backend/COLCON_IGNORE + touch mcu_ws/ros2/rosidl/rosidl_buffer_backend_registry/COLCON_IGNORE # Upgrade sphinx pip install --force-reinstall docutils==0.16 Sphinx==4.2.0 diff --git a/scripts/create_firmware_ws.sh b/scripts/create_firmware_ws.sh index a2beb6bc..9f2706fd 100755 --- a/scripts/create_firmware_ws.sh +++ b/scripts/create_firmware_ws.sh @@ -95,6 +95,12 @@ pushd $FW_TARGETDIR >/dev/null mkdir mcu_ws ros2 run micro_ros_setup create_ws.sh mcu_ws $PREFIX/config/client_ros2_packages.txt $PREFIX/config/$RTOS/$TARGET_FOLDER/client_uros_packages.repos cp $PREFIX/config/$RTOS/$TARGET_FOLDER/client-colcon.meta mcu_ws/colcon.meta || : + + # TEMPORARY: pin ros2/rosidl to the last commit before ros2/rosidl#942, which made + # rosidl_runtime_c (C) depend on rosidl_buffer (C++, throws std::runtime_error) + if [ -d mcu_ws/ros2/rosidl ]; then + git -C mcu_ws/ros2/rosidl reset --hard 5f4ace0288ecf942307ed62b9239ab5986884676 + fi fi popd >/dev/null