summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 784d0a278c7c5b6de23d5d9c15c7cbfee29ea280 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# Maintainer: Adam Brunnmeier <adam.brunnmeier@gmail.com>
pkgname=blender-2.8-bin
pkgver=2.80.190609.030c7df19da9
pkgrel=1
pkgdesc="A fully integrated 3D graphics creation suite"
arch=('i686' 'x86_64')
url="https://www.blender.org"
license=('GPL')
# dependencies copied from https://www.archlinux.org/packages/community/x86_64/blender/
depends=('libpng' 'libtiff' 'openexr' 'python' 'desktop-file-utils' 'python-requests'
         'shared-mime-info' 'hicolor-icon-theme' 'xdg-utils' 'glew' 'openjpeg' 'python-numpy'
         'freetype2' 'openal' 'ffmpeg' 'fftw' 'boost-libs' 'opencollada' 'alembic'
         'openimageio' 'libsndfile' 'jack' 'opencolorio' 'openshadinglanguage'
         'jemalloc' 'libspnav' 'ptex' 'opensubdiv' 'openvdb' 'log4cplus' 'sdl2')
makedepends=('wget')
provides=("${pkgname%-bin}")
conflicts=("${pkgname%-bin}")
# use different url per version to trigger rebuilds when package updates.
# using $pkgver instead of $_inc is not possible (see comments on AUR-website)
_inc=1906
source=("download$_inc::https://builder.blender.org/download/")
md5sums=('SKIP')

_setvars() {
	cd "$srcdir"
	local regex="blender-(2.8[^-]*)-([^-]*)-linux-[^-]*-$CARCH.tar.bz2" && [[ $(cat download$_inc) =~ $regex ]]
	_full=${BASH_REMATCH[0]}
	_upstreamversion=${BASH_REMATCH[1]}
	_commit=${BASH_REMATCH[2]}
	local regex="$_full.*?<small>([[:alnum:] ]+), ([[:digit:]:]+) - $_commit" && [[ $(cat download$_inc) =~ $regex ]]
	_date=$(date --date="${BASH_REMATCH[1]} ${BASH_REMATCH[2]}" "+%y%m%d")
}

pkgver() {
	_setvars
	printf "$_upstreamversion.$_date.$_commit"
}

build() {
	_setvars
	cd "$srcdir"
	wget -O- "https://builder.blender.org/download//$_full" | tar xj
	cd "${_full%.tar.bz2}"
	# Remove included Python installation, so system Python is used instead
	rm -rf "$_upstreamversion/python"
	sed -i 's/=blender/=blender-2.8/' blender.desktop
	sed -i 's/=Blender/=Blender-2.8/' blender.desktop
	for f in icons/*/apps/blender.* ; do chmod 644 $f && mv $f "${f%.*}-2.8.${f#*.}" ; done
	echo -n '[Thumbnailer Entry]
TryExec=blender-2.8-thumbnailer.py
Exec=blender-2.8-thumbnailer.py %u %o
MimeType=application/x-blender;
' > blender.thumbnailer
	echo -e '#!/bin/bash\nexec /usr/share/blender/blender $@' > blender-2.8
	echo -e '#!/bin/bash\nexec /usr/share/blender/blender-softwaregl $@' > blender-2.8-softwaregl
}

package() {
	_setvars
	cd "$srcdir/${_full%.tar.bz2}"
	install -Dm644 blender.desktop "$pkgdir/usr/share/applications/blender-2.8.desktop"
	install -Dm644 blender.thumbnailer "$pkgdir/usr/share/thumbnailers/blender-2.8.thumbnailer"
	mkdir -p "$pkgdir/usr/share/icons/hicolor/"
	cp -r icons/* "$pkgdir/usr/share/icons/hicolor/"
	mkdir -p "$pkgdir/usr/share/blender/"
	cp -r $_upstreamversion "$pkgdir/usr/share/blender/$_upstreamversion"
	# binaries path workaround
	install -Dm755 blender "$pkgdir/usr/share/blender/blender"
	install -Dm755 blender-2.8 "$pkgdir/usr/bin/blender-2.8"
	install -Dm755 blender-softwaregl "$pkgdir/usr/share/blender/blender-softwaregl"
	install -Dm755 blender-2.8-softwaregl "$pkgdir/usr/bin/blender-2.8-softwaregl"
	install -Dm755 blender-thumbnailer.py "$pkgdir/usr/bin/blender-2.8-thumbnailer.py"
}