diff options
author | Adrian Grigo <agrigo2001@yahoo.com.au> | 2020-08-22 11:08:55 +1000 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2020-08-24 14:41:55 +0100 |
commit | cca9b716491a91b496106a19df4e5f554b6a1717 (patch) | |
tree | 5d88fcbc9db3158faf3d11de149cfa07949c4bd6 /media-gfx | |
parent | media-gfx/blender: Patch for opencollada > 1.65 (diff) | |
download | gentoo-cca9b716491a91b496106a19df4e5f554b6a1717.tar.gz gentoo-cca9b716491a91b496106a19df4e5f554b6a1717.tar.bz2 gentoo-cca9b716491a91b496106a19df4e5f554b6a1717.zip |
media-gfx/blender: Version bump to 2.83.4
Blender 2.83.4 works with python 3.7. It may compile with 3.8, but
blender only supports 3.7 officially as it follows the VFX Reference
Platform to ensure that user add ons are not broken in the process.
They plan to introduce 3.8 support in 2021.
New features include a new interface, the realtime eevee renderer,
and importing openvdb files created by other packages among others.
Game engine and Blender Player were removed in 2.80.
Bug fixes in this version are alembic support, upstream fixes for
opencollada, requiring openjpeg:2 to avoid security issues, and
mimeinfo cache is correctly updated. Where these issues remain in
blender 2.79b, the bug is linked but should be closed only when
blender 2.79b is removed.
On my system the docs do not currently compile,
and the polyfill2d test still fails like 2.79b.
Blender 2.83 support for draco, embree, oidn, usd and openxr is not yet
implemented pending development of ebuilds for these packages.
Signed-off-by: Adrian Grigo <agrigo2001@yahoo.com.au>
Bug: https://bugs.gentoo.org/667352
Bug: https://bugs.gentoo.org/735590
Bug: https://bugs.gentoo.org/718772
Closes: https://bugs.gentoo.org/737388
Closes: https://bugs.gentoo.org/689740
Package-Manager: Portage-2.3.103, Repoman-2.3.23
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'media-gfx')
-rw-r--r-- | media-gfx/blender/Manifest | 1 | ||||
-rw-r--r-- | media-gfx/blender/blender-2.83.4.ebuild | 316 | ||||
-rw-r--r-- | media-gfx/blender/files/blender-fix-install-rules.patch | 16 | ||||
-rw-r--r-- | media-gfx/blender/metadata.xml | 22 |
4 files changed, 339 insertions, 16 deletions
diff --git a/media-gfx/blender/Manifest b/media-gfx/blender/Manifest index 2a585f30d149..cbe57e4eec0e 100644 --- a/media-gfx/blender/Manifest +++ b/media-gfx/blender/Manifest @@ -1 +1,2 @@ DIST blender-2.79b.tar.gz 50204270 BLAKE2B 78bda294df783ee9bcbcf32f9a112737b2947da5146fd4351b8b36d81c6630ed0ea302b2fb539642cfbdcc4b64df35af5c8545a3bbf50b1cf87dcf3a60eb4ac0 SHA512 2db21ace446168dd683cdb5aad9dec001f8888ae4e9603a04ddb44fb78489ded827deb07e83712b0f1118a0e7bf66f2a5d935dc4ebb3a6703d72672ff414367f +DIST blender-2.83.4.tar.xz 38528352 BLAKE2B 54596207cbee34fcaa6b81a0d829976b42c28c793b88de81d78c1c3fdfe9dd2a0189a314be281b2a0f1829a0b7fd30d37bceaa28d35c9794dcb0f009fa71e83d SHA512 061735273159742784ed210d13fb39ad076efbbfd5f0291bab1b983699d43b20462dc7e4795e28dab0cd191c9879b43d9ad0f0545c24ef5da23c74679e5ccab5 diff --git a/media-gfx/blender/blender-2.83.4.ebuild b/media-gfx/blender/blender-2.83.4.ebuild new file mode 100644 index 000000000000..de3ba5896dcb --- /dev/null +++ b/media-gfx/blender/blender-2.83.4.ebuild @@ -0,0 +1,316 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_7 ) + +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" + +SRC_URI="https://download.blender.org/source/${P}.tar.xz" + +# Blender can have letters in the version string, +# so strip off the letter if it exists. +MY_PV="$(ver_cut 1-2)" + +SLOT="0" +LICENSE="|| ( GPL-2 BL )" +KEYWORDS="~amd64 ~x86" +IUSE="+bullet +dds +elbeem +openexr +system-python +system-numpy +tbb \ + abi6-compat abi7-compat alembic collada color-management cuda cycles \ + debug doc ffmpeg fftw headless jack jemalloc jpeg2k llvm \ + man ndof nls openal opencl openimageio openmp opensubdiv \ + openvdb osl sdl sndfile standalone test tiff valgrind" +RESTRICT="!test? ( test )" + +REQUIRED_USE="${PYTHON_REQUIRED_USE} + alembic? ( openexr ) + cuda? ( cycles ) + cycles? ( openexr tiff openimageio ) + elbeem? ( tbb ) + opencl? ( cycles ) + openvdb? ( + ^^ ( abi6-compat abi7-compat ) + tbb + ) + osl? ( cycles llvm ) + standalone? ( cycles )" + +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 ) + cuda? ( dev-util/nvidia-cuda-toolkit:= ) + ffmpeg? ( media-video/ffmpeg:=[x264,mp3,encode,theora,jpeg2k?] ) + fftw? ( sci-libs/fftw:3.0= ) + !headless? ( + x11-libs/libX11 + x11-libs/libXi + x11-libs/libXxf86vm + ) + jack? ( virtual/jack ) + jemalloc? ( dev-libs/jemalloc:= ) + jpeg2k? ( media-libs/openjpeg:2= ) + llvm? ( sys-devel/llvm:= ) + ndof? ( + app-misc/spacenavd + dev-libs/libspnav + ) + nls? ( virtual/libiconv ) + openal? ( media-libs/openal ) + opencl? ( virtual/opencl ) + openimageio? ( media-libs/openimageio ) + openexr? ( + media-libs/ilmbase:= + media-libs/openexr:= + ) + opensubdiv? ( >=media-libs/opensubdiv-3.4.0[cuda=,opencl=] ) + openvdb? ( + >=media-gfx/openvdb-7.0.0[abi6-compat(-)?,abi7-compat(-)?] + dev-cpp/tbb + dev-libs/c-blosc:= + ) + osl? ( media-libs/osl ) + sdl? ( media-libs/libsdl2[sound,joystick] ) + sndfile? ( media-libs/libsndfile ) + 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 +} + +pkg_pretend() { + blender_check_requirements +} + +pkg_setup() { + blender_check_requirements + python-single-r1_pkg_setup +} + +src_prepare() { + cmake_src_prepare + + # we don't want static glew, but it's scattered across + # multiple files that differ from version to version + # !!!CHECK THIS SED ON EVERY VERSION BUMP!!! + local file + while IFS="" read -d $'\0' -r file ; do + sed -i -e '/-DGLEW_STATIC/d' "${file}" || die + done < <(find . -type f -name "CMakeLists.txt") + + # 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 +} + +src_configure() { + # FIX: forcing '-funsigned-char' fixes an anti-aliasing issue with menu + # shadows, see bug #276338 for reference + append-flags -funsigned-char + append-lfs-flags + + local version + if use abi6-compat; then + version=6; + elif use abi7-compat; then + version=7; + else + die "Openvdb abi version not compatible" + fi + append-cppflags -DOPENVDB_ABI_VERSION_NUMBER=${version} + + 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_DEVICE_CUDA=$(usex cuda TRUE FALSE) + -DWITH_CYCLES=$(usex cycles) + -DWITH_CYCLES_DEVICE_OPENCL=$(usex opencl) + -DWITH_CYCLES_STANDALONE=$(usex standalone) + -DWITH_CYCLES_STANDALONE_GUI=$(usex standalone) + -DWITH_CYCLES_OSL=$(usex osl) + -DWITH_DOC_MANPAGE=$(usex man) + -DWITH_FFTW3=$(usex fftw) + -DWITH_GTESTS=$(usex test) + -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_LLVM=$(usex llvm) + -DWITH_MEM_JEMALLOC=$(usex jemalloc) + -DWITH_MEM_VALGRIND=$(usex valgrind) + -DWITH_MOD_FLUID=$(usex elbeem) + -DWITH_MOD_OCEANSIM=$(usex fftw) + -DWITH_OPENAL=$(usex openal) + -DWITH_OPENCOLLADA=$(usex collada) + -DWITH_OPENCOLORIO=$(usex color-management) + -DWITH_OPENIMAGEIO=$(usex openimageio) + -DWITH_OPENMP=$(usex openmp) + -DWITH_OPENSUBDIV=$(usex opensubdiv) + -DWITH_OPENVDB=$(usex openvdb) + -DWITH_OPENVDB_BLOSC=$(usex openvdb) + -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_X11=$(usex !headless) + ) + 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." + + cd "${CMAKE_USE_DIR}"/doc/python_api || die + sphinx-build sphinx-in BPY_API || die "sphinx failed." + fi +} + +src_test() { + if use test; then + einfo "Running Blender Unit Tests ..." + cd "${BUILD_DIR}"/bin/tests || die + local f + for f in *_test; do + ./"${f}" || die + done + fi +} + +src_install() { + # Pax mark blender for hardened support. + pax-mark m "${BUILD_DIR}"/bin/blender + + if use standalone; then + dobin "${BUILD_DIR}"/bin/cycles + fi + + if use doc; then + 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 + + cmake_src_install + + # 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-thumbnailer.py" + python_optimize "${ED}/usr/share/blender/${MY_PV}/scripts" +} + +pkg_postinst() { + elog + elog "Blender uses python integration. As such, may have some" + elog "inherit 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 "dragging the main menu down do display all paths." + 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 + 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}/${MY_PV}/cache/" + ewarn "It may contain extra render kernels not tracked by portage" + ewarn "" +} diff --git a/media-gfx/blender/files/blender-fix-install-rules.patch b/media-gfx/blender/files/blender-fix-install-rules.patch deleted file mode 100644 index e62aba814b9f..000000000000 --- a/media-gfx/blender/files/blender-fix-install-rules.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff -purN a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt ---- a/source/creator/CMakeLists.txt 2016-09-28 10:26:55.000000000 +0100 -+++ b/source/creator/CMakeLists.txt 2016-10-03 12:17:08.938928486 +0100 -@@ -328,12 +328,6 @@ endif() - # Install Targets (Generic, All Platforms) - - --# important to make a clean install each time, else old scripts get loaded. --install( -- CODE -- "file(REMOVE_RECURSE ${TARGETDIR_VER})" --) -- - if(WITH_PYTHON) - # install(CODE "message(\"copying blender scripts...\")") - diff --git a/media-gfx/blender/metadata.xml b/media-gfx/blender/metadata.xml index c00fc6daf3f4..2432483fedd4 100644 --- a/media-gfx/blender/metadata.xml +++ b/media-gfx/blender/metadata.xml @@ -14,6 +14,16 @@ rendering, post-production, interactive creation and playback. </longdescription> <use> + <flag name="abi6-compat"> + Build for OpenVDB ABI 6. + </flag> + <flag name="abi7-compat"> + Build for OpenVDB ABI 7. + </flag> + <flag name="alembic"> + Add support for Alembic through + <pkg>media-gfx/alembic</pkg>. + </flag> <flag name="bullet"> Enable Bullet (Physics Engine). </flag> @@ -70,6 +80,18 @@ <flag name="player"> Build the Blender Player. THis requires the Game engine. </flag> + <flag name="standalone"> + Build the standalone version of Cycles. + </flag> + <flag name="system-numpy"> + Use the system numpy implementation rather than a local copy. + </flag> + <flag name="system-python"> + Use the system python implementation rather than a local copy. + </flag> + <flag name="tbb"> + Use threading building blocks library from <pkg>dev-cpp/tbb</pkg>. + </flag> <flag name="test"> Build the provided unit tests. </flag> |