1 |
commit: b0b0f8fb104fdd0867db97591866bc1b5af425d6 |
2 |
Author: Jonathan Scruggs <j.scruggs <AT> gmail <DOT> com> |
3 |
AuthorDate: Wed Aug 15 17:44:26 2018 +0000 |
4 |
Commit: Jonathan Scruggs <dracwyrm <AT> gentoo <DOT> org> |
5 |
CommitDate: Wed Aug 15 20:08:18 2018 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b0b0f8fb |
7 |
|
8 |
media-gfx/blender: bump to version 1.79b |
9 |
|
10 |
Add patch from Mark Wright <gienah <AT> gentoo.org> for GCC 8 |
11 |
compatibility. |
12 |
|
13 |
Closes: https://bugs.gentoo.org/650592 |
14 |
Closes: https://bugs.gentoo.org/661066 |
15 |
|
16 |
media-gfx/blender/Manifest | 1 + |
17 |
media-gfx/blender/blender-2.79b.ebuild | 290 ++++++++++++++++++++++ |
18 |
media-gfx/blender/files/blender-2.79b-gcc-8.patch | 22 ++ |
19 |
3 files changed, 313 insertions(+) |
20 |
|
21 |
diff --git a/media-gfx/blender/Manifest b/media-gfx/blender/Manifest |
22 |
index aa35aa9dcac..42826ca0c67 100644 |
23 |
--- a/media-gfx/blender/Manifest |
24 |
+++ b/media-gfx/blender/Manifest |
25 |
@@ -1,2 +1,3 @@ |
26 |
DIST blender-2.72b.tar.gz 52018242 BLAKE2B fa0b8ab3feaeb35e76d833415984eb21d7b6dca47b9e5fb337cdfbdc9924165d3345caa5608ee2849bf71855c917a6fa56d79d4f375b57ff367047ef92e8e0b9 SHA512 9767797621e443ff9b6810d1713dda110f883c33626d40d7fe5dda676f549e3591516dc24b75feebd85823dd13437c34521ca752139cd31ddacf31ea6b14e124 |
27 |
DIST blender-2.79.tar.gz 50145270 BLAKE2B 5c11b36840d4bf4a414f01d1f8efcbfb2879ce56c9e2ebe32d8bb0be3ce29fd194dec8b3aa5bca9bf664804c1be57d01394494fdfebc7a4d8257bd2c47866338 SHA512 9b81c41882f4e150476ebda5b301b78c2d35ea918394c8a01671fc031f7cb7a34b5a3d68b6a345f6d23fd9ecedd25bc0bd24f9f9b3ec771237ac4496bbde7d2f |
28 |
+DIST blender-2.79b.tar.gz 50204270 BLAKE2B 78bda294df783ee9bcbcf32f9a112737b2947da5146fd4351b8b36d81c6630ed0ea302b2fb539642cfbdcc4b64df35af5c8545a3bbf50b1cf87dcf3a60eb4ac0 SHA512 2db21ace446168dd683cdb5aad9dec001f8888ae4e9603a04ddb44fb78489ded827deb07e83712b0f1118a0e7bf66f2a5d935dc4ebb3a6703d72672ff414367f |
29 |
|
30 |
diff --git a/media-gfx/blender/blender-2.79b.ebuild b/media-gfx/blender/blender-2.79b.ebuild |
31 |
new file mode 100644 |
32 |
index 00000000000..4dc6dd61ee6 |
33 |
--- /dev/null |
34 |
+++ b/media-gfx/blender/blender-2.79b.ebuild |
35 |
@@ -0,0 +1,290 @@ |
36 |
+# Copyright 1999-2018 Gentoo Foundation |
37 |
+# Distributed under the terms of the GNU General Public License v2 |
38 |
+ |
39 |
+EAPI=6 |
40 |
+ |
41 |
+PYTHON_COMPAT=( python{3_5,3_6} ) |
42 |
+ |
43 |
+inherit check-reqs cmake-utils xdg-utils flag-o-matic gnome2-utils \ |
44 |
+ pax-utils python-single-r1 toolchain-funcs eapi7-ver |
45 |
+ |
46 |
+DESCRIPTION="3D Creation/Animation/Publishing System" |
47 |
+HOMEPAGE="http://www.blender.org" |
48 |
+ |
49 |
+SRC_URI="http://download.blender.org/source/${P}.tar.gz" |
50 |
+ |
51 |
+# Blender can have letters in the version string, |
52 |
+# so strip of the letter if it exists. |
53 |
+MY_PV="$(ver_cut 1-2)" |
54 |
+ |
55 |
+SLOT="0" |
56 |
+LICENSE="|| ( GPL-2 BL )" |
57 |
+KEYWORDS="~amd64 ~x86" |
58 |
+IUSE="+bullet +dds +elbeem +game-engine +openexr collada colorio \ |
59 |
+ cuda cycles debug doc ffmpeg fftw headless jack jemalloc jpeg2k libav \ |
60 |
+ llvm man ndof nls openal opencl openimageio openmp opensubdiv openvdb \ |
61 |
+ osl player sdl sndfile test tiff valgrind" |
62 |
+ |
63 |
+REQUIRED_USE="${PYTHON_REQUIRED_USE} |
64 |
+ cuda? ( cycles ) |
65 |
+ cycles? ( openexr tiff openimageio ) |
66 |
+ opencl? ( cycles ) |
67 |
+ osl? ( cycles llvm ) |
68 |
+ player? ( game-engine !headless )" |
69 |
+ |
70 |
+RDEPEND="${PYTHON_DEPS} |
71 |
+ >=dev-libs/boost-1.62:=[nls?,threads(+)] |
72 |
+ dev-libs/lzo:2 |
73 |
+ >=dev-python/numpy-1.10.1[${PYTHON_USEDEP}] |
74 |
+ dev-python/requests[${PYTHON_USEDEP}] |
75 |
+ media-libs/freetype |
76 |
+ media-libs/glew:* |
77 |
+ media-libs/libpng:0= |
78 |
+ media-libs/libsamplerate |
79 |
+ sys-libs/zlib |
80 |
+ virtual/glu |
81 |
+ virtual/jpeg:0= |
82 |
+ virtual/libintl |
83 |
+ virtual/opengl |
84 |
+ collada? ( >=media-libs/opencollada-1.6.18:= ) |
85 |
+ colorio? ( media-libs/opencolorio ) |
86 |
+ cuda? ( dev-util/nvidia-cuda-toolkit:= ) |
87 |
+ ffmpeg? ( media-video/ffmpeg:=[x264,mp3,encode,theora,jpeg2k?] ) |
88 |
+ libav? ( >=media-video/libav-11.3:=[x264,mp3,encode,theora,jpeg2k?] ) |
89 |
+ fftw? ( sci-libs/fftw:3.0= ) |
90 |
+ !headless? ( |
91 |
+ x11-libs/libX11 |
92 |
+ x11-libs/libXi |
93 |
+ x11-libs/libXxf86vm |
94 |
+ ) |
95 |
+ jack? ( virtual/jack ) |
96 |
+ jemalloc? ( dev-libs/jemalloc:= ) |
97 |
+ jpeg2k? ( media-libs/openjpeg:0 ) |
98 |
+ llvm? ( sys-devel/llvm:= ) |
99 |
+ ndof? ( |
100 |
+ app-misc/spacenavd |
101 |
+ dev-libs/libspnav |
102 |
+ ) |
103 |
+ nls? ( virtual/libiconv ) |
104 |
+ openal? ( media-libs/openal ) |
105 |
+ opencl? ( virtual/opencl ) |
106 |
+ openimageio? ( >=media-libs/openimageio-1.7.0 ) |
107 |
+ openexr? ( |
108 |
+ >=media-libs/ilmbase-2.2.0:= |
109 |
+ >=media-libs/openexr-2.2.0:= |
110 |
+ ) |
111 |
+ opensubdiv? ( >=media-libs/opensubdiv-3.3.0:=[cuda=,opencl=] ) |
112 |
+ openvdb? ( |
113 |
+ media-gfx/openvdb[${PYTHON_USEDEP},-abi3-compat(-)] |
114 |
+ dev-cpp/tbb |
115 |
+ >=dev-libs/c-blosc-1.5.2 |
116 |
+ ) |
117 |
+ osl? ( media-libs/osl:= ) |
118 |
+ sdl? ( media-libs/libsdl2[sound,joystick] ) |
119 |
+ sndfile? ( media-libs/libsndfile ) |
120 |
+ tiff? ( media-libs/tiff:0 ) |
121 |
+ valgrind? ( dev-util/valgrind )" |
122 |
+ |
123 |
+DEPEND="${RDEPEND} |
124 |
+ >=dev-cpp/eigen-3.2.8:3 |
125 |
+ virtual/pkgconfig |
126 |
+ doc? ( |
127 |
+ app-doc/doxygen[-nodot(-),dot(+),latex] |
128 |
+ dev-python/sphinx[latex] |
129 |
+ ) |
130 |
+ nls? ( sys-devel/gettext )" |
131 |
+ |
132 |
+PATCHES=( |
133 |
+ "${FILESDIR}/${PN}-fix-install-rules.patch" |
134 |
+ "${FILESDIR}/${P}-gcc-8.patch" |
135 |
+) |
136 |
+ |
137 |
+blender_check_requirements() { |
138 |
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp |
139 |
+ |
140 |
+ if use doc; then |
141 |
+ CHECKREQS_DISK_BUILD="4G" check-reqs_pkg_pretend |
142 |
+ fi |
143 |
+} |
144 |
+ |
145 |
+pkg_pretend() { |
146 |
+ blender_check_requirements |
147 |
+} |
148 |
+ |
149 |
+pkg_setup() { |
150 |
+ blender_check_requirements |
151 |
+ python-single-r1_pkg_setup |
152 |
+} |
153 |
+ |
154 |
+src_prepare() { |
155 |
+ cmake-utils_src_prepare |
156 |
+ |
157 |
+ # we don't want static glew, but it's scattered across |
158 |
+ # multiple files that differ from version to version |
159 |
+ # !!!CHECK THIS SED ON EVERY VERSION BUMP!!! |
160 |
+ local file |
161 |
+ while IFS="" read -d $'\0' -r file ; do |
162 |
+ sed -i -e '/-DGLEW_STATIC/d' "${file}" || die |
163 |
+ done < <(find . -type f -name "CMakeLists.txt") |
164 |
+ |
165 |
+ # Disable MS Windows help generation. The variable doesn't do what it |
166 |
+ # it sounds like. |
167 |
+ sed -e "s|GENERATE_HTMLHELP = YES|GENERATE_HTMLHELP = NO|" \ |
168 |
+ -i doc/doxygen/Doxyfile || die |
169 |
+} |
170 |
+ |
171 |
+src_configure() { |
172 |
+ # FIX: forcing '-funsigned-char' fixes an anti-aliasing issue with menu |
173 |
+ # shadows, see bug #276338 for reference |
174 |
+ append-flags -funsigned-char |
175 |
+ append-lfs-flags |
176 |
+ |
177 |
+ local mycmakeargs=( |
178 |
+ -DPYTHON_VERSION="${EPYTHON/python/}" |
179 |
+ -DPYTHON_LIBRARY="$(python_get_library_path)" |
180 |
+ -DPYTHON_INCLUDE_DIR="$(python_get_includedir)" |
181 |
+ -DWITH_INSTALL_PORTABLE=OFF |
182 |
+ -DWITH_PYTHON_INSTALL=OFF |
183 |
+ -DWITH_PYTHON_INSTALL_NUMPY=OFF |
184 |
+ -DWITH_STATIC_LIBS=OFF |
185 |
+ -DWITH_SYSTEM_GLEW=ON |
186 |
+ -DWITH_SYSTEM_OPENJPEG=ON |
187 |
+ -DWITH_SYSTEM_EIGEN3=ON |
188 |
+ -DWITH_SYSTEM_LZO=ON |
189 |
+ -DWITH_C11=ON |
190 |
+ -DWITH_CXX11=ON |
191 |
+ -DWITH_BOOST=ON |
192 |
+ -DWITH_BULLET=$(usex bullet) |
193 |
+ -DWITH_CODEC_FFMPEG=$(usex ffmpeg) |
194 |
+ -DWITH_CODEC_SNDFILE=$(usex sndfile) |
195 |
+ -DWITH_CUDA=$(usex cuda) |
196 |
+ -DWITH_CYCLES_DEVICE_CUDA=$(usex cuda TRUE FALSE) |
197 |
+ -DWITH_CYCLES=$(usex cycles) |
198 |
+ -DWITH_CYCLES_OSL=$(usex osl) |
199 |
+ -DWITH_LLVM=$(usex llvm) |
200 |
+ -DWITH_FFTW3=$(usex fftw) |
201 |
+ -DWITH_GAMEENGINE=$(usex game-engine) |
202 |
+ -DWITH_HEADLESS=$(usex headless) |
203 |
+ -DWITH_X11=$(usex !headless) |
204 |
+ -DWITH_IMAGE_DDS=$(usex dds) |
205 |
+ -DWITH_IMAGE_OPENEXR=$(usex openexr) |
206 |
+ -DWITH_IMAGE_OPENJPEG=$(usex jpeg2k) |
207 |
+ -DWITH_IMAGE_TIFF=$(usex tiff) |
208 |
+ -DWITH_INPUT_NDOF=$(usex ndof) |
209 |
+ -DWITH_INTERNATIONAL=$(usex nls) |
210 |
+ -DWITH_JACK=$(usex jack) |
211 |
+ -DWITH_MOD_FLUID=$(usex elbeem) |
212 |
+ -DWITH_MOD_OCEANSIM=$(usex fftw) |
213 |
+ -DWITH_OPENAL=$(usex openal) |
214 |
+ -DWITH_OPENCL=$(usex opencl) |
215 |
+ -DWITH_OPENCOLORIO=$(usex colorio) |
216 |
+ -DWITH_OPENCOLLADA=$(usex collada) |
217 |
+ -DWITH_OPENIMAGEIO=$(usex openimageio) |
218 |
+ -DWITH_OPENMP=$(usex openmp) |
219 |
+ -DWITH_OPENSUBDIV=$(usex opensubdiv) |
220 |
+ -DWITH_OPENVDB=$(usex openvdb) |
221 |
+ -DWITH_OPENVDB_BLOSC=$(usex openvdb) |
222 |
+ -DWITH_PLAYER=$(usex player) |
223 |
+ -DWITH_SDL=$(usex sdl) |
224 |
+ -DWITH_CXX_GUARDEDALLOC=$(usex debug) |
225 |
+ -DWITH_ASSERT_ABORT=$(usex debug) |
226 |
+ -DWITH_GTESTS=$(usex test) |
227 |
+ -DWITH_DOC_MANPAGE=$(usex man) |
228 |
+ -DWITH_MEM_JEMALLOC=$(usex jemalloc) |
229 |
+ -DWITH_MEM_VALGRIND=$(usex valgrind) |
230 |
+ ) |
231 |
+ cmake-utils_src_configure |
232 |
+} |
233 |
+ |
234 |
+src_compile() { |
235 |
+ cmake-utils_src_compile |
236 |
+ |
237 |
+ if use doc; then |
238 |
+ # Workaround for binary drivers. |
239 |
+ addpredict /dev/ati |
240 |
+ addpredict /dev/dri |
241 |
+ addpredict /dev/nvidiactl |
242 |
+ |
243 |
+ einfo "Generating Blender C/C++ API docs ..." |
244 |
+ cd "${CMAKE_USE_DIR}"/doc/doxygen || die |
245 |
+ doxygen -u Doxyfile || die |
246 |
+ doxygen || die "doxygen failed to build API docs." |
247 |
+ |
248 |
+ cd "${CMAKE_USE_DIR}" || die |
249 |
+ einfo "Generating (BPY) Blender Python API docs ..." |
250 |
+ "${BUILD_DIR}"/bin/blender --background --python doc/python_api/sphinx_doc_gen.py -noaudio || die "sphinx failed." |
251 |
+ |
252 |
+ cd "${CMAKE_USE_DIR}"/doc/python_api || die |
253 |
+ sphinx-build sphinx-in BPY_API || die "sphinx failed." |
254 |
+ fi |
255 |
+} |
256 |
+ |
257 |
+src_test() { |
258 |
+ if use test; then |
259 |
+ einfo "Running Blender Unit Tests ..." |
260 |
+ cd "${BUILD_DIR}"/bin/tests || die |
261 |
+ local f |
262 |
+ for f in *_test; do |
263 |
+ ./"${f}" || die |
264 |
+ done |
265 |
+ fi |
266 |
+} |
267 |
+ |
268 |
+src_install() { |
269 |
+ # Pax mark blender for hardened support. |
270 |
+ pax-mark m "${CMAKE_BUILD_DIR}"/bin/blender |
271 |
+ |
272 |
+ if use doc; then |
273 |
+ docinto "html/API/python" |
274 |
+ dodoc -r "${CMAKE_USE_DIR}"/doc/python_api/BPY_API/. |
275 |
+ |
276 |
+ docinto "html/API/blender" |
277 |
+ dodoc -r "${CMAKE_USE_DIR}"/doc/doxygen/html/. |
278 |
+ fi |
279 |
+ |
280 |
+ cmake-utils_src_install |
281 |
+ |
282 |
+ # fix doc installdir |
283 |
+ docinto "html" |
284 |
+ dodoc "${CMAKE_USE_DIR}"/release/text/readme.html |
285 |
+ rm -r "${ED%/}"/usr/share/doc/blender || die |
286 |
+ |
287 |
+ python_fix_shebang "${ED%/}/usr/bin/blender-thumbnailer.py" |
288 |
+ python_optimize "${ED%/}/usr/share/blender/${MY_PV}/scripts" |
289 |
+} |
290 |
+ |
291 |
+pkg_preinst() { |
292 |
+ gnome2_icon_savelist |
293 |
+} |
294 |
+ |
295 |
+pkg_postinst() { |
296 |
+ elog |
297 |
+ elog "Blender uses python integration. As such, may have some" |
298 |
+ elog "inherit risks with running unknown python scripts." |
299 |
+ elog |
300 |
+ elog "It is recommended to change your blender temp directory" |
301 |
+ elog "from /tmp to /home/user/tmp or another tmp file under your" |
302 |
+ elog "home directory. This can be done by starting blender, then" |
303 |
+ elog "dragging the main menu down do display all paths." |
304 |
+ elog |
305 |
+ ewarn |
306 |
+ ewarn "This ebuild does not unbundle the massive amount of 3rd party" |
307 |
+ ewarn "libraries which are shipped with blender. Note that" |
308 |
+ ewarn "these have caused security issues in the past." |
309 |
+ ewarn "If you are concerned about security, file a bug upstream:" |
310 |
+ ewarn " https://developer.blender.org/" |
311 |
+ ewarn |
312 |
+ gnome2_icon_cache_update |
313 |
+ xdg_mimeinfo_database_update |
314 |
+} |
315 |
+ |
316 |
+pkg_postrm() { |
317 |
+ gnome2_icon_cache_update |
318 |
+ xdg_mimeinfo_database_update |
319 |
+ |
320 |
+ ewarn "" |
321 |
+ ewarn "You may want to remove the following directory." |
322 |
+ ewarn "~/.config/${PN}/${MY_PV}/cache/" |
323 |
+ ewarn "It may contain extra render kernels not tracked by portage" |
324 |
+ ewarn "" |
325 |
+} |
326 |
|
327 |
diff --git a/media-gfx/blender/files/blender-2.79b-gcc-8.patch b/media-gfx/blender/files/blender-2.79b-gcc-8.patch |
328 |
new file mode 100644 |
329 |
index 00000000000..3a64ad2f796 |
330 |
--- /dev/null |
331 |
+++ b/media-gfx/blender/files/blender-2.79b-gcc-8.patch |
332 |
@@ -0,0 +1,22 @@ |
333 |
+--- blender-2.79b-orig/intern/cycles/util/util_sseb.h 2018-03-24 02:22:25.000000000 +1100 |
334 |
++++ blender-2.79b/intern/cycles/util/util_sseb.h 2018-05-30 20:43:33.888717930 +1000 |
335 |
+@@ -116,7 +116,7 @@ |
336 |
+ __forceinline const sseb unpackhi( const sseb& a, const sseb& b ) { return _mm_unpackhi_ps(a, b); } |
337 |
+ |
338 |
+ template<size_t i0, size_t i1, size_t i2, size_t i3> __forceinline const sseb shuffle( const sseb& a ) { |
339 |
+- return _mm_shuffle_epi32(a, _MM_SHUFFLE(i3, i2, i1, i0)); |
340 |
++ return _mm_castsi128_ps(_mm_shuffle_epi32(a, _MM_SHUFFLE(i3, i2, i1, i0))); |
341 |
+ } |
342 |
+ |
343 |
+ template<> __forceinline const sseb shuffle<0, 1, 0, 1>( const sseb& a ) { |
344 |
+--- blender-2.79b-orig/intern/itasc/kdl/tree.hpp 2018-03-24 02:22:25.000000000 +1100 |
345 |
++++ blender-2.79b/intern/itasc/kdl/tree.hpp 2018-05-30 20:33:52.045179988 +1000 |
346 |
+@@ -34,7 +34,7 @@ |
347 |
+ //Forward declaration |
348 |
+ class TreeElement; |
349 |
+ // Eigen allocator is needed for alignment of Eigen data types |
350 |
+- typedef std::map<std::string,TreeElement, std::less<std::string>, Eigen::aligned_allocator<std::pair<std::string, TreeElement> > > SegmentMap; |
351 |
++ typedef std::map<std::string,TreeElement, std::less<std::string>, Eigen::aligned_allocator<std::pair<const std::string, TreeElement> > > SegmentMap; |
352 |
+ |
353 |
+ class TreeElement |
354 |
+ { |