summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
authorbrent s2016-04-06 04:18:24 -0400
committerbrent s2016-04-06 04:18:24 -0400
commitd90aa32541d4a0816237dd089824d539cdca8b48 (patch)
tree0312fc65e1c0e14a3c2344f5e0262d712edcecd3 /PKGBUILD
downloadaur-d90aa32541d4a0816237dd089824d539cdca8b48.tar.gz
adding gitignore, updating to sha512sums
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD213
1 files changed, 213 insertions, 0 deletions
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..11ebdb4575bb
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,213 @@
+# Maintainer: brent s. <bts[at]square-r00t[dot]net>
+validpgpkeys=('7482 31EB CBD8 08A1 4F5E 85D2 8C00 4C2F 9348 1F6B')
+# Thanks to Slash's ioquake3-git package (https://aur.archlinux.org/packages/ioquake3-git)
+# for install files and desktop icon, and general guidance (I owe you a beer!).
+
+pkgname=spearmint-git
+_pkgname=spearmint
+pkgver=1
+pkgrel=1
+_ioq3v1='1.36'
+_ioq3v2='1.32-9'
+
+## What games do you want to build in support for?
+## baseq3 should at the LEAST be enabled.
+## See https://github.com/zturtleman/spearmint-patch-data.git
+## and https://github.com/zturtleman/spearmint/wiki ("Engine Feature Support").
+## "missionpack" is Q3:Team Arena
+_games=("baseq3"
+ "missionpack")
+
+pkgdesc="An improved ioquake3-based Quake 3: Arena client (note: requires pak files from original CD) - Git master:HEAD"
+url="http://spearmint.pw"
+license=("GPL3")
+arch=('i686' 'x86_64')
+depends=('sdl2')
+makedepends=('sdl2')
+conflicts=('spearmint' 'quake3' 'ioquake3' 'ioquake3-git')
+provides=('quake3' 'ioquake3' 'spearmint' 'ioquake3-git')
+install=spearmint.install
+source=("${_pkgname}-engine::git+https://github.com/zturtleman/spearmint.git"
+ "${_pkgname}-game::git+https://github.com/zturtleman/mint-arena.git"
+ "${_pkgname}-patch::git+https://github.com/zturtleman/spearmint-patch-data.git"
+ "Makefile.local"
+ "spearmint.desktop"
+ "spearmint.service"
+ "spearmint.launcher"
+ "spearmint-server.launcher"
+ "http://ioquake3.org/files/${_ioq3v1}/data/ioquake3-q3a-${_ioq3v2}.run")
+sha512sums=('SKIP'
+ 'SKIP'
+ 'SKIP'
+ '7a5db71f2c9d8630f9cfbe8f345e076344e05791f5ef47f7c2abc232f0c5b4c3d344dba7c4b7defd94e88d1bc77ef55c68c89b53480c61e688cb410f5a1c6d4c'
+ '0c192c23cc180181f5edee12cd085e78f0cdd2d6e8f18dbd27532b76c36f2b0e731b764119a0a44df90411f94d3b7475bd40ae0d9b8f5bb3867442f93172746b'
+ 'fd75d6633015057c49fdb1cd29dfa16b8b30fd49df2deb0bbbb9da1a5e84179672ee7fee5df6dc57b0e4b6931ab5200f9e6ada5127e57aec5bf29b3e1b020073'
+ '894a0b07399ea7fcf60c97516e5cf19740693192e896e687fba0aeedee675684d94968e69dc927bdb4a44b4298c82d5b4bdca0cc86e707c21cb44f4f9876aea9'
+ 'c7611bf35ace821dcf5829e729c1b0e2f2cc858f2e8ffb491c94990b72990148a8700c1797d715ee2002b3acc10c599d69fa6bc0059c0f9117f64707b6745445'
+ '2ff6eff394119697b1c0a76f9c6d70cec21f90aecd89b72f6459661d04821a799a9c70d80f390b2ae7822d5830e247033a79022cd6d3d1754f7780fadd2d418b')
+
+prepare() {
+
+ if [[ "${CARCH}" == 'i686' ]];
+ then
+ _ARCH='x86'
+ _MKARCH='i86pc'
+ elif [[ "${CARCH}" == 'x86_64' ]];
+ then
+ _ARCH=${CARCH}
+ _MKARCH='amd64'
+ fi
+
+ # soooo $pkgdir, if i recall correctly, isn't available in prepare(). which is kind of stoopit.
+ # so i guess we cross our fingers.
+ sed -i \
+ -e "s@%%_MKARCH%%@${_MKARCH}@g" \
+ -e "s@%%_ARCH%%@${_ARCH}@g" \
+ -e "s@%%_SRCDIR%%@${pkgdir}@g" ${srcdir}/Makefile.local
+
+ cp ${srcdir}/Makefile.local ${srcdir}/${_pkgname}-engine/.
+ cp ${srcdir}/Makefile.local ${srcdir}/${_pkgname}-game/.
+ mkdir ${srcdir}/${_pkgname}-engine/tmp
+ mkdir ${srcdir}/${_pkgname}-game/tmp
+
+ cd ${srcdir}
+ mkdir paks
+ chmod 700 ioquake3-q3a-${_ioq3v2}.run
+ ./ioquake3-q3a-${_ioq3v2}.run --tar xfC ${srcdir}/paks/.
+ install -d -m 750 ${srcdir}/${_pkgname}/{baseq3,missionpack}
+ tar -C ${srcdir}/${_pkgname}/baseq3 -xf ${srcdir}/paks/idpatchpk3s.tar
+ tar -C ${srcdir}/${_pkgname}/missionpack -xf ${srcdir}/paks/idtapatchpk3s.tar
+ cd ${srcdir}
+ # don't need this anymore.
+ rm -rf ${srcdir}/paks
+
+
+}
+
+build() {
+
+ if [[ "${CARCH}" == 'i686' ]];
+ then
+ _ARCH='x86'
+ elif [[ "${CARCH}" == 'x86_64' ]];
+ then
+ _ARCH=${CARCH}
+ fi
+
+ ## ENGINE ##
+ cd ${srcdir}/${_pkgname}-engine
+ make
+
+ cd build/release-linux-${_ARCH}
+ if [ ! -f "${_pkgname}-server" ];
+ then
+ if [[ "${CARCH}" == 'i686' ]];
+ then
+ rm -f ${_pkgname}{,-server}_x86_64
+ elif [[ "${CARCH}" == 'x86_64' ]];
+ then
+ rm -rf ${_pkgname}{,-server}_x86
+ fi
+ fi
+
+
+ ## GAME ##
+ cd ${srcdir}/${_pkgname}-game
+ make
+
+ ## PATCH ##
+ # does not require any building.
+
+}
+
+package() {
+ if [[ "${CARCH}" == 'i686' ]];
+ then
+ _ARCH='x86'
+ elif [[ "${CARCH}" == 'x86_64' ]];
+ then
+ _ARCH=${CARCH}
+ fi
+
+ ## Base dirs ##
+ install -d -m 755 ${pkgdir}/usr/bin
+ install -d -m 755 ${pkgdir}/usr/share/doc/${_pkgname}
+ install -d -m 750 ${pkgdir}/opt/quake3/{baseq3,missionpack,settings}
+
+ ## ENGINE ##
+ install -m 750 ${srcdir}/${_pkgname}-engine/build/release-linux-${_ARCH}/${_pkgname}_${_ARCH} ${pkgdir}/opt/quake3/${_pkgname}
+ install -m 750 ${srcdir}/${_pkgname}-engine/build/release-linux-${_ARCH}/${_pkgname}-server_${_ARCH} ${pkgdir}/opt/quake3/${_pkgname}-server
+ install -m 750 ${srcdir}/${_pkgname}-engine/build/release-linux-${_ARCH}/mint-renderer-opengl1_${_ARCH}.so ${pkgdir}/opt/quake3/
+ install -m 750 ${srcdir}/${_pkgname}-engine/build/release-linux-${_ARCH}/mint-renderer-opengl2_${_ARCH}.so ${pkgdir}/opt/quake3/
+ # docs
+ install -m 644 ${srcdir}/${_pkgname}-engine/id-readme.txt ${pkgdir}/usr/share/doc/${_pkgname}/
+ install -m 644 ${srcdir}/${_pkgname}-engine/md4-readme.txt ${pkgdir}/usr/share/doc/${_pkgname}/
+ install -m 644 ${srcdir}/${_pkgname}-engine/opengl2-readme.md ${pkgdir}/usr/share/doc/${_pkgname}/
+ install -m 644 ${srcdir}/${_pkgname}-engine/README.md ${pkgdir}/usr/share/doc/${_pkgname}/README.engine
+ install -m 644 ${srcdir}/${_pkgname}-engine/voip-readme.txt ${pkgdir}/usr/share/doc/${_pkgname}/
+ # icons, etc.
+ for i in ${srcdir}/${_pkgname}-engine/misc/*.{svg,png,ico};
+ do
+ install -D -m 644 ${i} ${pkgdir}/usr/share/pixmaps/$(basename ${i})
+ done
+
+ ## GAME ##
+ cd ${srcdir}/${_pkgname}-game/build/release-linux-${_ARCH}
+ for i in tools/{lburg,cpp,rcc,etc,asm} baseq3/{,vm,common,ui,game,cgame} missionpack/{,vm,qcommon,q3ui,ui,game,cgame};
+ do
+ install -d -m 750 ${pkgdir}/opt/quake3/${i}
+ done
+ for i in baseq3 tools missionpack;
+ do
+ for f in $(find ${i} -type f);
+ do
+ install -D -m 640 ${f} ${pkgdir}/opt/quake3/${f}
+ done
+ for x in $(find ${i} -type f -executable);
+ do
+ chmod 750 ${pkgdir}/opt/quake3/${x}
+ done
+ done
+
+ ## PATCH ##
+ cd ${srcdir}/${_pkgname}-patch
+ for g in ${_games};
+ do
+ for i in $(find ${g} -type d);
+ do
+ install -d -m 750 ${pkgdir}/opt/quake3/${i}
+ done
+ for i in $(find ${g} -type f);
+ do
+ # TODO: should this be in .pk3 (zip) format?
+ install -D -m 640 ${srcdir}/${_pkgname}-patch/${i} ${pkgdir}/opt/quake3/${i}
+ done
+ done
+
+ # PK3 PAKs from demo
+ install -m 640 ${srcdir}/${_pkgname}/baseq3/* ${pkgdir}/opt/quake3/baseq3/
+ install -m 640 ${srcdir}/${_pkgname}/missionpack/* ${pkgdir}/opt/quake3/missionpack/
+ if [[ -d "${srcdir}/${_pkgname}/settings}" ]];
+ then
+ install -m 640 ${srcdir}/${_pkgname}/settings/* ${pkgdir}/opt/quake3/settings/
+ else
+ install -d -m 750 ${pkgdir}/opt/quake3/settings
+ fi
+
+ cd ${pkgdir}/usr/bin
+ ln -sf /opt/quake3/${_pkgname}.launcher ${_pkgname}
+ ln -sf /opt/quake3/${_pkgname}-server.launcher ${_pkgname}-server
+ ln -sf /opt/quake3/${_pkgname}.launcher quake3
+ ln -sf /opt/quake3/${_pkgname}-server.launcher q3ded
+ ln -sf /opt/quake3/${_pkgname}.launcher ioquake3
+ ln -sf /opt/quake3${_pkgname}-server.launcher ioq3ded
+ cd ${pkgdir}/opt/quake3
+ ln -sf ${_pkgname} ioquake3
+ ln -sf ${_pkgname}-server ioq3ded
+
+ install -D -m 644 ${srcdir}/spearmint.service ${pkgdir}/usr/lib/systemd/system/spearmint.service
+ install -D -m 644 ${srcdir}/spearmint.desktop ${pkgdir}/usr/share/applications/spearmint.desktop
+ install -m 750 ${srcdir}/${_pkgname}.launcher ${pkgdir}/opt/quake3/
+ install -m 750 ${srcdir}/${_pkgname}-server.launcher ${pkgdir}/opt/quake3/
+
+}