From 02eb6576978c38afed5787f6f2dbab8353379d66 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 22 Apr 2024 12:05:36 +0100 Subject: gentoo auto-resync : 22:04:2024 - 12:05:36 --- media-gfx/Manifest.gz | Bin 38013 -> 38014 bytes media-gfx/blender/Manifest | 15 +- media-gfx/blender/blender-3.3.15.ebuild | 4 +- media-gfx/blender/blender-3.3.8.ebuild | 4 +- media-gfx/blender/blender-3.6.8.ebuild | 4 +- media-gfx/blender/blender-4.0.2-r1.ebuild | 543 +++++++++++++++++++++ media-gfx/blender/blender-4.0.2.ebuild | 495 ------------------- media-gfx/blender/blender-9999.ebuild | 119 +++-- .../blender/files/blender-4.0.1-openvdb-11.patch | 2 + .../files/blender-4.0.2-CUDA_NVCC_FLAGS.patch | 14 + .../blender/files/blender-4.0.2-FindClang.patch | 14 + .../blender/files/blender-4.0.2-r1-osl-1.13.patch | 342 +++++++++++++ media-gfx/fotocx/Manifest | 2 +- media-gfx/fotocx/fotocx-24.21-r1.ebuild | 79 +++ media-gfx/fotocx/fotocx-24.21.ebuild | 79 --- 15 files changed, 1092 insertions(+), 624 deletions(-) create mode 100644 media-gfx/blender/blender-4.0.2-r1.ebuild delete mode 100644 media-gfx/blender/blender-4.0.2.ebuild create mode 100644 media-gfx/blender/files/blender-4.0.2-CUDA_NVCC_FLAGS.patch create mode 100644 media-gfx/blender/files/blender-4.0.2-FindClang.patch create mode 100644 media-gfx/blender/files/blender-4.0.2-r1-osl-1.13.patch create mode 100644 media-gfx/fotocx/fotocx-24.21-r1.ebuild delete mode 100644 media-gfx/fotocx/fotocx-24.21.ebuild (limited to 'media-gfx') diff --git a/media-gfx/Manifest.gz b/media-gfx/Manifest.gz index 827660917f9a..af1dee586f7b 100644 Binary files a/media-gfx/Manifest.gz and b/media-gfx/Manifest.gz differ diff --git a/media-gfx/blender/Manifest b/media-gfx/blender/Manifest index cd811a49ca43..7b2ba8d49f0a 100644 --- a/media-gfx/blender/Manifest +++ b/media-gfx/blender/Manifest @@ -4,14 +4,17 @@ 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 +AUX blender-4.0.1-openvdb-11.patch 3236 BLAKE2B e749db26f88b1e5329741a09c306ddd109f3feb4249bc5c50299477145f21f6a465a9dd2daf347c95c2cac7bf446300f47ab5feecc7887cff061fbeacc611feb SHA512 f6bd6db94ff631328e6b9aabe678a5a55a32e9f0a02aada90c843b31548d151533cbfcd1a61652bdad7060dc1f31db9269133c4f115bda13b77fa34c930631ed +AUX blender-4.0.2-CUDA_NVCC_FLAGS.patch 627 BLAKE2B 45c9f327ee6d2fbd45446ba0787f6de9dd77364a9a0b8b1b7683acfc5f359c5745df5747e4359ba0609cbc7dfbcb569e5f6ebace433f1ab9b87305435c9fd680 SHA512 13784a75a7fc303fa548c1d8c79e4435c40c32beb1f00c05dbe2731d1d3cd19ae202ff0b4ef9eff10e9bbd6c6f52024220a843d237dd91c27077bd91552dd6a2 +AUX blender-4.0.2-FindClang.patch 451 BLAKE2B 4b57395d440b590f9b2e097b74fbcf46dbe12fd13536cb335b914246995ede928f1208872c5044e1d0ecb1a702d0c46b656eb4b3abc3b0ed149abaf0d74bd433 SHA512 21aa3e158585184dfc1ccd931b53142cf436507a9126f4cee465214e7183553d02451babc5a636d3eb4ae0fd3ed0f0effb7b8962889f6dbec3e9476a61d0bbb2 +AUX blender-4.0.2-r1-osl-1.13.patch 14364 BLAKE2B fdee46fa3c5b1dc9a48499573e6bda242e2aa5d57f17e8b1e1a262673c5c2912c75cc8c531a30bcc0fd5019c4ff50ae089d0987e15ff1d57137e00f903356738 SHA512 2020b4f34c50ab1bb911a3b37b95a3da2a7f754e0b0ead7f651664131aa19debc00f8a8d32871b467bfdce9d83c43ca4597309351512635fdaf35f98c82266ff DIST blender-3.3.15.tar.xz 41928632 BLAKE2B d93d7d47183fcd7afa547b8d3f0bd7240ea204dcce885f42d79d29352ebacac43a2f92e380f576c2688d2d90d910caff069484e22669847b0eea71079a8bdc7e SHA512 d55223b7b9ae9f9c6fdbf5ed2988e997693fcb8262196acb08bbe58bae86f9f34474ed1cf5a213ee0247225601726265ded3cb4ad4d89910fc247f9cf5fec1ff DIST blender-3.3.8.tar.xz 41915180 BLAKE2B 7fb24afe2151bba53d8c25160bd697145aced74a8cd9a7ac92b2f66bc0ab59e995009f20f9e9bb622b05d614919137153805a2e233de5b0bb0a41a2ac3405a76 SHA512 63aef1e543a9c8bbc5f8838292ad2e8d0d9a8ee6fd2d71a419c1edc1a0ee1f59f7e9eab59bc20bf32ca56ba440bab1534c6c94c6ca2c5ab964e80bd452b7e519 DIST blender-3.6.8.tar.xz 70453744 BLAKE2B 5361977951fa1720899fad26092b967cc78b7ba82c8823f92fe1e6a14419edae1f3914f639e88dd8b5fb3ec7c124783e1ece56199a80b9b51a0f320764e1eba7 SHA512 a5e15dc9de7024cebb955fc531ae592a4c58336196a07fd63ed5bb4eb14d66751a3697ea8b120283ca5078c92d8c87966e882862011ebb4368f132e2de004a45 DIST blender-4.0.2.tar.xz 73281252 BLAKE2B 6ec72baa360049681c8ba18ae668041e87745bad51113cf50bca93d18f52ef5db84c58f9a2dc5b341ef1f0439e76288a1b1eda892a19033fb494e79cd3b2f983 SHA512 c37b85d06f5cf8b48cb8c657a9fb6b0ab1325271706fa34039f2993420f7606cd1e2c052173cdea94e9bec2924e7aa4df373e3a0fc1f9c4be336e62211b6bc4b -EBUILD blender-3.3.15.ebuild 13709 BLAKE2B a6ca8808b258deebe655e8b3f3cbf13e6f905d472d32685898bfa45df114683d0822f7e814ad8397eb750b6524b1cdbd56aa8d9df3060646c7f1d6033eb36599 SHA512 40cc4a0064041890c776a93a62a786fa53546ec3224fcddd8e16ec851300b5dbd6170fa8249d438b36bb667bd02bae322c32251de5061347b4a9a4087211b76f -EBUILD blender-3.3.8.ebuild 13708 BLAKE2B 5add8525d6e8fe397aedc5dc49ea2ca0111541351756cee226779ac93af8b6e3776f7a6a98881414d758d14eef2226137646d5a9948a735a869e08b4eac7486b SHA512 989641544173050fbb63b365729f8d522cda6ea1c6e20f319eaa120f8a8647957e365dd2d20bf559cf6842f75d171a1516d15779e69dbf092494dc77b14c627a -EBUILD blender-3.6.8.ebuild 14113 BLAKE2B cf45b97982b80ffb2d5e6c7db6d546d572b79f738aee56b7b59c907e8f5e525f4cecc66f804cb5e73bdbb9c96b056a55875a39f9d8e54d3261e2372a074650e1 SHA512 ba227fdd025805e5eee1c9af9ac0be61c49634df6c2cab6729de5750e1ae37c8e925760c77e3ba101733fa928b8ab9d3d265e013f9e42b499d2c6dca0533e3a9 -EBUILD blender-4.0.2.ebuild 15159 BLAKE2B e1d77edd5f32b8fbf017c1b0844cdf6776906b99c599a9db32e893a6aed48432a3103f9820229d14d74c35ab358d4bdc2ba4633e775e6dd19ecb1d71cf4f6213 SHA512 0550f1c6bee46b0655827e3aecdb29fb528cb79c048268a9186a4622306d4fb78c3a013fb505f209f5e118434cd832b2f45c3574a918de4c0016c2e9f728ffde -EBUILD blender-9999.ebuild 14842 BLAKE2B 4cfb8e8224342d5fafd4b8841ed2e2183868a73e8454708ac0eddecfef8b2b7951644cc480e76c35f0388e3d73fcaa6625eb29bf7b57919c952f17843149cbd0 SHA512 566fe4422eded46b477bf50a62faef5b65dbab9b44bd552fec5f6192c71b8f6b7390f3412ce35d2b77946c0dbc9227d91d5ebc6d4371415287d0ad84295a2a9b +EBUILD blender-3.3.15.ebuild 13709 BLAKE2B c560bc5268c459c98d9bae37e3b916666eb3abb05854587d9a39baafd99ea5248a0e3d032f6f406d00007d005615889b144586054eab69705a6b3cd73212efd6 SHA512 d901250972fa21d48ecb223b9ff58de167dea4516af3c0bc104f7425c4a2ceddcda3d67485df09984ec8810d05d5232b1643b331534e09a23385e151a9be9fd9 +EBUILD blender-3.3.8.ebuild 13708 BLAKE2B 3822fcde22d31852e8b9539c6689fe93b56716e788839a0afa26b944e3a1599a995270ac4c600be792ba0c5f2a88616009bcc6f5c4ed6e7f1812df77488989d2 SHA512 16ad4f61a12b7c238fd6c2c8013b2db38d7dd6e1ab53e01425fb4e917910892bdbbb09febe185416eb4abc34136d214fc5acccec4f234914f44b5deb2a7ae8b4 +EBUILD blender-3.6.8.ebuild 14113 BLAKE2B a431187e9349f2bb9597fe7a2e315ad6cee581b01840a97b711ed0a9cc746532c75594e96ccc3e09c0409afb680a116589990af69e2b5cbfc1e37b1e5c522609 SHA512 cc8491e28fae32313ef14816025c909d35381d870e4c7b8c4379bd5ca8578f1690b34ee9f6074bc644aff2b065b77ca0be45adefc5a95cd1e2329470a05cee61 +EBUILD blender-4.0.2-r1.ebuild 15840 BLAKE2B ecc8ff6237a17dea5fa2f7c74a3e20f2b0c46a49babfe1991b2d30836eae40484eb67f9d8dda9d6387732e85353534cc61bcea403cf93ebcf06ada5daafeeeb7 SHA512 16b4cd35c0af7310f51c90b540495f1f60bf6f076d6ef0e9d976ea8eafbdd783b0858442462376dc410bf55c2e192650cc10c26f38cb2c331cc49dbb9fdb76a3 +EBUILD blender-9999.ebuild 15544 BLAKE2B febeaa1556894778ff7efd6b0b250b976d3f006dbb490a1d6502d4d46b8b57c772207d25b05c5eca1bc825f39ac2a81a8a58c2a9b7638d0d8eef7592dc5b7f79 SHA512 ad0b8fed40afea6f0d30decbaac91ab9a37a8b83c9216c2ee0bc2ccbbff567b5ca2de539277cfae045c788aee25ffa183fa94d05aa8f402a132e6d81b3e7adce MISC metadata.xml 3362 BLAKE2B c87df9f801d97157a100cb5c83999348e6eb3c97a5fa88f0f649c37ed532e4a18e83f7a45ad0e1cfa4bc13380b808a265027fc9037da8cd37749935370dad096 SHA512 4082608c3012b20aa15a52f9a5452065fcc4a2d39d20f0417b41f4e096fc2fa57d2daf2e95847c2d6867cf5ea188a5fd662e3869964f01f11d681247e1abfb7c diff --git a/media-gfx/blender/blender-3.3.15.ebuild b/media-gfx/blender/blender-3.3.15.ebuild index ff1e6ffd66d6..1582fb82925a 100644 --- a/media-gfx/blender/blender-3.3.15.ebuild +++ b/media-gfx/blender/blender-3.3.15.ebuild @@ -22,8 +22,8 @@ else KEYWORDS="~amd64 ~arm ~arm64" fi -SLOT="${PV%.*}" LICENSE="|| ( GPL-3 BL )" +SLOT="${PV%.*}" IUSE="+bullet +dds +fluid +openexr +tbb \ alembic collada +color-management cuda +cycles \ debug doc +embree +ffmpeg +fftw +gmp headless jack jemalloc jpeg2k \ @@ -94,7 +94,7 @@ RDEPEND="${PYTHON_DEPS} ) opensubdiv? ( >=media-libs/opensubdiv-3.4.0 ) openvdb? ( - >=media-gfx/openvdb-9.0.0:=[nanovdb?] + =media-libs/opensubdiv-3.4.0 ) openvdb? ( - >=media-gfx/openvdb-9.0.0:=[nanovdb?] + =media-libs/opensubdiv-3.4.0 ) openvdb? ( - >=media-gfx/openvdb-9.0.0:=[nanovdb?] + 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() { + if use osl; then + llvm-r1_pkg_setup + fi + + blender_check_requirements + python-single-r1_pkg_setup +} + +src_unpack() { + if [[ ${PV} = *9999* ]] ; then + if ! use test; then + EGIT_SUBMODULES+=( '-tests/*' ) + fi + git-r3_src_unpack + + git-r3_fetch "${ADDONS_EGIT_REPO_URI}" + git-r3_checkout "${ADDONS_EGIT_REPO_URI}" "${S}/scripts/addons" + else + default + + if use test; then + mkdir -p "${S}/tests/data/" || die + mv blender-test-data/* "${S}/tests/data/" || die + fi + fi +} + +src_prepare() { + use cuda && cuda_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 + + sed -e "s|\${CMAKE_INSTALL_PREFIX}/\${BLENDER_BIN}|${T}/usr/\${BLENDER_BIN}|g" -i source/creator/CMakeLists.txt || 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/testing.cmake || die + fi +} + +src_configure() { + # -Werror=odr, -Werror=lto-type-mismatch + # https://bugs.gentoo.org/859607 + # https://projects.blender.org/blender/blender/issues/120444 + filter-lto + + # 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="$(usex gnome)" + -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_STRICT_BUILD_OPTIONS=yes + -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 cuda; then + mycmakeargs+=( + -DCUDA_NVCC_FLAGS="--compiler-bindir;$(cuda_gccdir)" + ) + fi + + 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 || use osl; 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_GPU_DRAW_TESTS=yes + -DWITH_GPU_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!" + + if use cuda; then + cuda_add_sandbox -w + addwrite "/dev/dri/renderD128" + addwrite "/dev/char/" + fi + + if use X; then + xdg_environment_reset + fi + + 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 + + if use man; then + # XXX: Stupid temporary hack for bug #925254 + cmake_src_install -j1 + + # Slot the man page + mv "${ED}/usr/share/man/man1/blender.1" "${ED}/usr/share/man/man1/blender-${BV}.1" || die + else + cmake_src_install + 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.2.ebuild b/media-gfx/blender/blender-4.0.2.ebuild deleted file mode 100644 index 5cb0b8edb57f..000000000000 --- a/media-gfx/blender/blender-4.0.2.ebuild +++ /dev/null @@ -1,495 +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 tbb ) - fluid? ( tbb ) - nanovdb? ( openvdb ) - openvdb? ( tbb openexr ) - optix? ( cuda ) - osl? ( cycles pugixml ) - 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/0.5 ) - opensubdiv? ( >=media-libs/opensubdiv-3.5.0 ) - openvdb? ( - >=media-gfx/openvdb-10.0.0:=[nanovdb?] - dev-libs/c-blosc:= - ) - optix? ( =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() { - # -Werror=odr, -Werror=lto-type-mismatch - # https://bugs.gentoo.org/859607 - # https://projects.blender.org/blender/blender/issues/120444 - filter-lto - - # 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_CLANG=$(usex osl) - -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_LLVM=$(usex osl) - -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_STRICT_BUILD_OPTIONS=yes - -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 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 - - if use man; then - # XXX: Stupid temporary hack for bug #925254 - cmake_src_install -j1 - - # Slot the man page - mv "${ED}/usr/share/man/man1/blender.1" "${ED}/usr/share/man/man1/blender-${BV}.1" || die - else - cmake_src_install - 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 dc32da73f1bd..aab785d58255 100644 --- a/media-gfx/blender/blender-9999.ebuild +++ b/media-gfx/blender/blender-9999.ebuild @@ -4,8 +4,10 @@ EAPI=8 PYTHON_COMPAT=( python3_{11..12} ) +# matches media-libs/osl +LLVM_COMPAT=( {15..17} ) -inherit check-reqs cmake cuda flag-o-matic pax-utils python-single-r1 toolchain-funcs xdg-utils +inherit check-reqs cmake cuda flag-o-matic llvm-r1 pax-utils python-single-r1 toolchain-funcs xdg-utils DESCRIPTION="3D Creation/Animation/Publishing System" HOMEPAGE="https://www.blender.org" @@ -14,30 +16,36 @@ if [[ ${PV} = *9999* ]] ; then EGIT_LFS="yes" inherit git-r3 EGIT_REPO_URI="https://projects.blender.org/blender/blender.git" + EGIT_SUBMODULES=( '*' '-lib/*' ) ADDONS_EGIT_REPO_URI="https://projects.blender.org/blender/blender-addons.git" + RESTRICT="!test? ( test )" 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 )" + SRC_URI=" + https://download.blender.org/source/${P}.tar.xz + " + # test? ( + # https://projects.blender.org/blender/blender-test-data/archive/blender-v$(ver_cut 1-2)-release.tar.gz + # ) + # " KEYWORDS="~amd64 ~arm ~arm64" + RESTRICT="test" # the test archive returns LFS references. fi -SLOT="${PV%.*}" LICENSE="|| ( GPL-3 BL )" +SLOT="${PV%.*}" IUSE="+bullet +fluid +openexr +tbb alembic collada +color-management cuda +cycles cycles-bin-kernels - debug doc +embree +ffmpeg +fftw +gmp hip jack jemalloc jpeg2k + debug doc +embree +ffmpeg +fftw +gmp gnome 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? ( test )" REQUIRED_USE="${PYTHON_REQUIRED_USE} alembic? ( openexr ) cuda? ( cycles ) cycles? ( openexr tiff tbb ) fluid? ( tbb ) + gnome? ( wayland ) hip? ( cycles ) nanovdb? ( openvdb ) openvdb? ( tbb openexr ) @@ -62,7 +70,7 @@ RDEPEND="${PYTHON_DEPS} media-libs/libjpeg-turbo:= media-libs/libpng:= media-libs/libsamplerate - >=media-libs/openimageio-2.4.6.0:= + >=media-libs/openimageio-2.5.6.0:= sys-libs/zlib:= virtual/glu virtual/libintl @@ -71,11 +79,12 @@ RDEPEND="${PYTHON_DEPS} 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] ) + embree? ( media-libs/embree:=[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 ) + gnome? ( gui-libs/libdecor ) + hip? ( >=dev-util/hip-5.7:= ) jack? ( virtual/jack ) jemalloc? ( dev-libs/jemalloc:= ) jpeg2k? ( media-libs/openjpeg:2= ) @@ -87,17 +96,23 @@ RDEPEND="${PYTHON_DEPS} openal? ( media-libs/openal ) oidn? ( >=media-libs/oidn-2.1.0 ) openexr? ( - >=dev-libs/imath-3.1.4-r2:= - >=media-libs/openexr-3:0= + >=dev-libs/imath-3.1.7:= + >=media-libs/openexr-3.2.1:0= ) openpgl? ( media-libs/openpgl:= ) opensubdiv? ( >=media-libs/opensubdiv-3.5.0 ) openvdb? ( - >=media-gfx/openvdb-10.1.0:=[nanovdb?] + >=media-gfx/openvdb-11:=[nanovdb?] dev-libs/c-blosc:= ) - optix? ( =media-libs/osl-1.13:= + $(llvm_gen_dep ' + >=media-libs/osl-1.13[llvm_slot_${LLVM_SLOT}] + media-libs/mesa[llvm_slot_${LLVM_SLOT}] + ') + ) pdf? ( media-libs/libharu ) potrace? ( media-gfx/potrace ) pugixml? ( dev-libs/pugixml ) @@ -141,10 +156,14 @@ BDEPEND=" wayland? ( dev-util/wayland-scanner ) + X? ( + x11-base/xorg-proto + ) " PATCHES=( - "${FILESDIR}/${PN}-4.0.1-openvdb-11.patch" + "${FILESDIR}/${PN}-4.0.2-FindClang.patch" + "${FILESDIR}/${PN}-4.0.2-CUDA_NVCC_FLAGS.patch" ) blender_check_requirements() { @@ -172,32 +191,36 @@ pkg_pretend() { } pkg_setup() { + if use osl; then + llvm-r1_pkg_setup + fi + blender_check_requirements python-single-r1_pkg_setup } src_unpack() { if [[ ${PV} = *9999* ]] ; then + if ! use test; then + EGIT_SUBMODULES+=( '-tests/*' ) + fi git-r3_src_unpack git-r3_fetch "${ADDONS_EGIT_REPO_URI}" git-r3_checkout "${ADDONS_EGIT_REPO_URI}" "${S}/scripts/addons" - # TODO - #if use test; then - - #fi 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 + mkdir -p "${S}/tests/data/" || die + mv blender-test-data/* "${S}/tests/data/" || die fi fi - } src_prepare() { + use cuda && cuda_src_prepare + cmake_src_prepare blender_get_version @@ -220,6 +243,8 @@ src_prepare() { -e "s|Icon=blender|Icon=blender-${BV}|" \ -i release/freedesktop/blender.desktop || die + sed -e "s|\${CMAKE_INSTALL_PREFIX}/\${BLENDER_BIN}|${T}/usr/\${BLENDER_BIN}|g" -i source/creator/CMakeLists.txt || die + mv \ release/freedesktop/icons/scalable/apps/blender.svg \ "release/freedesktop/icons/scalable/apps/blender-${BV}.svg" || die @@ -256,7 +281,6 @@ src_configure() { -DWITH_ALEMBIC=$(usex alembic) -DWITH_BOOST=yes -DWITH_BULLET=$(usex bullet) - -DWITH_CLANG=$(usex osl) -DWITH_CODEC_FFMPEG=$(usex ffmpeg) -DWITH_CODEC_SNDFILE=$(usex sndfile) -DWITH_CPU_CHECK=no @@ -278,7 +302,7 @@ src_configure() { -DWITH_GHOST_WAYLAND=$(usex wayland) -DWITH_GHOST_WAYLAND_APP_ID="blender-${BV}" -DWITH_GHOST_WAYLAND_DYNLOAD=no - -DWITH_GHOST_WAYLAND_LIBDECOR=no + -DWITH_GHOST_WAYLAND_LIBDECOR="$(usex gnome)" -DWITH_GHOST_X11=$(usex X) -DWITH_GMP=$(usex gmp) -DWITH_GTESTS=$(usex test) @@ -291,7 +315,6 @@ src_configure() { -DWITH_INPUT_NDOF=$(usex ndof) -DWITH_INTERNATIONAL=$(usex nls) -DWITH_JACK=$(usex jack) - -DWITH_LLVM=$(usex osl) -DWITH_MATERIALX=no -DWITH_MEM_JEMALLOC=$(usex jemalloc) -DWITH_MEM_VALGRIND=$(usex valgrind) @@ -327,6 +350,12 @@ src_configure() { -DWITH_XR_OPENXR=no ) + if use cuda; then + mycmakeargs+=( + -DCUDA_NVCC_FLAGS="--compiler-bindir;$(cuda_gccdir)" + ) + fi + if use optix; then mycmakeargs+=( -DCYCLES_RUNTIME_OPTIX_ROOT_DIR="${EPREFIX}"/opt/optix @@ -337,8 +366,8 @@ src_configure() { # 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') + 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. @@ -351,6 +380,13 @@ src_configure() { use cuda && use cycles-bin-kernels && mycmakeargs+=( -DCUDA_HOST_COMPILER="$(cuda_gccdir)" ) fi + if tc-is-clang || use osl; then + mycmakeargs+=( + -DWITH_CLANG=yes + -DWITH_LLVM=yes + ) + fi + if use test ; then local CYCLES_TEST_DEVICES=( "CPU" ) if use cycles-bin-kernels; then @@ -361,9 +397,8 @@ src_configure() { 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 + -DWITH_GPU_DRAW_TESTS=yes + -DWITH_GPU_RENDER_TESTS=yes ) fi @@ -373,7 +408,7 @@ 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 "$@" + DESTDIR="${T}" cmake_build install blender_get_version # Define custom blender data/script file paths not be able to find them otherwise during testing. @@ -386,10 +421,20 @@ src_test() { [ -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!" + if use cuda; then + cuda_add_sandbox -w + addwrite "/dev/dri/renderD128" + addwrite "/dev/char/" + fi + + if use X; then + xdg_environment_reset + fi + cmake_src_test # Clean up the image directory for src_install - rm -fr "${T}"/usr || die + rm -fr "${T}/usr" || die } src_install() { @@ -465,11 +510,11 @@ pkg_postinst() { ewarn "" fi - if ! use python_single_target_python3_10; then + if ! use python_single_target_python3_11; 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 "python_single_target_python3_11 instead." elog "Bug: https://bugs.gentoo.org/737388" elog fi diff --git a/media-gfx/blender/files/blender-4.0.1-openvdb-11.patch b/media-gfx/blender/files/blender-4.0.1-openvdb-11.patch index d9455222c6a7..1f1561e8e7db 100644 --- a/media-gfx/blender/files/blender-4.0.1-openvdb-11.patch +++ b/media-gfx/blender/files/blender-4.0.1-openvdb-11.patch @@ -1,3 +1,5 @@ +From: Paul Zander +Change lookup for OpenVDB-11 --- a/intern/cycles/scene/image_vdb.cpp 2023-11-23 14:42:38.772685628 +0100 +++ b/intern/cycles/scene/image_vdb.cpp 2023-11-23 15:19:55.475804922 +0100 @@ -11,7 +11,14 @@ diff --git a/media-gfx/blender/files/blender-4.0.2-CUDA_NVCC_FLAGS.patch b/media-gfx/blender/files/blender-4.0.2-CUDA_NVCC_FLAGS.patch new file mode 100644 index 000000000000..f476756424e0 --- /dev/null +++ b/media-gfx/blender/files/blender-4.0.2-CUDA_NVCC_FLAGS.patch @@ -0,0 +1,14 @@ +From: Paul Zander +insert CUDA_NVCC_FLAGS into the custom nvcc call so we can use CUDAHOSTCXX, e.g. a different gcc version for cuda code +diff --git a/intern/cycles/kernel/CMakeLists.txt b/intern/cycles/kernel/CMakeLists.txt +index 604ccb8..160ee20 100644 +--- a/intern/cycles/kernel/CMakeLists.txt ++++ b/intern/cycles/kernel/CMakeLists.txt +@@ -752,6 +752,7 @@ if(WITH_CYCLES_DEVICE_OPTIX AND WITH_CYCLES_CUDA_BINARIES) + -I "${CMAKE_CURRENT_SOURCE_DIR}/device/cuda" + --use_fast_math + -Wno-deprecated-gpu-targets ++ ${CUDA_NVCC_FLAGS} + -o ${output}) + + if(WITH_NANOVDB) diff --git a/media-gfx/blender/files/blender-4.0.2-FindClang.patch b/media-gfx/blender/files/blender-4.0.2-FindClang.patch new file mode 100644 index 000000000000..2c7a404c3bc6 --- /dev/null +++ b/media-gfx/blender/files/blender-4.0.2-FindClang.patch @@ -0,0 +1,14 @@ +From: Paul Zander +look for the merged clang library so we can find clang +diff --git a/build_files/cmake/Modules/FindClang.cmake b/build_files/cmake/Modules/FindClang.cmake +index 1957c63..5620b84 100644 +--- a/build_files/cmake/Modules/FindClang.cmake ++++ b/build_files/cmake/Modules/FindClang.cmake +@@ -85,6 +85,7 @@ set(_CLANG_FIND_COMPONENTS + clangAST + clangLex + clangBasic ++ clang-cpp + ) + + set(_CLANG_LIBRARIES) diff --git a/media-gfx/blender/files/blender-4.0.2-r1-osl-1.13.patch b/media-gfx/blender/files/blender-4.0.2-r1-osl-1.13.patch new file mode 100644 index 000000000000..064abf21c6a6 --- /dev/null +++ b/media-gfx/blender/files/blender-4.0.2-r1-osl-1.13.patch @@ -0,0 +1,342 @@ +From 798a0b301e640e73ae12e6f8a36a66746893bff1 Mon Sep 17 00:00:00 2001 +From: Brecht Van Lommel +Date: Sun, 10 Dec 2023 17:08:47 +0100 +Subject: [PATCH] Cycles: update OSL to work with version 1.13.5 + +This keeps compatibility with older stable versions, but not +older unreleased versions in the 1.13.x series. + +Ref #113157 + +Pull Request: https://projects.blender.org/blender/blender/pulls/116004 +--- + intern/cycles/device/cpu/device_impl.cpp | 2 +- + .../device/cpu/kernel_thread_globals.cpp | 6 ++- + .../cycles/device/cpu/kernel_thread_globals.h | 3 +- + intern/cycles/kernel/device/cpu/globals.h | 1 + + intern/cycles/kernel/osl/closures.cpp | 52 ++++++++++++++++++- + intern/cycles/kernel/osl/globals.cpp | 3 +- + intern/cycles/kernel/osl/globals.h | 4 +- + intern/cycles/kernel/osl/osl.h | 5 ++ + intern/cycles/kernel/osl/services.cpp | 27 ++++++++-- + intern/cycles/kernel/osl/services.h | 21 +++++++- + intern/cycles/kernel/osl/types.h | 4 +- + 11 files changed, 115 insertions(+), 13 deletions(-) + +diff --git a/intern/cycles/device/cpu/device_impl.cpp b/intern/cycles/device/cpu/device_impl.cpp +index cbbdb844323..ba838233855 100644 +--- a/intern/cycles/device/cpu/device_impl.cpp ++++ b/intern/cycles/device/cpu/device_impl.cpp +@@ -313,7 +313,7 @@ void CPUDevice::get_cpu_kernel_thread_globals( + kernel_thread_globals.clear(); + void *osl_memory = get_cpu_osl_memory(); + for (int i = 0; i < info.cpu_threads; i++) { +- kernel_thread_globals.emplace_back(kernel_globals, osl_memory, profiler); ++ kernel_thread_globals.emplace_back(kernel_globals, osl_memory, profiler, i); + } + } + +diff --git a/intern/cycles/device/cpu/kernel_thread_globals.cpp b/intern/cycles/device/cpu/kernel_thread_globals.cpp +index 546061a5086..998a63aa334 100644 +--- a/intern/cycles/device/cpu/kernel_thread_globals.cpp ++++ b/intern/cycles/device/cpu/kernel_thread_globals.cpp +@@ -12,14 +12,16 @@ CCL_NAMESPACE_BEGIN + + CPUKernelThreadGlobals::CPUKernelThreadGlobals(const KernelGlobalsCPU &kernel_globals, + void *osl_globals_memory, +- Profiler &cpu_profiler) ++ Profiler &cpu_profiler, ++ const int thread_index) + : KernelGlobalsCPU(kernel_globals), cpu_profiler_(cpu_profiler) + { + clear_runtime_pointers(); + + #ifdef WITH_OSL +- OSLGlobals::thread_init(this, static_cast(osl_globals_memory)); ++ OSLGlobals::thread_init(this, static_cast(osl_globals_memory), thread_index); + #else ++ (void)thread_index; + (void)osl_globals_memory; + #endif + +diff --git a/intern/cycles/device/cpu/kernel_thread_globals.h b/intern/cycles/device/cpu/kernel_thread_globals.h +index dc4b693702a..3dbc35fefa3 100644 +--- a/intern/cycles/device/cpu/kernel_thread_globals.h ++++ b/intern/cycles/device/cpu/kernel_thread_globals.h +@@ -23,7 +23,8 @@ class CPUKernelThreadGlobals : public KernelGlobalsCPU { + * without OSL support. Will avoid need to those unnamed pointers and casts. */ + CPUKernelThreadGlobals(const KernelGlobalsCPU &kernel_globals, + void *osl_globals_memory, +- Profiler &cpu_profiler); ++ Profiler &cpu_profiler, ++ const int thread_index); + + ~CPUKernelThreadGlobals(); + +diff --git a/intern/cycles/kernel/device/cpu/globals.h b/intern/cycles/kernel/device/cpu/globals.h +index 90a274b2bcf..d0495883e27 100644 +--- a/intern/cycles/kernel/device/cpu/globals.h ++++ b/intern/cycles/kernel/device/cpu/globals.h +@@ -49,6 +49,7 @@ typedef struct KernelGlobalsCPU { + OSLGlobals *osl = nullptr; + OSLShadingSystem *osl_ss = nullptr; + OSLThreadData *osl_tdata = nullptr; ++ int osl_thread_index = 0; + #endif + + #ifdef __PATH_GUIDING__ +diff --git a/intern/cycles/kernel/osl/closures.cpp b/intern/cycles/kernel/osl/closures.cpp +index 808e13f48d6..4a5906873af 100644 +--- a/intern/cycles/kernel/osl/closures.cpp ++++ b/intern/cycles/kernel/osl/closures.cpp +@@ -110,7 +110,17 @@ void osl_eval_nodes(const KernelGlobalsCPU *kg, + if (sd->object == OBJECT_NONE && sd->lamp == LAMP_NONE) { + /* background */ + if (kg->osl->background_state) { ++#if OSL_LIBRARY_VERSION_CODE >= 11304 ++ ss->execute(*octx, ++ *(kg->osl->background_state), ++ kg->osl_thread_index, ++ 0, ++ *globals, ++ nullptr, ++ nullptr); ++#else + ss->execute(octx, *(kg->osl->background_state), *globals); ++#endif + } + } + else { +@@ -150,8 +160,18 @@ void osl_eval_nodes(const KernelGlobalsCPU *kg, + globals->dPdy = TO_VEC3(tmp_dP.dy); + } + +- /* execute bump shader */ ++/* execute bump shader */ ++#if OSL_LIBRARY_VERSION_CODE >= 11304 ++ ss->execute(*octx, ++ *(kg->osl->bump_state[shader]), ++ kg->osl_thread_index, ++ 0, ++ *globals, ++ nullptr, ++ nullptr); ++#else + ss->execute(octx, *(kg->osl->bump_state[shader]), *globals); ++#endif + + /* reset state */ + sd->P = P; +@@ -164,7 +184,17 @@ void osl_eval_nodes(const KernelGlobalsCPU *kg, + + /* surface shader */ + if (kg->osl->surface_state[shader]) { ++#if OSL_LIBRARY_VERSION_CODE >= 11304 ++ ss->execute(*octx, ++ *(kg->osl->surface_state[shader]), ++ kg->osl_thread_index, ++ 0, ++ *globals, ++ nullptr, ++ nullptr); ++#else + ss->execute(octx, *(kg->osl->surface_state[shader]), *globals); ++#endif + } + } + +@@ -208,7 +238,17 @@ void osl_eval_nodes(const KernelGlobalsCPU *kg, + int shader = sd->shader & SHADER_MASK; + + if (kg->osl->volume_state[shader]) { ++#if OSL_LIBRARY_VERSION_CODE >= 11304 ++ ss->execute(*octx, ++ *(kg->osl->volume_state[shader]), ++ kg->osl_thread_index, ++ 0, ++ *globals, ++ nullptr, ++ nullptr); ++#else + ss->execute(octx, *(kg->osl->volume_state[shader]), *globals); ++#endif + } + + /* flatten closure tree */ +@@ -245,7 +285,17 @@ void osl_eval_nodes(const KernelGlobalsCPU *kg, + int shader = sd->shader & SHADER_MASK; + + if (kg->osl->displacement_state[shader]) { ++#if OSL_LIBRARY_VERSION_CODE >= 11304 ++ ss->execute(*octx, ++ *(kg->osl->displacement_state[shader]), ++ kg->osl_thread_index, ++ 0, ++ *globals, ++ nullptr, ++ nullptr); ++#else + ss->execute(octx, *(kg->osl->displacement_state[shader]), *globals); ++#endif + } + + /* get back position */ +diff --git a/intern/cycles/kernel/osl/globals.cpp b/intern/cycles/kernel/osl/globals.cpp +index c4f055af7f7..573ddb6f362 100644 +--- a/intern/cycles/kernel/osl/globals.cpp ++++ b/intern/cycles/kernel/osl/globals.cpp +@@ -14,7 +14,7 @@ + + CCL_NAMESPACE_BEGIN + +-void OSLGlobals::thread_init(KernelGlobalsCPU *kg, OSLGlobals *osl_globals) ++void OSLGlobals::thread_init(KernelGlobalsCPU *kg, OSLGlobals *osl_globals, const int thread_index) + { + /* no osl used? */ + if (!osl_globals->use) { +@@ -37,6 +37,7 @@ void OSLGlobals::thread_init(KernelGlobalsCPU *kg, OSLGlobals *osl_globals) + + kg->osl_ss = (OSLShadingSystem *)ss; + kg->osl_tdata = tdata; ++ kg->osl_thread_index = thread_index; + } + + void OSLGlobals::thread_free(KernelGlobalsCPU *kg) +diff --git a/intern/cycles/kernel/osl/globals.h b/intern/cycles/kernel/osl/globals.h +index 9656ef08306..cf24c62613b 100644 +--- a/intern/cycles/kernel/osl/globals.h ++++ b/intern/cycles/kernel/osl/globals.h +@@ -45,7 +45,9 @@ struct OSLGlobals { + } + + /* per thread data */ +- static void thread_init(struct KernelGlobalsCPU *kg, OSLGlobals *osl_globals); ++ static void thread_init(struct KernelGlobalsCPU *kg, ++ OSLGlobals *osl_globals, ++ const int thread_init); + static void thread_free(struct KernelGlobalsCPU *kg); + + bool use; +diff --git a/intern/cycles/kernel/osl/osl.h b/intern/cycles/kernel/osl/osl.h +index 347b635632a..3238eb5096b 100644 +--- a/intern/cycles/kernel/osl/osl.h ++++ b/intern/cycles/kernel/osl/osl.h +@@ -52,6 +52,11 @@ ccl_device_inline void shaderdata_to_shaderglobals(KernelGlobals kg, + + /* shader data to be used in services callbacks */ + globals->renderstate = sd; ++#if OSL_LIBRARY_VERSION_CODE >= 11304 ++ globals->shadingStateUniform = nullptr; ++ globals->thread_index = 0; ++ globals->shade_index = 0; ++#endif + + /* hacky, we leave it to services to fetch actual object matrix */ + globals->shader2common = sd; +diff --git a/intern/cycles/kernel/osl/services.cpp b/intern/cycles/kernel/osl/services.cpp +index 02dc1cd1aec..93595b0a458 100644 +--- a/intern/cycles/kernel/osl/services.cpp ++++ b/intern/cycles/kernel/osl/services.cpp +@@ -1165,7 +1165,18 @@ bool OSLRenderServices::get_userdata( + return false; /* disabled by lockgeom */ + } + +-#if OSL_LIBRARY_VERSION_CODE >= 11100 ++#if OSL_LIBRARY_VERSION_CODE >= 11304 ++TextureSystem::TextureHandle *OSLRenderServices::get_texture_handle(OSLUStringHash filename, ++ OSL::ShadingContext *context, ++ const TextureOpt *opt) ++{ ++ return get_texture_handle(to_ustring(filename), context, opt); ++} ++ ++TextureSystem::TextureHandle *OSLRenderServices::get_texture_handle(OSL::ustring filename, ++ OSL::ShadingContext *, ++ const TextureOpt *) ++#elif OSL_LIBRARY_VERSION_CODE >= 11100 + TextureSystem::TextureHandle *OSLRenderServices::get_texture_handle(OSLUStringHash filename, + OSL::ShadingContext *) + #else +@@ -1616,7 +1627,17 @@ bool OSLRenderServices::environment(OSLUStringHash filename, + return status; + } + +-#if OSL_LIBRARY_VERSION_CODE >= 11100 ++#if OSL_LIBRARY_VERSION_CODE >= 11304 ++bool OSLRenderServices::get_texture_info(OSLUStringHash filename, ++ TextureHandle *texture_handle, ++ TexturePerthread *texture_thread_info, ++ OSL::ShaderGlobals *, ++ int subimage, ++ OSLUStringHash dataname, ++ TypeDesc datatype, ++ void *data, ++ OSLUStringHash *) ++#elif OSL_LIBRARY_VERSION_CODE >= 11100 + bool OSLRenderServices::get_texture_info(OSLUStringHash filename, + TextureHandle *texture_handle, + TexturePerthread *texture_thread_info, +@@ -1627,7 +1648,7 @@ bool OSLRenderServices::get_texture_info(OSLUStringHash filename, + void *data, + OSLUStringHash *) + #else +-bool OSLRenderServices::get_texture_info(OSL::ShaderGlobals *sg, ++bool OSLRenderServices::get_texture_info(OSL::ShaderGlobals *, + OSLUStringHash filename, + TextureHandle *texture_handle, + int subimage, +diff --git a/intern/cycles/kernel/osl/services.h b/intern/cycles/kernel/osl/services.h +index b674fa7c7a7..62d8a4c5416 100644 +--- a/intern/cycles/kernel/osl/services.h ++++ b/intern/cycles/kernel/osl/services.h +@@ -189,7 +189,14 @@ class OSLRenderServices : public OSL::RendererServices { + void *val, + bool derivatives) override; + +-#if OSL_LIBRARY_VERSION_CODE >= 11100 ++#if OSL_LIBRARY_VERSION_CODE >= 11304 ++ TextureSystem::TextureHandle *get_texture_handle(OSL::ustring filename, ++ OSL::ShadingContext *context, ++ const TextureOpt *options) override; ++ TextureSystem::TextureHandle *get_texture_handle(OSLUStringHash filename, ++ OSL::ShadingContext *context, ++ const TextureOpt *options) override; ++#elif OSL_LIBRARY_VERSION_CODE >= 11100 + TextureSystem::TextureHandle *get_texture_handle(OSLUStringHash filename, + OSL::ShadingContext *context) override; + #else +@@ -245,7 +252,17 @@ class OSLRenderServices : public OSL::RendererServices { + float *dresultdt, + OSLUStringHash *errormessage) override; + +-#if OSL_LIBRARY_VERSION_CODE >= 11100 ++#if OSL_LIBRARY_VERSION_CODE >= 11304 ++ bool get_texture_info(OSLUStringHash filename, ++ TextureHandle *texture_handle, ++ TexturePerthread *texture_thread_info, ++ OSL::ShaderGlobals *sg, ++ int subimage, ++ OSLUStringHash dataname, ++ TypeDesc datatype, ++ void *data, ++ OSLUStringHash *errormessage) override; ++#elif OSL_LIBRARY_VERSION_CODE >= 11100 + bool get_texture_info(OSLUStringHash filename, + TextureHandle *texture_handle, + TexturePerthread *texture_thread_info, +diff --git a/intern/cycles/kernel/osl/types.h b/intern/cycles/kernel/osl/types.h +index 71c808ff91b..8cb5779961a 100644 +--- a/intern/cycles/kernel/osl/types.h ++++ b/intern/cycles/kernel/osl/types.h +@@ -86,8 +86,10 @@ struct ShaderGlobals { + ccl_private void *tracedata; + ccl_private void *objdata; + void *context; +-#if OSL_LIBRARY_VERSION_CODE >= 11302 ++#if OSL_LIBRARY_VERSION_CODE >= 11304 + void *shadingStateUniform; ++ int thread_index; ++ int shade_index; + #endif + void *renderer; + ccl_private void *object2common; diff --git a/media-gfx/fotocx/Manifest b/media-gfx/fotocx/Manifest index 3c21d8daf0ef..3649bb855115 100644 --- a/media-gfx/fotocx/Manifest +++ b/media-gfx/fotocx/Manifest @@ -11,5 +11,5 @@ EBUILD fotocx-23.70.ebuild 2295 BLAKE2B 2358879706af1eb5343fdae235a5b8ce7d8297d2 EBUILD fotocx-23.82.ebuild 2297 BLAKE2B 7ff3bab8c385d610375ca20a2d929036a3e409b0993e1e1d4f7faa6cc35f033d49fc3350c5fd418b424b231bb8de6d928a6ee1ebab7bc6d30eab84238c5b723e SHA512 c4905b3fedde2c628b3e25c3a1199077125151b575bc1442c16e7109ddde9eebf941b1a442cb484e0beab1c831a2e1860a5167549690b71efd635741739e2aa4 EBUILD fotocx-24.11-r1.ebuild 2276 BLAKE2B 20ae18597694d60c49bd6468b0e1a7bca00735a778cae9f3be506a821008d90012aeec9ced86c38d1495069d316e51a97bcd5eb2f4b2aa212ace264b99fa3995 SHA512 3f0faf71589503f942e2a00cfa9f2efb95b7132604abca1cdb625a1b23e0b7e4dbf0c02d55e55cd57d8ff4089f947792691fb1edcdaaf0d69bc0361f6a78afc7 EBUILD fotocx-24.20.ebuild 2276 BLAKE2B f1924f867870ba016551b5686642d858adc071520b364a5bc75ff1b14da12063b7f40460d009d5e6f34c45e503e8ca5cb79f9ede4ce382ad3e27dbe2c7aa45ec SHA512 ebbbf06d0a50640ef04e74460718a7ae13eea31fbce4494035933f71db374ef61e5c76012dc7827551f4d2f942f7fd39b46256aded31a66051ca2e2e17565601 -EBUILD fotocx-24.21.ebuild 2276 BLAKE2B f1924f867870ba016551b5686642d858adc071520b364a5bc75ff1b14da12063b7f40460d009d5e6f34c45e503e8ca5cb79f9ede4ce382ad3e27dbe2c7aa45ec SHA512 ebbbf06d0a50640ef04e74460718a7ae13eea31fbce4494035933f71db374ef61e5c76012dc7827551f4d2f942f7fd39b46256aded31a66051ca2e2e17565601 +EBUILD fotocx-24.21-r1.ebuild 2288 BLAKE2B ab74c6ef40f963dc17b665783e0bfb9b72db4d2d2aa3aedd3d9c11f01cbd6c9bc06edbfdb7e7b060b4a2e9967ef6cf500e568ee0b13f0e77ab4b772d550ec075 SHA512 e4908a812733f629ee52d4116e9784205517992fb18f419e5eb8013614f8ce054ba36f190117c48b0114d658d93c634556ed3b0ab98d28394bc165ee2b23ba0b MISC metadata.xml 851 BLAKE2B a6c60b79fb5646c3bd7d6959d4a1b974ee714bf6ed64f205d9c00d684b3da94672005658336c1c5fcb903605d11c9a5607616151b2f6262f3173e15b8fc44655 SHA512 2794ae92afa076875c7f725969efdcf9cb84435d0ea033adc28f5860a69438b754f4d22b0db27dc7392683439e51b51ae581a6da450719276e8df51a2a306ad9 diff --git a/media-gfx/fotocx/fotocx-24.21-r1.ebuild b/media-gfx/fotocx/fotocx-24.21-r1.ebuild new file mode 100644 index 000000000000..ace12ae77268 --- /dev/null +++ b/media-gfx/fotocx/fotocx-24.21-r1.ebuild @@ -0,0 +1,79 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit optfeature xdg-utils + +DESCRIPTION="Program for improving image files made with a digital camera" +HOMEPAGE="https://kornelix.net/fotocx/fotocx.html" +SRC_URI="https://kornelix.net/downloads/downloads/${P}-source.tar.gz" +S="${WORKDIR}/${PN}" + +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="amd64 ~arm64 x86" + +# For required dependencies read doc/README, for required tools read +# data/userguide [INSTALLATION]. xdg-open (x11-misc/xdg-utils) is an +# alternative to firefox and chromium-browser. `grep '"which ' * -R` +# is helpful to report some required tools run via the shell. + +DEPEND=" + media-libs/clutter + media-libs/clutter-gtk + media-libs/lcms:2 + media-libs/libjpeg-turbo:= + media-libs/libpng:= + media-libs/tiff:= + media-libs/libchamplain[gtk] + x11-libs/gtk+:3" +RDEPEND=" + ${DEPEND} + media-gfx/dcraw + media-libs/exiftool + x11-misc/xdg-utils +" + +PATCHES=( "${FILESDIR}/${PN}-24.20-documentation.patch" ) + +DOCS=() +HTML_DOCS=() + +src_prepare() { + sed -i -e "/^DOCDIR/ s/${PN}$/${PF}/" Makefile || die + sed -i -e "/^Icon/ s/\.png$//" ${PN}.desktop || die + default +} + +src_install() { + # For the Help menu items to work, *.html must be in /usr/share/doc/${PF}, + # and README, changelog, copyright, license, etc. must not be compressed. + emake DESTDIR="${D}" PREFIX="/usr" install + rm -f "${D}"/usr/share/doc/${PF}/*.man || die + docompress -x /usr/share/doc +} + +pkg_postinst() { + optfeature "HEIC & AVIF file support" media-libs/libheif + optfeature "additional RAW file support" media-gfx/rawtherapee + optfeature "additional RAW file support" media-gfx/darktable + optfeature "video thumbnails & playback" media-video/ffmpeg + optfeature "copying images to optical media" app-cdr/dvd+rw-tools + optfeature "WEBP file support" media-libs/libwebp + + elog + elog "Please read the Help > User Guide for details. The source location is" + elog "/usr/share/fotocx/data/userguide and after running fotocx a copy will" + elog "be placed at /home//.fotocx/userguide." + elog + elog "To play videos, in Tools > Preferences set 'Video File Play Command'." + elog + xdg_desktop_database_update + xdg_mimeinfo_database_update +} + +pkg_postrm() { + xdg_desktop_database_update + xdg_mimeinfo_database_update +} diff --git a/media-gfx/fotocx/fotocx-24.21.ebuild b/media-gfx/fotocx/fotocx-24.21.ebuild deleted file mode 100644 index 130da99dcd2c..000000000000 --- a/media-gfx/fotocx/fotocx-24.21.ebuild +++ /dev/null @@ -1,79 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit optfeature xdg-utils - -DESCRIPTION="Program for improving image files made with a digital camera" -HOMEPAGE="https://kornelix.net/fotocx/fotocx.html" -SRC_URI="https://kornelix.net/downloads/downloads/${P}-source.tar.gz" -S="${WORKDIR}/${PN}" - -LICENSE="GPL-3+" -SLOT="0" -KEYWORDS="~amd64 ~arm64 ~x86" - -# For required dependencies read doc/README, for required tools read -# data/userguide [INSTALLATION]. xdg-open (x11-misc/xdg-utils) is an -# alternative to firefox and chromium-browser. `grep '"which ' * -R` -# is helpful to report some required tools run via the shell. - -DEPEND=" - media-libs/clutter - media-libs/clutter-gtk - media-libs/lcms:2 - media-libs/libjpeg-turbo:= - media-libs/libpng:= - media-libs/tiff:= - media-libs/libchamplain[gtk] - x11-libs/gtk+:3" -RDEPEND=" - ${DEPEND} - media-gfx/dcraw - media-libs/exiftool - x11-misc/xdg-utils -" - -PATCHES=( "${FILESDIR}/${PN}-24.20-documentation.patch" ) - -DOCS=() -HTML_DOCS=() - -src_prepare() { - sed -i -e "/^DOCDIR/ s/${PN}$/${PF}/" Makefile || die - sed -i -e "/^Icon/ s/\.png$//" ${PN}.desktop || die - default -} - -src_install() { - # For the Help menu items to work, *.html must be in /usr/share/doc/${PF}, - # and README, changelog, copyright, license, etc. must not be compressed. - emake DESTDIR="${D}" install - rm -f "${D}"/usr/share/doc/${PF}/*.man || die - docompress -x /usr/share/doc -} - -pkg_postinst() { - optfeature "HEIC & AVIF file support" media-libs/libheif - optfeature "additional RAW file support" media-gfx/rawtherapee - optfeature "additional RAW file support" media-gfx/darktable - optfeature "video thumbnails & playback" media-video/ffmpeg - optfeature "copying images to optical media" app-cdr/dvd+rw-tools - optfeature "WEBP file support" media-libs/libwebp - - elog - elog "Please read the Help > User Guide for details. The source location is" - elog "/usr/share/fotocx/data/userguide and after running fotocx a copy will" - elog "be placed at /home//.fotocx/userguide." - elog - elog "To play videos, in Tools > Preferences set 'Video File Play Command'." - elog - xdg_desktop_database_update - xdg_mimeinfo_database_update -} - -pkg_postrm() { - xdg_desktop_database_update - xdg_mimeinfo_database_update -} -- cgit v1.2.3