summaryrefslogtreecommitdiff
path: root/nebula-core-decoders.spec
diff options
context:
space:
mode:
Diffstat (limited to 'nebula-core-decoders.spec')
-rw-r--r--nebula-core-decoders.spec94
1 files changed, 56 insertions, 38 deletions
diff --git a/nebula-core-decoders.spec b/nebula-core-decoders.spec
index 00489e7..6911f21 100644
--- a/nebula-core-decoders.spec
+++ b/nebula-core-decoders.spec
@@ -1,13 +1,14 @@
%define ros_distro humble
%define RosPkgName nebula-core-decoders
+%define commit 8ce64073f41c2ec1166334ce7f8fb2edc13c86e5
Name: ros-%{ros_distro}-%{RosPkgName}
Version: 1.2.0
Release: 1%{?dist}
Summary: Nebula Decoders Base Library
-License: Apache 2.0
+License: Apache-2.0
URL: https://github.com/tier4/nebula
-Source0: https://github.com/tier4/nebula/archive/refs/tags/v%{version}.tar.gz#/nebula-%{version}.tar.gz
+Source0: https://github.com/tier4/nebula/archive/%{commit}.tar.gz#/nebula-core-decoders-%{version}.tar.gz
# debug 子包无意义(/opt 前缀,strip/debugedit 路径非常规)
%global debug_package %{nil}
@@ -17,62 +18,79 @@ Source0: https://github.com/tier4/nebula/archive/refs/tags/v%{version}.tar.gz
%global __provides_exclude_from ^/opt/ros/%{ros_distro}/.*$
%global __requires_exclude_from ^/opt/ros/%{ros_distro}/.*$
-# ament_cmake 构建工具
-BuildRequires: ros-%{ros_distro}-ament-cmake
-BuildRequires: ros-%{ros_distro}-autoware-cmake
-BuildRequires: ros-%{ros_distro}-ros-environment
-# 系统依赖
-BuildRequires: libpng-devel
-BuildRequires: eigen3-devel
-BuildRequires: boost-devel
-# ROS 依赖
-BuildRequires: ros-%{ros_distro}-nebula-core-common
-BuildRequires: ros-%{ros_distro}-sensor-msgs
+BuildRequires: cmake
+BuildRequires: gcc-c++
+# ament_cmake 形态构建工具依赖
+BuildRequires: ros-%{ros_distro}-ament-cmake
+# autoware_cmake 提供 autoware_package() 宏(ros-upstream.list,同 COPR 递归构建)
+BuildRequires: ros-%{ros_distro}-autoware-cmake
+# buildtool_depend
+BuildRequires: ros-%{ros_distro}-ros-environment
+# <depend> ROS 包(同 COPR 递归构建 / SIG 已有)
+BuildRequires: ros-%{ros_distro}-nebula-core-common
+BuildRequires: ros-%{ros_distro}-sensor-msgs
+# <build_depend> 系统库(pkg.remap: libpng-dev -> libpng-devel)
+BuildRequires: libpng-devel
+# <depend> 系统库(pkg.remap: boost -> boost-devel, eigen -> eigen3-devel)
+BuildRequires: boost-devel
+BuildRequires: eigen3-devel
-Requires: ros-%{ros_distro}-ros-workspace
-Requires: ros-%{ros_distro}-ament-cmake
-Requires: ros-%{ros_distro}-nebula-core-common
-Requires: ros-%{ros_distro}-sensor-msgs
+# 运行时 Requires(/opt/ros 被 __requires_exclude_from 豁免,autodeps 扫不到,必须手写)
+Requires: ros-%{ros_distro}-ros-workspace
+Requires: ros-%{ros_distro}-ament-cmake
+Requires: ros-%{ros_distro}-nebula-core-common
+Requires: ros-%{ros_distro}-sensor-msgs
+Requires: boost-devel
+Requires: eigen3-devel
+Requires: libpng-devel
-Provides: %{name}-devel = %{version}-%{release}
-Provides: %{name}-doc = %{version}-%{release}
-Provides: %{name}-runtime = %{version}-%{release}
+# 单包策略:虚拟别名兼容依赖方,严禁拆实体子包
+Provides: %{name}-devel = %{version}-%{release}
+Provides: %{name}-doc = %{version}-%{release}
+Provides: %{name}-runtime = %{version}-%{release}
%description
-Nebula Decoders Base Library — header-only interface library providing
-point filter and scan cutter primitives for the Nebula LiDAR driver suite.
+Nebula Decoders Base Library — a header-only INTERFACE library providing
+decoder interfaces for the Nebula universal sensor driver platform.
+Built from the tier4/nebula monorepo (package: nebula_core_decoders).
%prep
-%autosetup -n nebula-%{version}
+%autosetup -n %{RosPkgName}-%{version}
%build
+# ROS 基座环境(chroot 已配置 ROS SIG repo;无 ROS 依赖的包 buildroot 里
+# 可能没有 setup.sh,必须用 [ -f ] 守卫——直接 source 不存在的文件在
+# 严格 sh 下会中止整个 %build 脚本,|| true 挡不住)
[ -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}
-mkdir -p src/nebula_core/nebula_core_decoders/.obj
-cd src/nebula_core/nebula_core_decoders/.obj
-%cmake3 \
- -DCMAKE_INSTALL_PREFIX="/opt/ros/%{ros_distro}" \
- -DAMENT_PREFIX_PATH="/opt/ros/%{ros_distro}" \
- -DCMAKE_PREFIX_PATH="/opt/ros/%{ros_distro}" \
- -UINCLUDE_INSTALL_DIR -ULIB_INSTALL_DIR -USYSCONF_INSTALL_DIR \
- -USHARE_INSTALL_PREFIX -ULIB_SUFFIX \
- -DSETUPTOOLS_DEB_LAYOUT=OFF \
- -DBUILD_TESTING=OFF -DTESTING=OFF -DCMAKE_SUPPRESS_REGENERATION=ON \
- ..
+# monorepo 子包目录:src/nebula_core/nebula_core_decoders
+cd src/nebula_core/nebula_core_decoders
+# 显式 out-of-source 构建(避免 openEuler %cmake 宏位置参数坑)
+mkdir -p .obj && cd .obj
+cmake .. \
+ -DCMAKE_INSTALL_PREFIX="/opt/ros/%{ros_distro}" \
+ -DAMENT_PREFIX_PATH="/opt/ros/%{ros_distro}" \
+ -DCMAKE_PREFIX_PATH="/opt/ros/%{ros_distro}" \
+ -UINCLUDE_INSTALL_DIR -ULIB_INSTALL_DIR -USYSCONF_INSTALL_DIR -USHARE_INSTALL_PREFIX -ULIB_SUFFIX \
+ -DSETUPTOOLS_DEB_LAYOUT=OFF \
+ -DBUILD_TESTING=OFF
%make_build
%install
+# ROS 基座环境
[ -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}
cd src/nebula_core/nebula_core_decoders/.obj
-%make_install DESTDIR=%{buildroot}
+make install DESTDIR=%{buildroot}
%files
-/opt/ros/%{ros_distro}/
+/opt/ros/%{ros_distro}
%changelog
-* Sun Sep 20 2026 ROS SIG <ros@openeuler.org> - 1.2.0-1
-- Initial package for ros-humble-nebula-core-decoders 1.2.0
+* Thu Oct 08 2026 ROS AI Importer <ros-sig@openeuler.org> - 1.2.0-1
+- Initial RPM package for ros-humble-nebula-core-decoders
+- Built from tier4/nebula monorepo (commit 8ce64073)