summaryrefslogtreecommitdiff
path: root/openvdb-vendor.spec
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2026-10-22 05:08:45 +0000
committerCoprDistGit <infra@openeuler.org>2026-10-22 05:08:45 +0000
commit9345a484c2663674192886b89983ba6d288f3dd0 (patch)
tree3848d499c5d7f3740549adfcd218a13ad2d87808 /openvdb-vendor.spec
parenta947d96671f6c2beea2aeb0d889dbfc87e915d81 (diff)
automatic import of ros-humble-openvdb-vendor
Diffstat (limited to 'openvdb-vendor.spec')
-rw-r--r--openvdb-vendor.spec66
1 files changed, 45 insertions, 21 deletions
diff --git a/openvdb-vendor.spec b/openvdb-vendor.spec
index 6c84ba3..3aae99e 100644
--- a/openvdb-vendor.spec
+++ b/openvdb-vendor.spec
@@ -1,14 +1,17 @@
%define ros_distro humble
%define RosPkgName openvdb-vendor
+%define ros_pkg_name openvdb_vendor
%define src_version 2.3.4-1
+%define openvdb_version 10.0.1
Name: ros-%{ros_distro}-%{RosPkgName}
Version: 2.3.4
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Wrapper around OpenVDB, if not found on the system, will compile from source
License: LGPL v2.1
URL: https://github.com/SteveMacenski/spatio_temporal_voxel_layer/tree/humble
Source0: %{RosPkgName}-%{src_version}.tar.gz
+Source1: openvdb-%{openvdb_version}.tar.gz
%global debug_package %{nil}
%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g')
@@ -16,16 +19,12 @@ Source0: %{RosPkgName}-%{src_version}.tar.gz
%global __requires_exclude_from ^/opt/ros/%{ros_distro}/.*$
BuildRequires: cmake
-BuildRequires: ros-%{ros_distro}-ament-cmake
-BuildRequires: ros-%{ros_distro}-ament-cmake-vendor-package
BuildRequires: boost-devel
BuildRequires: tbb-devel
BuildRequires: zlib-devel
-BuildRequires: git
BuildRequires: blosc-devel
Requires: ros-%{ros_distro}-ros-workspace
-Requires: ros-%{ros_distro}-ament-cmake
Requires: boost-devel
Requires: tbb-devel
Requires: zlib-devel
@@ -36,38 +35,63 @@ Provides: %{name}-doc = %{version}-%{release}
Provides: %{name}-runtime = %{version}-%{release}
%description
-Wrapper around OpenVDB, if not found on the system, will compile from source
+Wrapper around OpenVDB, if not found on the system, will compile from source.
+Vendors OpenVDB %{openvdb_version} built directly from source tarball,
+bypassing ament_cmake_vendor_package (which requires python3-vcstool
+unavailable in the build environment).
%prep
-%autosetup -n %{RosPkgName}-%{src_version}
+%autosetup -n %{RosPkgName}-%{src_version} -a1
%build
-[ -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 openvdb_vendor
-mkdir -p .obj && cd .obj
+cd openvdb-%{openvdb_version}
+mkdir -p build && cd build
%cmake3 \
- -DCMAKE_INSTALL_PREFIX="/opt/ros/%{ros_distro}" \
- -DAMENT_PREFIX_PATH="/opt/ros/%{ros_distro}" \
- -DCMAKE_PREFIX_PATH="/opt/ros/%{ros_distro}" \
+ -DCMAKE_INSTALL_PREFIX="/opt/ros/%{ros_distro}/opt/openvdb_vendor" \
+ -DCMAKE_INSTALL_LIBDIR="lib" \
-UINCLUDE_INSTALL_DIR -ULIB_INSTALL_DIR -USYSCONF_INSTALL_DIR -USHARE_INSTALL_PREFIX -ULIB_SUFFIX \
- -DSETUPTOOLS_DEB_LAYOUT=OFF \
+ -DOPENVDB_BUILD_BINARIES=OFF \
+ -DOPENVDB_BUILD_PYTHON_MODULE=OFF \
+ -DOPENVDB_BUILD_UNITTESTS=OFF \
+ -DOPENVDB_BUILD_DOCS=OFF \
+ -DCONCURRENT_MALLOC=Tbbmalloc \
-DBUILD_TESTING=OFF -DTESTING=OFF -DCMAKE_SUPPRESS_REGENERATION=ON \
..
make %{?_smp_mflags}
%install
-[ -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 openvdb_vendor
-cd .obj
+cd openvdb-%{openvdb_version}/build
make install DESTDIR=%{buildroot}
+ROS_PREFIX=%{buildroot}/opt/ros/%{ros_distro}
+ROS_SHARE_DIR=${ROS_PREFIX}/share/%{ros_pkg_name}
+mkdir -p ${ROS_SHARE_DIR}/cmake
+mkdir -p ${ROS_PREFIX}/share/ament_index/resource_index/packages
+
+cp %{_builddir}/%{RosPkgName}-%{src_version}/openvdb_vendor/package.xml ${ROS_SHARE_DIR}/
+cp %{_builddir}/%{RosPkgName}-%{src_version}/openvdb_vendor/openvdb_vendor-extras.cmake ${ROS_SHARE_DIR}/cmake/
+
+cat > ${ROS_SHARE_DIR}/cmake/%{ros_pkg_name}Config.cmake << 'CMAKE_EOF'
+list(APPEND openvdb_vendor_CONFIG_INCLUDED TRUE)
+include("${CMAKE_CURRENT_LIST_DIR}/openvdb_vendor-extras.cmake")
+CMAKE_EOF
+
+cat > ${ROS_SHARE_DIR}/cmake/%{ros_pkg_name}ConfigVersion.cmake << 'CMAKE_EOF'
+set(PACKAGE_VERSION "2.3.4")
+set(PACKAGE_VERSION_EXACT FALSE)
+set(PACKAGE_VERSION_COMPATIBLE TRUE)
+CMAKE_EOF
+
+touch ${ROS_PREFIX}/share/ament_index/resource_index/packages/%{ros_pkg_name}
+
%files
/opt/ros/%{ros_distro}
%changelog
+* Thu Oct 22 2026 ai-importer <ai-importer@openeuler.org> - 2.3.4-2
+- Rebuild without ament-cmake-vendor-package (python3-vcstool unavailable)
+- Vendor OpenVDB 10.0.1 directly from Source1 tarball
+- Manually install ROS package metadata (package.xml, cmake config, ament index)
+
* Thu Oct 22 2026 ai-importer <ai-importer@openeuler.org> - 2.3.4-1
- Initial import (ROS batch)