diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2020-04-30 11:38:31 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2020-04-30 11:38:31 +0100 |
commit | 0827eeeaa829df34bb133259d663b334cbbec18d (patch) | |
tree | c77224e32827227738571299af1187ba9132ecee | |
parent | 843bd3ea966e859ba7b2834df66636d5216868fe (diff) |
media-gfx/blender : import from gentoo, add python3.7 compat (builds and runs fine with it)
-rw-r--r-- | media-gfx/blender/Manifest | 1 | ||||
-rw-r--r-- | media-gfx/blender/blender-2.79b-r3.ebuild (renamed from media-gfx/blender/blender-2.81a-r2.ebuild) | 41 | ||||
-rw-r--r-- | media-gfx/blender/files/blender-2.79b-ffmpeg-4-compat.patch | 62 | ||||
-rw-r--r-- | media-gfx/blender/files/blender-2.79b-fix-for-gcc9-new-openmp-data-sharing.patch | 31 | ||||
-rw-r--r-- | media-gfx/blender/files/blender-2.79b-gcc-8.patch | 22 | ||||
-rw-r--r-- | media-gfx/blender/files/blender-fix-install-rules.patch | 18 |
6 files changed, 147 insertions, 28 deletions
diff --git a/media-gfx/blender/Manifest b/media-gfx/blender/Manifest new file mode 100644 index 00000000..2a585f30 --- /dev/null +++ b/media-gfx/blender/Manifest @@ -0,0 +1 @@ +DIST blender-2.79b.tar.gz 50204270 BLAKE2B 78bda294df783ee9bcbcf32f9a112737b2947da5146fd4351b8b36d81c6630ed0ea302b2fb539642cfbdcc4b64df35af5c8545a3bbf50b1cf87dcf3a60eb4ac0 SHA512 2db21ace446168dd683cdb5aad9dec001f8888ae4e9603a04ddb44fb78489ded827deb07e83712b0f1118a0e7bf66f2a5d935dc4ebb3a6703d72672ff414367f diff --git a/media-gfx/blender/blender-2.81a-r2.ebuild b/media-gfx/blender/blender-2.79b-r3.ebuild index a8b97967..d20e727e 100644 --- a/media-gfx/blender/blender-2.81a-r2.ebuild +++ b/media-gfx/blender/blender-2.79b-r3.ebuild @@ -1,19 +1,17 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 -PYTHON_COMPAT=( python3_{7,8} ) +PYTHON_COMPAT=( python{3_6.3_7} ) -inherit git-r3 check-reqs cmake-utils xdg-utils flag-o-matic gnome2-utils \ +inherit check-reqs cmake-utils xdg-utils flag-o-matic xdg-utils \ pax-utils python-single-r1 toolchain-funcs eapi7-ver DESCRIPTION="3D Creation/Animation/Publishing System" -HOMEPAGE="http://www.blender.org" +HOMEPAGE="https://www.blender.org" -# SRC_URI="http://download.blender.org/source/${P}.tar.gz" -EGIT_REPO_URI="https://git.blender.org/blender.git" -EGIT_COMMIT="v2.81a" +SRC_URI="https://download.blender.org/source/${P}.tar.gz" # Blender can have letters in the version string, # so strip off the letter if it exists. @@ -21,11 +19,12 @@ MY_PV="$(ver_cut 1-2)" SLOT="0" LICENSE="|| ( GPL-2 BL )" -KEYWORDS="~amd64 ~x86" -IUSE="+bullet +dds +elbeem +game-engine +openexr collada colorio \ +KEYWORDS="amd64 ~x86" +IUSE="+bullet +dds +elbeem +game-engine +openexr collada color-management \ cuda cycles debug doc ffmpeg fftw headless jack jemalloc jpeg2k libav \ llvm man ndof nls openal opencl openimageio openmp opensubdiv openvdb \ osl player sdl sndfile test tiff valgrind" +RESTRICT="!test? ( test )" REQUIRED_USE="${PYTHON_REQUIRED_USE} cuda? ( cycles ) @@ -51,7 +50,7 @@ RDEPEND="${PYTHON_DEPS} virtual/libintl virtual/opengl collada? ( >=media-libs/opencollada-1.6.18:= ) - colorio? ( media-libs/opencolorio ) + color-management? ( media-libs/opencolorio ) cuda? ( dev-util/nvidia-cuda-toolkit:= ) ffmpeg? ( media-video/ffmpeg:=[x264,mp3,encode,theora,jpeg2k?] ) libav? ( >=media-video/libav-11.3:=[x264,mp3,encode,theora,jpeg2k?] ) @@ -93,16 +92,22 @@ DEPEND="${RDEPEND} >=dev-cpp/eigen-3.2.8:3 virtual/pkgconfig doc? ( - app-doc/doxygen[-nodot(-),dot(+),latex] + app-doc/doxygen[dot] dev-python/sphinx[latex] + dev-texlive/texlive-bibtexextra + dev-texlive/texlive-fontsextra + dev-texlive/texlive-fontutils + dev-texlive/texlive-latex + dev-texlive/texlive-latexextra ) nls? ( sys-devel/gettext )" PATCHES=( "${FILESDIR}/${PN}-fix-install-rules.patch" + "${FILESDIR}/${P}-gcc-8.patch" + "${FILESDIR}/${P}-ffmpeg-4-compat.patch" + "${FILESDIR}/${P}-fix-for-gcc9-new-openmp-data-sharing.patch" ) -# "${FILESDIR}/${P}-gcc-8.patch" -# "${FILESDIR}/${P}-ffmpeg-4-compat.patch" blender_check_requirements() { [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp @@ -184,7 +189,7 @@ src_configure() { -DWITH_MOD_OCEANSIM=$(usex fftw) -DWITH_OPENAL=$(usex openal) -DWITH_OPENCL=$(usex opencl) - -DWITH_OPENCOLORIO=$(usex colorio) + -DWITH_OPENCOLORIO=$(usex color-management) -DWITH_OPENCOLLADA=$(usex collada) -DWITH_OPENIMAGEIO=$(usex openimageio) -DWITH_OPENMP=$(usex openmp) @@ -260,10 +265,6 @@ src_install() { python_optimize "${ED%/}/usr/share/blender/${MY_PV}/scripts" } -pkg_preinst() { - gnome2_icon_savelist -} - pkg_postinst() { elog elog "Blender uses python integration. As such, may have some" @@ -281,12 +282,12 @@ pkg_postinst() { ewarn "If you are concerned about security, file a bug upstream:" ewarn " https://developer.blender.org/" ewarn - gnome2_icon_cache_update + xdg_icon_cache_update xdg_mimeinfo_database_update } pkg_postrm() { - gnome2_icon_cache_update + xdg_icon_cache_update xdg_mimeinfo_database_update ewarn "" diff --git a/media-gfx/blender/files/blender-2.79b-ffmpeg-4-compat.patch b/media-gfx/blender/files/blender-2.79b-ffmpeg-4-compat.patch new file mode 100644 index 00000000..4ad05aaf --- /dev/null +++ b/media-gfx/blender/files/blender-2.79b-ffmpeg-4-compat.patch @@ -0,0 +1,62 @@ +diff -urN a/intern/ffmpeg/ffmpeg_compat.h b/intern/ffmpeg/ffmpeg_compat.h +--- a/intern/ffmpeg/ffmpeg_compat.h 2018-03-23 15:22:25.000000000 +0000 ++++ b/intern/ffmpeg/ffmpeg_compat.h 2018-08-16 14:39:23.484489828 +0100 +@@ -109,6 +109,45 @@ + + #endif + ++/* XXX TODO Probably fix to correct modern flags in code? Not sure how old FFMPEG we want to support though, ++ * so for now this will do. */ ++ ++#ifndef FF_MIN_BUFFER_SIZE ++# ifdef AV_INPUT_BUFFER_MIN_SIZE ++# define FF_MIN_BUFFER_SIZE AV_INPUT_BUFFER_MIN_SIZE ++# endif ++#endif ++ ++#ifndef FF_INPUT_BUFFER_PADDING_SIZE ++# ifdef AV_INPUT_BUFFER_PADDING_SIZE ++# define FF_INPUT_BUFFER_PADDING_SIZE AV_INPUT_BUFFER_PADDING_SIZE ++# endif ++#endif ++ ++#ifndef CODEC_FLAG_GLOBAL_HEADER ++# ifdef AV_CODEC_FLAG_GLOBAL_HEADER ++# define CODEC_FLAG_GLOBAL_HEADER AV_CODEC_FLAG_GLOBAL_HEADER ++# endif ++#endif ++ ++#ifndef CODEC_FLAG_GLOBAL_HEADER ++# ifdef AV_CODEC_FLAG_GLOBAL_HEADER ++# define CODEC_FLAG_GLOBAL_HEADER AV_CODEC_FLAG_GLOBAL_HEADER ++# endif ++#endif ++ ++#ifndef CODEC_FLAG_INTERLACED_DCT ++# ifdef AV_CODEC_FLAG_INTERLACED_DCT ++# define CODEC_FLAG_INTERLACED_DCT AV_CODEC_FLAG_INTERLACED_DCT ++# endif ++#endif ++ ++#ifndef CODEC_FLAG_INTERLACED_ME ++# ifdef AV_CODEC_FLAG_INTERLACED_ME ++# define CODEC_FLAG_INTERLACED_ME AV_CODEC_FLAG_INTERLACED_ME ++# endif ++#endif ++ + /* FFmpeg upstream 1.0 is the first who added AV_ prefix. */ + #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(54, 59, 100) + # define AV_CODEC_ID_NONE CODEC_ID_NONE +diff -urN a/source/blender/blenkernel/intern/writeffmpeg.c b/source/blender/blenkernel/intern/writeffmpeg.c +--- a/source/blender/blenkernel/intern/writeffmpeg.c 2018-03-23 15:22:25.000000000 +0000 ++++ b/source/blender/blenkernel/intern/writeffmpeg.c 2018-08-16 14:39:21.702484751 +0100 +@@ -605,7 +605,8 @@ + c->rc_buffer_aggressivity = 1.0; + #endif + +- c->me_method = ME_EPZS; ++ /* Deprecated and not doing anything since July 2015, deleted in recent ffmpeg */ ++ //c->me_method = ME_EPZS; + + codec = avcodec_find_encoder(c->codec_id); + if (!codec) diff --git a/media-gfx/blender/files/blender-2.79b-fix-for-gcc9-new-openmp-data-sharing.patch b/media-gfx/blender/files/blender-2.79b-fix-for-gcc9-new-openmp-data-sharing.patch new file mode 100644 index 00000000..0ecc960d --- /dev/null +++ b/media-gfx/blender/files/blender-2.79b-fix-for-gcc9-new-openmp-data-sharing.patch @@ -0,0 +1,31 @@ +diff --git a/intern/elbeem/intern/solver_main.cpp b/intern/elbeem/intern/solver_main.cpp +index 68f7c04..514087b 100644 +--- a/intern/elbeem/intern/solver_main.cpp ++++ b/intern/elbeem/intern/solver_main.cpp +@@ -381,7 +381,7 @@ LbmFsgrSolver::mainLoop(const int lev) + GRID_REGION_INIT(); + #if PARALLEL==1 + const int gDebugLevel = ::gDebugLevel; +-#pragma omp parallel default(none) num_threads(mNumOMPThreads) \ ++#pragma omp parallel num_threads(mNumOMPThreads) \ + reduction(+: \ + calcCurrentMass,calcCurrentVolume, \ + calcCellsFilled,calcCellsEmptied, \ +@@ -1126,7 +1126,7 @@ LbmFsgrSolver::preinitGrids() + GRID_REGION_INIT(); + #if PARALLEL==1 + const int gDebugLevel = ::gDebugLevel; +-#pragma omp parallel default(none) num_threads(mNumOMPThreads) \ ++#pragma omp parallel num_threads(mNumOMPThreads) \ + reduction(+: \ + calcCurrentMass,calcCurrentVolume, \ + calcCellsFilled,calcCellsEmptied, \ +@@ -1164,7 +1164,7 @@ LbmFsgrSolver::standingFluidPreinit() + GRID_REGION_INIT(); + #if PARALLEL==1 + const int gDebugLevel = ::gDebugLevel; +-#pragma omp parallel default(none) num_threads(mNumOMPThreads) \ ++#pragma omp parallel num_threads(mNumOMPThreads) \ + reduction(+: \ + calcCurrentMass,calcCurrentVolume, \ + calcCellsFilled,calcCellsEmptied, \ diff --git a/media-gfx/blender/files/blender-2.79b-gcc-8.patch b/media-gfx/blender/files/blender-2.79b-gcc-8.patch new file mode 100644 index 00000000..3a64ad2f --- /dev/null +++ b/media-gfx/blender/files/blender-2.79b-gcc-8.patch @@ -0,0 +1,22 @@ +--- blender-2.79b-orig/intern/cycles/util/util_sseb.h 2018-03-24 02:22:25.000000000 +1100 ++++ blender-2.79b/intern/cycles/util/util_sseb.h 2018-05-30 20:43:33.888717930 +1000 +@@ -116,7 +116,7 @@ + __forceinline const sseb unpackhi( const sseb& a, const sseb& b ) { return _mm_unpackhi_ps(a, b); } + + template<size_t i0, size_t i1, size_t i2, size_t i3> __forceinline const sseb shuffle( const sseb& a ) { +- return _mm_shuffle_epi32(a, _MM_SHUFFLE(i3, i2, i1, i0)); ++ return _mm_castsi128_ps(_mm_shuffle_epi32(a, _MM_SHUFFLE(i3, i2, i1, i0))); + } + + template<> __forceinline const sseb shuffle<0, 1, 0, 1>( const sseb& a ) { +--- blender-2.79b-orig/intern/itasc/kdl/tree.hpp 2018-03-24 02:22:25.000000000 +1100 ++++ blender-2.79b/intern/itasc/kdl/tree.hpp 2018-05-30 20:33:52.045179988 +1000 +@@ -34,7 +34,7 @@ + //Forward declaration + class TreeElement; + // Eigen allocator is needed for alignment of Eigen data types +- typedef std::map<std::string,TreeElement, std::less<std::string>, Eigen::aligned_allocator<std::pair<std::string, TreeElement> > > SegmentMap; ++ typedef std::map<std::string,TreeElement, std::less<std::string>, Eigen::aligned_allocator<std::pair<const std::string, TreeElement> > > SegmentMap; + + class TreeElement + { diff --git a/media-gfx/blender/files/blender-fix-install-rules.patch b/media-gfx/blender/files/blender-fix-install-rules.patch index 6f203bd8..e62aba81 100644 --- a/media-gfx/blender/files/blender-fix-install-rules.patch +++ b/media-gfx/blender/files/blender-fix-install-rules.patch @@ -1,14 +1,16 @@ ---- a/source/creator/CMakeLists.txt.ORIG 2019-06-26 11:43:48.063167637 +0200 -+++ b/source/creator/CMakeLists.txt 2019-06-26 12:33:02.676329481 +0200 -@@ -352,11 +352,6 @@ +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. +-# important to make a clean install each time, else old scripts get loaded. -install( -- CODE -- "file(REMOVE_RECURSE ${TARGETDIR_VER})" +- CODE +- "file(REMOVE_RECURSE ${TARGETDIR_VER})" -) - if(WITH_PYTHON) - # install(CODE "message(\"copying blender scripts...\")") - + # install(CODE "message(\"copying blender scripts...\")") + |