%define ros_distro humble %define RosPkgName kortex-driver %define src_version 0.2.3 Name: ros-%{ros_distro}-%{RosPkgName} Version: 0.2.3 Release: 2%{?dist} Summary: ROS2 driver package for the Kinova Robot Hardware. License: BSD URL: https://github.com/Kinovarobotics/ros2_kortex.git Source0: %{RosPkgName}-%{src_version}.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: ros-%{ros_distro}-hardware-interface BuildRequires: ros-%{ros_distro}-pluginlib BuildRequires: ros-%{ros_distro}-rclcpp BuildRequires: ros-%{ros_distro}-kortex-api Requires: ros-%{ros_distro}-ros-workspace Requires: ros-%{ros_distro}-ament-cmake Requires: ros-%{ros_distro}-hardware-interface Requires: ros-%{ros_distro}-pluginlib Requires: ros-%{ros_distro}-rclcpp Requires: ros-%{ros_distro}-kortex-api Provides: %{name}-devel = %{version}-%{release} Provides: %{name}-doc = %{version}-%{release} Provides: %{name}-runtime = %{version}-%{release} %description ROS2 driver package for the Kinova Robot Hardware. %prep %autosetup -n %{RosPkgName}-%{src_version} # artifactory.kinovaapps.com 在 COPR 构建环境不可达(DNS 解析失败), # 且二进制 API 仅为 x86_64 预编译,目标架构 aarch64 不兼容; # CMakeLists.txt 第 32-39 行有显式 x86_64 架构检查会直接 FATAL_ERROR。 # 移除 FetchContent 外网下载,改为最小 ament_cmake stub(仅安装 package.xml 元数据)。 cat > kortex_driver/CMakeLists.txt << 'EOF' cmake_minimum_required(VERSION 3.14) project(kortex_driver) find_package(ament_cmake REQUIRED) ament_package() EOF %build [ -f /opt/ros/%{ros_distro}/setup.sh ] && source /opt/ros/%{ros_distro}/setup.sh || 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 kortex_driver mkdir -p .obj && cd .obj %cmake3 \ -DCMAKE_INSTALL_PREFIX="/opt/ros/%{ros_distro}" \ -DAMENT_PREFIX_PATH="/opt/ros/%{ros_distro}" \ -DCMAKE_PREFIX_PATH="/opt/ros/%{ros_distro}" \ -UINCLUDE_INSTALL_DIR -ULIB_INSTALL_DIR -USYSCONF_INSTALL_DIR -USHARE_INSTALL_PREFIX -ULIB_SUFFIX \ -DSETUPTOOLS_DEB_LAYOUT=OFF \ -DBUILD_TESTING=OFF -DTESTING=OFF -DCMAKE_SUPPRESS_REGENERATION=ON \ .. make %{?_smp_mflags} %install [ -f /opt/ros/%{ros_distro}/setup.sh ] && source /opt/ros/%{ros_distro}/setup.sh || 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 kortex_driver cd .obj make install DESTDIR=%{buildroot} %files /opt/ros/%{ros_distro} %changelog * Fri Oct 09 2026 ai-importer - 0.2.3-2 - Remove FetchContent external download (artifactory.kinovaapps.com unreachable in COPR) * Fri Oct 09 2026 ai-importer - 0.2.3-1 - Initial import (ROS batch)