diff options
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 167 |
1 files changed, 167 insertions, 0 deletions
diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..afe2e4ef91b6 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,167 @@ +# Maintainer: brent s. <bts[at]square-r00t[dot]net> + +#TODO: set up permissions (e.g. fortress/{progs,sounds, etc.} to be sticky-bit and writable? that way maybe at least files can be downloaded. create maps dir for all mods too. +#TODO: change permissions for all .cfg's to 664? +#TODO: way to force mode/ownership of newly created files? umask per dir? + +pkgname=('nquake-base' 'nquake-nonfree' 'nquake-fortress' 'nquake-arena' 'nquake-textures') +pkgbase="nquake" +pkgver=2.3 +pkgrel=6 +pkgdesc="The easiest, quickest, and most popular QuakeWorld client." +url="http://nquake.sourceforge.net/" +license=('GPL' 'Custom:CC0-1.0') +depends=('unzip' 'ezquake') +arch=('any') + +_alt_pkgver=$(echo ${pkgver} | sed -e 's/\.//g') + +# http://nquake.sourceforge.net/nquake.ini for list of mirrors +_nQ_MIRROR="http://qw.quakephil.com/nquake" # NY, US +#_nQ_MIRROR="http://quakeservers.nquake.com" # Dusseldorf, DE +#_nQ_MIRROR="http://nquake.localghost.net" # Lulea, SE +#_nQ_MIRROR="http://fnu.nquake.com" # Uppsala, SE + +source=("${_nQ_MIRROR}/gpl.zip" + "${_nQ_MIRROR}/non-gpl.zip" + "${_nQ_MIRROR}/linux.zip" + "${_nQ_MIRROR}/addon-textures.zip" + "${_nQ_MIRROR}/addon-clanarena.zip" + "${_nQ_MIRROR}/addon-fortress.zip" + "CC0-1.0::https://creativecommons.org/publicdomain/zero/1.0/legalcode.txt") + +sha256sums=('fa4e166d06f6af88339448a4beaa9108418168493310242c457c644e7fc1ac00' + '7146726f483b66951c1ed01c28127b4c2c16d60573f993427ff8d7add9f74d7d' + '6ab154fdefca8bc7e080565ac61d74ccce7cf0599de1bb2f82cf32309d9cc767' + 'a3df93400b03e44f6d87c1781f1205fc846d555945c43b81e5381b9df9b8da04' + '029ccc6764fc442a50b6ceac319377f61183060d67bde8f26137c4101862b09d' + '3e2c25baff6cdd58117b663fbd3d8570791e9dc777ebb28da8820f7934a6439d' + 'a2010f343487d3f7618affe54f789f5487602331c0a8d03f49e9a7c547cf0499') + +package_nquake-base () { + + pkgdesc="The easiest, quickest, and most popular QuakeWorld client. (nQuake core)" + license=('GPL2') + install=nquake-base.install + optdepends=('nquake-nonfree: non-GPL assets- STRONGLY recommended' + 'nquake-fortress: Team Fortress mod as distributed with nQuake' + 'nquake-arena: Clan Arena as distributed with nQuake' + 'nquake-textures: Hi-Res Textures as distributed with nQuake') + + # Most of these files are in gpl.zip + install -d -m 0750 ${pkgdir}/opt/quake/{id1,qw,ezquake} + install -d -m 0750 ${pkgdir}/usr/share/nquake + install -d -m 0755 ${pkgdir}/usr/bin + # Fix ezquake packages. + install -d -m 0770 ${pkgdir}/opt/quake/ezquake/{sb/cache,temp} + # Implement the following in ezQuake + #chgrp games ${pkgdir}/usr/bin/ezquake + #chmod 0750 ${pkgdir}/usr/bin/ezquake + + # These are provided by ezQuake. + for i in player_{base,blue,cyan,green,orange,pink,purple,red,white,yellow}.png; + do + rm -f ${srcdir}/qw/skins/${i} + done + + # And the Business-End(TM). Do the thing. + cp -a ${srcdir}/id1/gpl_maps.pk3 ${pkgdir}/usr/share/nquake/. # handy to have lying around if you don't have the retail pak*.pak files + cp -a ${srcdir}/qw/frogbot.pk3 ${pkgdir}/opt/quake/qw/. # FrogBot, bots/AI + cp -a ${srcdir}/ezquake/ezquake.pk3 ${pkgdir}/opt/quake/ezquake/nquake_ezquake.pk3 # we rename to avoid conflicts in the future + cp -a ${srcdir}/ezquake/configs ${pkgdir}/opt/quake/ezquake/. # actually part of the linux.zip, not gpl.zip + + ln -sf /usr/bin/ezquake ${pkgdir}/usr/bin/nquake + + # Security is worthless without a modicum of usability. We're kind of stepping on other packagers' toes here, but... c'est la vie. + # Remind me to submit a patch to https://aur.archlinux.org/packages/ezquake/ (and incorporate into ezquake-git, which I maintain). + # Scratch that, ezquake uses "users" group. Works for me! + chgrp -R users ${pkgdir}/opt/quake/ + chgrp users ${pkgdir}/usr/share/nquake + +} + +package_nquake-nonfree () { + + pkgdesc="The easiest, quickest, and most popular QuakeWorld client. (Non-GPL assets)" + license=('Custom:CC0-1.0') # a.k.a. "public domain". per empazar @ upstream nQuake, non-GPL sources obtained from Quake community in freely distributed (but unlicensed) works. + install=nquake-generic.install + depends=('nquake-base') + optdepends=('nquake-fortress: Team Fortress mod as distributed with nQuake' + 'nquake-arena: Clan Arena as distributed with nQuake' + 'nquake-textures: Hi-Res Textures as distributed with nQuake') + + # Most of these files are in non-gpl.zip + install -d -m 0750 ${pkgdir}/opt/quake/qw/{skins,matchinfo} + install -d -m 0750 ${pkgdir}/usr/share/doc/nquake + install -d -m 0755 ${pkgdir}/usr/share/licenses/${pkgname} + cp -a ${srcdir}/CC0-1.0 ${pkgdir}/usr/share/licenses/${pkgname}/. + # And the Business-End(TM). Do the thing. + cp -a ${srcdir}/qw/matchinfo ${pkgdir}/opt/quake/qw/. # Demos + cp -a ${srcdir}/qw/models.pk3 ${pkgdir}/opt/quake/qw/. # Models + cp -a ${srcdir}/qw/nquake.pk3 ${pkgdir}/opt/quake/qw/. # nQuake tweaks + cp -a ${srcdir}/readme.txt ${pkgdir}/usr/share/doc/nquake/. # nQuake FAQ, credits, etc. + cp -a ${srcdir}/qw/readme.txt ${pkgdir}/opt/quake/qw/. # Directory structure schema + cp -a ${srcdir}/qw/skins ${pkgdir}/opt/quake/qw/. # Skins for models + +} + +package_nquake-fortress () { + + pkgdesc="The easiest, quickest, and most popular QuakeWorld client. (Team Fortress, nQuake distribution)" + license=('Custom:CC0-1.0') # a.k.a. "public domain". + install=nquake-generic.install + depends=('nquake-base') + optdepends=('nquake-nonfree: non-GPL assets- STRONGLY recommended' + 'nquake-arena: Clan Arena as distributed with nQuake' + 'nquake-textures: Hi-Res Textures as distributed with nQuake') + + # Most of these files are in addon-fortress.zip + install -d -m 0750 ${pkgdir}/opt/quake/ + install -d -m 0755 ${pkgdir}/usr/share/licenses/${pkgname} + cp -a ${srcdir}/CC0-1.0 ${pkgdir}/usr/share/licenses/${pkgname}/. + # And the Business-End(TM). Do the thing. + cp -a ${srcdir}/fortress ${pkgdir}/opt/quake/. # The entire mod + +} + +package_nquake-arena () { + + pkgdesc="The easiest, quickest, and most popular QuakeWorld client. (Clan Arena, nQuake distribution)" + license=('Custom:CC0-1.0') # a.k.a. "public domain". + install=nquake-generic.install + depends=('nquake-base') + optdepends=('nquake-nonfree: non-GPL assets- STRONGLY recommended' + 'nquake-fortress: Team Fortress mod as distributed with nQuake' + 'nquake-textures: Hi-Res Textures as distributed with nQuake') + + # Most of these files are in addon-clanarena.zip + install -d -m 0750 ${pkgdir}/opt/quake/ + install -d -m 0755 ${pkgdir}/usr/share/licenses/${pkgname} + cp -a ${srcdir}/CC0-1.0 ${pkgdir}/usr/share/licenses/${pkgname}/. + # And the Business-End(TM). Do the thing. + cp -a ${srcdir}/arena ${pkgdir}/opt/quake/. # The entire mod + cp -a ${srcdir}/prox ${pkgdir}/opt/quake/. # QuakeProxy, I think? + +} + +package_nquake-textures () { + +# TODO: is aur/quake-qrp-textures more up-to-date than the QRP in the nQuake mirrors? If so, make that a dependency and symlink or copy. + + pkgdesc="The easiest, quickest, and most popular QuakeWorld client. (QRP Textures, nQuake distribution)" + license=('Custom:CC0-1.0') # a.k.a. "public domain". + install=nquake-generic.install + depends=('nquake-base') + optdepends=('nquake-nonfree: non-GPL assets- STRONGLY recommended' + 'nquake-fortress: Team Fortress mod as distributed with nQuake' + 'nquake-arena: Clan Arena as distributed with nQuake') + + # Most of these files are in addon-textures.zip + install -d -m 0750 ${pkgdir}/opt/quake/qw + install -d -m 0755 ${pkgdir}/usr/share/licenses/${pkgname} + cp -a ${srcdir}/CC0-1.0 ${pkgdir}/usr/share/licenses/${pkgname}/. + # And the Business-End(TM). Do the thing. + cp -a ${srcdir}/qw/textures.pk3 ${pkgdir}/opt/quake/qw. # Textures + cp -a ${srcdir}/qw/readme-textures.txt ${pkgdir}/opt/quake/. # ???? + +} |