diff options
Diffstat (limited to 'easynav-simple-recovery.spec')
| -rw-r--r-- | easynav-simple-recovery.spec | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/easynav-simple-recovery.spec b/easynav-simple-recovery.spec index a56766f..ba8d425 100644 --- a/easynav-simple-recovery.spec +++ b/easynav-simple-recovery.spec @@ -10,6 +10,10 @@ # Name 展开须等于 ros-humble-easynav-simple-recovery(verify_ros_spec_deps.py 机械校验)。 %define ros_distro humble %define RosPkgName easynav-simple-recovery +# src_version 保留完整 target_version(0.5.0-1 = Version-Release),对齐 +# gen_ros_spec 模板与 submit_fix._ensure_tarball 的 <pkg>-<gate_version> 命名: +# tarball 名 / 解压根目录 / autosetup 的 -n 三处同源(见下文 Source0 与 prep)。 +%define src_version 0.5.0-1 Name: ros-%{ros_distro}-%{RosPkgName} Version: 0.5.0 @@ -18,9 +22,18 @@ Summary: Easy Navigation simple recovery system plugin License: Apache-2.0 URL: https://github.com/EasyNavigation/easynav_plugins # Source0 用 tag 0.5.0 归档(target_version=0.5.0-1,git describe=0.5.0,HEAD 703b73a 恰命中 tag, -# 与同批 controller/localizer 共用同一源码快照)。实测归档根目录名为 easynav_plugins-0.5.0, -# 故 autosetup 的 -n 取 easynav_plugins-加版本号(不随包名联动改写,§2)。 -Source0: https://github.com/EasyNavigation/easynav_plugins/archive/refs/tags/0.5.0.tar.gz +# 与同批 controller/localizer 共用同一源码快照)。 +# 构建系统不下载 GitHub 归档,而是对 sources/<pkg>/ 的 git clone 执行 +# tar --transform s|^./sources/<pkg>|<top>| +# 其中 <top> = Source0 落地文件名去 .tar.gz 后缀。故 Source0 的 basename 即解压根目录名。 +# 修复重提走 submit_fix._ensure_tarball,它固定按 <pkg>-<gate_version> 命名 tarball +# (gate_version = gate_result.result.version = 0.5.0-1),与上面 src_version 定义同源。 +# 因此用 #/<basename> 强制重定向 Source0 落地文件名为 RosPkgName-src_version.tar.gz 形式 +# (= easynav-simple-recovery-0.5.0-1.tar.gz),使 rpmbuild -bs 取的源文件名与 +# submit_fix 重打的 tarball 名一致;autosetup 的 -n 同取该名(见下文 prep 段)。 +# 初版误用裸 tag URL(basename=0.5.0.tar.gz)却写 -n easynav_plugins-0.5.0, +# 二者不符致 prep 段 cd 失败(build 113754)——本版修正(对齐同仓兄弟 controller build 113758 修法)。 +Source0: https://github.com/EasyNavigation/easynav_plugins/archive/refs/tags/0.5.0.tar.gz#/%{RosPkgName}-%{src_version}.tar.gz # §2:/opt 前缀下 debug 子包无意义,统一关闭 %global debug_package %{nil} @@ -69,8 +82,11 @@ easynav_core's recovery_node. Built as an ament_cmake ROS 2 shared library insta /opt/ros/%{ros_distro}. %prep -# §2:归档根目录 easynav_plugins-0.5.0 已由同批 controller spec 实测确认;-n 不随包名联动改写 -%autosetup -n easynav_plugins-%{version} +# §2:解压根目录 = Source0 basename 去 .tar.gz = RosPkgName-src_version +# (展开后 easynav-simple-recovery-0.5.0-1;构建系统 tar --transform 重命名源码根为该名, +# 非上游 GitHub 归档的自然目录)。 +# -n 与 Source0 basename、submit_fix 重打 tarball 三处同源,不随包名联动改写。 +%autosetup -n %{RosPkgName}-%{src_version} %build # §4 ROS 基座环境(chroot 已配 ROS SIG repo;setup.sh 用 [ -f ] 守卫,严格 sh 下不中止) |
