diff options
Diffstat (limited to 'games/quakeserver')
-rw-r--r-- | games/quakeserver/Makefile | 76 | ||||
-rw-r--r-- | games/quakeserver/distinfo | 5 | ||||
-rw-r--r-- | games/quakeserver/files/qserver.sh | 39 | ||||
-rw-r--r-- | games/quakeserver/files/readme.port | 63 | ||||
-rw-r--r-- | games/quakeserver/files/stopserver.sh | 11 | ||||
-rw-r--r-- | games/quakeserver/pkg-plist | 13 |
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 |