aboutsummaryrefslogtreecommitdiff
path: root/games/quakeforge
diff options
context:
space:
mode:
authorAlexander Leidinger <netchild@FreeBSD.org>2003-01-31 09:28:49 +0000
committerAlexander Leidinger <netchild@FreeBSD.org>2003-01-31 09:28:49 +0000
commit50ff37052c005c45ea6deeb329ffbb297855a7ec (patch)
tree0a8f86095a756bd7ecb898cec5404fed277ed68f /games/quakeforge
parent2314294cfdf6f0e974dbebc65dfeabdd493fb927 (diff)
downloadports-50ff37052c005c45ea6deeb329ffbb297855a7ec.tar.gz
ports-50ff37052c005c45ea6deeb329ffbb297855a7ec.zip
Notes
Diffstat (limited to 'games/quakeforge')
-rw-r--r--games/quakeforge/Makefile209
-rw-r--r--games/quakeforge/distinfo5
-rw-r--r--games/quakeforge/files/patch-aa171
-rw-r--r--games/quakeforge/files/patch-ab51
-rw-r--r--games/quakeforge/files/patch-ac52
-rw-r--r--games/quakeforge/files/patch-ad53
-rw-r--r--games/quakeforge/files/patch-ae13
-rw-r--r--games/quakeforge/files/patch-af11
-rw-r--r--games/quakeforge/files/patch-common_cd__sdl.c14
-rw-r--r--games/quakeforge/files/patch-common_vid__sdl.c14
-rw-r--r--games/quakeforge/files/patch-gl-snd31
-rw-r--r--games/quakeforge/pkg-message14
-rw-r--r--games/quakeforge/pkg-plist498
-rw-r--r--games/quakeforge/pkg-plist.glx2
-rw-r--r--games/quakeforge/pkg-plist.wad3
15 files changed, 734 insertions, 407 deletions
diff --git a/games/quakeforge/Makefile b/games/quakeforge/Makefile
index 96304d50bdca..0777c99ca58d 100644
--- a/games/quakeforge/Makefile
+++ b/games/quakeforge/Makefile
@@ -6,86 +6,195 @@
#
PORTNAME= QuakeForge
-PORTVERSION= 0.1.1
+PORTVERSION= 0.5.2
CATEGORIES= games
-MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
+MASTER_SITES= ${MASTER_SITE_SOURCEFORGE} \
+ ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/
MASTER_SITE_SUBDIR= quake
DISTNAME= quakeforge-${PORTVERSION}
+DISTFILES= ${DISTNAME}${EXTRACT_SUFX} ${PROGFILE}
+EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
.if !defined(NO_WAD)
MASTER_SITES+= http://www.devolution.com/~slouken/SDL/projects/quake/data/
-DISTFILES= ${DISTNAME}${EXTRACT_SUFX} ${WADFILE}
+DISTFILES+= ${WADFILE}
+.endif
+.if !defined(NO_SKINS)
+MASTER_SITES+= ftp://ftp.idsoftware.com/idstuff/quakeworld/skins/
+DISTFILES+= ${SKINFILES}
.endif
MAINTAINER= ports@FreeBSD.org
-BUILD_DEPENDS= ${ACLOCAL}:${PORTSDIR}/devel/automake14
-LIB_DEPENDS= SDL-1.1.5:${PORTSDIR}/devel/sdl12 \
- ${GL_DEPENDS}
-
-SDL_CONFIG?= ${LOCALBASE}/bin/sdl11-config
-
WADFILE= quakesw-1.0.6.tar.gz
-USE_BZIP2= yes
+PROGFILE= qwsv-2.30-glibc-i386-unknown-linux2.0.tar.gz
+SKINFILES= skinbase.zip qw_skins.zip
+
+USE_LIBTOOL= yes
USE_GMAKE= yes
-WANT_AUTOMAKE_VER= 14
-USE_AUTOCONF_VER= 213
USE_XLIB= yes
-PLIST= ${WRKDIR}/PLIST
+INSTALLS_SHLIB= yes
+
+.include <bsd.port.pre.mk>
+
+CONFIGURE_ARGS+=--build=${MACHINE_ARCH}-portbld-freebsd${OSREL} \
+ --with-global-cfg=${PREFIX}/etc/quakeforge.conf \
+ --with-sharepath=${PREFIX}/share/quakeforge
-BINARIES= quake-x11 quake-sdl qw-client-x11 qw-client-sdl qw-server
+CONFIGURE_TARGET=
-CONFIGURE_ARGS= "--with-sdl=${LOCALBASE}"
-CONFIGURE_ENV= "SDL_LIBS=`${SDL_CONFIG} --libs`" \
- "SDL_CFLAGS=`${SDL_CONFIG} --cflags`"
+BUILD_DEPENDS= bison:${PORTSDIR}/devel/bison
-.if defined(WITH_GLX)
-GL_DEPENDS= GL.1:${PORTSDIR}/graphics/utah-glx
-BINARIES+= quake-gl qw-client-gl
+.if exists(${LOCALBASE}/lib/libSDL-1.1.so.5)
+WITH_SDL= yes
+.endif
+
+.if exists(${LOCALBASE}/lib/libvga.so.1)
+WITH_SVGALIB= yes
+.endif
+
+.if exists(${X11BASE}/lib/libxmms.so.3)
+WITH_XMMS= yes
+.endif
+
+.if exists(${LOCALBASE}/lib/libvorbis.so.2)
+WITH_VORBIS= yes
+.endif
+
+.if defined(WITHOUT_SERVERS)
+CONFIGURE_ARGS+=--without-servers
+PLIST_SUB+= SERVER:="@comment "
.else
-GL_DEPENDS=
-CONFIGURE_ARGS+=--without-opengl
+PLIST_SUB+= SERVER:=""
.endif
-.if !defined(NO_WAD)
-EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
-BINDIR= ${PREFIX}/share/quakeforge
+
+.if defined(WITHOUT_TOOLS)
+CONFIGURE_ARGS+=--without-tools
+PLIST_SUB+= TOOL:="@comment "
.else
-BINDIR= ${PREFIX}/bin
+PLIST_SUB+= TOOL:=""
+MAN1= pak.1 qfcc.1 qflight.1 qfvis.1
.endif
-pre-configure:
-.if !defined(WITH_GLX)
- @${ECHO_MSG} "Define WITH_GLX to use GLX (otherwise it is explicitly disabled!)"
+.if defined(WITHOUT_CLIENTS)
+CONFIGURE_ARGS+=--without-clients
+PLIST_SUB+= CLIENT:="@comment "
+WITHOUT_XMMS= yes
+WITHOUT_SVGALIB= yes
+WITHOUT_SDL= yes
+WITHOUT_VORBIS= yes
+.else
+PLIST_SUB+= CLIENT:=""
.endif
- @cd ${WRKSRC} ; ${ACLOCAL}
- @cd ${WRKSRC} ; ${AUTOHEADER}
-do-install:
- @${CP} ${PKGDIR}/pkg-plist ${PLIST}
+.if !defined(WITHOUT_SVGALIB) && defined(WITH_SVGALIB)
+LIB_DEPENDS+= vga.1:${PORTSDIR}/graphics/svgalib
+CONFIGURE_ARGS+=--with-svga=${LOCALBASE}
+PLIST_SUB+= SVGA:=""
+.else
+CONFIGURE_ARGS+=--without-svga
+PLIST_SUB+= SVGA:="@comment "
+.endif
+
+.if !defined(WITHOUT_VORBIS) && defined(WITH_VORBIS)
+LIB_DEPENDS+= vorbis.2:${PORTSDIR}/audio/libvorbis
+CONFIGURE_ARGS+=--with-ogg=${LOCALBASE} --with-vorbis=${LOCALBASE}
+PLIST_SUB+= VORBIS:=""
+.else
+CONFIGURE_ARGS+=--disable-vorbis --without-ogg --without-ogg-libraries \
+ --without-ogg-includes --disable-oggtest
+PLIST_SUB+= VORBIS:="@comment "
+.endif
-.if defined(WITH_GLX)
- @${CAT} ${PKGDIR}/pkg-plist.glx >>${PLIST}
+.if !defined(WITHOUT_XMMS) && defined(WITH_XMMS)
+LIB_DEPENDS+= xmms.3:${PORTSDIR}/multimedia/xmms
+CONFIGURE_ARGS+=--with-xmms-prefix=${X11BASE}
+PLIST_SUB+= XMMS:=""
+.else
+CONFIGURE_ARGS+=--disable-xmms
+PLIST_SUB+= XMMS:="@comment "
+.endif
+
+.if !defined(WITHOUT_SDL) && defined(WITH_SDL)
+LIB_DEPENDS+= SDL-1.1.5:${PORTSDIR}/devel/sdl12
+CONFIGURE_ARGS+=--with-sdl=${LOCALBASE}
+CONFIGURE_ENV= "SDL_CONFIG=${LOCALBASE}/bin/sdl11-config"
+PLIST_SUB+= SDL:=""
+.else
+CONFIGURE_ARGS+=--disable-sdl --disable-sdltest
+PLIST_SUB+= SDL:="@comment "
.endif
.if !defined(NO_WAD)
- ${MKDIR} ${PREFIX}/share/quakeforge
- ${TAR} xfz ${DISTDIR}/${WADFILE} -C ${PREFIX}/share/quakeforge
-.for binary in ${BINARIES}
- @printf "#!/bin/sh\ncd ${PREFIX}/share/quakeforge\n./${binary} \$$@" > \
- ${WRKDIR}/${binary}.sh
- ${INSTALL_SCRIPT} ${WRKDIR}/${binary}.sh ${PREFIX}/bin/${binary}
- @${ECHO_CMD} share/quakeforge/${binary} >>${PLIST}
-.endfor
- @${CAT} ${PKGDIR}/pkg-plist.wad >>${PLIST}
+PLIST_SUB+= WAD:=""
+.else
+PLIST_SUB+= WAD:="@comment "
.endif
-.for binary in ${BINARIES}
- ${INSTALL_PROGRAM} ${WRKSRC}/targets/${binary} ${BINDIR}/
-.endfor
+.if !defined(NO_SKINS)
+PLIST_SUB+= SKIN:=""
+BUILD_DEPENDS+= unzip:${PORTSDIR}/archivers/unzip
+.else
+PLIST_SUB+= SKIN:="@comment "
+.endif
+
+pre-everything:
+.if !defined(NO_WAD)
+ @${ECHO_MSG} "Define NO_WAD to stop from using shareware version!"
+.endif
+.if !defined(NO_SKINS)
+ @${ECHO_MSG} "Define NO_SKINS to stop from installing skins"
+.endif
+.if !defined(WITH_SVGALIB)
+ @${ECHO_MSG} "Define WITH_SVGALIB to use svgalib"
+.endif
+.if !defined(WITH_VORBIS)
+ @${ECHO_MSG} "Define WITH_VORBIS to use Ogg Vorbis"
+.endif
+.if !defined(WITH_XMMS)
+ @${ECHO_MSG} "Define WITH_XMMS to use XMMS"
+.endif
+.if !defined(WITH_SDL)
+ @${ECHO_MSG} "Define WITH_SDL to use SDL"
+.endif
+.if !defined(WITHOUT_TOOLS)
+ @${ECHO_MSG} "Define WITHOUT_TOOLS to disable building of additional tools"
+.endif
+.if !defined(WITHOUT_SERVERS)
+ @${ECHO_MSG} "Define WITHOUT_SERVERS to disable building of the servers"
+.endif
+.if !defined(WITHOUT_CLIENTS)
+ @${ECHO_MSG} "Define WITHOUT_CLIENTS to disable building of the clients"
+.endif
+
+do-install:
+ @(cd ${INSTALL_WRKSRC} && ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${INSTALL_TARGET})
+.if !defined(NO_WAD)
+ ${MKDIR} ${PREFIX}/share/quakeforge/id1 && \
+ ${TAR} xzf ${DISTDIR}/${WADFILE} -C ${PREFIX}/share/quakeforge --no-same-owner id1/pak0.pak
+.endif
+.if !defined(WITHOUT_SERVERS)
+ ${TAR} xzf ${DISTDIR}/${PROGFILE} -C ${PREFIX}/share/quakeforge qw/
+.endif
+.if !defined(NO_SKINS)
+.for file in ${SKINFILES}
+ unzip -n ${DISTDIR}/${file} -d ${PREFIX}/share/quakeforge/qw/skins
+.endfor
+ @cd ${PREFIX}/share/quakeforge/qw/skins && ./fixskins.sh *
+.endif
.if !defined(NOPORTDOCS)
- ${MKDIR} ${PREFIX}/share/doc/quakeforge
+ ${MKDIR} ${PREFIX}/share/doc/quakeforge/config
+ ${MKDIR} ${PREFIX}/share/doc/quakeforge/data/docs
+ ${MKDIR} ${PREFIX}/share/doc/quakeforge/ideas
cd ${WRKSRC}/doc && \
- ${INSTALL_MAN} README.* *.txt ${PREFIX}/share/doc/quakeforge
+ ${INSTALL_MAN} *.txt *.q1 *.q2 *.ico *.gif *.fig *.h CodingStyle ${PREFIX}/share/doc/quakeforge && \
+ ${INSTALL_MAN} config/*.cfg ${PREFIX}/share/doc/quakeforge/config && \
+ ${INSTALL_MAN} data/*.txt ${PREFIX}/share/doc/quakeforge/data && \
+ ${INSTALL_MAN} data/docs/* ${PREFIX}/share/doc/quakeforge/data/docs && \
+ ${INSTALL_MAN} ideas/*.txt ${PREFIX}/share/doc/quakeforge/ideas
.endif
-.include <bsd.port.mk>
+post-install:
+ @${CAT} ${PKGMESSAGE} | ${SED} -e 's#$${PREFIX}#${PREFIX}#g'
+
+.include <bsd.port.post.mk>
diff --git a/games/quakeforge/distinfo b/games/quakeforge/distinfo
index 9ff00722a5a9..336e08b9501a 100644
--- a/games/quakeforge/distinfo
+++ b/games/quakeforge/distinfo
@@ -1,2 +1,5 @@
-MD5 (quakeforge-0.1.1.tar.bz2) = 7cf29a1a21e5c736bf0cb148417ef337
+MD5 (quakeforge-0.5.2.tar.gz) = 6a47e7b3f886fb0624c8cd5e2830e0a9
+MD5 (qwsv-2.30-glibc-i386-unknown-linux2.0.tar.gz) = 75333c66edd156a1695452d3971169d7
MD5 (quakesw-1.0.6.tar.gz) = 663b749612d55de29f74966ec3168918
+MD5 (skinbase.zip) = 12f3956955c25aa0d508a4d10e7e0532
+MD5 (qw_skins.zip) = b82f6246276f6013835fab2e76455c65
diff --git a/games/quakeforge/files/patch-aa b/games/quakeforge/files/patch-aa
index 5ff35452191a..0d8d5e12344a 100644
--- a/games/quakeforge/files/patch-aa
+++ b/games/quakeforge/files/patch-aa
@@ -1,164 +1,11 @@
---- common/snd_oss.c.orig Wed Jan 19 13:01:04 2000
-+++ common/snd_oss.c Thu Mar 30 17:41:06 2000
-@@ -22,6 +22,7 @@
- #include "quakedef.h"
+--- libs/audio/renderer/Makefile.in.orig Wed Nov 13 20:21:33 2002
++++ libs/audio/renderer/Makefile.in Wed Nov 13 20:22:16 2002
+@@ -206,7 +206,7 @@
+ AUTOMAKE_OPTIONS = foreign
- #include <stdio.h>
-+#ifndef SDL
- #include <stdlib.h>
- #ifdef HAVE_UNISTD_H
- #include <unistd.h>
-@@ -50,9 +51,30 @@
- static int snd_inited;
+ AM_CFLAGS = @PREFER_PIC@
+-INCLUDES = -I$(top_srcdir)/include
++INCLUDES = -I$(top_srcdir)/include $(VORBIS_CFLAGS) $(OGG_CFLAGS)
+ plugin_version = 1:0:0
- static int tryrates[] = { 11025, 22051, 44100, 8000 };
-+#else /* SDL */
-+#include "SDL_audio.h"
-+#include "SDL_byteorder.h"
-+
-+static dma_t the_shm;
-+static int snd_inited;
-+
-+extern int desired_speed;
-+extern int desired_bits;
-+
-+static void paint_audio(void *unused, Uint8 *stream, int len)
-+{
-+ if ( shm ) {
-+ shm->buffer = stream;
-+ shm->samplepos += len/(shm->samplebits/8);
-+ // Check for samplepos overflow?
-+ S_PaintChannels (shm->samplepos);
-+ }
-+}
-+#endif /*SDL */
-
- qboolean SNDDMA_Init(void)
- {
-+#ifndef SDL
-
- int rc;
- int fmt;
-@@ -147,7 +169,7 @@
- // memory map the dma buffer
-
- shm->buffer = (unsigned char *) mmap(NULL, info.fragstotal
-- * info.fragsize, PROT_WRITE, MAP_FILE|MAP_SHARED, audio_fd, 0);
-+ * info.fragsize, PROT_READ | PROT_WRITE, MAP_FILE|MAP_SHARED, audio_fd, 0);
-
- if (shm->buffer == MAP_FAILED)
- {
-@@ -240,11 +262,87 @@
- snd_inited = 1;
- return 1;
-
-+#else /* SDL */
-+
-+ SDL_AudioSpec desired, obtained;
-+
-+ snd_inited = 0;
-+
-+ /* Set up the desired format */
-+ desired.freq = desired_speed;
-+ switch (desired_bits) {
-+ case 8:
-+ desired.format = AUDIO_U8;
-+ break;
-+ case 16:
-+ if ( SDL_BYTEORDER == SDL_BIG_ENDIAN )
-+ desired.format = AUDIO_S16MSB;
-+ else
-+ desired.format = AUDIO_S16LSB;
-+ break;
-+ default:
-+ Con_Printf("Unknown number of audio bits: %d\n",
-+ desired_bits);
-+ return 0;
-+ }
-+ desired.channels = 2;
-+ desired.samples = 512;
-+ desired.callback = paint_audio;
-+
-+ /* Open the audio device */
-+ if ( SDL_OpenAudio(&desired, &obtained) < 0 ) {
-+ Con_Printf("Couldn't open SDL audio: %s\n", SDL_GetError());
-+ return 0;
-+ }
-+
-+ /* Make sure we can support the audio format */
-+ switch (obtained.format) {
-+ case AUDIO_U8:
-+ /* Supported */
-+ break;
-+ case AUDIO_S16LSB:
-+ case AUDIO_S16MSB:
-+ if ( ((obtained.format == AUDIO_S16LSB) &&
-+ (SDL_BYTEORDER == SDL_LIL_ENDIAN)) ||
-+ ((obtained.format == AUDIO_S16MSB) &&
-+ (SDL_BYTEORDER == SDL_BIG_ENDIAN)) ) {
-+ /* Supported */
-+ break;
-+ }
-+ /* Unsupported, fall through */;
-+ default:
-+ /* Not supported -- force SDL to do our bidding */
-+ SDL_CloseAudio();
-+ if ( SDL_OpenAudio(&desired, NULL) < 0 ) {
-+ Con_Printf("Couldn't open SDL audio: %s\n",
-+ SDL_GetError());
-+ return 0;
-+ }
-+ memcpy(&obtained, &desired, sizeof(desired));
-+ break;
-+ }
-+ SDL_PauseAudio(0);
-+
-+ /* Fill the audio DMA information block */
-+ shm = &the_shm;
-+ shm->splitbuffer = 0;
-+ shm->samplebits = (obtained.format & 0xFF);
-+ shm->speed = obtained.freq;
-+ shm->channels = obtained.channels;
-+ shm->samples = obtained.samples*shm->channels;
-+ shm->samplepos = 0;
-+ shm->submission_chunk = 1;
-+ shm->buffer = NULL;
-+
-+ snd_inited = 1;
-+ return 1;
-+#endif /* SDL */
- }
-
- int SNDDMA_GetDMAPos(void)
- {
-
-+#ifndef SDL
- struct count_info count;
-
- if (!snd_inited) return 0;
-@@ -260,6 +358,7 @@
- // shm->samplepos = (count.bytes / (shm->samplebits / 8)) & (shm->samples-1);
- // fprintf(stderr, "%d \r", count.ptr);
- shm->samplepos = count.ptr / (shm->samplebits / 8);
-+#endif /* SDL */
-
- return shm->samplepos;
-
-@@ -267,11 +366,17 @@
-
- void SNDDMA_Shutdown(void)
- {
-+
- if (snd_inited)
- {
-+#ifndef SDL
- close(audio_fd);
-+#else /* SDL */
-+ SDL_CloseAudio();
-+#endif
- snd_inited = 0;
- }
-+
- }
-
- /*
+ plugin_PROGRAMS = @SND_REND_TARGETS@
diff --git a/games/quakeforge/files/patch-ab b/games/quakeforge/files/patch-ab
index 00d831f65b03..57a656c45c55 100644
--- a/games/quakeforge/files/patch-ab
+++ b/games/quakeforge/files/patch-ab
@@ -1,32 +1,19 @@
-
-$FreeBSD$
-
---- configure.in.orig Sun Feb 27 13:26:03 2000
-+++ configure.in Wed Apr 17 17:43:43 2002
-@@ -210,7 +210,7 @@
- fi
- save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $SDL_CFLAGS"
-- AC_CHECK_HEADER(SDL/SDL.h, HAS_SDL=yes, HAS_SDL=no)
-+ AC_CHECK_HEADER(SDL.h, HAS_SDL=yes, HAS_SDL=no)
- CPPFLAGS="$save_CPPFLAGS"
- fi
-
-@@ -335,7 +335,7 @@
- dnl Make sure -lpthread works (for SDL)
- if test "x$HAS_SDL" = xyes; then
- AC_CHECK_LIB(pthread, pthread_exit ,SDL_LIBS="$SDL_LIBS -lpthread"
-- HAS_SDL=yes, HAS_SDL=no, [$SDL_LIBS])
-+ HAS_SDL=yes, HAS_SDL=yes, [$SDL_LIBS])
- fi
- if test "x$HAS_SDL" != xyes; then
- SDL_CFLAGS="" SDL_LIBS=""
-@@ -343,7 +343,7 @@
-
- dnl Make sure -lSDL works
- if test "x$HAS_SDL" = xyes; then
-- AC_CHECK_LIB(SDL, SDL_Init, SDL_LIBS="$SDL_LIBS -lSDL"
-+ AC_CHECK_LIB(SDL-1.1, SDL_Init, SDL_LIBS="$SDL_LIBS"
- HAS_SDL=yes, HAS_SDL=no, [$SDL_LIBS])
- fi
- if test "x$HAS_SDL" != xyes; then
+--- libs/util/quakeio.c.orig 16 Oct 2002 04:59:34 -0000 1.18
++++ libs/util/quakeio.c 24 Oct 2002 22:36:15 -0000 1.19
+@@ -425,8 +425,14 @@
+ res = fseek (file->file, offset, whence);
+ break;
+ case SEEK_END:
+- res = fseek (file->file,
+- file->start + file->size - offset, SEEK_SET);
++ if (file->size == -1) {
++ // we don't know the size (due to writing) so punt and
++ // pass on the request as-is
++ res = fseek (file->file, offset, SEEK_END);
++ } else {
++ res = fseek (file->file,
++ file->start + file->size - offset, SEEK_SET);
++ }
+ break;
+ default:
+ errno = EINVAL;
diff --git a/games/quakeforge/files/patch-ac b/games/quakeforge/files/patch-ac
index 46711cfe434c..42773123b4e4 100644
--- a/games/quakeforge/files/patch-ac
+++ b/games/quakeforge/files/patch-ac
@@ -1,42 +1,10 @@
---- uquake/Makefile.in.orig Wed Jan 19 03:24:41 2000
-+++ uquake/Makefile.in Wed Apr 19 12:15:39 2000
-@@ -282,10 +282,13 @@
- $(COMMON_DIR)/@X11_VID_SRC@
- $(CC) $(CFLAGS) $(X11_CFLAGS) -o $@ -c $<
-
-+$(BUILD_DIR)/soft/snd_oss.@OBJEXT@: $(COMMON_DIR)/snd_oss.c
-+ $(CC) $(CFLAGS) $(SDL_CFLAGS) -o $@ -c $<
-+
- $(X11QUAKE): soft_DIR $(BUILD_DIR)/../$(X11QUAKE)
-
- $(BUILD_DIR)/../$(X11QUAKE): $(ALL_X11_OBJS)
-- $(CC) $(CFLAGS) $(ALL_X11_OBJS) $(X11_LDFLAGS) $(LDFLAGS) $(LIBS) \
-+ $(CC) $(CFLAGS) $(ALL_X11_OBJS) $(X11_LDFLAGS) $(SDL_LDFLAGS) $(LDFLAGS) $(LIBS) \
- -o $(BUILD_DIR)/../$(X11QUAKE)
-
- endif
-@@ -358,6 +361,9 @@
- $(BUILD_DIR)/soft/cd_sdl.@OBJEXT@: $(COMMON_DIR)/cd_sdl.c
- $(CC) $(CFLAGS) $(SDL_CFLAGS) -o $@ -c $<
-
-+$(BUILD_DIR)/soft/snd_oss.@OBJEXT@: $(COMMON_DIR)/snd_oss.c
-+ $(CC) $(CFLAGS) $(SDL_CFLAGS) -o $@ -c $<
-+
- $(SDLQUAKE): soft_DIR $(BUILD_DIR)/../$(SDLQUAKE)
-
- $(BUILD_DIR)/../$(SDLQUAKE): $(ALL_SDL_OBJS)
-@@ -438,10 +444,13 @@
- $(BUILD_DIR)/gl/dga_check.@OBJEXT@: $(COMMON_DIR)/dga_check.c
- $(CC) $(CFLAGS) $(X11_CFLAGS) -o $@ -c $<
-
-+$(BUILD_DIR)/soft/snd_oss.@OBJEXT@: $(COMMON_DIR)/snd_oss.c
-+ $(CC) $(CFLAGS) $(SDL_CFLAGS) -o $@ -c $<
-+
- $(GLQUAKE): gl_DIR $(BUILD_DIR)/../$(GLQUAKE)
-
- $(BUILD_DIR)/../$(GLQUAKE): $(ALL_GL_OBJS)
-- $(CC) $(CFLAGS) $(ALL_GL_OBJS) $(GL_LDFLAGS) $(LDFLAGS) $(LIBS) \
-+ $(CC) $(CFLAGS) $(ALL_GL_OBJS) $(GL_LDFLAGS) $(SDL_LDFLAGS) $(LDFLAGS) $(LIBS) \
- -o $(BUILD_DIR)/../$(GLQUAKE)
-
- endif
+--- libs/audio/renderer/Makefile.am.orig Wed Nov 13 21:30:38 2002
++++ libs/audio/renderer/Makefile.am Wed Nov 13 21:30:47 2002
+@@ -1,6 +1,6 @@
+ AUTOMAKE_OPTIONS= foreign
+
+-AM_CFLAGS= @PREFER_PIC@
++AM_CFLAGS= @PREFER_PIC@ @VORBIS_CFLAGS@
+ INCLUDES= -I$(top_srcdir)/include
+ plugin_version= 1:0:0
+ plugin_ldflags= @plugin_ldflags@
diff --git a/games/quakeforge/files/patch-ad b/games/quakeforge/files/patch-ad
index 97f9a2db692b..83da6b11792a 100644
--- a/games/quakeforge/files/patch-ad
+++ b/games/quakeforge/files/patch-ad
@@ -1,42 +1,11 @@
---- qw_client/Makefile.in.orig Wed Jan 19 03:24:41 2000
-+++ qw_client/Makefile.in Wed Apr 19 12:14:39 2000
-@@ -277,10 +277,13 @@
- $(COMMON_DIR)/@X11_VID_SRC@
- $(CC) $(CFLAGS) $(X11_CFLAGS) -o $@ -c $<
-
-+$(BUILD_DIR)/soft/snd_oss.@OBJEXT@: $(COMMON_DIR)/snd_oss.c
-+ $(CC) $(CFLAGS) $(SDL_CFLAGS) -o $@ -c $<
-+
- $(X11QUAKE): soft_DIR $(BUILD_DIR)/../$(X11QUAKE)
-
- $(BUILD_DIR)/../$(X11QUAKE): $(ALL_X11_OBJS)
-- $(CC) $(CFLAGS) $(ALL_X11_OBJS) $(X11_LDFLAGS) $(LDFLAGS) $(LIBS) \
-+ $(CC) $(CFLAGS) $(ALL_X11_OBJS) $(X11_LDFLAGS) $(SDL_LDFLAGS) $(LDFLAGS) $(LIBS) \
- -o $(BUILD_DIR)/../$(X11QUAKE)
-
- endif
-@@ -353,6 +356,9 @@
- $(BUILD_DIR)/soft/cd_sdl.@OBJEXT@: $(COMMON_DIR)/cd_sdl.c
- $(CC) $(CFLAGS) $(SDL_CFLAGS) -o $@ -c $<
-
-+$(BUILD_DIR)/soft/snd_oss.@OBJEXT@: $(COMMON_DIR)/snd_oss.c
-+ $(CC) $(CFLAGS) $(SDL_CFLAGS) -o $@ -c $<
-+
- $(SDLQUAKE): soft_DIR $(BUILD_DIR)/../$(SDLQUAKE)
-
- $(BUILD_DIR)/../$(SDLQUAKE): $(ALL_SDL_OBJS)
-@@ -402,10 +408,13 @@
- $(BUILD_DIR)/gl/dga_check.@OBJEXT@: $(COMMON_DIR)/dga_check.c
- $(CC) $(CFLAGS) $(X11_CFLAGS) -o $@ -c $<
-
-+$(BUILD_DIR)/soft/snd_oss.@OBJEXT@: $(COMMON_DIR)/snd_oss.c
-+ $(CC) $(CFLAGS) $(SDL_CFLAGS) -o $@ -c $<
-+
- $(GLQUAKE): gl_DIR $(BUILD_DIR)/../$(GLQUAKE)
-
- $(BUILD_DIR)/../$(GLQUAKE): $(ALL_GL_OBJS)
-- $(CC) $(CFLAGS) $(ALL_GL_OBJS) $(GL_LDFLAGS) $(LDFLAGS) $(LIBS) \
-+ $(CC) $(CFLAGS) $(ALL_GL_OBJS) $(GL_LDFLAGS) $(SDL_LDFLAGS) $(LDFLAGS) $(LIBS) \
- -o $(BUILD_DIR)/../$(GLQUAKE)
-
- endif
+--- libs/audio/targets/snd_oss.c.orig Wed Nov 13 22:21:14 2002
++++ libs/audio/targets/snd_oss.c Wed Nov 13 22:19:08 2002
+@@ -252,7 +252,7 @@
+ if (mmaped_io) { // memory map the dma buffer
+ shm->buffer = (unsigned char *) mmap
+ (NULL, info.fragstotal * info.fragsize,
+-#if (defined(BSD)) // workaround for BSD OSS quirk
++#if (defined(__FreeBSD__) && (__FreeBSD_version < 500000)) // workaround for BSD OSS quirk
+ PROT_READ | PROT_WRITE,
+ #else
+ PROT_WRITE,
diff --git a/games/quakeforge/files/patch-ae b/games/quakeforge/files/patch-ae
new file mode 100644
index 000000000000..3ebeacd18bb0
--- /dev/null
+++ b/games/quakeforge/files/patch-ae
@@ -0,0 +1,13 @@
+--- libs/video/targets/vid_svgalib.c.orig Mon Jan 13 20:14:39 2003
++++ libs/video/targets/vid_svgalib.c Mon Jan 13 20:24:38 2003
+@@ -641,4 +641,10 @@
+ {
+ asm ("outb %b0, %w1" : :"a"(val), "d"(port));
+ }
++#elif defined(__FreeBSD__)
++static inline void
++outb (unsigned char value, unsigned short port)
++{
++ __asm__ __volatile__ ("outb %b0,%w1"::"a" (value), "d" (port));
++}
+ #endif
diff --git a/games/quakeforge/files/patch-af b/games/quakeforge/files/patch-af
new file mode 100644
index 000000000000..3f628413c8ed
--- /dev/null
+++ b/games/quakeforge/files/patch-af
@@ -0,0 +1,11 @@
+--- configure.orig Mon Jan 6 17:45:41 2003
++++ configure Mon Jan 6 17:46:42 2003
+@@ -15588,7 +15588,7 @@
+ no_sdl=yes
+ else
+ SDL_CFLAGS=`$SDL_CONFIG $sdlconf_args --cflags`
+- SDL_LIBS=`$SDL_CONFIG $sdlconf_args --libs`
++ SDL_LIBS=`$SDL_CONFIG $sdlconf_args --libs` # | sed 's/-lc_r/-pthread/'`
+
+ sdl_major_version=`$SDL_CONFIG $sdl_args --version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'`
diff --git a/games/quakeforge/files/patch-common_cd__sdl.c b/games/quakeforge/files/patch-common_cd__sdl.c
deleted file mode 100644
index 4936a2d47ad6..000000000000
--- a/games/quakeforge/files/patch-common_cd__sdl.c
+++ /dev/null
@@ -1,14 +0,0 @@
-
-$FreeBSD$
-
---- common/cd_sdl.c 2001/01/24 21:40:56 1.1
-+++ common/cd_sdl.c 2001/01/24 21:41:17
-@@ -24,7 +24,7 @@
- // of podged this together from the SDL headers, and the other cd-rom code.
- // -- Mark Baker <homer1@together.net>
-
--#include <SDL/SDL.h>
-+#include <SDL.h>
-
- #include "quakedef.h"
-
diff --git a/games/quakeforge/files/patch-common_vid__sdl.c b/games/quakeforge/files/patch-common_vid__sdl.c
deleted file mode 100644
index ade3933985e5..000000000000
--- a/games/quakeforge/files/patch-common_vid__sdl.c
+++ /dev/null
@@ -1,14 +0,0 @@
-
-$FreeBSD$
-
---- common/vid_sdl.c 2001/01/24 21:40:56 1.1
-+++ common/vid_sdl.c 2001/01/24 21:41:25
-@@ -21,7 +21,7 @@
- */
- // vid_sdl.h -- sdl video driver
-
--#include <SDL/SDL.h>
-+#include <SDL.h>
- #include "quakedef.h"
- #include "d_local.h"
-
diff --git a/games/quakeforge/files/patch-gl-snd b/games/quakeforge/files/patch-gl-snd
deleted file mode 100644
index 7f87b060eadc..000000000000
--- a/games/quakeforge/files/patch-gl-snd
+++ /dev/null
@@ -1,31 +0,0 @@
---- uquake/Makefile.in.orig2 Tue May 14 21:27:45 2002
-+++ uquake/Makefile.in Wed May 15 15:09:43 2002
-@@ -203,6 +203,9 @@
- CL_COMMON_SRC = $(MISC_SRC) $(CL_GUI_SRC) $(CL_SRC) \
- $(CL_ADDITIONAL_GENERAL_SRC) $(SND_SRC) r_part.c
-
-+SDL_CFLAGS = @SDL_CFLAGS@ -DSDL
-+SDL_LDFLAGS = @SDL_LIBS@
-+
-
- ########################################################################
- #
-@@ -352,9 +355,6 @@
- ALL_SDL_OBJS = $(patsubst %,$(BUILD_DIR)/soft/%,$(addsuffix .@OBJEXT@,\
- $(basename $(ALL_SDL_SRC) .c .s)))
-
--SDL_CFLAGS = @SDL_CFLAGS@ -DSDL
--SDL_LDFLAGS = @SDL_LIBS@
--
- $(BUILD_DIR)/soft/vid_sdl.@OBJEXT@: $(COMMON_DIR)/vid_sdl.c
- $(CC) $(CFLAGS) $(SDL_CFLAGS) -o $@ -c $<
-
-@@ -447,7 +444,7 @@
- $(BUILD_DIR)/gl/dga_check.@OBJEXT@: $(COMMON_DIR)/dga_check.c
- $(CC) $(CFLAGS) $(X11_CFLAGS) -o $@ -c $<
-
--$(BUILD_DIR)/soft/snd_oss.@OBJEXT@: $(COMMON_DIR)/snd_oss.c
-+$(BUILD_DIR)/gl/snd_oss.@OBJEXT@: $(COMMON_DIR)/snd_oss.c
- $(CC) $(CFLAGS) $(SDL_CFLAGS) -o $@ -c $<
-
- $(GLQUAKE): gl_DIR $(BUILD_DIR)/../$(GLQUAKE)
diff --git a/games/quakeforge/pkg-message b/games/quakeforge/pkg-message
new file mode 100644
index 000000000000..42a637f0948b
--- /dev/null
+++ b/games/quakeforge/pkg-message
@@ -0,0 +1,14 @@
+===============================================
+
+Install models, skins, maps and mods in
+${PREFIX}/share/quakeforge
+
+ATTENTION: All qw-clients core dump on exit,
+this may render your keyboard/mouse unusable
+if you're running in OpenGL Mode
+They will also core dump when switching servers
+
+Don't run the -svga clients, they will kill
+keyboard/video/mouse too
+
+===============================================
diff --git a/games/quakeforge/pkg-plist b/games/quakeforge/pkg-plist
index 765d921c71ac..358006dea53e 100644
--- a/games/quakeforge/pkg-plist
+++ b/games/quakeforge/pkg-plist
@@ -1,14 +1,484 @@
-bin/quake-x11
-bin/quake-sdl
-bin/qw-client-x11
-bin/qw-client-sdl
-bin/qw-server
-share/doc/quakeforge/README.source
-share/doc/quakeforge/gl_notes.txt
-share/doc/quakeforge/quake_manual.txt
-share/doc/quakeforge/qw_exit_screen.txt
-share/doc/quakeforge/qw_protocol_notes.txt
-share/doc/quakeforge/solaris_notes.txt
-share/doc/quakeforge/tech_info.txt
-share/doc/quakeforge/winquake_notes.txt
-@dirrm share/doc/quakeforge
+bin/zpak
+%%SERVER:%%bin/qw-server
+%%SERVER:%%bin/qw-master
+%%SERVER:%%bin/nq-server
+%%CLIENT:%%bin/qw-client-glx
+%%CLIENT:%%bin/qw-client-x11
+%%CLIENT:%%%%SDL:%%bin/qw-client-sdl
+%%CLIENT:%%%%SDL:%%bin/qw-client-sdl32
+%%CLIENT:%%%%SDL:%%bin/qw-client-sgl
+%%CLIENT:%%%%SVGA:%%bin/qw-client-3dfx
+%%CLIENT:%%%%SVGA:%%bin/qw-client-svga
+%%CLIENT:%%bin/nq-glx
+%%CLIENT:%%bin/nq-x11
+%%CLIENT:%%%%SDL:%%bin/nq-sdl
+%%CLIENT:%%%%SDL:%%bin/nq-sdl32
+%%CLIENT:%%%%SDL:%%bin/nq-sgl
+%%CLIENT:%%%%SVGA:%%bin/nq-3dfx
+%%CLIENT:%%%%SVGA:%%bin/nq-svga
+%%TOOL:%%bin/pak
+%%TOOL:%%bin/qfbsp
+%%TOOL:%%bin/qfcc
+%%TOOL:%%bin/qfdefs
+%%TOOL:%%bin/qflight
+%%TOOL:%%bin/qfmodelgen
+%%TOOL:%%bin/qfprogs
+%%TOOL:%%bin/qfvis
+%%TOOL:%%bin/qfwavinfo
+%%CLIENT:%%lib/libQFcd.so.1
+%%CLIENT:%%lib/libQFcd.so
+%%CLIENT:%%lib/libQFcd.la
+%%CLIENT:%%lib/libQFcd.a
+%%CLIENT:%%lib/libQFsound.so.1
+%%CLIENT:%%lib/libQFsound.so
+%%CLIENT:%%lib/libQFsound.la
+%%CLIENT:%%lib/libQFsound.a
+lib/libQFconsole.so.1
+lib/libQFconsole.so
+lib/libQFconsole.la
+lib/libQFconsole.a
+lib/libQFgamecode.so.1
+lib/libQFgamecode.so
+lib/libQFgamecode.la
+lib/libQFgamecode.a
+lib/libQFgamecode_builtins.so.1
+lib/libQFgamecode_builtins.so
+lib/libQFgamecode_builtins.la
+lib/libQFgamecode_builtins.a
+lib/libQFcsqc.so.1
+lib/libQFcsqc.so
+lib/libQFcsqc.la
+lib/libQFcsqc.a
+lib/libQFmodels.so.1
+lib/libQFmodels.so
+lib/libQFmodels.la
+lib/libQFmodels.a
+%%CLIENT:%%lib/libQFmodels_sw.so.1
+%%CLIENT:%%lib/libQFmodels_sw.so
+%%CLIENT:%%lib/libQFmodels_sw.la
+%%CLIENT:%%lib/libQFmodels_sw.a
+%%CLIENT:%%lib/libQFmodels_gl.so.1
+%%CLIENT:%%lib/libQFmodels_gl.so
+%%CLIENT:%%lib/libQFmodels_gl.la
+%%CLIENT:%%lib/libQFmodels_gl.a
+%%CLIENT:%%%%SDL:%%lib/libQFrenderer_sw32.so.1
+%%CLIENT:%%%%SDL:%%lib/libQFrenderer_sw32.so
+%%CLIENT:%%%%SDL:%%lib/libQFrenderer_sw32.la
+%%CLIENT:%%%%SDL:%%lib/libQFrenderer_sw32.a
+%%CLIENT:%%lib/libQFrenderer_gl.so.1
+%%CLIENT:%%lib/libQFrenderer_gl.so
+%%CLIENT:%%lib/libQFrenderer_gl.la
+%%CLIENT:%%lib/libQFrenderer_gl.a
+%%CLIENT:%%lib/libQFjs.so.1
+%%CLIENT:%%lib/libQFjs.so
+%%CLIENT:%%lib/libQFjs.la
+%%CLIENT:%%lib/libQFjs.a
+lib/libQFutil.so.1
+lib/libQFutil.so
+lib/libQFutil.la
+lib/libQFutil.a
+%%WAD:%%share/quakeforge/id1/pak0.pak
+%%TOOL:%%share/quakeforge/id1/game.dat
+%%TOOL:%%share/quakeforge/id1/menu.dat.gz
+share/quakeforge/QFplugins/console_server.so
+share/quakeforge/QFplugins/console_server.la
+share/quakeforge/QFplugins/console_server.a
+share/quakeforge/QFplugins/console_client.so
+share/quakeforge/QFplugins/console_client.la
+share/quakeforge/QFplugins/console_client.a
+%%CLIENT:%%share/quakeforge/QFplugins/cd_null.so
+%%CLIENT:%%share/quakeforge/QFplugins/cd_null.la
+%%CLIENT:%%share/quakeforge/QFplugins/cd_null.a
+%%CLIENT:%%%%XMMS:%%share/quakeforge/QFplugins/cd_xmms.so
+%%CLIENT:%%%%XMMS:%%share/quakeforge/QFplugins/cd_xmms.la
+%%CLIENT:%%%%XMMS:%%share/quakeforge/QFplugins/cd_xmms.a
+%%CLIENT:%%%%SDL:%%share/quakeforge/QFplugins/cd_sdl.so
+%%CLIENT:%%%%SDL:%%share/quakeforge/QFplugins/cd_sdl.la
+%%CLIENT:%%%%SDL:%%share/quakeforge/QFplugins/cd_sdl.a
+%%CLIENT:%%share/quakeforge/QFplugins/snd_output_disk.so
+%%CLIENT:%%share/quakeforge/QFplugins/snd_output_disk.la
+%%CLIENT:%%share/quakeforge/QFplugins/snd_output_disk.a
+%%CLIENT:%%share/quakeforge/QFplugins/snd_output_null.so
+%%CLIENT:%%share/quakeforge/QFplugins/snd_output_null.la
+%%CLIENT:%%share/quakeforge/QFplugins/snd_output_null.a
+%%CLIENT:%%share/quakeforge/QFplugins/snd_output_oss.so
+%%CLIENT:%%share/quakeforge/QFplugins/snd_output_oss.la
+%%CLIENT:%%share/quakeforge/QFplugins/snd_output_oss.a
+%%CLIENT:%%%%SDL:%%share/quakeforge/QFplugins/snd_output_sdl.so
+%%CLIENT:%%%%SDL:%%share/quakeforge/QFplugins/snd_output_sdl.la
+%%CLIENT:%%%%SDL:%%share/quakeforge/QFplugins/snd_output_sdl.a
+%%CLIENT:%%share/quakeforge/QFplugins/snd_render_default.so
+%%CLIENT:%%share/quakeforge/QFplugins/snd_render_default.la
+%%CLIENT:%%share/quakeforge/QFplugins/snd_render_default.a
+%%SERVER:%%share/quakeforge/qw/skins/fixskins.sh
+%%SERVER:%%share/quakeforge/qw/buttons.qc
+%%SERVER:%%share/quakeforge/qw/client.qc
+%%SERVER:%%share/quakeforge/qw/combat.qc
+%%SERVER:%%share/quakeforge/qw/defs.qc
+%%SERVER:%%share/quakeforge/qw/doors.qc
+%%SERVER:%%share/quakeforge/qw/items.qc
+%%SERVER:%%share/quakeforge/qw/misc.qc
+%%SERVER:%%share/quakeforge/qw/models.qc
+%%SERVER:%%share/quakeforge/qw/plats.qc
+%%SERVER:%%share/quakeforge/qw/player.qc
+%%SERVER:%%share/quakeforge/qw/progdefs.h
+%%SERVER:%%share/quakeforge/qw/progs.src
+%%SERVER:%%share/quakeforge/qw/qwprogs.dat
+%%SERVER:%%share/quakeforge/qw/server.qc
+%%SERVER:%%share/quakeforge/qw/spectate.qc
+%%SERVER:%%share/quakeforge/qw/sprites.qc
+%%SERVER:%%share/quakeforge/qw/subs.qc
+%%SERVER:%%share/quakeforge/qw/triggers.qc
+%%SERVER:%%share/quakeforge/qw/weapons.qc
+%%SERVER:%%share/quakeforge/qw/world.qc
+%%SKIN:%%share/quakeforge/qw/skins/311.pcx
+%%SKIN:%%share/quakeforge/qw/skins/311.txt
+%%SKIN:%%share/quakeforge/qw/skins/amish.pcx
+%%SKIN:%%share/quakeforge/qw/skins/ammoskin.pcx
+%%SKIN:%%share/quakeforge/qw/skins/antimatr.pcx
+%%SKIN:%%share/quakeforge/qw/skins/antimatr.txt
+%%SKIN:%%share/quakeforge/qw/skins/archonsm.pcx
+%%SKIN:%%share/quakeforge/qw/skins/archonsm.txt
+%%SKIN:%%share/quakeforge/qw/skins/axis.pcx
+%%SKIN:%%share/quakeforge/qw/skins/base.pcx
+%%SKIN:%%share/quakeforge/qw/skins/base.txt
+%%SKIN:%%share/quakeforge/qw/skins/bblades.pcx
+%%SKIN:%%share/quakeforge/qw/skins/bblades.txt
+%%SKIN:%%share/quakeforge/qw/skins/bearian.pcx
+%%SKIN:%%share/quakeforge/qw/skins/bearian.txt
+%%SKIN:%%share/quakeforge/qw/skins/bioforce.pcx
+%%SKIN:%%share/quakeforge/qw/skins/bioforce.txt
+%%SKIN:%%share/quakeforge/qw/skins/blacklor.pcx
+%%SKIN:%%share/quakeforge/qw/skins/blacklor.txt
+%%SKIN:%%share/quakeforge/qw/skins/boc-skin.pcx
+%%SKIN:%%share/quakeforge/qw/skins/boc-skin.txt
+%%SKIN:%%share/quakeforge/qw/skins/borg.pcx
+%%SKIN:%%share/quakeforge/qw/skins/borg.txt
+%%SKIN:%%share/quakeforge/qw/skins/campq.pcx
+%%SKIN:%%share/quakeforge/qw/skins/campq.txt
+%%SKIN:%%share/quakeforge/qw/skins/caveman.pcx
+%%SKIN:%%share/quakeforge/qw/skins/caveman.txt
+%%SKIN:%%share/quakeforge/qw/skins/clanborg.pcx
+%%SKIN:%%share/quakeforge/qw/skins/clanborg.txt
+%%SKIN:%%share/quakeforge/qw/skins/cnaetoph.pcx
+%%SKIN:%%share/quakeforge/qw/skins/cnaetoph.txt
+%%SKIN:%%share/quakeforge/qw/skins/corporat.pcx
+%%SKIN:%%share/quakeforge/qw/skins/corporat.txt
+%%SKIN:%%share/quakeforge/qw/skins/cronus.pcx
+%%SKIN:%%share/quakeforge/qw/skins/cronus.txt
+%%SKIN:%%share/quakeforge/qw/skins/cthulhu1.pcx
+%%SKIN:%%share/quakeforge/qw/skins/cthulhu1.txt
+%%SKIN:%%share/quakeforge/qw/skins/dcskin.pcx
+%%SKIN:%%share/quakeforge/qw/skins/deathsqu.pcx
+%%SKIN:%%share/quakeforge/qw/skins/deathsqu.txt
+%%SKIN:%%share/quakeforge/qw/skins/defender.pcx
+%%SKIN:%%share/quakeforge/qw/skins/defender.txt
+%%SKIN:%%share/quakeforge/qw/skins/demonicc.pcx
+%%SKIN:%%share/quakeforge/qw/skins/devilsad.pcx
+%%SKIN:%%share/quakeforge/qw/skins/devilsad.txt
+%%SKIN:%%share/quakeforge/qw/skins/discordi.pcx
+%%SKIN:%%share/quakeforge/qw/skins/discordi.txt
+%%SKIN:%%share/quakeforge/qw/skins/empyrean.pcx
+%%SKIN:%%share/quakeforge/qw/skins/entropy.pcx
+%%SKIN:%%share/quakeforge/qw/skins/entropy.txt
+%%SKIN:%%share/quakeforge/qw/skins/evilclow.pcx
+%%SKIN:%%share/quakeforge/qw/skins/evilclow.txt
+%%SKIN:%%share/quakeforge/qw/skins/evilempi.pcx
+%%SKIN:%%share/quakeforge/qw/skins/evilempi.txt
+%%SKIN:%%share/quakeforge/qw/skins/fbi.pcx
+%%SKIN:%%share/quakeforge/qw/skins/fbi.txt
+%%SKIN:%%share/quakeforge/qw/skins/fruits.pcx
+%%SKIN:%%share/quakeforge/qw/skins/gibmoon.pcx
+%%SKIN:%%share/quakeforge/qw/skins/gibmoon.txt
+%%SKIN:%%share/quakeforge/qw/skins/glodskin.pcx
+%%SKIN:%%share/quakeforge/qw/skins/glodskin.txt
+%%SKIN:%%share/quakeforge/qw/skins/goodfell.pcx
+%%SKIN:%%share/quakeforge/qw/skins/goodfell.txt
+%%SKIN:%%share/quakeforge/qw/skins/grendel.pcx
+%%SKIN:%%share/quakeforge/qw/skins/grendel.txt
+%%SKIN:%%share/quakeforge/qw/skins/heavensd.pcx
+%%SKIN:%%share/quakeforge/qw/skins/hiwaay.pcx
+%%SKIN:%%share/quakeforge/qw/skins/hiwaay.txt
+%%SKIN:%%share/quakeforge/qw/skins/hiwaayme.pcx
+%%SKIN:%%share/quakeforge/qw/skins/hiwaayme.txt
+%%SKIN:%%share/quakeforge/qw/skins/imperial.pcx
+%%SKIN:%%share/quakeforge/qw/skins/imperial.txt
+%%SKIN:%%share/quakeforge/qw/skins/impulse9.pcx
+%%SKIN:%%share/quakeforge/qw/skins/impulse9.txt
+%%SKIN:%%share/quakeforge/qw/skins/inferno.pcx
+%%SKIN:%%share/quakeforge/qw/skins/inpraise.pcx
+%%SKIN:%%share/quakeforge/qw/skins/inpraise.txt
+%%SKIN:%%share/quakeforge/qw/skins/jiba.pcx
+%%SKIN:%%share/quakeforge/qw/skins/jiba.txt
+%%SKIN:%%share/quakeforge/qw/skins/jump.pcx
+%%SKIN:%%share/quakeforge/qw/skins/jump.txt
+%%SKIN:%%share/quakeforge/qw/skins/knightso.pcx
+%%SKIN:%%share/quakeforge/qw/skins/knightso.txt
+%%SKIN:%%share/quakeforge/qw/skins/knightst.pcx
+%%SKIN:%%share/quakeforge/qw/skins/knightst.txt
+%%SKIN:%%share/quakeforge/qw/skins/mario.pcx
+%%SKIN:%%share/quakeforge/qw/skins/misfits.pcx
+%%SKIN:%%share/quakeforge/qw/skins/misfits.txt
+%%SKIN:%%share/quakeforge/qw/skins/mod.pcx
+%%SKIN:%%share/quakeforge/qw/skins/mynx.pcx
+%%SKIN:%%share/quakeforge/qw/skins/newskin.pcx
+%%SKIN:%%share/quakeforge/qw/skins/nimbus.pcx
+%%SKIN:%%share/quakeforge/qw/skins/nimbus.txt
+%%SKIN:%%share/quakeforge/qw/skins/nwtc.pcx
+%%SKIN:%%share/quakeforge/qw/skins/nwtc.txt
+%%SKIN:%%share/quakeforge/qw/skins/omega7.pcx
+%%SKIN:%%share/quakeforge/qw/skins/omega7.txt
+%%SKIN:%%share/quakeforge/qw/skins/original.pcx
+%%SKIN:%%share/quakeforge/qw/skins/original.txt
+%%SKIN:%%share/quakeforge/qw/skins/outlaws.pcx
+%%SKIN:%%share/quakeforge/qw/skins/outlaws.txt
+%%SKIN:%%share/quakeforge/qw/skins/p2k.pcx
+%%SKIN:%%share/quakeforge/qw/skins/painland.pcx
+%%SKIN:%%share/quakeforge/qw/skins/painland.txt
+%%SKIN:%%share/quakeforge/qw/skins/pantdown.pcx
+%%SKIN:%%share/quakeforge/qw/skins/pantdown.txt
+%%SKIN:%%share/quakeforge/qw/skins/pgwn.pcx
+%%SKIN:%%share/quakeforge/qw/skins/pgwn.txt
+%%SKIN:%%share/quakeforge/qw/skins/quakenp.pcx
+%%SKIN:%%share/quakeforge/qw/skins/quakenp.txt
+%%SKIN:%%share/quakeforge/qw/skins/quakerst.pcx
+%%SKIN:%%share/quakeforge/qw/skins/quakerst.txt
+%%SKIN:%%share/quakeforge/qw/skins/quasar.pcx
+%%SKIN:%%share/quakeforge/qw/skins/quasar.txt
+%%SKIN:%%share/quakeforge/qw/skins/quest.pcx
+%%SKIN:%%share/quakeforge/qw/skins/quest.txt
+%%SKIN:%%share/quakeforge/qw/skins/rampire.pcx
+%%SKIN:%%share/quakeforge/qw/skins/rampire.txt
+%%SKIN:%%share/quakeforge/qw/skins/rdcrap8.pcx
+%%SKIN:%%share/quakeforge/qw/skins/reservoi.pcx
+%%SKIN:%%share/quakeforge/qw/skins/reservoi.txt
+%%SKIN:%%share/quakeforge/qw/skins/revco.pcx
+%%SKIN:%%share/quakeforge/qw/skins/revco.txt
+%%SKIN:%%share/quakeforge/qw/skins/rlg.pcx
+%%SKIN:%%share/quakeforge/qw/skins/rlg.txt
+%%SKIN:%%share/quakeforge/qw/skins/rock.pcx
+%%SKIN:%%share/quakeforge/qw/skins/rock.txt
+%%SKIN:%%share/quakeforge/qw/skins/ruthless.pcx
+%%SKIN:%%share/quakeforge/qw/skins/ruthless.txt
+%%SKIN:%%share/quakeforge/qw/skins/sacredparadox.pcx
+%%SKIN:%%share/quakeforge/qw/skins/sg5skin.pcx
+%%SKIN:%%share/quakeforge/qw/skins/shad.pcx
+%%SKIN:%%share/quakeforge/qw/skins/shadows.pcx
+%%SKIN:%%share/quakeforge/qw/skins/shadows.txt
+%%SKIN:%%share/quakeforge/qw/skins/shunters.pcx
+%%SKIN:%%share/quakeforge/qw/skins/shunters.txt
+%%SKIN:%%share/quakeforge/qw/skins/skins.txt
+%%SKIN:%%share/quakeforge/qw/skins/sonsofsa.pcx
+%%SKIN:%%share/quakeforge/qw/skins/sonsofsa.txt
+%%SKIN:%%share/quakeforge/qw/skins/sos.pcx
+%%SKIN:%%share/quakeforge/qw/skins/sos.txt
+%%SKIN:%%share/quakeforge/qw/skins/spawncla.pcx
+%%SKIN:%%share/quakeforge/qw/skins/stomped.pcx
+%%SKIN:%%share/quakeforge/qw/skins/stomped.txt
+%%SKIN:%%share/quakeforge/qw/skins/stoned.pcx
+%%SKIN:%%share/quakeforge/qw/skins/stoned.txt
+%%SKIN:%%share/quakeforge/qw/skins/strikefo.pcx
+%%SKIN:%%share/quakeforge/qw/skins/strikefo.txt
+%%SKIN:%%share/quakeforge/qw/skins/subgeniu.pcx
+%%SKIN:%%share/quakeforge/qw/skins/subgeniu.txt
+%%SKIN:%%share/quakeforge/qw/skins/surfin.pcx
+%%SKIN:%%share/quakeforge/qw/skins/surfin.txt
+%%SKIN:%%share/quakeforge/qw/skins/syn.pcx
+%%SKIN:%%share/quakeforge/qw/skins/syn.txt
+%%SKIN:%%share/quakeforge/qw/skins/tards.pcx
+%%SKIN:%%share/quakeforge/qw/skins/tards.txt
+%%SKIN:%%share/quakeforge/qw/skins/tid.pcx
+%%SKIN:%%share/quakeforge/qw/skins/tid.txt
+%%SKIN:%%share/quakeforge/qw/skins/tokay.pcx
+%%SKIN:%%share/quakeforge/qw/skins/tokay.txt
+%%SKIN:%%share/quakeforge/qw/skins/trilogy.pcx
+%%SKIN:%%share/quakeforge/qw/skins/trilogy.txt
+%%SKIN:%%share/quakeforge/qw/skins/ua_skin.pcx
+%%SKIN:%%share/quakeforge/qw/skins/ua_skin.txt
+%%SKIN:%%share/quakeforge/qw/skins/undeadel.pcx
+%%SKIN:%%share/quakeforge/qw/skins/undeadel.txt
+%%SKIN:%%share/quakeforge/qw/skins/undergro.pcx
+%%SKIN:%%share/quakeforge/qw/skins/undergro.txt
+%%SKIN:%%share/quakeforge/qw/skins/uninet.pcx
+%%SKIN:%%share/quakeforge/qw/skins/vermin.pcx
+%%SKIN:%%share/quakeforge/qw/skins/vermin.txt
+%%SKIN:%%share/quakeforge/qw/skins/w5.pcx
+%%SKIN:%%share/quakeforge/qw/skins/w5.txt
+%%SKIN:%%share/quakeforge/qw/skins/watchmen.pcx
+%%SKIN:%%share/quakeforge/qw/skins/watchmen.txt
+%%SKIN:%%share/quakeforge/qw/skins/wolfpak.pcx
+%%SKIN:%%share/quakeforge/qw/skins/wolfpak.txt
+include/QF/GL/defines.h
+include/QF/GL/extensions.h
+include/QF/GL/funcs.h
+include/QF/GL/qf_explosions.h
+include/QF/GL/qf_funcs_list.h
+include/QF/GL/qf_lightmap.h
+include/QF/GL/qf_noisetextures.h
+include/QF/GL/qf_rlight.h
+include/QF/GL/qf_rmain.h
+include/QF/GL/qf_rsurf.h
+include/QF/GL/qf_screen.h
+include/QF/GL/qf_sky.h
+include/QF/GL/qf_textures.h
+include/QF/GL/qf_vid.h
+include/QF/GL/types.h
+include/QF/plugin/cd.h
+include/QF/plugin/console.h
+include/QF/plugin/general.h
+include/QF/plugin/input.h
+include/QF/plugin/snd_output.h
+include/QF/plugin/snd_render.h
+include/QF/bspfile.h
+include/QF/cbuf.h
+include/QF/cdaudio.h
+include/QF/checksum.h
+include/QF/clip_hull.h
+include/QF/cmd.h
+include/QF/console.h
+include/QF/crc.h
+include/QF/csqc.h
+include/QF/cvar.h
+include/QF/dstring.h
+include/QF/draw.h
+include/QF/gcc_attr.h
+include/QF/gib_buffer.h
+include/QF/gib_builtin.h
+include/QF/gib_function.h
+include/QF/gib_parse.h
+include/QF/gib_process.h
+include/QF/gib_thread.h
+include/QF/gib_vars.h
+include/QF/hash.h
+include/QF/hl.h
+include/QF/idparse.h
+include/QF/in_event.h
+include/QF/info.h
+include/QF/input.h
+include/QF/joystick.h
+include/QF/keys.h
+include/QF/link.h
+include/QF/locs.h
+include/QF/mathlib.h
+include/QF/mdfour.h
+include/QF/model.h
+include/QF/modelgen.h
+include/QF/msg.h
+include/QF/pak.h
+include/QF/pakfile.h
+include/QF/pcx.h
+include/QF/plugin.h
+include/QF/pr_comp.h
+include/QF/pr_debug.h
+include/QF/pr_obj.h
+include/QF/progs.h
+include/QF/qargs.h
+include/QF/qdefs.h
+include/QF/qendian.h
+include/QF/qfplist.h
+include/QF/qtypes.h
+include/QF/quakefs.h
+include/QF/quakeio.h
+include/QF/render.h
+include/QF/screen.h
+include/QF/sizebuf.h
+include/QF/skin.h
+include/QF/sound.h
+include/QF/spritegn.h
+include/QF/sys.h
+include/QF/teamplay.h
+include/QF/texture.h
+include/QF/tga.h
+include/QF/uint32.h
+include/QF/va.h
+include/QF/ver_check.h
+include/QF/vid.h
+include/QF/wad.h
+include/QF/zone.h
+include/QF/ruamoko/crudefile.h
+include/QF/ruamoko/debug.h
+include/QF/ruamoko/entities.h
+include/QF/ruamoko/infokey.h
+include/QF/ruamoko/math.h
+include/QF/ruamoko/message.h
+include/QF/ruamoko/nq_message.h
+include/QF/ruamoko/physics.h
+include/QF/ruamoko/qw_message.h
+include/QF/ruamoko/qw_physics.h
+include/QF/ruamoko/qw_sys.h
+include/QF/ruamoko/sound.h
+include/QF/ruamoko/string.h
+include/QF/ruamoko/system.h
+include/QF/ruamoko/draw.h
+include/QF/ruamoko/key.h
+include/QF/ruamoko/cbuf.h
+include/QF/ruamoko/cmd.h
+include/QF/ruamoko/cvar.h
+include/QF/ruamoko/file.h
+include/QF/ruamoko/Object.h
+include/QF/ruamoko/Entity.h
+include/QF/ruamoko/InputLine.h
+include/QF/ruamoko/Point.h
+include/QF/ruamoko/Rect.h
+include/QF/ruamoko/Size.h
+%%PORTDOCS%%share/doc/quakeforge/3dfx.txt
+%%PORTDOCS%%share/doc/quakeforge/CodingStyle
+%%PORTDOCS%%share/doc/quakeforge/config/glspeed-v1.cfg
+%%PORTDOCS%%share/doc/quakeforge/config/glspeed-v3.cfg
+%%PORTDOCS%%share/doc/quakeforge/config/swspeed.cfg
+%%PORTDOCS%%share/doc/quakeforge/data/comexp.txt
+%%PORTDOCS%%share/doc/quakeforge/data/docs/install
+%%PORTDOCS%%share/doc/quakeforge/data/docs/install.q2mission
+%%PORTDOCS%%share/doc/quakeforge/data/docs/install.quake
+%%PORTDOCS%%share/doc/quakeforge/data/docs/install.quake2
+%%PORTDOCS%%share/doc/quakeforge/data/docs/readme
+%%PORTDOCS%%share/doc/quakeforge/data/docs/readme.glquake
+%%PORTDOCS%%share/doc/quakeforge/data/docs/readme.squake
+%%PORTDOCS%%share/doc/quakeforge/data/docs/readme.x11
+%%PORTDOCS%%share/doc/quakeforge/data/help.txt
+%%PORTDOCS%%share/doc/quakeforge/data/licinfo.txt
+%%PORTDOCS%%share/doc/quakeforge/data/manual.txt
+%%PORTDOCS%%share/doc/quakeforge/data/order.txt
+%%PORTDOCS%%share/doc/quakeforge/data/readme.txt
+%%PORTDOCS%%share/doc/quakeforge/data/rlicnse.txt
+%%PORTDOCS%%share/doc/quakeforge/data/slicnse.txt
+%%PORTDOCS%%share/doc/quakeforge/data/techinfo.txt
+%%PORTDOCS%%share/doc/quakeforge/glqnotes.txt
+%%PORTDOCS%%share/doc/quakeforge/ideas/quakedownload.txt
+%%PORTDOCS%%share/doc/quakeforge/ideas/rhamph.txt
+%%PORTDOCS%%share/doc/quakeforge/ideas/serverlist.txt
+%%PORTDOCS%%share/doc/quakeforge/net_DoS_protection.txt
+%%PORTDOCS%%share/doc/quakeforge/progdefs.q1
+%%PORTDOCS%%share/doc/quakeforge/progdefs.q2
+%%PORTDOCS%%share/doc/quakeforge/qe3.ico
+%%PORTDOCS%%share/doc/quakeforge/qf-client-3dfx-cvar.txt
+%%PORTDOCS%%share/doc/quakeforge/qf-client-glx-cvar.txt
+%%PORTDOCS%%share/doc/quakeforge/qf-client-sdl-cvar.txt
+%%PORTDOCS%%share/doc/quakeforge/qf-client-sgl-cvar.txt
+%%PORTDOCS%%share/doc/quakeforge/qf-client-svga-cvar.txt
+%%PORTDOCS%%share/doc/quakeforge/qf-client-x11-cmd.txt
+%%PORTDOCS%%share/doc/quakeforge/qf-client-x11-cvar.txt
+%%PORTDOCS%%share/doc/quakeforge/qf-server-cmd.txt
+%%PORTDOCS%%share/doc/quakeforge/qf-server-cvar.txt
+%%PORTDOCS%%share/doc/quakeforge/quake.gif
+%%PORTDOCS%%share/doc/quakeforge/quake.ico
+%%PORTDOCS%%share/doc/quakeforge/readme.txt
+%%PORTDOCS%%share/doc/quakeforge/skybox.fig
+%%PORTDOCS%%share/doc/quakeforge/template.h
+%%PORTDOCS%%share/doc/quakeforge/timestamps.txt
+%%PORTDOCS%%share/doc/quakeforge/wqreadme.txt
+%%PORTDOCS%%@dirrm share/doc/quakeforge/ideas
+%%PORTDOCS%%@dirrm share/doc/quakeforge/config
+%%PORTDOCS%%@dirrm share/doc/quakeforge/data/docs
+%%PORTDOCS%%@dirrm share/doc/quakeforge/data
+%%PORTDOCS%%@dirrm share/doc/quakeforge/
+@dirrm include/QF/GL
+@dirrm include/QF/plugin
+@dirrm include/QF/ruamoko
+@dirrm include/QF
+@unexec rmdir %D/share/quakeforge/QFplugins/ 2>/dev/null || true
+@unexec rmdir %D/share/quakeforge/id1/ 2>/dev/null || true
+@unexec rmdir %D/share/quakeforge/qw/skins/ 2>/dev/null || true
+@unexec rmdir %D/share/quakeforge/qw/ 2>/dev/null || true
+@unexec rmdir %D/share/quakeforge/ 2>/dev/null || true
+@unexec rmdir %D/share/ 2>/dev/null || true
diff --git a/games/quakeforge/pkg-plist.glx b/games/quakeforge/pkg-plist.glx
deleted file mode 100644
index 2483949ffff8..000000000000
--- a/games/quakeforge/pkg-plist.glx
+++ /dev/null
@@ -1,2 +0,0 @@
-bin/quake-gl
-bin/qw-client-gl
diff --git a/games/quakeforge/pkg-plist.wad b/games/quakeforge/pkg-plist.wad
deleted file mode 100644
index e3c784ace4f2..000000000000
--- a/games/quakeforge/pkg-plist.wad
+++ /dev/null
@@ -1,3 +0,0 @@
-share/quakeforge/id1/pak0.pak
-@dirrm share/quakeforge/id1
-@dirrm share/quakeforge