summaryrefslogtreecommitdiff
path: root/games
diff options
context:
space:
mode:
authorJames FitzGibbon <jfitz@FreeBSD.org>1997-05-31 00:52:04 +0000
committerJames FitzGibbon <jfitz@FreeBSD.org>1997-05-31 00:52:04 +0000
commitaff58f9ad5135dd3dbf77120bbf97672293f5e27 (patch)
tree6ca8676498e3fcd27d89178aee2e176a0a170923 /games
parentInstall doc files into ${LOCALBASE}/share/doc/pcb. (diff)
Upgrade (downgrade?) to v1.0.
Explanation: this port used to use the Linux quake client in server mode. It now uses the BSD/OS dedicated server binary, which has lower CPU and memory footprint, and has a different version numbering scheme.
Notes
Notes: svn path=/head/; revision=6651
Diffstat (limited to 'games')
-rw-r--r--games/quakeserver/Makefile76
-rw-r--r--games/quakeserver/distinfo5
-rw-r--r--games/quakeserver/files/qserver.sh39
-rw-r--r--games/quakeserver/files/readme.port63
-rw-r--r--games/quakeserver/files/stopserver.sh11
-rw-r--r--games/quakeserver/pkg-plist13
6 files changed, 164 insertions, 43 deletions
diff --git a/games/quakeserver/Makefile b/games/quakeserver/Makefile
index 61ca8671874d..b8c2637941c2 100644
--- a/games/quakeserver/Makefile
+++ b/games/quakeserver/Makefile
@@ -1,55 +1,63 @@
# New ports collection makefile for: quakeserver
-# Version required: 1.01
+# Version required: 0.991
# Date created: October 26th 1996
# Whom: jfitz@FreeBSD.ORG
#
-# $Id: Makefile,v 1.9 1997/03/23 15:39:06 jfitz Exp $
+# $Id: Makefile,v 1.10 1997/04/20 13:19:03 wosch Exp $
#
-PKGNAME= quakeserver-1.01
+PKGNAME= quakeserver-1.0
CATEGORIES= games tk41
-MASTER_SITES= ftp://ftp.gamesdomain.com/pub/idsoftware/quake/ \
- ftp://ftp.cssweb.com/pub/games/idstuff/quake/ \
- ftp://ftp.feist.com/pub/pc/games/quake/
-DISTFILES= quake101.zip \
- quake-FreeBSD.tar.gz \
- intel_linux_quake101.tgz
-
+MASTER_SITES= ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/ \
+ ftp://ftp.idsoftware.com/idstuff/quake/
+DISTFILES= unixded-1.0-i386-unknown-bsdi3.0.tar.gz \
+ quake106.zip
+
MAINTAINER= jfitz@freebsd.org
BUILD_DEPENDS= unzip:${PORTSDIR}/archivers/unzip \
lha:${PORTSDIR}/archivers/lha
-RUN_DEPENDS= expect:${PORTSDIR}/lang/expect \
- /compat/linux/lib/libc.so.5:${PORTSDIR}/emulators/linux_lib
-
-# Uncomment the next line to include the QuakeC compiler port as well
-#RUN_DEPENDS+= qcc:${PORTSDIR}/games/qcc
-
NO_WRKSUBDIR= YES
NO_BUILD= YES
NO_CDROM= "This software is shareware"
do-extract:
- @ ${MKDIR} -p work/quake
- @ ${MKDIR} -p work/server
- unzip -o ${DISTDIR}/quake101.zip -d ${WRKDIR}/quake QSW101.?
- @ cat ${WRKDIR}/quake/QSW101.[1-7] > ${WRKDIR}/quake/resource.exe
- cd ${WRKDIR}/quake; lha xf resource.exe id1/pak0.pak
- @ cd ${WRKDIR}/server; tar zxf ${DISTDIR}/quake-FreeBSD.tar.gz
- @ cd ${WRKDIR}/server/quake; tar zxf ${DISTDIR}/intel_linux_quake101.tgz
+ @ unzip -q -o ${DISTDIR}/quake106.zip -d ${WRKDIR} resource.*
+ @ cat ${WRKDIR}/resource.dat ${WRKDIR}/resource.1 > ${WRKDIR}/resource.exe
+ @ cd ${WRKDIR}; lha xfq resource.exe id1/pak0.pak
+ @ cd ${WRKDIR}; tar zxf ${DISTDIR}/unixded-1.0-i386-unknown-bsdi3.0.tar.gz
+
+do-configure:
+ @ ${CP} ${FILESDIR}/readme.port ${WRKSRC}
+ @ ${CP} ${FILESDIR}/qserver.sh ${WRKSRC}
+ @ ${CP} ${FILESDIR}/stopserver.sh ${WRKSRC}
+ @ ${SETENV} ${MAKE_ENV} /usr/bin/perl -pi -e 's|%%PREFIX%%|${PREFIX}|g' ${WRKSRC}/readme.port ${WRKSRC}/qserver.sh ${WRKSRC}/stopserver.sh
do-install:
- @ ${MKDIR} -p ${PREFIX}/quakeserver
- @ ${MKDIR} -p ${PREFIX}/quakeserver/id1
- for file in ${WRKDIR}/quake/id1/*; do \
- ${INSTALL_DATA} $$file ${PREFIX}/quakeserver/id1; \
- done
- ${INSTALL} ${COPY} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} ${WRKDIR}/server/quake/xquake ${PREFIX}/quakeserver
- ${INSTALL_PROGRAM} ${WRKDIR}/server/quake/qstat ${PREFIX}/quakeserver; \
- ${INSTALL_DATA} ${WRKDIR}/server/quake/README.FreeBSD ${PREFIX}/quakeserver
- for file in qsrv qsrv.expect qslog; do \
- ${INSTALL_SCRIPT} ${WRKDIR}/server/quake/$$file ${PREFIX}/quakeserver; \
- done
+ @ ${MKDIR} ${PREFIX}/quakeserver
+ @ ${MKDIR} ${PREFIX}/quakeserver/id1
+ ${INSTALL_DATA} ${WRKSRC}/id1/pak0.pak ${PREFIX}/quakeserver/id1
+ ${INSTALL} -c -o nobody -g nobody -m 0500 ${WRKSRC}/unixded ${PREFIX}/quakeserver
+ ${INSTALL_DATA} ${WRKSRC}/readme.unixded ${PREFIX}/quakeserver
+ ${INSTALL_DATA} ${WRKSRC}/readme.port ${PREFIX}/quakeserver
+ ${INSTALL} -c -o nobody -g nobody -m 0500 ${WRKSRC}/qserver.sh ${PREFIX}/quakeserver
+ ${INSTALL} -c -o nobody -g nobody -m 0500 ${WRKSRC}/stopserver.sh ${PREFIX}/quakeserver
+ /usr/bin/mkfifo ${PREFIX}/quakeserver/quakeserver.in
+ /usr/bin/touch ${PREFIX}/quakeserver/quakeserver.log
+ @ /bin/chmod 700 ${PREFIX}/quakeserver/quakeserver.in ${PREFIX}/quakeserver/quakeserver.log
+ @ /usr/sbin/chown -R nobody.nobody ${PREFIX}/quakeserver
+ @ echo "Installing ${PREFIX}/etc/rc.d/quakeserver.sh startup script"
+ @ echo "#!/bin/sh" > ${PREFIX}/etc/rc.d/quakeserver.sh
+ @ echo "#" >> ${PREFIX}/etc/rc.d/quakeserver.sh
+ @ echo "" >> ${PREFIX}/etc/rc.d/quakeserver.sh
+ @ echo "if [ -x ${PREFIX}/quakeserver/unixded ]" >> ${PREFIX}/etc/rc.d/quakeserver.sh
+ @ echo "then" >> ${PREFIX}/etc/rc.d/quakeserver.sh
+ @ echo " su nobody -c ${PREFIX}/quakeserver/qserver.sh &" >> ${PREFIX}/etc/rc.d/quakeserver.sh
+ @ echo "fi" >> ${PREFIX}/etc/rc.d/quakeserver.sh
+ @ /bin/chmod 750 ${PREFIX}/etc/rc.d/quakeserver.sh
+.if !defined(BATCH)
+ @ /usr/bin/more -e ${PREFIX}/quakeserver/readme.port
+.endif
.include <bsd.port.mk>
diff --git a/games/quakeserver/distinfo b/games/quakeserver/distinfo
index db7f5e567f17..23f0b0d5abfd 100644
--- a/games/quakeserver/distinfo
+++ b/games/quakeserver/distinfo
@@ -1,3 +1,2 @@
-MD5 (quake101.zip) = 61b27d2faec32c0a2269061a13e354cb
-MD5 (quake-FreeBSD.tar.gz) = 5e2b141e2e1c3d0af9eef1748bcbf0d4
-MD5 (intel_linux_quake101.tgz) = bccaf31cf8f3a81003a8b03b437af067
+MD5 (unixded-1.0-i386-unknown-bsdi3.0.tar.gz) = 147e4091f9ed37721fb38fca6cd77d86
+MD5 (quake106.zip) = 8cee4d03ee092909fdb6a4f84f0c1357
diff --git a/games/quakeserver/files/qserver.sh b/games/quakeserver/files/qserver.sh
new file mode 100644
index 000000000000..9be253421add
--- /dev/null
+++ b/games/quakeserver/files/qserver.sh
@@ -0,0 +1,39 @@
+#!/bin/sh
+#
+# $Id$
+#
+
+QSERVER=%%PREFIX%%/quakeserver/unixded
+QPIPE=%%PREFIX%%/quakeserver/quakeserver.in
+LOG=%%PREFIX%%/quakeserver/quakeserver.log
+
+cd %%PREFIX%%/quakeserver
+
+# This runs the standard quakeserver game, suitable for LAN play
+QARGS=
+
+# A few other ideas/options:
+
+# To run a game better suited for modem play:
+#$QARGS= +sys_ticrate 0.1
+
+# To run a registered game (assuming that you've put the registered *.pak
+# files into %%PREFIX%%/quakeserver/reg/
+#$QARGS= -game reg
+
+# To force the server to bind to just one IP address (to run multiple
+# servers on the same machine)
+#$QARGS= -ip x.x.x.x
+
+# For more ideas, look at %%PREFIX%%/quakeserver/readme.unixded as well as
+# the documentation that comes with Quake.
+
+# This actually runs the server
+$QSERVER $QARGS < $QPIPE >> $LOG &
+
+# Put commands you want to stuff into the console here, each being
+# redirected into %%PREFIX%%/quakeserver/quakeserver.in
+echo "map e1m1" > $QPIPE
+
+#
+# EOF
diff --git a/games/quakeserver/files/readme.port b/games/quakeserver/files/readme.port
new file mode 100644
index 000000000000..549b62e9ce74
--- /dev/null
+++ b/games/quakeserver/files/readme.port
@@ -0,0 +1,63 @@
+README for Quake Server port
+----------------------------
+
+NOTE: For those who used my old port of quakeserver (v1.01), this is radically
+different. It now uses the BSD/OS unix dedicated binary, which eliminates
+the need for the Linux emulation and improves stability.
+
+
+This port, as installed, contains the following directory structure
+
+%%PREFIX%%/quakeserver/readme.port this file
+%%PREFIX%%/quakeserver/readme.unixded unix server readme
+%%PREFIX%%/quakeserver/qserver.sh shell script to run the
+ server
+%%PREFIX%%/quakeserver/screenrc.quake screen configuration
+%%PREFIX%%/quakeserver/unixded server binary
+%%PREFIX%%/quakeserver/quakeserver.log server logfile
+%%PREFIX%%/quakeserver/quakeserver.in server console named pipe
+%%PREFIX%%/quakeserver/id1/pak0.pak quake shareware datafile
+
+This will run a shareware Quake server on UDP port 26000, binding to all
+addresses on the machine. For server options, read the readme.unixded file
+and look at the suggestions in qserver.sh.
+
+The startup procedure for the server is:
+
+%%PREFIX%%/etc/rc.d/quakeserver.sh runs the server as user 'nobody'.
+Input is redirected from the named pipe
+
+%%PREFIX%%/quakeserver/quakeserver.in
+
+and output is redirected to
+
+%%PREFIX%%/quakeserver/quakeserver.log.
+
+You can see the output of the console by viewing quakeserver.log, and feed
+commands to the server by echoing them into quakeserver.in.
+
+NOTE THAT THIS COULD REPRESENT A SECURITY RISK ON MACHINES RUNNING WEB
+SERVERS AS USER 'nobody'. If your system does this, please create an
+alternate pseudo-user to run the server as.
+
+One of the frequently asked questions about this port is how to run a
+registered server. It's pretty simple. If you want to run just a shareware
+server, copy the files from the ID1/ subdirectory of an installed copy of
+Quake into %%PREFIX%%/quakeserver/id1/. Remember to make all filenames
+lowercase.
+
+If you want to run a shareware and registered server in tandem, you will
+need to have a machine with multiple IP addresses (using aliasing or other
+methods). Copy the files from the ID1/ subdirectory to a new directory
+under %%PREFIX%%/quakeserver/ (such as reg/), and run two servers.
+Presuming that your machine has two addresses 10.10.10.10 and 10.10.10.11,
+the lines to launch the server would be :
+
+%%PREFIX%%/quakeserver/unixded -ip 10.10.10.10
+%%PREFIX%%/quakeserver/unixded -ip 10.10.10.11 -game reg
+
+Which would give you a shareware game on 10.10.10.10 and a registered game
+on 10.10.10.11.
+
+--
+j.
diff --git a/games/quakeserver/files/stopserver.sh b/games/quakeserver/files/stopserver.sh
new file mode 100644
index 000000000000..0e7a0fcd8007
--- /dev/null
+++ b/games/quakeserver/files/stopserver.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+#
+# $Id$
+#
+
+QPIPE=%%PREFIX%%/quakeserver/quakeserver.in
+
+echo "quit" > $QPIPE
+
+#
+# EOF \ No newline at end of file
diff --git a/games/quakeserver/pkg-plist b/games/quakeserver/pkg-plist
index e1bfff245439..065059a8ea10 100644
--- a/games/quakeserver/pkg-plist
+++ b/games/quakeserver/pkg-plist
@@ -1,9 +1,10 @@
quakeserver/id1/pak0.pak
-quakeserver/xquake
-quakeserver/README.FreeBSD
-quakeserver/qsrv
-quakeserver/qsrv.expect
-quakeserver/qstat
-quakeserver/qslog
+quakeserver/unixded
+quakeserver/readme.unixded
+quakeserver/readme.port
+quakeserver/qserver.sh
+quakeserver/stopserver.sh
+quakeserver/quakeserver.log
+quakeserver/quakeserver.in
@dirrm quakeserver/id1
@dirrm quakeserver