# Maintainer: Andreas Grapentin # Contributor: Márcio Silva # Maintainer (Arch): Sven-Hendrik Haase # Contributor (Arch): John Sowiak # Contributor (Arch): tobias # 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. # _gittag=v2.79-rc2 _gitcommit=3c3d0898b0c1a1d7da70f4a1778d4360b3cfe5c8 pkgbase='blender' pkgname=("${pkgbase}" "${pkgbase}-addon-gimp" "${pkgbase}-addon-povray") pkgver=2.79rc2 #[[ -n $_gitcommit ]] && pkgver=${pkgver}.git1.${_gitcommit} pkgrel='2.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.blender.org" depends=( 'alembic' 'boost-libs' 'desktop-file-utils' 'ffmpeg' 'fftw' 'freetype2' 'glew' 'hicolor-icon-theme' 'jack' 'jemalloc' 'libpng' 'libsndfile' 'libspnav' 'libtiff' 'log4cplus' 'openal' 'opencollada' 'opencolorio' 'openexr' 'openimageio' 'openjpeg' 'openshadinglanguage' 'opensubdiv' 'openvdb' 'ptex' 'python' 'python-requests' 'sdl2' 'shared-mime-info' 'xdg-utils') makedepends=('cmake' 'boost' 'mesa' 'git' 'llvm35') options=('!strip') source=("git://git.blender.org/blender-addons.git" "git://git.blender.org/blender-addons-contrib.git" "git://git.blender.org/blender-translations.git" "git://git.blender.org/blender-dev-tools.git" "git://git.blender.org/scons.git") if [[ -n $_gittag ]]; then source+=("${pkgname}-${pkgver}::git://git.blender.org/blender.git#tag=${_gittag}") elif [[ -n $_gitcommit ]]; then source+=("${pkgname}-${pkgver}::git://git.blender.org/blender.git#commit=${_gitcommit}") fi md5sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP') prepare() { cd "${srcdir}/${pkgbase}-${pkgver}" git submodule init git config submodule.'release/scripts/addons'.url "${srcdir}/blender-addons" git config submodule.'release/scripts/addons_contrib'.url "${srcdir}/blender-addons-contrib" git config submodule.'release/datafiles/locale'.url "${srcdir}/blender-translations" git config submodule.'source/tools'.url "${srcdir}/blender-dev-tools" 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 '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' } build() { cd "${srcdir}/${pkgbase}-${pkgver}" mkdir build && cd build [[ "${CARCH}" = 'x86_64' || "${CARCH}" = 'i686' ]] && \ _SSE='ON' _SSE2='ON' || _SSE='OFF' _SSE2='OFF' cmake -C../build_files/cmake/config/blender_release.cmake .. \ -DCMAKE_INSTALL_PREFIX='/usr' \ -DCMAKE_BUILD_TYPE=Release \ -DWITH_INSTALL_PORTABLE=OFF \ -DWITH_PYTHON_INSTALL=OFF \ -DOPENIMAGEIO_ROOT_DIR=/usr \ -DWITH_LLVM=ON \ -DWITH_SYSTEM_OPENJPEG=ON \ -DWITH_GL_PROFILE_CORE=OFF \ -DWITH_GL_PROFILE_ES20=OFF \ -DLLVM_VERSION=3.6 \ -DLLVM_STATIC=ON \ -DWITH_CYCLES_CUDA_BINARIES='OFF' \ -DWITH_CYCLES_DEVICE_CUDA='OFF' \ -DWITH_CYCLES_PTEX=OFF \ -DPYTHON_VERSION=3.6 \ -DPYTHON_LIBPATH=/usr/lib \ -DPYTHON_LIBRARY=python3.6m \ -DPYTHON_INCLUDE_DIRS=/usr/include/python3.6m \ -DSUPPORT_SSE_BUILD="${_SSE}" \ -DSUPPORT_SSE2_BUILD="${_SSE2}" make } 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 install -Dm755 ../release/bin/${pkgbase}-softwaregl "${pkgdir}/usr/bin/${pkgbase}-softwaregl" 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}" }