summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2020-04-30 11:38:31 +0100
committerV3n3RiX <venerix@redcorelinux.org>2020-04-30 11:38:31 +0100
commit0827eeeaa829df34bb133259d663b334cbbec18d (patch)
treec77224e32827227738571299af1187ba9132ecee
parent843bd3ea966e859ba7b2834df66636d5216868fe (diff)
media-gfx/blender : import from gentoo, add python3.7 compat (builds and runs fine with it)
-rw-r--r--media-gfx/blender/Manifest1
-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.patch62
-rw-r--r--media-gfx/blender/files/blender-2.79b-fix-for-gcc9-new-openmp-data-sharing.patch31
-rw-r--r--media-gfx/blender/files/blender-2.79b-gcc-8.patch22
-rw-r--r--media-gfx/blender/files/blender-fix-install-rules.patch18
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...\")")
+