diff options
| author | CoprDistGit <infra@openeuler.org> | 2026-09-22 05:39:10 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2026-09-22 05:39:10 +0000 |
| commit | 84a125736ea35c8739fe0d73c10451d62e193dda (patch) | |
| tree | 2f4e08e4e52117417053e0f24d3e282979044c46 /mrpt-libapps.spec | |
| parent | 8902b09bbd034371ff3475b6a387cb3ac365e6cc (diff) | |
automatic import of ros-humble-mrpt-libapps
Diffstat (limited to 'mrpt-libapps.spec')
| -rw-r--r-- | mrpt-libapps.spec | 38 |
1 files changed, 34 insertions, 4 deletions
diff --git a/mrpt-libapps.spec b/mrpt-libapps.spec index 159c970..f7ef86f 100644 --- a/mrpt-libapps.spec +++ b/mrpt-libapps.spec @@ -8,7 +8,7 @@ Name: ros-%{ros_distro}-%{RosPkgName} Version: 2.15.20 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Mobile Robot Programming Toolkit (MRPT) libraries (apps C++ libraries) License: BSD URL: https://github.com/MRPT/mrpt_ros.git @@ -248,9 +248,18 @@ export PYTHONPATH=/opt/ros/%{ros_distro}/lib/python%{python3_version}/site-packa export PKG_CONFIG_PATH=/opt/ros/%{ros_distro}/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH} # 闸门:兄弟库的 cmake config 必须可见。内层对 BUILD_mrpt-*=OFF 的库走 # find_package(mrpt-XXX),找不到只会 Warning + 静默禁用(产出空包);这里把 -# 最常见的"漏列 BuildRequires"提前变成可归因失败。topography 由 libobs 包提供、 -# tclap 由 libtclap 包提供,都是本包内层直接 find_package 的模块。 -for _m in base math poses opengl obs topography maps gui slam hwdrivers tclap; do +# 最常见的"漏列 BuildRequires"提前变成可归因失败。 +# ★ 这里的名字必须是**上游 mrpt 库名**,不是 ROS 包装包名: +# ros-humble-mrpt-libbase 装出的是 mrpt-core/-config/-io/-system/-rtti/... —— +# 上游没有 "mrpt-base" 这个库(MRPT 1.x 才叫 base)。build 112607 就是踩在这: +# `ls .../cmake/mrpt-base/mrpt-base-config.cmake` 对已装好的 libbase 恒为假, +# 64 秒即在闸门误报"lib* 未装进 buildroot"(实测 rpm -qpl +# ros-humble-mrpt-libbase-2.15.20-3.aarch64.rpm 只有 mrpt-core 等十个 config)。 +# 同理 mrpt-topography 由 libobs 包提供、mrpt-tclap 由 libtclap 包提供、 +# mrpt-hwdrivers/-comms 由 libhwdrivers、mrpt-slam/-vision 由 libslam、 +# mrpt-maps/-graphs 由 libmaps、mrpt-opengl/-img 由 libopengl、 +# mrpt-poses/-tfest/-bayes 由 libposes —— 包名与库名不同名是常态。 +for _m in core math poses opengl obs topography maps gui slam hwdrivers tclap; do if ! ls /opt/ros/%{ros_distro}/lib64/cmake/mrpt-$_m/mrpt-$_m-config.cmake \ /opt/ros/%{ros_distro}/lib/cmake/mrpt-$_m/mrpt-$_m-config.cmake >/dev/null 2>&1; then echo "ERROR: 未找到 mrpt-$_m 的 cmake config —— 对应 ros-%{ros_distro}-mrpt-lib* 未装进 buildroot" >&2 @@ -363,3 +372,24 @@ make install DESTDIR=%{buildroot} EP_octomap / 产物三类闸门,避免 chroot 内走外部网络或静默产出空包。 * 不再预取 rplidar_sdk(包装工程已 -DMRPT_WITH_ROBEPEAK_LIDAR=OFF -DMRPT_BUILD_rplidar_sdk=OFF,本包内层不建该静态库)。 + +* Tue Sep 22 2026 ai-importer <ai-importer@openeuler.org> - 2.15.20-3 +- %build 兄弟库 cmake config 闸门误报修复(触发面 build_failed,build 112607 + 在 %build 第 1 条闸门即失败:`ls .../cmake/mrpt-base/mrpt-base-config.cmake` + 找不到,报 "ERROR: 未找到 mrpt-base 的 cmake config"): + * 根因是本闸门自己写错了名字 —— 循环里的标识符必须是**上游 mrpt 库名**而非 + ROS 包装包名:ros-humble-mrpt-libbase 装出的是 mrpt-core / -config / -io / + -system / -rtti / -serialization / -containers / -expr / -random / + -typemeta 这十个 config,**上游没有 mrpt-base 这个库**(MRPT 1.x 时代才叫 + base)。故对已正确装进 buildroot 的 libbase,该判据恒为假,构建在 54 秒时 + 被自己的闸门打死,根本没走到 cmake。 + * 实证:`rpm -qpl ros-humble-mrpt-libbase-2.15.20-3.aarch64.rpm | grep cmake` + 只有 lib64/cmake/mrpt-core/... 等,无 mrpt-base;同理逐包核对过 + libobs→mrpt-obs/mrpt-topography、libtclap→mrpt-tclap、 + libhwdrivers→mrpt-hwdrivers/mrpt-comms、libslam→mrpt-slam/mrpt-vision、 + libmaps→mrpt-maps/mrpt-graphs,其余标识符(math/poses/opengl/gui/slam/ + maps/obs/topography/tclap/hwdrivers)均正确。 + * 改动:闸门列表 base → core,并在注释里写明"包名 ≠ 库名"这条判据,避免 + 后续再按 ROS 包名写库名。 + * BuildRequires/Requires 本身无缺,未做增删;verify_spec_requires.py + 仍报 "OK: 36 个依赖…全部有 provider"。 |
