# Contributor (Arch): John Sowiak # Contributor (Arch): tobias # Maintainer (Arch): Sven-Hendrik Haase # Maintainer : Márcio Silva # Sometimes blender.org takes some time to release patch releases and because the blender package # is broke, we sometimes need to build from git directly. # Update because I get so many queries on this: # Due to our other rolling deps, it's sometimes not possible to build Blender stable releases. # More often than not, a new openshadinglanguage breaks it and I could either backport fixes # or simply roll with a new version. I usually choose the latter when the former seems # unreasonable. # git: _git='no' _gitrev='git1' _gittagver='2.78' _gittagrev='a' _gitaddtagver="$_gittagver$_gittagrev" _gittratagver="$_gittagver" _gitdevtagver="$_gittagver" _gitcommit='e8299c81006aba1e4b926c24276ce09d70435371' # Blender _gitaddonscommit='7431449db6bd37edb3458f4afbec9034fb1a324c' # Blender Addons _gitaddonscontribcommit='f91d5e88b5b6fe7d2d7e75f95fe0bab2a99169d6' # Blender Addons Contrib _gittranslationscommit='0171e7ca48c845fce040d12a26d314d3c573f9af' # Blender Translation _gitdevtoolscommit='896c5f78952adb2d091d28c65086d46992dabdac' # Blender Dev Tools # JPEG/LLVM/PovRay/Python version: _jpgver='1.5' _llvmver='3.5' _povver='3.7' _pyver='3.5' pkgbase='blender' pkgname=("${pkgbase}" "${pkgbase}-addon-gimp" "${pkgbase}-addon-povray") # pkgver: if [[ "${_git}" = 'yes' ]]; then pkgver="${_gittagver}.${_gitrev}.${_gitcommit::7}" # Git Commit elif [[ "${_git}" = 'no' ]]; then [[ -z "${_gittagrev}" ]] && \ pkgver="${_gittagver}" # Official Release [[ "${#_gittagrev}" > 1 ]] && \ pkgver="${_gittagver}${_gittagrev/-/}" # Release Candidate [[ "${#_gittagrev}" = 1 ]] && \ pkgver="${_gittagver}.${_gittagrev}" # Revision fi pkgrel='3.parabola1' epoch='17' pkgdesc='A fully integrated 3D graphics creation suite, without nonfree CUDA support' arch=('i686' 'x86_64' 'armv7h') license=('GPL') url="http://www.${pkgbase}.org" depends=('boost-libs' 'desktop-file-utils' 'ffmpeg' 'fftw' 'freeglut' 'freetype2' 'glew' 'hicolor-icon-theme' 'jack' 'jemalloc' 'libpng' 'libsndfile' 'libspnav' 'libtiff' 'log4cplus' 'openal' 'opencolorio' 'opencollada' 'openexr' 'openimageio' 'openjpeg' 'openshadinglanguage' 'opensubdiv' 'openvdb' 'python' 'python-requests' 'sdl2' 'shared-mime-info' 'xdg-utils') # 'ptex' has been disabled since building fails makedepends=('boost' 'cmake' 'git' 'llvm35' 'mesa') # 'bullet' (boost: for cycles, booleans, audaspace and/or i18n) options=('!strip') # source: if [[ "${_git}" = 'no' ]]; then source=( # Blender "${pkgbase}-${pkgver}::git://git.${pkgbase}.org/${pkgbase}.git#tag=v${_gittagver}${_gittagrev}" # Blender addons "${pkgbase}-addons-${pkgver}::git://git.${pkgbase}.org/${pkgbase}-addons.git#tag=v${_gitaddtagver}" # Blender translations "${pkgbase}-translations-${pkgver}::git://git.${pkgbase}.org/${pkgbase}-translations.git#tag=v${_gittratagver}" # Blender Devel Tools "${pkgbase}-dev-tools-${pkgver}::git://git.${pkgbase}.org/${pkgbase}-dev-tools.git#tag=v${_gitdevtagver}" ) elif [[ "${_git}" = 'yes' ]]; then source=( # Blender "${pkgbase}-${pkgver}::git://git.${pkgbase}.org/${pkgbase}.git#commit=${_gitcommit}" # Blender addons "${pkgbase}-addons-${pkgver}::git://git.${pkgbase}.org/${pkgbase}-addons.git#commit=${_gitaddonscommit}" # Blender translations "${pkgbase}-translations-${pkgver}::git://git.${pkgbase}.org/${pkgbase}-translations.git#commit=${_gittranslationscommit}" # Blender Devel Tools "${pkgbase}-dev-tools-${pkgver}::git://git.${pkgbase}.org/${pkgbase}-dev-tools.git#commit=${_gitdevtoolscommit}" ) fi source+=( # Blender Addons Contrib "git://git.${pkgbase}.org/${pkgbase}-addons-contrib.git#commit=${_gitaddonscontribcommit}" # Scons "git://git.${pkgbase}.org/scons.git" ) md5sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP') prepare() { cd "${srcdir}/${pkgbase}-${pkgver}" git submodule init git config submodule.'release/scripts/addons'.url "${srcdir}/${pkgbase}-addons-${pkgver}" git config submodule.'release/scripts/addons_contrib'.url "${srcdir}/${pkgbase}-addons-contrib" git config submodule.'release/datafiles/locale'.url "${srcdir}/${pkgbase}-translations-${pkgver}" git config submodule.'source/tools'.url "${srcdir}/${pkgbase}-dev-tools-${pkgver}" git config submodule.'scons'.url "${srcdir}/scons" git submodule update msg 'renaming wrong OS name' [[ "$(uname -o)" = 'GNU' ]] && sed -i 's|BUILD_PLATFORM;|"GNU";|' 'source/creator/buildinfo.c' [[ "$(uname -o)" = 'GNU/Linux' ]] && sed -i 's|BUILD_PLATFORM;|"GNU/Linux";|' 'source/creator/buildinfo.c' [[ "$(uname -o)" = 'GNU/kFreeBSD' ]] && sed -i 's|BUILD_PLATFORM;|"GNU/kFreeBSD";|' 'source/creator/buildinfo.c' sed -i 's|Linux, Mac OS X, Windows and FreeBSD|GNU and BSD| s|Linux, FreeBSD|GNU and BSD| s|Unpack the archive, Then run the Blender executable.|Install from Parabola repo (pacman -S '"$pkgname"'), Then run blender.| \|Windows|d;\|Mac OS X|d s|The downloaded Blender package includes|The '"${pkgname^}"' package includes| ' 'release/text/readme.html' sed -i 's|Linux|GNU| ' 'release/scripts/'{addons/game_engine_save_as_runtime,modules/bl_i18n_utils/utils_rtl}'.py' sed -i 's| (.so under Linux, .dll under windows...)| (.so under GNU or BSD, .dll under Wine or ReactOS...)| ' 'release/scripts/'{addons/ui_translate,modules/bl_i18n_utils}'/settings.py' msg 'removing Open Source term' sed -i 's|free, open source|free| s|free and open-source|free| s|open-source and free|free| ' 'release/text/readme.html' msg 'fixing povray-libre path and desc' sed -i "s|FILE_PATH',|FILE_PATH',\n default='/usr/bin/povray',| s|both POV-Ray 3[.]7 and this script are beta|this script is beta| " 'release/scripts/addons/render_povray/__init__.py' mkdir -v 'build' } build() { cd "${srcdir}/${pkgbase}-${pkgver}/build" [[ "${CARCH}" = 'x86_64' || "${CARCH}" = 'i686' ]] && _SSE='ON' _SSE2='ON' || _SSE='OFF' _SSE2='OFF' cmake .. \ -DCMAKE_BUILD_TYPE='Release' \ -DCMAKE_INSTALL_PREFIX='/usr' \ -DCYCLES_OSL='/usr' \ -DLLVM_STATIC='ON' \ -DLLVM_VERSION="${_llvmver}" \ -DOPENIMAGEIO_ROOT_DIR='/usr' \ -DOPENJPEG_INCLUDE_DIR="/usr/include/openjpeg-${_jpgver}" \ -DPYTHON_INCLUDE_DIRS="/usr/include/python${_pyver}m" \ -DPYTHON_LIBPATH='/usr/lib' \ -DPYTHON_LIBRARY="python${_pyver}m" \ -DPYTHON_VERSION="${_pyver}" \ -DSUPPORT_SSE_BUILD="${_SSE}" \ -DSUPPORT_SSE2_BUILD="${_SSE2}" \ -DWITH_AUDASPACE='ON' \ -DWITH_ASSERT_ABORT='OFF' \ -DWITH_BLENDER='ON' \ -DWITH_BOOST='ON' \ -DWITH_BOOST_ICU='OFF' \ -DWITH_BUILDINFO='ON' \ -DWITH_BULLET='ON' \ -DWITH_CODEC_AVI='ON' \ -DWITH_CODEC_FFMPEG='ON' \ -DWITH_CODEC_SNDFILE='ON' \ -DWITH_COMPOSITOR='ON' \ -DWITH_CPP11='ON' \ -DWITH_CXX_GUARDEDALLOC='OFF' \ -DWITH_CYCLES='ON' \ -DWITH_CYCLES_CUDA_BINARIES='OFF' \ -DWITH_CYCLES_OSL='ON' \ -DWITH_CYCLES_PTEX='OFF' \ -DWITH_CYCLES_STANDALONE='OFF' \ -DWITH_CYCLES_STANDALONE_GUI='OFF' \ -DWITH_FFTW3='ON' \ -DWITH_FREESTYLE='ON' \ -DWITH_GAMEENGINE='ON' \ -DWITH_GHOST_DEBUG='OFF' \ -DWITH_GHOST_SDL='OFF' \ -DWITH_GHOST_XDND='ON' \ -DWITH_GL_EGL='OFF' \ -DWITH_GL_PROFILE_COMPAT='ON' \ -DWITH_GL_PROFILE_CORE='OFF' \ -DWITH_GL_PROFILE_ES20='ON' \ -DWITH_GLEW_ES='OFF' \ -DWITH_GLEW_MX='OFF' \ -DWITH_GLU='ON' \ -DWITH_GTESTS='OFF' \ -DWITH_HEADLESS='OFF' \ -DWITH_IK_ITASC='ON' \ -DWITH_IK_SOLVER='ON' \ -DWITH_IMAGE_CINEON='ON' \ -DWITH_IMAGE_DDS='ON' \ -DWITH_IMAGE_FRAMESERVER='ON' \ -DWITH_IMAGE_HDR='ON' \ -DWITH_IMAGE_OPENEXR='ON' \ -DWITH_IMAGE_OPENJPEG='ON' \ -DWITH_IMAGE_TIFF='ON' \ -DWITH_INPUT_NDOF='ON' \ -DWITH_INSTALL_PORTABLE='OFF' \ -DWITH_INTERNATIONAL='ON' \ -DWITH_JACK='ON' \ -DWITH_JACK_DYNLOAD='OFF' \ -DWITH_LIBMV='OFF' \ -DWITH_LLVM='ON' \ -DWITH_LZMA='ON' \ -DWITH_LZO='ON' \ -DWITH_MEM_JEMALLOC='OFF' \ -DWITH_MEM_VALGRIND='OFF' \ -DWITH_MOD_BOOLEAN='ON' \ -DWITH_MOD_CLOTH_ELTOPO='OFF' \ -DWITH_MOD_FLUID='ON' \ -DWITH_MOD_OCEANSIM='ON' \ -DWITH_MOD_REMESH='ON' \ -DWITH_MOD_SMOKE='ON' \ -DWITH_OPENAL='ON' \ -DWITH_OPENIMAGEIO='ON' \ -DWITH_OPENCOLLADA='ON' \ -DWITH_OPENCOLORIO='ON' \ -DWITH_OPENMP='ON' \ -DWITH_OPENSUBDIV='ON' \ -DWITH_OPENVDB='ON' \ -DWITH_PLAYER='ON' \ -DWITH_PYTHON='ON' \ -DWITH_PYTHON_INSTALL='OFF' \ -DWITH_PYTHON_INSTALL_NUMPY='OFF' \ -DWITH_PYTHON_INSTALL_REQUESTS='OFF' \ -DWITH_PYTHON_MODULE='OFF' \ -DWITH_PYTHON_SAFETY='OFF' \ -DWITH_PYTHON_SECURITY='ON' \ -DWITH_RAYOPTIMIZATION='ON' \ -DWITH_SDL='ON' \ -DWITH_SDL_DYNLOAD='OFF' \ -DWITH_STATIC_LIBS='OFF' \ -DWITH_SYSTEM_BULLET='OFF' \ -DWITH_SYSTEM_GLEW='ON' \ -DWITH_SYSTEM_OPENJPEG='ON' \ -DWITH_X11_XF86VMODE='ON' \ -DWITH_X11_XINPUT='ON' make # -j5 needs 48 GB of RAM while -j9 needs 64 GB } package_blender() { optdepends=('bullet: for Rigid Bodies and Physics Simulation' #'opencl-mesa: for rendering with optional Mesa OpenCL' "${pkgbase}-addon-gimp: for import GIMP images to scene" "${pkgbase}-addon-luxrender: for optional renderer and exporter with LuxRender" "${pkgbase}-addon-mitsuba: for optional renderer and exporter with Mitsuba (pcr repo)" "${pkgbase}-addon-ogre: for export to Ogre3D formats (pcr repo)" "${pkgbase}-addon-povray: for optional renderer with POV-Ray" "${pkgbase}-addon-yafaray: for optional renderer with YafaRay (pcr repo)") conflicts=("${pkgbase}-libre" "${pkgbase}-libre-spacenav" "${pkgbase}-spacenav-libre") replaces=( "${pkgbase}-libre" "${pkgbase}-libre-spacenav" "${pkgbase}-spacenav-libre") cd "${srcdir}/${pkgbase}-${pkgver}/build" make DESTDIR="${pkgdir}" install python -m compileall "${pkgdir}/usr/share/${pkgbase}" python -O -m compileall "${pkgdir}/usr/share/${pkgbase}" msg "move io_import_gimp_image_to_scene.py and render_povray to ${pkgbase}-addon-gimp and ${pkgbase}-addon-povray" [[ -d "${srcdir}/${pkgbase}-addon-gimp" ]] && rm -vr "${srcdir}/${pkgbase}-addon-gimp" [[ -d "${srcdir}/${pkgbase}-addon-povray" ]] && rm -vr "${srcdir}/${pkgbase}-addon-povray" install -vm755 -d "${srcdir}/${pkgbase}-addon-"{gimp,povray}"/usr/share/${pkgbase}/${pkgver%%[.r][a-z]*}/scripts/addons" mv -v "${pkgdir}/usr/share/${pkgbase}/${pkgver%%[.r][a-z]*}/scripts/addons/io_import_gimp_image_to_scene.py" \ "${srcdir}/${pkgbase}-addon-gimp/usr/share/${pkgbase}/${pkgver%%[.r][a-z]*}/scripts/addons" mv -v "${pkgdir}/usr/share/${pkgbase}/${pkgver%%[.r][a-z]*}/scripts/addons/render_povray" \ "${srcdir}/${pkgbase}-addon-povray/usr/share/${pkgbase}/${pkgver%%[.r][a-z]*}/scripts/addons" } package_blender-addon-gimp() { _relver="${pkgver%%[.r][a-z]*}" _minver="${_relver#*.}" pkgdesc='A addon for the Blender which allows import GIMP 2.6 images (xcf files) to scene (as polygon plane images)' arch=('any') depends=("${pkgbase}>=${epoch}:${pkgver%%[.r][a-z]*}rc1" "${pkgbase}<${epoch}:${pkgver%%[.r]*}.$(($_minver+1))rc1" 'xcftools') optdepends=('gimp: for edit xcf files') mv -v "${srcdir}/${pkgbase}-addon-gimp/usr" "${pkgdir}" } package_blender-addon-povray() { _relver="${pkgver%%[.r][a-z]*}" _minver="${_relver#*.}" pkgdesc='A addon for the Blender which allows render with POV-Ray' depends=("${pkgbase}>=${epoch}:${pkgver%%[.r][a-z]*}rc1" "${pkgbase}<${epoch}:${pkgver%%[.r]*}.$(($_minver+1))rc1" "povray>=${_povver}") mv -v "${srcdir}/${pkgbase}-addon-povray/usr" "${pkgdir}" }