summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtem Vorotnikov2015-08-08 14:36:48 +0300
committerArtem Vorotnikov2015-08-08 14:36:48 +0300
commit8d2ffe0a986d28433d8eb0473ae467d845cbbe20 (patch)
tree9bd5c367a2eb4b45ad7ddbdd8cfcc5fa88253cb8
downloadaur-8d2ffe0a986d28433d8eb0473ae467d845cbbe20.tar.gz
Initial import
-rw-r--r--.SRCINFO54
-rw-r--r--PKGBUILD170
-rw-r--r--etlegacy.install38
3 files changed, 262 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..b69d24c48d2c
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,54 @@
+pkgbase = etlegacy-git
+ pkgver = LATEST
+ pkgrel = 1
+ url = http://etlegacy.com/
+ arch = i686
+ arch = x86_64
+ license = GPL3
+ makedepends = git
+ makedepends = cmake
+ makedepends = zip
+ makedepends = alsa-lib
+ makedepends = curl
+ makedepends = freetype2
+ makedepends = glew
+ makedepends = libjpeg-turbo
+ makedepends = libvorbis
+ makedepends = lua
+ makedepends = sdl2
+ options = !strip
+ source = git+https://github.com/etlegacy/etlegacy.git
+ sha512sums = SKIP
+
+pkgname = etlegacy-git
+ pkgdesc = Wolfenstein: Enemy Territory 2.60b compatible client/server (etlegacy engine)
+ install = etlegacy.install
+ depends = etlegacy-mod-git
+ depends = alsa-lib
+ depends = curl
+ depends = freetype2
+ depends = gcc-libs
+ depends = glew
+ depends = libjpeg-turbo
+ depends = libvorbis
+ depends = lua
+ depends = sdl2
+ provides = etlegacy
+ conflicts = etlegacy
+ backup = etc/xdg/etlegacy/etmain/etl_server.cfg
+ backup = etc/xdg/etlegacy/etmain/legacy.cfg
+ backup = etc/xdg/etlegacy/etmain/campaigncycle.cfg
+ backup = etc/xdg/etlegacy/etmain/lmscycle.cfg
+ backup = etc/xdg/etlegacy/etmain/mapvotecycle.cfg
+ backup = etc/xdg/etlegacy/etmain/objectivecycle.cfg
+ conflicts_x86_64 = etlegacy64-git
+ replaces_x86_64 = etlegacy64-git
+
+pkgname = etlegacy-mod-git
+ pkgdesc = Wolfenstein: Enemy Territory 2.60b compatible client/server (etlegacy mod)
+ depends = enemy-territory-data
+ depends = geoip-database
+ optdepends = etlegacy-omnibot: artificial intelligence (AI) controlled opponent
+ provides = etlegacy-mod
+ conflicts = etlegacy-mod
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..8f1e3e1b205e
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,170 @@
+# Maintainer: Artem 'skybon' Vorotnikov <artem@vorotnikov.me>
+# Contributor: Remy 'spyhawk' Marquis <remy.marquis@gmail.com>
+
+_gitname=etlegacy
+pkgbase=$_gitname-git
+pkgname=('etlegacy-git' 'etlegacy-mod-git')
+pkgver=LATEST
+pkgrel=1
+arch=('i686' 'x86_64')
+url="http://etlegacy.com/"
+license=('GPL3')
+makedepends=('git' 'cmake' 'zip' 'alsa-lib' 'curl' 'freetype2' 'glew' 'libjpeg-turbo' 'libvorbis' 'lua' 'sdl2')
+options=(!strip)
+source=('git+https://github.com/etlegacy/etlegacy.git')
+sha512sums=('SKIP')
+
+pkgver() {
+ cd "$srcdir/$_gitname"
+ git describe --always | sed -r 's/^v//;s/-/./g;'
+}
+
+prepare() {
+ # cleanup
+ [[ -e "$HOME/.etlegacy/legacy" ]] && cd $HOME/.etlegacy/legacy && rm -f *.so && rm -f *.dat
+ cd "$srcdir/$_gitname"
+ rm -rf CMakeFiles include legacy glsl
+ rm -f etl etlded *.so *.a *.cmake CMakeCache.txt install_manifest.txt
+}
+
+build() {
+ cd "$srcdir/$_gitname"
+
+ # build type and path
+ cmakeopts+=(
+ "-D CMAKE_BUILD_TYPE=Debug"
+ "-D CMAKE_INSTALL_PREFIX=/usr"
+ "-D INSTALL_DEFAULT_BASEDIR=/usr/lib/etlegacy"
+ "-D INSTALL_DEFAULT_BINDIR=bin"
+ "-D INSTALL_DEFAULT_MODDIR=lib/etlegacy"
+ )
+
+ # arch && cross-compilation
+ cmakeopts+=(
+ "-D CMAKE_LIBRARY_PATH=/usr/lib"
+ "-D CMAKE_INCLUDE_PATH=/usr/include"
+ "-D CROSS_COMPILE32=0"
+ )
+
+ # options
+ cmakeopts+=(
+ "-D BUILD_SERVER=1"
+ "-D BUILD_CLIENT=1"
+ "-D BUILD_MOD=1"
+ )
+ # packing
+ cmakeopts+=(
+ "-D BUILD_MOD_PK3=1"
+ "-D BUILD_PAK3_PK3=1"
+ )
+ # bundled libs
+ cmakeopts+=(
+ "-D BUNDLED_LIBS=0"
+ "-D BUNDLED_SDL=0"
+ "-D BUNDLED_CURL=0"
+ "-D BUNDLED_JPEG=0"
+ "-D BUNDLED_LUA=0"
+ "-D BUNDLED_OGG_VORBIS=0"
+ "-D BUNDLED_GLEW=0"
+ "-D BUNDLED_FREETYPE=0"
+ "-D BUNDLED_JANSSON=0"
+ )
+ # features
+ cmakeopts+=(
+ "-D FEATURE_CURL=1"
+ "-D FEATURE_OGG_VORBIS=1"
+ "-D FEATURE_OPENAL=0"
+ "-D FEATURE_FREETYPE=1"
+ "-D FEATURE_TRACKER=0"
+ "-D FEATURE_LUA=1"
+ "-D FEATURE_MULTIVIEW=0"
+ "-D FEATURE_ANTICHEAT=1"
+ "-D FEATURE_CURSES=0"
+ "-D FEATURE_AUTOUPDATE=0"
+ "-D FEATURE_RENDERER2=0"
+ "-D FEATURE_RENDERER_GLES=0"
+ "-D FEATURE_IPV6=0"
+ "-D FEATURE_IRC_CLIENT=0"
+ "-D RENDERER_DYNAMIC=0"
+ "-D FEATURE_WINDOWS_CONSOLE=1"
+ "-D FEATURE_GETTEXT=1"
+ "-D FEATURE_JANSSON=0"
+ "-D FEATURE_SERVERMDX=1"
+ "-D FEATURE_LIVEAUTH=1"
+ )
+ # omnibot
+ cmakeopts+=(
+ "-D FEATURE_OMNIBOT=1"
+ "-D INSTALL_OMNIBOT=0"
+ )
+
+ cmake ${cmakeopts[@]} .
+ make
+}
+
+package_etlegacy-git() {
+ pkgdesc="Wolfenstein: Enemy Territory 2.60b compatible client/server (etlegacy engine)"
+ depends=('etlegacy-mod-git' 'alsa-lib' 'curl' 'freetype2' 'gcc-libs' 'glew' 'libjpeg-turbo' 'libvorbis' 'lua' 'sdl2')
+ provides=('etlegacy')
+ conflicts=('etlegacy')
+ conflicts_x86_64=('etlegacy64-git')
+ replaces_x86_64=('etlegacy64-git')
+ backup=('etc/xdg/etlegacy/etmain/etl_server.cfg'
+ 'etc/xdg/etlegacy/etmain/legacy.cfg'
+ 'etc/xdg/etlegacy/etmain/campaigncycle.cfg'
+ 'etc/xdg/etlegacy/etmain/lmscycle.cfg'
+ 'etc/xdg/etlegacy/etmain/mapvotecycle.cfg'
+ 'etc/xdg/etlegacy/etmain/objectivecycle.cfg')
+ install=etlegacy.install
+
+ cd "$srcdir/$_gitname"
+
+ # engine
+ make DESTDIR="$pkgdir/" install
+
+ # mod
+ rm -rf $pkgdir/usr/lib/$_gitname/legacy
+
+ # assets
+ ln -s /usr/share/enemy-territory/etmain/{pak0,pak1,pak2}.pk3 $pkgdir/usr/lib/$_gitname/etmain/
+
+ # doc
+ mkdir -p $pkgdir/usr/share/doc/$_gitname
+ mv $pkgdir/usr/lib/$_gitname/INSTALL.txt $pkgdir/usr/share/doc/$_gitname/
+ install -m 644 docs/game/anticheat.html $pkgdir/usr/share/doc/$_gitname/
+
+ # license
+ mkdir -p $pkgdir/usr/share/licenses/$_gitname
+ mv $pkgdir/usr/lib/$_gitname/COPYING.txt $pkgdir/usr/share/licenses/$_gitname/
+
+ # systemd
+ mkdir -p $pkgdir/etc/xdg/$_gitname/etmain
+ mkdir -p $pkgdir/usr/lib/systemd/system
+ install -m 644 misc/etlegacy.conf $pkgdir/etc/xdg/$_gitname/
+ install -m 644 misc/etlegacy.service $pkgdir/usr/lib/systemd/system/
+
+ # config
+ mv $pkgdir/usr/lib/$_gitname/etmain/*.cfg $pkgdir/etc/xdg/$_gitname/etmain/
+ ln -s /etc/xdg/$_gitname/etmain/{etl_server,legacy,{campaign,lms,mapvote,objective}cycle}.cfg $pkgdir/usr/lib/$_gitname/etmain/
+
+ # server
+ mkdir -p $pkgdir/var/lib/$_gitname-server
+ ln -s /etc/xdg/$_gitname/etmain $pkgdir/var/lib/$_gitname-server/
+}
+
+package_etlegacy-mod-git() {
+ pkgdesc="Wolfenstein: Enemy Territory 2.60b compatible client/server (etlegacy mod)"
+ depends=('enemy-territory-data' 'geoip-database')
+ optdepends=('etlegacy-omnibot: artificial intelligence (AI) controlled opponent')
+ provides=('etlegacy-mod')
+ conflicts=('etlegacy-mod')
+
+ cd "$srcdir/$_gitname"
+
+ # mod
+ mkdir -p $pkgdir/usr/lib/$_gitname/legacy
+ install legacy/{*.pk3,qagame.*.so} -t $pkgdir/usr/lib/$_gitname/legacy
+
+ # geoip
+ ln -s /usr/share/GeoIP/GeoIP.dat $pkgdir/usr/lib/$_gitname/legacy
+}
diff --git a/etlegacy.install b/etlegacy.install
new file mode 100644
index 000000000000..040c26cf4192
--- /dev/null
+++ b/etlegacy.install
@@ -0,0 +1,38 @@
+_update_desktop_environment() {
+ # update icon cache
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+
+ # update desktop database
+ update-desktop-database -q
+
+ # update mime database
+ echo "==> updating mime database"
+ update-mime-database /usr/share/mime &> /dev/null
+}
+
+_add_server_user() {
+ if ! getent passwd etlegacy >/dev/null; then
+ useradd -rM -d /var/lib/etlegacy-server -c "ET Legacy dedicated server" -s /bin/false etlegacy
+ fi
+}
+
+_delete_server_user() {
+ if getent passwd etlegacy >/dev/null; then
+ userdel etlegacy
+ fi
+}
+
+_chown_server_home() {
+ chown -R etlegacy:etlegacy /var/lib/etlegacy-server
+}
+
+post_install() {
+ _add_server_user
+ _chown_server_home
+ _update_desktop_environment
+}
+
+post_remove() {
+ _delete_server_user
+ _update_desktop_environment
+}