ros-tooling / cross_compile

A tool to build ROS and ROS2 workspaces for various targets
Apache License 2.0
187 stars 59 forks source link

Cannot find catkin package #364

Open cloud-rocket opened 1 year ago

cloud-rocket commented 1 year ago

Description

Trying to build an image (and a package) for armhf (Beagle Blue). The package compiles perfectly fine on target platform (including with colcon). Looks like catkin is missing

Expected Behavior

Successful build

Actual Behavior

The following error occurs:

...
INFO:Docker Client: ---> Using cache
INFO:Docker Client: ---> 637361386a6d
INFO:Docker Client:Step 29/31 : COPY user-custom-post-build /
INFO:Docker Client: ---> Using cache
INFO:Docker Client: ---> 08a1911294e2
INFO:Docker Client:Step 30/31 : RUN chmod +x /user-custom-post-build
INFO:Docker Client: ---> Using cache
INFO:Docker Client: ---> 9a287b0d39cd
INFO:Docker Client:Step 31/31 : ENTRYPOINT ["/root/build_workspace.sh"]
INFO:Docker Client: ---> Using cache
INFO:Docker Client: ---> 316b1280fe95
INFO:Docker Client:Successfully built 316b1280fe95
INFO:Docker Client:Successfully tagged meir/armhf-ubuntu-noetic:latest
INFO:ros_cross_compile.sysroot_creator:Successfully created sysroot docker image: meir/armhf-ubuntu-noetic:latest
INFO:Docker Client:+ trap cleanup EXIT
INFO:Docker Client:+ mkdir -p /opt/ros/noetic
INFO:Docker Client:+ touch /opt/ros/noetic/setup.bash
INFO:Docker Client:+ set +ux
INFO:Docker Client:+ colcon build --mixin armhf-docker --build-base build_armhf --install-base install_armhf
INFO:Docker Client:Topological order
INFO:Docker Client:- bbblue_drivers (ros.catkin)
INFO:Docker Client:Starting >>> bbblue_drivers
INFO:Docker Client:--- output: bbblue_drivers
INFO:Docker Client:Not searching for unused variables given on the command line.
INFO:Docker Client:CMake Error at CMakeLists.txt:12 (find_package):
INFO:Docker Client:  By not providing "Findcatkin.cmake" in CMAKE_MODULE_PATH this project has
INFO:Docker Client:  asked CMake to find a package configuration file provided by "catkin", but
INFO:Docker Client:  CMake did not find one.
INFO:Docker Client:
INFO:Docker Client:  Could not find a package configuration file provided by "catkin" with any
INFO:Docker Client:  of the following names:
INFO:Docker Client:
INFO:Docker Client:    catkinConfig.cmake
INFO:Docker Client:    catkin-config.cmake
INFO:Docker Client:
INFO:Docker Client:  Add the installation prefix of "catkin" to CMAKE_PREFIX_PATH or set
INFO:Docker Client:  "catkin_DIR" to a directory containing one of the above files.  If "catkin"
INFO:Docker Client:  provides a separate development package or SDK, be sure it has been
INFO:Docker Client:  installed.
INFO:Docker Client:
INFO:Docker Client:
INFO:Docker Client:-- Configuring incomplete, errors occurred!
INFO:Docker Client:See also "/ros_ws/build_armhf/bbblue_drivers/CMakeFiles/CMakeOutput.log".
INFO:Docker Client:See also "/ros_ws/build_armhf/bbblue_drivers/CMakeFiles/CMakeError.log".
INFO:Docker Client:---
INFO:Docker Client:--- stderr: bbblue_drivers
INFO:Docker Client:CMake Error at CMakeLists.txt:12 (find_package):
INFO:Docker Client:  By not providing "Findcatkin.cmake" in CMAKE_MODULE_PATH this project has
INFO:Docker Client:  asked CMake to find a package configuration file provided by "catkin", but
INFO:Docker Client:  CMake did not find one.
INFO:Docker Client:
INFO:Docker Client:  Could not find a package configuration file provided by "catkin" with any
INFO:Docker Client:  of the following names:
INFO:Docker Client:
INFO:Docker Client:    catkinConfig.cmake
INFO:Docker Client:    catkin-config.cmake
INFO:Docker Client:
INFO:Docker Client:  Add the installation prefix of "catkin" to CMAKE_PREFIX_PATH or set
INFO:Docker Client:  "catkin_DIR" to a directory containing one of the above files.  If "catkin"
INFO:Docker Client:  provides a separate development package or SDK, be sure it has been
INFO:Docker Client:  installed.
INFO:Docker Client:
INFO:Docker Client:
INFO:Docker Client:---
INFO:Docker Client:Failed   <<< bbblue_drivers [0.83s, exited with code 1]
INFO:Docker Client:
INFO:Docker Client:Summary: 0 packages finished [2.31s]
INFO:Docker Client:  1 package failed: bbblue_drivers
INFO:Docker Client:  1 package had stderr output: bbblue_drivers
INFO:Docker Client:+ cleanup
INFO:Docker Client:+ chown -R 1000 .
Traceback (most recent call last):
  File "/home/meir/.local/bin/ros_cross_compile", line 8, in <module>
    sys.exit(main())
  File "/home/meir/.local/lib/python3.8/site-packages/ros_cross_compile/ros_cross_compile.py", line 237, in main
    cross_compile_pipeline(args, data_collector, platform)
  File "/home/meir/.local/lib/python3.8/site-packages/ros_cross_compile/ros_cross_compile.py", line 224, in cross_compile_pipeline
    stage(platform, docker_client, ros_workspace_dir, options, data_collector)
  File "/home/meir/.local/lib/python3.8/site-packages/ros_cross_compile/builders.py", line 71, in __call__
    run_emulated_docker_build(docker_client, platform, ros_workspace_dir)
  File "/home/meir/.local/lib/python3.8/site-packages/ros_cross_compile/builders.py", line 40, in run_emulated_docker_build
    docker_client.run_container(
  File "/home/meir/.local/lib/python3.8/site-packages/ros_cross_compile/docker_client.py", line 139, in run_container
    raise docker.errors.ContainerError(
docker.errors.ContainerError: Command '' in image 'meir/armhf-ubuntu-noetic:latest' returned non-zero exit status 1: See above ^

To Reproduce

Calling:

ros_cross_compile ./catkin_ws/ --arch armhf --os ubuntu --rosdistro noetic --custom-setup-script=`pwd`/catkin_ws/cross-compile-scripts/rosdep-script.sh

The same error occurs without custom rosdep-script.sh:

rosdep-script.sh looks like:

apt-get update 
apt-get install -y ros-noetic-catkin wget 

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys D284E608A4C46402
echo "deb [arch=armhf] http://repos.rcn-ee.com/ubuntu/ focal main" | tee -a /etc/apt/sources.list

apt-get update 
apt-get install -y bb-customizations 

wget --no-check-certificate https://github.com/beagleboard/librobotcontrol/archive/refs/tags/V1.0.5.tar.gz
tar -xf V1.0.5.tar.gz
cd librobotcontrol-1.0.5
make
make install

The package I am trying to build is: https://github.com/uweswrtz/bbblue_drivers

System (please complete the following information)