%define ros_distro humble %define RosPkgName clips-vendor %define src_version 6.4.4-1 Name: ros-%{ros_distro}-%{RosPkgName} Version: 6.4.4 Release: 1%{?dist} 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') %global __provides_exclude_from ^/opt/ros/%{ros_distro}/.*$ %global __requires_exclude_from ^/opt/ros/%{ros_distro}/.*$ BuildRequires: cmake BuildRequires: ros-%{ros_distro}-ament-cmake BuildRequires: git BuildRequires: unzip Requires: ros-%{ros_distro}-ros-workspace Requires: ros-%{ros_distro}-ament-cmake Provides: %{name}-devel = %{version}-%{release} Provides: %{name}-doc = %{version}-%{release} Provides: %{name}-runtime = %{version}-%{release} %description Vendor package for the CLIPS rule based production system %prep %autosetup -n %{RosPkgName}-%{src_version} # 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} export PKG_CONFIG_PATH=/opt/ros/%{ros_distro}/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH} # 将 ament_cmake_vendor_package cmake 模块解压到构建目录内的临时前缀, # 避免在 %prep 阶段向 /opt/ros(无写权限)写文件 _ACVP_PREFIX="%{_builddir}/acvp_prefix" _ACVP_SHARE="${_ACVP_PREFIX}/share/ament_cmake_vendor_package/cmake" install -d "${_ACVP_SHARE}/templates" _ACVP_TMP=$(mktemp -d) tar xzf %{SOURCE1} -C "${_ACVP_TMP}" install -m 644 "${_ACVP_TMP}"/ament-cmake-vendor-package-1.3.14/cmake/ament_vendor.cmake \ "${_ACVP_SHARE}/" install -m 644 "${_ACVP_TMP}"/ament-cmake-vendor-package-1.3.14/cmake/templates/*.in \ "${_ACVP_SHARE}/templates/" install -m 644 "${_ACVP_TMP}"/ament-cmake-vendor-package-1.3.14/ament_cmake_vendor_package-extras.cmake \ "${_ACVP_SHARE}/" cat > "${_ACVP_SHARE}/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 > "${_ACVP_SHARE}/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_TMP}" mkdir -p .obj && cd .obj cmake \ -DCMAKE_INSTALL_PREFIX="/opt/ros/%{ros_distro}" \ -DAMENT_PREFIX_PATH="/opt/ros/%{ros_distro}" \ -DCMAKE_PREFIX_PATH="${_ACVP_PREFIX};/opt/ros/%{ros_distro}" \ -DSETUPTOOLS_DEB_LAYOUT=OFF \ -DBUILD_TESTING=OFF -DTESTING=OFF -DCMAKE_SUPPRESS_REGENERATION=ON \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ .. make %{?_smp_mflags} %install 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} export PKG_CONFIG_PATH=/opt/ros/%{ros_distro}/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH} cd .obj make install DESTDIR=%{buildroot} %files /opt/ros/%{ros_distro} %changelog * Sun Sep 20 2026 ai-importer - 6.4.4-1 - Initial import (ROS batch)