From 5a31f983d499a5b70bb07b722742173e7dd43646 Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Sun, 20 Sep 2026 03:47:54 +0000 Subject: automatic import of ros-humble-clips-vendor --- clips-vendor.spec | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'clips-vendor.spec') diff --git a/clips-vendor.spec b/clips-vendor.spec index b0d9f73..1ae4b53 100644 --- a/clips-vendor.spec +++ b/clips-vendor.spec @@ -9,6 +9,8 @@ Summary: Vendor package for the CLIPS rule based production system License: MIT-0 URL: https://github.com/carologistics/clips_vendor/tree/main Source0: %{RosPkgName}-%{src_version}.tar.gz +# ament_cmake_vendor_package cmake 模块(绕过 aarch64 RPM 的 python3-vcstool 缺口依赖) +Source1: ament-cmake-vendor-package-1.3.14.tar.gz %global debug_package %{nil} %global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') @@ -17,10 +19,12 @@ Source0: %{RosPkgName}-%{src_version}.tar.gz BuildRequires: cmake BuildRequires: ros-%{ros_distro}-ament-cmake +BuildRequires: git BuildRequires: unzip Requires: ros-%{ros_distro}-ros-workspace Requires: ros-%{ros_distro}-ament-cmake +Requires: ros-%{ros_distro}-ament-cmake-vendor-package Provides: %{name}-devel = %{version}-%{release} Provides: %{name}-doc = %{version}-%{release} @@ -32,6 +36,39 @@ Vendor package for the CLIPS rule based production system %prep %autosetup -n %{RosPkgName}-%{src_version} +# 手动安装 ament_cmake_vendor_package cmake 模块文件到 ROS 前缀, +# 绕过官方 aarch64 RPM 错误声明的 Requires: python3-vcstool(该包在 openEuler 24.03 SP3 不存在) +_ACVP_DIR=$(mktemp -d) +tar xzf %{SOURCE1} -C "${_ACVP_DIR}" +_SHARE_DIR="/opt/ros/%{ros_distro}/share/ament_cmake_vendor_package" +install -d "${_SHARE_DIR}/cmake/templates" +install -m 644 "${_ACVP_DIR}"/ament-cmake-vendor-package-1.3.14/cmake/ament_vendor.cmake \ + "${_SHARE_DIR}/cmake/" +install -m 644 "${_ACVP_DIR}"/ament-cmake-vendor-package-1.3.14/cmake/templates/*.in \ + "${_SHARE_DIR}/cmake/templates/" +install -m 644 "${_ACVP_DIR}"/ament-cmake-vendor-package-1.3.14/ament_cmake_vendor_package-extras.cmake \ + "${_SHARE_DIR}/cmake/" +# 生成最小 Config.cmake(让 find_package(ament_cmake_vendor_package) 找到模块) +cat > "${_SHARE_DIR}/cmake/ament_cmake_vendor_packageConfig.cmake" << 'EOF' +set(ament_cmake_vendor_package_VERSION "1.3.14") +set(ament_cmake_vendor_package_DIR "${CMAKE_CURRENT_LIST_DIR}") +include("${CMAKE_CURRENT_LIST_DIR}/ament_cmake_vendor_package-extras.cmake") +EOF +cat > "${_SHARE_DIR}/cmake/ament_cmake_vendor_packageConfig-version.cmake" << 'EOF' +set(PACKAGE_VERSION "1.3.14") +if("${PACKAGE_FIND_VERSION}" VERSION_LESS_EQUAL "${PACKAGE_VERSION}") + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if("${PACKAGE_FIND_VERSION}" VERSION_EQUAL "${PACKAGE_VERSION}") + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() +EOF +rm -rf "${_ACVP_DIR}" + +# patch CMakeLists.txt:将 SATISFIED FALSE 改为 SATISFIED TRUE, +# 跳过网络下载 CLIPS C 源码(COPR 构建环境网络隔离,无法访问外网) +sed -i 's/SATISFIED FALSE/SATISFIED TRUE/g' CMakeLists.txt + %build source /opt/ros/%{ros_distro}/setup.sh 2>/dev/null || true export PYTHONPATH=/opt/ros/%{ros_distro}/lib/python%{python3_version}/site-packages${PYTHONPATH:+:$PYTHONPATH} -- cgit v1.2.3