summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Pipping <sping@gentoo.org>2011-05-07 00:02:09 +0000
committerSebastian Pipping <sping@gentoo.org>2011-05-07 00:02:09 +0000
commitcf9e87137d01ab95d4f7c3bbd11d9c62cc565dee (patch)
tree474c65bc2ed263ceec896fb9fd509412efb4ccd3 /media-gfx/blender
parentvirtual/ffmpeg: Add use flag jpeg2k (diff)
downloadhistorical-cf9e87137d01ab95d4f7c3bbd11d9c62cc565dee.tar.gz
historical-cf9e87137d01ab95d4f7c3bbd11d9c62cc565dee.tar.bz2
historical-cf9e87137d01ab95d4f7c3bbd11d9c62cc565dee.zip
media-gfx/blender: Bump to 2.57 (bugs #312593, #364291)
Package-Manager: portage-2.1.9.46/cvs/Linux x86_64
Diffstat (limited to 'media-gfx/blender')
-rw-r--r--media-gfx/blender/ChangeLog12
-rw-r--r--media-gfx/blender/Manifest23
-rw-r--r--media-gfx/blender/blender-2.57.ebuild450
-rw-r--r--media-gfx/blender/files/blender-2.57-CVE-2009-3850-v1.patch105
-rw-r--r--media-gfx/blender/files/blender-2.57-bmake.patch15
-rw-r--r--media-gfx/blender/files/blender-2.57-desktop.patch20
-rw-r--r--media-gfx/blender/files/blender-2.57-doxygen.patch33
-rw-r--r--media-gfx/blender/files/blender-2.57-eigen.patch22
-rw-r--r--media-gfx/blender/files/blender-2.57-glew.patch22
-rw-r--r--media-gfx/blender/files/blender-2.57-libav-0.7.patch278
-rw-r--r--media-gfx/blender/metadata.xml45
11 files changed, 1006 insertions, 19 deletions
diff --git a/media-gfx/blender/ChangeLog b/media-gfx/blender/ChangeLog
index 68bf6dc5f5a8..6363dce83266 100644
--- a/media-gfx/blender/ChangeLog
+++ b/media-gfx/blender/ChangeLog
@@ -1,6 +1,16 @@
# ChangeLog for media-gfx/blender
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-gfx/blender/ChangeLog,v 1.191 2011/05/04 22:06:26 tomka Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-gfx/blender/ChangeLog,v 1.192 2011/05/07 00:02:09 sping Exp $
+
+*blender-2.57 (06 May 2011)
+
+ 06 May 2011; Sebastian Pipping <sping@gentoo.org> +blender-2.57.ebuild,
+ +files/blender-2.57-CVE-2009-3850-v1.patch, +files/blender-2.57-bmake.patch,
+ +files/blender-2.57-desktop.patch, +files/blender-2.57-doxygen.patch,
+ +files/blender-2.57-eigen.patch, +files/blender-2.57-glew.patch,
+ +files/blender-2.57-libav-0.7.patch, metadata.xml:
+ Bump to version 2.57, main work by lu_zero (bug #312593)
+ Includes patch for CVE-2009-3850 (bug #364291)
04 May 2011; Thomas Kahle <tomka@gentoo.org> blender-2.49b-r2.ebuild:
x86 stable per bug 349847
diff --git a/media-gfx/blender/Manifest b/media-gfx/blender/Manifest
index 6eb33d750b89..1a3376a0e352 100644
--- a/media-gfx/blender/Manifest
+++ b/media-gfx/blender/Manifest
@@ -1,6 +1,3 @@
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA256
-
AUX blender-2.37-dirs.patch 727 RMD160 ddf5c951182f809374c43f1a1cce47f4397a868c SHA1 9b3cb06a8bd23b1a5041bd3193018c2e5e28dcfd SHA256 beb5e5835cde71a00712ddf600278ca0bbdb6020123faeb6ea7a53e8f6812e5e
AUX blender-2.44-scriptsdir.patch 2586 RMD160 8e80859edf1fae2f401b326be4cb939108879999 SHA1 50143946828d3f2b2568e71fae5ed28f6adf7449 SHA256 a7afac10ce2431cd94d10dc3f4cae33423b5a59d0c6918199006f623cd6d68e4
AUX blender-2.46-cve-2008-1103-1.patch 636 RMD160 11d0b7dbff6e186334a80b7f6932ace4a1bd6628 SHA1 979fa1c2f0836b46dfd26c197798625a72e0a28b SHA256 a0dd64fb749a9577d84e22896872dc2956a8530700308d0aadad588191356b96
@@ -11,22 +8,24 @@ AUX blender-2.49a-bake.patch 669 RMD160 19e167e2d3c8fcd573f9755dee8c6cb59984829e
AUX blender-2.49a-sys-openjpeg.patch 452 RMD160 7029b3d257839d4ca8ce58a9f8e46503651b1765 SHA1 85551623c4293d9dff4dc8d26584a753b3ccd581 SHA256 437f016b9f7c48281015838a22203c4db9ef6b62dac01aa86faa1c9793bff182
AUX blender-2.49b-CVE-2009-3850-v3.patch 3891 RMD160 9a51681f426f1f87cc418b6316ce678025a93bbb SHA1 dc7baef8f0434e067f863e0a2c6ef0d8d9acc70b SHA256 5dc289f00ab59b13b7f1d3e8b4a77b8c9930460f8ee575b38a60da3577e2b1ba
AUX blender-2.49b-CVE-2009-3850-v4.patch 5222 RMD160 1757323e4aa0ffa0e1b3ab14dcaa78188a39ae36 SHA1 5d432fbe575b1869a7e68e753e593edcc3478b35 SHA256 0707904cd3b627cfeac19d4d775ee4a019ba395251c9318dbb356e3b8de19124
+AUX blender-2.57-CVE-2009-3850-v1.patch 4894 RMD160 6680a3e54d8d65c050886d1601bfb8e022633425 SHA1 91ecd5bdfa69bb46b6688e1200aae0f90bc04b52 SHA256 d64afd9ddef2fc3796c0e0398bf8fecc96a18176945642b2ae3445da2de69a26
+AUX blender-2.57-bmake.patch 422 RMD160 b0270fbc11d9afce5989fcdb21234ec734ef946a SHA1 094d739127960386013677ea638397485422121f SHA256 a9282a6746062824ccdc12f5a6055aa4c71feba269fafebb8e83916fc2e61245
+AUX blender-2.57-desktop.patch 639 RMD160 a72711801ecedb46cb8632b121b93d55c4d48ca8 SHA1 bce7cff593493410ae709d4f347321e119e5e298 SHA256 c7611a51becc4b3bc9e647bccea9247d43c32eae8b2eb432b13cd30dc4972ff6
+AUX blender-2.57-doxygen.patch 1316 RMD160 6e9538481aa0aa4225ace5cc272fe37214499f39 SHA1 f40661daba59ee6efa449c644dba9da634f8eaf1 SHA256 6c5ad9e44bfe768efe69e208fdfd22a4ac87af8b1bdce816ac07a81eb4df6848
+AUX blender-2.57-eigen.patch 940 RMD160 9acf7cd0fadb1fac515a16535d82569d2adb110b SHA1 8f2ba202d10abb32bda7c220465f7db0d616b8c5 SHA256 a5bb17c7bd2f68dd44d439c0a72302654b204a8d3da9a4a6365a85396c4bc3ea
+AUX blender-2.57-glew.patch 443 RMD160 bc2606d216bd9231a96fc7bd891deaf13f710c93 SHA1 3cb12219dcfa6045b96325dcbc4192a4c065c5bf SHA256 002e144e516d7532f450565a176af736146d74d7de1ab18b1ad4796c12f26a0f
+AUX blender-2.57-libav-0.7.patch 10216 RMD160 8768b33a64bafbdcdc343e95beb3cf853f21b3f8 SHA1 120de93ff7563681723be5ebab3d807ed8f5de40 SHA256 98e64d6090f496fc35ae41d7a2aaecbe494a02d99576b082ee6fb78e91e71562
AUX blender.desktop 194 RMD160 5b154d86d52f46a3f1fcd29da90322e1727f1107 SHA1 a1b70789388f72f2a292939588365a0b845b83b7 SHA256 9d21fe8823f249f0720895107817854dd8ce64afe6586317af08805b94fe0fab
AUX blender.png 2119 RMD160 e06574002001f41198dc9408ef1bba45493fcc27 SHA1 9a0d713235ce99f8e4fde4f062209ab989e48c0f SHA256 bef633319c81323bb82db274004d89082ca05cab6650eb4c4bf43f830ccb5cad
DIST blender-2.48a.tar.gz 21502247 RMD160 5ef94d6019302bfea86d5657af738d1d86a8bcd5 SHA1 9fb2dbf5d6cfcba8ae2d6d9b93ca9e3e66aae6c7 SHA256 781d4d9e2332f4f3887af1d66fb70c4c6dd0b89166391403ee4853108abf4e46
DIST blender-2.49a.tar.gz 23039535 RMD160 f37100c7a02c75b622b8e055f32f06e064a62de2 SHA1 59f5be96eda874bb901390f55a70d58cf8e0b979 SHA256 b206b878a6f96d1e8561ee62a58fba1af4141579c27f51ec795f08f4129eb1fc
DIST blender-2.49b.tar.gz 22918377 RMD160 5b641de7b41af5e4186c9721b66eddc6870f9fbc SHA1 43f71e7de4efe79c518d45f4b5a04e03c28d5fc5 SHA256 23554db4aa10b00e0e760a8bf9c4a9f749670d815c8bc874a04746adc4752488
+DIST blender-2.57.tar.gz 16806453 RMD160 d2f4d14cb08067a3d1fb3c1661772cf8f3a9bfaa SHA1 c539e2640dfa2a17e044d0f296219b866242112a SHA256 8bd1812166f2dd96e158c1898a666adc1f9f109765d5cd7ff3a8adeae60794b8
EBUILD blender-2.48a-r3.ebuild 4102 RMD160 0f81a40dc113cab72bf62af3ce02fa4a51de8480 SHA1 fa24681dc76ab0d0ecaba6e03920472c5968afbe SHA256 a5367888ec81f6b308c1eaeb9d36437533575d115e02760079fd192daafc5c20
EBUILD blender-2.49a.ebuild 4877 RMD160 fa9208a6827ea53a870ee5724a1ecb280640f705 SHA1 3eedb3cd7eaf0bf52810f14198a3fc6ce843429d SHA256 8c5bac48f2d7b2174761f08bfaa0c848ca3150a86386ec34a486f279c3572e07
EBUILD blender-2.49b-r1.ebuild 4894 RMD160 d0bc81bdc8254b7b7ca85854f11e5dc86b5912dd SHA1 d4fd74fa3f49511ede2c61e906aa70ca19b2bd0f SHA256 567e8f780172de113b35a1372b2966fc7490e4ccad906cf21a4d28c076ee27dd
EBUILD blender-2.49b-r2.ebuild 4892 RMD160 a88430ddf67b0cb673ca4e8d1ae8424b4524b51f SHA1 51f803e9378809bdbdef8ec2630739c72cda7e32 SHA256 0d33f4cec5a982c937cb533d75324f5dd9e612d1993724c94855091f18cce6b7
EBUILD blender-2.49b.ebuild 4836 RMD160 8c16866a3fb21f51c9905893ebb4e8d7049938d9 SHA1 c1d4142fa01be9bf310e0748311d7f12959e4f5d SHA256 b12120e7f45daa70ded64a6373b31b28142d139b5d97711bb0b7a0d793d3d972
-MISC ChangeLog 28355 RMD160 bdcfa5e735502ed1993b0258da733ea8e2c9d6a8 SHA1 8d9abcef7f3e12ddca999b2cc41d500b6a81da97 SHA256 bf078d4b828467332e8615c71d88536d568051d1b1bfe6c290c6cbf7a2083d64
-MISC metadata.xml 719 RMD160 132dfe4fc49228b922ed39f556c403347e992ef9 SHA1 7896fb17bd0dd87d8a072b0f6f6072876c1eed94 SHA256 6409856f1883ed49aae365c885d5512a38784a5a48a2bbf7dd583b8054d32510
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0.17 (GNU/Linux)
-
-iF4EAREIAAYFAk3BzWoACgkQodBTJSDyo64XkgD9FUiWXjDK+bhueDb+vfVEfHcH
-oFvXjWaiXGNIfuNAIsEA/AmCb5VcW0oZGsO1qzht7ur7iZ2z1GSAL4lGh54IZEXW
-=QFkI
------END PGP SIGNATURE-----
+EBUILD blender-2.57.ebuild 13729 RMD160 293c4ce49180bca9fd7dc2a8464570ba5d120ff4 SHA1 a5d6f76b8a0f6c740f897bd1a96d993cc4c4a7d6 SHA256 5a6f84cf1a073d43cd1067d126ab522aafd4c6dbd8ef4a733039763d7ffabd4f
+MISC ChangeLog 28838 RMD160 46a3c495255a5646eef3e0e2af238e02adedffe8 SHA1 d9dbb1b9f1717075624bfb0aede30e3b2f8fe403 SHA256 d496da808ff3ae199de38c46d4e58b08251d55783a440d9baae4e32f804e3942
+MISC metadata.xml 1799 RMD160 7330ec5ccf7f7a86f31abf0b5f45bf84025c505a SHA1 a8bc4c5db954f24ea50e879b1bdbd5753430b3ee SHA256 f4bc849a0cc6a805fe6624699c5c1b9248336f7b879484f777f31b7c755759ea
diff --git a/media-gfx/blender/blender-2.57.ebuild b/media-gfx/blender/blender-2.57.ebuild
new file mode 100644
index 000000000000..48a78250436e
--- /dev/null
+++ b/media-gfx/blender/blender-2.57.ebuild
@@ -0,0 +1,450 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-gfx/blender/blender-2.57.ebuild,v 1.1 2011/05/07 00:02:09 sping Exp $
+
+PYTHON_DEPEND="3:3.2"
+
+EAPI=3
+
+if [[ ${PV} == *9999 ]] ; then
+SCM="subversion"
+ESVN_REPO_URI="https://svn.blender.org/svnroot/bf-blender/trunk/blender"
+fi
+
+inherit 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"
+
+# not complete/working features
+#IUSE="verse collada test"
+
+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.5"
+LICENSE="|| ( GPL-2 BL )"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="media-libs/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[x264,mp3,encode,theora]
+ jpeg2k? ( virtual/ffmpeg[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 )"
+
+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 useq $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}-${SLOT}-CVE-2008-1103.patch
+ #epatch "${FILESDIR}"/${PN}-${SLOT}-CVE-2008-4863.patch
+ #epatch "${FILESDIR}"/${PN}-2.49a-sys-openjpeg.patch
+ epatch "${FILESDIR}"/${P}-bmake.patch
+ epatch "${FILESDIR}"/${P}-doxygen.patch
+ epatch "${FILESDIR}"/${P}-libav-0.7.patch
+ epatch "${FILESDIR}"/${P}-CVE-2009-3850-v1.patch
+ epatch "${FILESDIR}"/${P}-desktop.patch
+
+ # OpenJPEG
+ einfo "Removing bundled OpenJPEG ..."
+ rm -r extern/libopenjpeg
+
+ # Glew
+ einfo "Removing bundled Glew ..."
+ rm -r extern/glew
+ epatch "${FILESDIR}"/${P}-glew.patch
+
+ # binreloc
+# einfo "Removing bundled binreloc ..."
+# rm -r extern/binreloc
+# epatch "${FILESDIR}"/${PN}-${SLOT}-binreloc.patch
+
+ # Eigen2
+ einfo "Removing bundled Eigen2 ..."
+ rm -r extern/Eigen2
+ epatch "${FILESDIR}"/${P}-eigen.patch
+
+ # Bullet
+# einfo "Removing bundled Bullet2 ..."
+# rm -r extern/bullet2
+# epatch "${FILESDIR}"/${PN}-${SLOT}-bullet.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
+
+ # 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' ; 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}"/install/${PV}/plugins/ \
+ || die "dir ${WORKDIR}/install/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"
+
+ # final cleanup
+ rm -r "${WORKDIR}"/install/{Python-license.txt,icons,GPL-license.txt,copyright.txt}
+
+}
+
+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}"/install/${PV}/plugins/texture/*.so
+ exeinto /usr/share/${PN}/${SLOT}/sequences
+ doexe "${WORKDIR}"/install/${PV}/plugins/sequence/*.so
+ insinto /usr/include/${PN}/${SLOT}
+ doins "${WORKDIR}"/install/${PV}/plugins/include/*.h
+# rm -r "${WORKDIR}"/install/${PV}/plugins || die
+
+ # install desktop file
+ insinto /usr/share/pixmaps
+ cp release/freedesktop/icons/scalable/blender.svg \
+ release/freedesktop/icons/scalable/blender-${SLOT}.svg
+ doins release/freedesktop/icons/scalable/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}"/blender/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}"/blender/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
+
+ # 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 750 -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 "CVE-2008-1103-1.patch has been removed as it interferes"
+# elog "with autosave undo features. Up stream blender coders"
+# elog "have not addressed the CVE issue as the status is still"
+# elog "a CANDIDATE and not CONFIRMED."
+# elog
+# elog "CVE-2008-4863.patch has been remove as it interferes"
+# elog "with the load of bpy_ops.py and all the UI python"
+# elog "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
+ 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.57-CVE-2009-3850-v1.patch b/media-gfx/blender/files/blender-2.57-CVE-2009-3850-v1.patch
new file mode 100644
index 000000000000..9c0f39fafad6
--- /dev/null
+++ b/media-gfx/blender/files/blender-2.57-CVE-2009-3850-v1.patch
@@ -0,0 +1,105 @@
+From dfb6ecd9a4a129b976b7a8d2002e32146125340f Mon Sep 17 00:00:00 2001
+From: Sebastian Pipping <sebastian@pipping.org>
+Date: Sun, 24 Apr 2011 18:26:47 +0200
+Subject: [PATCH] Disable execution of embedded Python code unless run with
+ --enable-autoexec|-y|-666 (CVE-2009-3850)
+
+---
+ source/blender/blenkernel/intern/blender.c | 3 ++-
+ source/blender/makesrna/intern/rna_userdef.c | 9 ++++++---
+ source/blender/windowmanager/intern/wm_files.c | 3 ++-
+ source/creator/creator.c | 10 ++++++----
+ 4 files changed, 16 insertions(+), 9 deletions(-)
+
+diff --git a/source/blender/blenkernel/intern/blender.c b/source/blender/blenkernel/intern/blender.c
+index 5f08505..9c27ac7 100644
+--- a/source/blender/blenkernel/intern/blender.c
++++ b/source/blender/blenkernel/intern/blender.c
+@@ -141,7 +141,8 @@ void initglobals(void)
+ G.charmin = 0x0000;
+ G.charmax = 0xffff;
+
+- G.f |= G_SCRIPT_AUTOEXEC;
++ G.f &= ~G_SCRIPT_AUTOEXEC;
++ G.f |= G_SCRIPT_OVERRIDE_PREF; /* Disables turning G_SCRIPT_AUTOEXEC on from user prefs */
+ }
+
+ /***/
+diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c
+index e9a9ddc..a120857 100644
+--- a/source/blender/makesrna/intern/rna_userdef.c
++++ b/source/blender/makesrna/intern/rna_userdef.c
+@@ -99,9 +99,12 @@ static void rna_userdef_show_manipulator_update(Main *bmain, Scene *scene, Point
+
+ static void rna_userdef_script_autoexec_update(Main *bmain, Scene *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 void rna_userdef_mipmap_update(Main *bmain, Scene *scene, PointerRNA *ptr)
+diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c
+index f4f7af0..c1bacc6 100644
+--- a/source/blender/windowmanager/intern/wm_files.c
++++ b/source/blender/windowmanager/intern/wm_files.c
+@@ -270,7 +270,8 @@ 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;
+ }
+diff --git a/source/creator/creator.c b/source/creator/creator.c
+index c687cc2..1da282f 100644
+--- a/source/creator/creator.c
++++ b/source/creator/creator.c
+@@ -278,6 +278,7 @@ static int print_help(int UNUSED(argc), const char **UNUSED(argv), void *data)
+
+ printf("\n");
+
++ BLI_argsPrintArgDoc(ba, "-666");
+ BLI_argsPrintArgDoc(ba, "--enable-autoexec");
+ BLI_argsPrintArgDoc(ba, "--disable-autoexec");
+
+@@ -359,14 +360,14 @@ static int end_arguments(int UNUSED(argc), const char **UNUSED(argv), void *UNUS
+ 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;
+ }
+
+@@ -1075,8 +1076,9 @@ static void setupArguments(bContext *C, bArgs *ba, SYS_SystemHandle *syshandle)
+
+ BLI_argsAdd(ba, 1, "-v", "--version", "\n\tPrint Blender version and exit", print_version, NULL);
+
+- BLI_argsAdd(ba, 1, "-y", "--enable-autoexec", "\n\tEnable automatic python script execution (default)", enable_python, NULL);
+- BLI_argsAdd(ba, 1, "-Y", "--disable-autoexec", "\n\tDisable automatic python script execution (pydrivers, pyconstraints, pynodes)", disable_python, NULL);
++ BLI_argsAdd(ba, 1, NULL, "-666", "\n\tEnable automatic python script execution (port from CVE-2009-3850 patch to Blender 2.49b)", enable_python, NULL);
++ BLI_argsAdd(ba, 1, "-y", "--enable-autoexec", "\n\tEnable automatic python script execution", enable_python, NULL);
++ BLI_argsAdd(ba, 1, "-Y", "--disable-autoexec", "\n\tDisable automatic python script execution (pydrivers, pyconstraints, pynodes) (default)", disable_python, NULL);
+
+ BLI_argsAdd(ba, 1, "-b", "--background", "<file>\n\tLoad <file> in background (often used for UI-less rendering)", background_mode, NULL);
+
+--
+1.7.5.rc1
+
diff --git a/media-gfx/blender/files/blender-2.57-bmake.patch b/media-gfx/blender/files/blender-2.57-bmake.patch
new file mode 100644
index 000000000000..b78d5a4246ec
--- /dev/null
+++ b/media-gfx/blender/files/blender-2.57-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.57-desktop.patch b/media-gfx/blender/files/blender-2.57-desktop.patch
new file mode 100644
index 000000000000..412a76dc9f57
--- /dev/null
+++ b/media-gfx/blender/files/blender-2.57-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.svg
+ Terminal=false
+ Type=Application
+ Categories=Graphics;3DGraphics;
diff --git a/media-gfx/blender/files/blender-2.57-doxygen.patch b/media-gfx/blender/files/blender-2.57-doxygen.patch
new file mode 100644
index 000000000000..335b289bfa92
--- /dev/null
+++ b/media-gfx/blender/files/blender-2.57-doxygen.patch
@@ -0,0 +1,33 @@
+--- doc/doxygen/Doxyfile 2011-02-19 18:51:40.216999981 +0100
++++ doc/doxygen/Doxyfile 2011-02-19 18:57:46.628999965 +0100
+@@ -559,26 +559,26 @@
+ # The QUIET tag can be used to turn on/off the messages that are generated
+ # by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+-QUIET = NO
++QUIET = YES
+
+ # The WARNINGS tag can be used to turn on/off the warning messages that are
+ # generated by doxygen. Possible values are YES and NO. If left blank
+ # NO is used.
+
+-WARNINGS = YES
++WARNINGS = NO
+
+ # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
+ # for undocumented members. If EXTRACT_ALL is set to YES then this flag will
+ # automatically be disabled.
+
+-WARN_IF_UNDOCUMENTED = YES
++WARN_IF_UNDOCUMENTED = NO
+
+ # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
+ # potential errors in the documentation, such as not documenting some
+ # parameters in a documented function, or documenting parameters that
+ # don't exist or using markup commands wrongly.
+
+-WARN_IF_DOC_ERROR = YES
++WARN_IF_DOC_ERROR = NO
+
+ # The WARN_NO_PARAMDOC option can be enabled to get warnings for
+ # functions that are documented, but have no documentation for their parameters
diff --git a/media-gfx/blender/files/blender-2.57-eigen.patch b/media-gfx/blender/files/blender-2.57-eigen.patch
new file mode 100644
index 000000000000..91d8af4a6ea7
--- /dev/null
+++ b/media-gfx/blender/files/blender-2.57-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.57-glew.patch b/media-gfx/blender/files/blender-2.57-glew.patch
new file mode 100644
index 000000000000..5e63c7c54a91
--- /dev/null
+++ b/media-gfx/blender/files/blender-2.57-glew.patch
@@ -0,0 +1,22 @@
+--- extern/SConscript
++++ extern/SConscript
+@@ -2,8 +2,6 @@
+
+ Import('env')
+
+-SConscript(['glew/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.57-libav-0.7.patch b/media-gfx/blender/files/blender-2.57-libav-0.7.patch
new file mode 100644
index 000000000000..cc2f399962dd
--- /dev/null
+++ b/media-gfx/blender/files/blender-2.57-libav-0.7.patch
@@ -0,0 +1,278 @@
+diff -burN blender-2.57.orig//intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp blender-2.57/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp
+--- blender-2.57.orig//intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp 2011-04-14 17:06:35.000000000 +0200
++++ blender-2.57/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp 2011-05-04 01:44:30.184004582 +0200
+@@ -64,15 +64,10 @@
+
+ // read samples from the packet
+ data_size = buf_size - buf_pos;
+- /*read_length = avcodec_decode_audio3(m_codecCtx,
++ read_length = avcodec_decode_audio3(m_codecCtx,
+ (int16_t*)(((data_t*)buffer.getBuffer())+buf_pos),
+ &data_size,
+- packet);*/
+- read_length = avcodec_decode_audio2(m_codecCtx,
+- (int16_t*)(((data_t*)buffer.getBuffer()) + buf_pos),
+- &data_size,
+- audio_pkg_data,
+- audio_pkg_size);
++ packet);
+
+ // read error, next packet!
+ if(read_length < 0)
+@@ -112,7 +107,7 @@
+
+ for(unsigned int i = 0; i < m_formatCtx->nb_streams; i++)
+ {
+- if((m_formatCtx->streams[i]->codec->codec_type == CODEC_TYPE_AUDIO)
++ if((m_formatCtx->streams[i]->codec->codec_type == AVMEDIA_TYPE_AUDIO)
+ && (m_stream < 0))
+ {
+ m_stream=i;
+diff -burN blender-2.57.orig//source/blender/blenkernel/intern/writeffmpeg.c blender-2.57/source/blender/blenkernel/intern/writeffmpeg.c
+--- blender-2.57.orig//source/blender/blenkernel/intern/writeffmpeg.c 2011-04-14 17:17:03.000000000 +0200
++++ blender-2.57/source/blender/blenkernel/intern/writeffmpeg.c 2011-05-04 03:36:08.365219076 +0200
+@@ -163,7 +163,7 @@
+ }
+
+ pkt.stream_index = audio_stream->index;
+- pkt.flags |= PKT_FLAG_KEY;
++ pkt.flags |= AV_PKT_FLAG_KEY;
+ if (av_interleaved_write_frame(outfile, &pkt) != 0) {
+ fprintf(stderr, "Error writing audio packet!\n");
+ return -1;
+@@ -290,7 +290,7 @@
+ fprintf(stderr, "Video Frame PTS: not set\n");
+ }
+ if (c->coded_frame->key_frame)
+- packet.flags |= PKT_FLAG_KEY;
++ packet.flags |= AV_PKT_FLAG_KEY;
+ packet.stream_index = video_stream->index;
+ packet.data = video_buffer;
+ packet.size = outsize;
+@@ -396,7 +396,7 @@
+ switch(prop->type) {
+ case IDP_STRING:
+ fprintf(stderr, "%s.\n", IDP_String(prop));
+- rv = av_set_string(c, prop->name, IDP_String(prop));
++ av_set_string3(c, prop->name, IDP_String(prop), 0, &rv);
+ break;
+ case IDP_FLOAT:
+ fprintf(stderr, "%g.\n", IDP_Float(prop));
+@@ -407,7 +407,7 @@
+
+ if (param) {
+ if (IDP_Int(prop)) {
+- rv = av_set_string(c, name, param);
++ av_set_string3(c, name, param, 0, &rv);
+ } else {
+ return;
+ }
+@@ -461,7 +461,7 @@
+
+ c = get_codec_from_stream(st);
+ c->codec_id = codec_id;
+- c->codec_type = CODEC_TYPE_VIDEO;
++ c->codec_type = AVMEDIA_TYPE_VIDEO;
+
+
+ /* Get some values from the current render settings */
+@@ -519,7 +519,7 @@
+ c->pix_fmt = PIX_FMT_YUV422P;
+ }
+
+- if (codec_id == CODEC_ID_XVID) {
++ if (codec_id == CODEC_ID_MPEG4) {
+ /* arghhhh ... */
+ c->pix_fmt = PIX_FMT_YUV420P;
+ c->codec_tag = (('D'<<24) + ('I'<<16) + ('V'<<8) + 'X');
+@@ -588,7 +588,7 @@
+
+ c = get_codec_from_stream(st);
+ c->codec_id = codec_id;
+- c->codec_type = CODEC_TYPE_AUDIO;
++ c->codec_type = AVMEDIA_TYPE_AUDIO;
+
+ c->sample_rate = rd->ffcodecdata.audio_mixrate;
+ c->bit_rate = ffmpeg_audio_bitrate*1000;
+@@ -666,13 +666,13 @@
+ BKE_report(reports, RPT_ERROR, "No valid formats found.");
+ return 0;
+ }
+- fmt = guess_format(NULL, exts[0], NULL);
++ fmt = av_guess_format(NULL, exts[0], NULL);
+ if (!fmt) {
+ BKE_report(reports, RPT_ERROR, "No valid formats found.");
+ return 0;
+ }
+
+- of = av_alloc_format_context();
++ of = avformat_alloc_context();
+ if (!of) {
+ BKE_report(reports, RPT_ERROR, "Error opening output file");
+ return 0;
+@@ -713,7 +713,7 @@
+ fmt->video_codec = CODEC_ID_H264;
+ break;
+ case FFMPEG_XVID:
+- fmt->video_codec = CODEC_ID_XVID;
++ fmt->video_codec = CODEC_ID_MPEG4;
+ break;
+ case FFMPEG_FLV:
+ fmt->video_codec = CODEC_ID_FLV1;
+@@ -834,7 +834,7 @@
+ fprintf(stderr, "Video Frame PTS: not set\n");
+ }
+ if (c->coded_frame->key_frame) {
+- packet.flags |= PKT_FLAG_KEY;
++ packet.flags |= AV_PKT_FLAG_KEY;
+ }
+ packet.stream_index = video_stream->index;
+ packet.data = video_buffer;
+@@ -1314,7 +1314,7 @@
+ case FFMPEG_PRESET_XVID:
+ if(preset == FFMPEG_PRESET_XVID) {
+ rd->ffcodecdata.type = FFMPEG_AVI;
+- rd->ffcodecdata.codec = CODEC_ID_XVID;
++ rd->ffcodecdata.codec = CODEC_ID_MPEG4;
+ }
+ else if(preset == FFMPEG_PRESET_THEORA) {
+ rd->ffcodecdata.type = FFMPEG_OGG; // XXX broken
+@@ -1357,7 +1357,7 @@
+ }
+ }
+ else if(rd->imtype == R_XVID) {
+- if(rd->ffcodecdata.codec != CODEC_ID_XVID) {
++ if(rd->ffcodecdata.codec != CODEC_ID_MPEG4) {
+ ffmpeg_set_preset(rd, FFMPEG_PRESET_XVID);
+ audio= 1;
+ }
+diff -burN blender-2.57.orig//source/blender/imbuf/intern/anim_movie.c blender-2.57/source/blender/imbuf/intern/anim_movie.c
+--- blender-2.57.orig//source/blender/imbuf/intern/anim_movie.c 2011-04-14 17:19:18.000000000 +0200
++++ blender-2.57/source/blender/imbuf/intern/anim_movie.c 2011-05-04 03:33:56.724566283 +0200
+@@ -566,7 +566,7 @@
+ videoStream=-1;
+ for(i=0; i<pFormatCtx->nb_streams; i++)
+ if(get_codec_from_stream(pFormatCtx->streams[i])->codec_type
+- == CODEC_TYPE_VIDEO) {
++ == AVMEDIA_TYPE_VIDEO) {
+ videoStream=i;
+ break;
+ }
+@@ -830,10 +830,10 @@
+ && position - (anim->curposition + 1) < anim->preseek) {
+ while(av_read_frame(anim->pFormatCtx, &packet)>=0) {
+ if (packet.stream_index == anim->videoStream) {
+- avcodec_decode_video(
++ avcodec_decode_video2(
+ anim->pCodecCtx,
+ anim->pFrame, &frameFinished,
+- packet.data, packet.size);
++ &packet);
+
+ if (frameFinished) {
+ anim->curposition++;
+@@ -915,9 +915,9 @@
+
+ while(av_read_frame(anim->pFormatCtx, &packet)>=0) {
+ if(packet.stream_index == anim->videoStream) {
+- avcodec_decode_video(anim->pCodecCtx,
++ avcodec_decode_video2(anim->pCodecCtx,
+ anim->pFrame, &frameFinished,
+- packet.data, packet.size);
++ &packet);
+
+ if (seek_by_bytes && preseek_count > 0) {
+ preseek_count--;
+diff -burN blender-2.57.orig//source/blender/imbuf/intern/util.c blender-2.57/source/blender/imbuf/intern/util.c
+--- blender-2.57.orig//source/blender/imbuf/intern/util.c 2011-04-14 17:19:18.000000000 +0200
++++ blender-2.57/source/blender/imbuf/intern/util.c 2011-05-04 02:15:26.369208909 +0200
+@@ -292,7 +292,7 @@
+ for(i=0; i<pFormatCtx->nb_streams; i++)
+ if(pFormatCtx->streams[i] &&
+ get_codec_from_stream(pFormatCtx->streams[i]) &&
+- (get_codec_from_stream(pFormatCtx->streams[i])->codec_type==CODEC_TYPE_VIDEO))
++ (get_codec_from_stream(pFormatCtx->streams[i])->codec_type==AVMEDIA_TYPE_VIDEO))
+ {
+ videoStream=i;
+ break;
+diff -burN blender-2.57.orig//source/blender/makesrna/intern/rna_scene.c blender-2.57/source/blender/makesrna/intern/rna_scene.c
+--- blender-2.57.orig//source/blender/makesrna/intern/rna_scene.c 2011-04-14 17:18:53.000000000 +0200
++++ blender-2.57/source/blender/makesrna/intern/rna_scene.c 2011-05-04 02:19:10.326319453 +0200
+@@ -2135,7 +2135,7 @@
+ {CODEC_ID_HUFFYUV, "HUFFYUV", 0, "HuffYUV", ""},
+ {CODEC_ID_DVVIDEO, "DV", 0, "DV", ""},
+ {CODEC_ID_H264, "H264", 0, "H.264", ""},
+- {CODEC_ID_XVID, "XVID", 0, "Xvid", ""},
++ {CODEC_ID_MPEG4, "XVID", 0, "Xvid", ""},
+ {CODEC_ID_THEORA, "THEORA", 0, "Theora", ""},
+ {CODEC_ID_FLV1, "FLASH", 0, "Flash Video", ""},
+ {CODEC_ID_FFV1, "FFV1", 0, "FFmpeg video codec #1", ""},
+diff -burN blender-2.57.orig//source/gameengine/VideoTexture/VideoFFmpeg.cpp blender-2.57/source/gameengine/VideoTexture/VideoFFmpeg.cpp
+--- blender-2.57.orig//source/gameengine/VideoTexture/VideoFFmpeg.cpp 2011-04-14 17:13:34.000000000 +0200
++++ blender-2.57/source/gameengine/VideoTexture/VideoFFmpeg.cpp 2011-05-04 02:49:31.147348425 +0200
+@@ -182,7 +182,7 @@
+ {
+ if(formatCtx->streams[i] &&
+ get_codec_from_stream(formatCtx->streams[i]) &&
+- (get_codec_from_stream(formatCtx->streams[i])->codec_type==CODEC_TYPE_VIDEO))
++ (get_codec_from_stream(formatCtx->streams[i])->codec_type==AVMEDIA_TYPE_VIDEO))
+ {
+ videoStream=i;
+ break;
+@@ -368,9 +368,9 @@
+ BLI_remlink(&video->m_packetCacheBase, cachePacket);
+ // use m_frame because when caching, it is not used in main thread
+ // we can't use currentFrame directly because we need to convert to RGB first
+- avcodec_decode_video(video->m_codecCtx,
++ avcodec_decode_video2(video->m_codecCtx,
+ video->m_frame, &frameFinished,
+- cachePacket->packet.data, cachePacket->packet.size);
++ &cachePacket->packet);
+ if(frameFinished)
+ {
+ AVFrame * input = video->m_frame;
+@@ -641,7 +641,7 @@
+ if (m_captRate <= 0.f)
+ m_captRate = defFrameRate;
+ sprintf(rateStr, "%f", m_captRate);
+- av_parse_video_frame_rate(&frameRate, rateStr);
++ av_parse_video_rate(&frameRate, rateStr);
+ // populate format parameters
+ // need to specify the time base = inverse of rate
+ formatParams.time_base.num = frameRate.den;
+@@ -924,10 +924,10 @@
+ {
+ if (packet.stream_index == m_videoStream)
+ {
+- avcodec_decode_video(
++ avcodec_decode_video2(
+ m_codecCtx,
+ m_frame, &frameFinished,
+- packet.data, packet.size);
++ &packet);
+ if (frameFinished)
+ {
+ m_curPosition = (long)((packet.dts-startTs) * (m_baseFrameRate*timeBase) + 0.5);
+@@ -999,9 +999,9 @@
+ {
+ if(packet.stream_index == m_videoStream)
+ {
+- avcodec_decode_video(m_codecCtx,
++ avcodec_decode_video2(m_codecCtx,
+ m_frame, &frameFinished,
+- packet.data, packet.size);
++ &packet);
+ // remember dts to compute exact frame number
+ dts = packet.dts;
+ if (frameFinished && !posFound)
+diff -burN blender-2.57.orig//source/gameengine/VideoTexture/VideoFFmpeg.h blender-2.57/source/gameengine/VideoTexture/VideoFFmpeg.h
+--- blender-2.57.orig//source/gameengine/VideoTexture/VideoFFmpeg.h 2011-04-14 17:13:34.000000000 +0200
++++ blender-2.57/source/gameengine/VideoTexture/VideoFFmpeg.h 2011-05-04 03:11:53.106002831 +0200
+@@ -34,6 +34,7 @@
+ #include <libavformat/avformat.h>
+ #include <libavcodec/avcodec.h>
+ #include <libavutil/rational.h>
++#include <libavutil/parseutils.h>
+ #include <libswscale/swscale.h>
+ #include "DNA_listBase.h"
+ #include "BLI_threads.h"
diff --git a/media-gfx/blender/metadata.xml b/media-gfx/blender/metadata.xml
index de0f42c935e6..ef1de5bbae43 100644
--- a/media-gfx/blender/metadata.xml
+++ b/media-gfx/blender/metadata.xml
@@ -5,22 +5,55 @@
<herd>graphics</herd>
-
<maintainer>
<email>lu_zero@gentoo.org</email>
<name>Luca Barbato</name>
</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>
+ <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='blender-game'>
- Adds game engine support to blender
+ Adds Game Engine support to Blender (2.4* ebuilds).
</flag>
- <flag name='player'>
- Enable blender player
+ <flag name='game-engine'>
+ Adds Game Engine support to Blender (2.5* ebuilds).
+ </flag>
+ <flag name='contrib'>
+ Install contrib scripts.
+ </flag>
+ <flag name='collada'>
+ Add support for Collada interchange format.
</flag>
<flag name='verse'>
- Adds verse clustering features to blender
+ 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>