summaryrefslogtreecommitdiff
path: root/media-gfx
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-04-22 12:05:36 +0100
committerV3n3RiX <venerix@koprulu.sector>2024-04-22 12:05:36 +0100
commit02eb6576978c38afed5787f6f2dbab8353379d66 (patch)
tree0b82220aae58c1307bef3aff0f342f4cdf858161 /media-gfx
parent490ef2c2dc8b4e808f37add1adee21a754efd9a9 (diff)
gentoo auto-resync : 22:04:2024 - 12:05:36
Diffstat (limited to 'media-gfx')
-rw-r--r--media-gfx/Manifest.gzbin38013 -> 38014 bytes
-rw-r--r--media-gfx/blender/Manifest15
-rw-r--r--media-gfx/blender/blender-3.3.15.ebuild4
-rw-r--r--media-gfx/blender/blender-3.3.8.ebuild4
-rw-r--r--media-gfx/blender/blender-3.6.8.ebuild4
-rw-r--r--media-gfx/blender/blender-4.0.2-r1.ebuild (renamed from media-gfx/blender/blender-4.0.2.ebuild)128
-rw-r--r--media-gfx/blender/blender-9999.ebuild119
-rw-r--r--media-gfx/blender/files/blender-4.0.1-openvdb-11.patch2
-rw-r--r--media-gfx/blender/files/blender-4.0.2-CUDA_NVCC_FLAGS.patch14
-rw-r--r--media-gfx/blender/files/blender-4.0.2-FindClang.patch14
-rw-r--r--media-gfx/blender/files/blender-4.0.2-r1-osl-1.13.patch342
-rw-r--r--media-gfx/fotocx/Manifest2
-rw-r--r--media-gfx/fotocx/fotocx-24.21-r1.ebuild (renamed from media-gfx/fotocx/fotocx-24.21.ebuild)4
13 files changed, 560 insertions, 92 deletions
diff --git a/media-gfx/Manifest.gz b/media-gfx/Manifest.gz
index 827660917f9a..af1dee586f7b 100644
--- a/media-gfx/Manifest.gz
+++ b/media-gfx/Manifest.gz
Binary files 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-gfx/openvdb-11.0.0:=[nanovdb?]
dev-libs/c-blosc:=
)
optix? ( <dev-libs/optix-7.5.0 )
diff --git a/media-gfx/blender/blender-3.3.8.ebuild b/media-gfx/blender/blender-3.3.8.ebuild
index a6bf20c9427b..89b057d5fd30 100644
--- a/media-gfx/blender/blender-3.3.8.ebuild
+++ b/media-gfx/blender/blender-3.3.8.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-gfx/openvdb-11.0.0:=[nanovdb?]
dev-libs/c-blosc:=
)
optix? ( <dev-libs/optix-7.5.0 )
diff --git a/media-gfx/blender/blender-3.6.8.ebuild b/media-gfx/blender/blender-3.6.8.ebuild
index 4d93c8e6c515..12092454eb33 100644
--- a/media-gfx/blender/blender-3.6.8.ebuild
+++ b/media-gfx/blender/blender-3.6.8.ebuild
@@ -23,8 +23,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 cycles-bin-kernels
debug doc +embree +ffmpeg +fftw +gmp jack jemalloc jpeg2k
@@ -89,7 +89,7 @@ RDEPEND="${PYTHON_DEPS}
openpgl? ( media-libs/openpgl:0/0.5 )
opensubdiv? ( >=media-libs/opensubdiv-3.4.0 )
openvdb? (
- >=media-gfx/openvdb-9.0.0:=[nanovdb?]
+ <media-gfx/openvdb-11.0.0:=[nanovdb?]
dev-libs/c-blosc:=
)
optix? ( <dev-libs/optix-7.5.0 )
diff --git a/media-gfx/blender/blender-4.0.2.ebuild b/media-gfx/blender/blender-4.0.2-r1.ebuild
index 5cb0b8edb57f..57571d34615d 100644
--- a/media-gfx/blender/blender-4.0.2.ebuild
+++ b/media-gfx/blender/blender-4.0.2-r1.ebuild
@@ -3,41 +3,50 @@
EAPI=8
-PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_COMPAT=( python3_{10..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"
if [[ ${PV} = *9999* ]] ; then
- # Subversion is needed for downloading unit test files
- inherit git-r3 subversion
+ 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 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"
REQUIRED_USE="${PYTHON_REQUIRED_USE}
alembic? ( openexr )
cuda? ( cycles )
cycles? ( openexr tiff tbb )
fluid? ( tbb )
+ gnome? ( wayland )
+ hip? ( cycles )
nanovdb? ( openvdb )
openvdb? ( tbb openexr )
optix? ( cuda )
@@ -45,7 +54,7 @@ REQUIRED_USE="${PYTHON_REQUIRED_USE}
test? ( color-management )"
# Library versions for official builds can be found in the blender source directory in:
-# build_files/build_environment/install_deps.sh
+# build_files/build_environment/cmake/versions.cmake
RDEPEND="${PYTHON_DEPS}
app-arch/zstd
dev-libs/boost:=[nls?]
@@ -70,10 +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 )
+ gnome? ( gui-libs/libdecor )
+ hip? ( >=dev-util/hip-5.7:= )
jack? ( virtual/jack )
jemalloc? ( dev-libs/jemalloc:= )
jpeg2k? ( media-libs/openjpeg:2= )
@@ -83,7 +94,7 @@ RDEPEND="${PYTHON_DEPS}
)
nls? ( virtual/libiconv )
openal? ( media-libs/openal )
- oidn? ( >=media-libs/oidn-1.4.0 )
+ oidn? ( >=media-libs/oidn-2.1.0 )
openexr? (
>=dev-libs/imath-3.1.4-r2:=
>=media-libs/openexr-3:0=
@@ -94,8 +105,14 @@ RDEPEND="${PYTHON_DEPS}
>=media-gfx/openvdb-10.0.0:=[nanovdb?]
dev-libs/c-blosc:=
)
- optix? ( <dev-libs/optix-7.5.0 )
- osl? ( <media-libs/osl-1.13:= )
+ optix? ( dev-libs/optix )
+ osl? (
+ >=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 )
@@ -139,10 +156,17 @@ BDEPEND="
wayland? (
dev-util/wayland-scanner
)
+ X? (
+ x11-base/xorg-proto
+ )
"
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"
+ "${FILESDIR}/${PN}-4.0.2-FindClang.patch"
+ "${FILESDIR}/${PN}-4.0.2-CUDA_NVCC_FLAGS.patch"
+ "${FILESDIR}/${PN}-4.0.2-r1-osl-1.13.patch"
)
blender_check_requirements() {
@@ -170,35 +194,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"
-
- 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
+ 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
@@ -221,6 +246,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
@@ -232,7 +259,7 @@ src_prepare() {
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
+ sed -e "s|string(REPLACE.*|set(TEST_INSTALL_DIR ${T}/usr)|g" -i build_files/cmake/testing.cmake || die
fi
}
@@ -257,17 +284,16 @@ 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_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_HIP=$(usex hip)
-DWITH_CYCLES_DEVICE_OPTIX=$(usex optix)
-DWITH_CYCLES_EMBREE=$(usex embree)
- -DWITH_CYCLES_HIP_BINARIES=no
+ -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)
@@ -279,7 +305,7 @@ src_configure() {
-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_WAYLAND_LIBDECOR="$(usex gnome)"
-DWITH_GHOST_X11=$(usex X)
-DWITH_GMP=$(usex gmp)
-DWITH_GTESTS=$(usex test)
@@ -292,7 +318,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)
@@ -328,6 +353,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
@@ -338,8 +369,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.
@@ -352,18 +383,25 @@ 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
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
+ -DWITH_GPU_DRAW_TESTS=yes
+ -DWITH_GPU_RENDER_TESTS=yes
)
fi
@@ -373,7 +411,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 +424,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() {
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? ( <dev-libs/optix-7.5.0 )
- osl? ( media-libs/osl:= )
+ optix? ( dev-libs/optix )
+ osl? (
+ >=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 <negril.nx+gentoo@gmail.com>
+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 <negril.nx+gentoo@gmail.com>
+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 <negril.nx+gentoo@gmail.com>
+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 <brecht@blender.org>
+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<OSLGlobals *>(osl_globals_memory));
++ OSLGlobals::thread_init(this, static_cast<OSLGlobals *>(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<SHADER_TYPE_SURFACE>(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<SHADER_TYPE_SURFACE>(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<SHADER_TYPE_SURFACE>(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<SHADER_TYPE_VOLUME>(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<SHADER_TYPE_DISPLACEMENT>(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.ebuild b/media-gfx/fotocx/fotocx-24.21-r1.ebuild
index 130da99dcd2c..ace12ae77268 100644
--- a/media-gfx/fotocx/fotocx-24.21.ebuild
+++ b/media-gfx/fotocx/fotocx-24.21-r1.ebuild
@@ -12,7 +12,7 @@ S="${WORKDIR}/${PN}"
LICENSE="GPL-3+"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+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
@@ -49,7 +49,7 @@ src_prepare() {
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
+ emake DESTDIR="${D}" PREFIX="/usr" install
rm -f "${D}"/usr/share/doc/${PF}/*.man || die
docompress -x /usr/share/doc
}