From b62193bab0b3de371047ddb0aacce74591cabcb8 Mon Sep 17 00:00:00 2001 From: Bernd Waibel Date: Sat, 4 Dec 2021 21:37:39 +0100 Subject: media-gfx/openvdb: fix issue if imath and ilmbase are both installed The patch fixes an issue when OPENVDB_BUILD_BINARIES and OPENVDB_BUILD_RENDER are set and both, dev-libs/imath and media-libs/ilmbase are being installed and allows the package to configure properly in this case. Additionally it fixes the installation location of the python module. Bug: https://bugs.gentoo.org/790350 Package-Manager: Portage-3.0.28, Repoman-3.0.3 Signed-off-by: Bernd Waibel Closes: https://github.com/gentoo/gentoo/pull/23185 Signed-off-by: Sam James --- ...lmbase-if-imath-and-ilmbase-are-installed.patch | 37 ++++++ ...unconditionally-search-Python-interpreter.patch | 34 +++++ media-gfx/openvdb/openvdb-8.2.0-r1.ebuild | 140 +++++++++++++++++++++ media-gfx/openvdb/openvdb-8.2.0.ebuild | 130 ------------------- 4 files changed, 211 insertions(+), 130 deletions(-) create mode 100644 media-gfx/openvdb/files/openvdb-8.2.0-fix-finding-ilmbase-if-imath-and-ilmbase-are-installed.patch create mode 100644 media-gfx/openvdb/files/openvdb-8.2.0-unconditionally-search-Python-interpreter.patch create mode 100644 media-gfx/openvdb/openvdb-8.2.0-r1.ebuild delete mode 100644 media-gfx/openvdb/openvdb-8.2.0.ebuild (limited to 'media-gfx/openvdb') diff --git a/media-gfx/openvdb/files/openvdb-8.2.0-fix-finding-ilmbase-if-imath-and-ilmbase-are-installed.patch b/media-gfx/openvdb/files/openvdb-8.2.0-fix-finding-ilmbase-if-imath-and-ilmbase-are-installed.patch new file mode 100644 index 000000000000..88752e9fa0eb --- /dev/null +++ b/media-gfx/openvdb/files/openvdb-8.2.0-fix-finding-ilmbase-if-imath-and-ilmbase-are-installed.patch @@ -0,0 +1,37 @@ +From: Bernd Waibel +Date: Sat, 4 Dec 2021 20:16:42 +0100 +Subject: [PATCH] fix finding ilmbase if imath and ilmbase are installed + +If both, ilmbase-2.5 and imath-3 are installed, the configuration fails +if OPENVDB_BUILD_BINARIES and OPENVDB_BUILD_RENDER are set. +The patch adds an additional guard based on the USE_IMATH_HALF option +being set and thus decide whether to search for and use imath or ilmbase. + +Signed-off-by: Bernd Waibel +--- a/openvdb/openvdb/cmd/CMakeLists.txt ++++ b/openvdb/openvdb/cmd/CMakeLists.txt +@@ -81,12 +81,17 @@ endif() + #### vdb_render + + if(OPENVDB_BUILD_VDB_RENDER) +- find_package(Imath CONFIG) +- if (NOT TARGET Imath::Imath) ++ if(USE_IMATH_HALF) ++ find_package(Imath CONFIG) ++ if (NOT TARGET Imath::Imath) ++ find_package(IlmBase ${MINIMUM_ILMBASE_VERSION} REQUIRED COMPONENTS Half Iex IlmThread Imath) ++ find_package(OpenEXR ${MINIMUM_OPENEXR_VERSION} REQUIRED COMPONENTS IlmImf) ++ else() ++ find_package(OpenEXR CONFIG) ++ endif() ++ else() + find_package(IlmBase ${MINIMUM_ILMBASE_VERSION} REQUIRED COMPONENTS Half Iex IlmThread Imath) + find_package(OpenEXR ${MINIMUM_OPENEXR_VERSION} REQUIRED COMPONENTS IlmImf) +- else() +- find_package(OpenEXR CONFIG) + endif() + + set(VDB_RENDER_SOURCE_FILES openvdb_render.cc) +-- +2.34.1 + diff --git a/media-gfx/openvdb/files/openvdb-8.2.0-unconditionally-search-Python-interpreter.patch b/media-gfx/openvdb/files/openvdb-8.2.0-unconditionally-search-Python-interpreter.patch new file mode 100644 index 000000000000..933d2965b2bc --- /dev/null +++ b/media-gfx/openvdb/files/openvdb-8.2.0-unconditionally-search-Python-interpreter.patch @@ -0,0 +1,34 @@ +From: Bernd Waibel +Date: Sat, 4 Dec 2021 20:45:49 +0100 +Subject: [PATCH] unconditionally search Python interpreter + +When setting PYOPENVDB_INSTALL_DIRECTORY, CMake would fail with: +``` +-- Could NOT find Python (missing: Python_LIBRARIES Development Development.Module Development.Embed) (found version "3.9.9") +CMake Error at openvdb/openvdb/python/CMakeLists.txt:65 (message): + Could NOT find Python::Module (Required is at least version "2.7") +Call Stack (most recent call first): + openvdb/openvdb/python/CMakeLists.txt:112 (openvdb_check_python_version) + ``` + +It seems like we always need to search for the interpreter. + +Bug: https://bugs.gentoo.org/790350 +Signed-off-by: Bernd Waibel +--- a/openvdb/openvdb/python/CMakeLists.txt ++++ b/openvdb/openvdb/python/CMakeLists.txt +@@ -73,10 +73,7 @@ endfunction() + # target but this was only added in CMake 3.15. See: + # https://github.com/AcademySoftwareFoundation/openvdb/issues/886 + set(OPENVDB_PYTHON_DEPS) +-set(OPENVDB_PYTHON_REQUIRED_COMPONENTS Development) +-if(NOT DEFINED PYOPENVDB_INSTALL_DIRECTORY) +- list(APPEND OPENVDB_PYTHON_REQUIRED_COMPONENTS Interpreter) +-endif() ++set(OPENVDB_PYTHON_REQUIRED_COMPONENTS Development Interpreter) + + if(${CMAKE_VERSION} VERSION_LESS 3.14) + find_package(Python QUIET COMPONENTS ${OPENVDB_PYTHON_REQUIRED_COMPONENTS}) +-- +2.34.1 + diff --git a/media-gfx/openvdb/openvdb-8.2.0-r1.ebuild b/media-gfx/openvdb/openvdb-8.2.0-r1.ebuild new file mode 100644 index 000000000000..1a4d9c0e36e9 --- /dev/null +++ b/media-gfx/openvdb/openvdb-8.2.0-r1.ebuild @@ -0,0 +1,140 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{8,9,10} ) + +inherit cmake python-single-r1 + +DESCRIPTION="Library for the efficient manipulation of volumetric data" +HOMEPAGE="https://www.openvdb.org" +SRC_URI="https://github.com/AcademySoftwareFoundation/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="MPL-2.0" +SLOT="0/8" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" +IUSE="cpu_flags_x86_avx cpu_flags_x86_sse4_2 +blosc doc numpy python static-libs test utils zlib abi6-compat abi7-compat +abi8-compat" +RESTRICT="!test? ( test )" + +REQUIRED_USE=" + numpy? ( python ) + ^^ ( abi6-compat abi7-compat abi8-compat ) + python? ( ${PYTHON_REQUIRED_USE} ) +" +# 8.2.0 should support OpenEXR 3 / imath but it's going to cause issues with Blender AFAIK +# so let's avoid it for now. +RDEPEND=" + dev-cpp/tbb:= + dev-libs/boost:= + dev-libs/jemalloc:= + dev-libs/log4cplus:= + media-libs/glfw + media-libs/glu + sys-libs/zlib:= + x11-libs/libXcursor + x11-libs/libXi + x11-libs/libXinerama + x11-libs/libXrandr + blosc? ( dev-libs/c-blosc:= ) + python? ( + ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-libs/boost:=[numpy?,python?,${PYTHON_USEDEP}] + numpy? ( dev-python/numpy[${PYTHON_USEDEP}] ) + ') + ) + utils? ( + media-libs/ilmbase:= + media-libs/openexr:0= + ) + zlib? ( sys-libs/zlib ) +" + +DEPEND="${RDEPEND}" + +BDEPEND=" + >=dev-util/cmake-3.16.2-r1 + virtual/pkgconfig + doc? ( + app-doc/doxygen + dev-texlive/texlive-bibtexextra + dev-texlive/texlive-fontsextra + dev-texlive/texlive-fontutils + dev-texlive/texlive-latex + dev-texlive/texlive-latexextra + ) + test? ( dev-util/cppunit dev-cpp/gtest ) +" + +PATCHES=( + "${FILESDIR}/${PN}-7.1.0-0001-Fix-multilib-header-source.patch" + "${FILESDIR}/${PN}-8.0.1-add-consistency-for-NumPy-find_package-call.patch" + "${FILESDIR}/${PN}-8.1.0-glfw-libdir.patch" + "${FILESDIR}/${PN}-8.2.0-fix-finding-ilmbase-if-imath-and-ilmbase-are-installed.patch" + "${FILESDIR}/${PN}-8.2.0-unconditionally-search-Python-interpreter.patch" +) + +pkg_setup() { + use python && python-single-r1_pkg_setup +} + +src_configure() { + local myprefix="${EPREFIX}/usr/" + + local version + if use abi6-compat; then + version=6 + elif use abi7-compat; then + version=7 + elif use abi8-compat; then + version=8 + else + die "OpenVDB ABI version is not compatible" + fi + + local mycmakeargs=( + -DCMAKE_INSTALL_DOCDIR="share/doc/${PF}/" + -DOPENVDB_ABI_VERSION_NUMBER="${version}" + -DOPENVDB_BUILD_BINARIES=$(usex utils) + -DOPENVDB_BUILD_DOCS=$(usex doc) + -DOPENVDB_BUILD_UNITTESTS=$(usex test) + -DOPENVDB_CORE_SHARED=ON + -DOPENVDB_CORE_STATIC=$(usex static-libs) + -DOPENVDB_ENABLE_RPATH=OFF + -DUSE_BLOSC=$(usex blosc) + -DUSE_ZLIB=$(usex zlib) + -DUSE_CCACHE=OFF + -DUSE_COLORED_OUTPUT=ON + # Off for now until 9.0.0 for OpenEXR 3 support + -DUSE_IMATH_HALF=OFF + -DUSE_LOG4CPLUS=ON + ) + + if use python; then + mycmakeargs+=( + -DOPENVDB_BUILD_PYTHON_MODULE=ON + -DOPENVDB_BUILD_PYTHON_UNITTESTS=$(usex test) + -DPYOPENVDB_INSTALL_DIRECTORY="$(python_get_sitedir)" + -DPython_EXECUTABLE="${PYTHON}" + -DPython_INCLUDE_DIR="$(python_get_includedir)" + -DUSE_NUMPY=$(usex numpy) + ) + fi + + if use utils; then + mycmakeargs+=( + -DOPENVDB_BUILD_VDB_LOD=ON + -DOPENVDB_BUILD_VDB_RENDER=ON + -DOPENVDB_BUILD_VDB_VIEW=ON + ) + fi + + if use cpu_flags_x86_avx; then + mycmakeargs+=( -DOPENVDB_SIMD=AVX ) + elif use cpu_flags_x86_sse4_2; then + mycmakeargs+=( -DOPENVDB_SIMD=SSE42 ) + fi + + cmake_src_configure +} diff --git a/media-gfx/openvdb/openvdb-8.2.0.ebuild b/media-gfx/openvdb/openvdb-8.2.0.ebuild deleted file mode 100644 index 9b71b3a635df..000000000000 --- a/media-gfx/openvdb/openvdb-8.2.0.ebuild +++ /dev/null @@ -1,130 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{8,9,10} ) - -inherit cmake python-single-r1 - -DESCRIPTION="Library for the efficient manipulation of volumetric data" -HOMEPAGE="https://www.openvdb.org" -SRC_URI="https://github.com/AcademySoftwareFoundation/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="MPL-2.0" -SLOT="0/8" -KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" -IUSE="cpu_flags_x86_avx cpu_flags_x86_sse4_2 +blosc doc numpy python static-libs test utils zlib abi6-compat abi7-compat +abi8-compat" -RESTRICT="!test? ( test )" - -REQUIRED_USE=" - numpy? ( python ) - ^^ ( abi6-compat abi7-compat abi8-compat ) - python? ( ${PYTHON_REQUIRED_USE} ) -" -# 8.2.0 should support OpenEXR 3 / imath but it's going to cause issues with Blender AFAIK -# so let's avoid it for now. -RDEPEND=" - dev-cpp/tbb:= - dev-libs/boost:= - dev-libs/jemalloc:= - dev-libs/log4cplus:= - media-libs/glfw - media-libs/glu - media-libs/ilmbase:= - media-libs/openexr:0= - sys-libs/zlib:= - x11-libs/libXcursor - x11-libs/libXi - x11-libs/libXinerama - x11-libs/libXrandr - blosc? ( dev-libs/c-blosc:= ) - python? ( - ${PYTHON_DEPS} - $(python_gen_cond_dep ' - dev-libs/boost:=[numpy?,python?,${PYTHON_USEDEP}] - numpy? ( dev-python/numpy[${PYTHON_USEDEP}] ) - ') - ) - zlib? ( sys-libs/zlib ) -" - -DEPEND="${RDEPEND}" - -BDEPEND=" - >=dev-util/cmake-3.16.2-r1 - virtual/pkgconfig - doc? ( - app-doc/doxygen - dev-texlive/texlive-bibtexextra - dev-texlive/texlive-fontsextra - dev-texlive/texlive-fontutils - dev-texlive/texlive-latex - dev-texlive/texlive-latexextra - ) - test? ( dev-util/cppunit dev-cpp/gtest ) -" - -PATCHES=( - "${FILESDIR}/${PN}-7.1.0-0001-Fix-multilib-header-source.patch" - "${FILESDIR}/${PN}-8.0.1-add-consistency-for-NumPy-find_package-call.patch" - "${FILESDIR}/${PN}-8.1.0-glfw-libdir.patch" - #"${FILESDIR}/${PN}-9.0.0-unconditionally-search-Python-interpreter.patch" -) - -pkg_setup() { - use python && python-single-r1_pkg_setup -} - -src_configure() { - local myprefix="${EPREFIX}/usr/" - - local version - if use abi6-compat; then - version=6 - elif use abi7-compat; then - version=7 - elif use abi8-compat; then - version=8 - else - die "OpenVDB ABI version is not compatible" - fi - - local mycmakeargs=( - -DCMAKE_INSTALL_DOCDIR="share/doc/${PF}/" - -DOPENVDB_ABI_VERSION_NUMBER="${version}" - -DOPENVDB_BUILD_DOCS=$(usex doc) - -DOPENVDB_BUILD_UNITTESTS=$(usex test) - -DOPENVDB_BUILD_VDB_LOD=$(usex utils) - -DOPENVDB_BUILD_VDB_RENDER=$(usex utils) - -DOPENVDB_BUILD_VDB_VIEW=$(usex utils) - -DOPENVDB_CORE_SHARED=ON - -DOPENVDB_CORE_STATIC=$(usex static-libs) - -DOPENVDB_ENABLE_RPATH=OFF - -DUSE_BLOSC=$(usex blosc) - -DUSE_ZLIB=$(usex zlib) - -DUSE_CCACHE=OFF - -DUSE_COLORED_OUTPUT=ON - # Off for now until 9.0.0 for OpenEXR 3 support - -DUSE_IMATH_HALF=OFF - -DUSE_LOG4CPLUS=ON - ) - - if use python; then - mycmakeargs+=( - -DOPENVDB_BUILD_PYTHON_MODULE=ON - -DUSE_NUMPY=$(usex numpy) - -DOPENVDB_BUILD_PYTHON_UNITTESTS=$(usex test) - -DPython_EXECUTABLE="${PYTHON}" - -DPython_INCLUDE_DIR="$(python_get_includedir)" - ) - fi - - if use cpu_flags_x86_avx; then - mycmakeargs+=( -DOPENVDB_SIMD=AVX ) - elif use cpu_flags_x86_sse4_2; then - mycmakeargs+=( -DOPENVDB_SIMD=SSE42 ) - fi - - cmake_src_configure -} -- cgit v1.2.3-65-gdbad