public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: media-gfx/blender/files/, media-gfx/blender/
Date: Mon, 24 Aug 2020 13:42:37 +0000 (UTC)	[thread overview]
Message-ID: <1598276515.cca9b716491a91b496106a19df4e5f554b6a1717.sam@gentoo> (raw)

commit:     cca9b716491a91b496106a19df4e5f554b6a1717
Author:     Adrian Grigo <agrigo2001 <AT> yahoo <DOT> com <DOT> au>
AuthorDate: Sat Aug 22 01:08:55 2020 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Aug 24 13:41:55 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cca9b716

media-gfx/blender: Version bump to 2.83.4

Blender 2.83.4 works with python 3.7. It may compile with 3.8, but
blender only supports 3.7 officially as it follows the VFX Reference
Platform to ensure that user add ons are not broken in the process.
They plan to introduce 3.8 support in 2021.

New features include a new interface, the realtime eevee renderer,
and importing openvdb files created by other packages among others.
Game engine and Blender Player were removed in 2.80.

Bug fixes in this version are alembic support, upstream fixes for
opencollada, requiring openjpeg:2 to avoid security issues, and
mimeinfo cache is correctly updated. Where these issues remain in
blender 2.79b, the bug is linked but should be closed only when
blender 2.79b is removed.

On my system the docs do not currently compile,
and the polyfill2d test still fails like 2.79b.

Blender 2.83 support for draco, embree, oidn, usd and openxr is not yet
implemented pending development of ebuilds for these packages.

Signed-off-by: Adrian Grigo <agrigo2001 <AT> yahoo.com.au>
Bug: https://bugs.gentoo.org/667352
Bug: https://bugs.gentoo.org/735590
Bug: https://bugs.gentoo.org/718772
Closes: https://bugs.gentoo.org/737388
Closes: https://bugs.gentoo.org/689740
Package-Manager: Portage-2.3.103, Repoman-2.3.23
Signed-off-by: Sam James <sam <AT> gentoo.org>

 media-gfx/blender/Manifest                         |   1 +
 media-gfx/blender/blender-2.83.4.ebuild            | 316 +++++++++++++++++++++
 .../blender/files/blender-fix-install-rules.patch  |  16 --
 media-gfx/blender/metadata.xml                     |  22 ++
 4 files changed, 339 insertions(+), 16 deletions(-)

diff --git a/media-gfx/blender/Manifest b/media-gfx/blender/Manifest
index 2a585f30d14..cbe57e4eec0 100644
--- a/media-gfx/blender/Manifest
+++ b/media-gfx/blender/Manifest
@@ -1 +1,2 @@
 DIST blender-2.79b.tar.gz 50204270 BLAKE2B 78bda294df783ee9bcbcf32f9a112737b2947da5146fd4351b8b36d81c6630ed0ea302b2fb539642cfbdcc4b64df35af5c8545a3bbf50b1cf87dcf3a60eb4ac0 SHA512 2db21ace446168dd683cdb5aad9dec001f8888ae4e9603a04ddb44fb78489ded827deb07e83712b0f1118a0e7bf66f2a5d935dc4ebb3a6703d72672ff414367f
+DIST blender-2.83.4.tar.xz 38528352 BLAKE2B 54596207cbee34fcaa6b81a0d829976b42c28c793b88de81d78c1c3fdfe9dd2a0189a314be281b2a0f1829a0b7fd30d37bceaa28d35c9794dcb0f009fa71e83d SHA512 061735273159742784ed210d13fb39ad076efbbfd5f0291bab1b983699d43b20462dc7e4795e28dab0cd191c9879b43d9ad0f0545c24ef5da23c74679e5ccab5

diff --git a/media-gfx/blender/blender-2.83.4.ebuild b/media-gfx/blender/blender-2.83.4.ebuild
new file mode 100644
index 00000000000..de3ba5896dc
--- /dev/null
+++ b/media-gfx/blender/blender-2.83.4.ebuild
@@ -0,0 +1,316 @@
+# 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-cpp/tbb
+		dev-libs/c-blosc:=
+	)
+	osl? ( media-libs/osl )
+	sdl? ( media-libs/libsdl2[sound,joystick] )
+	sndfile? ( media-libs/libsndfile )
+	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 )
+"
+
+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
+
+	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}
+
+	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 "inherit 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/files/blender-fix-install-rules.patch b/media-gfx/blender/files/blender-fix-install-rules.patch
deleted file mode 100644
index e62aba814b9..00000000000
--- a/media-gfx/blender/files/blender-fix-install-rules.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-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.
--install(
--	CODE
--	"file(REMOVE_RECURSE ${TARGETDIR_VER})"
--)
--
- if(WITH_PYTHON)
- 	# install(CODE "message(\"copying blender scripts...\")")
- 	

diff --git a/media-gfx/blender/metadata.xml b/media-gfx/blender/metadata.xml
index c00fc6daf3f..2432483fedd 100644
--- a/media-gfx/blender/metadata.xml
+++ b/media-gfx/blender/metadata.xml
@@ -14,6 +14,16 @@
 		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>.
+		</flag>
 		<flag name="bullet">
 			Enable Bullet (Physics Engine).
 		</flag>
@@ -70,6 +80,18 @@
 		<flag name="player">
 			Build the Blender Player. THis requires the Game engine.
 		</flag>
+		<flag name="standalone">
+			Build the standalone version of Cycles.
+		</flag>
+		<flag name="system-numpy">
+			Use the system numpy implementation rather than a local copy.
+		</flag>
+		<flag name="system-python">
+			Use the system python implementation rather than a local copy.
+		</flag>
+		<flag name="tbb">
+			Use threading building blocks library from <pkg>dev-cpp/tbb</pkg>.
+		</flag>
 		<flag name="test">
 			Build the provided unit tests.
 		</flag>


             reply	other threads:[~2020-08-24 13:42 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-24 13:42 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-12-01  8:34 [gentoo-commits] repo/gentoo:master commit in: media-gfx/blender/files/, media-gfx/blender/ Sam James
2023-10-27  2:59 Sam James
2023-05-01 15:15 Sam James
2023-02-17  5:29 Sam James
2022-12-20 10:53 Sam James
2022-09-01  2:06 Sam James
2022-02-12  3:55 Sam James
2021-06-10  0:51 Sam James
2020-11-08 10:42 Sam James
2020-08-24 13:42 Sam James
2019-06-06 21:22 Andreas Sturmlechner
2019-03-21 18:12 Michał Górny
2018-08-16 14:15 Jonathan Scruggs
2016-10-22 23:26 David Seifert
2016-09-29 15:12 Michael Palimaka

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1598276515.cca9b716491a91b496106a19df4e5f554b6a1717.sam@gentoo \
    --to=sam@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox