summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 0a76cc6137690271357863cf989bab03a12d0983 (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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# Maintainer: Viech <viech unvanquished net>
# Contributor: Gereon Schomber
# Contributor: Martin F. Schumann

pkgname=unvanquished
pkgver=0.51.2
pkgrel=1
pkgdesc='A team-based, fast-paced, fps/rts hybrid game which pits aliens against humans.'
arch=('x86_64')
url='http://www.unvanquished.net'
license=('GPL3')
makedepends=('cmake')
depends=("unvanquished-data>=${pkgver}"
         'zlib' 'gmp' 'nettle' 'geoip' 'curl' 'sdl2' 'glew' 'libpng'
         'libjpeg-turbo' 'libwebp>=0.2.0' 'freetype2' 'openal' 'libogg'
         'libvorbis' 'speex' 'libtheora' 'opusfile' 'ncurses' 'xdg-utils'
         'desktop-file-utils' 'shared-mime-info' 'hicolor-icon-theme')
provides=('unvanquished')
conflicts=('unvanquished-git')
options=('emptydirs' '!strip')
backup=('etc/conf.d/unvanquished.conf'
        'etc/unvanquished/server.cfg'
        'etc/unvanquished/maprotation.cfg')
install=unvanquished.install

# Unvanquished refers to the game's branding and gamelogic.
# Note that the gamelogic is not compiled here but shipped in unvanquished-data.
_unvver="archlinux/${pkgver}-${pkgrel}"
_unvdir="Unvanquished-${_unvver/\//-}"

# Dæmon is the game's engine.
_daemonver="v${pkgver}"
_daemondir="Daemon-${pkgver}"

# HACK: One-time mismatch between Unvanquished and Dæmon
# ------------------------------------------------------
_daemonver="v0.51.1"
_daemondir="Daemon-0.51.1"
# ------------------------------------------------------

# breakpad, crunch, and recastnavigation are Dæmon submodules.
_breakpadver=15fbc760aa1e4db2a3b36493ff3b4cf49e3df282
_crunchver=559a1b045b50b5f716294b47325c0170c8236dbc
_recastver=6b68934d6d2715501e01b1e115413cefaa0aa7d3
_breakpaddir="breakpad-${_breakpadver}"
_crunchdir="crunch-${_crunchver}"
_recastdir="recastnavigation-${_recastver}"

# NaCL SDK is a buildtime dependency of Dæmon.
# Note that due to enormous compile times, we use a binary distribution.
_naclsdkbasever="4"
_naclsdkarch=linux64
_naclsdkver="${_naclsdkarch}-${_naclsdkbasever}"
_naclsdkdir="${_naclsdkver}"

source=("unvanquished.install"
        "unvanquished_${pkgver}.tar.gz::https://github.com/Unvanquished/Unvanquished/archive/${_unvver}.tar.gz"
        "daemon_${pkgver}.tar.gz::https://github.com/DaemonEngine/Daemon/archive/${_daemonver}.tar.gz"
        "breakpad_${_breakpadver}.tar.gz::https://github.com/DaemonEngine/breakpad/archive/${_breakpadver}.tar.gz"
        "crunch_${_crunchver}.tar.gz::https://github.com/DaemonEngine/crunch/archive/${_crunchver}.tar.gz"
        "recast_${_recastver}.tar.gz::https://github.com/DaemonEngine/recastnavigation/archive/${_recastver}.tar.gz"
	"naclsdk_${_naclsdkver}.tar.bz2::https://dl.unvanquished.net/deps/${_naclsdkver}.tar.bz2")

md5sums=('6d9430b5b06b93a43a1cb79e14637f0b'
         '15a63c77160500de3ed3d69a471d458e'
         '589523f6028bcd3869505b6a3968c411'
         '256f388e18018f638958a47f53f2a8d9'
         '356bbda9890f48dca1db3b80001d40c0'
         '2b1989f17e3ae0cab77cae8d397deafb'
         '2ba12c71625919ddc282172b74fa4887')

# The prepare function mimics the git submodule dance.
prepare() {
	cd "${srcdir}"

	# From Unvanquished: Remove an empty Dæmon submodule directory.
	rmdir --ignore-fail-on-non-empty "${_unvdir}/daemon"

	# From Dæmon: Remove empty submodule directories.
	rmdir --ignore-fail-on-non-empty "${_daemondir}/libs/breakpad"
	rmdir --ignore-fail-on-non-empty "${_daemondir}/libs/crunch"
	rmdir --ignore-fail-on-non-empty "${_daemondir}/libs/recastnavigation"

	# Link Dæmon in the Unvanquished source tree.
	ln -sfr "${_daemondir}"          "${_unvdir}/daemon"

	# Link the NaCL SDK in the Dæmon source tree.
	ln -sfr "${_naclsdkdir}"         "${_unvdir}/daemon/external_deps/${_naclsdkdir}"

	# Link Dæmon's submodules.
	ln -sfr "${_breakpaddir}"        "${_daemondir}/libs/breakpad"
	ln -sfr "${_crunchdir}"          "${_daemondir}/libs/crunch"
	ln -sfr "${_recastdir}"          "${_daemondir}/libs/recastnavigation"
}

build() {
	cd "${srcdir}/${_unvdir}"

	mkdir -p build
	cd build

	cmake -D BUILD_CGAME=OFF -D BUILD_SGAME=OFF ..
	make
}

package() {
	# create installation directories
	cd "${pkgdir}"

	install -dm755 \
		etc/conf.d \
		etc/unvanquished \
		usr/bin \
		usr/lib/systemd/system \
		usr/lib/unvanquished \
		usr/share/applications \
		usr/share/icons/hicolor/128x128/apps \
		usr/share/licenses/unvanquished \
		usr/share/unvanquished/pkg \
		var/lib/unvanquished-server/config \
		var/lib/unvanquished-server/game

	# install content
	cd "${srcdir}/${_unvdir}"

	install -m 644 debian/unvanquished.png "${pkgdir}/usr/share/icons/hicolor/128x128/apps/"
	install -m 644 COPYING.txt             "${pkgdir}/usr/share/licenses/unvanquished/"

	cd "${srcdir}/${_unvdir}/build"

	install -m 755 daemon                  "${pkgdir}/usr/lib/unvanquished/"
	install -m 755 daemonded               "${pkgdir}/usr/lib/unvanquished/"
	install -m 755 daemon-tty              "${pkgdir}/usr/lib/unvanquished/"
	install -m 755 irt_core-x86*.nexe      "${pkgdir}/usr/lib/unvanquished/"
	install -m 755 nacl_helper_bootstrap   "${pkgdir}/usr/lib/unvanquished/"
	install -m 755 nacl_loader             "${pkgdir}/usr/lib/unvanquished/"

	# install starters and dedicated server config
	cd "${srcdir}/${_unvdir}/archlinux"

	install -m 755 unvanquished.sh         "${pkgdir}/usr/bin/unvanquished"
	install -m 755 unvanquished-tty.sh     "${pkgdir}/usr/bin/unvanquished-tty"
	install -m 644 unvanquished.conf       "${pkgdir}/etc/conf.d/"
	install -m 644 unvanquished.service    "${pkgdir}/usr/lib/systemd/system/"
	install -m 644 unvanquished.desktop    "${pkgdir}/usr/share/applications/"
	install -m 644 configs/maprotation.cfg "${pkgdir}/etc/unvanquished/"
	install -m 644 configs/server.cfg      "${pkgdir}/etc/unvanquished/"

	# setup server home directory
	cd "${pkgdir}/var/lib/unvanquished-server/config"

	ln -s ../../../../etc/unvanquished/server.cfg .

	cd "${pkgdir}/var/lib/unvanquished-server/game"

	ln -s ../../../../etc/unvanquished/maprotation.cfg .
}