1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
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
|