summaryrefslogtreecommitdiff
path: root/games/tetrinetx
diff options
context:
space:
mode:
authorrillig <rillig@pkgsrc.org>2006-02-14 17:03:54 +0000
committerrillig <rillig@pkgsrc.org>2006-02-14 17:03:54 +0000
commit04c133194e0a1b839ef2e1aeea240fb1a0952a71 (patch)
treea45747dfa742d51e14a02e95acec1e4e0e6c0be9 /games/tetrinetx
parentfdaf88784eade80623d336a70348775f0d22d461 (diff)
downloadpkgsrc-04c133194e0a1b839ef2e1aeea240fb1a0952a71.tar.gz
Imported tetrinetx from pkgsrc-wip.
TetriNET is an addictive 6 player tetr*s game What this program does is set up a TetriNET server that ordinary TetriNET clients can connect to. It attempts to fix some of the "glaring" holes in the TetriNET protocol that I discovered, and which I'm sure some people use as cheats, but I now see why it is nearly impossible to fix ;), without a modification to the client. I've kept the server as close to the same as the original TetriNET server, but I've added some extras that I've often wanted, such as the "/kick" and "/ban" keywords. Please note this server in no way encompasses the whole game. The clients are the ones that do most of the work, with the server just passing suitable packets between each client, and of course adding some of its own. Author: Brendan Grieve (brg@cheerful.com) Packaged by David Ferlier.
Diffstat (limited to 'games/tetrinetx')
-rw-r--r--games/tetrinetx/DEINSTALL27
-rw-r--r--games/tetrinetx/DESCR15
-rw-r--r--games/tetrinetx/MESSAGE11
-rw-r--r--games/tetrinetx/Makefile40
-rw-r--r--games/tetrinetx/PLIST8
-rw-r--r--games/tetrinetx/distinfo7
-rw-r--r--games/tetrinetx/files/tetrinetx15
-rw-r--r--games/tetrinetx/patches/patch-aa32
-rw-r--r--games/tetrinetx/patches/patch-ab37
9 files changed, 192 insertions, 0 deletions
diff --git a/games/tetrinetx/DEINSTALL b/games/tetrinetx/DEINSTALL
new file mode 100644
index 00000000000..498faaf2c8c
--- /dev/null
+++ b/games/tetrinetx/DEINSTALL
@@ -0,0 +1,27 @@
+#!/bin/sh
+# $NetBSD: DEINSTALL,v 1.1.1.1 2006/02/14 17:03:54 rillig Exp $
+
+PKGNAME=$1
+STAGE=$2
+LIST="${PKG_PREFIX}/share/tetrinetx/game.log"
+
+case ${STAGE} in
+ DEINSTALL)
+ for to_trash in ${LIST}; do
+ if [ -d "${to_trash}" ]; then
+ rm -rf ${to_trash}/*
+ elif [ -f "${to_trash}" ]; then
+ rm ${to_trash}
+ fi
+ done
+ ;;
+
+ POST-DEINSTALL)
+ ;;
+
+ *)
+ echo "Unexpected argument: ${STAGE}"
+ exit 1
+ ;;
+esac
+exit 0
diff --git a/games/tetrinetx/DESCR b/games/tetrinetx/DESCR
new file mode 100644
index 00000000000..3b2c1d6ed66
--- /dev/null
+++ b/games/tetrinetx/DESCR
@@ -0,0 +1,15 @@
+TetriNET is an addictive 6 player tetr*s game
+
+What this program does is set up a TetriNET server that ordinary
+TetriNET clients can connect to. It attempts to fix some of the
+"glaring" holes in the TetriNET protocol that I discovered, and which
+I'm sure some people use as cheats, but I now see why it is nearly
+impossible to fix ;), without a modification to the client.
+I've kept the server as close to the same as the original TetriNET
+server, but I've added some extras that I've often wanted, such as
+the "/kick" and "/ban" keywords.
+Please note this server in no way encompasses the whole game. The clients
+are the ones that do most of the work, with the server just passing suitable
+packets between each client, and of course adding some of its own.
+
+Author: Brendan Grieve (brg@cheerful.com)
diff --git a/games/tetrinetx/MESSAGE b/games/tetrinetx/MESSAGE
new file mode 100644
index 00000000000..6e92240e53e
--- /dev/null
+++ b/games/tetrinetx/MESSAGE
@@ -0,0 +1,11 @@
+===========================================================================
+$NetBSD: MESSAGE,v 1.1.1.1 2006/02/14 17:03:54 rillig Exp $
+
+It is recommended to tune tetrinetx configuration and motd files. They are
+located in ${PREFIX}/share/tetrinetx
+
+A rc.d script is provided: if you want tetrinetx to be launched at system
+startup, copy it from ${PREFIX}/share/examples/rc.d into /etc/rc.d
+and add tetrinetx=YES in /etc/rc.conf.
+
+===========================================================================
diff --git a/games/tetrinetx/Makefile b/games/tetrinetx/Makefile
new file mode 100644
index 00000000000..b90afc8cf90
--- /dev/null
+++ b/games/tetrinetx/Makefile
@@ -0,0 +1,40 @@
+# $NetBSD: Makefile,v 1.1.1.1 2006/02/14 17:03:54 rillig Exp $
+
+DISTNAME= tetrinetx-1.13.16+qirc-1.40c
+PKGNAME= tetrinetx-1.13.16
+CATEGORIES= games
+MASTER_SITES= http://tetrinetx.sourceforge.net/
+
+MAINTAINER= david@netbsd-fr.org
+HOMEPAGE= ${MASTER_SITES}
+COMMENT= Server for an addictive 6 player tetris game
+
+WRKSRC= ${WRKDIR}/${DISTNAME}
+SHAREDIR= ${PREFIX}/share/tetrinetx
+BINARY= tetrix.netbsd
+RCD_SCRIPTS= tetrinetx
+
+LIBS.SunOS+= -lsocket -lnsl -lresolv
+
+do-build:
+ cd ${WRKSRC:Q}/src && \
+ ${CC} \
+ ${CPPFLAGS} -I${LOCALBASE:Q}/include \
+ -DSHAREDIR=\"${SHAREDIR:Q}\" -DPREFIX=\"${PREFIX:Q}\" \
+ ${CFLAGS} -fno-strength-reduce -Wall \
+ ${LDFLAGS} -L${LOCALBASE:Q}/lib -ladns ${LIBS} \
+ -o ../bin/${BINARY:Q} -Wl,-R${LOCALBASE:Q}/lib \
+ main.c
+
+do-install:
+ ${INSTALL_DATA_DIR} ${SHAREDIR}
+ ${INSTALL_DATA_DIR} ${PREFIX:Q}/share/examples/rc.d
+ ${INSTALL_PROGRAM} ${WRKSRC:Q}/bin/${BINARY:Q} ${PREFIX:Q}/bin/tetrix
+ ${INSTALL_DATA} ${WRKSRC:Q}/bin/game.conf ${SHAREDIR:Q}
+ ${INSTALL_DATA} ${WRKSRC:Q}/bin/game.secure ${SHAREDIR:Q}
+ ${INSTALL_DATA} ${WRKSRC:Q}/bin/game.motd ${SHAREDIR:Q}
+ ${INSTALL_DATA} ${WRKSRC:Q}/bin/game.pmotd ${SHAREDIR:Q}
+ ${INSTALL_SCRIPT} ${FILESDIR:Q}/tetrinetx ${PREFIX:Q}/share/examples/rc.d/
+
+.include "../../net/adns/buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/games/tetrinetx/PLIST b/games/tetrinetx/PLIST
new file mode 100644
index 00000000000..bf1573074a5
--- /dev/null
+++ b/games/tetrinetx/PLIST
@@ -0,0 +1,8 @@
+@comment $NetBSD: PLIST,v 1.1.1.1 2006/02/14 17:03:54 rillig Exp $
+bin/tetrix
+share/examples/rc.d/tetrinetx
+share/tetrinetx/game.conf
+share/tetrinetx/game.motd
+share/tetrinetx/game.pmotd
+share/tetrinetx/game.secure
+@dirrm share/tetrinetx
diff --git a/games/tetrinetx/distinfo b/games/tetrinetx/distinfo
new file mode 100644
index 00000000000..455fecf817d
--- /dev/null
+++ b/games/tetrinetx/distinfo
@@ -0,0 +1,7 @@
+$NetBSD: distinfo,v 1.1.1.1 2006/02/14 17:03:54 rillig Exp $
+
+SHA1 (tetrinetx-1.13.16+qirc-1.40c.tar.gz) = 3bc0a8ce53bef3ef68b028834689d6fe85c8150a
+RMD160 (tetrinetx-1.13.16+qirc-1.40c.tar.gz) = 447c1d239919f2390748c8808cd1c026d0236afc
+Size (tetrinetx-1.13.16+qirc-1.40c.tar.gz) = 81447 bytes
+SHA1 (patch-aa) = c89202b583e2c3ebac9f566b451a61fece517bc6
+SHA1 (patch-ab) = 10136812d7d20e6c961463c3fa6973d2b23d195e
diff --git a/games/tetrinetx/files/tetrinetx b/games/tetrinetx/files/tetrinetx
new file mode 100644
index 00000000000..9f0c70bf2fb
--- /dev/null
+++ b/games/tetrinetx/files/tetrinetx
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# PROVIDE: tetrinetx
+# REQUIRE: DAEMON LOGIN network
+
+. /etc/rc.subr
+
+name="tetrinetx"
+rcvar=$name
+command="/usr/pkg/bin/tetrix"
+pidfile="/var/run/${name}.pid"
+required_files="/usr/pkg/share/tetrinetx/game.conf"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/games/tetrinetx/patches/patch-aa b/games/tetrinetx/patches/patch-aa
new file mode 100644
index 00000000000..83a19c33c8e
--- /dev/null
+++ b/games/tetrinetx/patches/patch-aa
@@ -0,0 +1,32 @@
+$NetBSD: patch-aa,v 1.1.1.1 2006/02/14 17:03:54 rillig Exp $
+--- src/config.h.orig 2001-04-24 04:31:29.000000000 +0200
++++ src/config.h 2004-01-23 02:55:51.745142400 +0100
+@@ -7,16 +7,16 @@
+ */
+
+ /* Location of the various external files */
+-#define FILE_MOTD "game.motd" /* Message of the Day File */
+-#define FILE_PMOTD "game.pmotd" /* Playback motd */
+-#define FILE_CONF "game.conf" /* Game configuration File */
+-#define FILE_WINLIST "game.winlist" /* Winlist storage file */
+-#define FILE_WINLIST2 "game.winlist2" /* Winlist storage file */
+-#define FILE_WINLIST3 "game.winlist3" /* Winlist storage file */
++#define FILE_MOTD SHAREDIR "/game.motd" /* Message of the Day File */
++#define FILE_PMOTD SHAREDIR "/game.pmotd" /* Playback motd */
++#define FILE_CONF SHAREDIR "/game.conf" /* Game configuration File */
++#define FILE_WINLIST SHAREDIR "/game.winlist" /* Winlist storage file */
++#define FILE_WINLIST2 SHAREDIR "/game.winlist2" /* Winlist storage file */
++#define FILE_WINLIST3 SHAREDIR "/game.winlist3" /* Winlist storage file */
+
+-#define FILE_BAN "game.ban" /* List of Banned IP's */
+-#define FILE_BAN_COMPROMISE "game.ban.compromise" /* List of Banned IP's */
+-#define FILE_ALLOW "game.allow" /* List of allow IP's */
+-#define FILE_LOG "game.log" /* Logfile */
+-#define FILE_PID "game.pid" /* Default PID */
+-#define FILE_SECURE "game.secure" /* Security file */
++#define FILE_BAN SHAREDIR "/game.ban" /* List of Banned IP's */
++#define FILE_BAN_COMPROMISE SHAREDIR "/game.ban.compromise" /* List of Banned IP's */
++#define FILE_ALLOW SHAREDIR "/game.allow" /* List of allow IP's */
++#define FILE_LOG SHAREDIR "/game.log" /* Logfile */
++#define FILE_PID PREFIX "/tetrinetx.pid" /* Default PID */
++#define FILE_SECURE SHAREDIR "/game.secure" /* Security file */
diff --git a/games/tetrinetx/patches/patch-ab b/games/tetrinetx/patches/patch-ab
new file mode 100644
index 00000000000..9cf958e4eb2
--- /dev/null
+++ b/games/tetrinetx/patches/patch-ab
@@ -0,0 +1,37 @@
+$NetBSD: patch-ab,v 1.1.1.1 2006/02/14 17:03:54 rillig Exp $
+
+--- src/main.c.orig Tue Jul 9 05:53:49 2002
++++ src/main.c Sun Jan 26 18:12:54 2003
+@@ -109,12 +109,12 @@
+ }
+
+
+-/* writepid() - Writes the current pid to game.pidfile */
++/* writepid() - Writes the current pid to FILE_PID */
+ void writepid(void)
+ {
+ FILE *file_out;
+
+- file_out = fopen(game.pidfile,"w");
++ file_out = fopen(FILE_PID,"w");
+ if (file_out == NULL)
+ {
+ // lvprintf(0,"ERROR: Could not write to PID file %s\n", game.pidfile);
+@@ -129,7 +129,7 @@
+ /* delpid() - Delete the pid file */
+ void delpid(void)
+ {
+- remove(game.pidfile);
++ remove(FILE_PID);
+ }
+
+ /* int numallplayers(chan) - Returns ANY player that is connected in a channel */
+@@ -4695,7 +4695,7 @@
+ {
+ struct sigaction sv;
+
+- lvprintf(0,"\nTetriNET for Linux V%s.%s\n---------------------------------\n", TETVERSION, SERVERBUILD);
++ lvprintf(0,"\nTetriNET for NetBSD V%s.%s\n---------------------------------\n", TETVERSION, SERVERBUILD);
+
+
+ gnet=NULL;