%define src_version 1.9.0 %define ros_distro humble %define RosPkgName autoware-utils-debug Name: ros-%{ros_distro}-%{RosPkgName} Version: 1.9.0 Release: 1%{?dist} Summary: Utilities for debug in Autoware (ROS 2 Humble) License: Apache-2.0 URL: https://github.com/autowarefoundation/autoware_utils Source0: %{RosPkgName}-%{src_version}.tar.gz # 上游源码: https://github.com/autowarefoundation/autoware_utils/archive/refs/tags/v1.11.0.tar.gz # (submit_fix 按 --transform 规则重打成下行 Source0 的本地文件名,COPR 构建不联网取源) # 归档解压根目录名(实测)为 autoware-utils-debug-1.11.0,与 Name: 解耦: # 解压参数只认实测目录名;子包源码在归档内的 autoware_utils_debug/ 目录。 # 注:注释里不要写带百分号的宏名——rpm 会展开注释中的宏,解压宏展开成 setup 标签会直接解析失败 # ROS 包统一:关闭 debug 子包、摘掉 brp-python-bytecompile、/opt 前缀不进 autodeps %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: gcc-c++ BuildRequires: fmt-devel BuildRequires: ros-%{ros_distro}-ament-cmake-auto # ament_cmake 的 package_templates 需要 ament_package python 模块,显式固化 BuildRequires: ros-%{ros_distro}-ament-package BuildRequires: ros-%{ros_distro}-autoware-cmake BuildRequires: ros-%{ros_distro}-rclcpp BuildRequires: ros-%{ros_distro}-diagnostic-msgs BuildRequires: ros-%{ros_distro}-autoware-internal-debug-msgs BuildRequires: ros-%{ros_distro}-autoware-internal-msgs BuildRequires: ros-%{ros_distro}-autoware-utils-system Requires: ros-%{ros_distro}-ros-workspace Requires: fmt Requires: fmt-devel Requires: ros-%{ros_distro}-rclcpp Requires: ros-%{ros_distro}-diagnostic-msgs Requires: ros-%{ros_distro}-autoware-internal-debug-msgs Requires: ros-%{ros_distro}-autoware-internal-msgs Requires: ros-%{ros_distro}-autoware-utils-system # 单包策略(spec-rules-ros §7):ROS 包不拆实体子包,虚拟别名兼容 -devel 消费者 Provides: %{name}-devel = %{version}-%{release} Provides: %{name}-doc = %{version}-%{release} Provides: %{name}-runtime = %{version}-%{release} %description The autoware_utils_debug package provides essential utilities for debug in Autoware autonomous driving applications built on ROS 2 Humble. It includes helpers for publishing debug messages with timestamps, tracking processing times, and reporting diagnostic information. %prep # 解压目录名跟实测归档根目录走,不随 Name/RosPkgName 联动改写 %autosetup -n autoware-utils-debug-%{version} %build # ROS 基座环境 bootstrap(spec-rules-ros §4):ament_package 等 python 模块装在 # /opt/ros//lib/pythonX.Y/site-packages,不在 /usr/bin/python3 的默认 # sys.path 里——不导出 PYTHONPATH 时 ament_cmake 的 package_templates 必失败 # (ModuleNotFoundError: No module named 'ament_package')。 # 无 setup.sh 的 buildroot 不能直接 source(严格 sh 下会中止),故加 [ -f ] 守卫。 [ -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} mkdir -p build_pkg cd build_pkg cmake \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX="/opt/ros/%{ros_distro}" \ -DAMENT_PREFIX_PATH="/opt/ros/%{ros_distro}" \ -DCMAKE_PREFIX_PATH="/opt/ros/%{ros_distro}" \ -DBUILD_TESTING=OFF \ ../autoware_utils_debug %make_build %install # 同上:install 阶段 ament 的 install 钩子与 ament_index 注册同样需要 ROS 环境 [ -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 build_pkg %make_install %files # 整树拥有(spec-rules-ros §7):装了没打包类错误免疫,且不与子包路径重叠 /opt/ros/%{ros_distro} %license LICENSE %doc autoware_utils_debug/README.md %changelog * Mon Oct 12 2026 ai-importer - 1.9.0-1 - Rebase to 1.9.0 (ROS batch import) * Mon Sep 21 2026 openEuler Builder - 1.11.0-1 - Fix build/install: export ROS bootstrap PYTHONPATH so ament_cmake package templates can import ament_package (ModuleNotFoundError) - Rename to ros-humble-autoware-utils-debug; single-package files list, /opt prefix excluded from autodeps (spec-rules-ros) - Initial package of autoware_utils_debug 1.11.0