summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--media-gfx/blender/Manifest9
-rw-r--r--media-gfx/blender/blender-2.59-r1.ebuild403
-rw-r--r--media-gfx/blender/files/blender-2.5-bmake.patch15
-rw-r--r--media-gfx/blender/files/blender-2.5-doxyfile.patch11
-rw-r--r--media-gfx/blender/files/blender-2.5-eigen.patch22
-rw-r--r--media-gfx/blender/files/blender-2.5-ffmpeg.patch107
-rw-r--r--media-gfx/blender/files/blender-2.5-glew.patch25
-rw-r--r--media-gfx/blender/files/blender-2.59-r1-opencollada-fixes.patch24
-rw-r--r--media-gfx/blender/files/blender-desktop.patch20
9 files changed, 636 insertions, 0 deletions
diff --git a/media-gfx/blender/Manifest b/media-gfx/blender/Manifest
new file mode 100644
index 0000000..f06e9df
--- /dev/null
+++ b/media-gfx/blender/Manifest
@@ -0,0 +1,9 @@
+AUX blender-2.5-bmake.patch 424 RMD160 0520e3f4a9a02be1b679d38934c2358a6f1c1fa2 SHA1 347a95208976878c56ebcd42f3484c95eca4c0fe SHA256 f69ecf7cd54ba9099408568f436e65b18e4d55f15ac1c07054cbd7c8d18c24bf
+AUX blender-2.5-doxyfile.patch 595 RMD160 f4890f0ead6943f323bc61e7f6766c2133e8591b SHA1 0fd7c202f044224cf9944596cf36cfcd56b39067 SHA256 d267e0fab4ecb9be78b9238a9c2af60ac9d5ddb7b42f73f479b9266704605883
+AUX blender-2.5-eigen.patch 945 RMD160 f27887af1ec8f335f999786da43a7a1c6660c03c SHA1 d7d083473da1a0995093058dbd6ed02ad045ec1e SHA256 4d105fee499e53e381be408d520d5ad06d9a3414a5e4a471ea3ded7e0db2868a
+AUX blender-2.5-ffmpeg.patch 2356 RMD160 7bab6c7af309a3db2c88030e75c3605fd46c47fb SHA1 5eb7c932de187a6a42327710dafb48f23fecb16d SHA256 cd73f330e1f5cadf863691effebf56b3400a0fb152147838f6181abae14b9f2a
+AUX blender-2.5-glew.patch 502 RMD160 387e2142b29c3f0bd40ff9893d0378dd17151827 SHA1 69f05bbbb3c249124943ac133eed25d7dd72a715 SHA256 bcf57104045e11513b922ebe98e8401ef9395dbda707b2058a2a7623611d3f26
+AUX blender-2.59-r1-opencollada-fixes.patch 2405 RMD160 c270a462caaa9be50a83d8bce05c9e7dcafff14a SHA1 533e507413a77c58894024d8722b7efcbe4ecd29 SHA256 861c2e0f2a58c334ec7d82f20d2f7f197fe73420fac524edf26b01d75807a9b5
+AUX blender-desktop.patch 639 RMD160 c0912b6b1c2dbb823b622c0ee7ce1116208ea308 SHA1 acbf1c8b62923ca02458ed37fb947b585f97fa66 SHA256 cd0b581d9636c7378209844412e64c807efbd7e6ba3333fe5cec8fe4bb8ecd7d
+DIST blender-2.59.tar.gz 16935441 RMD160 8c026e6f682c6076b74854a9b29c049a052525a1 SHA1 00ec50e0c29db152cb098b397c1ff3bf3c95cc3b SHA256 1763d85f83c25608aa861c84de226c32e0700f522ba4539a7b4e90f5a5f0315d
+EBUILD blender-2.59-r1.ebuild 12287 RMD160 f7db51be73b86a364e9ea1896400a1e82205ed31 SHA1 d06f30ba211fc3ff5149e59a0448848bdd201594 SHA256 8c7b25f51f0dcac5a9df76796ae873ef9455a31aed50cd739d076ef32327f97c
diff --git a/media-gfx/blender/blender-2.59-r1.ebuild b/media-gfx/blender/blender-2.59-r1.ebuild
new file mode 100644
index 0000000..0bdf09e
--- /dev/null
+++ b/media-gfx/blender/blender-2.59-r1.ebuild
@@ -0,0 +1,403 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+# this ebuild is based on the one found in the "alice" overlay (in layman)
+# currently the main differences are collada support
+
+PYTHON_DEPEND="3:3.2"
+EAPI=3
+
+inherit eutils python versionator flag-o-matic toolchain-funcs
+
+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"
+
+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"
+SRC_URI="http://download.blender.org/source/${P}.tar.gz"
+
+SLOT="2.5"
+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? ( >=virtual/ffmpeg-0.6.90[x264,mp3,encode,theora,jpeg2k] )
+ )
+ 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 dev-libs/libxml2 )"
+
+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
+}
+
+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
+ rm -r extern/libopenjpeg
+
+ # Glew
+ rm -r extern/glew
+ epatch "${FILESDIR}"/${PN}-${SLOT}-glew.patch
+
+ # Eigen2
+ rm -r extern/Eigen2
+ epatch "${FILESDIR}"/${PN}-${SLOT}-eigen.patch
+
+ epatch "${FILESDIR}/${PF}-opencollada-fixes.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"
+ 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
+
+ if use collada; then
+ cat <<- EOF >> "${S}"/user-config.py
+ WITH_BF_COLLADA = True
+ BF_OPENCOLLADA = "/usr"
+ BF_OPENCOLLADA_INC = "/usr/include/opencollada"
+ BF_OPENCOLLADA_LIBPATH = "/usr/lib/opencollada"
+ EOF
+ fi
+
+ # 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' ; 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() {
+ scons || 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
+
+ # 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
+
+ # 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/*
+
+# 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/2.59/* || die
+
+ # 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.5-bmake.patch b/media-gfx/blender/files/blender-2.5-bmake.patch
new file mode 100644
index 0000000..0fff6d8
--- /dev/null
+++ b/media-gfx/blender/files/blender-2.5-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.5-doxyfile.patch b/media-gfx/blender/files/blender-2.5-doxyfile.patch
new file mode 100644
index 0000000..aa61c55
--- /dev/null
+++ b/media-gfx/blender/files/blender-2.5-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.5-eigen.patch b/media-gfx/blender/files/blender-2.5-eigen.patch
new file mode 100644
index 0000000..41f55ec
--- /dev/null
+++ b/media-gfx/blender/files/blender-2.5-eigen.patch
@@ -0,0 +1,22 @@
+--- 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_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] )
diff --git a/media-gfx/blender/files/blender-2.5-ffmpeg.patch b/media-gfx/blender/files/blender-2.5-ffmpeg.patch
new file mode 100644
index 0000000..f825bcc
--- /dev/null
+++ b/media-gfx/blender/files/blender-2.5-ffmpeg.patch
@@ -0,0 +1,107 @@
+--- source/blender/blenkernel/intern/writeffmpeg.c 2011-06-22 12:23:10.000000000 -0300
++++ source/blender/blenkernel/intern/writeffmpeg.c 2011-07-08 12:24:17.000000000 -0300
+@@ -2,7 +2,7 @@
+ * \ingroup bke
+ */
+ /*
+- * $Id: writeffmpeg.c 36960 2011-05-27 23:33:40Z schlaile $
++ * $Id: writeffmpeg.c 37755 2011-06-23 16:10:48Z campbellbarton $
+ *
+ * ffmpeg-write support
+ *
+@@ -49,7 +49,9 @@
+
+ #include "BLI_blenlib.h"
+
+-#include "AUD_C-API.h" /* must be before BKE_sound.h for define */
++#ifdef WITH_AUDASPACE
++# include "AUD_C-API.h"
++#endif
+
+ #include "BKE_global.h"
+ #include "BKE_idprop.h"
+@@ -89,7 +91,9 @@
+ static int audio_outbuf_size = 0;
+ static double audio_time = 0.0f;
+
++#ifdef WITH_AUDASPACE
+ static AUD_Device* audio_mixdown_device = 0;
++#endif
+
+ #define FFMPEG_AUTOSPLIT_SIZE 2000000000
+
+@@ -103,6 +107,7 @@
+ }
+ }
+
++#ifdef WITH_AUDASPACE
+ static int write_audio_frame(void)
+ {
+ AVCodecContext* c = NULL;
+@@ -145,6 +150,7 @@
+ }
+ return 0;
+ }
++#endif // #ifdef WITH_AUDASPACE
+
+ /* Allocate a temporary frame */
+ static AVFrame* alloc_picture(int pix_fmt, int width, int height)
+@@ -851,7 +857,7 @@
+ ffmpeg_autosplit_count = 0;
+
+ success = start_ffmpeg_impl(rd, rectx, recty, reports);
+-
++#ifdef WITH_AUDASPACE
+ if(audio_stream)
+ {
+ AVCodecContext* c = audio_stream->codec;
+@@ -861,12 +867,13 @@
+ specs.rate = rd->ffcodecdata.audio_mixrate;
+ audio_mixdown_device = sound_mixdown(scene, specs, rd->sfra, rd->ffcodecdata.audio_volume);
+ }
+-
++#endif
+ return success;
+ }
+
+ void end_ffmpeg(void);
+
++#ifdef WITH_AUDASPACE
+ static void write_audio_frames(double to_pts)
+ {
+ int finished = 0;
+@@ -878,6 +885,7 @@
+ }
+ }
+ }
++#endif
+
+ int append_ffmpeg(RenderData *rd, int frame, int *pixels, int rectx, int recty, ReportList *reports)
+ {
+@@ -905,8 +913,9 @@
+ }
+ }
+
++#ifdef WITH_AUDASPACE
+ write_audio_frames((frame - rd->sfra) / (((double)rd->frs_sec) / rd->frs_sec_base));
+-
++#endif
+ return success;
+ }
+
+@@ -920,12 +929,14 @@
+ write_audio_frames();
+ }*/
+
++#ifdef WITH_AUDASPACE
+ if(audio_mixdown_device)
+ {
+ AUD_closeReadDevice(audio_mixdown_device);
+ audio_mixdown_device = 0;
+ }
+-
++#endif
++
+ if (video_stream && video_stream->codec) {
+ fprintf(stderr, "Flushing delayed frames...\n");
+ flush_ffmpeg ();
diff --git a/media-gfx/blender/files/blender-2.5-glew.patch b/media-gfx/blender/files/blender-2.5-glew.patch
new file mode 100644
index 0000000..e70f887
--- /dev/null
+++ b/media-gfx/blender/files/blender-2.5-glew.patch
@@ -0,0 +1,25 @@
+--- extern/SConscript
++++ extern/SConscript
+@@ -2,8 +2,6 @@
+
+ Import('env')
+
+-SConscript(['glew/SConscript'])
+-
+ if env['WITH_BF_ELTOPO']:
+ SConscript(['eltopo/SConscript'])
+
+ if env['WITH_BF_BULLET']:
+ SConscript(['bullet2/src/SConscript'])
+
+--- source/blender/editors/include/BIF_gl.h
++++ source/blender/editors/include/BIF_gl.h
+@@ -31,7 +31,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.59-r1-opencollada-fixes.patch b/media-gfx/blender/files/blender-2.59-r1-opencollada-fixes.patch
new file mode 100644
index 0000000..37680b6
--- /dev/null
+++ b/media-gfx/blender/files/blender-2.59-r1-opencollada-fixes.patch
@@ -0,0 +1,24 @@
+diff -urN /var/tmp/portage/media-gfx/blender-2.59-r1/work/blender-2.59//build_files/scons/tools/Blender.py /tmp/blender-2.59//build_files/scons/tools/Blender.py
+--- /var/tmp/portage/media-gfx/blender-2.59-r1/work/blender-2.59//build_files/scons/tools/Blender.py 2011-08-11 18:47:18.000000000 +0200
++++ /tmp/blender-2.59//build_files/scons/tools/Blender.py 2011-10-18 10:52:39.340067631 +0200
+@@ -268,7 +268,7 @@
+ syslibs += [colladalib+'_d' for colladalib in Split(lenv['BF_OPENCOLLADA_LIB'])]
+ else:
+ syslibs += Split(lenv['BF_OPENCOLLADA_LIB'])
+- syslibs.append(lenv['BF_EXPAT_LIB'])
++ syslibs.append('xml2')
+
+ if not lenv['WITH_BF_STATICLIBSAMPLERATE']:
+ syslibs += Split(lenv['BF_LIBSAMPLERATE_LIB'])
+diff -urN /var/tmp/portage/media-gfx/blender-2.59-r1/work/blender-2.59//source/blender/collada/SConscript /tmp/blender-2.59//source/blender/collada/SConscript
+--- /var/tmp/portage/media-gfx/blender-2.59-r1/work/blender-2.59//source/blender/collada/SConscript 2011-08-11 18:44:01.000000000 +0200
++++ /tmp/blender-2.59//source/blender/collada/SConscript 2011-10-18 10:53:20.775067619 +0200
+@@ -35,7 +35,7 @@
+ if env['OURPLATFORM']=='darwin':
+ incs = '../blenlib ../blenkernel ../windowmanager ../blenloader ../makesdna ../makesrna ../editors/include ../../../intern/guardedalloc [OPENCOLLADA]/COLLADAStreamWriter [OPENCOLLADA]/COLLADABaseUtils [OPENCOLLADA]/COLLADAFramework [OPENCOLLADA]/COLLADASaxFrameworkLoader [OPENCOLLADA]/GeneratedSaxParser '.replace('[OPENCOLLADA]', env['BF_OPENCOLLADA_INC'])
+ else:
+- incs = '../blenlib ../blenkernel ../windowmanager ../makesdna ../blenloader ../makesrna ../editors/include ../../../intern/guardedalloc [OPENCOLLADA]/COLLADAStreamWriter/include [OPENCOLLADA]/COLLADABaseUtils/include [OPENCOLLADA]/COLLADAFramework/include [OPENCOLLADA]/COLLADASaxFrameworkLoader/include [OPENCOLLADA]/GeneratedSaxParser/include '.replace('[OPENCOLLADA]', env['BF_OPENCOLLADA_INC'])
++ incs = '../blenlib ../blenkernel ../windowmanager ../makesdna ../blenloader ../makesrna ../editors/include ../../../intern/guardedalloc [OPENCOLLADA]/COLLADAStreamWriter [OPENCOLLADA]/COLLADABaseUtils [OPENCOLLADA]/COLLADAFramework [OPENCOLLADA]/COLLADASaxFrameworkLoader [OPENCOLLADA]/GeneratedSaxParser '.replace('[OPENCOLLADA]', env['BF_OPENCOLLADA_INC'])
+
+ if env['BF_BUILDINFO']:
+ defs.append('NAN_BUILDINFO')
diff --git a/media-gfx/blender/files/blender-desktop.patch b/media-gfx/blender/files/blender-desktop.patch
new file mode 100644
index 0000000..50ad8c2
--- /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.5
+ 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.5
++Icon=blender-2.5
+ Terminal=false
+ Type=Application
+ Categories=Graphics;3DGraphics;