summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthoine Bourgeois <anthoine.bourgeois@gmail.com>2011-11-10 00:16:10 +0100
committerAnthoine Bourgeois <anthoine.bourgeois@gmail.com>2011-11-10 00:16:10 +0100
commit620595ca64a58d837ca31756e615f5892d7237e4 (patch)
tree524cf1583fe068d6466d9b4b4732bb8b9353aea8
parent+libspnav-0.2.2.ebuild (diff)
downloadaluco-620595ca64a58d837ca31756e615f5892d7237e4.tar.gz
aluco-620595ca64a58d837ca31756e615f5892d7237e4.tar.bz2
aluco-620595ca64a58d837ca31756e615f5892d7237e4.zip
+blender-2.60a.ebuild
-rw-r--r--media-gfx/blender/Manifest12
-rw-r--r--media-gfx/blender/blender-2.60a.ebuild437
-rw-r--r--media-gfx/blender/files/blender-2.60-bmake.patch15
-rw-r--r--media-gfx/blender/files/blender-2.60-doxyfile.patch11
-rw-r--r--media-gfx/blender/files/blender-2.60-eigen.patch34
-rw-r--r--media-gfx/blender/files/blender-2.60-glew.patch25
-rw-r--r--media-gfx/blender/files/blender-2.60-openjpeg.patch25
-rw-r--r--media-gfx/blender/files/blender-2.60a-CVE-2009-3850-v3.patch149
-rw-r--r--media-gfx/blender/files/blender-2.60a-enable_site_module.patch32
-rw-r--r--media-gfx/blender/files/blender-2.60a-linux-3.patch12
-rw-r--r--media-gfx/blender/files/blender-desktop.patch20
-rw-r--r--media-gfx/blender/metadata.xml64
12 files changed, 836 insertions, 0 deletions
diff --git a/media-gfx/blender/Manifest b/media-gfx/blender/Manifest
new file mode 100644
index 0000000..e355973
--- /dev/null
+++ b/media-gfx/blender/Manifest
@@ -0,0 +1,12 @@
+AUX blender-2.60-bmake.patch 424 RMD160 0520e3f4a9a02be1b679d38934c2358a6f1c1fa2 SHA1 347a95208976878c56ebcd42f3484c95eca4c0fe SHA256 f69ecf7cd54ba9099408568f436e65b18e4d55f15ac1c07054cbd7c8d18c24bf
+AUX blender-2.60-doxyfile.patch 595 RMD160 f4890f0ead6943f323bc61e7f6766c2133e8591b SHA1 0fd7c202f044224cf9944596cf36cfcd56b39067 SHA256 d267e0fab4ecb9be78b9238a9c2af60ac9d5ddb7b42f73f479b9266704605883
+AUX blender-2.60-eigen.patch 1385 RMD160 4e4d33d24271a086da5276695aecc37c8db8109f SHA1 b4b7e5a052205ecad30168a31922744afeae77d3 SHA256 a41254f2eb6714a52f40b93d983d5c92e6d8eaf539bfe72d3db29920e2981e2a
+AUX blender-2.60-glew.patch 510 RMD160 5acd32d387f7b585580d2be44f3a7b58cf362e70 SHA1 c525aabb72e272a292f620357e461db38ed881c3 SHA256 458ecba567df1798ad6d6bc0f078aec89ae726bf1e6a36c09feaa0860f5d89cd
+AUX blender-2.60-openjpeg.patch 1045 RMD160 fe697855f8f0b0b47bb1787f24031210debad27a SHA1 cff1e90dff3e51f54fd343b7aed15edaf9f35175 SHA256 2f983642724487aefd2578fd955ff3a464d2b83005ee7cf6ae67488230fc25f0
+AUX blender-2.60a-CVE-2009-3850-v3.patch 7787 RMD160 02afc6ef3bcdf314c693c44be0cfc649ffd4ebf3 SHA1 031b42d09021b027dde631f08bc8e973299edab9 SHA256 1aebbdd475ccdb1d4e77c4c1ae4c3205e76a1a06f7dcd5e70624c141f42d204b
+AUX blender-2.60a-enable_site_module.patch 974 RMD160 e93ddcd1372751951b6e56f72c764e2043747574 SHA1 84aed7ab30f5de1989ee63b4584db7acd6747b54 SHA256 dfafc00a08504c0c3259083d01e535e00f9a952db4a551dbacf0a62ad1a5c768
+AUX blender-2.60a-linux-3.patch 414 RMD160 cb1cfc00e363e00c67a3c6d3567768418be78f39 SHA1 71f4701aa2e88de35843661cf5eecfe411ccd99b SHA256 4f1f8960e1b5706b426e272c17b70682b1eaa5903fa325e4d4db21efd540d732
+AUX blender-desktop.patch 641 RMD160 af973d38300270e20eb76331da26e619b1d8d73f SHA1 aae3b7dc1ab89e40a6269c4a9593f0f064010eb8 SHA256 fe7e11d4793fce2b2ec4559fbeba05fe395d4b728764e8cc66e6881e7444d7fb
+DIST blender-2.60a.tar.gz 25679123 RMD160 74434c4e748872322386971cf6021255b0bfa1c8 SHA1 f23551e6ed661626c61de4a758d9ff67e0f27529 SHA256 7d788599ab46dac37f630dec026d06f7e3d73508f243eeb4ade8bcdcb661f124
+EBUILD blender-2.60a.ebuild 13275 RMD160 0460bd678a3e92c4112594934d6f5010528faef6 SHA1 68b05bcd957d260a8decc077891af1d987837032 SHA256 b47c665b0ed49fe259ab77b6d2d7c53d3dc02d44342177533b292256f82de9eb
+MISC metadata.xml 1953 RMD160 d34820d0ff77c323156115939aa16575c4d08130 SHA1 220ede2f65489b3ce59c8b79a714b4984d91f5b2 SHA256 6189d779179d2c30e4f99b91fcc09f7cf4e09d41b80312c33455df7ce24eee73
diff --git a/media-gfx/blender/blender-2.60a.ebuild b/media-gfx/blender/blender-2.60a.ebuild
new file mode 100644
index 0000000..b335d87
--- /dev/null
+++ b/media-gfx/blender/blender-2.60a.ebuild
@@ -0,0 +1,437 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+PYTHON_DEPEND="3:3.2"
+EAPI=4
+
+if [[ ${PV} == *9999 ]] ; then
+SCM="subversion"
+ESVN_REPO_URI="https://svn.blender.org/svnroot/bf-blender/trunk/blender"
+fi
+
+inherit scons-utils eutils python versionator flag-o-matic toolchain-funcs ${SCM}
+
+IUSE="+game-engine player +elbeem +openexr ffmpeg jpeg2k openal openmp \
+ +dds debug fftw jack apidoc sndfile lcms tweak-mode sdl sse \
+ redcode +zlib iconv contrib collada verse 3dmouse"
+
+LANGS="en ar bg ca cs de el es fi fr hr it ja ko nl pl pt_BR ro ru sr sv uk zh_CN"
+for X in ${LANGS} ; do
+ IUSE="${IUSE} linguas_${X}"
+done
+
+DESCRIPTION="3D Creation/Animation/Publishing System"
+HOMEPAGE="http://www.blender.org"
+if [[ ${PV} == *9999 ]] ; then
+ SRC_URI=""
+elif [[ ${PV%_p*} != ${PV} ]] ; then # Gentoo snapshot
+ SRC_URI="mirror://gentoo/${P}.tar.xz"
+else # Official release
+ SRC_URI="http://download.blender.org/source/${P}.tar.gz"
+fi
+
+#SLOT="$(get_version_component_range 1-2)"
+SLOT="2.60"
+LICENSE="|| ( GPL-2 BL )"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="virtual/jpeg
+ media-libs/libpng
+ x11-libs/libXi
+ x11-libs/libX11
+ media-libs/tiff
+ media-libs/libsamplerate
+ virtual/opengl
+ >=media-libs/freetype-2.0
+ virtual/libintl
+ media-libs/glew
+ dev-cpp/eigen:2
+ >=sci-physics/bullet-2.76
+ iconv? ( virtual/libiconv )
+ zlib? ( sys-libs/zlib )
+ sdl? ( media-libs/libsdl[audio,joystick] )
+ openexr? ( media-libs/openexr )
+ ffmpeg? (
+ >=virtual/ffmpeg-0.6.90[x264,mp3,encode,theora]
+ )
+ jpeg2k? ( media-libs/openjpeg )
+ openal? ( >=media-libs/openal-1.6.372 )
+ fftw? ( sci-libs/fftw:3.0 )
+ jack? ( media-sound/jack-audio-connection-kit )
+ sndfile? ( media-libs/libsndfile )
+ lcms? ( media-libs/lcms )
+ collada? ( media-libs/opencollada )
+ 3dmouse? ( app-misc/libspnav )"
+
+DEPEND=">=dev-util/scons-0.98
+ apidoc? (
+ dev-python/sphinx
+ >=app-doc/doxygen-1.5.7[-nodot]
+ )
+ x11-base/xorg-server
+ ${RDEPEND}"
+
+# configure internationalization only if LINGUAS have more
+# languages than 'en', otherwise must be disabled
+if [[ ${LINGUAS} != "en" && -n ${LINGUAS} ]]; then
+ DEPEND="${DEPEND}
+ sys-devel/gettext"
+fi
+
+blend_with() {
+ local UWORD="$2"
+ [ -z "${UWORD}" ] && UWORD="$1"
+ if use $1; then
+ echo "WITH_BF_${UWORD}=1" | tr '[:lower:]' '[:upper:]' \
+ >> "${S}"/user-config.py
+ else
+ echo "WITH_BF_${UWORD}=0" | tr '[:lower:]' '[:upper:]' \
+ >> "${S}"/user-config.py
+ fi
+}
+
+src_unpack() {
+if [[ ${PV} == *9999 ]] ; then
+ subversion_fetch
+ if use contrib; then
+ S="${S}"/release/scripts/addons_contrib subversion_fetch \
+ "https://svn.blender.org/svnroot/bf-extensions/contrib/py/scripts/addons/"
+ fi
+else
+ unpack ${A}
+fi
+}
+
+pkg_setup() {
+ enable_openmp=0
+ if use openmp; then
+ if tc-has-openmp; then
+ enable_openmp=1
+ else
+ ewarn "You are using gcc built without 'openmp' USE."
+ ewarn "Switch CXX to an OpenMP capable compiler."
+ die "Need openmp"
+ fi
+ fi
+ python_set_active_version 3
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-desktop.patch
+ epatch "${FILESDIR}"/${PN}-${SLOT}-doxyfile.patch
+
+ # TODO: write a proper Makefile to replace the borked bmake script
+ epatch "${FILESDIR}"/${PN}-${SLOT}-bmake.patch
+
+ # OpenJPEG
+ einfo "Removing bundled OpenJPEG ..."
+ rm -r extern/libopenjpeg
+ #epatch "${FILESDIR}"/${PN}-${SLOT}-openjpeg.patch
+
+ # Glew
+ einfo "Removing bundled Glew ..."
+ rm -r extern/glew
+ epatch "${FILESDIR}"/${PN}-${SLOT}-glew.patch
+
+ # Eigen2
+ einfo "Removing bundled Eigen2 ..."
+ rm -r extern/Eigen2
+ epatch "${FILESDIR}"/${PN}-${SLOT}-eigen.patch
+
+ # Linux 3.x (bug #381099)
+ epatch "${FILESDIR}"/${P}-linux-3.patch
+
+# epatch "${FILESDIR}"/${P}-libav-0.7.patch
+ epatch "${FILESDIR}"/${P}-CVE-2009-3850-v3.patch
+ epatch "${FILESDIR}"/${P}-enable_site_module.patch
+
+}
+
+src_configure() {
+ # add system openjpeg into Scons build options.
+ cat <<- EOF >> "${S}"/user-config.py
+ BF_OPENJPEG="/usr"
+ BF_OPENJPEG_INC="/usr/include"
+ BF_OPENJPEG_LIB="openjpeg"
+ EOF
+
+ # FIX: littlecms includes path aren't specified
+ if use lcms; then
+ cat <<- EOF >> "${S}"/user-config.py
+ BF_LCMS_INC="/usr/include/"
+ BF_LCMS_LIB="lcms"
+ BF_LCMS_LIBPATH="/usr/lib/"
+ EOF
+ fi
+
+ # add system sci-physic/bullet into Scons build options.
+# cat <<- EOF >> "${S}"/user-config.py
+# WITH_BF_BULLET=1
+# BF_BULLET="/usr/include"
+# BF_BULLET_INC="/usr/include /usr/include/BulletCollision /usr/include/BulletDynamics /usr/include/LinearMath /usr/include/BulletSoftBody"
+# BF_BULLET_LIB="BulletSoftBody BulletDynamics BulletCollision LinearMath"
+# EOF
+
+ #add iconv into Scons build options.
+ if use !elibc_glibc && use !elibc_uclibc && use iconv; then
+ cat <<- EOF >> "${S}"/user-config.py
+ WITH_BF_ICONV=1
+ BF_ICONV="/usr"
+ EOF
+ fi
+
+ # configure internationalization only if LINGUAS have more
+ # languages than 'en', otherwise must be disabled
+ [[ -z ${LINGUAS} ]] || [[ ${LINGUAS} == "en" ]] && echo "WITH_BF_INTERNATIONAL=0" >> "${S}"/user-config.py
+
+ # configure Elbeem fluid system
+ use elbeem || echo "BF_NO_ELBEEM=1" >> "${S}"/user-config.py
+
+ # configure Tweak Mode
+ use tweak-mode && echo "BF_TWEAK_MODE=1" >> "${S}"/user-config.py
+
+ # FIX: Game Engine module needs to be active to build the Blender Player
+ if ! use game-engine && use player; then
+ elog "Forcing Game Engine [+game-engine] as required by Blender Player [+player]"
+ echo "WITH_BF_GAMEENGINE=1" >> "${S}"/user-config.py
+ else
+ blend_with game-engine gameengine
+ fi
+
+ # set CFLAGS used in /etc/make.conf correctly
+ echo "CFLAGS=[`for i in ${CFLAGS[@]}; do printf "%s \'$i"\',; done`] " \
+ | sed -e "s:,]: ]:" >> "${S}"/user-config.py
+
+ # set CXXFLAGS used in /etc/make.conf correctly
+ local FILTERED_CXXFLAGS="`for i in ${CXXFLAGS[@]}; do printf "%s \'$i"\',; done`"
+ echo "CXXFLAGS=[${FILTERED_CXXFLAGS}]" | sed -e "s:,]: ]:" >> "${S}"/user-config.py
+ echo "BGE_CXXFLAGS=[${FILTERED_CXXFLAGS}]" | sed -e "s:,]: ]:" >> "${S}"/user-config.py
+
+ # reset general options passed to the C/C++ compilers (useless hardcoded flags)
+ # FIX: forcing '-funsigned-char' fixes an anti-aliasing issue with menu
+ # shadows, see bug #276338 for reference
+ echo "CCFLAGS= ['-funsigned-char', '-D_LARGEFILE_SOURCE', '-D_FILE_OFFSET_BITS=64']" >> "${S}"/user-config.py
+
+ # set LDFLAGS used in /etc/make.conf correctly
+ local FILTERED_LDFLAGS="`for i in ${LDFLAGS[@]}; do printf "%s \'$i"\',; done`"
+ echo "LINKFLAGS=[${FILTERED_LDFLAGS}]" | sed -e "s:,]: ]:" >> "${S}"/user-config.py
+ echo "PLATFORM_LINKFLAGS=[${FILTERED_LDFLAGS}]" | sed -e "s:,]: ]:" >> "${S}"/user-config.py
+
+ # reset REL_* variables (useless hardcoded flags)
+ cat <<- EOF >> "${S}"/user-config.py
+ REL_CFLAGS=[]
+ REL_CXXFLAGS=[]
+ REL_CCFLAGS=[]
+ EOF
+
+ # reset warning flags (useless for NON blender developers)
+ cat <<- EOF >> "${S}"/user-config.py
+ C_WARN =[ '-w', '-g0' ]
+ CC_WARN =[ '-w', '-g0' ]
+ CXX_WARN=[ '-w', '-g0' ]
+ EOF
+
+ # detecting -j value from MAKEOPTS
+ local NUMJOBS="$( echo "${MAKEOPTS}" | sed -ne 's,.*-j\([[:digit:]]\+\).*,\1,p' )"
+ [[ -z "${NUMJOBS}" ]] && NUMJOBS=1 # resetting to -j1 for empty MAKEOPTS
+
+ # generic settings which differ from the defaults from linux2-config.py
+ cat <<- EOF >> "${S}"/user-config.py
+ BF_OPENGL_LIB='GL GLU X11 Xi GLEW'
+ BF_INSTALLDIR="../install"
+ WITH_PYTHON_SECURITY=1
+ WITHOUT_BF_PYTHON_INSTALL=1
+ BF_PYTHON="/usr"
+ BF_PYTHON_VERSION="3.2"
+ BF_PYTHON_ABI_FLAGS=""
+ BF_BUILDINFO=0
+ BF_QUIET=1
+ BF_NUMJOBS=${NUMJOBS}
+ BF_LINE_OVERWRITE=0
+ WITH_BF_FHS=1
+ WITH_BF_BINRELOC=0
+ WITH_BF_STATICOPENGL=0
+ WITH_BF_OPENMP=${enable_openmp}
+ EOF
+
+ # configure WITH_BF* Scons build options
+ for arg in \
+ 'sdl' \
+ 'apidoc docs' \
+ 'lcms' \
+ 'jack' \
+ 'sndfile' \
+ 'openexr' \
+ 'dds' \
+ 'fftw fftw3' \
+ 'jpeg2k openjpeg' \
+ 'openal'\
+ 'ffmpeg' \
+ 'ffmpeg ogg' \
+ 'player' \
+ 'collada' \
+ 'sse rayoptimization' \
+ 'redcode' \
+ 'zlib' \
+ 'verse' \
+ '3dmouse' ; do
+ blend_with ${arg}
+ done
+
+ # enable debugging/testing support
+ use debug && echo "BF_DEBUG=1" >> "${S}"/user-config.py
+ use test && echo "BF_UNIT_TEST=1" >> "${S}"/user-config.py
+}
+
+src_compile() {
+ escons || die \
+ '!!! Please add "${S}/scons.config" when filing bugs reports \
+ to bugs.gentoo.org'
+
+ einfo "Building plugins ..."
+ cd "${WORKDIR}"/${P}/release/plugins \
+ || die "dir ${WORKDIR}/${P}/release/plugins do not exist"
+ chmod 755 bmake
+
+ # FIX: plugins are built without respecting user's LDFLAGS
+ emake \
+ CFLAGS="${CFLAGS} -fPIC" \
+ LDFLAGS="$(raw-ldflags) -Bshareable" \
+ > /dev/null \
+ || die "plugins compilation failed"
+}
+
+src_install() {
+ # creating binary wrapper
+ cat <<- EOF >> "${WORKDIR}/install/blender-${SLOT}"
+ #!/bin/sh
+
+ # stop this script if the local blender path is a symlink
+ if [ -L \${HOME}/.blender ]; then
+ echo "Detected a symbolic link for \${HOME}/.blender"
+ echo "Sorry, to avoid dangerous situations, the Blender binary can"
+ echo "not be started until you have removed the symbolic link:"
+ echo " # rm -i \${HOME}/.blender"
+ exit 1
+ fi
+
+ export BLENDER_SYSTEM_SCRIPTS="/usr/share/blender/${SLOT}/scripts"
+ export BLENDER_SYSTEM_DATAFILES="/usr/share/blender/${SLOT}/datafiles"
+ exec /usr/bin/blender-bin-${SLOT} \$*
+ EOF
+
+ # install binaries
+ exeinto /usr/bin/
+ cp "${WORKDIR}/install/blender" "${WORKDIR}/install/blender-bin-${SLOT}"
+ doexe "${WORKDIR}/install/blender-bin-${SLOT}"
+ doexe "${WORKDIR}/install/blender-${SLOT}"
+ if use player; then
+ cp "${WORKDIR}/install/blenderplayer" \
+ "${WORKDIR}/install/blenderplayer-${SLOT}"
+ doexe "${WORKDIR}/install/blenderplayer-${SLOT}"
+ fi
+ if use verse; then
+ cp "${WORKDIR}"/install/bin/verse_server \
+ "${WORKDIR}/install/bin/verse_server-${SLOT}"
+ doexe "${WORKDIR}"/install/bin/verse_server-${SLOT}
+ fi
+
+ # install plugins
+ exeinto /usr/share/${PN}/${SLOT}/textures
+ doexe "${WORKDIR}"/${P}/release/plugins/texture/*.so
+ exeinto /usr/share/${PN}/${SLOT}/sequences
+ doexe "${WORKDIR}"/${P}/release/plugins/sequence/*.so
+ insinto /usr/include/${PN}/${SLOT}
+ doins "${WORKDIR}"/${P}/release/plugins/include/*.h
+# rm -r "${WORKDIR}"/${P}/release/plugins || die
+
+ # install desktop file
+ insinto /usr/share/pixmaps
+ cp release/freedesktop/icons/scalable/apps/blender.svg \
+ release/freedesktop/icons/scalable/apps/blender-${SLOT}.svg
+ doins release/freedesktop/icons/scalable/apps/blender-${SLOT}.svg
+ insinto /usr/share/applications
+ cp release/freedesktop/blender.desktop \
+ release/freedesktop/blender-${SLOT}.desktop
+ doins release/freedesktop/blender-${SLOT}.desktop || die
+ newins "${FILESDIR}"/${P}-insecure.desktop ${PN}-${SLOT}-insecure.desktop || die
+
+ # install docs
+# use doc && dodoc release/text/BlenderQuickStart.pdf
+ if use apidoc; then
+
+ einfo "Generating (BGE) Blender Game Engine API docs ..."
+ docinto "API/BGE_API"
+ dohtml -r "${WORKDIR}"/${P}/doc/*
+# rm -r "${WORKDIR}"/blender/doc
+
+# einfo "Generating (BPY) Blender Python API docs ..."
+# epydoc source/blender/python/doc/*.py -v \
+# -o doc/BPY_API \
+# --quiet --quiet --quiet \
+# --simple-term \
+# --inheritance=included \
+# --graph=all \
+# --dotpath /usr/bin/dot \
+# || die "epydoc failed."
+# docinto "API/python"
+# dohtml -r doc/BPY_API/*
+
+ einfo "Generating Blender C/C++ API docs ..."
+ pushd "${WORKDIR}"/${P}/doc/doxygen > /dev/null
+ doxygen -u Doxyfile
+ doxygen || die "doxygen failed to build API docs."
+ docinto "API/blender"
+ dohtml -r html/*
+ popd > /dev/null
+ fi
+
+ # final cleanup
+ rm -r "${WORKDIR}"/install/{Python-license.txt,icons,GPL-license.txt,copyright.txt}
+
+ # installing blender
+ insinto /usr/share/${PN}/${SLOT}
+ doins -r "${WORKDIR}"/install/${PV}/*
+# doins -r "${WORKDIR}"/install/${SLOT}/*
+
+ # FIX: making all python scripts readable only by group 'users',
+ # so nobody can modify scripts apart root user, but python
+ # cache (*.pyc) can be written and shared across the users.
+ chown root:users -R "${D}/usr/share/${PN}/${SLOT}/scripts" || die
+ chmod 755 -R "${D}/usr/share/${PN}/${SLOT}/scripts" || die
+}
+
+pkg_preinst() {
+ if [ -h "${ROOT}/usr/$(get_libdir)/blender/plugins/include" ];
+ then
+ rm -r "${ROOT}"/usr/$(get_libdir)/blender/plugins/include
+ fi
+}
+
+pkg_postinst() {
+ echo
+ 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
+ elog "Blender has its own internal rendering engine but you"
+ elog "can export to external renderers for image computation"
+ elog "like: YafRay[1], sunflow[2], PovRay[3] and luxrender[4]"
+ elog
+ elog "If you need one of them just emerge it:"
+ elog " [1] emerge -av media-gfx/yafray"
+ elog " [2] emerge -av media-gfx/sunflow"
+ elog " [3] emerge -av media-gfx/povray"
+ elog " [4] emerge -av media-gfx/luxrender"
+ elog
+ elog "When setting the Blender paths with the User Preferences"
+ elog "dialog box, remember to NOT declare your home's paths as:"
+ elog "~/.blender, but as: /home/user/.blender; in other words,"
+ elog "DO NOT USE the tilde inside the paths, as Blender is not"
+ elog "able to handle it, ignoring your customizations."
+}
diff --git a/media-gfx/blender/files/blender-2.60-bmake.patch b/media-gfx/blender/files/blender-2.60-bmake.patch
new file mode 100644
index 0000000..0fff6d8
--- /dev/null
+++ b/media-gfx/blender/files/blender-2.60-bmake.patch
@@ -0,0 +1,15 @@
+--- release/plugins/bmake 2010-03-21 17:44:20.500741049 +0100
++++ release/plugins/bmake 2010-03-21 17:44:33.659740173 +0100
+@@ -57,10 +57,10 @@
+ LDFLAGS="-Bshareable";
+ elif ( test $UNAME = "Linux" ) then
+ CC="gcc";
+- CFLAGS="-fPIC -funsigned-char -O2";
++# CFLAGS="-fPIC -funsigned-char -O2";
+
+ LD="ld";
+- LDFLAGS="-Bshareable";
++# LDFLAGS="-Bshareable";
+ elif ( test $UNAME = "SunOS" ) then
+ CC="cc";
+ CFLAGS="-O";
diff --git a/media-gfx/blender/files/blender-2.60-doxyfile.patch b/media-gfx/blender/files/blender-2.60-doxyfile.patch
new file mode 100644
index 0000000..aa61c55
--- /dev/null
+++ b/media-gfx/blender/files/blender-2.60-doxyfile.patch
@@ -0,0 +1,11 @@
+--- blender-2.58a/doc/doxygen/Doxyfile 2011-07-11 23:27:33.975642545 -0300
++++ blender-2.58a/doc/doxygen/Doxyfile 2011-07-11 23:28:54.913642574 -0300
+@@ -42,7 +42,7 @@
+ # exceed 55 pixels and the maximum width should not exceed 200 pixels.
+ # Doxygen will copy the logo to the output directory.
+
+-PROJECT_LOGO = ../../release/freedesktop/icons/48x48/blender.png
++PROJECT_LOGO = ../../release/freedesktop/icons/48x48/apps/blender.png
+
+ # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
+ # base path where the generated documentation will be put.
diff --git a/media-gfx/blender/files/blender-2.60-eigen.patch b/media-gfx/blender/files/blender-2.60-eigen.patch
new file mode 100644
index 0000000..1d0ce94
--- /dev/null
+++ b/media-gfx/blender/files/blender-2.60-eigen.patch
@@ -0,0 +1,34 @@
+--- intern/itasc/SConscript 2009-09-26 09:14:02.000000000 +0200
++++ intern/itasc/SConscript 2009-09-26 09:14:54.000000000 +0200
+@@ -5,7 +5,8 @@
+ sources += env.Glob('kdl/*.cpp')
+ sources += env.Glob('kdl/utilities/*.cpp')
+
+-incs = '. ../../extern/Eigen2'
++#incs = '. ../../extern/Eigen2'
++incs = '. /usr/include/eigen2'
+
+ env.BlenderLib ('bf_intern_itasc', sources, Split(incs), [], libtype=['intern','player'], priority=[20,100] )
+
+--- source/blender/ikplugin/SConscript
++++ source/blender/ikplugin/SConscript
+@@ -4,6 +4,6 @@
+ sources = env.Glob('intern/*.c') + env.Glob('intern/*.cpp')
+
+ incs = '#/intern/guardedalloc #/intern/iksolver/extern ../makesdna ../blenlib'
+-incs += ' ../blenkernel ../include ../ikplugin #/intern/itasc #/extern/Eigen2'
++incs += ' ../blenkernel ../include ../ikplugin #/intern/itasc /usr/include/eigen2'
+
+ env.BlenderLib ( 'bf_ikplugin', sources, Split(incs), [], libtype=['core','player'], priority=[180, 190] )
+--- source/gameengine/Converter/SConscript 2009-09-26 09:14:02.000000000 +0200
++++ source/gameengine/Converter/SConscript 2009-09-26 09:14:54.000000000 +0200
+@@ -21,7 +21,8 @@
+ incs += ' #source/blender/makesrna'
+ incs += ' #source/blender/ikplugin'
+ incs += ' #extern/recastnavigation/Detour/Include'
+-incs += ' #extern/Eigen2'
++#incs += ' #extern/Eigen2'
++incs += ' /usr/include/eigen2'
+
+ incs += ' ' + env['BF_BULLET_INC']
+
diff --git a/media-gfx/blender/files/blender-2.60-glew.patch b/media-gfx/blender/files/blender-2.60-glew.patch
new file mode 100644
index 0000000..dc0378a
--- /dev/null
+++ b/media-gfx/blender/files/blender-2.60-glew.patch
@@ -0,0 +1,25 @@
+--- extern/SConscript
++++ extern/SConscript
+@@ -2,8 +2,6 @@
+
+ Import('env')
+
+-SConscript(['glew/SConscript'])
+-
+ if env['WITH_BF_GAMEENGINE']:
+ SConscript(['recastnavigation/SConscript'])
+
+ if env['WITH_BF_ELTOPO']:
+ SConscript(['eltopo/SConscript'])
+
+--- source/blender/editors/include/BIF_gl.h
++++ source/blender/editors/include/BIF_gl.h
+@@ -35,7 +35,7 @@
+ #ifndef BIF_GL_H
+ #define BIF_GL_H
+
+-#include "GL/glew.h"
++#include <GL/glew.h>
+
+ /*
+ * these should be phased out. cpack should be replaced in
diff --git a/media-gfx/blender/files/blender-2.60-openjpeg.patch b/media-gfx/blender/files/blender-2.60-openjpeg.patch
new file mode 100644
index 0000000..522555a
--- /dev/null
+++ b/media-gfx/blender/files/blender-2.60-openjpeg.patch
@@ -0,0 +1,25 @@
+diff -Npur blender-2.60a.orig/extern/libredcode/SConscript blender-2.60a/extern/libredcode/SConscript
+--- blender-2.60a.orig/extern/libredcode/SConscript 2011-11-09 23:05:16.241465491 +0100
++++ blender-2.60a/extern/libredcode/SConscript 2011-11-09 23:06:24.188464236 +0100
+@@ -7,7 +7,8 @@
+ Import('env')
+
+ sources = env.Glob('*.c')
+-incs = '. ../libopenjpeg'
++#incs = '. ../libopenjpeg'
++incs = '. /usr/include'
+
+ env.BlenderLib ( libname='extern_redcode',
+ sources=sources, includes=Split(incs),
+diff -Npur blender-2.60a.orig/extern/SConscript blender-2.60a/extern/SConscript
+--- blender-2.60a.orig/extern/SConscript 2011-11-09 23:05:16.241465491 +0100
++++ blender-2.60a/extern/SConscript 2011-11-09 23:06:24.188464236 +0100
+@@ -11,8 +11,5 @@
+ if env['WITH_BF_BULLET']:
+ SConscript(['bullet2/src/SConscript'])
+
+-if env['WITH_BF_OPENJPEG'] and env['BF_OPENJPEG_LIB'] == '':
+- SConscript(['libopenjpeg/SConscript'])
+-
+ if env['WITH_BF_REDCODE'] and env['BF_REDCODE_LIB'] == '':
+ SConscript(['libredcode/SConscript'])
diff --git a/media-gfx/blender/files/blender-2.60a-CVE-2009-3850-v3.patch b/media-gfx/blender/files/blender-2.60a-CVE-2009-3850-v3.patch
new file mode 100644
index 0000000..fc0278d
--- /dev/null
+++ b/media-gfx/blender/files/blender-2.60a-CVE-2009-3850-v3.patch
@@ -0,0 +1,149 @@
+diff -Npur blender-2.60a.orig/source/blender/blenkernel/intern/blender.c blender-2.60a/source/blender/blenkernel/intern/blender.c
+--- blender-2.60a.orig/source/blender/blenkernel/intern/blender.c 2011-11-09 20:56:11.905602401 +0100
++++ blender-2.60a/source/blender/blenkernel/intern/blender.c 2011-11-09 20:56:42.827601857 +0100
+@@ -145,6 +145,7 @@ void initglobals(void)
+ G.f |= G_SCRIPT_AUTOEXEC;
+ #else
+ G.f &= ~G_SCRIPT_AUTOEXEC;
++ G.f |= G_SCRIPT_OVERRIDE_PREF; /* Disables turning G_SCRIPT_AUTOEXEC on from user prefs */
+ #endif
+ }
+
+diff -Npur blender-2.60a.orig/source/blender/makesrna/intern/rna_userdef.c blender-2.60a/source/blender/makesrna/intern/rna_userdef.c
+--- blender-2.60a.orig/source/blender/makesrna/intern/rna_userdef.c 2011-11-09 20:56:12.003602399 +0100
++++ blender-2.60a/source/blender/makesrna/intern/rna_userdef.c 2011-11-09 21:02:43.204595484 +0100
+@@ -116,9 +116,17 @@ static void rna_userdef_show_manipulator
+
+ static void rna_userdef_script_autoexec_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
+ {
+- UserDef *userdef = (UserDef*)ptr->data;
+- if (userdef->flag & USER_SCRIPT_AUTOEXEC_DISABLE) G.f &= ~G_SCRIPT_AUTOEXEC;
+- else G.f |= G_SCRIPT_AUTOEXEC;
++ if ((G.f & G_SCRIPT_OVERRIDE_PREF) == 0) {
++ /* Blender run with --enable-autoexec */
++ UserDef *userdef = (UserDef*)ptr->data;
++ if (userdef->flag & USER_SCRIPT_AUTOEXEC_DISABLE) G.f &= ~G_SCRIPT_AUTOEXEC;
++ else G.f |= G_SCRIPT_AUTOEXEC;
++ }
++}
++
++static int rna_userdef_script_autoexec_editable(Main *bmain, Scene *scene, PointerRNA *ptr) {
++ /* Disable "Auto Run Python Scripts" checkbox unless Blender run with --enable-autoexec */
++ return !(G.f & G_SCRIPT_OVERRIDE_PREF);
+ }
+
+ static void rna_userdef_mipmap_update(Main *bmain, Scene *scene, PointerRNA *ptr)
+@@ -2630,6 +2638,8 @@ static void rna_def_userdef_system(Blend
+ "Allow any .blend file to run scripts automatically "
+ "(unsafe with blend files from an untrusted source)");
+ RNA_def_property_update(prop, 0, "rna_userdef_script_autoexec_update");
++ /* Disable "Auto Run Python Scripts" checkbox unless Blender run with --enable-autoexec */
++ RNA_def_property_editable_func(prop, "rna_userdef_script_autoexec_editable");
+
+ prop= RNA_def_property(srna, "use_tabs_as_spaces", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", USER_TXT_TABSTOSPACES_DISABLE);
+diff -Npur blender-2.60a.orig/source/blender/windowmanager/intern/wm_files.c blender-2.60a/source/blender/windowmanager/intern/wm_files.c
+--- blender-2.60a.orig/source/blender/windowmanager/intern/wm_files.c 2011-11-09 20:56:12.458602413 +0100
++++ blender-2.60a/source/blender/windowmanager/intern/wm_files.c 2011-11-09 21:05:16.768592770 +0100
+@@ -285,12 +285,17 @@ static void wm_init_userdef(bContext *C)
+
+ /* set the python auto-execute setting from user prefs */
+ /* enabled by default, unless explicitly enabled in the command line which overrides */
+- if((G.f & G_SCRIPT_OVERRIDE_PREF) == 0) {
++ if (! G.background && ((G.f & G_SCRIPT_OVERRIDE_PREF) == 0)) {
++ /* Blender run with --enable-autoexec */
+ if ((U.flag & USER_SCRIPT_AUTOEXEC_DISABLE) == 0) G.f |= G_SCRIPT_AUTOEXEC;
+ else G.f &= ~G_SCRIPT_AUTOEXEC;
+ }
+ /* update tempdir from user preferences */
+ BLI_where_is_temp(btempdir, FILE_MAX, 1);
++
++ /* Workaround to fix default of "Auto Run Python Scripts" checkbox */
++ if ((G.f & G_SCRIPT_OVERRIDE_PREF) && !(G.f & G_SCRIPT_AUTOEXEC))
++ U.flag |= USER_SCRIPT_AUTOEXEC_DISABLE;
+ }
+
+
+diff -Npur blender-2.60a.orig/source/blender/windowmanager/intern/wm_operators.c blender-2.60a/source/blender/windowmanager/intern/wm_operators.c
+--- blender-2.60a.orig/source/blender/windowmanager/intern/wm_operators.c 2011-11-09 20:56:12.458602413 +0100
++++ blender-2.60a/source/blender/windowmanager/intern/wm_operators.c 2011-11-09 21:07:09.746590772 +0100
+@@ -1583,12 +1583,13 @@ static int wm_open_mainfile_exec(bContex
+ G.fileflags &= ~G_FILE_NO_UI;
+ else
+ G.fileflags |= G_FILE_NO_UI;
+-
+- if(RNA_boolean_get(op->ptr, "use_scripts"))
++
++ /* Restrict "Trusted Source" mode to Blender in --enable-autoexec mode */
++ if(RNA_boolean_get(op->ptr, "use_scripts") && (!(G.f & G_SCRIPT_OVERRIDE_PREF)))
+ G.f |= G_SCRIPT_AUTOEXEC;
+ else
+ G.f &= ~G_SCRIPT_AUTOEXEC;
+-
++
+ // XXX wm in context is not set correctly after WM_read_file -> crash
+ // do it before for now, but is this correct with multiple windows?
+ WM_event_add_notifier(C, NC_WINDOW, NULL);
+@@ -1600,6 +1601,8 @@ static int wm_open_mainfile_exec(bContex
+
+ static void WM_OT_open_mainfile(wmOperatorType *ot)
+ {
++ PropertyRNA * use_scripts_checkbox = NULL;
++
+ ot->name= "Open Blender File";
+ ot->idname= "WM_OT_open_mainfile";
+ ot->description="Open a Blender file";
+@@ -1611,7 +1614,12 @@ static void WM_OT_open_mainfile(wmOperat
+ WM_operator_properties_filesel(ot, FOLDERFILE|BLENDERFILE, FILE_BLENDER, FILE_OPENFILE, WM_FILESEL_FILEPATH);
+
+ RNA_def_boolean(ot->srna, "load_ui", 1, "Load UI", "Load user interface setup in the .blend file");
+- RNA_def_boolean(ot->srna, "use_scripts", 1, "Trusted Source", "Allow blend file execute scripts automatically, default available from system preferences");
++ use_scripts_checkbox = RNA_def_boolean(ot->srna, "use_scripts",
++ !!(G.f & G_SCRIPT_AUTOEXEC), "Trusted Source",
++ "Allow blend file execute scripts automatically, default available from system preferences");
++ /* Disable "Trusted Source" checkbox unless Blender run with --enable-autoexec */
++ if (use_scripts_checkbox && (G.f & G_SCRIPT_OVERRIDE_PREF))
++ RNA_def_property_clear_flag(use_scripts_checkbox, PROP_EDITABLE);
+ }
+
+ /* **************** link/append *************** */
+diff -Npur blender-2.60a.orig/source/creator/creator.c blender-2.60a/source/creator/creator.c
+--- blender-2.60a.orig/source/creator/creator.c 2011-11-09 20:56:11.899602401 +0100
++++ blender-2.60a/source/creator/creator.c 2011-11-09 21:17:22.278579932 +0100
+@@ -258,6 +258,7 @@ static int print_help(int UNUSED(argc),
+
+ printf("\n");
+
++ BLI_argsPrintArgDoc(ba, "-666");
+ BLI_argsPrintArgDoc(ba, "--enable-autoexec");
+ BLI_argsPrintArgDoc(ba, "--disable-autoexec");
+
+@@ -326,14 +327,14 @@ static int end_arguments(int UNUSED(argc
+ static int enable_python(int UNUSED(argc), const char **UNUSED(argv), void *UNUSED(data))
+ {
+ G.f |= G_SCRIPT_AUTOEXEC;
+- G.f |= G_SCRIPT_OVERRIDE_PREF;
++ G.f &= ~G_SCRIPT_OVERRIDE_PREF; /* Enables turning G_SCRIPT_AUTOEXEC off from user prefs */
+ return 0;
+ }
+
+ static int disable_python(int UNUSED(argc), const char **UNUSED(argv), void *UNUSED(data))
+ {
+ G.f &= ~G_SCRIPT_AUTOEXEC;
+- G.f |= G_SCRIPT_OVERRIDE_PREF;
++ G.f |= G_SCRIPT_OVERRIDE_PREF; /* Disables turning G_SCRIPT_AUTOEXEC on from user prefs */
+ return 0;
+ }
+
+@@ -1055,8 +1056,9 @@ static void setupArguments(bContext *C,
+ # define PY_DISABLE_AUTO ", (compiled as non-standard default)"
+ #endif
+
+- BLI_argsAdd(ba, 1, "-y", "--enable-autoexec", "\n\tEnable automatic python script execution" PY_ENABLE_AUTO, enable_python, NULL);
+- BLI_argsAdd(ba, 1, "-Y", "--disable-autoexec", "\n\tDisable automatic python script execution (pydrivers, pyconstraints, pynodes)" PY_DISABLE_AUTO, disable_python, NULL);
++ BLI_argsAdd(ba, 1, NULL, "-666", "\n\tEnable automatic python script execution (port from CVE-2009-3850 patch to Blender 2.60a)" PY_ENABLE_AUTO, enable_python, NULL);
++ BLI_argsAdd(ba, 1, "-y", "--enable-autoexec", "\n\tEnable automatic python script execution" PY_ENABLE_AUTO, enable_python, NULL);
++ BLI_argsAdd(ba, 1, "-Y", "--disable-autoexec", "\n\tDisable automatic python script execution (pydrivers, pyconstraints, pynodes)" PY_DISABLE_AUTO, disable_python, NULL);
+
+ #undef PY_ENABLE_AUTO
+ #undef PY_DISABLE_AUTO
diff --git a/media-gfx/blender/files/blender-2.60a-enable_site_module.patch b/media-gfx/blender/files/blender-2.60a-enable_site_module.patch
new file mode 100644
index 0000000..8a44c36
--- /dev/null
+++ b/media-gfx/blender/files/blender-2.60a-enable_site_module.patch
@@ -0,0 +1,32 @@
+--- source/blender/python/intern/bpy_interface.c
++++ source/blender/python/intern/bpy_interface.c
+@@ -203,11 +203,6 @@
+ /* allow to use our own included python */
+ PyC_SetHomePath(BLI_get_folder(BLENDER_SYSTEM_PYTHON, NULL));
+
+- /* Python 3.2 now looks for '2.58/python/include/python3.2d/pyconfig.h' to parse
+- * from the 'sysconfig' module which is used by 'site', so for now disable site.
+- * alternatively we could copy the file. */
+- Py_NoSiteFlag= 1;
+-
+ Py_Initialize();
+
+ // PySys_SetArgv(argc, argv); // broken in py3, not a huge deal
+--- source/gameengine/Ketsji/KX_PythonInit.cpp
++++ source/gameengine/Ketsji/KX_PythonInit.cpp
+@@ -1825,7 +1825,6 @@
+ STR_String pname = progname;
+ Py_SetProgramName(pname.Ptr());
+ #endif
+- Py_NoSiteFlag=1;
+ Py_FrozenFlag=1;
+
+ /* must run before python initializes */
+@@ -1898,7 +1897,6 @@
+ STR_String pname = progname;
+ Py_SetProgramName(pname.Ptr());
+ #endif
+- Py_NoSiteFlag=1;
+ Py_FrozenFlag=1;
+
+ initPyTypes();
diff --git a/media-gfx/blender/files/blender-2.60a-linux-3.patch b/media-gfx/blender/files/blender-2.60a-linux-3.patch
new file mode 100644
index 0000000..6a96b49
--- /dev/null
+++ b/media-gfx/blender/files/blender-2.60a-linux-3.patch
@@ -0,0 +1,12 @@
+--- SConstruct 2011-10-29 05:18:43.149564401 +0200
++++ SConstruct 2011-10-29 05:19:37.332887017 +0200
+@@ -165,6 +165,9 @@
+ if crossbuild and platform not in ('win32-vc', 'win64-vc'):
+ platform = 'linuxcross'
+
++if platform == 'linux3':
++ platform = 'linux2' # Workaround for Linux 3.x
++
+ env['OURPLATFORM'] = platform
+
+ configfile = os.path.join("build_files", "scons", "config", platform + "-config.py")
diff --git a/media-gfx/blender/files/blender-desktop.patch b/media-gfx/blender/files/blender-desktop.patch
new file mode 100644
index 0000000..f5a566d
--- /dev/null
+++ b/media-gfx/blender/files/blender-desktop.patch
@@ -0,0 +1,20 @@
+--- release/freedesktop/blender.desktop 2010-09-12 00:05:51.000000000 -0700
++++ release/freedesktop/blender.desktop 2010-09-12 00:07:32.000000000 -0700
+@@ -1,5 +1,5 @@
+ [Desktop Entry]
+-Name=Blender
++Name=Blender-2.6
+ GenericName=3D modeller
+ GenericName[es]=modelador 3D
+ GenericName[de]=3D Modellierer
+@@ -7,8 +7,8 @@
+ GenericName[ru]=Редактор 3D-моделей
+ Comment=3D modeling, animation, rendering and post-production
+ Comment[es]=modelado 3D, animación, renderizado y post-producción
+-Exec=blender
+-Icon=blender
++Exec=blender-2.60a
++Icon=blender-2.6
+ Terminal=false
+ Type=Application
+ Categories=Graphics;3DGraphics;
diff --git a/media-gfx/blender/metadata.xml b/media-gfx/blender/metadata.xml
new file mode 100644
index 0000000..51b6c0d
--- /dev/null
+++ b/media-gfx/blender/metadata.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+
+ <herd>graphics</herd>
+
+ <maintainer>
+ <email>lu_zero@gentoo.org</email>
+ <name>Luca Barbato</name>
+ </maintainer>
+
+ <maintainer>
+ <email>anthoine.bourgeois@gmail.com</email>
+ <name>Anthoine Bourgeois</name>
+ <description>aluco's overlay maintainer</description>
+ </maintainer>
+
+ <longdescription>
+ Blender, the open source software for 3D modeling, animation,
+ rendering, post-production, interactive creation and playback.
+ Available for Windows, Linux, Irix, Sun Solaris, FreeBSD or Mac OS X.
+ </longdescription>
+ <use>
+ <flag name="game-engine">
+ Adds Game Engine support to Blender (2.5* ebuilds).
+ </flag>
+ <flag name="contrib">
+ Install contrib scripts.
+ </flag>
+ <flag name="openexr">
+ Support for the OpenEXR graphics file format.
+ </flag>
+ <flag name="collada">
+ Add support for Collada interchange format.
+ </flag>
+ <flag name="verse">
+ Adds verse clustering features to Blender.
+ </flag>
+ <flag name="dds">
+ Adds DDS textures support to Blender.
+ </flag>
+ <flag name="player">
+ Build the Blender Player.
+ </flag>
+ <flag name="elbeem">
+ Adds surface fluid simulation to Blender using El'Beem library.
+ </flag>
+ <flag name="apidoc">
+ Build GameEngine/Python/C API documentation directly from the source
+ code using tools epydoc (dev-python/epydoc) and doxygen
+ (app-doc/doxygen).
+ </flag>
+ <flag name="tweak-mode">
+ This flag allows you to model without confirming each translation,
+ in particular it lets you grab with left mouse button (LMB) and not
+ having to confirm by another click. Blender 'Tweak Mode' is similar
+ to the 'Tweak Mode' of the Wings modeller (<pkg>media-gfx/wings</pkg>).
+ </flag>
+ <flag name="redcode">
+ This flag add support for RED CODE camera digital format (5K HD
+ images *.r3d) - EXPERIMENTAL.
+ </flag>
+ </use>
+</pkgmetadata>