diff options
author | Anthoine Bourgeois <anthoine.bourgeois@gmail.com> | 2011-11-10 00:16:10 +0100 |
---|---|---|
committer | Anthoine Bourgeois <anthoine.bourgeois@gmail.com> | 2011-11-10 00:16:10 +0100 |
commit | 620595ca64a58d837ca31756e615f5892d7237e4 (patch) | |
tree | 524cf1583fe068d6466d9b4b4732bb8b9353aea8 | |
parent | +libspnav-0.2.2.ebuild (diff) | |
download | aluco-620595ca64a58d837ca31756e615f5892d7237e4.tar.gz aluco-620595ca64a58d837ca31756e615f5892d7237e4.tar.bz2 aluco-620595ca64a58d837ca31756e615f5892d7237e4.zip |
+blender-2.60a.ebuild
-rw-r--r-- | media-gfx/blender/Manifest | 12 | ||||
-rw-r--r-- | media-gfx/blender/blender-2.60a.ebuild | 437 | ||||
-rw-r--r-- | media-gfx/blender/files/blender-2.60-bmake.patch | 15 | ||||
-rw-r--r-- | media-gfx/blender/files/blender-2.60-doxyfile.patch | 11 | ||||
-rw-r--r-- | media-gfx/blender/files/blender-2.60-eigen.patch | 34 | ||||
-rw-r--r-- | media-gfx/blender/files/blender-2.60-glew.patch | 25 | ||||
-rw-r--r-- | media-gfx/blender/files/blender-2.60-openjpeg.patch | 25 | ||||
-rw-r--r-- | media-gfx/blender/files/blender-2.60a-CVE-2009-3850-v3.patch | 149 | ||||
-rw-r--r-- | media-gfx/blender/files/blender-2.60a-enable_site_module.patch | 32 | ||||
-rw-r--r-- | media-gfx/blender/files/blender-2.60a-linux-3.patch | 12 | ||||
-rw-r--r-- | media-gfx/blender/files/blender-desktop.patch | 20 | ||||
-rw-r--r-- | media-gfx/blender/metadata.xml | 64 |
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> |