diff options
author | brent s | 2015-05-24 03:34:17 -0400 |
---|---|---|
committer | brent s | 2015-05-24 03:34:17 -0400 |
commit | 6ffd60f7ca507111a1cfbce5b1c7e9033005c570 (patch) | |
tree | ccf550c1d1944303c8bc7a63981eb18c1735de02 | |
download | aur-6ffd60f7ca507111a1cfbce5b1c7e9033005c570.tar.gz |
initial commit/convert from AUR3
-rw-r--r-- | .SRCINFO | 70 | ||||
-rw-r--r-- | PKGBUILD | 167 | ||||
-rw-r--r-- | nquake-base.install | 42 | ||||
-rw-r--r-- | nquake-generic.install | 14 |
4 files changed, 293 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..37490b5f375f --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,70 @@ +pkgbase = nquake + pkgdesc = The easiest, quickest, and most popular QuakeWorld client. + pkgver = 2.3 + pkgrel = 6 + url = http://nquake.sourceforge.net/ + arch = any + license = GPL + license = Custom:CC0-1.0 + depends = unzip + depends = ezquake + source = http://qw.quakephil.com/nquake/gpl.zip + source = http://qw.quakephil.com/nquake/non-gpl.zip + source = http://qw.quakephil.com/nquake/linux.zip + source = http://qw.quakephil.com/nquake/addon-textures.zip + source = http://qw.quakephil.com/nquake/addon-clanarena.zip + source = http://qw.quakephil.com/nquake/addon-fortress.zip + source = CC0-1.0::https://creativecommons.org/publicdomain/zero/1.0/legalcode.txt + sha256sums = fa4e166d06f6af88339448a4beaa9108418168493310242c457c644e7fc1ac00 + sha256sums = 7146726f483b66951c1ed01c28127b4c2c16d60573f993427ff8d7add9f74d7d + sha256sums = 6ab154fdefca8bc7e080565ac61d74ccce7cf0599de1bb2f82cf32309d9cc767 + sha256sums = a3df93400b03e44f6d87c1781f1205fc846d555945c43b81e5381b9df9b8da04 + sha256sums = 029ccc6764fc442a50b6ceac319377f61183060d67bde8f26137c4101862b09d + sha256sums = 3e2c25baff6cdd58117b663fbd3d8570791e9dc777ebb28da8820f7934a6439d + sha256sums = a2010f343487d3f7618affe54f789f5487602331c0a8d03f49e9a7c547cf0499 + +pkgname = nquake-base + pkgdesc = The easiest, quickest, and most popular QuakeWorld client. (nQuake core) + install = nquake-base.install + license = GPL2 + optdepends = nquake-nonfree: non-GPL assets- STRONGLY recommended + optdepends = nquake-fortress: Team Fortress mod as distributed with nQuake + optdepends = nquake-arena: Clan Arena as distributed with nQuake + optdepends = nquake-textures: Hi-Res Textures as distributed with nQuake + +pkgname = nquake-nonfree + pkgdesc = The easiest, quickest, and most popular QuakeWorld client. (Non-GPL assets) + install = nquake-generic.install + license = Custom:CC0-1.0 + depends = nquake-base + optdepends = nquake-fortress: Team Fortress mod as distributed with nQuake + optdepends = nquake-arena: Clan Arena as distributed with nQuake + optdepends = nquake-textures: Hi-Res Textures as distributed with nQuake + +pkgname = nquake-fortress + pkgdesc = The easiest, quickest, and most popular QuakeWorld client. (Team Fortress, nQuake distribution) + install = nquake-generic.install + license = Custom:CC0-1.0 + depends = nquake-base + optdepends = nquake-nonfree: non-GPL assets- STRONGLY recommended + optdepends = nquake-arena: Clan Arena as distributed with nQuake + optdepends = nquake-textures: Hi-Res Textures as distributed with nQuake + +pkgname = nquake-arena + pkgdesc = The easiest, quickest, and most popular QuakeWorld client. (Clan Arena, nQuake distribution) + install = nquake-generic.install + license = Custom:CC0-1.0 + depends = nquake-base + optdepends = nquake-nonfree: non-GPL assets- STRONGLY recommended + optdepends = nquake-fortress: Team Fortress mod as distributed with nQuake + optdepends = nquake-textures: Hi-Res Textures as distributed with nQuake + +pkgname = nquake-textures + pkgdesc = The easiest, quickest, and most popular QuakeWorld client. (QRP Textures, nQuake distribution) + install = nquake-generic.install + license = Custom:CC0-1.0 + depends = nquake-base + optdepends = nquake-nonfree: non-GPL assets- STRONGLY recommended + optdepends = nquake-fortress: Team Fortress mod as distributed with nQuake + optdepends = nquake-arena: Clan Arena as distributed with nQuake + 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/. # ???? + +} diff --git a/nquake-base.install b/nquake-base.install new file mode 100644 index 000000000000..1d6ec15660f5 --- /dev/null +++ b/nquake-base.install @@ -0,0 +1,42 @@ +post_install() { + echo + echo '!!! NOTE !!!' + echo 'It is *strongly* encouraged to add users to the "users" group (usermod -aG users <username>) if they will be playing ezQuake/nQuake. + Trust me. If you hit a bug and you are using a user not in the users group, you are testing bad and you should feel bad.' + echo + echo "nQuake has been installed. Please copy the retail pak0.pak and pak1.pak files (as exactly those filenames) to /opt/quake/id1/ + and do this (as root): chmod 0775 /opt/quake/id1/*.pak ; chgrp users /opt/quake/id1/*.pak' + If you do not have the retail paks, please copy the shareware pak0.pak and /usr/share/nquake/gpl_maps.pk3 to /opt/quake/id1/ + and do (as root): chmod 0775 /opt/quake/id1/{*.pak,*.pk3} ; chgrp users /opt/quake/id1/{*.pak,*.pk3)" + echo 'You can find the shareware pak0.pak at http://qw.quakephil.com/nquake/qsw106.zip (or any of the other nQuake mirrors) (in the ID1/PAK0.PAK path).' + echo + + # This is needed to avoid having sed as a runtime/install dependency. grumble, grumble, grumble. + if [ -f "/opt/quake/ezquake/pak.lst" ]; + then + cp -a /opt/quake/ezquake/pak.lst /opt/quake/ezquake/paklst.no_nquake + echo 'nquake_ezquake.pk3' > /opt/quake/ezquake/pak.lst + cat /opt/quake/ezquake/paklst.no_nquake >> /opt/quake/ezquake/pak.lst + else + echo "Whoops. You might be doing something naughty, as I can't inject the nquake-provided ezquake.pk3 into the proper pak.lst." + echo "Things *might* or *might not* work quite as expected." + fi +} + +post_upgrade() { + + # fix group ownerships... + find /opt/quake -group games -exec chgrp users '{}' \; + +} + +post_remove() { + # Undo our stupid clever little hack. + if [ -f "/opt/quake/ezquake/paklst.no_nquake" ]; + then + mv /opt/quake/ezquake/paklst.no_nquake /opt/quake/ezquake/pak.lst + else + echo "Weird; I can't seem to remove our injected entry from the proper pak.lst." + echo "You weren't doing something naughty like arbitrarily deleting files from your filesystem, were you?" + fi +} diff --git a/nquake-generic.install b/nquake-generic.install new file mode 100644 index 000000000000..880fc5ff7c24 --- /dev/null +++ b/nquake-generic.install @@ -0,0 +1,14 @@ +post_install() { + echo + echo '!!! NOTE !!!' + echo 'It is *strongly* encouraged to add users to the "users" group (usermod -aG users <username>) if they will be playing ezQuake/nQuake. + Trust me. If you hit a bug and you are using a user not in the users group, you are testing bad and you should feel bad.' + echo +} + +post_upgrade () { + + # Fix some group ownerships... + find /opt/quake -group games -exec chgrp users '{}' \; + +} |