summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--libopen3d-dev.spec164
-rw-r--r--sources1
3 files changed, 166 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..5e9d76e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/libopen3d-dev-0.19.0.tar.gz
diff --git a/libopen3d-dev.spec b/libopen3d-dev.spec
new file mode 100644
index 0000000..db3a367
--- /dev/null
+++ b/libopen3d-dev.spec
@@ -0,0 +1,164 @@
+# ---------------------------------------------------------------------------
+# Open3D 0.19.0 — packaged as "libopen3d-dev".
+#
+# The rpm name is dictated by the consumer that pulls it in: the ROS package
+# open3d-conversions declares <depend>libopen3d-dev</depend> in package.xml and
+# cmake `find_package(Open3D REQUIRED)`. The build-time requirement is spelled
+# literally as "libopen3d-dev" in the generated ros spec, so this package keeps
+# that name and ships the full development surface (headers, CMake package
+# config, pkgconfig and the shared library) in a single binary package.
+#
+# The COPR project runs builds with networking disabled (enable_net=false), so
+# every ExternalProject dependency of Open3D is pre-fetched into the bundled
+# 3rdparty_downloads/ cache directory (inside the source tarball). CMake's
+# ExternalProject skips the download when the archive is already present in
+# DOWNLOAD_DIR and the hash matches. A handful of upstream URLs cannot be
+# reached (gitlab.com archive endpoints are behind a Cloudflare challenge,
+# github.com release assets and plain git clones need live network access), so
+# those are repointed at the bundled archives in %prep.
+# ---------------------------------------------------------------------------
+
+%global debug_package %{nil}
+
+Name: libopen3d-dev
+Version: 0.19.0
+Release: 1%{?dist}
+Summary: Development files for Open3D, a modern 3D data processing library
+
+License: MIT
+URL: https://github.com/isl-org/Open3D
+Source0: https://github.com/isl-org/Open3D/archive/refs/tags/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
+
+Group: Development/Libraries
+Packager: openEuler Builder <builder@openeuler.org>
+
+BuildRequires: cmake
+BuildRequires: gcc-c++
+BuildRequires: make
+BuildRequires: pkgconfig
+BuildRequires: assimp-devel
+BuildRequires: cppzmq-devel
+BuildRequires: jsoncpp-devel
+BuildRequires: lapack-devel
+BuildRequires: libcurl-devel
+BuildRequires: libjpeg-turbo-devel
+BuildRequires: libpng-devel
+BuildRequires: tbb-devel
+BuildRequires: zeromq-devel
+BuildRequires: zlib-devel
+BuildRequires: mesa-libGL-devel
+BuildRequires: libX11-devel
+BuildRequires: libXcursor-devel
+BuildRequires: libXext-devel
+BuildRequires: libXi-devel
+BuildRequires: libXinerama-devel
+BuildRequires: libXrandr-devel
+BuildRequires: libXxf86vm-devel
+BuildRequires: xorg-x11-proto-devel
+
+%description
+Open3D is an open-source library that supports rapid development of software
+that deals with 3D data. The Open3D frontend exposes a set of carefully
+selected data structures and algorithms in both C++ and Python.
+
+This package contains the shared library together with the C++ development
+files: headers, the Open3D CMake package configuration and the pkgconfig file.
+
+%prep
+%autosetup -n %{name}-%{version}
+
+# ---------------------------------------------------------------------------
+# Repoint the third-party sources that cannot be fetched offline in the COPR
+# build environment at the archives shipped in 3rdparty_downloads/.
+# ---------------------------------------------------------------------------
+
+# eigen: upstream pins a gitlab.com commit archive (unreachable here); use the
+# equivalent 3.4.0 release tarball that is bundled instead.
+sed -i \
+ -e 's#https://gitlab.com/libeigen/eigen/-/archive/da7909592376c893dabbc4b6453a8ffe46b1eb8e/eigen-da7909592376c893dabbc4b6453a8ffe46b1eb8e.tar.gz#"${OPEN3D_THIRD_PARTY_DOWNLOAD_DIR}/eigen/eigen-3.4.0.tar.gz"#' \
+ -e 's#SHA256=37f71e1d7c408e2cc29ef90dcda265e2de0ad5ed6249d7552f6c33897eafd674#SHA256=8586084f71f9bde545ee7fa6d00288b264a2b7ac3607b974e54d13e7162c1c72#' \
+ 3rdparty/eigen/eigen.cmake
+
+# msgpack-c: upstream URL is a GitHub release asset (github.com is not
+# reachable); the bundled archive is the tag archive of the same release.
+sed -i \
+ -e 's#https://github.com/msgpack/msgpack-c/releases/download/cpp-3.3.0/msgpack-3.3.0.tar.gz#"${OPEN3D_THIRD_PARTY_DOWNLOAD_DIR}/msgpack/msgpack-3.3.0.tar.gz"#' \
+ -e 's#SHA256=6e114d12a5ddb8cb11f669f83f32246e484a8addd0ce93f274996f1941c1f07b#SHA256=754c3ace499a63e45b77ef4bcab4ee602c2c414f58403bce826b76ffc2f77d0b#' \
+ 3rdparty/msgpack/msgpack_build.cmake
+
+# uvatlas: DirectX-Headers/DirectXMath are git clones, which ExternalProject
+# cannot serve from DOWNLOAD_DIR. Use the equivalent bundled tag archives.
+sed -i \
+ -e 's#GIT_REPOSITORY https://github.com/microsoft/DirectX-Headers.git#URL "${OPEN3D_THIRD_PARTY_DOWNLOAD_DIR}/uvatlas/DirectX-Headers.tar.gz"\n URL_HASH SHA256=bf0183981e505336e918609374907c934b99eb61c0826d75a5649f41568abc4b#' \
+ -e 's#GIT_REPOSITORY https://github.com/microsoft/DirectXMath.git#URL "${OPEN3D_THIRD_PARTY_DOWNLOAD_DIR}/uvatlas/DirectXMath.tar.gz"\n URL_HASH SHA256=b2c5b419ca2c567860f7c204c9c0890573e8a58c8d877473e4f3ba6b851ca4ce#' \
+ -e '/GIT_TAG v1\.606\.3/d' \
+ -e '/GIT_TAG may2022/d' \
+ -e '/GIT_SHALLOW TRUE/d' \
+ 3rdparty/uvatlas/uvatlas.cmake
+
+# glfw: only the X11 backend is used on openEuler; wayland support would pull
+# in a further set of build requirements for no benefit.
+sed -i 's#-DGLFW_BUILD_DOCS=OFF#-DGLFW_BUILD_DOCS=OFF\n -DGLFW_BUILD_WAYLAND=OFF#' \
+ 3rdparty/glfw/glfw.cmake
+
+%build
+%cmake \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DBUILD_SHARED_LIBS=ON \
+ -DDEVELOPER_BUILD=OFF \
+ -DBUILD_CUDA_MODULE=OFF \
+ -DBUILD_SYCL_MODULE=OFF \
+ -DBUILD_ISPC_MODULE=OFF \
+ -DBUILD_GUI=OFF \
+ -DBUILD_PYTHON_MODULE=OFF \
+ -DBUILD_UNIT_TESTS=OFF \
+ -DBUILD_BENCHMARKS=OFF \
+ -DBUILD_EXAMPLES=OFF \
+ -DBUILD_WEBRTC=OFF \
+ -DBUILD_JUPYTER_EXTENSION=OFF \
+ -DBUILD_LIBREALSENSE=OFF \
+ -DBUILD_AZURE_KINECT=OFF \
+ -DBUILD_TENSORFLOW_OPS=OFF \
+ -DBUILD_PYTORCH_OPS=OFF \
+ -DWITH_OPENMP=ON \
+ -DWITH_IPP=OFF \
+ -DENABLE_HEADLESS_RENDERING=OFF \
+ -DUSE_BLAS=ON \
+ -DUSE_SYSTEM_BLAS=ON \
+ -DLAPACKE_DIR=%{_prefix} \
+ -DUSE_SYSTEM_ASSIMP=ON \
+ -DUSE_SYSTEM_JSONCPP=ON \
+ -DUSE_SYSTEM_TBB=ON \
+ -DUSE_SYSTEM_ZEROMQ=ON \
+ -DUSE_SYSTEM_CURL=ON \
+ -DUSE_SYSTEM_PNG=ON \
+ -DUSE_SYSTEM_JPEG=ON \
+ -DUSE_SYSTEM_EIGEN3=OFF \
+ -DUSE_SYSTEM_FMT=OFF \
+ -DUSE_SYSTEM_MSGPACK=OFF \
+ -DUSE_SYSTEM_NANOFLANN=OFF \
+ -DUSE_SYSTEM_QHULLCPP=OFF \
+ -DUSE_SYSTEM_TINYGLTF=OFF \
+ -DUSE_SYSTEM_TINYOBJLOADER=OFF \
+ -DUSE_SYSTEM_LIBLZF=OFF \
+ -DUSE_SYSTEM_GLFW=OFF \
+ -DUSE_SYSTEM_GLEW=OFF \
+ -DUSE_SYSTEM_EMBREE=OFF \
+ -DUSE_SYSTEM_VTK=OFF \
+ -DBUILD_VTK_FROM_SOURCE=ON
+%cmake_build
+
+%install
+%cmake_install
+
+%files
+%license LICENSE
+%doc README.md
+%{_libdir}/libOpen3D.so*
+%{_includedir}/open3d/
+%{_libdir}/cmake/Open3D/
+%{_libdir}/pkgconfig/Open3D.pc
+
+%changelog
+* Tue Sep 22 2026 ai-importer <ai-importer@openeuler.org> - 0.19.0-1
+- Initial import (ROS batch, dependency of open3d-conversions)
diff --git a/sources b/sources
new file mode 100644
index 0000000..8f0eeb3
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+4cc0b359b232c85bfb6a4ca7fcee7a57 libopen3d-dev-0.19.0.tar.gz