Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 21 Apr 2001 11:16:42 -0700 (PDT)
From:      Adam@fathermojo.dyndns.org, Kranzel@fathermojo.dyndns.org (adam@alameda.edu)
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   ports/26754: New port: Slash'Em (tty interface)
Message-ID:  <20010421181642.1FB92589B@fathermojo.dyndns.org>

next in thread | raw e-mail | index | archive | help

>Number:         26754
>Category:       ports
>Synopsis:       New port: Slash'Em (tty interface)
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sat Apr 21 11:20:01 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     Adam Kranzel
>Release:        FreeBSD 5.0-CURRENT i386
>Organization:
>Environment:
System: FreeBSD fathermojo.dyndns.org 5.0-CURRENT FreeBSD 5.0-CURRENT #0: Sat Apr 21 04:41:18 PDT 2001 root@fathermojo.dyndns.org:/home/obj/usr/src/sys/FATHERMOJO i386


>Description:
	
Slash'Em (super-lotsa-added-stuff-hack, extended magic), is a roguelike game 
derived from NetHack.
It is under active development, and has quite a few new features, including 
more levels, more types of monsters, and lots more equipment.

This port supports only the tty interface, but X11 (athena), QT, and GTK 
(currently broken due to GTK 1.2.10 not allowing SUID) interfaces are also 
supported, and ports for those will be sent in as soon as I finish them.

The perl in the makefile (for changing a line in a pre-generated file), 
is from Stijn Hoop (stijn@win.tue.nl), and this port was originally 
based on the NetHack port.

This is my first port, so if I have made any mistakes please let me know.

thanks
 -Adam

>How-To-Repeat:
	n/a
>Fix:

# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	slashem-tty
#	slashem-tty/files
#	slashem-tty/files/patch-unixconf.h
#	slashem-tty/files/patch-makefile.src
#	slashem-tty/files/patch-makefile.doc
#	slashem-tty/files/patch-makefile.utl
#	slashem-tty/files/patch-tshirt
#	slashem-tty/files/sample.slashemrc
#	slashem-tty/files/patch-config.h
#	slashem-tty/files/patch-system.h
#	slashem-tty/files/patch-makefile.top
#	slashem-tty/distinfo
#	slashem-tty/pkg-message
#	slashem-tty/Makefile
#	slashem-tty/pkg-descr
#	slashem-tty/pkg-plist
#	slashem-tty/pkg-comment
#
echo c - slashem-tty
mkdir -p slashem-tty > /dev/null 2>&1
echo c - slashem-tty/files
mkdir -p slashem-tty/files > /dev/null 2>&1
echo x - slashem-tty/files/patch-unixconf.h
sed 's/^X//' >slashem-tty/files/patch-unixconf.h << 'END-of-slashem-tty/files/patch-unixconf.h'
X--- include/unixconf.h.good	Wed Nov 22 23:42:39 2000
X+++ include/unixconf.h	Wed Nov 22 23:43:42 2000
X@@ -206,7 +206,7 @@
X  * A stat system call is done on the mailbox every MAILCKFREQ moves.
X  */
X 
X-#define MAIL			/* Deliver mail during the game */
X+/* #define MAIL	*/		/* Deliver mail during the game */
X 
X /* The Andrew Message System does mail a little differently from normal
X  * UNIX.  Mail is deposited in the user's own directory in ~/Mailbox
END-of-slashem-tty/files/patch-unixconf.h
echo x - slashem-tty/files/patch-makefile.src
sed 's/^X//' >slashem-tty/files/patch-makefile.src << 'END-of-slashem-tty/files/patch-makefile.src'
X--- sys/unix/Makefile.src.good	Thu Nov 23 00:24:58 2000
X+++ sys/unix/Makefile.src	Thu Nov 23 00:26:13 2000
X@@ -144,8 +144,8 @@
X # flags for debugging:
X # CFLAGS = -g -I../include
X 
X-CFLAGS = -O -I../include
X-LFLAGS =
X+CFLAGS += -O -I../include -I${PREFIX}/include 
X+LFLAGS = -L${PREFIX}/lib
X 
X # QT windowing system
X # SuSE 6.1
X@@ -322,7 +322,7 @@
X LIBS =
X 
X # make NetHack
X-GAME     = slashem
X+GAME     = slashem-tty
X # GAME     = slashem.prg
X 
X # if you defined RANDOM in unixconf.h/tosconf.h since your system did not come
END-of-slashem-tty/files/patch-makefile.src
echo x - slashem-tty/files/patch-makefile.doc
sed 's/^X//' >slashem-tty/files/patch-makefile.doc << 'END-of-slashem-tty/files/patch-makefile.doc'
X--- sys/unix/Makefile.doc.good	Thu Nov 23 01:01:16 2000
X+++ sys/unix/Makefile.doc	Thu Nov 23 01:04:09 2000
X@@ -52,10 +52,10 @@
X # Guidebook.dvi:	Guidebook.mn
X #	tbl tmac.n Guidebook.mn | groff -Wall -Tdvi > Guidebook.dvi
X 
X-GAME    = slashem
X+GAME    = slashem-tty
X #GAME    = nethack
X-MANDIR	= /games/slash/doc
X-MANEXT	= 1n
X+MANDIR	= ${PREFIX}/man/man
X+MANEXT	= 6
X 
X # manual installation for most BSD-style systems
X GAMEMANCREATE = cp $(GAME).6
X@@ -72,11 +72,11 @@
X # DLBMANCREATE = groff -Wall -mtty-char -Tascii -man dlb.6 >
X 
X manpages:
X-	-$(GAMEMANCREATE) $(MANDIR)/$(GAME).$(MANEXT)
X-	-$(LEVMANCREATE) $(MANDIR)/lev_comp.$(MANEXT)
X-	-$(DGNMANCREATE) $(MANDIR)/dgn_comp.$(MANEXT)
X-	-$(RCVRMANCREATE) $(MANDIR)/recover.$(MANEXT)
X-	-$(DLBMANCREATE) $(MANDIR)/dlb.$(MANEXT)
X+	-$(GAMEMANCREATE) $(MANDIR)${MANEXT}/$(GAME).$(MANEXT)
X+	-$(LEVMANCREATE) $(MANDIR)${MANEXT}/lev_comp.$(MANEXT)
X+	-$(DGNMANCREATE) $(MANDIR)${MANEXT}/dgn_comp.$(MANEXT)
X+	-$(RCVRMANCREATE) $(MANDIR)${MANEXT}/recover.$(MANEXT)
X+	-$(DLBMANCREATE) $(MANDIR)${MANEXT}/dlb.$(MANEXT)
X 
X # manual creation for distribution
X DISTRIB = Guidebook.txt $(GAME).txt lev_comp.txt dgn_comp.txt recover.txt dlb.txt
END-of-slashem-tty/files/patch-makefile.doc
echo x - slashem-tty/files/patch-makefile.utl
sed 's/^X//' >slashem-tty/files/patch-makefile.utl << 'END-of-slashem-tty/files/patch-makefile.utl'
X--- sys/unix/Makefile.utl.good	Thu Nov 23 13:55:38 2000
X+++ sys/unix/Makefile.utl	Thu Nov 23 13:56:54 2000
X@@ -89,8 +89,8 @@
X # flags for debugging:
X # CFLAGS = -g -I../include
X 
X-CFLAGS = -O -I../include
X-LFLAGS =
X+CFLAGS += -O -I../include -I${PREFIX}/include
X+LFLAGS = -L${PREFIX}/lib
X 
X LIBS =
X  
END-of-slashem-tty/files/patch-makefile.utl
echo x - slashem-tty/files/patch-tshirt
sed 's/^X//' >slashem-tty/files/patch-tshirt << 'END-of-slashem-tty/files/patch-tshirt'
X--- src/read.c.orig	Sat Jul 22 18:04:06 2000
X+++ src/read.c	Thu Jan 25 18:46:03 2001
X@@ -62,6 +62,24 @@
X 	    return(1);
X #ifdef TOURIST
X 	} else if (scroll->otyp == T_SHIRT) {
X+	    static const char *shirt_msgs[] = {
X+    "I explored the Dungeons of Doom and all I got was this lousy T-shirt!",
X+    "Is that Mjollnir in your pocket or are you just happy to see me?",
X+    "It's not the size of your sword, it's how #enhance'd you are with it.",
X+    "Madame Elvira's House O' Succubi Lifetime Customer",
X+    "Madame Elvira's House O' Succubi Employee of the Month",
X+    "Ludios Vault Guards Do It In Small, Dark Rooms",
X+    "Yendor Military Soldiers Do It In Large Groups",
X+    "I survived Yendor Military Boot Camp",
X+    "Ludios Accounting School Intra-Mural Lacrosse Team",
X+    "Oracle(TM) Fountains 10th Annual Wet T-Shirt Contest",
X+    "Hey, black dragon!  Disintegrate THIS!",
X+    "I'm With Stupid -->",
X+    "Don't blame me, I voted for Izchak!",
X+    "Don't Panic",	// HHGTTG
X+    "Furinkan High School Athletic Dept.",	// Ranma 1/2
X+    "Hel-LOOO, Nurse!",		// Animaniacs"
X+	    };
X 	    char buf[BUFSZ];
X 	    int erosion;
X 
X@@ -72,13 +90,7 @@
X 	    u.uconduct.literate++;
X 	    if(flags.verbose)
X 		pline("It reads:");
X-	    Sprintf(buf,  "I explored the Dungeons of Doom, %s.",
X-		    Hallucination ?
X-			(scroll == uarmu ?
X-			    /* (force these two to have identical length) */
X-			    "and never did any laundry..." :
X-			    "and couldn't find my way out") :
X-			"but all I got was this lousy T-shirt");
X+	    strcpy(buf, shirt_msgs[scroll->o_id % SIZE(shirt_msgs)]);
X 	    erosion = greatest_erosion(scroll);
X 	    if (erosion)
X 		wipeout_text(buf,
END-of-slashem-tty/files/patch-tshirt
echo x - slashem-tty/files/sample.slashemrc
sed 's/^X//' >slashem-tty/files/sample.slashemrc << 'END-of-slashem-tty/files/sample.slashemrc'
X# Sample .slashemrc file
X# 
X
X# Window systems
X# Options are tty, x11. qt, gtk
X# but not all of these are necessarily compiled in
XOPTIONS=windowtype:tty
X
X# names for pets
XOPTIONS=catname:Fuzzy
XOPTIONS=dogname:Rover
XOPTIONS=horsename:Trigger
X
X# Autopickup options
X# Autopickup all the things you would pick up anyway
X# In order: money, potions, spellbooks, rings, amulets, 
X# scrolls, and wands
XOPTIONS=autopickup
XOPTIONS=pickup_types:$!+="?/
X
X# Favorite fruit
XOPTIONS=fruit:Strawberry
X
X# Turn on numberpad movement
X# Be sure to turn on numlock or this won't work
XOPTIONS=number_pad
X
X# Show experience on the status line
XOPTIONS=showexp
X
X# Fix inventory letters
X# If you aquire an item, drop it, then pick it up again
X# it will retain the same inventory letter
X# Sort your pack contents by type when viewing your inventory
XOPTIONS=fixinv
XOPTIONS=sortpack
X
X# Makes pets more visible
X# Don't allow attacking your pet
XOPTIONS=hilite_pet
XOPTIONS=safe_pet
X
X# verbose messages in the game
XOPTIONS=verbose
X
X# Ask for confirmation before attacking peaceful creatures
XOPTIONS=confirm
END-of-slashem-tty/files/sample.slashemrc
echo x - slashem-tty/files/patch-config.h
sed 's/^X//' >slashem-tty/files/patch-config.h << 'END-of-slashem-tty/files/patch-config.h'
X--- include/config.h.good	Wed Nov 22 23:18:52 2000
X+++ include/config.h	Wed Nov 22 23:29:22 2000
X@@ -176,12 +176,12 @@
X 
X #ifdef UNIX
X /* path and file name extension for compression program */
X-# define COMPRESS "/usr/bin/compress" /* Lempel-Ziv compression */
X-# define COMPRESS_EXTENSION ".Z"	     /* compress's extension */
X+/* # define COMPRESS "/usr/bin/compress" */ /* Lempel-Ziv compression */
X+/* # define COMPRESS_EXTENSION ".Z"	 */    /* compress's extension */
X 
X /* An example of one alternative you might want to use: */
X-/* # define COMPRESS "/usr/local/bin/gzip" */   /* FSF gzip compression */
X-/* # define COMPRESS_EXTENSION ".gz" */	     /* normal gzip extension */
X+# define COMPRESS "/usr/bin/gzip"   /* FSF gzip compression */
X+# define COMPRESS_EXTENSION ".gz"	     /* normal gzip extension */
X 
X /* # define COMPRESS "/usr/bin/bzip2"	*//* bzip2 compression */
X /* # define COMPRESS_EXTENSION ".bz2"	*//* bzip2 extension */
X@@ -195,7 +195,7 @@
X  *	a tar-like file, thus making a neater installation.  See *conf.h
X  *	for detailed configuration.
X  */
X-/* #define DLB */             /* not supported on all platforms */
X+#define DLB             /* not supported on all platforms */
X 
X /*
X  *	Defining INSURANCE slows down level changes, but allows games that
X@@ -214,7 +214,7 @@
X  * otherwise it will be the current directory.
X  */
X # ifndef HACKDIR
X-#  define HACKDIR "."	/* nethack directory */
X+#  define HACKDIR "/usr/local/share/slashem-tty"	/* nethack directory */
X # endif
X 
X /*
END-of-slashem-tty/files/patch-config.h
echo x - slashem-tty/files/patch-system.h
sed 's/^X//' >slashem-tty/files/patch-system.h << 'END-of-slashem-tty/files/patch-system.h'
X--- include/system.h.good	Wed Nov 22 23:38:44 2000
X+++ include/system.h	Wed Nov 22 23:41:03 2000
X@@ -522,7 +522,7 @@
X E time_t FDECL(time, (time_t *));
X #  endif
X # else
X-E long FDECL(time, (time_t *));
X+E time_t FDECL(time, (time_t *));
X # endif /* ULTRIX */
X 
X #ifdef VMS
END-of-slashem-tty/files/patch-system.h
echo x - slashem-tty/files/patch-makefile.top
sed 's/^X//' >slashem-tty/files/patch-makefile.top << 'END-of-slashem-tty/files/patch-makefile.top'
X--- sys/unix/Makefile.top.good	Wed Nov 22 23:48:33 2000
X+++ sys/unix/Makefile.top	Wed Nov 22 23:54:33 2000
X@@ -14,18 +14,17 @@
X # MAKE = make
X 
X # make NetHack
X-PREFIX   = /usr
X-GAME     = slashem
X+GAME     = slashem-tty
X # GAME     = slashem.prg
X GAMEUID  = games
X-GAMEGRP  = bin
X+GAMEGRP  = games
X 
X # Permissions - some places use setgid instead of setuid, for instance
X # See also the option "SECURE" in include/config.h
X-GAMEPERM = 04755
X-FILEPERM = 0644
X+GAMEPERM = 02755
X+FILEPERM = 0664
X EXEPERM  = 0755
X-DIRPERM  = 0755
X+DIRPERM  = 0775
X 
X # GAMEDIR also appears in config.h as "HACKDIR".
X # VARDIR may also appear in unixconf.h as "VAR_PLAYGROUND" else GAMEDIR
X@@ -38,7 +37,7 @@
X # These must agree with the definitions in unixconf.h
X 
X # Defs. for non file areas support.
X-GAMEDIR  = $(PREFIX)/local/slashemdir
X+GAMEDIR  = $(PREFIX)/share/${GAME}
X VARDIR = $(GAMEDIR)
X FILE_AREA_VAR = $(VARDIR)
X FILE_AREA_SAVE = $(VARDIR)/save
X@@ -47,7 +46,7 @@
X FILE_AREA_DOC = $(GAMEDIR)
X FILE_AREA_BONES = $(FILE_AREA_VAR)
X FILE_AREA_LEVL = $(FILE_AREA_VAR)
X-SHELLDIR = $(PREFIX)/local/bin
X+SHELLDIR = $(PREFIX)/bin
X 
X # Defs. compatible with Linux's FSSTND 1.2
X # FILE_AREA_VAR = /var/lib/games/slashem
X@@ -239,7 +238,7 @@
X 	  	-e '$$s/.*/nodlb/p' < dat/options` ;	\
X 	$(MAKE) dofiles-$${target-nodlb}
X 	cp src/$(GAME) $(FILE_AREA_UNSHARE)
X-	cp license doc/Guidebook.txt $(FILE_AREA_DOC)
X+	cp license $(FILE_AREA_DOC)
X #	cp win/Qt/KDE/kslashem.kdelnk $(KDEDIR)/share/applnk/Games
X 	-rm -f $(SHELLDIR)/$(GAME)
X 	sed -e 's;/usr/games/lib/nethackdir;$(FILE_AREA_UNSHARE);' \
END-of-slashem-tty/files/patch-makefile.top
echo x - slashem-tty/distinfo
sed 's/^X//' >slashem-tty/distinfo << 'END-of-slashem-tty/distinfo'
XMD5 (se006e4f3.tar.gz) = bd1e73ba9db3fc4cbb84fa193cb8c3e7
END-of-slashem-tty/distinfo
echo x - slashem-tty/pkg-message
sed 's/^X//' >slashem-tty/pkg-message << 'END-of-slashem-tty/pkg-message'
X====================================================
XA sample .slashemrc file has been copied to 
X${PREFIX}/share/doc/slashem-tty as sample.slashemrc.
XCopy it to your home directory as .slashemrc and 
Xedit it to taste.
XThe options for it are described in 
X${PREFIX}/share/doc/slashem-tty/Guidebook.txt.
X====================================================
END-of-slashem-tty/pkg-message
echo x - slashem-tty/Makefile
sed 's/^X//' >slashem-tty/Makefile << 'END-of-slashem-tty/Makefile'
X# New ports collection makefile for: Slash'Em (tty interface)
X# Date created:	15th April 2001
X# Whom:	Adam Kranzel (adam@alameda.edu)
X#
X# $FreeBSD$
X#
X
XPORTNAME=	slashem
XPORTVERSION=	0.0.6E.4F.3
XCATEGORIES=	games
XMASTER_SITES=	${MASTER_SITE_SOURCEFORGE}
XMASTER_SITE_SUBDIR=	slashem
XPKGNAMESUFFIX=	-tty
XDISTNAME=	se006e4f3
X
XMAINTAINER=	adam@alameda.edu
X
XUSE_GMAKE=	yes
XMAN6=		dgn_comp.6 dlb.6 lev_comp.6 slashem-tty.6 recover.6
X
XWRKSRC=		${WRKDIR}/slashem-0.0.6E4F3
X
Xpre-configure:
X	@cd ${WRKSRC}/sys/unix; ${SH} setup.sh
X
Xpost-patch:
X	${PERL} -pi -e "s@/usr/local@${PREFIX}@g" ${WRKSRC}/include/config.h
X
Xpost-install:
X	@cd ${WRKSRC}/doc; ${CHMOD} 644 *.6
X	@cp ${WRKSRC}/doc/slashem.6 ${WRKSRC}/doc/slashem${PKGNAMESUFFIX}.6
X	@cd ${WRKSRC}/doc; PREFIX=${PREFIX} ${MAKE} manpages
X.if !defined(NOPORTDOCS)
X	${MKDIR} ${PREFIX}/share/doc/${PORTNAME}${PKGNAMESUFFIX}
X	${CP} ${WRKSRC}/doc/Guidebook.txt ${PREFIX}/share/doc/slashem${PKGNAMESUFFIX}
X	${CP} ${WRKSRC}/slamfaq.txt ${PREFIX}/share/doc/slashem${PKGNAMESUFFIX}
X	${CP} ${FILESDIR}/sample.slashemrc ${PREFIX}/share/doc/slashem${PKGNAMESUFFIX}
X.endif
X	${CAT} pkg-message
X
X.include <bsd.port.mk>
END-of-slashem-tty/Makefile
echo x - slashem-tty/pkg-descr
sed 's/^X//' >slashem-tty/pkg-descr << 'END-of-slashem-tty/pkg-descr'
XThis is Slash'Em (super lotsa added stuff hack - extended magic), 
Xthe only actively maintained variant of NetHack (based on NetHack v 3.3.1).
XA good old-fashioned dungeon-crawl with big nasties in the way, treasure
Xgalore, and immortality if you succeed.
X
XWWW: http://slashem.sourceforge.net
X
X- Adam
X adam@alameda.edu
END-of-slashem-tty/pkg-descr
echo x - slashem-tty/pkg-plist
sed 's/^X//' >slashem-tty/pkg-plist << 'END-of-slashem-tty/pkg-plist'
Xbin/slashem-tty
Xshare/slashem-tty/slashem-tty
X@exec mkdir %D/share/slashem-tty/save
X@exec chmod -R 775 %D/share/slashem-tty
X@exec chmod 2755 %D/share/slashem-tty/save
X@exec chown games.games %D/share/slashem-tty/save
X@unexec rm -rf %D/share/slashem-tty/save
X@exec chmod -R 775 %D/share/doc/slashem-tty
Xshare/doc/slashem-tty/Guidebook.txt
Xshare/doc/slashem-tty/slamfaq.txt
Xshare/doc/slashem-tty/sample.slashemrc
Xshare/slashem-tty/license
Xshare/slashem-tty/nhshare
Xshare/slashem-tty/nhushare
X@mode 664
Xshare/slashem-tty/logfile
Xshare/slashem-tty/record
Xshare/slashem-tty/perm
X@dirrm share/slashem-tty
X@dirrm share/doc/slashem-tty
END-of-slashem-tty/pkg-plist
echo x - slashem-tty/pkg-comment
sed 's/^X//' >slashem-tty/pkg-comment << 'END-of-slashem-tty/pkg-comment'
XA dungeon explorin', slashin', hackin' game
END-of-slashem-tty/pkg-comment
exit

>Release-Note:
>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010421181642.1FB92589B>