# --------------------------------------------------------------------------- # 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 libopen3d-dev 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 BuildRequires: cmake BuildRequires: gcc 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 # openEuler's cmake configure macro configures IN-SOURCE: it does not pass # -S/-B, so the cache lands in the unpacked source directory # (BUILD/libopen3d-dev-0.19.0). The cmake_build / cmake_install macros from # the same macro set, however, always use the out-of-source vpath directory # (the _vpath_builddir value, i.e. aarch64-openEuler-linux-gnu), which the # configure step never created -- hence "is not a directory". Drive the # already-configured in-source tree explicitly instead. %{__cmake} --build . %{?_smp_mflags} --verbose %install DESTDIR=%{buildroot} %{__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 - 0.19.0-1 - Initial import (ROS batch, dependency of open3d-conversions)