summaryrefslogtreecommitdiff
path: root/easynav-vff-controller.spec
diff options
context:
space:
mode:
Diffstat (limited to 'easynav-vff-controller.spec')
-rw-r--r--easynav-vff-controller.spec27
1 files changed, 19 insertions, 8 deletions
diff --git a/easynav-vff-controller.spec b/easynav-vff-controller.spec
index e2c2ac7..d36816a 100644
--- a/easynav-vff-controller.spec
+++ b/easynav-vff-controller.spec
@@ -20,12 +20,16 @@ URL: https://github.com/EasyNavigation/easynav_plugins
# commit 为 ros_fetch checkout 后实测的 HEAD(git rev-parse),非占位值。
#
# 归档解压根目录(spec-rules §2 实测纪律,禁止猜测):
-# 本地 `python3 -c "import tarfile; print(tarfile.open('<f>').getnames()[0])"`
-# 实测 GitHub archive/<full-sha>.tar.gz 解压根目录为 easynav_plugins-<完整SHA>
-# (<repo>-<commit> 格式)。故 %%autosetup -n 用 easynav_plugins-%%{commit}。
-# 注:同仓兄弟 spec easynav-serest-controller 误用 -n %%{commit}(纯 SHA),
-# SRPM 阶段不跑 %%prep 故未暴露,COPR 构建时 %%prep 会因 `cd: <sha>: No such file`
-# 失败;本包据实测纠正。解压目录名与 Name/RosPkgName 解耦(§2)。
+# build 113785(round 0)误判 GitHub archive/<full-sha>.tar.gz 解压根目录为
+# easynav_plugins-<完整SHA>,%%autosetup -n easynav_plugins-%%{commit} 导致
+# %%prep `cd: easynav_plugins-<sha>: No such file` 失败。实证两步事实:
+# (1) 原始 GitHub 归档顶层目录 = 纯 SHA(2580d29...),非 <repo>-<sha>;
+# (2) submit_fix.py _ensure_tarball 在 spec 新于 tarball 时用
+# `tar --transform s|^./sources/<pkg>|<pkg>-<gate_version>|` 重打 tarball,
+# 顶层目录变为 <pkg>-<gate_version> = easynav-vff-controller-0.5.0-1
+# (SRPM 内 %%{commit}.tar.gz 与 <pkg>-<ver>.tar.gz 同 inode,解压根一致)。
+# 同仓 easynav-mppi-controller build 113789 round 2 实证同一根因同一修法。
+# 故 %%autosetup -n 用 %%{RosPkgName}-%%{version}-1 匹配重打后顶层目录。
%global commit 2580d29baefe77305c6e9336dca743aa5ce51c2c
Source0: https://github.com/EasyNavigation/easynav_plugins/archive/%{commit}.tar.gz
@@ -109,8 +113,9 @@ an ament_cmake shared library (vff_controller) registered as a pluginlib plugin
easynav::ControllerMethodBase) via easynav_core.
%prep
-# 解压根目录 = easynav_plugins-<完整SHA>(本地 tar 实测,spec-rules §2)
-%autosetup -n easynav_plugins-%{commit}
+# 解压根目录 = <pkg>-<gate_version>(submit_fix _ensure_tarball --transform 重打后;
+# spec-rules §2 实测:tar tzf 顶层 = easynav-vff-controller-0.5.0-1)
+%autosetup -n %{RosPkgName}-%{version}-1
%build
# ROS 基座环境(spec-rules §4):setup.sh 用 [ -f ] 守卫,避免无 ROS 依赖 chroot 中止脚本
@@ -142,6 +147,12 @@ make install DESTDIR=%{buildroot}
%changelog
* Tue Oct 20 2026 AI Importer <ai-importer@opencode> - 0.5.0-1
+- Fix round 1 (build 113785): %%autosetup -n easynav_plugins-%%{commit} → -n %%{RosPkgName}-%%{version}-1
+ 根因:submit_fix.py _ensure_tarball 在 spec 新于 tarball 时用 tar --transform
+ 重打 tarball,顶层目录 = {pkg}-{gate_version} = easynav-vff-controller-0.5.0-1,
+ 非 easynav_plugins-<sha>。原始 GitHub 归档顶层虽为纯 SHA,但重打后变为
+ pkg-ver;round 0 误判重打后顶层导致 %%prep cd 失败。
+ 同仓 easynav-mppi-controller build 113789 round 2 实证同一根因同一修法。
- Initial ROS spec for easynav-vff-controller (humble)
- Source: easynav_plugins humble branch snapshot (commit 2580d29)
- ament_cmake shared library, pluginlib plugin via easynav_core