summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2026-10-21 04:05:35 +0000
committerCoprDistGit <infra@openeuler.org>2026-10-21 04:05:35 +0000
commitffc26e8d05b1a2389f95678f272b17da731dc56f (patch)
tree5bbfd8edf9fd4142dd8d5dd802321c725107d13a
parent4efaac593aec62eb962d0eedbfe76ea7c6ba1730 (diff)
automatic import of ros-humble-nebula-hesai-decoders
-rw-r--r--.gitignore1
-rw-r--r--nebula-hesai-decoders.spec25
-rw-r--r--sources1
3 files changed, 26 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore
index 9d206a6..3d9001d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
/8ce64073f41c2ec1166334ce7f8fb2edc13c86e5.tar.gz
/nebula-hesai-decoders-1.3.1-1.tar.gz
+/pngpp-0.2.10.tar.gz
diff --git a/nebula-hesai-decoders.spec b/nebula-hesai-decoders.spec
index 1447652..c39467a 100644
--- a/nebula-hesai-decoders.spec
+++ b/nebula-hesai-decoders.spec
@@ -12,6 +12,10 @@ Summary: Nebula Hesai Decoders Library
License: Apache-2.0
URL: https://github.com/tier4/nebula
Source0: %{RosPkgName}-%{src_version}.tar.gz
+# png++ 是 libpng 的 header-only C++ 封装,openEuler 官方源无此包;
+# 已安装的 nebula-core-decoders 头文件 downsample_mask.hpp 传递依赖 png++,
+# 本包编译需其头文件,随 SRPM 携带源码 vendor(依赖可用性预检无 provider)
+Source1: pngpp-0.2.10.tar.gz
# debug 子包无意义(/opt 前缀,strip/debugedit 路径非常规),SIG 模板统一关闭
%global debug_package %{nil}
@@ -38,6 +42,9 @@ BuildRequires: ros-%{ros_distro}-nebula-core-decoders
BuildRequires: ros-%{ros_distro}-nebula-hesai-common
# 系统库(package.xml <depend>boost</depend>,pkg.remap 映射 boost→boost-devel,CMakeLists 链接 Boost::headers 为 header-only)
BuildRequires: boost-devel
+# libpng C 库:png++ 头文件链(image.hpp→png.hpp→<png.h>)依赖 png.h,
+# nebula-core-decoders 的 ament export 传递 PNG::PNG,chroot 须有 libpng-devel 提供 png.h 与 -lpng
+BuildRequires: libpng-devel
# 运行时 Requires(§6 三件套:/opt/ros 被 __requires_exclude_from 豁免,autodeps 扫不到)
Requires: ros-%{ros_distro}-ros-workspace
@@ -61,7 +68,8 @@ ament_cmake 构建(autoware_cmake 封装),产物安装至 /opt/ros/%{ros_d
nebula_hesai_decoders colcon 子包;monorepo 其余 colcon 包由各自独立 RPM 提供。
%prep
-%autosetup -n %{RosPkgName}-%{src_version}
+# -a1:额外解压 Source1(png++ vendor 源码)到 Source0 目录
+%autosetup -n %{RosPkgName}-%{src_version} -a1
%build
# ROS 基座环境(§4:setup.sh 可能不存在,用 [ -f ] 守卫)
@@ -69,6 +77,11 @@ nebula_hesai_decoders colcon 子包;monorepo 其余 colcon 包由各自独立
export PYTHONPATH=/opt/ros/%{ros_distro}/lib/python%{python3_version}/site-packages${PYTHONPATH:+:$PYTHONPATH}
export PKG_CONFIG_PATH=/opt/ros/%{ros_distro}/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}
+# png++ header-only vendor(openEuler 无 png++ 包):装头文件到 %{_includedir}/png++,
+# 供本包及已安装的 nebula_core_decoders 头文件 #include <png++/...>(downsample_mask.hpp:24)
+install -d %{_includedir}/png++
+install -p -m 0644 png++-0.2.10/*.hpp %{_includedir}/png++/
+
# monorepo 子包构建:进入目标 colcon 包目录(§5 ament_cmake 显式 out-of-source,规避 openEuler cmake 宏的默认位置参数)
cd src/nebula_hesai/nebula_hesai_decoders
mkdir -p .obj && cd .obj
@@ -86,6 +99,11 @@ make %{?_smp_mflags}
[ -f /opt/ros/%{ros_distro}/setup.sh ] && source /opt/ros/%{ros_distro}/setup.sh || true
export PYTHONPATH=/opt/ros/%{ros_distro}/lib/python%{python3_version}/site-packages${PYTHONPATH:+:$PYTHONPATH}
export PKG_CONFIG_PATH=/opt/ros/%{ros_distro}/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}
+# png++ vendor 头文件与 license 装入 buildroot(供下游包 include + 合规)
+install -d %{buildroot}%{_includedir}/png++
+install -p -m 0644 png++-0.2.10/*.hpp %{buildroot}%{_includedir}/png++/
+install -d %{buildroot}%{_licensedir}/%{name}-bundled-pngpp/
+install -p -m 0644 png++-0.2.10/COPYING %{buildroot}%{_licensedir}/%{name}-bundled-pngpp/COPYING
cd src/nebula_hesai/nebula_hesai_decoders
cd .obj
make install DESTDIR=%{buildroot}
@@ -93,9 +111,14 @@ make install DESTDIR=%{buildroot}
# 文件清单整树拥有(§7:单包策略,ros_distro 前缀一行收尾,对「装了没打包」类错误免疫)
%files
/opt/ros/%{ros_distro}
+# png++ vendor 头文件(header-only,模板代码编译进本包 .so;下游 include 本包头文件复用)
+%{_includedir}/png++/
+%{_licensedir}/%{name}-bundled-pngpp/
%changelog
* 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 前缀
+- 修复构建:vendor png++ 0.2.10 header-only 库(openEuler 无 png++ 包),
+ 解决 downsample_mask.hpp #include <png++/error.hpp> 缺失;补 libpng-devel 提供 png.h
diff --git a/sources b/sources
index 7c9a9eb..6350b9d 100644
--- a/sources
+++ b/sources
@@ -1 +1,2 @@
33b077fcdab43f1089bfb8e8986c44bf nebula-hesai-decoders-1.3.1-1.tar.gz
+bcca7438bb1b55edd0156687f0259c82 pngpp-0.2.10.tar.gz