@ -0,0 +1,72 @@ |
|||||
|
# --- ROCK-COPYRIGHT-NOTE-BEGIN --- |
||||
|
# |
||||
|
# This copyright note is auto-generated by ./scripts/Create-CopyPatch. |
||||
|
# Please add additional copyright information _after_ the line containing |
||||
|
# the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by |
||||
|
# the ./scripts/Create-CopyPatch script. Do not edit this copyright text! |
||||
|
# |
||||
|
# ROCK Linux: rock-src/package/blindcoder/dgamelaunch/dgamelaunch.conf |
||||
|
# ROCK Linux is Copyright (C) 1998 - 2004 Clifford Wolf |
||||
|
# |
||||
|
# This program is free software; you can redistribute it and/or modify |
||||
|
# it under the terms of the GNU General Public License as published by |
||||
|
# the Free Software Foundation; either version 2 of the License, or |
||||
|
# (at your option) any later version. A copy of the GNU General Public |
||||
|
# License can be found at Documentation/COPYING. |
||||
|
# |
||||
|
# Many people helped and are helping developing ROCK Linux. Please |
||||
|
# have a look at http://www.rocklinux.org/ and the Documentation/TEAM |
||||
|
# file for details. |
||||
|
# |
||||
|
# --- ROCK-COPYRIGHT-NOTE-END --- |
||||
|
|
||||
|
dgamelaunch_postmake(){ |
||||
|
cp ${confdir}/etc_dgamelaunch.conf ${root}/etc/dgamelaunch.conf |
||||
|
mkdir -p ${root}/usr/games/lib/dgamelaunch/inprogress |
||||
|
mkdir -p ${root}/usr/games/lib/dgamelaunch/mail |
||||
|
mkdir -p ${root}/usr/games/lib/dgamelaunch/rcfiles |
||||
|
mkdir -p ${root}/usr/games/lib/dgamelaunch/ttyrec |
||||
|
touch ${root}/usr/games/lib/dgamelaunch/dgl-lock |
||||
|
touch ${root}/usr/games/lib/dgamelaunch/dgl-login |
||||
|
cat >>${root}/usr/games/lib/dgamelaunch/dgl-banner<<EOF |
||||
|
## dgamelaunch - network console game launcher |
||||
|
## version $VERSION |
||||
|
## |
||||
|
## (c)2001-4 M. Drew Streib. This program's source is released under the GPL. |
||||
|
## Send mail to <dtype@dtype.org> for details or a copy of the source code. |
||||
|
## ** Games on this server are recorded for in-progress viewing and playback! |
||||
|
EOF |
||||
|
cat >>${root}/usr/games/lib/dgamelaunch/dgl-default-rcfile <<-EOF |
||||
|
# This is an example nethackrc file. You should edit this to suit the needs |
||||
|
# of your personal nethack build and add some reasonable default options |
||||
|
# for your users. |
||||
|
|
||||
|
# If you compiled dgamelaunch with the \`vi' editor enabled instead of ee, |
||||
|
# perhaps a helpful blurb such as this might help: |
||||
|
|
||||
|
# This editor is vi-like. Type ESC a couple times, then ':q!' (without quotes) |
||||
|
# to exit if you get stuck. To save, hit ESC and then ZZ or type ':wq' |
||||
|
# (without quotes.) To insert text, hit 'i' to enter insert mode. |
||||
|
|
||||
|
# Here are some examples of reasonable defaults: |
||||
|
|
||||
|
OPTIONS=showexp,showscore,time,color,!autopickup |
||||
|
OPTIONS=autodig,fruit:slime mold,boulder:0 |
||||
|
|
||||
|
# For more information on what you can set in your nethackrc file, refer to: |
||||
|
# http://www.nethack.org/v343/Guidebook.html#_TOCentry_42 |
||||
|
# Happy hacking! |
||||
|
EOF |
||||
|
|
||||
|
# TODO This should later get postinstall |
||||
|
echo -e "#!/bin/bash\n/usr/sbin/dgamelaunch -q -f /etc/dgamelaunch.conf" >${root}/usr/sbin/dgamelaunch_telnetd |
||||
|
chmod +x ${root}/usr/sbin/dgamelaunch_telnetd |
||||
|
chown 0.0 ${root}/usr/sbin/dgamelaunch_telnetd |
||||
|
grep -q dgamelaunch /etc/inetd.conf || cat >>/etc/inetd.conf<<EOF |
||||
|
#telnet stream tcp nowait root.root /usr/sbin/tcpd /usr/sbin/in.telnetd -h -L /usr/sbin/dgamelaunch_telnetd |
||||
|
EOF |
||||
|
chown 2.4 ${root}/usr/games/lib/dgamelaunch/ -R |
||||
|
chmod g+w ${root}/usr/games/lib/dgamelaunch/ -R |
||||
|
} |
||||
|
|
||||
|
postmake=dgamelaunch_postmake |
@ -0,0 +1,44 @@ |
|||||
|
|
||||
|
[COPY] --- ROCK-COPYRIGHT-NOTE-BEGIN --- |
||||
|
[COPY] |
||||
|
[COPY] This copyright note is auto-generated by ./scripts/Create-CopyPatch. |
||||
|
[COPY] Please add additional copyright information _after_ the line containing |
||||
|
[COPY] the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by |
||||
|
[COPY] the ./scripts/Create-CopyPatch script. Do not edit this copyright text! |
||||
|
[COPY] |
||||
|
[COPY] ROCK Linux: rock-src/package/blindcoder/dgamelaunch/dgamelaunch.desc |
||||
|
[COPY] ROCK Linux is Copyright (C) 1998 - 2004 Clifford Wolf |
||||
|
[COPY] |
||||
|
[COPY] This program is free software; you can redistribute it and/or modify |
||||
|
[COPY] it under the terms of the GNU General Public License as published by |
||||
|
[COPY] the Free Software Foundation; either version 2 of the License, or |
||||
|
[COPY] (at your option) any later version. A copy of the GNU General Public |
||||
|
[COPY] License can be found at Documentation/COPYING. |
||||
|
[COPY] |
||||
|
[COPY] Many people helped and are helping developing ROCK Linux. Please |
||||
|
[COPY] have a look at http://www.rocklinux.org/ and the Documentation/TEAM |
||||
|
[COPY] file for details. |
||||
|
[COPY] |
||||
|
[COPY] --- ROCK-COPYRIGHT-NOTE-END --- |
||||
|
|
||||
|
[I] Nethack Game-Server |
||||
|
|
||||
|
[T] Runs from telnetd and provides a 'shell' for public use that allows |
||||
|
[T] users to manage an account that lets them play NetHack over the |
||||
|
[T] Internet. Supports 'watch' mode where one watches another play, and |
||||
|
[T] intercommunication between the viewer and the player. |
||||
|
|
||||
|
[U] http://www.advogato.org/proj/dgamelaunch/ |
||||
|
|
||||
|
[A] Joshua Kwan <joshk@triplehelix.org> |
||||
|
[M] Benjamin Schieder <blindcoder@scavenger.homeip.net> |
||||
|
|
||||
|
[C] extra/game |
||||
|
|
||||
|
[L] GPL |
||||
|
[S] Stable |
||||
|
[V] 1.4.6 |
||||
|
[P] X -----5---9 800.000 |
||||
|
|
||||
|
[D] 3155849319 dgamelaunch-1.4.6.tar.gz http://alt.org/~joshk/ |
||||
|
|
@ -0,0 +1,58 @@ |
|||||
|
# This is a sample dgamelaunch configuration file. Only bash-style comments |
||||
|
# are allowed, such as this. Each configuration option will be explained |
||||
|
# along with its default value. |
||||
|
|
||||
|
# The following two options are fairly insecure. They will force us to |
||||
|
# load the password/group database into memory while still having root |
||||
|
# privileges. Replace them with shed_uid/shed_gid entries as soon as |
||||
|
# possible if you decide to use them. dgamelaunch will inform you of |
||||
|
# the uids/gids corresponding to your choices when it loads. |
||||
|
# |
||||
|
# Note that shed_uid and shed_gid will always take precedence over |
||||
|
# shed_user and shed_group if they are specified. |
||||
|
|
||||
|
# shed_user: username to shed privileges to |
||||
|
#shed_user = "daemon" |
||||
|
# shed_group: group name to shed privileges to |
||||
|
#shed_group = "games" |
||||
|
|
||||
|
# Preferably, you may use the respective gids/uids. This is for Debian: |
||||
|
shed_uid = 2 |
||||
|
shed_gid = 4 |
||||
|
|
||||
|
# Max amount of registered users to allow. |
||||
|
maxusers = 64000 |
||||
|
|
||||
|
# Path to a prepared chroot jail. |
||||
|
chroot_path = "/" |
||||
|
|
||||
|
# From inside the jail, the location of the binary to be launched. |
||||
|
game_path = "/usr/games/lib/nethackdir/nethack" |
||||
|
game_name = "NetHack" |
||||
|
|
||||
|
# From inside the jail, dgamelaunch's working directory for rcfiles/ttyrec/etc |
||||
|
dglroot = "/usr/games/lib/dgamelaunch/" |
||||
|
|
||||
|
# From inside the jail, where dgamelaunch should put mail - should match up with |
||||
|
# NetHack settings. |
||||
|
spooldir = "/usr/games/lib/dgamelaunch/mail/" |
||||
|
|
||||
|
# From inside the jail, location of a banner file that contains no more than |
||||
|
# 14 lines of 80-column width text. Any more will be truncated. |
||||
|
banner = "/usr/games/lib/dgamelaunch/dgl-banner" |
||||
|
|
||||
|
# From inside the jail, the default .nethackrc that is copied for new users. |
||||
|
rc_template = "/usr/games/lib/dgamelaunch/dgl-default-rcfile" |
||||
|
|
||||
|
# The defaults are usually just fine for this. passwd refers to the file |
||||
|
# that stores the user database, and lockfile is only used internally by |
||||
|
# dgamelaunch. |
||||
|
|
||||
|
passwd = "/usr/games/lib/dgamelaunch/dgl-login" |
||||
|
lockfile = "/usr/games/lib/dgamelaunch/dgl-lock" |
||||
|
|
||||
|
# From inside the jail, the path to the savefile. %u is replaced by the |
||||
|
# decimal representation of shed_uid, %n is replaced by the player's |
||||
|
# user name. Before starting the game, this file is copied to its name |
||||
|
# with ".bak" appended. Set to an empty string to disable this copying. |
||||
|
savefilefmt = "/usr/game/lib/dgamelaunch/%u%n.gz" |
@ -0,0 +1,233 @@ |
|||||
|
# --- ROCK-COPYRIGHT-NOTE-BEGIN --- |
||||
|
# |
||||
|
# This copyright note is auto-generated by ./scripts/Create-CopyPatch. |
||||
|
# Please add additional copyright information _after_ the line containing |
||||
|
# the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by |
||||
|
# the ./scripts/Create-CopyPatch script. Do not edit this copyright text! |
||||
|
# |
||||
|
# ROCK Linux: rock-src/package/blindcoder/dgamelaunch/nh343-simple_mail.diff |
||||
|
# ROCK Linux is Copyright (C) 1998 - 2004 Clifford Wolf |
||||
|
# |
||||
|
# This patch file is dual-licensed. It is available under the license the |
||||
|
# patched project is licensed under, as long as it is an OpenSource license |
||||
|
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms |
||||
|
# of the GNU General Public License as published by the Free Software |
||||
|
# Foundation; either version 2 of the License, or (at your option) any later |
||||
|
# version. |
||||
|
# |
||||
|
# --- ROCK-COPYRIGHT-NOTE-END --- |
||||
|
|
||||
|
diff -urN orig/nethack-3.4.3/include/decl.h nethack-3.4.3/include/decl.h
|
||||
|
--- orig/nethack-3.4.3/include/decl.h 2003-12-07 15:39:13.000000000 -0800
|
||||
|
+++ nethack-3.4.3/include/decl.h 2004-01-03 15:57:34.000000000 -0800
|
||||
|
@@ -385,6 +385,10 @@
|
||||
|
}; |
||||
|
#endif /* AUTOPICKUP_EXCEPTIONS */ |
||||
|
|
||||
|
+#ifdef SIMPLE_MAIL
|
||||
|
+E int mailckfreq;
|
||||
|
+#endif
|
||||
|
+
|
||||
|
#undef E |
||||
|
|
||||
|
#endif /* DECL_H */ |
||||
|
diff -urN orig/nethack-3.4.3/include/flag.h nethack-3.4.3/include/flag.h
|
||||
|
--- orig/nethack-3.4.3/include/flag.h 2003-12-07 15:39:13.000000000 -0800
|
||||
|
+++ nethack-3.4.3/include/flag.h 2004-01-03 15:57:34.000000000 -0800
|
||||
|
@@ -175,6 +175,9 @@
|
||||
|
uchar bouldersym; /* symbol for boulder display */ |
||||
|
boolean travel1; /* first travel step */ |
||||
|
coord travelcc; /* coordinates for travel_cache */ |
||||
|
+#ifdef SIMPLE_MAIL
|
||||
|
+ boolean simplemail; /* simple mail format $NAME:$MESSAGE */
|
||||
|
+#endif
|
||||
|
#ifdef WIZARD |
||||
|
boolean sanity_check; /* run sanity checks */ |
||||
|
boolean mon_polycontrol; /* debug: control monster polymorphs */ |
||||
|
diff -urN orig/nethack-3.4.3/include/unixconf.h nethack-3.4.3/include/unixconf.h
|
||||
|
--- orig/nethack-3.4.3/include/unixconf.h 2003-12-07 15:39:13.000000000 -0800
|
||||
|
+++ nethack-3.4.3/include/unixconf.h 2004-01-03 15:57:34.000000000 -0800
|
||||
|
@@ -193,7 +193,6 @@
|
||||
|
# endif |
||||
|
#endif |
||||
|
|
||||
|
-#define MAILCKFREQ 50
|
||||
|
#endif /* MAIL */ |
||||
|
|
||||
|
|
||||
|
diff -urN orig/nethack-3.4.3/src/mail.c nethack-3.4.3/src/mail.c
|
||||
|
--- orig/nethack-3.4.3/src/mail.c 2003-12-07 15:39:13.000000000 -0800
|
||||
|
+++ nethack-3.4.3/src/mail.c 2004-01-03 16:07:21.000000000 -0800
|
||||
|
@@ -5,6 +5,8 @@
|
||||
|
#include "hack.h" |
||||
|
|
||||
|
#ifdef MAIL |
||||
|
+#include <fcntl.h>
|
||||
|
+#include <errno.h>
|
||||
|
#include "mail.h" |
||||
|
|
||||
|
/* |
||||
|
@@ -36,6 +38,8 @@
|
||||
|
STATIC_DCL boolean FDECL(md_rush,(struct monst *,int,int)); |
||||
|
STATIC_DCL void FDECL(newmail, (struct mail_info *)); |
||||
|
|
||||
|
+int mailckfreq = 0;
|
||||
|
+
|
||||
|
extern char *viz_rmin, *viz_rmax; /* line-of-sight limits (vision.c) */ |
||||
|
|
||||
|
#ifdef OVL0 |
||||
|
@@ -464,11 +468,15 @@
|
||||
|
void |
||||
|
ckmailstatus() |
||||
|
{ |
||||
|
+#ifdef SIMPLE_MAIL
|
||||
|
+ if (mailckfreq == 0)
|
||||
|
+ mailckfreq = (iflags.simplemail ? 5 : 10);
|
||||
|
+#else
|
||||
|
+ mailckfreq = 10;
|
||||
|
+#endif
|
||||
|
+
|
||||
|
if(!mailbox || u.uswallow || !flags.biff |
||||
|
-# ifdef MAILCKFREQ
|
||||
|
- || moves < laststattime + MAILCKFREQ
|
||||
|
-# endif
|
||||
|
- )
|
||||
|
+ || moves < laststattime + mailckfreq)
|
||||
|
return; |
||||
|
|
||||
|
laststattime = moves; |
||||
|
@@ -501,9 +509,68 @@
|
||||
|
readmail(otmp) |
||||
|
struct obj *otmp; |
||||
|
{ |
||||
|
-# ifdef DEF_MAILREADER /* This implies that UNIX is defined */
|
||||
|
+#ifdef DEF_MAILREADER
|
||||
|
register const char *mr = 0; |
||||
|
+#endif /* DEF_MAILREADER */
|
||||
|
+#ifdef SIMPLE_MAIL
|
||||
|
+ if (iflags.simplemail)
|
||||
|
+ {
|
||||
|
+ FILE* mb = fopen(mailbox, "r");
|
||||
|
+ char curline[102], *msg;
|
||||
|
+ boolean seen_one_already = FALSE;
|
||||
|
+ struct flock fl = { 0 };
|
||||
|
+
|
||||
|
+ fl.l_type = F_RDLCK;
|
||||
|
+ fl.l_whence = SEEK_SET;
|
||||
|
+ fl.l_start = 0;
|
||||
|
+ fl.l_len = 0;
|
||||
|
+
|
||||
|
+ if (!mb)
|
||||
|
+ goto bail;
|
||||
|
+
|
||||
|
+ /* Allow this call to block. */
|
||||
|
+ if (fcntl (fileno (mb), F_SETLKW, &fl) == -1)
|
||||
|
+ goto bail;
|
||||
|
+
|
||||
|
+ errno = 0;
|
||||
|
+
|
||||
|
+ while (fgets(curline, 102, mb) != NULL)
|
||||
|
+ {
|
||||
|
+ fl.l_type = F_UNLCK;
|
||||
|
+ fcntl (fileno(mb), F_UNLCK, &fl);
|
||||
|
+
|
||||
|
+ pline("There is a%s message on this scroll.",
|
||||
|
+ seen_one_already ? "nother" : "");
|
||||
|
+
|
||||
|
+ msg = strchr(curline, ':');
|
||||
|
+
|
||||
|
+ if (!msg)
|
||||
|
+ goto bail;
|
||||
|
+
|
||||
|
+ *msg = '\0';
|
||||
|
+ msg++;
|
||||
|
+
|
||||
|
+ pline ("This message is from '%s'.", curline);
|
||||
|
+
|
||||
|
+ msg[strlen(msg) - 1] = '\0'; /* kill newline */
|
||||
|
+ pline ("It reads: \"%s\".", msg);
|
||||
|
+
|
||||
|
+ seen_one_already = TRUE;
|
||||
|
+ errno = 0;
|
||||
|
+
|
||||
|
+ fl.l_type = F_RDLCK;
|
||||
|
+ fcntl(fileno(mb), F_SETLKW, &fl);
|
||||
|
+ }
|
||||
|
|
||||
|
+ fl.l_type = F_UNLCK;
|
||||
|
+ fcntl(fileno(mb), F_UNLCK, &fl);
|
||||
|
+
|
||||
|
+ fclose(mb);
|
||||
|
+ unlink(mailbox);
|
||||
|
+ return;
|
||||
|
+ }
|
||||
|
+# endif /* SIMPLE_MAIL */
|
||||
|
+# ifdef DEF_MAILREADER /* This implies that UNIX is defined */
|
||||
|
display_nhwindow(WIN_MESSAGE, FALSE); |
||||
|
if(!(mr = nh_getenv("MAILREADER"))) |
||||
|
mr = DEF_MAILREADER; |
||||
|
@@ -512,15 +578,21 @@
|
||||
|
(void) execl(mr, mr, (char *)0); |
||||
|
terminate(EXIT_FAILURE); |
||||
|
} |
||||
|
-# else
|
||||
|
-# ifndef AMS /* AMS mailboxes are directories */
|
||||
|
+# else
|
||||
|
+# ifndef AMS /* AMS mailboxes are directories */
|
||||
|
display_file(mailbox, TRUE); |
||||
|
-# endif /* AMS */
|
||||
|
-# endif /* DEF_MAILREADER */
|
||||
|
+# endif /* AMS */
|
||||
|
+# endif /* DEF_MAILREADER */
|
||||
|
|
||||
|
/* get new stat; not entirely correct: there is a small time |
||||
|
window where we do not see new mail */ |
||||
|
getmailstatus(); |
||||
|
+ return;
|
||||
|
+
|
||||
|
+#ifdef SIMPLE_MAIL
|
||||
|
+bail:
|
||||
|
+ pline("It appears to be all gibberish."); /* bail out _professionally_ */
|
||||
|
+#endif
|
||||
|
} |
||||
|
|
||||
|
# endif /* UNIX */ |
||||
|
@@ -587,10 +659,7 @@
|
||||
|
static int laststattime = 0; |
||||
|
|
||||
|
if(u.uswallow || !flags.biff |
||||
|
-# ifdef MAILCKFREQ
|
||||
|
- || moves < laststattime + MAILCKFREQ
|
||||
|
-# endif
|
||||
|
- )
|
||||
|
+ || moves < laststattime + mailckfreq)
|
||||
|
return; |
||||
|
|
||||
|
laststattime = moves; |
||||
|
diff -urN orig/nethack-3.4.3/sys/unix/unixmain.c nethack-3.4.3/sys/unix/unixmain.c
|
||||
|
--- orig/nethack-3.4.3/sys/unix/unixmain.c 2003-12-07 15:39:13.000000000 -0800
|
||||
|
+++ nethack-3.4.3/sys/unix/unixmain.c 2004-01-03 15:57:34.000000000 -0800
|
||||
|
@@ -54,7 +54,9 @@
|
||||
|
register char *dir; |
||||
|
#endif |
||||
|
boolean exact_username; |
||||
|
-
|
||||
|
+#ifdef SIMPLE_MAIL
|
||||
|
+ char* e_simple = NULL;
|
||||
|
+#endif
|
||||
|
#if defined(__APPLE__) |
||||
|
/* special hack to change working directory to a resource fork when |
||||
|
running from finder --sam */ |
||||
|
@@ -84,6 +86,12 @@
|
||||
|
} |
||||
|
#endif |
||||
|
|
||||
|
+#ifdef SIMPLE_MAIL
|
||||
|
+ /* figure this out early */
|
||||
|
+ e_simple = nh_getenv("SIMPLEMAIL");
|
||||
|
+ iflags.simplemail = (e_simple ? 1 : 0);
|
||||
|
+#endif
|
||||
|
+
|
||||
|
hname = argv[0]; |
||||
|
hackpid = getpid(); |
||||
|
(void) umask(0777 & ~FCMASK); |
@ -0,0 +1 @@ |
|||||
|
var_append patchfiles " " "${base}/package/blindcoder/dgamelaunch/nh343-simple_mail.diff" |