summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorbrent s2015-05-24 03:34:17 -0400
committerbrent s2015-05-24 03:34:17 -0400
commit6ffd60f7ca507111a1cfbce5b1c7e9033005c570 (patch)
treeccf550c1d1944303c8bc7a63981eb18c1735de02
downloadaur-6ffd60f7ca507111a1cfbce5b1c7e9033005c570.tar.gz
initial commit/convert from AUR3
-rw-r--r--.SRCINFO70
-rw-r--r--PKGBUILD167
-rw-r--r--nquake-base.install42
-rw-r--r--nquake-generic.install14
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 '{}' \;
+
+}