diff options
author | Julian Ospald <hasufell@gentoo.org> | 2014-07-16 15:31:42 +0000 |
---|---|---|
committer | Julian Ospald <hasufell@gentoo.org> | 2014-07-16 15:31:42 +0000 |
commit | df1467fb6ee838904c60d3c255f3e4f2f77c135e (patch) | |
tree | 6e79465ef24c81d66626ccf2bd89b0118cc4930b /media-gfx/blender | |
parent | drop py2.6 pypy2_0 add py3.4 (diff) | |
download | gentoo-2-df1467fb6ee838904c60d3c255f3e4f2f77c135e.tar.gz gentoo-2-df1467fb6ee838904c60d3c255f3e4f2f77c135e.tar.bz2 gentoo-2-df1467fb6ee838904c60d3c255f3e4f2f77c135e.zip |
fix opencolorio dep wrt #515606, fix building with gflags-2.1.1 and adjust dep wrt #517134, add epatch_user
(Portage version: 2.2.10/cvs/Linux x86_64, signed Manifest commit with key BDEED020)
Diffstat (limited to 'media-gfx/blender')
-rw-r--r-- | media-gfx/blender/ChangeLog | 9 | ||||
-rw-r--r-- | media-gfx/blender/blender-2.71-r1.ebuild | 271 | ||||
-rw-r--r-- | media-gfx/blender/files/08-blender-2.71-gflags.patch | 59 |
3 files changed, 338 insertions, 1 deletions
diff --git a/media-gfx/blender/ChangeLog b/media-gfx/blender/ChangeLog index 394956dca4da..61e5dd5dcf59 100644 --- a/media-gfx/blender/ChangeLog +++ b/media-gfx/blender/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for media-gfx/blender # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/media-gfx/blender/ChangeLog,v 1.269 2014/06/28 12:05:30 hasufell Exp $ +# $Header: /var/cvsroot/gentoo-x86/media-gfx/blender/ChangeLog,v 1.270 2014/07/16 15:31:42 hasufell Exp $ + +*blender-2.71-r1 (16 Jul 2014) + + 16 Jul 2014; Julian Ospald <hasufell@gentoo.org> +blender-2.71-r1.ebuild, + +files/08-blender-2.71-gflags.patch: + fix opencolorio dep wrt #515606, fix building with gflags-2.1.1 and adjust + dep wrt #517134, add epatch_user *blender-2.71 (28 Jun 2014) diff --git a/media-gfx/blender/blender-2.71-r1.ebuild b/media-gfx/blender/blender-2.71-r1.ebuild new file mode 100644 index 000000000000..0cfd19146911 --- /dev/null +++ b/media-gfx/blender/blender-2.71-r1.ebuild @@ -0,0 +1,271 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/media-gfx/blender/blender-2.71-r1.ebuild,v 1.1 2014/07/16 15:31:42 hasufell Exp $ + +# TODO: +# bundled-deps: bullet is modified +# multiple python abi? + +EAPI=5 +PYTHON_COMPAT=( python3_4 ) +#PATCHSET="1" + +inherit multilib fdo-mime gnome2-utils cmake-utils eutils python-single-r1 versionator flag-o-matic toolchain-funcs pax-utils check-reqs + +DESCRIPTION="3D Creation/Animation/Publishing System" +HOMEPAGE="http://www.blender.org" + +case ${PV} in + *_p*) + SRC_URI="http://dev.gentoo.org/~lu_zero/${P}.tar.gz" ;; + *) + SRC_URI="http://download.blender.org/source/${P}.tar.gz" ;; +esac + +if [[ -n ${PATCHSET} ]]; then + SRC_URI+=" http://dev.gentoo.org/~flameeyes/${PN}/${P}-patches-${PATCHSET}.tar.xz" +fi + +SLOT="0" +LICENSE="|| ( GPL-2 BL )" +KEYWORDS="~amd64 ~x86" +IUSE="+boost +bullet collada colorio cycles +dds debug doc +elbeem ffmpeg fftw +game-engine jack jpeg2k ndof nls openal openimageio +opennl openmp +openexr player redcode sdl sndfile sse sse2 tiff" +REQUIRED_USE="${PYTHON_REQUIRED_USE} + player? ( game-engine ) + redcode? ( jpeg2k ffmpeg ) + cycles? ( boost openexr tiff ) + nls? ( boost ) + game-engine? ( boost )" + +RDEPEND=" + ${PYTHON_DEPS} + >=dev-cpp/gflags-2.1.1-r1 + >=dev-cpp/glog-0.3.3-r1[gflags] + dev-python/numpy[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] + >=media-libs/freetype-2.0 + media-libs/glew + media-libs/libpng:0 + media-libs/libsamplerate + sci-libs/colamd + sci-libs/ldl + sys-libs/zlib + virtual/glu + virtual/jpeg + virtual/libintl + virtual/opengl + x11-libs/libXi + x11-libs/libX11 + boost? ( >=dev-libs/boost-1.44[nls?,threads(+)] ) + collada? ( media-libs/opencollada ) + colorio? ( <=media-libs/opencolorio-1.0.9 ) + cycles? ( + media-libs/openimageio + ) + ffmpeg? ( + || ( + >=media-video/ffmpeg-2.1.4:0[x264,mp3,encode,theora,jpeg2k?] + >=media-video/libav-9[x264,mp3,encode,theora,jpeg2k?] + ) + ) + fftw? ( sci-libs/fftw:3.0 ) + jack? ( media-sound/jack-audio-connection-kit ) + jpeg2k? ( media-libs/openjpeg:0 ) + ndof? ( + app-misc/spacenavd + dev-libs/libspnav + ) + nls? ( virtual/libiconv ) + openal? ( >=media-libs/openal-1.6.372 ) + openimageio? ( media-libs/openimageio ) + openexr? ( media-libs/openexr ) + sdl? ( media-libs/libsdl[sound,joystick] ) + sndfile? ( media-libs/libsndfile ) + tiff? ( media-libs/tiff:0 )" +DEPEND="${RDEPEND} + >=dev-cpp/eigen-3.1.3:3 + doc? ( + app-doc/doxygen[-nodot(-),dot(+)] + dev-python/sphinx + ) + nls? ( sys-devel/gettext )" + +pkg_pretend() { + if use openmp && ! tc-has-openmp; then + eerror "You are using gcc built without 'openmp' USE." + eerror "Switch CXX to an OpenMP capable compiler." + die "Need openmp" + fi + + if use doc; then + CHECKREQS_DISK_BUILD="4G" check-reqs_pkg_pretend + fi +} + +pkg_setup() { + python-single-r1_pkg_setup +} + +src_prepare() { + epatch "${FILESDIR}"/01-${PN}-2.68-doxyfile.patch \ + "${FILESDIR}"/02-${PN}-2.71-unbundle-colamd.patch \ + "${FILESDIR}"/04-${PN}-2.71-unbundle-glog.patch \ + "${FILESDIR}"/05-${PN}-2.68-unbundle-eigen3.patch \ + "${FILESDIR}"/06-${PN}-2.68-fix-install-rules.patch \ + "${FILESDIR}"/07-${PN}-2.70-sse2.patch \ + "${FILESDIR}"/08-${PN}-2.71-gflags.patch + + epatch_user + + # remove some bundled deps + rm -r \ + extern/Eigen3 \ + extern/libopenjpeg \ + extern/glew \ + extern/colamd \ + extern/libmv/third_party/{glog,gflags} \ + || die + + # we don't want static glew, but it's scattered across + # thousand files + # !!!CHECK THIS SED ON EVERY VERSION BUMP!!! + sed -i \ + -e '/-DGLEW_STATIC/d' \ + $(find . -type f -name "CMakeLists.txt") || die + + ewarn "$(echo "Remaining bundled dependencies:"; + ( find extern -mindepth 1 -maxdepth 1 -type d; find extern/libmv/third_party -mindepth 1 -maxdepth 1 -type d; ) | sed 's|^|- |')" + + # linguas cleanup + local i + if ! use nls; then + rm -r "${S}"/release/datafiles/locale || die + else + if [[ -n "${LINGUAS+x}" ]] ; then + cd "${S}"/release/datafiles/locale/po + for i in *.po ; do + mylang=${i%.po} + has ${mylang} ${LINGUAS} || { rm -r ${i} || die ; } + done + fi + fi +} + +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 + + # WITH_PYTHON_SECURITY + # WITH_PYTHON_SAFETY + local mycmakeargs=( + -DCMAKE_INSTALL_PREFIX=/usr + -DWITH_INSTALL_PORTABLE=OFF + $(cmake-utils_use_with boost BOOST) + $(cmake-utils_use_with cycles CYCLES) + $(cmake-utils_use_with collada OPENCOLLADA) + $(cmake-utils_use_with dds IMAGE_DDS) + $(cmake-utils_use_with elbeem MOD_FLUID) + $(cmake-utils_use_with ffmpeg CODEC_FFMPEG) + $(cmake-utils_use_with fftw FFTW3) + $(cmake-utils_use_with fftw MOD_OCEANSIM) + $(cmake-utils_use_with game-engine GAMEENGINE) + $(cmake-utils_use_with nls INTERNATIONAL) + $(cmake-utils_use_with jack JACK) + $(cmake-utils_use_with jpeg2k IMAGE_OPENJPEG) + $(cmake-utils_use_with openimageio OPENIMAGEIO) + $(cmake-utils_use_with openal OPENAL) + $(cmake-utils_use_with openexr IMAGE_OPENEXR) + $(cmake-utils_use_with openmp OPENMP) + $(cmake-utils_use_with opennl OPENNL) + $(cmake-utils_use_with player PLAYER) + $(cmake-utils_use_with redcode IMAGE_REDCODE) + $(cmake-utils_use_with sdl SDL) + $(cmake-utils_use_with sndfile CODEC_SNDFILE) + $(cmake-utils_use_with sse RAYOPTIMIZATION) + $(cmake-utils_use_with sse2 SSE2) + $(cmake-utils_use_with bullet BULLET) + $(cmake-utils_use_with tiff IMAGE_TIFF) + $(cmake-utils_use_with colorio OPENCOLORIO) + $(cmake-utils_use_with ndof INPUT_NDOF) + -DWITH_PYTHON_INSTALL=OFF + -DWITH_PYTHON_INSTALL_NUMPY=OFF + -DWITH_STATIC_LIBS=OFF + -DWITH_SYSTEM_GLEW=ON + -DWITH_SYSTEM_OPENJPEG=ON + -DWITH_SYSTEM_BULLET=OFF + -DPYTHON_VERSION="${EPYTHON/python/}" + -DPYTHON_LIBRARY="$(python_get_library_path)" + -DPYTHON_INCLUDE_DIR="$(python_get_includedir)" + ) + cmake-utils_src_configure +} + +src_compile() { + cmake-utils_src_compile + + if use doc; then + einfo "Generating Blender C/C++ API docs ..." + cd "${CMAKE_USE_DIR}"/doc/doxygen || die + doxygen -u Doxyfile + 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 "blender failed." + + cd "${CMAKE_USE_DIR}"/doc/python_api || die + sphinx-build sphinx-in BPY_API || die "sphinx failed." + fi +} + +src_test() { :; } + +src_install() { + local i + + # Pax mark blender for hardened support. + pax-mark m "${CMAKE_BUILD_DIR}"/bin/blender + + if use doc; then + docinto "API/python" + dohtml -r "${CMAKE_USE_DIR}"/doc/python_api/BPY_API/* + + docinto "API/blender" + dohtml -r "${CMAKE_USE_DIR}"/doc/doxygen/html/* + fi + + # fucked up cmake will relink binary for no reason + emake -C "${CMAKE_BUILD_DIR}" DESTDIR="${D}" install/fast + + # fix doc installdir + dohtml "${CMAKE_USE_DIR}"/release/text/readme.html + rm -rf "${ED%/}"/usr/share/doc/blender + + python_fix_shebang "${ED%/}"/usr/bin/blender-thumbnailer.py + python_optimize "${ED%/}"/usr/share/blender/${PV}/scripts +} + +pkg_preinst() { + gnome2_icon_savelist +} + +pkg_postinst() { + elog + elog "Blender uses python integration. As such, may have some" + elog "inherit risks with running unknown python scripting." + 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 + gnome2_icon_cache_update + fdo-mime_desktop_database_update +} + +pkg_postrm() { + gnome2_icon_cache_update + fdo-mime_desktop_database_update +} diff --git a/media-gfx/blender/files/08-blender-2.71-gflags.patch b/media-gfx/blender/files/08-blender-2.71-gflags.patch new file mode 100644 index 000000000000..9718398ef03d --- /dev/null +++ b/media-gfx/blender/files/08-blender-2.71-gflags.patch @@ -0,0 +1,59 @@ +--- ./CMakeLists.txt 2014-07-15 17:30:36.608718963 -0400 ++++ ./CMakeLists.txt 2014-07-15 17:25:24.940615350 -0400 +@@ -116,6 +116,7 @@ + # Check for some modules + if(UNIX) + find_package(PkgConfig) ++ find_package(gflags REQUIRED) + pkg_check_modules(_PC_EIGEN3 eigen3) + pkg_check_modules(_PC_GFLAGS libgflags) + pkg_check_modules(_PC_GLOG libglog) +--- extern/libmv/CMakeLists.txt 2014-07-15 17:30:36.565719500 -0400 ++++ extern/libmv/CMakeLists.txt 2014-07-15 17:25:06.388847279 -0400 +@@ -208,7 +208,7 @@ + + include_directories(${_PC_GFLAGS_INCLUDE_DIRS} ${_PC_GLOG_INCLUDE_DIRS}) + blender_add_lib(extern_libmv "${SRC}" "${INC}" "${INC_SYS}") +-target_link_libraries(extern_libmv ${_PC_GFLAGS_LIBRARIES} ${_PC_GLOG_LIBRARIES}) ++target_link_libraries(extern_libmv ${gflags_LIBRARIES} ${_PC_GLOG_LIBRARIES}) + + + if(WITH_LIBMV) +--- extern/libmv/libmv-capi.cc 2014-06-25 16:43:52.000000000 -0400 ++++ extern/libmv/libmv-capi.cc 2014-07-15 09:29:04.332922116 -0400 +@@ -112,18 +112,18 @@ + google::GLOG_FATAL); + + google::InitGoogleLogging(argv0); +- google::SetCommandLineOption("logtostderr", "1"); +- google::SetCommandLineOption("v", "0"); +- google::SetCommandLineOption("stderrthreshold", severity_fatal); +- google::SetCommandLineOption("minloglevel", severity_fatal); ++ gflags::SetCommandLineOption("logtostderr", "1"); ++ gflags::SetCommandLineOption("v", "0"); ++ gflags::SetCommandLineOption("stderrthreshold", severity_fatal); ++ gflags::SetCommandLineOption("minloglevel", severity_fatal); + } + + void libmv_startDebugLogging(void) + { +- google::SetCommandLineOption("logtostderr", "1"); +- google::SetCommandLineOption("v", "2"); +- google::SetCommandLineOption("stderrthreshold", "1"); +- google::SetCommandLineOption("minloglevel", "0"); ++ gflags::SetCommandLineOption("logtostderr", "1"); ++ gflags::SetCommandLineOption("v", "2"); ++ gflags::SetCommandLineOption("stderrthreshold", "1"); ++ gflags::SetCommandLineOption("minloglevel", "0"); + } + + void libmv_setLoggingVerbosity(int verbosity) +@@ -131,7 +131,7 @@ + char val[10]; + snprintf(val, sizeof(val), "%d", verbosity); + +- google::SetCommandLineOption("v", val); ++ gflags::SetCommandLineOption("v", val); + } + + /* ************ Planar tracker ************ */ |