Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No 'rosidl_typesupport_c' found on AlmaLinux 8 #162

Open
christianrauch opened this issue Dec 30, 2024 · 6 comments
Open

No 'rosidl_typesupport_c' found on AlmaLinux 8 #162

christianrauch opened this issue Dec 30, 2024 · 6 comments
Assignees
Labels
bug Something isn't working

Comments

@christianrauch
Copy link

christianrauch commented Dec 30, 2024

Building any minimal node (e.g. examples_rclcpp_minimal_publisher) on AlmaLinux 8 fails with No 'rosidl_typesupport_c' found, even though package ros-humble-rosidl-typesupport-c is installed.

Bug report

Required Info:

  • Operating System:
    • AlmaLinux 8
  • Installation type:
    • binaries
  • Version or commit hash:
    • 2.0.2
  • DDS implementation:
  • Client library (if applicable):
    • rclcpp

Steps to reproduce issue

Use the following GitHub CI pipeline (https://github.com/christianrauch/action-ros-ci-almalinux-test/tree/minimal):

name: CI

on:
  push:
    branches: [ "main" ]

jobs:
  build:
    name: "AlmaLinux 8 / humble"
    runs-on: ubuntu-latest
    container:
      image: almalinux:8

    steps:
      - uses: ros-tooling/[email protected]

      - name: generate repos file
        run: |
          cat << EOF > sources.repos
          repositories:
            src/examples:
              type: git
              url: https://github.com/ros2/examples.git
              version: humble
          EOF

      - uses: ros-tooling/[email protected]
        with:
          package-name: examples_rclcpp_minimal_publisher
          target-ros2-distro: humble
          vcs-repo-file-url: sources.repos

Expected behavior

examples_rclcpp_minimal_publisher should compile without issues.

Actual behavior

The build fails with No 'rosidl_typesupport_c' found:

Starting >>> examples_rclcpp_minimal_publisher
--- output: examples_rclcpp_minimal_publisher
-- The C compiler identification is GNU 8.5.0
-- The CXX compiler identification is GNU 8.5.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found ament_cmake: 1.3.11 (/opt/ros/humble/share/ament_cmake/cmake)
-- Found Python3: /usr/bin/python3 (found version "3.6.8") found components: Interpreter 
-- Override CMake install command with custom implementation using symlinks instead of copying resources
-- Found rclcpp: 16.0.11 (/opt/ros/humble/share/rclcpp/cmake)
-- Found rosidl_generator_c: 3.1.6 (/opt/ros/humble/share/rosidl_generator_c/cmake)
-- Found rosidl_adapter: 3.1.6 (/opt/ros/humble/share/rosidl_adapter/cmake)
-- Found rosidl_generator_cpp: 3.1.6 (/opt/ros/humble/share/rosidl_generator_cpp/cmake)
CMake Error at /opt/ros/humble/share/rosidl_typesupport_c/cmake/get_used_typesupports.cmake:35 (message):
  No 'rosidl_typesupport_c' found
Call Stack (most recent call first):
  /opt/ros/humble/share/rosidl_typesupport_c/cmake/rosidl_typesupport_c-extras.cmake:8 (get_used_typesupports)
  /opt/ros/humble/share/rosidl_typesupport_c/cmake/rosidl_typesupport_cConfig.cmake:41 (include)
  /opt/ros/humble/share/builtin_interfaces/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
  /opt/ros/humble/share/builtin_interfaces/cmake/builtin_interfacesConfig.cmake:41 (include)
  /opt/ros/humble/share/libstatistics_collector/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
  /opt/ros/humble/share/libstatistics_collector/cmake/libstatistics_collectorConfig.cmake:41 (include)
  /opt/ros/humble/share/rclcpp/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
  /opt/ros/humble/share/rclcpp/cmake/rclcppConfig.cmake:41 (include)
  CMakeLists.txt:14 (find_package)

See full log: logs_32542829113.zip

@clalancette
Copy link
Contributor

For what it is worth, compiling the examples on a local Almalinux8 container works just fine.

@christianrauch
Copy link
Author

Can you reproduce this via the CI pipeline? This should be pretty deterministic with the Docker image.

@christophebedard christophebedard added the more-information-needed Further information is required label Jan 9, 2025
@christophebedard
Copy link
Member

christophebedard commented Jan 10, 2025

Have you tried getting setup-ros to install the ROS 2 Humble binaries (instead of having action-ros-ci install them through rosdep install) by setting required-ros-distributions: humble?

@christianrauch
Copy link
Author

Have you tried getting setup-ros to install the ROS 2 Humble binaries (instead of having action-ros-ci install them through rosdep install) by setting required-ros-distributions: humble?

Same effect. I also manually install some packages with dnf -y install ros-humble-ros-base with the same No 'rosidl_typesupport_c' found outcome.

Can you reproduce my findings with the CI pipeline above? I am running these tests in the repo https://github.com/christianrauch/action-ros-ci-almalinux-test. Feel free to fork this and try this out.

The same error was also reported in #129. So this is not only related to the ros-tooling/action-ros-ci action. It just happens to trigger the issue reliably.

@christophebedard
Copy link
Member

christophebedard commented Jan 13, 2025

I've been able to fork your repo and reproduce the issue. Thank you, that is helpful. You might want to include a link to that repo in the issue description.

I started looking into how ament looks up rosidl_typesupport_c in the ament index and what might be missing, but I don't have that much time to try and dig deep into it myself.

@christophebedard christophebedard added help wanted Extra attention is needed and removed more-information-needed Further information is required labels Jan 13, 2025
@cottsay
Copy link
Member

cottsay commented Jan 14, 2025

Hey, I got a bit nerd sniped on this one, but I was able to figure out what's going on. It's an absolute doozy of a bug in colcon-core. The problem revolves around GitHub Actions using hyphens in some environment variables even though they (supposedly) aren't supported by sh. I can reproduce similar bugs in Ubuntu as well, it was a bit of a perfect storm that caused this specific behavior on AlmaLinux 8.

More details to come, but I wanted to give you guys a heads-up so that we don't duplicate effort.

@cottsay cottsay added bug Something isn't working and removed help wanted Extra attention is needed labels Jan 14, 2025
@cottsay cottsay self-assigned this Jan 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants