diff options
author | Artem Vorotnikov | 2015-08-08 14:36:48 +0300 |
---|---|---|
committer | Artem Vorotnikov | 2015-08-08 14:36:48 +0300 |
commit | 8d2ffe0a986d28433d8eb0473ae467d845cbbe20 (patch) | |
tree | 9bd5c367a2eb4b45ad7ddbdd8cfcc5fa88253cb8 | |
download | aur-8d2ffe0a986d28433d8eb0473ae467d845cbbe20.tar.gz |
Initial import
-rw-r--r-- | .SRCINFO | 54 | ||||
-rw-r--r-- | PKGBUILD | 170 | ||||
-rw-r--r-- | etlegacy.install | 38 |
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 +} |