arch-ppa/src/unvanquished/PKGBUILD

154 lines
5.5 KiB
Bash

# Maintainer: Viech <viech unvanquished net>
# Contributor: Gereon Schomber
# Contributor: Martin F. Schumann
pkgname=unvanquished
pkgver=0.52.0
pkgrel=2
pkgdesc='A team-based, fast-paced, fps/rts hybrid game which pits aliens against humans.'
arch=('x86_64')
url='https://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
# Shorthand strings.
_archive="archive/refs/tags/unvanquished/${pkgver}.tar.gz"
_suffix="unvanquished-${pkgver}"
_unvanquished="Unvanquished-${_suffix}"
_daemon="Daemon-${_suffix}"
_breakpad="breakpad-${_suffix}"
_crunch="crunch-${_suffix}"
_recast="recastnavigation-${_suffix}"
# NaCL SDK is a buildtime dependency of Dæmon.
# NOTE: Due to enormous compile times, we use a binary distribution.
_naclsdk_base_ver=5
_naclsdk_ver="linux64-${_naclsdk_base_ver}"
_naclsdk="${_naclsdk_ver}"
source=("unvanquished.install"
"unvanquished_${pkgver}.tar.gz::https://github.com/Unvanquished/Unvanquished/${_archive}"
"daemon_${pkgver}.tar.gz::https://github.com/DaemonEngine/Daemon/${_archive}"
"breakpad_${pkgver}.tar.gz::https://github.com/DaemonEngine/breakpad/${_archive}"
"crunch_${pkgver}.tar.gz::https://github.com/DaemonEngine/crunch/${_archive}"
"recastnavigation_${pkgver}.tar.gz::https://github.com/DaemonEngine/recastnavigation/${_archive}"
"naclsdk_${_naclsdk_ver}.tar.bz2::https://dl.unvanquished.net/deps/${_naclsdk_ver}.tar.bz2")
md5sums=('6d9430b5b06b93a43a1cb79e14637f0b'
'1821ecc4185d15145d78296249c7e612'
'049b3aea1db9bfbc5664d035c7ae8ee9'
'1610e084189b435a2e0614a07f8871d2'
'733baa91bb57497be69b3912bd4f40f5'
'37d95bd19b051238b03cfb30f1f27609'
'3c2cceeb5c653c4e53543fc892377f38')
# The prepare function mimics the git submodule dance.
prepare() {
cd "${srcdir}"
# From Unvanquished: Remove empty submodule directories.
rmdir --ignore-fail-on-non-empty "${_unvanquished}/daemon"
rmdir --ignore-fail-on-non-empty "${_unvanquished}/libs/recastnavigation"
# From Dæmon: Remove empty submodule directories.
rmdir --ignore-fail-on-non-empty "${_daemon}/libs/breakpad"
rmdir --ignore-fail-on-non-empty "${_daemon}/libs/crunch"
# Link Unvanquished's submodules.
ln -sfr "${_daemon}" "${_unvanquished}/daemon"
ln -sfr "${_recast}" "${_unvanquished}/libs/recastnavigation"
# Link Dæmon's submodules.
ln -sfr "${_breakpad}" "${_daemon}/libs/breakpad"
ln -sfr "${_crunch}" "${_daemon}/libs/crunch"
# Link the NaCL SDK in the Dæmon source tree.
ln -sfr "${_naclsdk}" "${_daemon}/external_deps/${_naclsdk}"
}
build() {
cd "${srcdir}/${_unvanquished}"
mkdir -p build
cd build
cmake \
-D BUILD_CGAME=OFF \
-D BUILD_SGAME=OFF \
-D USE_BREAKPAD=ON \
..
make
}
package() {
cd "${pkgdir}"
# Create installation directories.
install -d -m 755 \
etc/conf.d \
etc/unvanquished \
usr/bin \
usr/lib/systemd/system \
usr/lib/unvanquished \
usr/share/applications \
usr/share/licenses/unvanquished \
usr/share/unvanquished/pkg \
var/lib/unvanquished-server/config \
var/lib/unvanquished-server/game
# Install content.
cd "${srcdir}/${_unvanquished}"
for resolution in $(ls -c1 dist/icons/); do
icondir="${pkgdir}/usr/share/icons/hicolor/${resolution}/apps"
install -d -m 755 "${icondir}"
install -m 644 "dist/icons/${resolution}/unvanquished.png" "${icondir}"
done
install -m 644 COPYING.txt "${pkgdir}/usr/share/licenses/unvanquished/"
cd "${srcdir}/${_unvanquished}/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 crash_server "${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
# TODO: Use the distro-independent distribution files as much as possible,
# ship all archlinux-specific files with the AUR package.
cd "${srcdir}/${_unvanquished}/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 .
}