summaryrefslogtreecommitdiff
path: root/media-gfx/blender
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2021-06-15 14:57:03 +0100
committerV3n3RiX <venerix@redcorelinux.org>2021-06-15 14:57:03 +0100
commitd18bf1e01b65ee4bf0c804e2843b282d3d4e5d7c (patch)
tree4a95cbc6ffdf13bad6ecbc7f8d5af99631984123 /media-gfx/blender
parente748ba9741f6540f4675c23e3e37b73e822c13a4 (diff)
gentoo resync : 15.06.2021
Diffstat (limited to 'media-gfx/blender')
-rw-r--r--media-gfx/blender/Manifest25
-rw-r--r--media-gfx/blender/blender-2.83.10.ebuild320
-rw-r--r--media-gfx/blender/blender-2.83.15.ebuild (renamed from media-gfx/blender/blender-2.83.12.ebuild)190
-rw-r--r--media-gfx/blender/blender-2.83.4-r1.ebuild320
-rw-r--r--media-gfx/blender/blender-2.90.1-r1.ebuild321
-rw-r--r--media-gfx/blender/blender-2.93.0.ebuild (renamed from media-gfx/blender/blender-2.91.0.ebuild)211
-rw-r--r--media-gfx/blender/blender-9999.ebuild (renamed from media-gfx/blender/blender-2.91.2.ebuild)212
-rw-r--r--media-gfx/blender/files/blender-2.83.13-ffmpeg-4_4.patch27
-rw-r--r--media-gfx/blender/files/blender-2.83.6-constraints_test.patch13
-rw-r--r--media-gfx/blender/files/blender-2.83.6-fix_opevdb_abi.patch21
-rw-r--r--media-gfx/blender/files/blender-2.83.6-libmv_eigen_alignment.patch219
-rw-r--r--media-gfx/blender/metadata.xml23
12 files changed, 683 insertions, 1219 deletions
diff --git a/media-gfx/blender/Manifest b/media-gfx/blender/Manifest
index 81b1a20dc8bf..39840073e9da 100644
--- a/media-gfx/blender/Manifest
+++ b/media-gfx/blender/Manifest
@@ -1,13 +1,12 @@
-DIST blender-2.83.10.tar.xz 38624904 BLAKE2B e52597b3acce875943dff75575c42c8c1fdeb19cb74b4f3609e56730e8fb6d5bbc94a6215a1e9da52b46e45c48c9a46dc4f3ed0d22e16186d9e7434b27eef70f SHA512 96b252176d867b3cac76a99cbee95313b60935a34edc44f27c67a1f75f20b353f0894288df2696718e95a03a07a1630797a431b752ffb4dd14692739d714a589
-DIST blender-2.83.12.tar.xz 39132904 BLAKE2B 175e8c5ab9324421f23357bc367b2e70ee8c391130d376d6d53eefbf90529d09921395cd11e7b1709aaa4d24ec6f8df64050869e41bbe211229126db08f22089 SHA512 f313c92e311e852742e74934504fcd3ccd296bcea2499f605cef568e3c615ececd9d70dec5025e4d4ff19f03803c148a8b03a4b68b7ca978554f5b1122c9890b
-DIST blender-2.83.4.tar.xz 38528352 BLAKE2B 54596207cbee34fcaa6b81a0d829976b42c28c793b88de81d78c1c3fdfe9dd2a0189a314be281b2a0f1829a0b7fd30d37bceaa28d35c9794dcb0f009fa71e83d SHA512 061735273159742784ed210d13fb39ad076efbbfd5f0291bab1b983699d43b20462dc7e4795e28dab0cd191c9879b43d9ad0f0545c24ef5da23c74679e5ccab5
-DIST blender-2.90.1.tar.xz 38836408 BLAKE2B 42622e742ebd397dc035c85cf26ab72ffee64f2cd46f1523de78dc8861bc19286a7d87b9e31a0d6afdf9a931da7018ccbdb9b4185b8535b4529656c6d85efc34 SHA512 e7d6f8df598f2a2a99f64716331ec4e981a5a49c76b307caf7856480c778455cfc4bbb56fbedc8b22d1e10951ebaeb6844d1ead9476847bf2824dddf5b135992
-DIST blender-2.91.0.tar.xz 41528920 BLAKE2B f28bce92b0b63e380c7ce2c9dae0ae4235792ae7c7dff52c2c9c0c5baa81b4d540f853f49d7622f6feca8c7f403b254b55f200758a64e4d95bd43709e5509c1d SHA512 a4b6cb09765d735274fb4a61ac301cbd6ee16f09ab77b19a6e283454b9b8a8c76f1b181501dc285b288130da9e283d3343b948b2855eea00bcb9e114636d55aa
-DIST blender-2.91.2.tar.xz 42057100 BLAKE2B f10f838ad6d56135fddf9e9171473e1e589f511a38112845d650436a1eb4da94ea0777571dffc6446f4217dce647b087cf5a18841d7dde2086d187bb8f7d3654 SHA512 9a3bae01bd09b1d665af4882f53e8a88d85ff44678233c90788a7801ce0d551a3cc1f71026b71ea1c77d7eaedf7ab6fc8709104c22b564f4fc6cc0d5b3b76f5e
-EBUILD blender-2.83.10.ebuild 8591 BLAKE2B 6bc59e2d14777961500476e70b09bb4cd32387157409cc5e15970c0291a9e9acaeffadd4e515aad745ff7968f0be36c0d254dd91588ac89b43b3d5a860100a19 SHA512 ca8c18a4a23f2fde3cf057734b56e5d1258b7cf584c7fb5372db836bdad79458564a1131f4fc3c9ae8dc56e1f8b5534dc7ee6d8da5ae2a06862ca546974cede1
-EBUILD blender-2.83.12.ebuild 8903 BLAKE2B d9e87b1e4e73e679b6a83214790123226a3131749bbcb328de5c2f3395e9b7baf2bb25eddb231c1ff1abccd39181b46f86077eb23f3a6b1d7016117be183df73 SHA512 6ebcf0d2ac317d2b07089683fe7d11bf87287b15c067951b9d0d29ebaa8ea5e4b521b74876c564635f074b0f38ba1d24e4720c4040dbe79eb854aee9f8b0e173
-EBUILD blender-2.83.4-r1.ebuild 8590 BLAKE2B d1f5765922114878d629e653248491878f1ae7003f0ad8dad49713e083d28b5133b2e1a0b1ba6b9a2600a7f9512c9a98aa0a551e9e368aa2cfe46346ed5c7914 SHA512 36f33f65151a8c98a42a2f014209d2bf0552779c8b5e52513fc8063c5202ba77c1cf3c744e3e818387ada59a3ec88805f35f96bcefcc3c000da331b73a756780
-EBUILD blender-2.90.1-r1.ebuild 8628 BLAKE2B 6f432315a7bf13dc3635ab915e9c72668aef526358f74b324067ebe4d5a34c5fa6daa207fdb753adaa756be9d53617896ec5545071755459ed0799a56618d18b SHA512 1b4bc3de4447577cd062283fde8ef091c0800968a0129a833b4d3c9acf8992e143a204bbc32b887254cdf4977ea083cb262e47242b5b2f1d581cf183339374a7
-EBUILD blender-2.91.0.ebuild 9056 BLAKE2B 8d797eebeba043fe2b1d8d74b6d5aa7ef8483efc9b9ea748766d95ddb89e805daa129b2c0515945b4ee89648119812bd2b7dec4a86398c905d2f085ddcbed8f8 SHA512 84ff05f097fdeaa37c795ac11aaf01ecca1063f126b08ada97063a15f5de1f14e9823dc6431c94a4497e09eab7b2932fcdbf661f0a1866fac2fafd24a8a0bd83
-EBUILD blender-2.91.2.ebuild 9062 BLAKE2B bd6a1673c0530c363808b102b53cc66266cdfba9d35897ecf1e2a43368f3428d3244cfa12c6f8006d8a59c1b7bed03b138fee29f2c7ca8da8278ff3651a18b5f SHA512 53e707329532bb29acd6436a1096f7dc65d9315cdd562c78fb05da171eedb087e09a8cc4c92849de30a9b834cd4b2393f1271789dc6bae2c8bc49e851268fca7
-MISC metadata.xml 2763 BLAKE2B 233d1caced71f79aef161db337bc02ce80089d9eff96a0dff058660a01557dd91877d1a99e10ce20bd1a2637cee4cd43fb3f87868d2fb20aff751830b8d1bfef SHA512 13e4a08f83744aec7de708f0c4d1c8f9c7b96823ec5ab14600e16bef48fa682b565605d52701d1ca60b07329653e42da6b5a42fea0e13e68c4af707fe9390527
+AUX blender-2.83.13-ffmpeg-4_4.patch 1102 BLAKE2B e035eab495dbbfc539f852619775f0be6c35cc3b120060fcea9839911404d2c2c11e54cacfd5dd1a4ef531f9ebff478ff7af3f3e35b387f1970dce9cb5063cc5 SHA512 28ad54493bb5385b9c116c349ffe2002997f88a70e1f30548ff57c9052fbb1398efcc82d031c3dbfd6cefdbdb8e24ada545ac5fd0717bdfb1be59b9928859299
+AUX blender-2.83.6-constraints_test.patch 706 BLAKE2B 13f31c98b537a09807fcd9bf7ca6033ebb6db36690fe08c71df726d67468eb747e9817306d434ec8b007f158b7670f00de6ac16a2d9c693d054627632c2eeb64 SHA512 96a660878dd65ea00bd263bd022d3c4b95a4c2dd5533d6bae55c87294296e794fa4e0a16f341d666ef62a2c09bef06fa4dc262792222a80b12e39e394bc2403f
+AUX blender-2.83.6-fix_opevdb_abi.patch 587 BLAKE2B 90f22c522f2626442b68e2cb89e6129988a66d5c775d4eaaa217be0b424ec5f2ce1f72eae277e0fad5d8f979b75d0b4a4c1c4956c16793339b0455ea30a8346b SHA512 08c452e1d05aca8c67aeb925388f23f1f2c3ebad3efe501f9c69758a70dfdd8132575e344012ae2a468d0ad7330d820bc8c77df61c38c42b0e97befaf8eec705
+AUX blender-2.83.6-libmv_eigen_alignment.patch 6777 BLAKE2B 5a7cc33dc599a58f15fcda2110d1c7be9dd3bab4427f5f0ab09a5645248e4585b4e183dcd38e5a39b0827a8ef529e74e59126bc7dcecf2c208b428b5ad264e26 SHA512 8b52ab1bdeaa585b2211aa4b3e9e9c2384867e4011ac20cc1fa712b3c8823c5f42359d5728a094e509a7f40cc166f308cd020da1d35f9e2b0bc20e7bb7e5a461
+DIST blender-2.83.1-tests.tar.bz2 266633785 BLAKE2B 8d8102c3107480de95dfd9ef9dabba1cd82893aad553af2ff5ef1afadc831dc5ccf5553c41466511ecb2a1435bc79c936ad64a78bdd4375e3e30af85b69807c6 SHA512 3ffba6fa8401bba3e2bdbccf7067761114d516371c7778a2f6604a243fd8610e26a30b88a32728c26f7e6274182d298752f32b5e76abf8216be0ec4b3ce38cd9
+DIST blender-2.83.15.tar.xz 39125740 BLAKE2B 687097b45b76b474b1c172c9b8ccf5da1bfc24539d0db894d04c7837572b16c1f552757fd1482219d58afa56c573229878fb43bbecd95e3d61314f2ab05efafa SHA512 2836533691bae0a7942197e67232b396b892cd95c0f07ab561f7de8458b354fe4045453855585484dd533ae76588ea3888f880763b042a264fb813a43933fc25
+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
+EBUILD blender-2.83.15.ebuild 11453 BLAKE2B e95cfea18c8cf7ca90bc3608fca0b279f595d44bb15f22347cde1c4ce5fd0eee63247fdc0b4455b245981c1140f9a1097faf991e5b331c94f6d1958353340d6b SHA512 6bacb4102f897590c214436dd6fe1625abd8ef8ebfa445cdb13d90ea91d8a8626ef7853f587f58a7385f20e24c06ab1238b39956ccb16baf9b0f2bff224d5705
+EBUILD blender-2.93.0.ebuild 11609 BLAKE2B c0f39d9ebabef9ac788d3e8ae5303b90048b17d4b32b5f49e9cadbac66ff8ff127d669049246f78c44966ccaadcf4c90583ad7b917f95367902f551b270c5879 SHA512 071cafc9d4f3ff0548de6f1ece1bfd7ef2ad6fc736eeec5d1a8ca27efaa650225d3b46c7ce39e7daa2ad8e9e6eb9d79c20595aa60dcaf20bdfe19b1fd59427da
+EBUILD blender-9999.ebuild 11663 BLAKE2B 4402772729d606cdb63eb468c9d06235b8ab00f75ca8e465f7501e14d620cc375d890beafdc953b2d269741ae89f16a4185a2d5e42b3950c0da23b61d5f21b2a SHA512 09cafd404aec69c9bbcbc8527e3ef1b3c3eac9ed45a65348ae584f512b517e3bfc4be3fe7d571002955d071fa84d0a6c435026fa17738ac81b15ed7335bfb681
+MISC metadata.xml 2959 BLAKE2B 943ad3fcee54211bbf5a18bfe52229820559b16728a3bc162d55dbf9c142970e918355b68bef7e894115cb1c8ff8f3e0cc0be0dfaa0102667d9c93f43bd32963 SHA512 a1c334bdc815bb1459adc5c2fe55b445f1dd6d92a860d53f06c93f22ca10bf62e4b6e8f6eab9b1221b0e239675a2782e11aa4da977d33fd5ee9da1ac2af351d5
diff --git a/media-gfx/blender/blender-2.83.10.ebuild b/media-gfx/blender/blender-2.83.10.ebuild
deleted file mode 100644
index abed89a6644b..000000000000
--- a/media-gfx/blender/blender-2.83.10.ebuild
+++ /dev/null
@@ -1,320 +0,0 @@
-# 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-libs/c-blosc:=
- )
- osl? ( media-libs/osl:= )
- sdl? ( media-libs/libsdl2[sound,joystick] )
- sndfile? ( media-libs/libsndfile )
- tbb? ( dev-cpp/tbb )
- 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 )
-"
-
-CMAKE_BUILD_TYPE="Release"
-
-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
-
- if use openvdb; then
- 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}
- fi
-
- 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 "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 "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/blender-2.83.12.ebuild b/media-gfx/blender/blender-2.83.15.ebuild
index e2e135cd1626..ccb67825bbd5 100644
--- a/media-gfx/blender/blender-2.83.12.ebuild
+++ b/media-gfx/blender/blender-2.83.15.ebuild
@@ -5,23 +5,25 @@ EAPI=7
PYTHON_COMPAT=( python3_{7,8} )
-inherit check-reqs cmake flag-o-matic pax-utils python-single-r1 \
- toolchain-funcs xdg-utils
+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 \
+
+if [[ ${PV} = *9999* ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://git.blender.org/blender.git"
+else
+ SRC_URI="https://download.blender.org/source/${P}.tar.xz"
+ SRC_URI+=" test? ( https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-2.83.1-tests.tar.bz2 )"
+ KEYWORDS="~amd64 ~x86"
+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 ffmpeg fftw headless jack jemalloc jpeg2k \
man ndof nls openal opencl openimageio openmp opensubdiv \
openvdb osl sdl sndfile standalone test tiff valgrind"
RESTRICT="!test? ( test )"
@@ -30,15 +32,15 @@ REQUIRED_USE="${PYTHON_REQUIRED_USE}
alembic? ( openexr )
cuda? ( cycles )
cycles? ( openexr tiff openimageio )
- elbeem? ( tbb )
+ fluid? ( tbb )
opencl? ( cycles )
- openvdb? (
- ^^ ( abi6-compat abi7-compat )
- tbb
- )
- osl? ( cycles llvm )
- standalone? ( cycles )"
+ openvdb? ( tbb )
+ osl? ( cycles )
+ standalone? ( cycles )
+ test? ( color-management osl )"
+# 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=
@@ -57,9 +59,9 @@ RDEPEND="${PYTHON_DEPS}
virtual/opengl
alembic? ( >=media-gfx/alembic-1.7.12[boost(+),hdf(+)] )
collada? ( >=media-libs/opencollada-1.6.68 )
- color-management? ( media-libs/opencolorio )
+ color-management? ( <media-libs/opencolorio-2.0.0 )
cuda? ( dev-util/nvidia-cuda-toolkit:= )
- ffmpeg? ( media-video/ffmpeg:=[x264,mp3,encode,theora,jpeg2k?] )
+ ffmpeg? ( media-video/ffmpeg:=[x264,mp3,encode,theora,jpeg2k,vpx,vorbis,opus,xvid] )
fftw? ( sci-libs/fftw:3.0= )
!headless? (
x11-libs/libX11
@@ -69,7 +71,6 @@ RDEPEND="${PYTHON_DEPS}
jack? ( virtual/jack )
jemalloc? ( dev-libs/jemalloc:= )
jpeg2k? ( media-libs/openjpeg:2= )
- llvm? ( sys-devel/llvm:= )
ndof? (
app-misc/spacenavd
dev-libs/libspnav
@@ -77,17 +78,17 @@ RDEPEND="${PYTHON_DEPS}
nls? ( virtual/libiconv )
openal? ( media-libs/openal )
opencl? ( virtual/opencl )
- openimageio? ( media-libs/openimageio:= )
+ 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.0.0[abi6-compat(-)?,abi7-compat(-)?]
+ >=media-gfx/openvdb-7.0.0
dev-libs/c-blosc:=
)
- osl? ( media-libs/osl:= )
+ osl? ( <media-libs/osl-1.11.0 )
sdl? ( media-libs/libsdl2[sound,joystick] )
sndfile? ( media-libs/libsndfile )
tbb? ( dev-cpp/tbb )
@@ -113,7 +114,12 @@ BDEPEND="
nls? ( sys-devel/gettext )
"
-CMAKE_BUILD_TYPE="Release"
+PATCHES=(
+ "${FILESDIR}/blender-2.83.6-libmv_eigen_alignment.patch"
+ "${FILESDIR}/blender-2.83.6-constraints_test.patch"
+ "${FILESDIR}/blender-2.83.6-fix_opevdb_abi.patch"
+ "${FILESDIR}/blender-2.83.13-ffmpeg-4_4.patch"
+)
blender_check_requirements() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
@@ -123,6 +129,13 @@ blender_check_requirements() {
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)
+ # Add period.
+ BV=${BV:0:1}.${BV:1}
+}
+
pkg_pretend() {
blender_check_requirements
}
@@ -132,41 +145,59 @@ pkg_setup() {
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/tests || die
+ mv "${WORKDIR}"/blender*tests* lib/tests || die
+ fi
+}
+
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")
+ 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() {
- # FIX: forcing '-funsigned-char' fixes an anti-aliasing issue with menu
- # shadows, see bug #276338 for reference
- append-flags -funsigned-char
+ # Without this the floating point math will differ when for example
+ # "-march=native" is set. This will make automated tests fail and we will
+ # not match the behaviour of some operators/modifiers with the official
+ # builds.
+ append-flags -ffp-contract=off
append-lfs-flags
- if use openvdb; then
- 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}
- fi
-
local mycmakeargs=(
-DBUILD_SHARED_LIBS=OFF
-DPYTHON_INCLUDE_DIR="$(python_get_includedir)"
@@ -197,10 +228,9 @@ src_configure() {
-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_FLUID=$(usex fluid)
-DWITH_MOD_OCEANSIM=$(usex fftw)
-DWITH_OPENAL=$(usex openal)
-DWITH_OPENCOLLADA=$(usex collada)
@@ -218,8 +248,13 @@ src_configure() {
-DWITH_SYSTEM_GLEW=ON
-DWITH_SYSTEM_LZO=ON
-DWITH_TBB=$(usex tbb)
- -DWITH_X11=$(usex !headless)
+ -DWITH_USD=OFF
)
+ if ! use debug ; then
+ append-flags -DNDEBUG
+ else
+ append-flags -DDEBUG
+ fi
cmake_src_configure
}
@@ -247,17 +282,27 @@ src_compile() {
}
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
+ # 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
+
+ # NOTE: The 'modifiers' test will fail if opensubdiv was compiled with -march=native
+ # This this is fixed in blender version 2.92 and up."
+ 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
@@ -280,8 +325,10 @@ src_install() {
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"
+ 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}"
}
pkg_postinst() {
@@ -292,7 +339,7 @@ pkg_postinst() {
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 "changing the 'Temporary Files' directory in Blender preferences."
elog
ewarn
ewarn "This ebuild does not unbundle the massive amount of 3rd party"
@@ -302,13 +349,12 @@ pkg_postinst() {
ewarn " https://developer.blender.org/"
ewarn
- if use python_single_target_python3_8; then
- elog "You've enabled python-3.8 support for blender, which is still experimental."
- elog "If you experience breakages with e.g. plugins, please switch to"
- elog "python_single_target_python3_7 instead."
- elog "Bug: https://bugs.gentoo.org/737388"
- elog
- fi
+ 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 download"
+ elog "the official Blender LTS binary release instead."
+ elog "Bug: https://bugs.gentoo.org/737388"
+ elog
xdg_icon_cache_update
xdg_mimeinfo_database_update
@@ -322,7 +368,7 @@ pkg_postrm() {
ewarn ""
ewarn "You may want to remove the following directory."
- ewarn "~/.config/${PN}/${MY_PV}/cache/"
+ ewarn "~/.config/${PN}/<blender version>/cache/"
ewarn "It may contain extra render kernels not tracked by portage"
ewarn ""
}
diff --git a/media-gfx/blender/blender-2.83.4-r1.ebuild b/media-gfx/blender/blender-2.83.4-r1.ebuild
deleted file mode 100644
index f28ba088062c..000000000000
--- a/media-gfx/blender/blender-2.83.4-r1.ebuild
+++ /dev/null
@@ -1,320 +0,0 @@
-# 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-libs/c-blosc:=
- )
- osl? ( media-libs/osl:= )
- sdl? ( media-libs/libsdl2[sound,joystick] )
- sndfile? ( media-libs/libsndfile )
- tbb? ( dev-cpp/tbb )
- 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 )
-"
-
-CMAKE_BUILD_TYPE="Release"
-
-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
-
- if use openvdb; then
- 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}
- fi
-
- 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 "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 "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/blender-2.90.1-r1.ebuild b/media-gfx/blender/blender-2.90.1-r1.ebuild
deleted file mode 100644
index 8c7494285e83..000000000000
--- a/media-gfx/blender/blender-2.90.1-r1.ebuild
+++ /dev/null
@@ -1,321 +0,0 @@
-# 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 tbb 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-libs/c-blosc:=
- )
- osl? ( media-libs/osl:= )
- sdl? ( media-libs/libsdl2[sound,joystick] )
- sndfile? ( media-libs/libsndfile )
- tbb? ( dev-cpp/tbb )
- 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 )
-"
-
-CMAKE_BUILD_TYPE="Release"
-
-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
-
- if use openvdb; then
- 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}
- fi
-
- 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_EMBREE=OFF
- -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_GHOST_X11=$(usex !headless)
- -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)
- )
- 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 "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 "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/blender-2.91.0.ebuild b/media-gfx/blender/blender-2.93.0.ebuild
index bedb7cf42832..8a23be813239 100644
--- a/media-gfx/blender/blender-2.91.0.ebuild
+++ b/media-gfx/blender/blender-2.93.0.ebuild
@@ -3,54 +3,51 @@
EAPI=7
-PYTHON_COMPAT=( python3_{7,8} )
+PYTHON_COMPAT=( python3_9 )
-inherit check-reqs cmake flag-o-matic pax-utils python-single-r1 \
- toolchain-funcs xdg-utils
+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 ~arm ~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"
+if [[ ${PV} = *9999* ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://git.blender.org/blender.git"
+else
+ SRC_URI="https://download.blender.org/source/${P}.tar.xz"
+ SRC_URI+=" test? ( https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-2.93.0-tests.tar.bz2 )"
+ KEYWORDS="~amd64"
+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 tbb tiff openimageio )
- elbeem? ( tbb )
+ cycles? ( openexr tiff openimageio )
+ fluid? ( tbb )
opencl? ( cycles )
- openvdb? (
- ^^ ( abi6-compat abi7-compat )
- tbb
- )
- osl? ( cycles llvm )
- standalone? ( 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/gmp
- dev-libs/pugixml
dev-libs/lzo:2=
$(python_gen_cond_dep '
dev-python/numpy[${PYTHON_USEDEP}]
dev-python/requests[${PYTHON_USEDEP}]
')
- media-gfx/potrace
- media-libs/fontconfig:=
media-libs/freetype:=
media-libs/glew:*
media-libs/libpng:=
@@ -62,11 +59,12 @@ RDEPEND="${PYTHON_DEPS}
virtual/opengl
alembic? ( >=media-gfx/alembic-1.7.12[boost(+),hdf(+)] )
collada? ( >=media-libs/opencollada-1.6.68 )
- color-management? ( media-libs/opencolorio )
+ color-management? ( >=media-libs/opencolorio-2.0.0 )
cuda? ( dev-util/nvidia-cuda-toolkit:= )
- cycles? ( media-libs/freeglut )
- ffmpeg? ( media-video/ffmpeg:=[x264,mp3,encode,theora,jpeg2k?] )
+ 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
@@ -75,7 +73,6 @@ RDEPEND="${PYTHON_DEPS}
jack? ( virtual/jack )
jemalloc? ( dev-libs/jemalloc:= )
jpeg2k? ( media-libs/openjpeg:2= )
- llvm? ( sys-devel/llvm:= )
ndof? (
app-misc/spacenavd
dev-libs/libspnav
@@ -83,20 +80,26 @@ RDEPEND="${PYTHON_DEPS}
nls? ( virtual/libiconv )
openal? ( media-libs/openal )
opencl? ( virtual/opencl )
- openimageio? ( media-libs/openimageio:= )
+ 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.0.0[abi6-compat(-)?,abi7-compat(-)?]
+ >=media-gfx/openvdb-7.1.0
dev-libs/c-blosc:=
)
- osl? ( media-libs/osl:= )
+ 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 )
+ test? ( dev-vcs/subversion )
tiff? ( media-libs/tiff )
valgrind? ( dev-util/valgrind )
"
@@ -119,8 +122,6 @@ BDEPEND="
nls? ( sys-devel/gettext )
"
-CMAKE_BUILD_TYPE="Release"
-
blender_check_requirements() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
@@ -129,6 +130,18 @@ blender_check_requirements() {
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
}
@@ -138,41 +151,54 @@ pkg_setup() {
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/tests || die
+ mv "${WORKDIR}"/blender*tests* lib/tests || die
+ fi
+}
+
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")
+ 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() {
- # FIX: forcing '-funsigned-char' fixes an anti-aliasing issue with menu
- # shadows, see bug #276338 for reference
- append-flags -funsigned-char
append-lfs-flags
- if use openvdb; then
- 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}
- fi
-
local mycmakeargs=(
-DBUILD_SHARED_LIBS=OFF
-DPYTHON_INCLUDE_DIR="$(python_get_includedir)"
@@ -185,17 +211,18 @@ src_configure() {
-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_CUDA=$(usex cuda TRUE FALSE)
-DWITH_CYCLES_DEVICE_OPENCL=$(usex opencl)
- -DWITH_CYCLES_EMBREE=OFF
+ -DWITH_CYCLES_EMBREE=$(usex embree)
+ -DWITH_CYCLES_OSL=$(usex osl)
-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_GHOST_X11=$(usex !headless)
+ -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)
@@ -205,19 +232,23 @@ src_configure() {
-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_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)
@@ -226,7 +257,14 @@ src_configure() {
-DWITH_SYSTEM_GLEW=ON
-DWITH_SYSTEM_LZO=ON
-DWITH_TBB=$(usex tbb)
+ -DWITH_USD=OFF
+ -DWITH_XR_OPENXR=OFF
)
+ if ! use debug ; then
+ append-flags -DNDEBUG
+ else
+ append-flags -DDEBUG
+ fi
cmake_src_configure
}
@@ -254,17 +292,25 @@ src_compile() {
}
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
+ # 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
@@ -287,8 +333,10 @@ src_install() {
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"
+ 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}"
}
pkg_postinst() {
@@ -299,7 +347,7 @@ pkg_postinst() {
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 "changing the 'Temporary Files' directory in Blender preferences."
elog
ewarn
ewarn "This ebuild does not unbundle the massive amount of 3rd party"
@@ -309,10 +357,11 @@ pkg_postinst() {
ewarn " https://developer.blender.org/"
ewarn
- if use python_single_target_python3_8; then
- elog "You've enabled python-3.8 support for blender, which is still experimental."
+ 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_7 instead."
+ elog "python_single_target_python3_9 instead."
elog "Bug: https://bugs.gentoo.org/737388"
elog
fi
@@ -329,7 +378,7 @@ pkg_postrm() {
ewarn ""
ewarn "You may want to remove the following directory."
- ewarn "~/.config/${PN}/${MY_PV}/cache/"
+ ewarn "~/.config/${PN}/<blender version>/cache/"
ewarn "It may contain extra render kernels not tracked by portage"
ewarn ""
}
diff --git a/media-gfx/blender/blender-2.91.2.ebuild b/media-gfx/blender/blender-9999.ebuild
index 069fa30267f2..801ddf0af3a3 100644
--- a/media-gfx/blender/blender-2.91.2.ebuild
+++ b/media-gfx/blender/blender-9999.ebuild
@@ -3,53 +3,50 @@
EAPI=7
-PYTHON_COMPAT=( python3_{7,8} )
+PYTHON_COMPAT=( python3_9 )
-inherit check-reqs cmake flag-o-matic pax-utils python-single-r1 \
- toolchain-funcs xdg-utils
+inherit check-reqs cmake flag-o-matic pax-utils python-single-r1 toolchain-funcs subversion 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 ~arm ~arm64 ~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"
+
+if [[ ${PV} = *9999* ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://git.blender.org/blender.git"
+else
+ SRC_URI="https://download.blender.org/source/${P}.tar.xz"
+ KEYWORDS="~amd64 ~x86"
+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 tbb tiff openimageio )
- elbeem? ( tbb )
+ cycles? ( openexr tiff openimageio )
+ fluid? ( tbb )
opencl? ( cycles )
- openvdb? (
- ^^ ( abi6-compat abi7-compat )
- tbb
- )
- osl? ( cycles llvm )
- standalone? ( 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/gmp
- dev-libs/pugixml
dev-libs/lzo:2=
$(python_gen_cond_dep '
dev-python/numpy[${PYTHON_USEDEP}]
dev-python/requests[${PYTHON_USEDEP}]
')
- media-gfx/potrace
- media-libs/fontconfig:=
media-libs/freetype:=
media-libs/glew:*
media-libs/libpng:=
@@ -61,11 +58,12 @@ RDEPEND="${PYTHON_DEPS}
virtual/opengl
alembic? ( >=media-gfx/alembic-1.7.12[boost(+),hdf(+)] )
collada? ( >=media-libs/opencollada-1.6.68 )
- color-management? ( media-libs/opencolorio )
+ color-management? ( >=media-libs/opencolorio-2.0.0 )
cuda? ( dev-util/nvidia-cuda-toolkit:= )
- cycles? ( media-libs/freeglut )
- ffmpeg? ( media-video/ffmpeg:=[x264,mp3,encode,theora,jpeg2k?] )
+ 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
@@ -74,7 +72,6 @@ RDEPEND="${PYTHON_DEPS}
jack? ( virtual/jack )
jemalloc? ( dev-libs/jemalloc:= )
jpeg2k? ( media-libs/openjpeg:2= )
- llvm? ( sys-devel/llvm:= )
ndof? (
app-misc/spacenavd
dev-libs/libspnav
@@ -82,20 +79,26 @@ RDEPEND="${PYTHON_DEPS}
nls? ( virtual/libiconv )
openal? ( media-libs/openal )
opencl? ( virtual/opencl )
- openimageio? ( media-libs/openimageio:= )
+ 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.0.0[abi6-compat(-)?,abi7-compat(-)?]
+ >=media-gfx/openvdb-7.1.0
dev-libs/c-blosc:=
)
- osl? ( media-libs/osl:= )
+ 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 )
+ test? ( dev-vcs/subversion )
tiff? ( media-libs/tiff )
valgrind? ( dev-util/valgrind )
"
@@ -118,8 +121,6 @@ BDEPEND="
nls? ( sys-devel/gettext )
"
-CMAKE_BUILD_TYPE="Release"
-
blender_check_requirements() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
@@ -128,6 +129,18 @@ blender_check_requirements() {
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
}
@@ -137,41 +150,55 @@ pkg_setup() {
python-single-r1_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
+ else
+ default
+ TESTS_SVN_URL=https://svn.blender.org/svnroot/bf-blender/tags/blender-${SLOT}-release/lib/tests
+ fi
+
+ if use test; then
+ subversion_fetch ${TESTS_SVN_URL} ../lib/tests
+ fi
+}
+
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")
+ 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() {
- # FIX: forcing '-funsigned-char' fixes an anti-aliasing issue with menu
- # shadows, see bug #276338 for reference
- append-flags -funsigned-char
append-lfs-flags
- if use openvdb; then
- 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}
- fi
-
local mycmakeargs=(
-DBUILD_SHARED_LIBS=OFF
-DPYTHON_INCLUDE_DIR="$(python_get_includedir)"
@@ -184,17 +211,18 @@ src_configure() {
-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_CUDA=$(usex cuda TRUE FALSE)
-DWITH_CYCLES_DEVICE_OPENCL=$(usex opencl)
- -DWITH_CYCLES_EMBREE=OFF
+ -DWITH_CYCLES_EMBREE=$(usex embree)
+ -DWITH_CYCLES_OSL=$(usex osl)
-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_GHOST_X11=$(usex !headless)
+ -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)
@@ -204,19 +232,23 @@ src_configure() {
-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_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)
@@ -225,7 +257,14 @@ src_configure() {
-DWITH_SYSTEM_GLEW=ON
-DWITH_SYSTEM_LZO=ON
-DWITH_TBB=$(usex tbb)
+ -DWITH_USD=OFF
+ -DWITH_XR_OPENXR=OFF
)
+ if ! use debug ; then
+ append-flags -DNDEBUG
+ else
+ append-flags -DDEBUG
+ fi
cmake_src_configure
}
@@ -253,17 +292,25 @@ src_compile() {
}
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
+ # 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
@@ -286,8 +333,10 @@ src_install() {
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"
+ 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}"
}
pkg_postinst() {
@@ -298,7 +347,7 @@ pkg_postinst() {
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 "changing the 'Temporary Files' directory in Blender preferences."
elog
ewarn
ewarn "This ebuild does not unbundle the massive amount of 3rd party"
@@ -308,10 +357,11 @@ pkg_postinst() {
ewarn " https://developer.blender.org/"
ewarn
- if use python_single_target_python3_8; then
- elog "You've enabled python-3.8 support for blender, which is still experimental."
+ 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_7 instead."
+ elog "python_single_target_python3_9 instead."
elog "Bug: https://bugs.gentoo.org/737388"
elog
fi
@@ -328,7 +378,7 @@ pkg_postrm() {
ewarn ""
ewarn "You may want to remove the following directory."
- ewarn "~/.config/${PN}/${MY_PV}/cache/"
+ ewarn "~/.config/${PN}/<blender version>/cache/"
ewarn "It may contain extra render kernels not tracked by portage"
ewarn ""
}
diff --git a/media-gfx/blender/files/blender-2.83.13-ffmpeg-4_4.patch b/media-gfx/blender/files/blender-2.83.13-ffmpeg-4_4.patch
new file mode 100644
index 000000000000..bf8579675886
--- /dev/null
+++ b/media-gfx/blender/files/blender-2.83.13-ffmpeg-4_4.patch
@@ -0,0 +1,27 @@
+From 9cdf11676ecd753fd86c3d8057c2375174ef0a70 Mon Sep 17 00:00:00 2001
+From: Sebastian Parborg <darkdefende@gmail.com>
+Date: Fri, 7 May 2021 16:51:28 +0200
+Subject: [PATCH] Fix: No sound is exported with ffmpeg 4.4
+
+We were not assigning the amount of sound channels to the output frames.
+Newer ffmpeg releases has sanity checks in place and doesn't fall back
+to two channels anymore.
+---
+ source/blender/blenkernel/intern/writeffmpeg.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/source/blender/blenkernel/intern/writeffmpeg.c b/source/blender/blenkernel/intern/writeffmpeg.c
+index 7fc9e8cc0ef..e5550cee124 100644
+--- a/source/blender/blenkernel/intern/writeffmpeg.c
++++ b/source/blender/blenkernel/intern/writeffmpeg.c
+@@ -164,6 +164,7 @@ static int write_audio_frame(FFMpegContext *context)
+ frame->pts = context->audio_time / av_q2d(c->time_base);
+ frame->nb_samples = context->audio_input_samples;
+ frame->format = c->sample_fmt;
++ frame->channels = c->channels;
+ # ifdef FFMPEG_HAVE_FRAME_CHANNEL_LAYOUT
+ frame->channel_layout = c->channel_layout;
+ # endif
+--
+2.26.3
+
diff --git a/media-gfx/blender/files/blender-2.83.6-constraints_test.patch b/media-gfx/blender/files/blender-2.83.6-constraints_test.patch
new file mode 100644
index 000000000000..ab1e9a6d2d4a
--- /dev/null
+++ b/media-gfx/blender/files/blender-2.83.6-constraints_test.patch
@@ -0,0 +1,13 @@
+diff --git a/tests/python/bl_constraints.py b/tests/python/bl_constraints.py
+index 323dd874ac0..7cbc46d680a 100644
+--- a/tests/python/bl_constraints.py
++++ b/tests/python/bl_constraints.py
+@@ -44,7 +44,7 @@ class AbstractConstraintTests(unittest.TestCase):
+ collection = top_collection.children[self.layer_collection]
+ collection.exclude = False
+
+- def assert_matrix(self, actual_matrix, expect_matrix, object_name: str, places=6, delta=None):
++ def assert_matrix(self, actual_matrix, expect_matrix, object_name: str, places=None, delta=1e-6):
+ """Asserts that the matrices almost equal."""
+ self.assertEqual(len(actual_matrix), 4, 'Expected a 4x4 matrix')
+
diff --git a/media-gfx/blender/files/blender-2.83.6-fix_opevdb_abi.patch b/media-gfx/blender/files/blender-2.83.6-fix_opevdb_abi.patch
new file mode 100644
index 000000000000..b7537f97fc09
--- /dev/null
+++ b/media-gfx/blender/files/blender-2.83.6-fix_opevdb_abi.patch
@@ -0,0 +1,21 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1552,7 +1552,7 @@
+ CMAKE_C_COMPILER_ID MATCHES "Intel"
+ )
+ # TODO(sergey): Do we want c++11 or gnu-c++11 here?
+- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
+ else()
+ message(FATAL_ERROR "Unknown compiler ${CMAKE_C_COMPILER_ID}, can't enable C++11 build")
+ endif()
+--- a/extern/mantaflow/CMakeLists.txt
++++ b/extern/mantaflow/CMakeLists.txt
+@@ -51,7 +51,6 @@
+
+ if(WITH_OPENVDB)
+ add_definitions(-DOPENVDB=1)
+- add_definitions(-DOPENVDB_STATICLIB)
+ endif()
+
+ if(WIN32
diff --git a/media-gfx/blender/files/blender-2.83.6-libmv_eigen_alignment.patch b/media-gfx/blender/files/blender-2.83.6-libmv_eigen_alignment.patch
new file mode 100644
index 000000000000..1392510a23a7
--- /dev/null
+++ b/media-gfx/blender/files/blender-2.83.6-libmv_eigen_alignment.patch
@@ -0,0 +1,219 @@
+diff --git a/intern/libmv/libmv/base/vector.h b/intern/libmv/libmv/base/vector.h
+index bdc4392155c..300291c5679 100644
+--- a/intern/libmv/libmv/base/vector.h
++++ b/intern/libmv/libmv/base/vector.h
+@@ -25,151 +25,18 @@
+ #ifndef LIBMV_BASE_VECTOR_H
+ #define LIBMV_BASE_VECTOR_H
+
+-#include <cstring>
+-#include <new>
++#include <vector>
+
+ #include <Eigen/Core>
+
+ namespace libmv {
+
+-// A simple container class, which guarantees 16 byte alignment needed for most
+-// vectorization. Don't use this container for classes that cannot be copied
+-// via memcpy.
+-// FIXME: this class has some issues:
+-// - doesn't support iterators.
+-// - impede compatibility with code using STL.
+-// - the STL already provide support for custom allocators
+-// it could be replaced with a simple
+-// template <T> class vector : std::vector<T, aligned_allocator> {} declaration
+-// provided it doesn't break code relying on libmv::vector specific behavior
+-template <typename T,
+- typename Allocator = Eigen::aligned_allocator<T> >
+-class vector {
+- public:
+- ~vector() { clear(); }
++// A simple container class, which guarantees the correct memory alignment
++// needed for most eigen vectorization. Don't use this container for classes
++// that cannot be copied via memcpy.
+
+- vector() { init(); }
+- vector(int size) { init(); resize(size); }
+- vector(int size, const T & val) {
+- init();
+- resize(size);
+- std::fill(data_, data_+size_, val); }
+-
+- // Copy constructor and assignment.
+- vector(const vector<T, Allocator> &rhs) {
+- init();
+- copy(rhs);
+- }
+- vector<T, Allocator> &operator=(const vector<T, Allocator> &rhs) {
+- if (&rhs != this) {
+- copy(rhs);
+- }
+- return *this;
+- }
+-
+- /// Swaps the contents of two vectors in constant time.
+- void swap(vector<T, Allocator> &other) {
+- std::swap(allocator_, other.allocator_);
+- std::swap(size_, other.size_);
+- std::swap(capacity_, other.capacity_);
+- std::swap(data_, other.data_);
+- }
+-
+- T *data() const { return data_; }
+- int size() const { return size_; }
+- int capacity() const { return capacity_; }
+- const T& back() const { return data_[size_ - 1]; }
+- T& back() { return data_[size_ - 1]; }
+- const T& front() const { return data_[0]; }
+- T& front() { return data_[0]; }
+- const T& operator[](int n) const { return data_[n]; }
+- T& operator[](int n) { return data_[n]; }
+- const T& at(int n) const { return data_[n]; }
+- T& at(int n) { return data_[n]; }
+- const T * begin() const { return data_; }
+- const T * end() const { return data_+size_; }
+- T * begin() { return data_; }
+- T * end() { return data_+size_; }
+-
+- void resize(size_t size) {
+- reserve(size);
+- if (size > size_) {
+- construct(size_, size);
+- } else if (size < size_) {
+- destruct(size, size_);
+- }
+- size_ = size;
+- }
+-
+- void push_back(const T &value) {
+- if (size_ == capacity_) {
+- reserve(size_ ? 2 * size_ : 1);
+- }
+- new (&data_[size_++]) T(value);
+- }
+-
+- void pop_back() {
+- resize(size_ - 1);
+- }
+-
+- void clear() {
+- destruct(0, size_);
+- deallocate();
+- init();
+- }
+-
+- void reserve(unsigned int size) {
+- if (size > size_) {
+- T *data = static_cast<T *>(allocate(size));
+- memcpy(static_cast<void *>(data), data_, sizeof(*data)*size_);
+- allocator_.deallocate(data_, capacity_);
+- data_ = data;
+- capacity_ = size;
+- }
+- }
+-
+- bool empty() {
+- return size_ == 0;
+- }
+-
+- private:
+- void construct(int start, int end) {
+- for (int i = start; i < end; ++i) {
+- new (&data_[i]) T;
+- }
+- }
+- void destruct(int start, int end) {
+- for (int i = start; i < end; ++i) {
+- data_[i].~T();
+- }
+- }
+- void init() {
+- size_ = 0;
+- data_ = 0;
+- capacity_ = 0;
+- }
+-
+- void *allocate(int size) {
+- return size ? allocator_.allocate(size) : 0;
+- }
+-
+- void deallocate() {
+- allocator_.deallocate(data_, size_);
+- data_ = 0;
+- }
+-
+- void copy(const vector<T, Allocator> &rhs) {
+- resize(rhs.size());
+- for (int i = 0; i < rhs.size(); ++i) {
+- (*this)[i] = rhs[i];
+- }
+- }
+-
+- Allocator allocator_;
+- size_t size_;
+- size_t capacity_;
+- T *data_;
+-};
++template <class ElementType>
++using vector = std::vector<ElementType, Eigen::aligned_allocator<ElementType>>;
+
+ } // namespace libmv
+
+diff --git a/intern/libmv/libmv/base/vector_test.cc b/intern/libmv/libmv/base/vector_test.cc
+index f17718c3926..44b9a152148 100644
+--- a/intern/libmv/libmv/base/vector_test.cc
++++ b/intern/libmv/libmv/base/vector_test.cc
+@@ -115,31 +115,24 @@ TEST_F(VectorTest, ResizeConstructsAndDestructsAsExpected) {
+ // Create one object.
+ v.resize(1);
+ EXPECT_EQ(1, v.size());
+- EXPECT_EQ(1, v.capacity());
+ EXPECT_EQ(1, foo_construct_calls);
+- EXPECT_EQ(0, foo_destruct_calls);
+ EXPECT_EQ(5, v[0].value);
+
+ // Create two more.
+ v.resize(3);
+ EXPECT_EQ(3, v.size());
+- EXPECT_EQ(3, v.capacity());
+ EXPECT_EQ(3, foo_construct_calls);
+- EXPECT_EQ(0, foo_destruct_calls);
+
+ // Delete the last one.
+ v.resize(2);
+ EXPECT_EQ(2, v.size());
+ EXPECT_EQ(3, v.capacity());
+ EXPECT_EQ(3, foo_construct_calls);
+- EXPECT_EQ(1, foo_destruct_calls);
+
+ // Delete the remaining two.
+ v.resize(0);
+ EXPECT_EQ(0, v.size());
+- EXPECT_EQ(3, v.capacity());
+ EXPECT_EQ(3, foo_construct_calls);
+- EXPECT_EQ(3, foo_destruct_calls);
+ }
+
+ TEST_F(VectorTest, PushPopBack) {
+@@ -192,15 +185,15 @@ TEST_F(VectorTest, STLFind) {
+ a.push_back(5);
+ a.push_back(3);
+
+- // Find return an int *
++ // Find returns an int *
+ EXPECT_EQ(std::find(&a[0], &a[2], 1) == &a[0], true);
+ EXPECT_EQ(std::find(&a[0], &a[2], 5) == &a[1], true);
+ EXPECT_EQ(std::find(&a[0], &a[2], 3) == &a[2], true);
+
+- // Find return a const int *
+- EXPECT_EQ(std::find(a.begin(), a.end(), 1) == &a[0], true);
+- EXPECT_EQ(std::find(a.begin(), a.end(), 5) == &a[1], true);
+- EXPECT_EQ(std::find(a.begin(), a.end(), 3) == &a[2], true);
++ // Find returns an interator
++ EXPECT_EQ(std::find(a.begin(), a.end(), 1) == std::next(a.begin(), 0), true);
++ EXPECT_EQ(std::find(a.begin(), a.end(), 5) == std::next(a.begin(), 1), true);
++ EXPECT_EQ(std::find(a.begin(), a.end(), 3) == std::next(a.begin(), 2), true);
+
+ // Search value that are not in the vector
+ EXPECT_EQ(std::find(a.begin(), a.end(), 0) == a.end(), true);
diff --git a/media-gfx/blender/metadata.xml b/media-gfx/blender/metadata.xml
index 6fc1b5f9fa50..16d447e56348 100644
--- a/media-gfx/blender/metadata.xml
+++ b/media-gfx/blender/metadata.xml
@@ -14,12 +14,6 @@
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>.
@@ -42,18 +36,19 @@
<flag name="dds">
Adds DDS textures support to Blender.
</flag>
- <flag name="elbeem">
- Adds surface fluid simulation to Blender using El'Beem library.
+ <flag name="embree">
+ Use embree to accelerate certain areas of the Cycles render engine.
+ </flag>
+ <flag name="fluid">
+ Adds fluid simulation support via the built-in Mantaflow library.
</flag>
<flag name="headless">
Build without graphical support (renderfarm, server mode only).
</flag>
- <flag name="llvm">
- Enable features depending on llvm.
- </flag>
<flag name="ndof">
Enable NDOF input devices (SpaceNavigator and friends).
</flag>
+ <flag name="oidn">Enable OpenImageDenoiser Support</flag>
<flag name="opencl">
Allow OpenCL Graphics Acceleration. This may
require extra graphics card drivers.</flag>
@@ -68,6 +63,12 @@
<flag name="osl">
Add support for OpenShadingLanguage scripting.
</flag>
+ <flag name="potrace">
+ Add support for converting bitmaps into Grease pencil line using the potrace library.
+ </flag>
+ <flag name="pugixml">
+ Enable PugiXML support (Used for OpenImageIO, Grease Pencil SVG export)
+ </flag>
<flag name="standalone">
Build the standalone version of Cycles.
</flag>