From 4d8424dc05d827be10d5bef7d219a1e22f8c9787 Mon Sep 17 00:00:00 2001 From: hollywoodb Date: Tue, 11 May 2010 14:28:22 +0200 Subject: games/nethack: Initial import --- games/nethack/README | 43 +++++++++ games/nethack/doinst.sh | 6 ++ games/nethack/files/nethack-enviro.patch | 155 +++++++++++++++++++++++++++++++ games/nethack/files/nethack-qt | 5 + games/nethack/files/nethack-qt.patch | 66 +++++++++++++ games/nethack/files/nethack-tty | 5 + games/nethack/files/nethack-x11 | 5 + games/nethack/files/nethack-x11.patch | 82 ++++++++++++++++ games/nethack/files/nethack.desktop | 11 +++ games/nethack/files/nethackrc.qt | 85 +++++++++++++++++ games/nethack/nethack.SlackBuild | 151 ++++++++++++++++++++++++++++++ games/nethack/nethack.info | 8 ++ games/nethack/slack-desc | 6 ++ 13 files changed, 628 insertions(+) create mode 100644 games/nethack/README create mode 100644 games/nethack/doinst.sh create mode 100644 games/nethack/files/nethack-enviro.patch create mode 100644 games/nethack/files/nethack-qt create mode 100644 games/nethack/files/nethack-qt.patch create mode 100644 games/nethack/files/nethack-tty create mode 100644 games/nethack/files/nethack-x11 create mode 100644 games/nethack/files/nethack-x11.patch create mode 100644 games/nethack/files/nethack.desktop create mode 100644 games/nethack/files/nethackrc.qt create mode 100644 games/nethack/nethack.SlackBuild create mode 100644 games/nethack/nethack.info create mode 100644 games/nethack/slack-desc (limited to 'games') diff --git a/games/nethack/README b/games/nethack/README new file mode 100644 index 000000000000..a34466735174 --- /dev/null +++ b/games/nethack/README @@ -0,0 +1,43 @@ +Nethack is a rogue-like dungeon exploration game. + +Originally Nethack was written using a TTY interface. The "graphics" are made +up of ASCII characters. This SlackBuild will build the TTY interface by default. + +To build and use the X11 interface (which retains the tty interface) two things +are required: + 1) run the SlackBuild with FLAVOR=_X11 + example: FLAVOR=_X11 sh nethack.SlackBuild + 2) if X is running either run these two commands as + the user logged into X, or restart X: + xrdb -merge /etc/X11/app-defaults/NetHack + xset +fp /usr/X11R6/lib/X11/fonts/misc + (I recommend restarting X and letting everything initialize properly) + +To build and use the Qt interface (which retains the TTY and X11 interfaces) +two things are required: + 1) run the SlackBuild with FLAVOR=_Qt + example: FLAVOR=_Qt sh nethack.SlackBuild + 2) if X is running either run these two commands as + the user logged into X, or restart X: + xrdb -merge /etc/X11/app-defaults/NetHack + xset +fp /usr/X11R6/lib/X11/fonts/misc + (I recommend restarting X and letting everything initialize properly) + +It is recommended that if you are using the Qt client that you copy +/etc/nethack/nethackrc.qt to ~/.nethackrc post-install. This will make the +Qt client more "pretty" and usable. The Nethack Guidbook is included in +/usr/doc with this package, and is available at http://www.nethack.org. +A full list of options and settings can be found in the Guidebook. +In-game help can be accessed with the "?" key. + +Nethack will choose its default mode in the order Qt > X11 > TTY. You can +run the interface of your choice with nethack-tty, nethack-x11, or nethack-qt +depending on which interfaces you decided to build with FLAVOR. + +Requirements: + TTY interface: >=ncurses-5.0 + X11 interface: + >=ncurses-5.0 >=x11-6.9.0 >=x11-devel-6.9.0 + >=x11-fonts-6.9.0-* (uses 'times' and 'fixed' fonts by default) + Qt interface: All X11 requirements as well as >=qt-3.3.6 + diff --git a/games/nethack/doinst.sh b/games/nethack/doinst.sh new file mode 100644 index 000000000000..4e7b7abb0518 --- /dev/null +++ b/games/nethack/doinst.sh @@ -0,0 +1,6 @@ + +if [ -x usr/bin/update-desktop-database ]; then + ./usr/bin/update-desktop-database ./usr/share/applications >/dev/null 2>&1 +fi + + diff --git a/games/nethack/files/nethack-enviro.patch b/games/nethack/files/nethack-enviro.patch new file mode 100644 index 000000000000..ba47d87c0cfc --- /dev/null +++ b/games/nethack/files/nethack-enviro.patch @@ -0,0 +1,155 @@ +diff -U 3 -dHrN -- nethack-3.4.3/include/config.h nethack-3.4.3-enviro/include/config.h +--- nethack-3.4.3/include/config.h 2003-12-07 17:39:13.000000000 -0600 ++++ nethack-3.4.3-enviro/include/config.h 2007-01-02 22:38:51.000000000 -0600 +@@ -169,11 +169,11 @@ + + #ifdef UNIX + /* path and file name extension for compression program */ +-#define COMPRESS "/usr/bin/compress" /* Lempel-Ziv compression */ +-#define COMPRESS_EXTENSION ".Z" /* compress's extension */ ++/* #define COMPRESS "/usr/bin/compress" */ /* Lempel-Ziv compression */ ++/* #define COMPRESS_EXTENSION ".Z" */ /* compress's extension */ + /* An example of one alternative you might want to use: */ +-/* #define COMPRESS "/usr/local/bin/gzip" */ /* FSF gzip compression */ +-/* #define COMPRESS_EXTENSION ".gz" */ /* normal gzip extension */ ++#define COMPRESS "/usr/bin/gzip" /* FSF gzip compression */ ++#define COMPRESS_EXTENSION ".gz" /* normal gzip extension */ + #endif + + #ifndef COMPRESS +@@ -185,7 +185,7 @@ + * a tar-like file, thus making a neater installation. See *conf.h + * for detailed configuration. + */ +-/* #define DLB */ /* not supported on all platforms */ ++#define DLB /* not supported on all platforms */ + + /* + * Defining INSURANCE slows down level changes, but allows games that +@@ -204,7 +204,7 @@ + * otherwise it will be the current directory. + */ + # ifndef HACKDIR +-# define HACKDIR "/usr/games/lib/nethackdir" ++# define HACKDIR "/usr/share/games/nethack" + # endif + + /* +@@ -300,7 +300,7 @@ + * functions that have been macroized. + */ + +-/* #define VISION_TABLES */ /* use vision tables generated at compile time */ ++#define VISION_TABLES /* use vision tables generated at compile time */ + #ifndef VISION_TABLES + # ifndef NO_MACRO_CPATH + # define MACRO_CPATH /* use clear_path macros instead of functions */ +@@ -348,8 +348,8 @@ + * bugs left here. + */ + +-/*#define GOLDOBJ */ /* Gold is kept on obj chains - Helge Hafting */ +-/*#define AUTOPICKUP_EXCEPTIONS */ /* exceptions to autopickup */ ++#define GOLDOBJ /* Gold is kept on obj chains - Helge Hafting */ ++#define AUTOPICKUP_EXCEPTIONS /* exceptions to autopickup */ + + /* End of Section 5 */ + +diff -U 3 -dHrN -- nethack-3.4.3/include/unixconf.h nethack-3.4.3-enviro/include/unixconf.h +--- nethack-3.4.3/include/unixconf.h 2003-12-07 17:39:13.000000000 -0600 ++++ nethack-3.4.3-enviro/include/unixconf.h 2007-01-02 22:39:38.000000000 -0600 +@@ -32,12 +32,12 @@ + + + /* define any of the following that are appropriate */ +-#define SVR4 /* use in addition to SYSV for System V Release 4 */ ++/*n#define SVR4 */ /* use in addition to SYSV for System V Release 4 */ + /* including Solaris 2+ */ + #define NETWORK /* if running on a networked system */ + /* e.g. Suns sharing a playground through NFS */ + /* #define SUNOS4 */ /* SunOS 4.x */ +-/* #define LINUX */ /* Another Unix clone */ ++#define LINUX /* Another Unix clone */ + /* #define CYGWIN32 */ /* Unix on Win32 -- use with case sensitive defines */ + /* #define GENIX */ /* Yet Another Unix Clone */ + /* #define HISX */ /* Bull Unix for XPS Machines */ +@@ -102,7 +102,7 @@ + * If you want the static parts of your playground on a read-only file + * system, define VAR_PLAYGROUND to be where the variable parts are kept. + */ +-/* #define VAR_PLAYGROUND "/var/lib/games/nethack" */ ++#define VAR_PLAYGROUND "/var/games/nethack" + + + /* +diff -U 3 -dHrN -- nethack-3.4.3/sys/unix/Makefile.src nethack-3.4.3-enviro/sys/unix/Makefile.src +--- nethack-3.4.3/sys/unix/Makefile.src 2003-12-07 17:39:13.000000000 -0600 ++++ nethack-3.4.3-enviro/sys/unix/Makefile.src 2007-01-02 22:40:09.000000000 -0600 +@@ -230,8 +230,8 @@ + # WINTTYLIB = -ltermcap + # WINTTYLIB = -lcurses + # WINTTYLIB = -lcurses16 +-# WINTTYLIB = -lncurses +-WINTTYLIB = -ltermlib ++WINTTYLIB = -lncurses ++# WINTTYLIB = -ltermlib + # + # libraries for X11 + # If USE_XPM is defined in config.h, you will also need -lXpm here. +diff -U 3 -dHrN -- nethack-3.4.3/sys/unix/Makefile.top nethack-3.4.3-enviro/sys/unix/Makefile.top +--- nethack-3.4.3/sys/unix/Makefile.top 2003-12-07 17:39:13.000000000 -0600 ++++ nethack-3.4.3-enviro/sys/unix/Makefile.top 2007-01-02 22:36:23.000000000 -0600 +@@ -14,11 +14,11 @@ + # MAKE = make + + # make NetHack +-PREFIX = /usr ++PREFIX = $(DESTDIR)/usr + GAME = nethack + # GAME = nethack.prg +-GAMEUID = games +-GAMEGRP = bin ++GAMEUID = root ++GAMEGRP = root + + # Permissions - some places use setgid instead of setuid, for instance + # See also the option "SECURE" in include/config.h +@@ -35,8 +35,8 @@ + # therefore there should not be anything in GAMEDIR that you want to keep + # (if there is, you'll have to do the installation by hand or modify the + # instructions) +-GAMEDIR = $(PREFIX)/games/lib/$(GAME)dir +-VARDIR = $(GAMEDIR) ++GAMEDIR = $(PREFIX)/share/games/nethack ++VARDIR = $(DESTDIR)/var/games/nethack + SHELLDIR = $(PREFIX)/games + + # per discussion in Install.X11 and Install.Qt +@@ -188,6 +188,7 @@ + -rm -f $(SHELLDIR)/$(GAME) + sed -e 's;/usr/games/lib/nethackdir;$(GAMEDIR);' \ + -e 's;HACKDIR/nethack;HACKDIR/$(GAME);' \ ++ -e 's;$(DESTDIR);;' \ + < sys/unix/nethack.sh \ + > $(SHELLDIR)/$(GAME) + # set up their permissions +diff -U 3 -dHrN -- nethack-3.4.3/sys/unix/Makefile.utl nethack-3.4.3-enviro/sys/unix/Makefile.utl +--- nethack-3.4.3/sys/unix/Makefile.utl 2003-12-07 17:39:13.000000000 -0600 ++++ nethack-3.4.3-enviro/sys/unix/Makefile.utl 2007-01-02 22:36:46.000000000 -0600 +@@ -101,11 +101,11 @@ + + # yacc/lex programs to use to generate *_comp.h, *_lex.c, and *_yacc.c. + # if, instead of yacc/lex you have bison/flex, comment/uncomment the following. +-YACC = yacc +-LEX = lex +-# YACC = bison -y +-# YACC = byacc +-# LEX = flex ++# YACC = yacc ++# LEX = lex ++YACC = bison -y ++YACC = byacc ++LEX = flex + + # these are the names of the output files from YACC/LEX. Under MS-DOS + # and similar systems, they may differ diff --git a/games/nethack/files/nethack-qt b/games/nethack/files/nethack-qt new file mode 100644 index 000000000000..938d4671b3a6 --- /dev/null +++ b/games/nethack/files/nethack-qt @@ -0,0 +1,5 @@ +#!/bin/sh + +export NETHACKOPTIONS="windowtype:qt" + +exec /usr/games/nethack \ No newline at end of file diff --git a/games/nethack/files/nethack-qt.patch b/games/nethack/files/nethack-qt.patch new file mode 100644 index 000000000000..ede7ddfa518c --- /dev/null +++ b/games/nethack/files/nethack-qt.patch @@ -0,0 +1,66 @@ +diff -U 3 -dHrN -- nethack-3.4.3-x11/include/config.h nethack-3.4.3-qt/include/config.h +--- nethack-3.4.3-x11/include/config.h 2007-01-02 23:10:07.000000000 -0600 ++++ nethack-3.4.3-qt/include/config.h 2007-01-03 11:58:11.000000000 -0600 +@@ -44,7 +44,7 @@ + */ + #define TTY_GRAPHICS /* good old tty based graphics */ + #define X11_GRAPHICS /* X11 interface */ +-/* #define QT_GRAPHICS */ /* Qt interface */ ++#define QT_GRAPHICS /* Qt interface */ + /* #define GNOME_GRAPHICS */ /* Gnome interface */ + /* #define MSWIN_GRAPHICS */ /* Windows NT, CE, Graphics */ + +diff -U 3 -dHrN -- nethack-3.4.3-x11/sys/unix/Makefile.src nethack-3.4.3-qt/sys/unix/Makefile.src +--- nethack-3.4.3-x11/sys/unix/Makefile.src 2007-01-02 23:20:01.000000000 -0600 ++++ nethack-3.4.3-qt/sys/unix/Makefile.src 2007-01-03 12:12:55.000000000 -0600 +@@ -186,7 +186,8 @@ + # Files for a Qt port + # + WINQTSRC = ../win/Qt/qt_win.cpp ../win/Qt/qt_clust.cpp ../win/Qt/qttableview.cpp +-WINQTOBJ = qt_win.o qt_clust.o qttableview.o tile.o ++# WINQTOBJ = qt_win.o qt_clust.o qttableview.o tile.o ++WINQTOBJ = qt_win.o qt_clust.o qttableview.o + # + # Files for a Gnome port + # +@@ -214,8 +215,8 @@ + + # + # +-WINSRC = $(WINTTYSRC) $(WINX11SRC) +-WINOBJ = $(WINTTYOBJ) $(WINX11OBJ) ++WINSRC = $(WINTTYSRC) $(WINX11SRC) $(WINQTSRC) ++WINOBJ = $(WINTTYOBJ) $(WINX11OBJ) $(WINQTOBJ) + + # on some systems the termcap library is in -ltermcap or -lcurses + # on 386 Xenix, the -ltermlib tputs() seems not to work; use -lcurses instead +@@ -241,7 +242,7 @@ + # WINX11LIB = -lXaw -lXmu -lXpm -lXext -lXt -lX11 -lSM -lICE -lm # BSD/OS 2.0 + # + # libraries for Qt +-WINQTLIB = -L$(QTDIR)/lib -lqt ++WINQTLIB = -L$(QTDIR)/lib -lqt-mt + # + # libraries for KDE (with Qt) + WINKDELIB = -lkdecore -lkdeui -lXext +@@ -255,7 +256,7 @@ + # libraries for BeOS + WINBELIB = -lbe + +-WINLIB = $(WINTTYLIB) $(WINX11LIB) ++WINLIB = $(WINTTYLIB) $(WINX11LIB) $(WINQTLIB) + + # any other strange libraries your system needs (for Sysunix only -- the more + # specialized targets should already be right) +diff -U 3 -dHrN -- nethack-3.4.3-x11/sys/unix/Makefile.top nethack-3.4.3-qt/sys/unix/Makefile.top +--- nethack-3.4.3-x11/sys/unix/Makefile.top 2007-01-02 23:12:32.000000000 -0600 ++++ nethack-3.4.3-qt/sys/unix/Makefile.top 2007-01-03 12:01:32.000000000 -0600 +@@ -42,7 +42,7 @@ + # per discussion in Install.X11 and Install.Qt + # VARDATND = + # VARDATND = x11tiles NetHack.ad pet_mark.xbm +-VARDATND = x11tiles NetHack.ad pet_mark.xbm rip.xpm ++VARDATND = x11tiles NetHack.ad pet_mark.xbm rip.xpm nhsplash.xpm + # for Atari/Gem + # VARDATND = nh16.img title.img GEM_RSC.RSC rip.img + # for BeOS diff --git a/games/nethack/files/nethack-tty b/games/nethack/files/nethack-tty new file mode 100644 index 000000000000..8a7415de9e35 --- /dev/null +++ b/games/nethack/files/nethack-tty @@ -0,0 +1,5 @@ +#!/bin/sh + +export NETHACKOPTIONS="windowtype:tty" + +exec /usr/games/nethack \ No newline at end of file diff --git a/games/nethack/files/nethack-x11 b/games/nethack/files/nethack-x11 new file mode 100644 index 000000000000..545677f844d2 --- /dev/null +++ b/games/nethack/files/nethack-x11 @@ -0,0 +1,5 @@ +#!/bin/sh + +export NETHACKOPTIONS="windowtype:x11" + +exec /usr/games/nethack \ No newline at end of file diff --git a/games/nethack/files/nethack-x11.patch b/games/nethack/files/nethack-x11.patch new file mode 100644 index 000000000000..e6fb890e5d5a --- /dev/null +++ b/games/nethack/files/nethack-x11.patch @@ -0,0 +1,82 @@ +diff -U 3 -dHrN -- nethack-3.4.3-enviro/include/config.h nethack-3.4.3-x11/include/config.h +--- nethack-3.4.3-enviro/include/config.h 2007-01-02 22:38:51.000000000 -0600 ++++ nethack-3.4.3-x11/include/config.h 2007-01-02 23:10:07.000000000 -0600 +@@ -43,7 +43,7 @@ + * Some combinations make no sense. See the installation document. + */ + #define TTY_GRAPHICS /* good old tty based graphics */ +-/* #define X11_GRAPHICS */ /* X11 interface */ ++#define X11_GRAPHICS /* X11 interface */ + /* #define QT_GRAPHICS */ /* Qt interface */ + /* #define GNOME_GRAPHICS */ /* Gnome interface */ + /* #define MSWIN_GRAPHICS */ /* Windows NT, CE, Graphics */ +@@ -126,7 +126,7 @@ + * would allow: + * xpmtoppm x11tiles_big.xpm + */ +-/* # define USE_XPM */ /* Disable if you do not have the XPM library */ ++# define USE_XPM /* Disable if you do not have the XPM library */ + # ifdef USE_XPM + # define GRAPHIC_TOMBSTONE /* Use graphical tombstone (rip.xpm) */ + # endif +diff -U 3 -dHrN -- nethack-3.4.3-enviro/sys/unix/Makefile.src nethack-3.4.3-x11/sys/unix/Makefile.src +--- nethack-3.4.3-enviro/sys/unix/Makefile.src 2007-01-02 22:40:09.000000000 -0600 ++++ nethack-3.4.3-x11/sys/unix/Makefile.src 2007-01-02 23:20:01.000000000 -0600 +@@ -151,8 +151,8 @@ + # flags for debugging: + # CFLAGS = -g -I../include + +-CFLAGS = -O -I../include +-LFLAGS = ++CFLAGS = -O -I../include -I/usr/X11R6/include ++LFLAGS = -L/usr/X11R6/lib + + # The Qt and Be window systems are written in C++, while the rest of + # NetHack is standard C. If using Qt, uncomment the LINK line here to get +@@ -214,8 +214,8 @@ + + # + # +-WINSRC = $(WINTTYSRC) +-WINOBJ = $(WINTTYOBJ) ++WINSRC = $(WINTTYSRC) $(WINX11SRC) ++WINOBJ = $(WINTTYOBJ) $(WINX11OBJ) + + # on some systems the termcap library is in -ltermcap or -lcurses + # on 386 Xenix, the -ltermlib tputs() seems not to work; use -lcurses instead +@@ -235,9 +235,9 @@ + # + # libraries for X11 + # If USE_XPM is defined in config.h, you will also need -lXpm here. +-WINX11LIB = -lXaw -lXmu -lXext -lXt -lX11 ++# WINX11LIB = -lXaw -lXmu -lXext -lXt -lX11 + # WINX11LIB = -lXaw -lXmu -lXt -lX11 +-# WINX11LIB = -lXaw -lXmu -lXext -lXt -lXpm -lX11 -lm ++WINX11LIB = -lXaw -lXmu -lXext -lXt -lXpm -lX11 -lm + # WINX11LIB = -lXaw -lXmu -lXpm -lXext -lXt -lX11 -lSM -lICE -lm # BSD/OS 2.0 + # + # libraries for Qt +@@ -255,7 +255,7 @@ + # libraries for BeOS + WINBELIB = -lbe + +-WINLIB = $(WINTTYLIB) ++WINLIB = $(WINTTYLIB) $(WINX11LIB) + + # any other strange libraries your system needs (for Sysunix only -- the more + # specialized targets should already be right) +diff -U 3 -dHrN -- nethack-3.4.3-enviro/sys/unix/Makefile.top nethack-3.4.3-x11/sys/unix/Makefile.top +--- nethack-3.4.3-enviro/sys/unix/Makefile.top 2007-01-02 22:36:23.000000000 -0600 ++++ nethack-3.4.3-x11/sys/unix/Makefile.top 2007-01-02 23:12:32.000000000 -0600 +@@ -40,9 +40,9 @@ + SHELLDIR = $(PREFIX)/games + + # per discussion in Install.X11 and Install.Qt +-VARDATND = ++# VARDATND = + # VARDATND = x11tiles NetHack.ad pet_mark.xbm +-# VARDATND = x11tiles NetHack.ad pet_mark.xbm rip.xpm ++VARDATND = x11tiles NetHack.ad pet_mark.xbm rip.xpm + # for Atari/Gem + # VARDATND = nh16.img title.img GEM_RSC.RSC rip.img + # for BeOS diff --git a/games/nethack/files/nethack.desktop b/games/nethack/files/nethack.desktop new file mode 100644 index 000000000000..5ab1cc5edba0 --- /dev/null +++ b/games/nethack/files/nethack.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=Nethack +Comment=X11 Client +GenericName=Roguelike Game +Exec=nethack-x11 +Icon=/usr/share/pixmaps/nethack.xpm +Terminal=false +Type=Application +X-KDE-StartupNotify=true +Categories=Application;Game diff --git a/games/nethack/files/nethackrc.qt b/games/nethack/files/nethackrc.qt new file mode 100644 index 000000000000..d84c85fd2d2d --- /dev/null +++ b/games/nethack/files/nethackrc.qt @@ -0,0 +1,85 @@ +# +# Nethack configuration file. +# +# Naming this file $(HOME)/.nethackrc (for UNIX) or setting the environment +# variable NETHACKOPTIONS to point to its full path name elsewhere tells +# NetHack to use X11 windowing and fonts (provided the executable was +# compiled with that ability). +# +# +OPTIONS=windowtype:Qt,menustyle:partial,!time,showexp,msghistory:200,toptenwin,hilite_pet +OPTIONS=confirm,male,fixinv,noautopickup,safe_pet,sortpack,tombstone +OPTIONS=verbose,news,fruit:pineapple +OPTIONS=dogname:Dhairrhuwyth +OPTIONS=catname:Ghisteslwchlohm + +# Qt options: +qt_tilewidth=18 +qt_tileheight=18 +qt_fontsize=tiny +qt_compact=0 + +# There are 17 object symbols and various graphics symbols. +# The descriptions of these symbols can be found in dat/opthelp. +# +# +# Font: nh10 (10x20) +# +OBJECTS= 180 183 188 192 181 184 182 189 190 196 \ + 191 194 193 187 185 186 195 +# +DUNGEON= 032 025 018 013 012 014 011 015 023 024 \ + 022 021 128 129 130 131 132 035 035 133 \ + 134 135 136 137 145 146 144 124 143 142 \ + 141 140 149 150 031 031 147 148 031 161 \ + 140 +# +TRAPS= 138 138 138 138 138 138 138 138 138 138 \ + 138 138 138 138 138 139 138 138 138 138 \ + 138 138 +# +EFFECTS= 151 152 153 154 155 156 157 158 \ + 159 160 161 162 \ + 163 164 165 166 167 168 169 170 \ + 171 172 173 174 175 176 177 178 179 +# +# +# Font: ibm (8x14) +# +#OBJECTS= 207 210 215 219 208 211 209 216 217 223 \ +# 218 221 220 214 212 213 222 +# +#DUNGEON= 032 128 129 130 131 132 133 134 135 136 \ +# 137 138 139 045 124 142 143 035 035 144 \ +# 145 146 147 148 155 156 227 124 154 153 \ +# 152 151 159 160 200 200 157 158 250 170 \ +# 151 +# +#TRAPS= 149 149 149 149 149 149 149 149 149 149 \ +# 149 149 149 149 149 150 149 149 149 149 \ +# 149 149 +# +#EFFECTS= 161 162 163 164 165 166 167 168 \ +# 169 170 171 172 \ +# 173 174 175 176 177 178 179 180 \ +# 181 182 183 184 185 186 187 188 189 +# +# +# Font: a "standard" font like 6x13 +# Note that this version is unlikely to work on a tty on a Unix system because +# many of these characters are also control characters. +# +#DUNGEON = 032 025 018 013 012 014 011 015 023 024 \ +# 022 021 031 045 124 043 043 035 035 031 \ +# 035 001 060 062 060 062 019 124 092 035 \ +# 123 125 031 125 046 046 035 035 046 127 \ +# 125 +# +#TRAPS= 094 094 094 094 094 094 094 094 094 094 \ +# 094 094 094 094 094 002 094 094 094 094 \ +# 094 094 +# +#EFFECTS= 124 045 092 047 042 033 041 040 \ +# 048 035 064 042 \ +# 047 045 092 124 124 092 045 047 \ +# 047 064 092 064 064 064 092 064 047 diff --git a/games/nethack/nethack.SlackBuild b/games/nethack/nethack.SlackBuild new file mode 100644 index 000000000000..29a97a46b146 --- /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 diff --git a/games/nethack/nethack.info b/games/nethack/nethack.info new file mode 100644 index 000000000000..e731df91a154 --- /dev/null +++ b/games/nethack/nethack.info @@ -0,0 +1,8 @@ +PRGNAM="nethack" +VERSION="3.4.3" +HOMEPAGE="http://www.nethack.org" +DOWNLOAD="http://dl.sourceforge.net/nethack/nethack-343-src.tgz" +MD5SUM="21479c95990eefe7650df582426457f9" +MAINTAINER="hollywoodb" +EMAIL="hollywoodb@fastmail.fm" +APPROVED="Alan_Hicks,robw810" diff --git a/games/nethack/slack-desc b/games/nethack/slack-desc new file mode 100644 index 000000000000..7d796b0b9e69 --- /dev/null +++ b/games/nethack/slack-desc @@ -0,0 +1,6 @@ + |-----handy-ruler--------------------------------------------------------| +nethack: nethack (rogue-like game) +nethack: +nethack: NetHack is a timeless dungeon exploration game that runs on a wide +nethack: variety of computer systems. +nethack: \ No newline at end of file -- cgit v1.2.3