From f3439d6caba79c7067991ef0403d855917255726 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Tue, 20 Feb 2024 17:40:11 +0000 Subject: gentoo auto-resync : 20:02:2024 - 17:40:11 --- media-gfx/blender/Manifest | 5 +- media-gfx/blender/blender-4.0.1-r1.ebuild | 494 +++++++++++++++++++++ media-gfx/blender/blender-4.0.1.ebuild | 490 -------------------- media-gfx/blender/blender-9999.ebuild | 8 +- .../blender/files/blender-4.0.1-openvdb-11.patch | 73 +++ 5 files changed, 576 insertions(+), 494 deletions(-) create mode 100644 media-gfx/blender/blender-4.0.1-r1.ebuild delete mode 100644 media-gfx/blender/blender-4.0.1.ebuild create mode 100644 media-gfx/blender/files/blender-4.0.1-openvdb-11.patch (limited to 'media-gfx/blender') diff --git a/media-gfx/blender/Manifest b/media-gfx/blender/Manifest index d555b19be162..86bfdf660d8f 100644 --- a/media-gfx/blender/Manifest +++ b/media-gfx/blender/Manifest @@ -4,6 +4,7 @@ AUX blender-3.2.2-support-building-with-musl-libc.patch 5583 BLAKE2B 193548ea616 AUX blender-3.3.0-fix-build-with-boost-1.81.patch 490 BLAKE2B ff9625bec6783a5a55d2d0a8b9afeae718e0c8d714aee42e89577158504b72f6cdc325a3aa4b21291319ed886f722d6216af8ba4680ff5cb046289c9f2dc9f61 SHA512 9a7bad9947c03e3265c07266fb901319665cb2869395c46e5a9a63953772a5af880b6f038e38a695bb9e0cbfaae1f1a08fa61b8a565d2081e6c8d9e6c7a80547 AUX blender-3.3.6-cycles-gcc13.patch 299 BLAKE2B c20c113bf845cb55188cd53c4c3e52e2876430d5b708161afbfd6afd0a50fb7cc4cf099df2202fa8c149bb18dc82e9e880cd083f35b61faaff80852a39358e3f SHA512 8986fd86e1f060c7310e5ecbae8f968faae5257af92f248874d7bccade4b75890a51a97706be653a6441292f0a459aa88b9935f545733eb34ac3b324c0d3b2df AUX blender-4.0.1-fix-cflags-cleaner.patch 2222 BLAKE2B 2006ddd28ad270417e7832dbb4499752c90e8f6e5372c601a6694ee53aa0f47ed8eaef356e9b605f5add6144ff8fd200a7d9642441a1f213ec92e50e23806842 SHA512 5e130d917db80706b85e49b79803bd19b229bcf6e317789812ff5c0dc706b2c7bf31af43e6a226ee6dea9ee478f76eaefc903657c693f1d2dbcd85f552f2578c +AUX blender-4.0.1-openvdb-11.patch 3160 BLAKE2B 673d47a5b38e3758a1442173ec17a3bf49151d3d916ccc85946183d269bf016bf50c495f784d79f4635cbf6ba2e9fbdf8ced83130f788590a13fea959266f09e SHA512 13bc4817eb9ea8ddfaca061ae1c1805487284c458057490e124e1b6a76b88a71a5a62f77b6af2d2fb550d755b5c70b90c40f638562239420598078a11450e192 DIST blender-3.3.6.tar.xz 41912972 BLAKE2B 94f9dd1a7993f399d612275ed3cfc1d482b0778d2d0b50ae40b73714b6afce93e036915a5b8ea415b6642b1e2d0a281db15ba8addd95c23771c381050722aac7 SHA512 db453b9c7c0ad508e04f603c970e111afb577f3dc0bd25f2ce47312e8560223dcf0307b0a306014dd79adda76de49b6d26e6e63400cade1430568332fe5b2d57 DIST blender-3.3.8.tar.xz 41915180 BLAKE2B 7fb24afe2151bba53d8c25160bd697145aced74a8cd9a7ac92b2f66bc0ab59e995009f20f9e9bb622b05d614919137153805a2e233de5b0bb0a41a2ac3405a76 SHA512 63aef1e543a9c8bbc5f8838292ad2e8d0d9a8ee6fd2d71a419c1edc1a0ee1f59f7e9eab59bc20bf32ca56ba440bab1534c6c94c6ca2c5ab964e80bd452b7e519 DIST blender-3.4.1.tar.xz 53666296 BLAKE2B ec5b2771c1b55ecdf3c2c86a413ae5599545800fc072eff45cf212b32c74af60fc3d650ad931fff221c1073adb2b447df3287a965f884a4760a5d972c9877aee SHA512 d6de3ec9cd1a1e4d4e4a838af0cfc113c91c3c1b66703027e0ed61bd818dafc4e4304fd041738ddea32fc76b1ad9b7737cbdcf74d56a0406a87c457375d907ab @@ -17,6 +18,6 @@ EBUILD blender-3.4.1-r3.ebuild 13812 BLAKE2B 5203a3df9b11bba999e8ad1c9f420f3cb22 EBUILD blender-3.5.1-r1.ebuild 14058 BLAKE2B 0cd9392356e2c5f4de370e3fafdb1df83eb14711e737a53d151b9d74ea66d46d72918b8bccbd3fa2eb6a7472b4163ada545b4ec6851c4063c2d071bb8deadeb5 SHA512 7f2b225ea53a654078a68800d35edb9d8e2e63312f31002cbbf5654a437ef05f14f581cba2c3df49ddf5f4db8ab88cd931a8c52497e1377d2e1bd633daf54c10 EBUILD blender-3.6.0.ebuild 14058 BLAKE2B 0cd9392356e2c5f4de370e3fafdb1df83eb14711e737a53d151b9d74ea66d46d72918b8bccbd3fa2eb6a7472b4163ada545b4ec6851c4063c2d071bb8deadeb5 SHA512 7f2b225ea53a654078a68800d35edb9d8e2e63312f31002cbbf5654a437ef05f14f581cba2c3df49ddf5f4db8ab88cd931a8c52497e1377d2e1bd633daf54c10 EBUILD blender-3.6.5.ebuild 13964 BLAKE2B 7f20a9f700239826e3d76f0f4a421c3427373e09d929f6cc18d42d45d61e49cf642e62b2fee7ba2a987b0e2a6a8440266bb8ca7e510d7bdf0a30ad91265e4352 SHA512 e223f60c90bd714edaf7b5eb0f96f06c40c690bf44483adcdc28d20e000be20e7e76c57ca9de8413369a52b897aaccf2107d8c7d1f537aa988787e477099d3b8 -EBUILD blender-4.0.1.ebuild 14919 BLAKE2B 3e92c30ecded0a949ed5cb2ef8e2f282f3c627adbfd3b410b7ae5f4abdd5e385fac932bf1bc11d9df1c3fbe12a59b572efb5395681fc2075d2b1c3c69c24cba6 SHA512 8151f0e745851b1aaca3b78baa0cce6b7ba945a7a07d950b3a0b3b0054d2d9059a4022b2bcdb27c8e6602951f512d34897adefb3303aa343bb20947810c49bcf -EBUILD blender-9999.ebuild 14949 BLAKE2B 940c8af5c80f27f4fc14d5c7bccfea1d04b5f783ab303c057fd530313e81a501e1cc7d7b23a2ed3520c63b2af8a2627cf3dde875212abf1a3d83b50ce3b569d0 SHA512 f18ed5bfa396fee0e597cb568d712f6d8feab1251e5f9c38a562d347409533d6c430f3a04b076efeb6f0de084593038a62544aa06f4ec51c98c46d432ea983d2 +EBUILD blender-4.0.1-r1.ebuild 15105 BLAKE2B b3fdaef064c6cb05f86f097fe3e49bf62a426751e4f5608e8bb0997e58f16977eca30c890e9466a782c7e82d6c7fac0317ba7ea01c33e08983f70ceeae0a96ea SHA512 3f4713dcea4ccb411462c082614e4b05a6b18f1ba7b2bb42150b7da662be68ce18f4152d96075c719f5af91cadd28b4f029c6f44397c8a75d72b2221c4d0ed75 +EBUILD blender-9999.ebuild 15014 BLAKE2B 282e0e6922fbcf4a8aff9e810a5deca4a5a3be2c643dc80ce7209c4b24e2719bd5be1c655ca145f6900197a5ca0fe00c0cd1d89f9aa476984a91b1a6bc922331 SHA512 e41c87f92086a792a886fceeeeacd4fef82064775dd3945033aad14b9f2fb3381a554690c53dd1c07bcc42cce8115e3f110b2e92f081ae45ff3a444e6f28de9c MISC metadata.xml 3360 BLAKE2B 6d69044997db69c2bcabdb5aec72f95fb424b0f02cdd5bb3a58cc629d782a163d92cc446776451b86a5175c498c95d4869a23c6feec1318ee6d723c3849f3ea1 SHA512 8c37acbe5e9514139b04c473a6e0af46ead1e8377f7a28182abc617713d03c9e71ef47a863b955c3a6788f9e246ea8d426c9dde4952ebfcc6ae490a87175a0d9 diff --git a/media-gfx/blender/blender-4.0.1-r1.ebuild b/media-gfx/blender/blender-4.0.1-r1.ebuild new file mode 100644 index 000000000000..5f4042e3652f --- /dev/null +++ b/media-gfx/blender/blender-4.0.1-r1.ebuild @@ -0,0 +1,494 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..11} ) + +inherit check-reqs cmake cuda flag-o-matic pax-utils python-single-r1 toolchain-funcs xdg-utils + +DESCRIPTION="3D Creation/Animation/Publishing System" +HOMEPAGE="https://www.blender.org" + +if [[ ${PV} = *9999* ]] ; then + # Subversion is needed for downloading unit test files + inherit git-r3 subversion + EGIT_REPO_URI="https://projects.blender.org/blender/blender.git" + ADDONS_EGIT_REPO_URI="https://projects.blender.org/blender/blender-addons.git" +else + SRC_URI="https://download.blender.org/source/${P}.tar.xz" + # Update these between major releases. + TEST_TARBALL_VERSION="$(ver_cut 1-2).0" + # SRC_URI+=" test? ( https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-${TEST_TARBALL_VERSION}-tests.tar.xz )" + KEYWORDS="~amd64 ~arm ~arm64" +fi + +SLOT="${PV%.*}" +LICENSE="|| ( GPL-3 BL )" +IUSE="+bullet +fluid +openexr +tbb + alembic collada +color-management cuda +cycles cycles-bin-kernels + debug doc +embree +ffmpeg +fftw +gmp hip jack jemalloc jpeg2k + man +nanovdb ndof nls openal +oidn +openmp +openpgl +opensubdiv + +openvdb optix osl +pdf +potrace +pugixml pulseaudio sdl + +sndfile test +tiff valgrind wayland +webp X" +RESTRICT="test" + +REQUIRED_USE="${PYTHON_REQUIRED_USE} + alembic? ( openexr ) + cuda? ( cycles ) + cycles? ( openexr tiff ) + fluid? ( tbb ) + hip? ( cycles ) + nanovdb? ( openvdb ) + openvdb? ( tbb ) + optix? ( cuda ) + osl? ( cycles ) + test? ( color-management )" + +# Library versions for official builds can be found in the blender source directory in: +# build_files/build_environment/install_deps.sh +RDEPEND="${PYTHON_DEPS} + app-arch/zstd + dev-libs/boost:=[nls?] + dev-libs/lzo:2= + $(python_gen_cond_dep ' + dev-python/cython[${PYTHON_USEDEP}] + dev-python/numpy[${PYTHON_USEDEP}] + dev-python/zstandard[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] + ') + media-libs/freetype:=[brotli] + media-libs/libepoxy:= + media-libs/libjpeg-turbo:= + media-libs/libpng:= + media-libs/libsamplerate + >=media-libs/openimageio-2.4.6.0:= + sys-libs/zlib:= + virtual/glu + virtual/libintl + virtual/opengl + alembic? ( >=media-gfx/alembic-1.8.3-r2[boost(+),hdf(+)] ) + collada? ( >=media-libs/opencollada-1.6.68 ) + color-management? ( media-libs/opencolorio:= ) + cuda? ( dev-util/nvidia-cuda-toolkit:= ) + embree? ( >=media-libs/embree-3.13.0[raymask] ) + ffmpeg? ( media-video/ffmpeg:=[x264,mp3,encode,theora,jpeg2k?,vpx,vorbis,opus,xvid] ) + fftw? ( sci-libs/fftw:3.0= ) + gmp? ( dev-libs/gmp ) + hip? ( >=dev-util/hip-5.7.1 ) + jack? ( virtual/jack ) + jemalloc? ( dev-libs/jemalloc:= ) + jpeg2k? ( media-libs/openjpeg:2= ) + ndof? ( + app-misc/spacenavd + dev-libs/libspnav + ) + nls? ( virtual/libiconv ) + openal? ( media-libs/openal ) + oidn? ( >=media-libs/oidn-1.4.0 ) + openexr? ( + >=dev-libs/imath-3.1.4-r2:= + >=media-libs/openexr-3:0= + ) + openpgl? ( >=media-libs/openpgl-0.5.0 ) + opensubdiv? ( >=media-libs/opensubdiv-3.5.0 ) + openvdb? ( + >=media-gfx/openvdb-10.1.0:=[nanovdb?] + dev-libs/c-blosc:= + ) + optix? ( =media-libs/osl-1.11.16.0-r3:= ) + pdf? ( media-libs/libharu ) + potrace? ( media-gfx/potrace ) + pugixml? ( dev-libs/pugixml ) + pulseaudio? ( media-libs/libpulse ) + sdl? ( media-libs/libsdl2[sound,joystick] ) + sndfile? ( media-libs/libsndfile ) + tbb? ( dev-cpp/tbb:= ) + tiff? ( media-libs/tiff:= ) + valgrind? ( dev-debug/valgrind ) + wayland? ( + >=dev-libs/wayland-1.12 + >=dev-libs/wayland-protocols-1.15 + >=x11-libs/libxkbcommon-0.2.0 + dev-util/wayland-scanner + media-libs/mesa[wayland] + sys-apps/dbus + ) + X? ( + x11-libs/libX11 + x11-libs/libXi + x11-libs/libXxf86vm + ) +" + +DEPEND="${RDEPEND} + dev-cpp/eigen:= +" + +BDEPEND=" + virtual/pkgconfig + doc? ( + app-text/doxygen[dot] + dev-python/sphinx[latex] + dev-texlive/texlive-bibtexextra + dev-texlive/texlive-fontsextra + dev-texlive/texlive-fontutils + dev-texlive/texlive-latex + dev-texlive/texlive-latexextra + ) + nls? ( sys-devel/gettext ) + wayland? ( + dev-util/wayland-scanner + ) +" + +PATCHES=( + "${FILESDIR}/${PN}-4.0.1-fix-cflags-cleaner.patch" # to be dropped for releases after Dec 8, 2023 + "${FILESDIR}/${PN}-4.0.1-openvdb-11.patch" +) + +blender_check_requirements() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp + + if use doc; then + CHECKREQS_DISK_BUILD="4G" check-reqs_pkg_pretend + fi +} + +blender_get_version() { + # Get blender version from blender itself. + BV=$(grep "BLENDER_VERSION " source/blender/blenkernel/BKE_blender_version.h | cut -d " " -f 3; assert) + if ((${BV:0:1} < 3)) ; then + # Add period (290 -> 2.90). + BV=${BV:0:1}.${BV:1} + else + # Add period and skip the middle number (301 -> 3.1) + BV=${BV:0:1}.${BV:2} + fi +} + +pkg_pretend() { + blender_check_requirements +} + +pkg_setup() { + blender_check_requirements + python-single-r1_pkg_setup +} + +src_unpack() { + if [[ ${PV} = *9999* ]] ; then + git-r3_src_unpack + + git-r3_fetch "${ADDONS_EGIT_REPO_URI}" + git-r3_checkout "${ADDONS_EGIT_REPO_URI}" "${S}/scripts/addons" + + if use test; then + TESTS_SVN_URL=https://svn.blender.org/svnroot/bf-blender/trunk/lib/tests + subversion_fetch ${TESTS_SVN_URL} ../lib/tests + fi + ASSETS_SVN_URL=https://svn.blender.org/svnroot/bf-blender/trunk/lib/assets + subversion_fetch ${ASSETS_SVN_URL} ../lib/assets + else + default + if use test; then + #The tests are downloaded from: https://svn.blender.org/svnroot/bf-blender/tags/blender-${SLOT}-release/lib/tests + mkdir -p lib || die + mv "${WORKDIR}/blender-${TEST_TARBALL_VERSION}-tests/tests" lib || die + fi + fi + +} + +src_prepare() { + cmake_src_prepare + + blender_get_version + + # Disable MS Windows help generation. The variable doesn't do what it + # it sounds like. + sed -e "s|GENERATE_HTMLHELP = YES|GENERATE_HTMLHELP = NO|" \ + -i doc/doxygen/Doxyfile || die + + # Prepare icons and .desktop files for slotting. + sed \ + -e "s|blender.svg|blender-${BV}.svg|" \ + -e "s|blender-symbolic.svg|blender-${BV}-symbolic.svg|" \ + -e "s|blender.desktop|blender-${BV}.desktop|" \ + -i source/creator/CMakeLists.txt || die + + sed \ + -e "s|Name=Blender|Name=Blender ${PV}|" \ + -e "s|Exec=blender|Exec=blender-${BV}|" \ + -e "s|Icon=blender|Icon=blender-${BV}|" \ + -i release/freedesktop/blender.desktop || die + + mv \ + release/freedesktop/icons/scalable/apps/blender.svg \ + "release/freedesktop/icons/scalable/apps/blender-${BV}.svg" || die + mv \ + release/freedesktop/icons/symbolic/apps/blender-symbolic.svg \ + "release/freedesktop/icons/symbolic/apps/blender-${BV}-symbolic.svg" || die + mv release/freedesktop/blender.desktop "release/freedesktop/blender-${BV}.desktop" || die + + if use test; then + # Without this the tests will try to use /usr/bin/blender and /usr/share/blender/ to run the tests. + sed -e "s|set(TEST_INSTALL_DIR.*|set(TEST_INSTALL_DIR ${T}/usr)|g" -i tests/CMakeLists.txt || die + sed -e "s|string(REPLACE.*|set(TEST_INSTALL_DIR ${T}/usr)|g" -i build_files/cmake/Modules/GTestTesting.cmake || die + fi +} + +src_configure() { + # Workaround for bug #922600 + append-ldflags $(test-flags-CCLD -Wl,--undefined-version) + + append-lfs-flags + blender_get_version + + local mycmakeargs=( + -DWITH_LIBS_PRECOMPILED=no + -DBUILD_SHARED_LIBS=no + -DPYTHON_INCLUDE_DIR="$(python_get_includedir)" + -DPYTHON_LIBRARY="$(python_get_library_path)" + -DPYTHON_VERSION="${EPYTHON/python/}" + -DWITH_ALEMBIC=$(usex alembic) + -DWITH_BOOST=yes + -DWITH_BULLET=$(usex bullet) + -DWITH_CODEC_FFMPEG=$(usex ffmpeg) + -DWITH_CODEC_SNDFILE=$(usex sndfile) + -DWITH_CYCLES=$(usex cycles) + -DWITH_CYCLES_CUDA_BINARIES=$(usex cuda $(usex cycles-bin-kernels)) + -DWITH_CYCLES_DEVICE_ONEAPI=no + -DWITH_CYCLES_DEVICE_CUDA=$(usex cuda) + -DWITH_CYCLES_DEVICE_HIP=$(usex hip) + -DWITH_CYCLES_DEVICE_OPTIX=$(usex optix) + -DWITH_CYCLES_EMBREE=$(usex embree) + -DWITH_CYCLES_HIP_BINARIES=$(usex hip $(usex cycles-bin-kernels)) + -DWITH_CYCLES_ONEAPI_BINARIES=no + -DWITH_CYCLES_OSL=$(usex osl) + -DWITH_CYCLES_PATH_GUIDING=$(usex openpgl) + -DWITH_CYCLES_STANDALONE=no + -DWITH_CYCLES_STANDALONE_GUI=no + -DWITH_DOC_MANPAGE=$(usex man) + -DWITH_FFTW3=$(usex fftw) + -DWITH_GHOST_WAYLAND=$(usex wayland) + -DWITH_GHOST_WAYLAND_APP_ID="blender-${BV}" + -DWITH_GHOST_WAYLAND_DBUS=$(usex wayland) + -DWITH_GHOST_WAYLAND_DYNLOAD=no + -DWITH_GHOST_WAYLAND_LIBDECOR=no + -DWITH_GHOST_X11=$(usex X) + -DWITH_GMP=$(usex gmp) + -DWITH_GTESTS=$(usex test) + -DWITH_HARU=$(usex pdf) + -DWITH_HEADLESS=$($(use X || use wayland) && echo OFF || echo ON) + -DWITH_INSTALL_PORTABLE=no + -DWITH_IMAGE_OPENEXR=$(usex openexr) + -DWITH_IMAGE_OPENJPEG=$(usex jpeg2k) + -DWITH_IMAGE_WEBP=$(usex webp) + -DWITH_INPUT_NDOF=$(usex ndof) + -DWITH_INTERNATIONAL=$(usex nls) + -DWITH_JACK=$(usex jack) + -DWITH_MATERIALX=no + -DWITH_MEM_JEMALLOC=$(usex jemalloc) + -DWITH_MEM_VALGRIND=$(usex valgrind) + -DWITH_MOD_FLUID=$(usex fluid) + -DWITH_MOD_OCEANSIM=$(usex fftw) + -DWITH_NANOVDB=$(usex nanovdb) + -DWITH_OPENAL=$(usex openal) + -DWITH_OPENCOLLADA=$(usex collada) + -DWITH_OPENCOLORIO=$(usex color-management) + -DWITH_OPENIMAGEDENOISE=$(usex oidn) + -DWITH_OPENMP=$(usex openmp) + -DWITH_OPENSUBDIV=$(usex opensubdiv) + -DWITH_OPENVDB=$(usex openvdb) + -DWITH_OPENVDB_BLOSC=$(usex openvdb) + -DWITH_POTRACE=$(usex potrace) + -DWITH_PUGIXML=$(usex pugixml) + -DWITH_PULSEAUDIO=$(usex pulseaudio) + -DWITH_PYTHON_INSTALL=no + -DWITH_DRACO=no + -DWITH_PYTHON_INSTALL_NUMPY=no + -DWITH_PYTHON_INSTALL_ZSTANDARD=no + -DWITH_SDL=$(usex sdl) + -DWITH_STATIC_LIBS=no + -DWITH_SYSTEM_EIGEN3=yes + -DWITH_SYSTEM_FREETYPE=yes + -DWITH_SYSTEM_LZO=yes + -DWITH_TBB=$(usex tbb) + + -DWITH_USD=no + -DWITH_HYDRA=no + + -DWITH_XR_OPENXR=no + ) + + if use optix; then + mycmakeargs+=( + -DCYCLES_RUNTIME_OPTIX_ROOT_DIR="${EPREFIX}"/opt/optix + -DOPTIX_ROOT_DIR="${EPREFIX}"/opt/optix + ) + fi + + # This is currently needed on arm64 to get the NEON SIMD wrapper to compile the code successfully + use arm64 && append-flags -flax-vector-conversions + + append-cflags $(usex debug '-DDEBUG' '-DNDEBUG') + append-cppflags $(usex debug '-DDEBUG' '-DNDEBUG') + + if tc-is-gcc ; then + # These options only exist when GCC is detected. + # We disable these to respect the user's choice of linker. + mycmakeargs+=( + -DWITH_LINKER_GOLD=no + -DWITH_LINKER_LLD=no + ) + # Ease compiling with required gcc similar to cuda_sanitize but for cmake + use cuda && use cycles-bin-kernels && mycmakeargs+=( -DCUDA_HOST_COMPILER="$(cuda_gccdir)" ) + fi + if tc-is-clang ; then + mycmakeargs+=( + -DWITH_CLANG=yes + -DWITH_LLVM=yes + ) + fi + + if use test ; then + local CYCLES_TEST_DEVICES=( "CPU" ) + if use cycles-bin-kernels; then + use cuda && CYCLES_TEST_DEVICES+=( "CUDA" ) + use optix && CYCLES_TEST_DEVICES+=( "OPTIX" ) + use hip && CYCLES_TEST_DEVICES+=( "HIP" ) + fi + mycmakeargs+=( + -DCYCLES_TEST_DEVICES:STRING="$(local IFS=";"; echo "${CYCLES_TEST_DEVICES[*]}")" + -DWITH_COMPOSITOR_REALTIME_TESTS=yes + -DWITH_GTESTS=yes + -DWITH_OPENGL_DRAW_TESTS=yes + -DWITH_OPENGL_RENDER_TESTS=yes + ) + fi + + cmake_src_configure +} + +src_test() { + # A lot of tests needs to have access to the installed data files. + # So install them into the image directory now. + DESTDIR="${T}" cmake_build install "$@" + + blender_get_version + # Define custom blender data/script file paths not be able to find them otherwise during testing. + # (Because the data is in the image directory and it will default to look in /usr/share) + export BLENDER_SYSTEM_SCRIPTS="${T}/usr/share/blender/${BV}/scripts" + export BLENDER_SYSTEM_DATAFILES="${T}/usr/share/blender/${BV}/datafiles" + + # Sanity check that the script and datafile path is valid. + # If they are not vaild, blender will fallback to the default path which is not what we want. + [ -d "$BLENDER_SYSTEM_SCRIPTS" ] || die "The custom script path is invalid, fix the ebuild!" + [ -d "$BLENDER_SYSTEM_DATAFILES" ] || die "The custom datafiles path is invalid, fix the ebuild!" + + cmake_src_test + + # Clean up the image directory for src_install + rm -fr "${T}"/usr || die +} + +src_install() { + blender_get_version + + # Pax mark blender for hardened support. + pax-mark m "${BUILD_DIR}"/bin/blender + + cmake_src_install + + if use man; then + # Slot the man page + mv "${ED}/usr/share/man/man1/blender.1" "${ED}/usr/share/man/man1/blender-${BV}.1" || die + fi + + if use doc; then + # Define custom blender data/script file paths. Otherwise Blender will not be able to find them during doc building. + # (Because the data is in the image directory and it will default to look in /usr/share) + export BLENDER_SYSTEM_SCRIPTS=${ED}/usr/share/blender/${BV}/scripts + export BLENDER_SYSTEM_DATAFILES=${ED}/usr/share/blender/${BV}/datafiles + + # Workaround for binary drivers. + addpredict /dev/ati + addpredict /dev/dri + addpredict /dev/nvidiactl + + einfo "Generating Blender C/C++ API docs ..." + cd "${CMAKE_USE_DIR}"/doc/doxygen || die + doxygen -u Doxyfile || die + doxygen || die "doxygen failed to build API docs." + + cd "${CMAKE_USE_DIR}" || die + einfo "Generating (BPY) Blender Python API docs ..." + "${BUILD_DIR}"/bin/blender --background --python doc/python_api/sphinx_doc_gen.py -noaudio || die "sphinx failed." + + cd "${CMAKE_USE_DIR}"/doc/python_api || die + sphinx-build sphinx-in BPY_API || die "sphinx failed." + + docinto "html/API/python" + dodoc -r "${CMAKE_USE_DIR}"/doc/python_api/BPY_API/. + + docinto "html/API/blender" + dodoc -r "${CMAKE_USE_DIR}"/doc/doxygen/html/. + fi + + # Fix doc installdir + docinto html + dodoc "${CMAKE_USE_DIR}"/release/text/readme.html + rm -r "${ED}"/usr/share/doc/blender || die + + python_optimize "${ED}/usr/share/blender/${BV}/scripts" + + mv "${ED}/usr/bin/blender-thumbnailer" "${ED}/usr/bin/blender-${BV}-thumbnailer" || die + mv "${ED}/usr/bin/blender" "${ED}/usr/bin/blender-${BV}" || die +} + +pkg_postinst() { + elog + elog "Blender uses python integration. As such, may have some" + elog "inherent risks with running unknown python scripts." + elog + elog "It is recommended to change your blender temp directory" + elog "from /tmp to /home/user/tmp or another tmp file under your" + elog "home directory. This can be done by starting blender, then" + elog "changing the 'Temporary Files' directory in Blender preferences." + elog + + if use osl; then + ewarn "" + ewarn "OSL is know to cause runtime segfaults if Mesa has been linked to" + ewarn "an other LLVM version than what OSL is linked to." + ewarn "See https://bugs.gentoo.org/880671 for more details" + ewarn "" + fi + + if ! use python_single_target_python3_10; then + elog "You are building Blender with a newer python version than" + elog "supported by this version upstream." + elog "If you experience breakages with e.g. plugins, please switch to" + elog "python_single_target_python3_10 instead." + elog "Bug: https://bugs.gentoo.org/737388" + elog + fi + + xdg_icon_cache_update + xdg_mimeinfo_database_update + xdg_desktop_database_update +} + +pkg_postrm() { + xdg_icon_cache_update + xdg_mimeinfo_database_update + xdg_desktop_database_update + + ewarn "" + ewarn "You may want to remove the following directory." + ewarn "~/.config/${PN}/${SLOT}/cache/" + ewarn "It may contain extra render kernels not tracked by portage" + ewarn "" +} diff --git a/media-gfx/blender/blender-4.0.1.ebuild b/media-gfx/blender/blender-4.0.1.ebuild deleted file mode 100644 index 853b1444f8d1..000000000000 --- a/media-gfx/blender/blender-4.0.1.ebuild +++ /dev/null @@ -1,490 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{10..11} ) - -inherit check-reqs cmake cuda flag-o-matic pax-utils python-single-r1 toolchain-funcs xdg-utils - -DESCRIPTION="3D Creation/Animation/Publishing System" -HOMEPAGE="https://www.blender.org" - -if [[ ${PV} = *9999* ]] ; then - # Subversion is needed for downloading unit test files - inherit git-r3 subversion - EGIT_REPO_URI="https://projects.blender.org/blender/blender.git" - ADDONS_EGIT_REPO_URI="https://projects.blender.org/blender/blender-addons.git" -else - SRC_URI="https://download.blender.org/source/${P}.tar.xz" - # Update these between major releases. - TEST_TARBALL_VERSION="$(ver_cut 1-2).0" - # SRC_URI+=" test? ( https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-${TEST_TARBALL_VERSION}-tests.tar.xz )" - KEYWORDS="~amd64 ~arm ~arm64" -fi - -SLOT="${PV%.*}" -LICENSE="|| ( GPL-3 BL )" -IUSE="+bullet +fluid +openexr +tbb - alembic collada +color-management cuda +cycles cycles-bin-kernels - debug doc +embree +ffmpeg +fftw +gmp jack jemalloc jpeg2k - man +nanovdb ndof nls openal +oidn +openmp +openpgl +opensubdiv - +openvdb optix osl +pdf +potrace +pugixml pulseaudio sdl - +sndfile test +tiff valgrind wayland +webp X" -RESTRICT="test" - -REQUIRED_USE="${PYTHON_REQUIRED_USE} - alembic? ( openexr ) - cuda? ( cycles ) - cycles? ( openexr tiff ) - fluid? ( tbb ) - nanovdb? ( openvdb ) - openvdb? ( tbb ) - optix? ( cuda ) - osl? ( cycles ) - test? ( color-management )" - -# Library versions for official builds can be found in the blender source directory in: -# build_files/build_environment/install_deps.sh -RDEPEND="${PYTHON_DEPS} - app-arch/zstd - dev-libs/boost:=[nls?] - dev-libs/lzo:2= - $(python_gen_cond_dep ' - dev-python/cython[${PYTHON_USEDEP}] - dev-python/numpy[${PYTHON_USEDEP}] - dev-python/zstandard[${PYTHON_USEDEP}] - dev-python/requests[${PYTHON_USEDEP}] - ') - media-libs/freetype:=[brotli] - media-libs/libepoxy:= - media-libs/libjpeg-turbo:= - media-libs/libpng:= - media-libs/libsamplerate - >=media-libs/openimageio-2.4.6.0:= - sys-libs/zlib:= - virtual/glu - virtual/libintl - virtual/opengl - alembic? ( >=media-gfx/alembic-1.8.3-r2[boost(+),hdf(+)] ) - collada? ( >=media-libs/opencollada-1.6.68 ) - color-management? ( media-libs/opencolorio:= ) - cuda? ( dev-util/nvidia-cuda-toolkit:= ) - embree? ( >=media-libs/embree-3.13.0[raymask] ) - ffmpeg? ( media-video/ffmpeg:=[x264,mp3,encode,theora,jpeg2k?,vpx,vorbis,opus,xvid] ) - fftw? ( sci-libs/fftw:3.0= ) - gmp? ( dev-libs/gmp ) - jack? ( virtual/jack ) - jemalloc? ( dev-libs/jemalloc:= ) - jpeg2k? ( media-libs/openjpeg:2= ) - ndof? ( - app-misc/spacenavd - dev-libs/libspnav - ) - nls? ( virtual/libiconv ) - openal? ( media-libs/openal ) - oidn? ( >=media-libs/oidn-1.4.0 ) - openexr? ( - >=dev-libs/imath-3.1.4-r2:= - >=media-libs/openexr-3:0= - ) - openpgl? ( >=media-libs/openpgl-0.5.0 ) - opensubdiv? ( >=media-libs/opensubdiv-3.5.0 ) - openvdb? ( - >=media-gfx/openvdb-10.0.0:=[nanovdb?] - dev-libs/c-blosc:= - ) - optix? ( =media-libs/osl-1.11.16.0-r3:= ) - pdf? ( media-libs/libharu ) - potrace? ( media-gfx/potrace ) - pugixml? ( dev-libs/pugixml ) - pulseaudio? ( media-libs/libpulse ) - sdl? ( media-libs/libsdl2[sound,joystick] ) - sndfile? ( media-libs/libsndfile ) - tbb? ( dev-cpp/tbb:= ) - tiff? ( media-libs/tiff:= ) - valgrind? ( dev-debug/valgrind ) - wayland? ( - >=dev-libs/wayland-1.12 - >=dev-libs/wayland-protocols-1.15 - >=x11-libs/libxkbcommon-0.2.0 - dev-util/wayland-scanner - media-libs/mesa[wayland] - sys-apps/dbus - ) - X? ( - x11-libs/libX11 - x11-libs/libXi - x11-libs/libXxf86vm - ) -" - -DEPEND="${RDEPEND} - dev-cpp/eigen:= -" - -BDEPEND=" - virtual/pkgconfig - doc? ( - app-text/doxygen[dot] - dev-python/sphinx[latex] - dev-texlive/texlive-bibtexextra - dev-texlive/texlive-fontsextra - dev-texlive/texlive-fontutils - dev-texlive/texlive-latex - dev-texlive/texlive-latexextra - ) - nls? ( sys-devel/gettext ) - wayland? ( - dev-util/wayland-scanner - ) -" - -PATCHES=( - "${FILESDIR}/${PN}-4.0.1-fix-cflags-cleaner.patch" # to be dropped for releases after Dec 8, 2023 -) - -blender_check_requirements() { - [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp - - if use doc; then - CHECKREQS_DISK_BUILD="4G" check-reqs_pkg_pretend - fi -} - -blender_get_version() { - # Get blender version from blender itself. - BV=$(grep "BLENDER_VERSION " source/blender/blenkernel/BKE_blender_version.h | cut -d " " -f 3; assert) - if ((${BV:0:1} < 3)) ; then - # Add period (290 -> 2.90). - BV=${BV:0:1}.${BV:1} - else - # Add period and skip the middle number (301 -> 3.1) - BV=${BV:0:1}.${BV:2} - fi -} - -pkg_pretend() { - blender_check_requirements -} - -pkg_setup() { - blender_check_requirements - python-single-r1_pkg_setup -} - -src_unpack() { - if [[ ${PV} = *9999* ]] ; then - git-r3_src_unpack - - git-r3_fetch "${ADDONS_EGIT_REPO_URI}" - git-r3_checkout "${ADDONS_EGIT_REPO_URI}" "${S}/scripts/addons" - - if use test; then - TESTS_SVN_URL=https://svn.blender.org/svnroot/bf-blender/trunk/lib/tests - subversion_fetch ${TESTS_SVN_URL} ../lib/tests - fi - ASSETS_SVN_URL=https://svn.blender.org/svnroot/bf-blender/trunk/lib/assets - subversion_fetch ${ASSETS_SVN_URL} ../lib/assets - else - default - if use test; then - #The tests are downloaded from: https://svn.blender.org/svnroot/bf-blender/tags/blender-${SLOT}-release/lib/tests - mkdir -p lib || die - mv "${WORKDIR}/blender-${TEST_TARBALL_VERSION}-tests/tests" lib || die - fi - fi - -} - -src_prepare() { - cmake_src_prepare - - blender_get_version - - # Disable MS Windows help generation. The variable doesn't do what it - # it sounds like. - sed -e "s|GENERATE_HTMLHELP = YES|GENERATE_HTMLHELP = NO|" \ - -i doc/doxygen/Doxyfile || die - - # Prepare icons and .desktop files for slotting. - sed \ - -e "s|blender.svg|blender-${BV}.svg|" \ - -e "s|blender-symbolic.svg|blender-${BV}-symbolic.svg|" \ - -e "s|blender.desktop|blender-${BV}.desktop|" \ - -i source/creator/CMakeLists.txt || die - - sed \ - -e "s|Name=Blender|Name=Blender ${PV}|" \ - -e "s|Exec=blender|Exec=blender-${BV}|" \ - -e "s|Icon=blender|Icon=blender-${BV}|" \ - -i release/freedesktop/blender.desktop || die - - mv \ - release/freedesktop/icons/scalable/apps/blender.svg \ - "release/freedesktop/icons/scalable/apps/blender-${BV}.svg" || die - mv \ - release/freedesktop/icons/symbolic/apps/blender-symbolic.svg \ - "release/freedesktop/icons/symbolic/apps/blender-${BV}-symbolic.svg" || die - mv release/freedesktop/blender.desktop "release/freedesktop/blender-${BV}.desktop" || die - - if use test; then - # Without this the tests will try to use /usr/bin/blender and /usr/share/blender/ to run the tests. - sed -e "s|set(TEST_INSTALL_DIR.*|set(TEST_INSTALL_DIR ${T}/usr)|g" -i tests/CMakeLists.txt || die - sed -e "s|string(REPLACE.*|set(TEST_INSTALL_DIR ${T}/usr)|g" -i build_files/cmake/Modules/GTestTesting.cmake || die - fi -} - -src_configure() { - # Workaround for bug #922600 - append-ldflags $(test-flags-CCLD -Wl,--undefined-version) - - append-lfs-flags - blender_get_version - - local mycmakeargs=( - -DWITH_LIBS_PRECOMPILED=no - -DBUILD_SHARED_LIBS=no - -DPYTHON_INCLUDE_DIR="$(python_get_includedir)" - -DPYTHON_LIBRARY="$(python_get_library_path)" - -DPYTHON_VERSION="${EPYTHON/python/}" - -DWITH_ALEMBIC=$(usex alembic) - -DWITH_BOOST=yes - -DWITH_BULLET=$(usex bullet) - -DWITH_CODEC_FFMPEG=$(usex ffmpeg) - -DWITH_CODEC_SNDFILE=$(usex sndfile) - -DWITH_CYCLES=$(usex cycles) - -DWITH_CYCLES_CUDA_BINARIES=$(usex cuda $(usex cycles-bin-kernels)) - -DWITH_CYCLES_DEVICE_ONEAPI=no - -DWITH_CYCLES_DEVICE_CUDA=$(usex cuda) - -DWITH_CYCLES_DEVICE_HIP=no - -DWITH_CYCLES_DEVICE_OPTIX=$(usex optix) - -DWITH_CYCLES_EMBREE=$(usex embree) - -DWITH_CYCLES_HIP_BINARIES=no - -DWITH_CYCLES_ONEAPI_BINARIES=no - -DWITH_CYCLES_OSL=$(usex osl) - -DWITH_CYCLES_PATH_GUIDING=$(usex openpgl) - -DWITH_CYCLES_STANDALONE=no - -DWITH_CYCLES_STANDALONE_GUI=no - -DWITH_DOC_MANPAGE=$(usex man) - -DWITH_FFTW3=$(usex fftw) - -DWITH_GHOST_WAYLAND=$(usex wayland) - -DWITH_GHOST_WAYLAND_APP_ID="blender-${BV}" - -DWITH_GHOST_WAYLAND_DBUS=$(usex wayland) - -DWITH_GHOST_WAYLAND_DYNLOAD=no - -DWITH_GHOST_WAYLAND_LIBDECOR=no - -DWITH_GHOST_X11=$(usex X) - -DWITH_GMP=$(usex gmp) - -DWITH_GTESTS=$(usex test) - -DWITH_HARU=$(usex pdf) - -DWITH_HEADLESS=$($(use X || use wayland) && echo OFF || echo ON) - -DWITH_INSTALL_PORTABLE=no - -DWITH_IMAGE_OPENEXR=$(usex openexr) - -DWITH_IMAGE_OPENJPEG=$(usex jpeg2k) - -DWITH_IMAGE_WEBP=$(usex webp) - -DWITH_INPUT_NDOF=$(usex ndof) - -DWITH_INTERNATIONAL=$(usex nls) - -DWITH_JACK=$(usex jack) - -DWITH_MATERIALX=no - -DWITH_MEM_JEMALLOC=$(usex jemalloc) - -DWITH_MEM_VALGRIND=$(usex valgrind) - -DWITH_MOD_FLUID=$(usex fluid) - -DWITH_MOD_OCEANSIM=$(usex fftw) - -DWITH_NANOVDB=$(usex nanovdb) - -DWITH_OPENAL=$(usex openal) - -DWITH_OPENCOLLADA=$(usex collada) - -DWITH_OPENCOLORIO=$(usex color-management) - -DWITH_OPENIMAGEDENOISE=$(usex oidn) - -DWITH_OPENMP=$(usex openmp) - -DWITH_OPENSUBDIV=$(usex opensubdiv) - -DWITH_OPENVDB=$(usex openvdb) - -DWITH_OPENVDB_BLOSC=$(usex openvdb) - -DWITH_POTRACE=$(usex potrace) - -DWITH_PUGIXML=$(usex pugixml) - -DWITH_PULSEAUDIO=$(usex pulseaudio) - -DWITH_PYTHON_INSTALL=no - -DWITH_DRACO=no - -DWITH_PYTHON_INSTALL_NUMPY=no - -DWITH_PYTHON_INSTALL_ZSTANDARD=no - -DWITH_SDL=$(usex sdl) - -DWITH_STATIC_LIBS=no - -DWITH_SYSTEM_EIGEN3=yes - -DWITH_SYSTEM_FREETYPE=yes - -DWITH_SYSTEM_LZO=yes - -DWITH_TBB=$(usex tbb) - - -DWITH_USD=no - -DWITH_HYDRA=no - - -DWITH_XR_OPENXR=no - ) - - if use optix; then - mycmakeargs+=( - -DCYCLES_RUNTIME_OPTIX_ROOT_DIR="${EPREFIX}"/opt/optix - -DOPTIX_ROOT_DIR="${EPREFIX}"/opt/optix - ) - fi - - # This is currently needed on arm64 to get the NEON SIMD wrapper to compile the code successfully - use arm64 && append-flags -flax-vector-conversions - - append-cflags $(usex debug '-DDEBUG' '-DNDEBUG') - append-cppflags $(usex debug '-DDEBUG' '-DNDEBUG') - - if tc-is-gcc ; then - # These options only exist when GCC is detected. - # We disable these to respect the user's choice of linker. - mycmakeargs+=( - -DWITH_LINKER_GOLD=no - -DWITH_LINKER_LLD=no - ) - # Ease compiling with required gcc similar to cuda_sanitize but for cmake - use cuda && use cycles-bin-kernels && mycmakeargs+=( -DCUDA_HOST_COMPILER="$(cuda_gccdir)" ) - fi - if tc-is-clang ; then - mycmakeargs+=( - -DWITH_CLANG=yes - -DWITH_LLVM=yes - ) - fi - - if use test ; then - local CYCLES_TEST_DEVICES=( "CPU" ) - if use cycles-bin-kernels; then - use cuda && CYCLES_TEST_DEVICES+=( "CUDA" ) - use optix && CYCLES_TEST_DEVICES+=( "OPTIX" ) - fi - mycmakeargs+=( - -DCYCLES_TEST_DEVICES:STRING="$(local IFS=";"; echo "${CYCLES_TEST_DEVICES[*]}")" - -DWITH_COMPOSITOR_REALTIME_TESTS=yes - -DWITH_GTESTS=yes - -DWITH_OPENGL_DRAW_TESTS=yes - -DWITH_OPENGL_RENDER_TESTS=yes - ) - fi - - cmake_src_configure -} - -src_test() { - # A lot of tests needs to have access to the installed data files. - # So install them into the image directory now. - DESTDIR="${T}" cmake_build install "$@" - - blender_get_version - # Define custom blender data/script file paths not be able to find them otherwise during testing. - # (Because the data is in the image directory and it will default to look in /usr/share) - export BLENDER_SYSTEM_SCRIPTS="${T}/usr/share/blender/${BV}/scripts" - export BLENDER_SYSTEM_DATAFILES="${T}/usr/share/blender/${BV}/datafiles" - - # Sanity check that the script and datafile path is valid. - # If they are not vaild, blender will fallback to the default path which is not what we want. - [ -d "$BLENDER_SYSTEM_SCRIPTS" ] || die "The custom script path is invalid, fix the ebuild!" - [ -d "$BLENDER_SYSTEM_DATAFILES" ] || die "The custom datafiles path is invalid, fix the ebuild!" - - cmake_src_test - - # Clean up the image directory for src_install - rm -fr "${T}"/usr || die -} - -src_install() { - blender_get_version - - # Pax mark blender for hardened support. - pax-mark m "${BUILD_DIR}"/bin/blender - - cmake_src_install - - if use man; then - # Slot the man page - mv "${ED}/usr/share/man/man1/blender.1" "${ED}/usr/share/man/man1/blender-${BV}.1" || die - fi - - if use doc; then - # Define custom blender data/script file paths. Otherwise Blender will not be able to find them during doc building. - # (Because the data is in the image directory and it will default to look in /usr/share) - export BLENDER_SYSTEM_SCRIPTS=${ED}/usr/share/blender/${BV}/scripts - export BLENDER_SYSTEM_DATAFILES=${ED}/usr/share/blender/${BV}/datafiles - - # Workaround for binary drivers. - addpredict /dev/ati - addpredict /dev/dri - addpredict /dev/nvidiactl - - einfo "Generating Blender C/C++ API docs ..." - cd "${CMAKE_USE_DIR}"/doc/doxygen || die - doxygen -u Doxyfile || die - doxygen || die "doxygen failed to build API docs." - - cd "${CMAKE_USE_DIR}" || die - einfo "Generating (BPY) Blender Python API docs ..." - "${BUILD_DIR}"/bin/blender --background --python doc/python_api/sphinx_doc_gen.py -noaudio || die "sphinx failed." - - cd "${CMAKE_USE_DIR}"/doc/python_api || die - sphinx-build sphinx-in BPY_API || die "sphinx failed." - - docinto "html/API/python" - dodoc -r "${CMAKE_USE_DIR}"/doc/python_api/BPY_API/. - - docinto "html/API/blender" - dodoc -r "${CMAKE_USE_DIR}"/doc/doxygen/html/. - fi - - # Fix doc installdir - docinto html - dodoc "${CMAKE_USE_DIR}"/release/text/readme.html - rm -r "${ED}"/usr/share/doc/blender || die - - python_optimize "${ED}/usr/share/blender/${BV}/scripts" - - mv "${ED}/usr/bin/blender-thumbnailer" "${ED}/usr/bin/blender-${BV}-thumbnailer" || die - mv "${ED}/usr/bin/blender" "${ED}/usr/bin/blender-${BV}" || die -} - -pkg_postinst() { - elog - elog "Blender uses python integration. As such, may have some" - elog "inherent risks with running unknown python scripts." - elog - elog "It is recommended to change your blender temp directory" - elog "from /tmp to /home/user/tmp or another tmp file under your" - elog "home directory. This can be done by starting blender, then" - elog "changing the 'Temporary Files' directory in Blender preferences." - elog - - if use osl; then - ewarn "" - ewarn "OSL is know to cause runtime segfaults if Mesa has been linked to" - ewarn "an other LLVM version than what OSL is linked to." - ewarn "See https://bugs.gentoo.org/880671 for more details" - ewarn "" - fi - - if ! use python_single_target_python3_10; then - elog "You are building Blender with a newer python version than" - elog "supported by this version upstream." - elog "If you experience breakages with e.g. plugins, please switch to" - elog "python_single_target_python3_10 instead." - elog "Bug: https://bugs.gentoo.org/737388" - elog - fi - - xdg_icon_cache_update - xdg_mimeinfo_database_update - xdg_desktop_database_update -} - -pkg_postrm() { - xdg_icon_cache_update - xdg_mimeinfo_database_update - xdg_desktop_database_update - - ewarn "" - ewarn "You may want to remove the following directory." - ewarn "~/.config/${PN}/${SLOT}/cache/" - ewarn "It may contain extra render kernels not tracked by portage" - ewarn "" -} diff --git a/media-gfx/blender/blender-9999.ebuild b/media-gfx/blender/blender-9999.ebuild index d1c33bb35bd4..d54fb423595c 100644 --- a/media-gfx/blender/blender-9999.ebuild +++ b/media-gfx/blender/blender-9999.ebuild @@ -75,7 +75,7 @@ RDEPEND="${PYTHON_DEPS} ffmpeg? ( media-video/ffmpeg:=[x264,mp3,encode,theora,jpeg2k?,vpx,vorbis,opus,xvid] ) fftw? ( sci-libs/fftw:3.0= ) gmp? ( dev-libs/gmp ) - hip? ( dev-util/hip ) + hip? ( >=dev-util/hip-5.7.1 ) jack? ( virtual/jack ) jemalloc? ( dev-libs/jemalloc:= ) jpeg2k? ( media-libs/openjpeg:2= ) @@ -93,7 +93,7 @@ RDEPEND="${PYTHON_DEPS} openpgl? ( >=media-libs/openpgl-0.5.0 ) opensubdiv? ( >=media-libs/opensubdiv-3.5.0 ) openvdb? ( - >=media-gfx/openvdb-10.0.0:=[nanovdb?] + >=media-gfx/openvdb-10.1.0:=[nanovdb?] dev-libs/c-blosc:= ) optix? ( + #endif + #ifdef WITH_NANOVDB +-# include ++# include ++# define NANOVDB_VERSION(major, minor, patch) (major << 21 | minor << 10 | patch) ++# if NANOVDB_VERSION(NANOVDB_MAJOR_VERSION_NUMBER, NANOVDB_MINOR_VERSION_NUMBER, NANOVDB_PATCH_VERSION_NUMBER) >= NANOVDB_VERSION(32, 6, 0) ++# include ++# else ++# include ++# endif ++# undef NANOVDB_VERSION + #endif + + CCL_NAMESPACE_BEGIN +@@ -55,20 +62,35 @@ + FloatGridType floatgrid(*openvdb::gridConstPtrCast(grid)); + if constexpr (std::is_same_v) { + if (precision == 0) { +- nanogrid = nanovdb::openToNanoVDB(floatgrid); ++ if constexpr (nanovdb::Version() >= nanovdb::Version(32,6,0)) { ++ nanogrid = nanovdb::createNanoGrid(floatgrid); ++ } ++ else { ++ nanogrid = nanovdb::openToNanoVDB(floatgrid); ++ } + return true; + } +- else if (precision == 16) { +- nanogrid = nanovdb::openToNanoVDB(floatgrid); ++ if (precision == 16) { ++ if constexpr (nanovdb::Version() > nanovdb::Version(32,4,0)) { ++ nanogrid = nanovdb::createNanoGrid(floatgrid); ++ } ++ else { ++ nanogrid = nanovdb::openToNanoVDB(floatgrid); ++ } + return true; + } + } + +- nanogrid = nanovdb::openToNanoVDB(floatgrid); ++ if constexpr (nanovdb::Version() > nanovdb::Version(32,4,0)) { ++ nanogrid = nanovdb::createNanoGrid(floatgrid); ++ } ++ else { ++ nanogrid = nanovdb::openToNanoVDB(floatgrid); ++ } + } + catch (const std::exception &e) { + VLOG_WARNING << "Error converting OpenVDB to NanoVDB grid: " << e.what(); +--- a/CMakeLists.txt 2023-11-23 15:59:58.715805024 +0100 ++++ b/CMakeLists.txt 2023-11-23 16:06:42.352711508 +0100 +@@ -1461,7 +1461,7 @@ + endif() + + if(WITH_OPENVDB) +- list(APPEND OPENVDB_DEFINITIONS -DWITH_OPENVDB) ++ list(APPEND OPENVDB_DEFINITIONS -DWITH_OPENVDB -DNANOVDB_USE_OPENVDB) + + if(WITH_OPENVDB_3_ABI_COMPATIBLE) + list(APPEND OPENVDB_DEFINITIONS -DOPENVDB_3_ABI_COMPATIBLE) -- cgit v1.2.3