diff options
| -rw-r--r-- | easynav-vff-controller.spec | 27 | ||||
| -rw-r--r-- | sources | 2 |
2 files changed, 20 insertions, 9 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 @@ -1 +1 @@ -8200389c8e5163f1c5567835922624c9 2580d29baefe77305c6e9336dca743aa5ce51c2c.tar.gz +93dfa16aea32cdf35a24684f2a9b7e60 2580d29baefe77305c6e9336dca743aa5ce51c2c.tar.gz |
