From 894256121c742fe22225298dcdbe2805f05fcda2 Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Thu, 8 Oct 2026 09:33:18 +0000 Subject: automatic import of rclcpp --- rclcpp.spec | 135 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 rclcpp.spec (limited to 'rclcpp.spec') diff --git a/rclcpp.spec b/rclcpp.spec new file mode 100644 index 0000000..4da7e9a --- /dev/null +++ b/rclcpp.spec @@ -0,0 +1,135 @@ +# rclcpp: ROS 2 C++ client library (multi-package repository) +# Bundles: rclcpp, rclcpp_action, rclcpp_components, rclcpp_lifecycle +# topdir: rclcpp-16.0.21 +# Installs to /opt/ros/humble (ROS standard prefix) + +%global debug_package %{nil} +%global __provides_exclude_from ^/opt/ros/humble/.*$ +%global __requires_exclude_from ^/opt/ros/humble/.*$ +# Strip brp-python-bytecompile (ROS Python files under /opt are not standard sitelib) +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') + +Name: rclcpp +Version: 16.0.21 +Release: 1%{?dist} +Summary: The ROS client library in C++ + +License: Apache-2.0 +URL: https://github.com/ros2/rclcpp +Source0: https://github.com/ros2/rclcpp/archive/16.0.21.tar.gz#/rclcpp-16.0.21.tar.gz + +# System build tools +BuildRequires: cmake +BuildRequires: gcc-c++ +BuildRequires: make +BuildRequires: python3-devel + +# ROS buildtool dependencies (from ROS SIG repo) +BuildRequires: ros-humble-ament-cmake-ros +BuildRequires: ros-humble-ament-cmake-gen-version-h +BuildRequires: ros-humble-ament-cmake + +# ROS runtime base +BuildRequires: ros-humble-ros-workspace + +# ROS library dependencies — rclcpp sub-package +BuildRequires: ros-humble-ament-index-cpp +BuildRequires: ros-humble-builtin-interfaces +BuildRequires: ros-humble-libstatistics-collector +BuildRequires: ros-humble-rcl +BuildRequires: ros-humble-rcl-interfaces +BuildRequires: ros-humble-rcl-yaml-param-parser +BuildRequires: ros-humble-rcpputils +BuildRequires: ros-humble-rcutils +BuildRequires: ros-humble-rmw +BuildRequires: ros-humble-rosgraph-msgs +BuildRequires: ros-humble-rosidl-runtime-cpp +BuildRequires: ros-humble-rosidl-typesupport-c +BuildRequires: ros-humble-rosidl-typesupport-cpp +BuildRequires: ros-humble-statistics-msgs +BuildRequires: ros-humble-tracetools + +# ROS library dependencies — rclcpp_action sub-package +BuildRequires: ros-humble-action-msgs +BuildRequires: ros-humble-rcl-action +BuildRequires: ros-humble-rosidl-runtime-c + +# ROS library dependencies — rclcpp_components sub-package +BuildRequires: ros-humble-class-loader +BuildRequires: ros-humble-composition-interfaces + +# ROS library dependencies — rclcpp_lifecycle sub-package +BuildRequires: ros-humble-lifecycle-msgs +BuildRequires: ros-humble-rcl-lifecycle + +# Runtime Requires (ROS /opt auto-deps disabled, must be explicit) +Requires: ros-humble-ros-workspace +Requires: ros-humble-ament-cmake + +# Virtual provides for compatibility with -devel/-doc/-runtime naming +Provides: %{name}-devel = %{version}-%{release} +Provides: %{name}-doc = %{version}-%{release} +Provides: %{name}-runtime = %{version}-%{release} + +%description +The ROS client library in C++. +This package bundles the rclcpp, rclcpp_action, rclcpp_components, +and rclcpp_lifecycle sub-packages from the rclcpp repository, +providing the C++ client library for ROS 2. + +%prep +%autosetup -n %{name}-%{version} + +%build +# Source ROS environment if available (provides PYTHONPATH, AMENT_PREFIX_PATH) +[ -f /opt/ros/humble/setup.sh ] && source /opt/ros/humble/setup.sh || true +export PYTHONPATH=/opt/ros/humble/lib/python%{python3_version}/site-packages${PYTHONPATH:+:$PYTHONPATH} +export PKG_CONFIG_PATH=/opt/ros/humble/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH} + +ROSPREFIX=/opt/ros/humble +BROSEROOT=%{buildroot}/opt/ros/humble +export AMENT_PREFIX_PATH=${BROSEROOT}:${ROSPREFIX} +export CMAKE_PREFIX_PATH=${BROSEROOT}:${ROSPREFIX} + +CMAKE_FLAGS="\ + -DCMAKE_INSTALL_PREFIX=${ROSPREFIX} \ + -DAMENT_PREFIX_PATH=${ROSPREFIX} \ + -DCMAKE_PREFIX_PATH=${ROSPREFIX} \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DBUILD_TESTING=OFF \ + -UINCLUDE_INSTALL_DIR \ + -ULIB_INSTALL_DIR \ + -USYSCONF_INSTALL_DIR \ + -USHARE_INSTALL_PREFIX \ + -ULIB_SUFFIX" + +# Build and install a single sub-package to buildroot +build_one() { + pkg=$1 + echo "=== Building ${pkg} ===" + cd "${pkg}" + mkdir -p build + cd build + cmake ${CMAKE_FLAGS} .. + cmake --build . + DESTDIR=%{buildroot} cmake --install . + cd ../.. +} + +# Layer 0: rclcpp (base library, all others depend on it) +build_one rclcpp + +# Layer 1: packages depending on rclcpp (independent of each other) +build_one rclcpp_action +build_one rclcpp_lifecycle +build_one rclcpp_components + +%install +# All sub-packages already installed to buildroot/opt/ros/humble during build phase + +%files +/opt/ros/humble/ + +%changelog +* Thu Oct 08 2026 openEuler Builder - 16.0.21-1 +- Initial package -- cgit v1.2.3