summaryrefslogtreecommitdiff
path: root/autoware-utils-debug.spec
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2026-09-21 14:09:42 +0000
committerCoprDistGit <infra@openeuler.org>2026-09-21 14:09:42 +0000
commite1be11e1615ec35e45ad020aaa1a3a3cb1f20834 (patch)
tree482044e5dc20b062183c85f898551c46f7237829 /autoware-utils-debug.spec
parent9b738b88f32f7da78a42f7447ecccb2f8a32b5eb (diff)
automatic import of ros-humble-autoware-utils-debug
Diffstat (limited to 'autoware-utils-debug.spec')
-rw-r--r--autoware-utils-debug.spec102
1 files changed, 102 insertions, 0 deletions
diff --git a/autoware-utils-debug.spec b/autoware-utils-debug.spec
new file mode 100644
index 0000000..6ef3654
--- /dev/null
+++ b/autoware-utils-debug.spec
@@ -0,0 +1,102 @@
+%define ros_distro humble
+%define RosPkgName autoware-utils-debug
+
+Name: ros-%{ros_distro}-%{RosPkgName}
+Version: 1.11.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}-%{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/<distro>/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 Sep 21 2026 openEuler Builder <builder@openeuler.org> - 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