summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2026-10-21 04:28:36 +0000
committerCoprDistGit <infra@openeuler.org>2026-10-21 04:28:36 +0000
commitc85caef30229840ce59d6191bd48e5bf7209d8b7 (patch)
tree2f263e645a30b164167c45be9939935ac7f61ffa
parent17d9822c050fb5bb7d50f4c3632c2468841ed027 (diff)
automatic import of ros-humble-nebula-hesai-decoders
-rw-r--r--nebula-hesai-decoders.spec27
1 files changed, 26 insertions, 1 deletions
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<uint8_t>,但 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<DownsampleMaskFilter> 触发完整类型实例化才报错。
+# 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<uint8_t> → Eigen::Matrix<uint8_t, Dynamic, Dynamic>(动态矩阵标准写法)
+sed -i 's/Eigen::MatrixX<uint8_t>/Eigen::Matrix<uint8_t, Eigen::Dynamic, Eigen::Dynamic>/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 <png++/...> 解析
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
@@ -122,6 +138,15 @@ make install DESTDIR=%{buildroot}
%changelog
* Wed Oct 21 2026 ai-importer <ai-importer@openeuler.org> - 1.3.1-1
+- 修复 build 阶段(round 4):downsample_mask.hpp 上游误用 Eigen::MatrixX<uint8_t>
+ (Eigen 无 MatrixX 模板,仅 MatrixXf/MatrixXi 等具体 typedef),sed 改为
+ Eigen::Matrix<uint8_t, Dynamic, Dynamic>;sibling 包 nebula-core-decoders 的该
+ header-only 头文件未实例化故自身构建未暴露,本包 hesai_decoder.hpp 经
+ std::optional<DownsampleMaskFilter> 实例化才触发;mockbuild 无权改写
+ /opt/ros/humble/include 已装头文件,故建 patch-include 影子目录放修补副本,
+ 经 CXXFLAGS -I 优先于 -isystem /opt/ros/humble/include 命中
+
+* Wed Oct 21 2026 ai-importer <ai-importer@openeuler.org> - 1.3.1-1
- Initial import (ROS batch)
- 源自 tier4/nebula monorepo,commit 8be1ed775b02985eadafe39b00e0e4fc944114e2
- ament_cmake 形态(autoware_cmake 封装),构建至 /opt/ros/humble 前缀