Gentoo Archives: gentoo-commits

From: Sam James <sam@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: media-gfx/blender/
Date: Tue, 06 Oct 2020 02:13:27
Message-Id: 1601950399.389974bf3e4782981a079f008dd2241f7ec6a07f.sam@gentoo
1 commit: 389974bf3e4782981a079f008dd2241f7ec6a07f
2 Author: Adrian Grigo <agrigo2001 <AT> yahoo <DOT> com <DOT> au>
3 AuthorDate: Wed Sep 30 22:46:09 2020 +0000
4 Commit: Sam James <sam <AT> gentoo <DOT> org>
5 CommitDate: Tue Oct 6 02:13:19 2020 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=389974bf
7
8 media-gfx/blender: Version bump to blender 2.90.1
9
10 Update from blender 2.83.4 to 2.90.1
11
12 Only two changes were required from 2.83.4
13
14 Add -DWITH_CYCLES_EMBREE=OFF until Embree has been packaged for Gentoo
15 (thanks to Oleg)
16
17 Rename WITH_X11 to WITH_GHOST_X11 as per upstream
18
19 Signed-off-by: Adrian Grigo <agrigo2001 <AT> yahoo.com.au>
20 Closes: https://bugs.gentoo.org/741126
21 Package-Manager: Portage-3.0.4, Repoman-3.0.1
22 Closes: https://github.com/gentoo/gentoo/pull/17723
23 Signed-off-by: Sam James <sam <AT> gentoo.org>
24
25 media-gfx/blender/Manifest | 1 +
26 media-gfx/blender/blender-2.90.1.ebuild | 319 ++++++++++++++++++++++++++++++++
27 2 files changed, 320 insertions(+)
28
29 diff --git a/media-gfx/blender/Manifest b/media-gfx/blender/Manifest
30 index cbe57e4eec0..6ac6b01289b 100644
31 --- a/media-gfx/blender/Manifest
32 +++ b/media-gfx/blender/Manifest
33 @@ -1,2 +1,3 @@
34 DIST blender-2.79b.tar.gz 50204270 BLAKE2B 78bda294df783ee9bcbcf32f9a112737b2947da5146fd4351b8b36d81c6630ed0ea302b2fb539642cfbdcc4b64df35af5c8545a3bbf50b1cf87dcf3a60eb4ac0 SHA512 2db21ace446168dd683cdb5aad9dec001f8888ae4e9603a04ddb44fb78489ded827deb07e83712b0f1118a0e7bf66f2a5d935dc4ebb3a6703d72672ff414367f
35 DIST blender-2.83.4.tar.xz 38528352 BLAKE2B 54596207cbee34fcaa6b81a0d829976b42c28c793b88de81d78c1c3fdfe9dd2a0189a314be281b2a0f1829a0b7fd30d37bceaa28d35c9794dcb0f009fa71e83d SHA512 061735273159742784ed210d13fb39ad076efbbfd5f0291bab1b983699d43b20462dc7e4795e28dab0cd191c9879b43d9ad0f0545c24ef5da23c74679e5ccab5
36 +DIST blender-2.90.1.tar.xz 38836408 BLAKE2B 42622e742ebd397dc035c85cf26ab72ffee64f2cd46f1523de78dc8861bc19286a7d87b9e31a0d6afdf9a931da7018ccbdb9b4185b8535b4529656c6d85efc34 SHA512 e7d6f8df598f2a2a99f64716331ec4e981a5a49c76b307caf7856480c778455cfc4bbb56fbedc8b22d1e10951ebaeb6844d1ead9476847bf2824dddf5b135992
37
38 diff --git a/media-gfx/blender/blender-2.90.1.ebuild b/media-gfx/blender/blender-2.90.1.ebuild
39 new file mode 100644
40 index 00000000000..4c25969a1ec
41 --- /dev/null
42 +++ b/media-gfx/blender/blender-2.90.1.ebuild
43 @@ -0,0 +1,319 @@
44 +# Copyright 1999-2020 Gentoo Authors
45 +# Distributed under the terms of the GNU General Public License v2
46 +
47 +EAPI=7
48 +
49 +PYTHON_COMPAT=( python3_7 )
50 +
51 +inherit check-reqs cmake flag-o-matic pax-utils python-single-r1 \
52 + toolchain-funcs xdg-utils
53 +
54 +DESCRIPTION="3D Creation/Animation/Publishing System"
55 +HOMEPAGE="https://www.blender.org"
56 +
57 +SRC_URI="https://download.blender.org/source/${P}.tar.xz"
58 +
59 +# Blender can have letters in the version string,
60 +# so strip off the letter if it exists.
61 +MY_PV="$(ver_cut 1-2)"
62 +
63 +SLOT="0"
64 +LICENSE="|| ( GPL-2 BL )"
65 +KEYWORDS="~amd64 ~x86"
66 +IUSE="+bullet +dds +elbeem +openexr +system-python +system-numpy +tbb \
67 + abi6-compat abi7-compat alembic collada color-management cuda cycles \
68 + debug doc ffmpeg fftw headless jack jemalloc jpeg2k llvm \
69 + man ndof nls openal opencl openimageio openmp opensubdiv \
70 + openvdb osl sdl sndfile standalone test tiff valgrind"
71 +RESTRICT="!test? ( test )"
72 +
73 +REQUIRED_USE="${PYTHON_REQUIRED_USE}
74 + alembic? ( openexr )
75 + cuda? ( cycles )
76 + cycles? ( openexr tiff openimageio )
77 + elbeem? ( tbb )
78 + opencl? ( cycles )
79 + openvdb? (
80 + ^^ ( abi6-compat abi7-compat )
81 + tbb
82 + )
83 + osl? ( cycles llvm )
84 + standalone? ( cycles )"
85 +
86 +RDEPEND="${PYTHON_DEPS}
87 + dev-libs/boost:=[nls?,threads(+)]
88 + dev-libs/lzo:2=
89 + $(python_gen_cond_dep '
90 + dev-python/numpy[${PYTHON_USEDEP}]
91 + dev-python/requests[${PYTHON_USEDEP}]
92 + ')
93 + media-libs/freetype:=
94 + media-libs/glew:*
95 + media-libs/libpng:=
96 + media-libs/libsamplerate
97 + sys-libs/zlib:=
98 + virtual/glu
99 + virtual/jpeg
100 + virtual/libintl
101 + virtual/opengl
102 + alembic? ( >=media-gfx/alembic-1.7.12[boost(+),hdf(+)] )
103 + collada? ( >=media-libs/opencollada-1.6.68 )
104 + color-management? ( media-libs/opencolorio )
105 + cuda? ( dev-util/nvidia-cuda-toolkit:= )
106 + ffmpeg? ( media-video/ffmpeg:=[x264,mp3,encode,theora,jpeg2k?] )
107 + fftw? ( sci-libs/fftw:3.0= )
108 + !headless? (
109 + x11-libs/libX11
110 + x11-libs/libXi
111 + x11-libs/libXxf86vm
112 + )
113 + jack? ( virtual/jack )
114 + jemalloc? ( dev-libs/jemalloc:= )
115 + jpeg2k? ( media-libs/openjpeg:2= )
116 + llvm? ( sys-devel/llvm:= )
117 + ndof? (
118 + app-misc/spacenavd
119 + dev-libs/libspnav
120 + )
121 + nls? ( virtual/libiconv )
122 + openal? ( media-libs/openal )
123 + opencl? ( virtual/opencl )
124 + openimageio? ( media-libs/openimageio )
125 + openexr? (
126 + media-libs/ilmbase:=
127 + media-libs/openexr:=
128 + )
129 + opensubdiv? ( >=media-libs/opensubdiv-3.4.0[cuda=,opencl=] )
130 + openvdb? (
131 + ~media-gfx/openvdb-7.0.0[abi6-compat(-)?,abi7-compat(-)?]
132 + dev-libs/c-blosc:=
133 + )
134 + osl? ( media-libs/osl )
135 + sdl? ( media-libs/libsdl2[sound,joystick] )
136 + sndfile? ( media-libs/libsndfile )
137 + tbb? ( dev-cpp/tbb )
138 + tiff? ( media-libs/tiff )
139 + valgrind? ( dev-util/valgrind )
140 +"
141 +
142 +DEPEND="${RDEPEND}
143 + dev-cpp/eigen:=
144 +"
145 +
146 +BDEPEND="
147 + virtual/pkgconfig
148 + doc? (
149 + app-doc/doxygen[dot]
150 + dev-python/sphinx[latex]
151 + dev-texlive/texlive-bibtexextra
152 + dev-texlive/texlive-fontsextra
153 + dev-texlive/texlive-fontutils
154 + dev-texlive/texlive-latex
155 + dev-texlive/texlive-latexextra
156 + )
157 + nls? ( sys-devel/gettext )
158 +"
159 +
160 +blender_check_requirements() {
161 + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
162 +
163 + if use doc; then
164 + CHECKREQS_DISK_BUILD="4G" check-reqs_pkg_pretend
165 + fi
166 +}
167 +
168 +pkg_pretend() {
169 + blender_check_requirements
170 +}
171 +
172 +pkg_setup() {
173 + blender_check_requirements
174 + python-single-r1_pkg_setup
175 +}
176 +
177 +src_prepare() {
178 + cmake_src_prepare
179 +
180 + # we don't want static glew, but it's scattered across
181 + # multiple files that differ from version to version
182 + # !!!CHECK THIS SED ON EVERY VERSION BUMP!!!
183 + local file
184 + while IFS="" read -d $'\0' -r file ; do
185 + sed -i -e '/-DGLEW_STATIC/d' "${file}" || die
186 + done < <(find . -type f -name "CMakeLists.txt")
187 +
188 + # Disable MS Windows help generation. The variable doesn't do what it
189 + # it sounds like.
190 + sed -e "s|GENERATE_HTMLHELP = YES|GENERATE_HTMLHELP = NO|" \
191 + -i doc/doxygen/Doxyfile || die
192 +}
193 +
194 +src_configure() {
195 + # FIX: forcing '-funsigned-char' fixes an anti-aliasing issue with menu
196 + # shadows, see bug #276338 for reference
197 + append-flags -funsigned-char
198 + append-lfs-flags
199 +
200 + if use openvdb; then
201 + local version
202 + if use abi6-compat; then
203 + version=6;
204 + elif use abi7-compat; then
205 + version=7;
206 + else
207 + die "Openvdb abi version not compatible"
208 + fi
209 + append-cppflags -DOPENVDB_ABI_VERSION_NUMBER=${version}
210 + fi
211 +
212 + local mycmakeargs=(
213 + -DBUILD_SHARED_LIBS=OFF
214 + -DPYTHON_INCLUDE_DIR="$(python_get_includedir)"
215 + -DPYTHON_LIBRARY="$(python_get_library_path)"
216 + -DPYTHON_VERSION="${EPYTHON/python/}"
217 + -DWITH_ALEMBIC=$(usex alembic)
218 + -DWITH_ASSERT_ABORT=$(usex debug)
219 + -DWITH_BOOST=ON
220 + -DWITH_BULLET=$(usex bullet)
221 + -DWITH_CODEC_FFMPEG=$(usex ffmpeg)
222 + -DWITH_CODEC_SNDFILE=$(usex sndfile)
223 + -DWITH_CXX_GUARDEDALLOC=$(usex debug)
224 + -DWITH_CYCLES_DEVICE_CUDA=$(usex cuda TRUE FALSE)
225 + -DWITH_CYCLES=$(usex cycles)
226 + -DWITH_CYCLES_DEVICE_OPENCL=$(usex opencl)
227 + -DWITH_CYCLES_EMBREE=OFF
228 + -DWITH_CYCLES_STANDALONE=$(usex standalone)
229 + -DWITH_CYCLES_STANDALONE_GUI=$(usex standalone)
230 + -DWITH_CYCLES_OSL=$(usex osl)
231 + -DWITH_DOC_MANPAGE=$(usex man)
232 + -DWITH_FFTW3=$(usex fftw)
233 + -DWITH_GHOST_X11=$(usex !headless)
234 + -DWITH_GTESTS=$(usex test)
235 + -DWITH_HEADLESS=$(usex headless)
236 + -DWITH_INSTALL_PORTABLE=OFF
237 + -DWITH_IMAGE_DDS=$(usex dds)
238 + -DWITH_IMAGE_OPENEXR=$(usex openexr)
239 + -DWITH_IMAGE_OPENJPEG=$(usex jpeg2k)
240 + -DWITH_IMAGE_TIFF=$(usex tiff)
241 + -DWITH_INPUT_NDOF=$(usex ndof)
242 + -DWITH_INTERNATIONAL=$(usex nls)
243 + -DWITH_JACK=$(usex jack)
244 + -DWITH_LLVM=$(usex llvm)
245 + -DWITH_MEM_JEMALLOC=$(usex jemalloc)
246 + -DWITH_MEM_VALGRIND=$(usex valgrind)
247 + -DWITH_MOD_FLUID=$(usex elbeem)
248 + -DWITH_MOD_OCEANSIM=$(usex fftw)
249 + -DWITH_OPENAL=$(usex openal)
250 + -DWITH_OPENCOLLADA=$(usex collada)
251 + -DWITH_OPENCOLORIO=$(usex color-management)
252 + -DWITH_OPENIMAGEIO=$(usex openimageio)
253 + -DWITH_OPENMP=$(usex openmp)
254 + -DWITH_OPENSUBDIV=$(usex opensubdiv)
255 + -DWITH_OPENVDB=$(usex openvdb)
256 + -DWITH_OPENVDB_BLOSC=$(usex openvdb)
257 + -DWITH_PYTHON_INSTALL=$(usex system-python OFF ON)
258 + -DWITH_PYTHON_INSTALL_NUMPY=$(usex system-numpy OFF ON)
259 + -DWITH_SDL=$(usex sdl)
260 + -DWITH_STATIC_LIBS=OFF
261 + -DWITH_SYSTEM_EIGEN3=ON
262 + -DWITH_SYSTEM_GLEW=ON
263 + -DWITH_SYSTEM_LZO=ON
264 + -DWITH_TBB=$(usex tbb)
265 + )
266 + cmake_src_configure
267 +}
268 +
269 +src_compile() {
270 + cmake_src_compile
271 +
272 + if use doc; then
273 + # Workaround for binary drivers.
274 + addpredict /dev/ati
275 + addpredict /dev/dri
276 + addpredict /dev/nvidiactl
277 +
278 + einfo "Generating Blender C/C++ API docs ..."
279 + cd "${CMAKE_USE_DIR}"/doc/doxygen || die
280 + doxygen -u Doxyfile || die
281 + doxygen || die "doxygen failed to build API docs."
282 +
283 + cd "${CMAKE_USE_DIR}" || die
284 + einfo "Generating (BPY) Blender Python API docs ..."
285 + "${BUILD_DIR}"/bin/blender --background --python doc/python_api/sphinx_doc_gen.py -noaudio || die "sphinx failed."
286 +
287 + cd "${CMAKE_USE_DIR}"/doc/python_api || die
288 + sphinx-build sphinx-in BPY_API || die "sphinx failed."
289 + fi
290 +}
291 +
292 +src_test() {
293 + if use test; then
294 + einfo "Running Blender Unit Tests ..."
295 + cd "${BUILD_DIR}"/bin/tests || die
296 + local f
297 + for f in *_test; do
298 + ./"${f}" || die
299 + done
300 + fi
301 +}
302 +
303 +src_install() {
304 + # Pax mark blender for hardened support.
305 + pax-mark m "${BUILD_DIR}"/bin/blender
306 +
307 + if use standalone; then
308 + dobin "${BUILD_DIR}"/bin/cycles
309 + fi
310 +
311 + if use doc; then
312 + docinto "html/API/python"
313 + dodoc -r "${CMAKE_USE_DIR}"/doc/python_api/BPY_API/.
314 +
315 + docinto "html/API/blender"
316 + dodoc -r "${CMAKE_USE_DIR}"/doc/doxygen/html/.
317 + fi
318 +
319 + cmake_src_install
320 +
321 + # fix doc installdir
322 + docinto "html"
323 + dodoc "${CMAKE_USE_DIR}"/release/text/readme.html
324 + rm -r "${ED}"/usr/share/doc/blender || die
325 +
326 + python_fix_shebang "${ED}/usr/bin/blender-thumbnailer.py"
327 + python_optimize "${ED}/usr/share/blender/${MY_PV}/scripts"
328 +}
329 +
330 +pkg_postinst() {
331 + elog
332 + elog "Blender uses python integration. As such, may have some"
333 + elog "inherent risks with running unknown python scripts."
334 + elog
335 + elog "It is recommended to change your blender temp directory"
336 + elog "from /tmp to /home/user/tmp or another tmp file under your"
337 + elog "home directory. This can be done by starting blender, then"
338 + elog "dragging the main menu down do display all paths."
339 + elog
340 + ewarn
341 + ewarn "This ebuild does not unbundle the massive amount of 3rd party"
342 + ewarn "libraries which are shipped with blender. Note that"
343 + ewarn "these have caused security issues in the past."
344 + ewarn "If you are concerned about security, file a bug upstream:"
345 + ewarn " https://developer.blender.org/"
346 + ewarn
347 + xdg_icon_cache_update
348 + xdg_mimeinfo_database_update
349 + xdg_desktop_database_update
350 +}
351 +
352 +pkg_postrm() {
353 + xdg_icon_cache_update
354 + xdg_mimeinfo_database_update
355 + xdg_desktop_database_update
356 +
357 + ewarn ""
358 + ewarn "You may want to remove the following directory."
359 + ewarn "~/.config/${PN}/${MY_PV}/cache/"
360 + ewarn "It may contain extra render kernels not tracked by portage"
361 + ewarn ""
362 +}