summaryrefslogtreecommitdiff
path: root/media-gfx/blender
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2021-12-05 02:47:11 +0000
committerV3n3RiX <venerix@koprulu.sector>2021-12-05 02:47:11 +0000
commit2771f79232c273bc2a57d23bf335dd81ccf6af28 (patch)
treec8af0fd04194aed03cf067d44e53c7edd3e9ab84 /media-gfx/blender
parente9d044d4b9b71200a96adfa280848858c0f468c9 (diff)
gentoo resync : 05.12.2021
Diffstat (limited to 'media-gfx/blender')
-rw-r--r--media-gfx/blender/Manifest8
-rw-r--r--media-gfx/blender/blender-2.93.6.ebuild386
-rw-r--r--media-gfx/blender/blender-3.0.0.ebuild407
-rw-r--r--media-gfx/blender/blender-9999.ebuild109
-rw-r--r--media-gfx/blender/files/blender-3.0.0-intern-ghost-fix-typo-in-finding-XF86VMODE.patch31
5 files changed, 894 insertions, 47 deletions
diff --git a/media-gfx/blender/Manifest b/media-gfx/blender/Manifest
index deabbe10d054..90e7e3977d1b 100644
--- a/media-gfx/blender/Manifest
+++ b/media-gfx/blender/Manifest
@@ -1,9 +1,15 @@
+AUX blender-3.0.0-intern-ghost-fix-typo-in-finding-XF86VMODE.patch 877 BLAKE2B 954cae23023e60ef38847927a8ddfc05a19f86c1b5f95a78227aba2af32707ca3490f815e370aa995944973d3ea44d58895817e3ac1ffbb006468ef33f3223a7 SHA512 f4d4e946ce177c82cbe63ab2beab05748e91786800885432f64c00b3ba93be3fec54f084663617dd1b877776d60c418da12cee9a3f4f59a447a3291d08eeba5e
DIST blender-2.93.0-tests.tar.bz2 286918586 BLAKE2B a2c2c2e900e401a470208e8e5d0082d45e2f8db13b45213f31808d50ae5ea330360702b8e775bdb3307eb753aa7c3264803e9e470b3fb778f8bd87272cd72513 SHA512 0e5e4c67944c4f76df62cdbaf26ba284c415675074e66685c01ec9584a544c47f616bae8fb2ff2b7e03290620d54dc1033b4b0fc617acb1232a90439e96325fe
DIST blender-2.93.0.tar.xz 42967016 BLAKE2B 1e7b54f08415de8a8908a285ae35c1e18558bf7cab42c5c135323d10ac9a73ec69aa0addd536355a4d19262438a615e03f09dc123b697cbab484e33350bb5ee3 SHA512 660962e5368c8ff52ed095aba97d63c22aa8e2fdcb2042b1299b6d6edeb7eb1f702a9ee95ee7e47824681f9f48b971d2e32ec32cc6264165a4196b5f36c4a66d
DIST blender-2.93.1.tar.xz 42960100 BLAKE2B eda0a8c0414d1f7c89d21e34ba238b0cbe337ea755d6f10792e7c3bd5e15934184d3bd853ed636764776095ce1e3f081d63386b7c13fb7ac666580bf9eeb43c8 SHA512 b14e8cca248c53e4a93976d7fa1cd1ab92a7d18a3809b2a535881731aad2f68d8d155ad175b27aa1890714b81aa6648604a614cacc90e95b7269569661e393b1
DIST blender-2.93.2.tar.xz 43028440 BLAKE2B 02ffc5be190445c97e3cb14e4635969df7a7aaf0100ee5ba50f2d283b077ffebf1f139aec86034ed2df03d94290d5a8bb369f88c734db5103869ffa1d3f588a6 SHA512 5dac627b0e5f38af1f861d4fddb01f4ba1e992c704337c56e2ebbfdcbd62e6de83195e3541342603a1ae966e89a06ff98764c817e282401edd792857d577b989
+DIST blender-2.93.6.tar.xz 43031980 BLAKE2B 235b9a08d9eb4ba83c30a4de333cc5b56eefe16209a96e2aeadbfb4d99b0add0031bbf3c4e0059833433475f07c03711ca773e19d57849ae83beb52a750fac48 SHA512 0f8e7686a141ba55be29c73f9b2fcd43b03f7551ec91d226f389295f4866926f9a81ddf627aef54f6d762271ca05ccdea1f80efc00cc52315925ad626b283aea
+DIST blender-3.0.0-tests.tar.bz2 302064577 BLAKE2B c86a47231bb704124fe5ed59963176ca45ccc7e92bf8b00ce31d432cf6e35b9593ddb0d71f56aab0af6d1922f08eb158f9b7e355b5323d715b2b075ceafe9294 SHA512 e343f5da88aa7d2bc2a0758c01d3849b61c6ff3a0d65ac4d967aa02b701a5a02bfc8e7ed92b8f67af37e08f138987de8a27b8c7faa3cd8cfc3535adb8c624506
+DIST blender-3.0.0.tar.xz 40169212 BLAKE2B 0dd8327cb92d1d5b00ede020fa2fe07fc3f4d02b249e0ed528c330d6423ce28c731055bc623cffa66f2824c3ae667b5b84be2d6c5e2b01baf490468c4b6f42a2 SHA512 727d722e7b750b77b0fe691605a84de58baf15a3cc01af267be0440bd0879772e14dbdfdb16209023df3c28b94d8009b0c389915097cdb0b49bdf42c8de1ef21
EBUILD blender-2.93.0-r1.ebuild 11815 BLAKE2B a7edc0c52fba0b9ebec6852aa84c264b28e4e2984ff47baf9d4117723d6a32634c976f4d80d0bd785a6d07b2fc08e6973d53f062505d3043eb7d56ca777acb73 SHA512 2eeae0099f41d11175502f000eb35a41f0351d358d9248f955168932cbfcfade48953a0c68456d3c75950d009f388ddebd8386368c274d3dc86ca820a1f09a7b
EBUILD blender-2.93.1-r1.ebuild 11816 BLAKE2B 1044606914a9aa1f8bd00011addc31f71c3c9bed34e7b5215f4c15182fcfb895e248be3d55cbfc3d49ffea7a6212f38f232c410bf19c1634f3b1ef0c1392dd7a SHA512 b6ffc38f300260a66917c3507762e9830f6fbc0098e3f47c23e9d506ec201511aace83010c6213cc304c3643b63039ec54f3f7cbd9bc076383b0e3d6c1232419
EBUILD blender-2.93.2-r1.ebuild 11833 BLAKE2B 70435289cbde457dc6dd5cf6c8f0ecdaeecd5e44bb9afda6c0f36b75d9cadfb03dc72f2c31a013c34a0fdc7bdb5319a348dd6a9be282821af2479e62dda30a7f SHA512 6deb41bcf414687a2f2243eb24b8a4106c62df8b81c2286f820e95410cf7103b724d959eab43e927a871f77d2a9cfa682cffb41642a9c082f5179f9941baf779
-EBUILD blender-9999.ebuild 11801 BLAKE2B 0ef6f8d4a4caa9119a943d10933bf1866d9c1a7e87fb2f3f3be19551d94ebcf620fcd7a2ed70116a74dcd051fed699cb211629d95ddf826def162596e7f32fb4 SHA512 b978ee878fbe8464d7c837e5d49d0ce8666f9900dc326114f20aabd30d7c797c66b07c250448d6c2b133d778dd26d6eeca210a510394d57b410c662a2f6c70de
+EBUILD blender-2.93.6.ebuild 12128 BLAKE2B 7e5b5be14974794daae77b5f23c840ebb209787ef81581c157eb3534d85004ddbe760e899e4be5774fcb87370c2845f3116a59496c967a883b4e37803ad80125 SHA512 434841da2337747ce76ca26ad8cc10384a2a0551d63b6ed27bcf8738f7324e5cd55c8fd867e1d7fbbc523133f7b57ce6f9df35751c700ff2b1552171f9a4037a
+EBUILD blender-3.0.0.ebuild 12851 BLAKE2B 3258b9f8b55b0b5c12ff29bb10dc779dbc033975d222d84b19b4eef7c629bc93e905cdf489f8479da4b894c2d1151cc68c981a69b3e09499e03d51bfacb392ff SHA512 460ab53b027bfcf1f233ebaa2ada982ea7b9cd13686532d1d0d3251bb385e46199f4c8ac1725b3537d938ca7f04027a02d1e1f99aac4faec22437a31d970df86
+EBUILD blender-9999.ebuild 12775 BLAKE2B 999cf81184c119a196671441f9ea1ec723ca26566c86c350425d851f1f6c692c86deb58a9000fb2d3b5340d1afb44a971383a9c47fac60d26bbffeda9c588155 SHA512 5c67b239b5169ca5fe3074dee6c79e107b15ae0a5c94dbe169b49be3a6540c497b08a72b7fcf114f166f23e1bda0cebf27bdfaaca58c1923a3eab29569389a48
MISC metadata.xml 3163 BLAKE2B dcebffc7d37a5e2214121c5dbee2f81f3c6e9bafcbf58c6f9d0c38e6ab5fcef25e314fe7ab9d8127bf69cf6bf05b4b8bcff28973229e4587a7b3231f9384f08a SHA512 7ad59b0bc1d3c8ed4cf6528c74eb348b2ede12eda4f012d7961b25a3dfc398a8abf75f033d94c8b7c92684b0769e8fe439b3e85dd082f4ea68f87f1851639dc5
diff --git a/media-gfx/blender/blender-2.93.6.ebuild b/media-gfx/blender/blender-2.93.6.ebuild
new file mode 100644
index 000000000000..6d17263b5759
--- /dev/null
+++ b/media-gfx/blender/blender-2.93.6.ebuild
@@ -0,0 +1,386 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_9 )
+
+inherit check-reqs cmake 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://git.blender.org/blender.git"
+else
+ SRC_URI="https://download.blender.org/source/${P}.tar.xz"
+ TEST_TARBALL_VERSION=2.93.0
+ SRC_URI+=" test? ( https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-${TEST_TARBALL_VERSION}-tests.tar.bz2 )"
+ KEYWORDS="~amd64 ~arm ~arm64"
+fi
+
+SLOT="${PV%.*}"
+LICENSE="|| ( GPL-3 BL )"
+IUSE="+bullet +dds +fluid +openexr +system-python +system-numpy +tbb \
+ alembic collada +color-management cuda +cycles \
+ debug doc +embree +ffmpeg +fftw +gmp headless jack jemalloc jpeg2k \
+ man ndof nls openal opencl +oidn +openimageio +openmp +opensubdiv \
+ +openvdb +osl +pdf +potrace +pugixml pulseaudio sdl +sndfile standalone test +tiff valgrind"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}
+ alembic? ( openexr )
+ cuda? ( cycles )
+ cycles? ( openexr tiff openimageio )
+ fluid? ( tbb )
+ opencl? ( cycles )
+ openvdb? ( tbb )
+ osl? ( cycles )
+ standalone? ( cycles )
+ test? ( color-management )"
+
+# Library versions for official builds can be found in the blender source directory in:
+# build_files/build_environment/install_deps.sh
+RDEPEND="${PYTHON_DEPS}
+ dev-libs/boost:=[nls?,threads(+)]
+ dev-libs/lzo:2=
+ $(python_gen_cond_dep '
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ ')
+ media-libs/freetype:=
+ media-libs/glew:*
+ media-libs/libpng:=
+ media-libs/libsamplerate
+ sys-libs/zlib:=
+ virtual/glu
+ virtual/jpeg
+ virtual/libintl
+ virtual/opengl
+ alembic? ( >=media-gfx/alembic-1.7.12[boost(+),hdf(+)] )
+ collada? ( >=media-libs/opencollada-1.6.68 )
+ color-management? ( >=media-libs/opencolorio-2.0.0 )
+ cuda? ( dev-util/nvidia-cuda-toolkit:= )
+ embree? ( >=media-libs/embree-3.10.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 )
+ !headless? (
+ x11-libs/libX11
+ x11-libs/libXi
+ x11-libs/libXxf86vm
+ )
+ 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 )
+ opencl? ( virtual/opencl )
+ oidn? ( >=media-libs/oidn-1.3.0 )
+ openimageio? ( >=media-libs/openimageio-2.2.13.1:= )
+ openexr? (
+ media-libs/ilmbase:=
+ media-libs/openexr:=
+ )
+ opensubdiv? ( >=media-libs/opensubdiv-3.4.0[cuda=,opencl=] )
+ openvdb? (
+ >=media-gfx/openvdb-7.1.0
+ dev-libs/c-blosc:=
+ )
+ osl? ( >=media-libs/osl-1.11.10.0 )
+ pdf? ( media-libs/libharu )
+ potrace? ( media-gfx/potrace )
+ pugixml? ( dev-libs/pugixml )
+ pulseaudio? ( media-sound/pulseaudio )
+ sdl? ( media-libs/libsdl2[sound,joystick] )
+ sndfile? ( media-libs/libsndfile )
+ tbb? ( <dev-cpp/tbb-2021.4.0:= )
+ tiff? ( media-libs/tiff )
+ valgrind? ( dev-util/valgrind )
+"
+
+DEPEND="${RDEPEND}
+ dev-cpp/eigen:=
+"
+
+BDEPEND="
+ virtual/pkgconfig
+ doc? (
+ app-doc/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 )
+"
+
+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 strip last number (300 -> 3.0)
+ BV=${BV:0:1}.${BV:1:1}
+ 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
+ else
+ default
+ fi
+
+ if use test; then
+ mkdir -p lib || die
+ mv "${WORKDIR}"/blender-${TEST_TARBALL_VERSION}-tests/tests lib || die
+ 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|" -i source/creator/CMakeLists.txt || die
+ sed -e "s|blender-symbolic.svg|blender-${BV}-symbolic.svg|" -i source/creator/CMakeLists.txt || die
+ sed -e "s|blender.desktop|blender-${BV}.desktop|" -i source/creator/CMakeLists.txt || die
+ sed -e "s|blender-thumbnailer.py|blender-${BV}-thumbnailer.py|" -i source/creator/CMakeLists.txt || die
+
+ sed -e "s|Name=Blender|Name=Blender ${PV}|" -i release/freedesktop/blender.desktop || die
+ sed -e "s|Exec=blender|Exec=blender-${BV}|" -i release/freedesktop/blender.desktop || die
+ sed -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
+ mv release/bin/blender-thumbnailer.py release/bin/blender-${BV}-thumbnailer.py || 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|string(REPLACE.*|set(TEST_INSTALL_DIR ${ED}/usr/)|g" -i tests/CMakeLists.txt || die
+ sed -e "s|string(REPLACE.*|set(TEST_INSTALL_DIR ${ED}/usr/)|g" -i build_files/cmake/Modules/GTestTesting.cmake || die
+ fi
+}
+
+src_configure() {
+ append-lfs-flags
+
+ local mycmakeargs=(
+ -DBUILD_SHARED_LIBS=OFF
+ -DPYTHON_INCLUDE_DIR="$(python_get_includedir)"
+ -DPYTHON_LIBRARY="$(python_get_library_path)"
+ -DPYTHON_VERSION="${EPYTHON/python/}"
+ -DWITH_ALEMBIC=$(usex alembic)
+ -DWITH_ASSERT_ABORT=$(usex debug)
+ -DWITH_BOOST=ON
+ -DWITH_BULLET=$(usex bullet)
+ -DWITH_CODEC_FFMPEG=$(usex ffmpeg)
+ -DWITH_CODEC_SNDFILE=$(usex sndfile)
+ -DWITH_CXX_GUARDEDALLOC=$(usex debug)
+ -DWITH_CYCLES=$(usex cycles)
+ -DWITH_CYCLES_DEVICE_CUDA=$(usex cuda TRUE FALSE)
+ -DWITH_CYCLES_DEVICE_OPENCL=$(usex opencl)
+ -DWITH_CYCLES_EMBREE=$(usex embree)
+ -DWITH_CYCLES_OSL=$(usex osl)
+ -DWITH_CYCLES_STANDALONE=$(usex standalone)
+ -DWITH_CYCLES_STANDALONE_GUI=$(usex standalone)
+ -DWITH_DOC_MANPAGE=$(usex man)
+ -DWITH_FFTW3=$(usex fftw)
+ -DWITH_GMP=$(usex gmp)
+ -DWITH_GTESTS=$(usex test)
+ -DWITH_HARU=$(usex pdf)
+ -DWITH_HEADLESS=$(usex headless)
+ -DWITH_INSTALL_PORTABLE=OFF
+ -DWITH_IMAGE_DDS=$(usex dds)
+ -DWITH_IMAGE_OPENEXR=$(usex openexr)
+ -DWITH_IMAGE_OPENJPEG=$(usex jpeg2k)
+ -DWITH_IMAGE_TIFF=$(usex tiff)
+ -DWITH_INPUT_NDOF=$(usex ndof)
+ -DWITH_INTERNATIONAL=$(usex nls)
+ -DWITH_JACK=$(usex jack)
+ -DWITH_MEM_JEMALLOC=$(usex jemalloc)
+ -DWITH_MEM_VALGRIND=$(usex valgrind)
+ -DWITH_MOD_FLUID=$(usex fluid)
+ -DWITH_MOD_OCEANSIM=$(usex fftw)
+ -DWITH_NANOVDB=OFF
+ -DWITH_OPENAL=$(usex openal)
+ -DWITH_OPENCOLLADA=$(usex collada)
+ -DWITH_OPENCOLORIO=$(usex color-management)
+ -DWITH_OPENIMAGEDENOISE=$(usex oidn)
+ -DWITH_OPENIMAGEIO=$(usex openimageio)
+ -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=$(usex system-python OFF ON)
+ -DWITH_PYTHON_INSTALL_NUMPY=$(usex system-numpy OFF ON)
+ -DWITH_SDL=$(usex sdl)
+ -DWITH_STATIC_LIBS=OFF
+ -DWITH_SYSTEM_EIGEN3=ON
+ -DWITH_SYSTEM_GLEW=ON
+ -DWITH_SYSTEM_LZO=ON
+ -DWITH_TBB=$(usex tbb)
+ -DWITH_USD=OFF
+ -DWITH_XR_OPENXR=OFF
+ )
+ append-flags $(usex debug '-DDEBUG' '-DNDEBUG')
+
+ 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.
+ cmake_src_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=${ED}/usr/share/blender/${BV}/scripts
+ export BLENDER_SYSTEM_DATAFILES=${ED}/usr/share/blender/${BV}/datafiles
+
+ cmake_src_test
+
+ # Clean up the image directory for src_install
+ rm -fr ${ED}/* || die
+}
+
+src_install() {
+ blender_get_version
+
+ # Pax mark blender for hardened support.
+ pax-mark m "${BUILD_DIR}"/bin/blender
+
+ if use standalone; then
+ dobin "${BUILD_DIR}"/bin/cycles
+ fi
+
+ cmake_src_install
+
+ if use man; then
+ # Slot the man page
+ mv "${ED}/usr/share/man/man1/blender.1" "${ED}/usr/share/man/man1/blender-${BV}.1" || die
+ fi
+
+ if use doc; then
+ # Define custom blender data/script file paths. Otherwise Blender will not be able to find them during doc building.
+ # (Because the data is in the image directory and it will default to look in /usr/share)
+ export BLENDER_SYSTEM_SCRIPTS=${ED}/usr/share/blender/${BV}/scripts
+ export BLENDER_SYSTEM_DATAFILES=${ED}/usr/share/blender/${BV}/datafiles
+
+ # Workaround for binary drivers.
+ addpredict /dev/ati
+ addpredict /dev/dri
+ addpredict /dev/nvidiactl
+
+ einfo "Generating Blender C/C++ API docs ..."
+ cd "${CMAKE_USE_DIR}"/doc/doxygen || die
+ doxygen -u Doxyfile || die
+ doxygen || die "doxygen failed to build API docs."
+
+ cd "${CMAKE_USE_DIR}" || die
+ einfo "Generating (BPY) Blender Python API docs ..."
+ "${BUILD_DIR}"/bin/blender --background --python doc/python_api/sphinx_doc_gen.py -noaudio || die "sphinx failed."
+
+ cd "${CMAKE_USE_DIR}"/doc/python_api || die
+ sphinx-build sphinx-in BPY_API || die "sphinx failed."
+
+ docinto "html/API/python"
+ dodoc -r "${CMAKE_USE_DIR}"/doc/python_api/BPY_API/.
+
+ docinto "html/API/blender"
+ dodoc -r "${CMAKE_USE_DIR}"/doc/doxygen/html/.
+ fi
+
+ # Fix doc installdir
+ docinto html
+ dodoc "${CMAKE_USE_DIR}"/release/text/readme.html
+ rm -r "${ED}"/usr/share/doc/blender || die
+
+ python_fix_shebang "${ED}/usr/bin/blender-${BV}-thumbnailer.py"
+ python_optimize "${ED}/usr/share/blender/${BV}/scripts"
+
+ 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
+ ewarn
+ ewarn "This ebuild does not unbundle the massive amount of 3rd party"
+ ewarn "libraries which are shipped with blender. Note that"
+ ewarn "these have caused security issues in the past."
+ ewarn "If you are concerned about security, file a bug upstream:"
+ ewarn " https://developer.blender.org/"
+ ewarn
+
+ if ! use python_single_target_python3_9; 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_9 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-3.0.0.ebuild b/media-gfx/blender/blender-3.0.0.ebuild
new file mode 100644
index 000000000000..65bfc2f8e6d4
--- /dev/null
+++ b/media-gfx/blender/blender-3.0.0.ebuild
@@ -0,0 +1,407 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_9 )
+
+inherit check-reqs cmake 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://git.blender.org/blender.git"
+else
+ SRC_URI="https://download.blender.org/source/${P}.tar.xz"
+ # Update these between major releases.
+ TEST_TARBALL_VERSION="3.0.0"
+ SRC_URI+=" test? ( https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-${TEST_TARBALL_VERSION}-tests.tar.bz2 )"
+ KEYWORDS="~amd64 ~arm ~arm64"
+fi
+
+SLOT="${PV%.*}"
+LICENSE="|| ( GPL-3 BL )"
+IUSE="+bullet +dds +fluid +openexr +system-python +system-numpy +tbb \
+ alembic collada +color-management cuda +cycles \
+ debug doc +embree +ffmpeg +fftw +gmp headless jack jemalloc jpeg2k \
+ man ndof nls openal +oidn +openimageio +openmp +opensubdiv \
+ +openvdb +osl +pdf +potrace +pugixml pulseaudio sdl +sndfile standalone test +tiff valgrind"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}
+ alembic? ( openexr )
+ cuda? ( cycles )
+ cycles? ( openexr tiff openimageio )
+ fluid? ( tbb )
+ openvdb? ( tbb )
+ osl? ( cycles )
+ standalone? ( cycles )
+ test? ( color-management )"
+
+# Library versions for official builds can be found in the blender source directory in:
+# build_files/build_environment/install_deps.sh
+RDEPEND="${PYTHON_DEPS}
+ dev-libs/boost:=[nls?,threads(+)]
+ dev-libs/lzo:2=
+ $(python_gen_cond_dep '
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/zstandard[${PYTHON_USEDEP}]
+ ')
+ media-libs/freetype:=
+ media-libs/glew:*
+ media-libs/libpng:=
+ media-libs/libsamplerate
+ sys-libs/zlib:=
+ virtual/glu
+ virtual/jpeg
+ virtual/libintl
+ virtual/opengl
+ alembic? ( >=media-gfx/alembic-1.7.12[boost(+),hdf(+)] )
+ collada? ( >=media-libs/opencollada-1.6.68 )
+ color-management? ( >=media-libs/opencolorio-2.0.0 )
+ cuda? ( dev-util/nvidia-cuda-toolkit:= )
+ embree? ( >=media-libs/embree-3.10.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 )
+ !headless? (
+ x11-libs/libX11
+ x11-libs/libXi
+ x11-libs/libXxf86vm
+ )
+ 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.1 )
+ openimageio? ( >=media-libs/openimageio-2.2.13.1:= )
+ openexr? (
+ media-libs/ilmbase:=
+ media-libs/openexr:=
+ )
+ opensubdiv? ( >=media-libs/opensubdiv-3.4.0[cuda=] )
+ openvdb? (
+ >=media-gfx/openvdb-7.1.0
+ dev-libs/c-blosc:=
+ )
+ osl? ( >=media-libs/osl-1.11.10.0 )
+ pdf? ( media-libs/libharu )
+ potrace? ( media-gfx/potrace )
+ pugixml? ( dev-libs/pugixml )
+ pulseaudio? ( media-sound/pulseaudio )
+ sdl? ( media-libs/libsdl2[sound,joystick] )
+ sndfile? ( media-libs/libsndfile )
+ tbb? ( <dev-cpp/tbb-2021.4.0:= )
+ tiff? ( media-libs/tiff )
+ valgrind? ( dev-util/valgrind )
+"
+
+DEPEND="${RDEPEND}
+ dev-cpp/eigen:=
+"
+
+BDEPEND="
+ virtual/pkgconfig
+ doc? (
+ app-doc/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 )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-intern-ghost-fix-typo-in-finding-XF86VMODE.patch
+)
+
+blender_check_requirements() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+
+ if use doc; then
+ CHECKREQS_DISK_BUILD="4G" check-reqs_pkg_pretend
+ fi
+}
+
+blender_get_version() {
+ # Get blender version from blender itself.
+ BV=$(grep "BLENDER_VERSION " source/blender/blenkernel/BKE_blender_version.h | cut -d " " -f 3; assert)
+ if ((${BV:0:1} < 3)) ; then
+ # Add period (290 -> 2.90).
+ BV=${BV:0:1}.${BV:1}
+ else
+ # Add period and skip the middle number (301 -> 3.1)
+ BV=${BV:0:1}.${BV:2}
+ fi
+}
+
+pkg_pretend() {
+ blender_check_requirements
+}
+
+pkg_setup() {
+ blender_check_requirements
+ python-single-r1_pkg_setup
+}
+
+src_unpack() {
+ if [[ ${PV} = *9999* ]] ; then
+ git-r3_src_unpack
+ 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
+ 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|" -i source/creator/CMakeLists.txt || die
+ sed -e "s|blender-symbolic.svg|blender-${BV}-symbolic.svg|" -i source/creator/CMakeLists.txt || die
+ sed -e "s|blender.desktop|blender-${BV}.desktop|" -i source/creator/CMakeLists.txt || die
+
+ sed -e "s|Name=Blender|Name=Blender ${PV}|" -i release/freedesktop/blender.desktop || die
+ sed -e "s|Exec=blender|Exec=blender-${BV}|" -i release/freedesktop/blender.desktop || die
+ sed -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|string(REPLACE.*|set(TEST_INSTALL_DIR ${ED}/usr/)|g" -i tests/CMakeLists.txt || die
+ sed -e "s|string(REPLACE.*|set(TEST_INSTALL_DIR ${ED}/usr/)|g" -i build_files/cmake/Modules/GTestTesting.cmake || die
+ fi
+}
+
+src_configure() {
+ append-lfs-flags
+
+ local mycmakeargs=(
+ -DBUILD_SHARED_LIBS=OFF
+ -DPYTHON_INCLUDE_DIR="$(python_get_includedir)"
+ -DPYTHON_LIBRARY="$(python_get_library_path)"
+ -DPYTHON_VERSION="${EPYTHON/python/}"
+ -DWITH_ALEMBIC=$(usex alembic)
+ -DWITH_ASSERT_ABORT=$(usex debug)
+ -DWITH_BOOST=ON
+ -DWITH_BULLET=$(usex bullet)
+ -DWITH_CODEC_FFMPEG=$(usex ffmpeg)
+ -DWITH_CODEC_SNDFILE=$(usex sndfile)
+ -DWITH_CXX_GUARDEDALLOC=$(usex debug)
+ -DWITH_CYCLES=$(usex cycles)
+ -DWITH_CYCLES_DEVICE_CUDA=$(usex cuda TRUE FALSE)
+ -DWITH_CYCLES_EMBREE=$(usex embree)
+ -DWITH_CYCLES_OSL=$(usex osl)
+ -DWITH_CYCLES_STANDALONE=$(usex standalone)
+ -DWITH_CYCLES_STANDALONE_GUI=$(usex standalone)
+ -DWITH_DOC_MANPAGE=$(usex man)
+ -DWITH_FFTW3=$(usex fftw)
+ -DWITH_GMP=$(usex gmp)
+ -DWITH_GTESTS=$(usex test)
+ -DWITH_HARU=$(usex pdf)
+ -DWITH_HEADLESS=$(usex headless)
+ -DWITH_INSTALL_PORTABLE=OFF
+ -DWITH_IMAGE_DDS=$(usex dds)
+ -DWITH_IMAGE_OPENEXR=$(usex openexr)
+ -DWITH_IMAGE_OPENJPEG=$(usex jpeg2k)
+ -DWITH_IMAGE_TIFF=$(usex tiff)
+ -DWITH_INPUT_NDOF=$(usex ndof)
+ -DWITH_INTERNATIONAL=$(usex nls)
+ -DWITH_JACK=$(usex jack)
+ -DWITH_MEM_JEMALLOC=$(usex jemalloc)
+ -DWITH_MEM_VALGRIND=$(usex valgrind)
+ -DWITH_MOD_FLUID=$(usex fluid)
+ -DWITH_MOD_OCEANSIM=$(usex fftw)
+ -DWITH_NANOVDB=OFF
+ -DWITH_OPENAL=$(usex openal)
+ -DWITH_OPENCOLLADA=$(usex collada)
+ -DWITH_OPENCOLORIO=$(usex color-management)
+ -DWITH_OPENIMAGEDENOISE=$(usex oidn)
+ -DWITH_OPENIMAGEIO=$(usex openimageio)
+ -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=$(usex system-python OFF ON)
+ -DWITH_PYTHON_INSTALL_NUMPY=$(usex system-numpy OFF ON)
+ -DWITH_SDL=$(usex sdl)
+ -DWITH_STATIC_LIBS=OFF
+ -DWITH_SYSTEM_EIGEN3=ON
+ -DWITH_SYSTEM_GLEW=ON
+ -DWITH_SYSTEM_LZO=ON
+ -DWITH_TBB=$(usex tbb)
+ -DWITH_USD=OFF
+ -DWITH_XR_OPENXR=OFF
+ )
+
+ append-flags $(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=OFF
+ -DWITH_LINKER_LLD=OFF
+ )
+ 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.
+ cmake_src_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=${ED}/usr/share/blender/${BV}/scripts
+ export BLENDER_SYSTEM_DATAFILES=${ED}/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 ${ED}/* || die
+}
+
+src_install() {
+ blender_get_version
+
+ # Pax mark blender for hardened support.
+ pax-mark m "${BUILD_DIR}"/bin/blender
+
+ if use standalone; then
+ dobin "${BUILD_DIR}"/bin/cycles
+ fi
+
+ cmake_src_install
+
+ if use man; then
+ # Slot the man page
+ mv "${ED}/usr/share/man/man1/blender.1" "${ED}/usr/share/man/man1/blender-${BV}.1" || die
+ fi
+
+ if use doc; then
+ # Define custom blender data/script file paths. Otherwise Blender will not be able to find them during doc building.
+ # (Because the data is in the image directory and it will default to look in /usr/share)
+ export BLENDER_SYSTEM_SCRIPTS=${ED}/usr/share/blender/${BV}/scripts
+ export BLENDER_SYSTEM_DATAFILES=${ED}/usr/share/blender/${BV}/datafiles
+
+ # Workaround for binary drivers.
+ addpredict /dev/ati
+ addpredict /dev/dri
+ addpredict /dev/nvidiactl
+
+ einfo "Generating Blender C/C++ API docs ..."
+ cd "${CMAKE_USE_DIR}"/doc/doxygen || die
+ doxygen -u Doxyfile || die
+ doxygen || die "doxygen failed to build API docs."
+
+ cd "${CMAKE_USE_DIR}" || die
+ einfo "Generating (BPY) Blender Python API docs ..."
+ "${BUILD_DIR}"/bin/blender --background --python doc/python_api/sphinx_doc_gen.py -noaudio || die "sphinx failed."
+
+ cd "${CMAKE_USE_DIR}"/doc/python_api || die
+ sphinx-build sphinx-in BPY_API || die "sphinx failed."
+
+ docinto "html/API/python"
+ dodoc -r "${CMAKE_USE_DIR}"/doc/python_api/BPY_API/.
+
+ docinto "html/API/blender"
+ dodoc -r "${CMAKE_USE_DIR}"/doc/doxygen/html/.
+ fi
+
+ # Fix doc installdir
+ docinto html
+ dodoc "${CMAKE_USE_DIR}"/release/text/readme.html
+ rm -r "${ED}"/usr/share/doc/blender || die
+
+ python_optimize "${ED}/usr/share/blender/${BV}/scripts"
+
+ mv "${ED}/usr/bin/blender-thumbnailer" "${ED}/usr/bin/blender-${BV}-thumbnailer" || die
+ mv "${ED}/usr/bin/blender" "${ED}/usr/bin/blender-${BV}" || die
+}
+
+pkg_postinst() {
+ elog
+ elog "Blender uses python integration. As such, may have some"
+ elog "inherent risks with running unknown python scripts."
+ elog
+ elog "It is recommended to change your blender temp directory"
+ elog "from /tmp to /home/user/tmp or another tmp file under your"
+ elog "home directory. This can be done by starting blender, then"
+ elog "changing the 'Temporary Files' directory in Blender preferences."
+ elog
+ ewarn
+ ewarn "This ebuild does not unbundle the massive amount of 3rd party"
+ ewarn "libraries which are shipped with blender. Note that"
+ ewarn "these have caused security issues in the past."
+ ewarn "If you are concerned about security, file a bug upstream:"
+ ewarn " https://developer.blender.org/"
+ ewarn
+
+ if ! use python_single_target_python3_9; 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_9 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 70d0ff3a695d..1ee78855efed 100644
--- a/media-gfx/blender/blender-9999.ebuild
+++ b/media-gfx/blender/blender-9999.ebuild
@@ -16,7 +16,10 @@ if [[ ${PV} = *9999* ]] ; then
EGIT_REPO_URI="https://git.blender.org/blender.git"
else
SRC_URI="https://download.blender.org/source/${P}.tar.xz"
- KEYWORDS="~amd64 ~x86"
+ # Update these between major releases.
+ #TEST_TARBALL_VERSION=SLOT_NUMBER
+ #SRC_URI+=" test? ( https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-${TEST_TARBALL_VERSION}-tests.tar.bz2 )"
+ KEYWORDS="~amd64 ~arm ~arm64"
fi
SLOT="${PV%.*}"
@@ -24,7 +27,7 @@ LICENSE="|| ( GPL-3 BL )"
IUSE="+bullet +dds +fluid +openexr +system-python +system-numpy +tbb \
alembic collada +color-management cuda +cycles \
debug doc +embree +ffmpeg +fftw +gmp headless jack jemalloc jpeg2k \
- man ndof nls openal opencl +oidn +openimageio +openmp +opensubdiv \
+ man ndof nls openal +oidn +openimageio +openmp +opensubdiv \
+openvdb +osl +pdf +potrace +pugixml pulseaudio sdl +sndfile standalone test +tiff valgrind"
RESTRICT="!test? ( test )"
@@ -33,7 +36,6 @@ REQUIRED_USE="${PYTHON_REQUIRED_USE}
cuda? ( cycles )
cycles? ( openexr tiff openimageio )
fluid? ( tbb )
- opencl? ( cycles )
openvdb? ( tbb )
osl? ( cycles )
standalone? ( cycles )
@@ -47,6 +49,7 @@ RDEPEND="${PYTHON_DEPS}
$(python_gen_cond_dep '
dev-python/numpy[${PYTHON_USEDEP}]
dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/zstandard[${PYTHON_USEDEP}]
')
media-libs/freetype:=
media-libs/glew:*
@@ -79,14 +82,13 @@ RDEPEND="${PYTHON_DEPS}
)
nls? ( virtual/libiconv )
openal? ( media-libs/openal )
- opencl? ( virtual/opencl )
oidn? ( >=media-libs/oidn-1.4.1 )
openimageio? ( >=media-libs/openimageio-2.2.13.1:= )
openexr? (
media-libs/ilmbase:=
media-libs/openexr:=
)
- opensubdiv? ( >=media-libs/opensubdiv-3.4.0[cuda=,opencl=] )
+ opensubdiv? ( >=media-libs/opensubdiv-3.4.0[cuda=] )
openvdb? (
>=media-gfx/openvdb-7.1.0
dev-libs/c-blosc:=
@@ -136,8 +138,8 @@ blender_get_version() {
# Add period (290 -> 2.90).
BV=${BV:0:1}.${BV:1}
else
- # Add period and strip last number (300 -> 3.0)
- BV=${BV:0:1}.${BV:1:1}
+ # Add period and skip the middle number (301 -> 3.1)
+ BV=${BV:0:1}.${BV:2}
fi
}
@@ -152,16 +154,20 @@ pkg_setup() {
src_unpack() {
if [[ ${PV} = *9999* ]] ; then
- TESTS_SVN_URL=https://svn.blender.org/svnroot/bf-blender/trunk/lib/tests
git-r3_src_unpack
+ 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
else
default
- TESTS_SVN_URL=https://svn.blender.org/svnroot/bf-blender/tags/blender-${SLOT}-release/lib/tests
+ 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
- if use test; then
- subversion_fetch ${TESTS_SVN_URL} ../lib/tests
- fi
}
src_prepare() {
@@ -178,7 +184,6 @@ src_prepare() {
sed -e "s|blender.svg|blender-${BV}.svg|" -i source/creator/CMakeLists.txt || die
sed -e "s|blender-symbolic.svg|blender-${BV}-symbolic.svg|" -i source/creator/CMakeLists.txt || die
sed -e "s|blender.desktop|blender-${BV}.desktop|" -i source/creator/CMakeLists.txt || die
- sed -e "s|blender-thumbnailer.py|blender-${BV}-thumbnailer.py|" -i source/creator/CMakeLists.txt || die
sed -e "s|Name=Blender|Name=Blender ${PV}|" -i release/freedesktop/blender.desktop || die
sed -e "s|Exec=blender|Exec=blender-${BV}|" -i release/freedesktop/blender.desktop || die
@@ -187,7 +192,6 @@ src_prepare() {
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
- mv release/bin/blender-thumbnailer.py release/bin/blender-${BV}-thumbnailer.py || die
if use test; then
# Without this the tests will try to use /usr/bin/blender and /usr/share/blender/ to run the tests.
@@ -213,7 +217,6 @@ src_configure() {
-DWITH_CXX_GUARDEDALLOC=$(usex debug)
-DWITH_CYCLES=$(usex cycles)
-DWITH_CYCLES_DEVICE_CUDA=$(usex cuda TRUE FALSE)
- -DWITH_CYCLES_DEVICE_OPENCL=$(usex opencl)
-DWITH_CYCLES_EMBREE=$(usex embree)
-DWITH_CYCLES_OSL=$(usex osl)
-DWITH_CYCLES_STANDALONE=$(usex standalone)
@@ -260,32 +263,19 @@ src_configure() {
-DWITH_USD=OFF
-DWITH_XR_OPENXR=OFF
)
- append-flags $(usex debug '-DDEBUG' '-DNDEBUG')
-
- cmake_src_configure
-}
-
-src_compile() {
- cmake_src_compile
-
- if use doc; then
- # 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."
+ append-flags $(usex debug '-DDEBUG' '-DNDEBUG')
- cd "${CMAKE_USE_DIR}"/doc/python_api || die
- sphinx-build sphinx-in BPY_API || die "sphinx failed."
+ 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=OFF
+ -DWITH_LINKER_LLD=OFF
+ )
fi
+
+ cmake_src_configure
}
src_test() {
@@ -299,6 +289,11 @@ src_test() {
export BLENDER_SYSTEM_SCRIPTS=${ED}/usr/share/blender/${BV}/scripts
export BLENDER_SYSTEM_DATAFILES=${ED}/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
@@ -315,7 +310,36 @@ src_install() {
dobin "${BUILD_DIR}"/bin/cycles
fi
+ cmake_src_install
+
+ if use man; then
+ # Slot the man page
+ mv "${ED}/usr/share/man/man1/blender.1" "${ED}/usr/share/man/man1/blender-${BV}.1" || die
+ fi
+
if use doc; then
+ # Define custom blender data/script file paths. Otherwise Blender will not be able to find them during doc building.
+ # (Because the data is in the image directory and it will default to look in /usr/share)
+ export BLENDER_SYSTEM_SCRIPTS=${ED}/usr/share/blender/${BV}/scripts
+ export BLENDER_SYSTEM_DATAFILES=${ED}/usr/share/blender/${BV}/datafiles
+
+ # Workaround for binary drivers.
+ addpredict /dev/ati
+ addpredict /dev/dri
+ addpredict /dev/nvidiactl
+
+ einfo "Generating Blender C/C++ API docs ..."
+ cd "${CMAKE_USE_DIR}"/doc/doxygen || die
+ doxygen -u Doxyfile || die
+ doxygen || die "doxygen failed to build API docs."
+
+ cd "${CMAKE_USE_DIR}" || die
+ einfo "Generating (BPY) Blender Python API docs ..."
+ "${BUILD_DIR}"/bin/blender --background --python doc/python_api/sphinx_doc_gen.py -noaudio || die "sphinx failed."
+
+ cd "${CMAKE_USE_DIR}"/doc/python_api || die
+ sphinx-build sphinx-in BPY_API || die "sphinx failed."
+
docinto "html/API/python"
dodoc -r "${CMAKE_USE_DIR}"/doc/python_api/BPY_API/.
@@ -323,21 +347,14 @@ src_install() {
dodoc -r "${CMAKE_USE_DIR}"/doc/doxygen/html/.
fi
- cmake_src_install
-
- if use man; then
- # Slot the man page
- mv "${ED}/usr/share/man/man1/blender.1" "${ED}/usr/share/man/man1/blender-${BV}.1" || die
- fi
-
# Fix doc installdir
docinto html
dodoc "${CMAKE_USE_DIR}"/release/text/readme.html
rm -r "${ED}"/usr/share/doc/blender || die
- python_fix_shebang "${ED}/usr/bin/blender-${BV}-thumbnailer.py"
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
}
diff --git a/media-gfx/blender/files/blender-3.0.0-intern-ghost-fix-typo-in-finding-XF86VMODE.patch b/media-gfx/blender/files/blender-3.0.0-intern-ghost-fix-typo-in-finding-XF86VMODE.patch
new file mode 100644
index 000000000000..51d8ded23366
--- /dev/null
+++ b/media-gfx/blender/files/blender-3.0.0-intern-ghost-fix-typo-in-finding-XF86VMODE.patch
@@ -0,0 +1,31 @@
+https://developer.blender.org/D13464
+
+From 781c56f054b4c7717739752336427a811f7633eb Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Sat, 4 Dec 2021 00:38:59 +0000
+Subject: [PATCH] intern/ghost: fix typo in finding XF86VMODE
+
+---
+ intern/ghost/CMakeLists.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/intern/ghost/CMakeLists.txt b/intern/ghost/CMakeLists.txt
+index 4164231..663598e 100644
+--- a/intern/ghost/CMakeLists.txt
++++ b/intern/ghost/CMakeLists.txt
+@@ -245,10 +245,10 @@ elseif(WITH_GHOST_X11 OR WITH_GHOST_WAYLAND)
+ if(WITH_X11_XF86VMODE)
+ add_definitions(-DWITH_X11_XF86VMODE)
+ list(APPEND INC_SYS
+- ${X11_xf86vmode_INCLUDE_PATH}
++ ${X11_Xxf86vmode_INCLUDE_PATH}
+ )
+ list(APPEND LIB
+- ${X11_Xf86vmode_LIB}
++ ${X11_Xxf86vmode_LIB}
+ )
+ endif()
+
+--
+2.34.1
+