From c85caef30229840ce59d6191bd48e5bf7209d8b7 Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Wed, 21 Oct 2026 04:28:36 +0000 Subject: automatic import of ros-humble-nebula-hesai-decoders --- nebula-hesai-decoders.spec | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/nebula-hesai-decoders.spec b/nebula-hesai-decoders.spec index f84c7d8..be3a357 100644 --- a/nebula-hesai-decoders.spec +++ b/nebula-hesai-decoders.spec @@ -71,6 +71,20 @@ nebula_hesai_decoders colcon 子包;monorepo 其余 colcon 包由各自独立 # -a1:额外解压 Source1(png++ vendor 源码)到 Source0 目录 %autosetup -n %{RosPkgName}-%{src_version} -a1 +# 上游 bug 修补:已装 sibling 包 nebula-core-decoders 的头文件 downsample_mask.hpp +# 误用 Eigen::MatrixX,但 Eigen 并无 MatrixX 模板(仅有 MatrixXf/MatrixXi +# 等具体 typedef),编译报 'MatrixX' does not name a template type。该头文件 header-only, +# sibling 包自身构建未实例化故未暴露;本包 hesai_decoder.hpp:18 包含它,且 +# hesai_decoder.hpp:93 用 std::optional 触发完整类型实例化才报错。 +# mockbuild 无权改写 /opt/ros/humble/include 下已装头文件,故建影子 include 目录放 +# sed 修补副本,经 CXXFLAGS -I 优先于 -isystem /opt/ros/humble/include 命中本修补版。 +mkdir -p %{_builddir}/patch-include/nebula_core_decoders/point_filters +cp src/nebula_core/nebula_core_decoders/include/nebula_core_decoders/point_filters/downsample_mask.hpp \ + %{_builddir}/patch-include/nebula_core_decoders/point_filters/ +# Eigen::MatrixX → Eigen::Matrix(动态矩阵标准写法) +sed -i 's/Eigen::MatrixX/Eigen::Matrix/g' \ + %{_builddir}/patch-include/nebula_core_decoders/point_filters/downsample_mask.hpp + %build # ROS 基座环境(§4:setup.sh 可能不存在,用 [ -f ] 守卫) [ -f /opt/ros/%{ros_distro}/setup.sh ] && source /opt/ros/%{ros_distro}/setup.sh || true @@ -85,7 +99,9 @@ export PKG_CONFIG_PATH=/opt/ros/%{ros_distro}/lib/pkgconfig${PKG_CONFIG_PATH:+:$ # #include 解析 install -d %{_builddir}/pngpp-include/png++ install -p -m 0644 png++-0.2.10/*.hpp %{_builddir}/pngpp-include/png++/ -export CXXFLAGS="%{optflags} -I%{_builddir}/pngpp-include" +# patch-include:downsample_mask.hpp 修补影子目录(见 %prep),-I 优先于 +# -isystem /opt/ros/humble/include 命中修补版,规避已装 sibling 头文件的 Eigen::MatrixX bug +export CXXFLAGS="%{optflags} -I%{_builddir}/patch-include -I%{_builddir}/pngpp-include" # monorepo 子包构建:进入目标 colcon 包目录(§5 ament_cmake 显式 out-of-source,规避 openEuler cmake 宏的默认位置参数) cd src/nebula_hesai/nebula_hesai_decoders @@ -121,6 +137,15 @@ make install DESTDIR=%{buildroot} %{_licensedir}/%{name}-bundled-pngpp/ %changelog +* Wed Oct 21 2026 ai-importer - 1.3.1-1 +- 修复 build 阶段(round 4):downsample_mask.hpp 上游误用 Eigen::MatrixX + (Eigen 无 MatrixX 模板,仅 MatrixXf/MatrixXi 等具体 typedef),sed 改为 + Eigen::Matrix;sibling 包 nebula-core-decoders 的该 + header-only 头文件未实例化故自身构建未暴露,本包 hesai_decoder.hpp 经 + std::optional 实例化才触发;mockbuild 无权改写 + /opt/ros/humble/include 已装头文件,故建 patch-include 影子目录放修补副本, + 经 CXXFLAGS -I 优先于 -isystem /opt/ros/humble/include 命中 + * Wed Oct 21 2026 ai-importer - 1.3.1-1 - Initial import (ROS batch) - 源自 tier4/nebula monorepo,commit 8be1ed775b02985eadafe39b00e0e4fc944114e2 -- cgit v1.2.3