summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--easynav-simple-recovery.spec26
-rw-r--r--sources2
2 files changed, 22 insertions, 6 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 下不中止)
diff --git a/sources b/sources
index 7dcb188..11d9849 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-9148bb42ba57b01c867c40179b3b7adc 0.5.0.tar.gz
+c9e4d5ce870b518da8744986c706e0b9 easynav-simple-recovery-0.5.0-1.tar.gz