diff options
Diffstat (limited to 'nebula-hesai-decoders.spec')
| -rw-r--r-- | nebula-hesai-decoders.spec | 25 |
1 files changed, 24 insertions, 1 deletions
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 |
