diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | nebula-velodyne-decoders.spec | 128 | ||||
| -rw-r--r-- | sources | 2 |
3 files changed, 63 insertions, 68 deletions
@@ -1 +1,2 @@ /nebula-velodyne-decoders-1.2.0.tar.gz +/nebula-velodyne-decoders-1.3.1-1.tar.gz diff --git a/nebula-velodyne-decoders.spec b/nebula-velodyne-decoders.spec index 26f80c2..852085c 100644 --- a/nebula-velodyne-decoders.spec +++ b/nebula-velodyne-decoders.spec @@ -1,100 +1,94 @@ %define ros_distro humble %define RosPkgName nebula-velodyne-decoders -%define commit 8ce64073f41c2ec1166334ce7f8fb2edc13c86e5 +%define src_version 1.3.1-1 -Name: ros-%{ros_distro}-%{RosPkgName} -Version: 1.2.0 -Release: 1%{?dist} -Summary: Nebula Velodyne Decoders Library -License: Apache-2.0 -URL: https://github.com/tier4/nebula -Source0: https://github.com/tier4/nebula/archive/%{commit}.tar.gz#/nebula-velodyne-decoders-%{version}.tar.gz +Name: ros-%{ros_distro}-%{RosPkgName} +Version: 1.3.1 +Release: 1%{?dist} +Summary: Nebula Velodyne Decoders Library +License: Apache 2 +URL: https://github.com/tier4/nebula/tree/main +Source0: %{RosPkgName}-%{src_version}.tar.gz -# debug 子包无意义(/opt 前缀,strip/debugedit 路径非常规) %global debug_package %{nil} -# /opt 下 python 字节码编译会写标准 sitelib 路径,摘掉 brp-python-bytecompile %global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') -# ROS 包不做自动依赖扫描(.so 全在 /opt/ros 下,由 ament 间接依赖模型替代) %global __provides_exclude_from ^/opt/ros/%{ros_distro}/.*$ %global __requires_exclude_from ^/opt/ros/%{ros_distro}/.*$ -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 包(SIG 已有 / 同 COPR 递归构建) -BuildRequires: ros-%{ros_distro}-angles -BuildRequires: ros-%{ros_distro}-rclcpp -BuildRequires: ros-%{ros_distro}-velodyne-msgs -BuildRequires: ros-%{ros_distro}-nebula-core-common -BuildRequires: ros-%{ros_distro}-nebula-core-decoders -BuildRequires: ros-%{ros_distro}-nebula-velodyne-common -# <depend> 系统库(pkg.remap: boost -> boost-devel) -BuildRequires: boost-devel +# AI 兜底生成:monorepo 多级嵌套,package.xml 位于 +# src/nebula_velodyne/nebula_velodyne_decoders/,gen_ros_spec 模板的 +# parse_package_xml 仅扫一级子目录无法定位 → needs_llm 转人工。 +# 依赖分类仍沿用 analyze_ros_deps.classify_deps 同源函数(依据 +# ros-projects.list / ros-upstream.list / pkg.remap,零幻觉): +# - angles / rclcpp / ros-environment / velodyne-msgs:ros-projects.list(SIG 已有) +# - autoware-cmake / nebula-core-common / nebula-core-decoders / +# nebula-velodyne-common:ros-upstream.list(rosdistro 真实存在, +# 注册递归构建;其中三个 nebula 兄弟为 reuse_copr_project 已有 provider) +# - boost:pkg.remap 映射为 boost-devel(基础源实证 boost-devel-1.83.0) +# buildtool_depend(autoware_cmake/ros_environment) 一并写 BuildRequires。 +BuildRequires: cmake +BuildRequires: ros-humble-ament-cmake +BuildRequires: ros-humble-angles +BuildRequires: ros-humble-rclcpp +BuildRequires: ros-humble-ros-environment +BuildRequires: ros-humble-velodyne-msgs +BuildRequires: ros-humble-autoware-cmake +BuildRequires: ros-humble-nebula-core-common +BuildRequires: ros-humble-nebula-core-decoders +BuildRequires: ros-humble-nebula-velodyne-common +BuildRequires: boost-devel -# 运行时 Requires(/opt/ros 被 __requires_exclude_from 豁免,autodeps 扫不到,必须手写) -Requires: ros-%{ros_distro}-ros-workspace -Requires: ros-%{ros_distro}-ament-cmake -Requires: ros-%{ros_distro}-angles -Requires: ros-%{ros_distro}-rclcpp -Requires: ros-%{ros_distro}-velodyne-msgs -Requires: ros-%{ros_distro}-nebula-core-common -Requires: ros-%{ros_distro}-nebula-core-decoders -Requires: ros-%{ros_distro}-nebula-velodyne-common -Requires: boost-devel +# 运行时 Requires 三件套(spec-rules-ros §6):ros-workspace 提供 +# /opt/ros/<distro>/setup.sh;ament-cmake 提供 ament 运行期钩子。 +# 其余为 package.xml <depend>(build+exec 双态)映射,不得降级 Recommends。 +Requires: ros-humble-ros-workspace +Requires: ros-humble-ament-cmake +Requires: ros-humble-angles +Requires: ros-humble-rclcpp +Requires: ros-humble-velodyne-msgs +Requires: ros-humble-nebula-core-common +Requires: ros-humble-nebula-core-decoders +Requires: ros-humble-nebula-velodyne-common +Requires: boost-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 Velodyne Decoders Library — shared library providing Velodyne LiDAR -decoder implementations (VLP-16, VLP-32, VLS-128) for the Nebula universal -sensor driver platform. -Built from the tier4/nebula monorepo (package: nebula_velodyne_decoders). +Nebula Velodyne Decoders Library %prep -%autosetup -n %{RosPkgName}-%{version} +%autosetup -n %{RosPkgName}-%{src_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} - -# monorepo 子包目录:src/nebula_velodyne/nebula_velodyne_decoders +# monorepo 子目录构建:CMakeLists.txt 位于 src/nebula_velodyne/nebula_velodyne_decoders/ cd src/nebula_velodyne/nebula_velodyne_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 +%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 \ + .. +make %{?_smp_mflags} %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_velodyne/nebula_velodyne_decoders/.obj +cd src/nebula_velodyne/nebula_velodyne_decoders +cd .obj make install DESTDIR=%{buildroot} %files /opt/ros/%{ros_distro} %changelog -* Thu Oct 08 2026 ROS AI Importer <ros-sig@openeuler.org> - 1.2.0-1 -- Initial RPM package for ros-humble-nebula-velodyne-decoders -- Built from tier4/nebula monorepo (commit 8ce64073) +* Wed Oct 21 2026 ai-importer <ai-importer@openeuler.org> - 1.3.1-1 +- Initial import (ROS batch) @@ -1 +1 @@ -f2abc4255bddb3328df53af265b010ea nebula-velodyne-decoders-1.2.0.tar.gz +daa547f523fbeb61569f145d70600ca7 nebula-velodyne-decoders-1.3.1-1.tar.gz |
