summaryrefslogtreecommitdiff
path: root/games/nethack/nethack.SlackBuild
diff options
context:
space:
mode:
Diffstat (limited to 'games/nethack/nethack.SlackBuild')
-rw-r--r--games/nethack/nethack.SlackBuild151
1 files changed, 151 insertions, 0 deletions
diff --git a/games/nethack/nethack.SlackBuild b/games/nethack/nethack.SlackBuild
new file mode 100644
index 0000000000..29a97a46b1
--- /dev/null
+++ b/games/nethack/nethack.SlackBuild
@@ -0,0 +1,151 @@
+#!/bin/sh
+
+## Written by hollywoodb (hollywoodb@fastmail.fm)
+## Edited by the SlackBuilds project team.
+
+## Feel free to use, modify, redistribute this script.
+## If you make changes please modify the "Written by"
+## so that I don't recieve emails about a script I
+## did not write. Thanks.
+
+# Modified by the SlackBuilds.org project
+
+set -e
+
+PRGNAM=nethack
+VERSION=3.4.3
+ARCH=${ARCH:-i486}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+CWD=`pwd`
+TMP=${TMP:-/tmp/SBo}
+PKG=${PKG:-$TMP/package-$PRGNAM}
+OUTPUT=${OUTPUT:-/tmp}
+
+# FLAVOR lets the user enable their choice of
+# interfaces. TTY is enabled under any circumstance.
+# Don't change this. If you want to enable X11 or Qt
+# simply pass this variable to the script.
+# $ FLAVOR=_X11 nethack.SlackBuild
+#
+FLAVOR=${FLAVOR:-}
+
+# Fixes for poor values of FLAVOR
+if [ "$FLAVOR" = "x11" -o "$FLAVOR" = "X11" ]; then
+ FLAVOR=_X11
+elif [ "$FLAVOR" = "qt" -o "$FLAVOR" = "Qt" -o "$FLAVOR" = "QT" ]; then
+ FLAVOR=_Qt
+fi
+
+rm -rf {$PKG,$TMP/$PRGNAM-$VERSION}
+mkdir -p {$TMP,$PKG,$OUTPUT}
+cd $TMP
+tar zxvf $CWD/$PRGNAM-343-src.tgz
+cd $PRGNAM-$VERSION
+
+chown -R root:root .
+chmod -R u+w,go+r-w,a-s .
+
+# Nethack doesn't have any form of auto-configuration...
+# nethack-enviro.patch MUST be applied. It includes fixes for
+# DESTDIR and installation paths among other things.
+patch -p1 < $CWD/files/nethack-enviro.patch
+
+# Standard configuration: since we want to be able to use the
+# X11 client even when Qt is enabled as well, we want these
+# steps for the X11 client to be done whether FLAVOR is
+# "X11" or "Qt"
+if [ "$FLAVOR" = "_X11" -o "$FLAVOR" = "_Qt" ]; then
+ patch -p1 < $CWD/files/$PRGNAM-x11.patch
+
+ # Global configuration file
+ mkdir -p $PKG/etc/X11/{app-defaults,nethack}
+ cat win/X11/NetHack.ad > $PKG/etc/X11/app-defaults/NetHack
+
+ # We can avoid installing special fonts by using existing ones
+ sed -i 's#nh10#-*-fixed-medium-r-*-*-12-*-*-*-*-*-*-*#' \
+ $PKG/etc/X11/app-defaults/NetHack
+
+ # Enable the x11 tileset
+ sed -i 's#^!NetHack.tile_file#NetHack.tile_file#' \
+ $PKG/etc/X11/app-defaults/NetHack
+
+ # We want a menu entry whether its for X11 or Qt
+ mkdir -p $PKG/usr/share/{applications,pixmaps}
+ cp win/X11/nh_icon.xpm $PKG/usr/share/pixmaps/$PRGNAM.xpm
+ cat $CWD/files/$PRGNAM.desktop > $PKG/usr/share/applications/$PRGNAM.desktop
+
+ # Add the TTY and X11 interface for X11 and Qt builds
+ mkdir -p $PKG/usr/games
+ cat $CWD/files/$PRGNAM-tty > $PKG/usr/games/$PRGNAM-tty
+ chmod +x $PKG/usr/games/$PRGNAM-tty
+ cat $CWD/files/$PRGNAM-x11 > $PKG/usr/games/$PRGNAM-x11
+ chmod +x $PKG/usr/games/$PRGNAM-x11
+
+ # .nethackrc suited for X11 client
+ cat win/X11/nethack.rc > $PKG/etc/X11/nethack/nethackrc.x11
+
+ # Install nethack's fonts
+ mkdir -p $PKG/usr/X11R6/lib/X11/fonts/misc
+ bdftopcf win/X11/nh10.bdf > $PKG/usr/X11R6/lib/X11/fonts/misc/nh10.pcf
+ bdftopcf win/X11/ibm.bdf > $PKG/usr/X11R6/lib/X11/fonts/misc/ibm.pcf
+ gzip $PKG/usr/X11R6/lib/X11/fonts/misc/*.pcf
+ mkdir -p $PKG/install
+ echo "mkfontdir /usr/X11R6/lib/X11/fonts/misc" > $PKG/install/doinst.sh
+fi
+
+# nethack-Qt.patch enables the Qt interface.
+# It is incremental in the manner that the tty and X11
+# interfaces remain enabled
+if [ "$FLAVOR" = "_Qt" ]; then
+ patch -p1 < $CWD/files/$PRGNAM-qt.patch
+
+ # .nethackrc suited for Qt client
+ cat $CWD/files/nethackrc.qt > $PKG/etc/X11/nethack/nethackrc.qt
+
+ # Add the Qt interface
+ cat $CWD/files/$PRGNAM-qt > $PKG/usr/games/$PRGNAM-qt
+ chmod +x $PKG/usr/games/$PRGNAM-qt
+
+ # Convert menu entry from X11 to Qt configuration
+ sed -i 's#X11#Qt#' $PKG/usr/share/applications/$PRGNAM.desktop
+ sed -i 's#Exec=nethack-x11#Exec=nethack-qt#' $PKG/usr/share/applications/$PRGNAM.desktop
+fi
+
+sh sys/unix/setup.sh
+make all
+make install DESTDIR=$PKG
+
+chown -R root:games $PKG/var/games
+chmod 0664 $PKG/var/games/nethack/{logfile,perm,record}
+chmod 0775 $PKG/var/games/nethack
+chmod 0775 $PKG/var/games/nethack/save
+
+# NetHack's Makefile installs the binary suid root
+# We'll set it sgid games and all should be fine.
+chown root:games $PKG/usr/games/nethack
+chmod 0755 $PKG/usr/games/nethack
+chown -R root:games $PKG/usr/share/games/nethack
+chmod 2755 $PKG/usr/share/games/nethack/nethack
+chmod g+w $PKG/usr/share/games/nethack/nhdat
+
+find $PKG | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# Install the man pages
+mkdir -p $PKG/usr/man/man6
+cp -a doc/*.6 $PKG/usr/man/man6/
+find $PKG/usr/man -type f -exec gzip -9 {} \;
+for i in $(find $PKG/usr/man -type l) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+
+mkdir -p $PKG/usr/doc/$PRGNAM$FLAVOR-$VERSION/history
+cp -a {doc/Guidebook.tex,doc/*.txt} $PKG/usr/doc/$PRGNAM$FLAVOR-$VERSION
+mv $PKG/usr/share/games/nethack/license $PKG/usr/doc/$PRGNAM$FLAVOR-$VERSION
+cp -a doc/fixes* $PKG/usr/doc/$PRGNAM$FLAVOR-$VERSION/history
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM$FLAVOR-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n -p $OUTPUT/$PRGNAM$FLAVOR-$VERSION-$ARCH-$BUILD$TAG.tgz