Skip to content

Errors when building rosbag2 storage plugins against released binaries #87

@ruffsl

Description

@ruffsl

I've been trying to build a rosbag2 storage plugin that is currently working with building against rosbag2 from source and have packaged separately from rosbag2_storage_default_plugins. However, when I try and build the same plugin package against the released binaries for crystal, I get some odd errors with colcon looking in the local workspace's install directory for package.sh files for packages that are already installed via the system. See the error except and reference dockerfile and plugin package below:

. /opt/ros/$ROS_DISTRO/setup.sh &&     apt-get update &&     rosdep install -q -y       --from-paths         src/rosbag2/rosbag2_storage_checkpoint_plugin       --ignore-src     && rm -rf /var/lib/apt/lists/*
...
executing command [apt-get install -y -qq ros-crystal-rosbag2-storage]
executing command [apt-get install -y -qq ros-crystal-rosbag2-storage-default-plugins]
executing command [apt-get install -y -qq ros-crystal-sqlite3-vendor]
executing command [apt-get install -y -qq ros-crystal-rosbag2-test-common]
#All required rosdeps installed successfully
Removing intermediate container a414f16f4c7b
 ---> 32bdfaafbdb0
Step 8/10 : ARG CMAKE_BUILD_TYPE=Release
 ---> Running in 3d7bcf664fc6
Removing intermediate container 3d7bcf664fc6
 ---> 110a131cfa19
Step 9/10 : RUN . /opt/ros/$ROS_DISTRO/setup.sh &&     colcon build       --symlink-install       --packages-select         rosbag2_storage_checkpoint_plugin       --cmake-args         -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE
 ---> Running in 56a633e756e5
Starting >>> rosbag2_storage_checkpoint_plugin
[0.299s] ERROR:colcon.colcon_cmake.task.cmake.build:Failed to find the following files:
- /opt/ros_ws/install/rosbag2_test_common/share/rosbag2_test_common/package.sh
- /opt/ros_ws/install/sqlite3_vendor/share/sqlite3_vendor/package.sh
- /opt/ros_ws/install/rosbag2_storage/share/rosbag2_storage/package.sh
- /opt/ros_ws/install/rosbag2_storage_default_plugins/share/rosbag2_storage_default_plugins/package.sh
Check that the following packages have been built:
- rosbag2_test_common
- sqlite3_vendor
- rosbag2_storage
- rosbag2_storage_default_plugins
Failed   <<< rosbag2_storage_checkpoint_plugin	[ Exited with code 1 ]

Summary: 0 packages finished [0.17s]
  1 package failed: rosbag2_storage_checkpoint_plugin
Details

Example package and Dockerfile:

https://github.com/ruffsl/rosbag2/tree/8dfcc290bb306ec606dcf56c7e798c63b98776ff/rosbag2_storage_checkpoint_plugin

FROM ros:crystal

# install ROS2 dependencies
RUN apt-get update && apt-get install -q -y \
      build-essential \
      cmake \
      git \
      python3-colcon-common-extensions \
      python3-vcstool \
      wget \
    && rm -rf /var/lib/apt/lists/*

# copy ros package repo
ENV ROS_WS /opt/ros_ws
RUN mkdir -p $ROS_WS/src
WORKDIR $ROS_WS
COPY ./ src/rosbag2/

# install dependency package dependencies
RUN . /opt/ros/$ROS_DISTRO/setup.sh && \
    apt-get update && \
    rosdep install -q -y \
      --from-paths \
        src/rosbag2/rosbag2_storage_checkpoint_plugin \
      --ignore-src \
    && rm -rf /var/lib/apt/lists/*

# build dependency package source
ARG CMAKE_BUILD_TYPE=Release
RUN . /opt/ros/$ROS_DISTRO/setup.sh && \
    colcon build \
      --symlink-install \
      --packages-select \
        rosbag2_storage_checkpoint_plugin \
      --cmake-args \
        -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE

# source navigation2 workspace from entrypoint
RUN sed --in-place \
      's|^source .*|source "$ROS_WS/install/setup.bash"|' \
      /ros_entrypoint.sh

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions