aboutsummaryrefslogtreecommitdiff
path: root/games/tremulous
diff options
context:
space:
mode:
authorAlejandro Pulver <alepulver@FreeBSD.org>2006-06-07 22:44:50 +0000
committerAlejandro Pulver <alepulver@FreeBSD.org>2006-06-07 22:44:50 +0000
commitdc462080a23b77abc5ba20b8015701f2cb9de770 (patch)
tree644a69f0d240700914316a708f1336b07fb19944 /games/tremulous
parente9a83999f917772139c84e0bd57de6be33d8260c (diff)
downloadports-dc462080a23b77abc5ba20b8015701f2cb9de770.tar.gz
ports-dc462080a23b77abc5ba20b8015701f2cb9de770.zip
Notes
Diffstat (limited to 'games/tremulous')
-rw-r--r--games/tremulous/Makefile164
-rw-r--r--games/tremulous/distinfo3
-rw-r--r--games/tremulous/files/extra-patch-src__unix__unix_shared.c24
-rw-r--r--games/tremulous/files/patch-Makefile302
-rw-r--r--games/tremulous/files/patch-src__master__Makefile22
-rw-r--r--games/tremulous/files/patch-src__qcommon__common.c10
-rw-r--r--games/tremulous/files/patch-src__qcommon__q_platform.h15
-rw-r--r--games/tremulous/files/patch-src__unix__linux_glimp.c20
-rw-r--r--games/tremulous/pkg-descr21
-rw-r--r--games/tremulous/pkg-plist20
10 files changed, 601 insertions, 0 deletions
diff --git a/games/tremulous/Makefile b/games/tremulous/Makefile
new file mode 100644
index 000000000000..7215e35a95ad
--- /dev/null
+++ b/games/tremulous/Makefile
@@ -0,0 +1,164 @@
+# New ports collection makefile for: tremulous
+# Date created: 3 Jun 2006
+# Whom: alepulver
+#
+# $FreeBSD$
+#
+
+PORTNAME= tremulous
+PORTVERSION= 1.1.0
+CATEGORIES= games
+MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:S|$|${PORTNAME}/|} \
+ http://0day.icculus.org/mirrors/tremulous/ \
+ ftp://ftp.wireplay.co.uk/pub/quake3arena/mods/tremulous/ \
+ http://www.planetgloom.com/trem/
+
+MAINTAINER= alepulver@FreeBSD.org
+COMMENT= Free FPS game featuring two opposing teams, humans and aliens
+
+USE_ZIP= yes
+USE_GCC= 3.2+
+USE_GMAKE= yes
+WRKSRC= ${WRKDIR}/${PORTNAME}
+BUILD_WRKSRC= ${WRKSRC}/${DISTNAME}-src
+
+OPTIONS= CLIENT "Build client" on \
+ GAMELIBS "Build game libraries (when not mandatory)" off \
+ DEDICATED "Build dedicated server" on \
+ MASTER_SERVER "Build master server" off \
+ OPENAL "Enable OpenAL (3D sound) support" off \
+ OPENAL_DLOPEN "Enable dynamic loading of OpenAL" off \
+ OPTIMIZED_CFLAGS "Enable compilation optimizations" on \
+ SDL_AUDIO "Use SDL for audio" off \
+ SDL_VIDEO "Use SDL for video" off \
+ SMP "Build SMP (threaded) client" on \
+ VORBIS "Enable Ogg Vorbis codec support" off
+
+MAKE_ENV+= DEFAULT_BASEDIR="${DATADIR}" \
+ PTHREAD_LIBS="${PTHREAD_LIBS}"
+
+VM_ARCHS= amd64 i386 powerpc
+
+.include <bsd.port.pre.mk>
+
+.if ${OSVERSION} < 500000
+EXTRA_PATCHES+= ${FILESDIR}/extra-patch-src__unix__unix_shared.c
+.endif
+
+.if defined(WITHOUT_CLIENT) && defined(WITHOUT_DEDICATED) && \
+ defined(WITHOUT_SMP)
+IGNORE= needs at least one of CLIENT, DEDICATED and SMP options
+.endif
+
+.for i in ${ARCH}
+. if ${VM_ARCHS:M${i}} != ""
+HAVE_VM_COMPILED= yes
+. endif
+.endfor
+
+.if defined(HAVE_VM_COMPILED)
+MAKE_ENV+= HAVE_VM_COMPILED=true
+.endif
+
+.if !defined(WITHOUT_CLIENT) || !defined(WITHOUT_SMP)
+# OpenAL
+. if defined(WITH_OPENAL)
+LIB_DEPENDS+= openal.0:${PORTSDIR}/audio/openal
+MAKE_ENV+= USE_OPENAL=1
+. if defined(WITH_OPENAL_DLOPEN)
+MAKE_ENV+= USE_OPENAL_DLOPEN=1
+. endif
+. endif
+# SDL
+. if defined(WITH_SDL_AUDIO)
+USE_SDL= sdl
+MAKE_ENV+= USE_SDL_AUDIO=1
+. endif
+. if defined(WITH_SDL_VIDEO)
+USE_SDL= sdl
+MAKE_ENV+= USE_SDL_VIDEO=1
+. else
+USE_GL= yes
+. endif
+# Vorbis
+. if defined(WITH_VORBIS)
+LIB_DEPENDS+= vorbis.3:${PORTSDIR}/audio/libvorbis
+MAKE_ENV+= USE_CODEC_VORBIS=1
+. endif
+.endif
+
+.if !defined(WITHOUT_CLIENT)
+MAKE_ENV+= BUILD_CLIENT=1
+PLIST_SUB+= CLIENT=""
+TRBIN+= tremulous
+.else
+PLIST_SUB+= CLIENT="@comment "
+.endif
+
+.if !defined(WITHOUT_DEDICATED)
+MAKE_ENV+= BUILD_SERVER=1
+PLIST_SUB+= DEDICATED=""
+TRBIN+= tremded
+.else
+PLIST_SUB+= DEDICATED="@comment "
+.endif
+
+.if defined(WITH_GAMELIBS) || !defined(HAVE_VM_COMPILED)
+MAKE_ENV+= BUILD_GAME_SO=1
+PLIST_SUB+= GAMELIBS=""
+.else
+PLIST_SUB+= GAMELIBS="@comment "
+.endif
+
+.if defined(WITH_MASTER_SERVER)
+LIB_DEPENDS+= tdb.1:${PORTSDIR}/databases/tdb
+MAKE_ENV+= BUILD_MASTER_SERVER=1
+PLIST_SUB+= MASTER_SERVER=""
+.else
+PLIST_SUB+= MASTER_SERVER="@comment "
+.endif
+
+.if !defined(WITHOUT_OPTIMIZED_CFLAGS)
+MAKE_ENV+= USE_OPTIMIZED_CFLAGS=1
+.endif
+
+.if !defined(WITHOUT_SMP)
+MAKE_ENV+= BUILD_CLIENT_SMP=1
+PLIST_SUB+= SMP=""
+TRBIN+= tremulous-smp
+.else
+PLIST_SUB+= SMP="@comment "
+.endif
+
+post-extract:
+ @cd ${WRKSRC} && ${TAR} zxf ${DISTNAME}-src.tar.gz
+
+post-patch:
+ @${REINPLACE_CMD} -e 's|botlib\.log|/dev/null|' \
+ ${BUILD_WRKSRC}/src/botlib/be_interface.c
+.if ${OSVERSION} < 500000
+ @${REINPLACE_CMD} -e 's|stdint\.h|inttypes.h|' \
+ ${BUILD_WRKSRC}/src/qcommon/q_shared.h
+.endif
+
+do-install:
+.for bin in ${TRBIN}
+ ${INSTALL_PROGRAM} ${BUILD_WRKSRC}/build/release/${bin} ${PREFIX}/bin
+.endfor
+.if defined(WITH_MASTER_SERVER)
+ ${INSTALL_PROGRAM} ${BUILD_WRKSRC}/src/master/release/tremmaster \
+ ${PREFIX}/bin
+.endif
+ ${MKDIR} ${DATADIR}/base
+ ${INSTALL_DATA} ${WRKSRC}/base/* ${DATADIR}/base
+ ${MKDIR} ${PREFIX}/share/pixmaps
+ ${INSTALL_DATA} ${WRKSRC}/tremulous.xpm ${PREFIX}/share/pixmaps
+
+post-install:
+.if defined(WITH_SDL_AUDIO) || defined(WITH_OPENAL)
+ @${ECHO_CMD}
+ @${ECHO_CMD} "WARNING: if you have sound problems try recompiling without SDL_AUDIO and OPENAL options." | ${FMT}
+ @${ECHO_CMD}
+.endif
+
+.include <bsd.port.post.mk>
diff --git a/games/tremulous/distinfo b/games/tremulous/distinfo
new file mode 100644
index 000000000000..48f302dd64e8
--- /dev/null
+++ b/games/tremulous/distinfo
@@ -0,0 +1,3 @@
+MD5 (tremulous-1.1.0.zip) = 3df5f7565571fb9524656308347bce1b
+SHA256 (tremulous-1.1.0.zip) = c7bb66f55abc88932edee16c253e5d37f90dded2ce29cf6cb15ad4f78e378987
+SIZE (tremulous-1.1.0.zip) = 105821907
diff --git a/games/tremulous/files/extra-patch-src__unix__unix_shared.c b/games/tremulous/files/extra-patch-src__unix__unix_shared.c
new file mode 100644
index 000000000000..628935fa5e38
--- /dev/null
+++ b/games/tremulous/files/extra-patch-src__unix__unix_shared.c
@@ -0,0 +1,24 @@
+--- ./tremulous-1.1.0-src/src/unix/unix_shared.c.orig Sat Dec 10 17:19:52 2005
++++ ./tremulous-1.1.0-src/src/unix/unix_shared.c Wed Jun 7 16:59:51 2006
+@@ -22,6 +22,7 @@
+ */
+ #include <sys/types.h>
+ #include <sys/stat.h>
++#include <sys/sysctl.h>
+ #include <errno.h>
+ #include <stdio.h>
+ #include <dirent.h>
+@@ -431,6 +432,12 @@
+ // sysconf() in libc, POSIX.1 compliant
+ unsigned int Sys_ProcessorCount(void)
+ {
+- return sysconf(_SC_NPROCESSORS_ONLN);
++ int mib[2], value, len;
++
++ mib[0] = CTL_HW;
++ mib[1] = HW_NCPU;
++ len = sizeof(value);
++ sysctl(mib, 2, &value, &len, NULL, 0);
++ return (value);
+ }
+ #endif
diff --git a/games/tremulous/files/patch-Makefile b/games/tremulous/files/patch-Makefile
new file mode 100644
index 000000000000..270ac4aa5ab7
--- /dev/null
+++ b/games/tremulous/files/patch-Makefile
@@ -0,0 +1,302 @@
+--- ./tremulous-1.1.0-src/Makefile.orig Tue Mar 21 19:28:25 2006
++++ ./tremulous-1.1.0-src/Makefile Wed Jun 7 16:57:12 2006
+@@ -27,11 +27,20 @@
+ endif
+ endif
+
+-BUILD_CLIENT =
+-BUILD_CLIENT_SMP =
+-BUILD_SERVER =
+-BUILD_GAME_SO =
+-BUILD_GAME_QVM =
++BUILD_CLIENT?=0
++BUILD_CLIENT_SMP?=0
++BUILD_GAME_QVM?=0
++BUILD_GAME_SO?=0
++BUILD_MASTER_SERVER?=0
++BUILD_SERVER?=0
++HAVE_VM_COMPILED?=false
++USE_CODEC_VORBIS?=0
++USE_LOCAL_HEADERS?=0
++USE_OPENAL?=0
++USE_OPENAL_DLOPEN?=0
++USE_OPTIMIZED_CFLAGS?=0
++USE_SDL_AUDIO?=0
++USE_SDL_VIDEO?=0
+
+ #############################################################################
+ #
+@@ -89,34 +98,10 @@
+ endif
+ export USE_CCACHE
+
+-ifndef USE_SDL
+-USE_SDL=1
+-endif
+-
+-ifndef USE_OPENAL
+-USE_OPENAL=1
+-endif
+-
+-ifndef USE_OPENAL_DLOPEN
+-USE_OPENAL_DLOPEN=0
+-endif
+-
+-ifndef USE_CODEC_VORBIS
+-USE_CODEC_VORBIS=0
+-endif
+-
+-ifndef USE_LOCAL_HEADERS
+-USE_LOCAL_HEADERS=1
+-endif
+-
+-ifndef BUILD_MASTER_SERVER
+-BUILD_MASTER_SERVER=0
+-endif
+-
+ #############################################################################
+
+ BD=$(BUILD_DIR)/debug-$(PLATFORM)-$(ARCH)
+-BR=$(BUILD_DIR)/release-$(PLATFORM)-$(ARCH)
++BR=$(BUILD_DIR)/release
+ CDIR=$(MOUNT_DIR)/client
+ SDIR=$(MOUNT_DIR)/server
+ RDIR=$(MOUNT_DIR)/renderer
+@@ -412,18 +397,12 @@
+
+ ifeq ($(PLATFORM),freebsd)
+
+- ifneq (,$(findstring alpha,$(shell uname -m)))
+- ARCH=axp
+- else #default to x86
+- ARCH=x86
+- endif #alpha test
+-
+-
+- BASE_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes
++ BASE_CFLAGS = -I$(LOCALBASE)/include -DARCH='\"$(ARCH)\"' -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes
+
+- GL_CFLAGS = -I/usr/X11R6/include
++ GL_CFLAGS = -I$(X11BASE)/include
+
+ DEBUG_CFLAGS=$(BASE_CFLAGS) -g
++ RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG -pipe
+
+ ifeq ($(USE_OPENAL),1)
+ BASE_CFLAGS += -DUSE_OPENAL=1
+@@ -436,46 +415,62 @@
+ BASE_CFLAGS += -DUSE_CODEC_VORBIS=1
+ endif
+
+- ifeq ($(USE_SDL),1)
+- BASE_CFLAGS += $(shell sdl11-config --cflags) -DUSE_SDL_VIDEO=1 -DUSE_SDL_SOUND=1
++ ifeq ($(USE_SDL_AUDIO),1)
++ BASE_CFLAGS += $(shell $(SDL_CONFIG) --cflags)
++ else
++ ifeq ($(USE_SDL_VIDEO),1)
++ BASE_CFLAGS += $(shell $(SDL_CONFIG) --cflags)
++ endif
+ endif
+
+- ifeq ($(ARCH),axp)
+- CC=gcc
+- BASE_CFLAGS += -DNO_VM_COMPILED
+- RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG -O3 -ffast-math -funroll-loops \
+- -fomit-frame-pointer -fexpensive-optimizations
+- else
+- ifeq ($(ARCH),x86)
+- CC=gcc
+- RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG -O3 -mtune=pentiumpro \
+- -march=pentium -fomit-frame-pointer -pipe -ffast-math \
+- -falign-loops=2 -falign-jumps=2 -falign-functions=2 \
+- -funroll-loops -fstrength-reduce
+- else
+- BASE_CFLAGS += -DNO_VM_COMPILED
++ ifeq ($(USE_SDL_AUDIO),1)
++ BASE_CFLAGS += -DUSE_SDL_SOUND=1
++ endif
++
++ ifeq ($(USE_SDL_VIDEO),1)
++ BASE_CFLAGS += -DUSE_SDL_VIDEO=1
++ endif
++
++ ifeq ($(USE_OPTIMIZED_CFLAGS),1)
++ RELEASE_CFLAGS+=-O3 -ffast-math -funroll-loops -fomit-frame-pointer \
++ -fexpensive-optimizations
++ ifeq ($(ARCH),i386)
++ RELEASE_CFLAGS+=-falign-loops=2 -falign-jumps=2 -falign-functions=2 \
++ -fstrength-reduce
++ endif
+ endif
++
++ HAVE_VM_COMPILED?=false
++ ifneq ($(HAVE_VM_COMPILED),true)
++ BASE_CFLAGS += -DNO_VM_COMPILED
+ endif
+
+ SHLIBEXT=so
+ SHLIBCFLAGS=-fPIC
+ SHLIBLDFLAGS=-shared $(LDFLAGS)
+
+- THREAD_LDFLAGS=-lpthread
++ THREAD_LDFLAGS=$(PTHREAD_LIBS)
+ # don't need -ldl (FreeBSD)
+- LDFLAGS=-lm
++ LDFLAGS+=-lm
+
+- CLIENT_LDFLAGS =
++ CLIENT_LDFLAGS = -L$(LOCALBASE)/lib
+
+- ifeq ($(USE_SDL),1)
+- CLIENT_LDFLAGS += $(shell sdl11-config --libs)
++ ifeq ($(USE_SDL_AUDIO),1)
++ CLIENT_LDFLAGS += $(shell $(SDL_CONFIG) --libs)
+ else
+- CLIENT_LDFLAGS += -L/usr/X11R6/$(LIB) -lGL -lX11 -lXext -lXxf86dga -lXxf86vm
++ ifeq ($(USE_SDL_VIDEO),1)
++ CLIENT_LDFLAGS += $(shell $(SDL_CONFIG) --libs)
++ endif
++ endif
++
++ ifneq ($(USE_SDL_VIDEO),1)
++ CLIENT_LDFLAGS += -L$(X11BASE)/lib -lGL -lX11 -lXext -lXxf86dga -lXxf86vm
+ endif
+
+ ifeq ($(USE_OPENAL),1)
++ CLIENT_LDFLAGS += $(THREAD_LDFLAGS)
+ ifneq ($(USE_OPENAL_DLOPEN),1)
+- CLIENT_LDFLAGS += $(THREAD_LDFLAGS) -lopenal
++ CLIENT_LDFLAGS += -lopenal
+ endif
+ endif
+
+@@ -637,21 +632,22 @@
+ TARGETS =
+
+ ifneq ($(BUILD_SERVER),0)
+- TARGETS += $(B)/tremded.$(ARCH)$(BINEXT)
++ TARGETS += $(B)/tremded$(BINEXT)
+ endif
+
+ ifneq ($(BUILD_CLIENT),0)
+- TARGETS += $(B)/tremulous.$(ARCH)$(BINEXT)
+- ifneq ($(BUILD_CLIENT_SMP),0)
+- TARGETS += $(B)/tremulous.$(ARCH)$(BINEXT)
+- endif
++ TARGETS += $(B)/tremulous$(BINEXT)
++endif
++
++ifneq ($(BUILD_CLIENT_SMP),0)
++ TARGETS += $(B)/tremulous-smp$(BINEXT)
+ endif
+
+ ifneq ($(BUILD_GAME_SO),0)
+ TARGETS += \
+- $(B)/base/cgame$(ARCH).$(SHLIBEXT) \
+- $(B)/base/game$(ARCH).$(SHLIBEXT) \
+- $(B)/base/ui$(ARCH).$(SHLIBEXT)
++ $(B)/base/cgame.$(SHLIBEXT) \
++ $(B)/base/game.$(SHLIBEXT) \
++ $(B)/base/ui.$(SHLIBEXT)
+ endif
+
+ ifneq ($(BUILD_GAME_QVM),0)
+@@ -709,14 +705,14 @@
+ endif
+
+ build_release: B=$(BR)
+-build_release: makedirs tools
++build_release: makedirs
+ $(MAKE) targets B=$(BR) CFLAGS="$(CFLAGS) $(RELEASE_CFLAGS) $(DEPEND_CFLAGS)"
+ ifeq ($(BUILD_MASTER_SERVER),1)
+ $(MAKE) -C $(MASTERDIR) release
+ endif
+
+ #Build both debug and release builds
+-all:build_debug build_release
++all:build_release
+
+ targets: $(TARGETS)
+
+@@ -901,7 +897,7 @@
+ $(B)/client/tr_surface.o \
+ $(B)/client/tr_world.o \
+
+-ifeq ($(ARCH),x86)
++ifeq ($(ARCH),i386)
+ Q3OBJ += $(B)/client/vm_x86.o
+ Q3OBJ += \
+ $(B)/client/snd_mixa.o \
+@@ -910,7 +906,7 @@
+ $(B)/client/snapvectora.o
+ endif
+
+-ifeq ($(ARCH),x86_64)
++ifeq ($(ARCH),amd64)
+ Q3OBJ += $(B)/client/vm_x86_64.o
+ endif
+
+@@ -962,10 +958,10 @@
+ $(B)/client/sdl_glimp_smp.o
+ endif
+
+-$(B)/tremulous.$(ARCH)$(BINEXT): $(Q3OBJ) $(Q3POBJ) $(LIBSDLMAIN)
++$(B)/tremulous$(BINEXT): $(Q3OBJ) $(Q3POBJ) $(LIBSDLMAIN)
+ $(CC) -o $@ $(Q3OBJ) $(Q3POBJ) $(CLIENT_LDFLAGS) $(LDFLAGS) $(LIBSDLMAIN)
+
+-$(B)/tremulous-smp.$(ARCH)$(BINEXT): $(Q3OBJ) $(Q3POBJ_SMP) $(LIBSDLMAIN)
++$(B)/tremulous-smp$(BINEXT): $(Q3OBJ) $(Q3POBJ_SMP) $(LIBSDLMAIN)
+ $(CC) -o $@ $(Q3OBJ) $(Q3POBJ_SMP) $(CLIENT_LDFLAGS) \
+ $(THREAD_LDFLAGS) $(LDFLAGS) $(LIBSDLMAIN)
+
+@@ -1238,12 +1234,12 @@
+ $(B)/ded/null_input.o \
+ $(B)/ded/null_snddma.o
+
+-ifeq ($(ARCH),x86)
++ifeq ($(ARCH),i386)
+ Q3DOBJ += $(B)/ded/vm_x86.o $(B)/ded/ftola.o \
+ $(B)/ded/snapvectora.o $(B)/ded/matha.o
+ endif
+
+-ifeq ($(ARCH),x86_64)
++ifeq ($(ARCH),amd64)
+ Q3DOBJ += $(B)/ded/vm_x86_64.o
+ endif
+
+@@ -1253,7 +1249,7 @@
+ endif
+ endif
+
+-$(B)/tremded.$(ARCH)$(BINEXT): $(Q3DOBJ)
++$(B)/tremded$(BINEXT): $(Q3DOBJ)
+ $(CC) -o $@ $(Q3DOBJ) $(LDFLAGS)
+
+ $(B)/ded/sv_bot.o : $(SDIR)/sv_bot.c; $(DO_DED_CC)
+@@ -1374,7 +1370,7 @@
+ CGOBJ = $(CGOBJ_) $(B)/base/cgame/cg_syscalls.o
+ CGVMOBJ = $(CGOBJ_:%.o=%.asm) $(B)/base/game/bg_lib.asm
+
+-$(B)/base/cgame$(ARCH).$(SHLIBEXT) : $(CGOBJ)
++$(B)/base/cgame.$(SHLIBEXT) : $(CGOBJ)
+ $(CC) $(SHLIBLDFLAGS) -o $@ $(CGOBJ)
+
+ $(B)/base/vm/cgame.qvm: $(CGVMOBJ) $(CGDIR)/cg_syscalls.asm
+@@ -1418,7 +1414,7 @@
+ GOBJ = $(GOBJ_) $(B)/base/game/g_syscalls.o
+ GVMOBJ = $(GOBJ_:%.o=%.asm) $(B)/base/game/bg_lib.asm
+
+-$(B)/base/game$(ARCH).$(SHLIBEXT) : $(GOBJ)
++$(B)/base/game.$(SHLIBEXT) : $(GOBJ)
+ $(CC) $(SHLIBLDFLAGS) -o $@ $(GOBJ)
+
+ $(B)/base/vm/game.qvm: $(GVMOBJ) $(GDIR)/g_syscalls.asm
+@@ -1444,7 +1440,7 @@
+ UIOBJ = $(UIOBJ_) $(B)/base/ui/ui_syscalls.o
+ UIVMOBJ = $(UIOBJ_:%.o=%.asm) $(B)/base/game/bg_lib.asm
+
+-$(B)/base/ui$(ARCH).$(SHLIBEXT) : $(UIOBJ)
++$(B)/base/ui.$(SHLIBEXT) : $(UIOBJ)
+ $(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(UIOBJ)
+
+ $(B)/base/vm/ui.qvm: $(UIVMOBJ) $(UIDIR)/ui_syscalls.asm
diff --git a/games/tremulous/files/patch-src__master__Makefile b/games/tremulous/files/patch-src__master__Makefile
new file mode 100644
index 000000000000..1b058b25e9b3
--- /dev/null
+++ b/games/tremulous/files/patch-src__master__Makefile
@@ -0,0 +1,22 @@
+--- ./tremulous-1.1.0-src/src/master/Makefile.orig Fri Jan 20 20:37:31 2006
++++ ./tremulous-1.1.0-src/src/master/Makefile Wed Jun 7 16:57:12 2006
+@@ -1,5 +1,5 @@
+ BD_DEBUG=debug-$(PLATFORM)-$(ARCH)
+-BD_RELEASE=release-$(PLATFORM)-$(ARCH)
++BD_RELEASE=release
+
+ ifeq ($(PLATFORM),mingw32)
+ BINEXT=.exe
+@@ -15,9 +15,11 @@
+ MKDIR=mkdir
+ endif
+
+-CC=gcc
++CC?=gcc
++CFLAGS+=-I$(LOCALBASE)/include
+ RELEASE_CFLAGS=-Wall -O2
+ DEBUG_CFLAGS=-g
++LDFLAGS+=-L$(LOCALBASE)/lib
+ OBJECTS= \
+ $(BD)/master.o \
+ $(BD)/messages.o \
diff --git a/games/tremulous/files/patch-src__qcommon__common.c b/games/tremulous/files/patch-src__qcommon__common.c
new file mode 100644
index 000000000000..ef840eb3844d
--- /dev/null
+++ b/games/tremulous/files/patch-src__qcommon__common.c
@@ -0,0 +1,10 @@
+--- ./tremulous-1.1.0-src/src/qcommon/common.c.orig Tue Feb 28 20:11:58 2006
++++ ./tremulous-1.1.0-src/src/qcommon/common.c Wed Jun 7 16:57:12 2006
+@@ -26,6 +26,7 @@
+ #include "qcommon.h"
+ #include <setjmp.h>
+ #ifndef _WIN32
++#include <sys/types.h>
+ #include <netinet/in.h>
+ #include <sys/stat.h> // umask
+ #else
diff --git a/games/tremulous/files/patch-src__qcommon__q_platform.h b/games/tremulous/files/patch-src__qcommon__q_platform.h
new file mode 100644
index 000000000000..7856b7e5be76
--- /dev/null
+++ b/games/tremulous/files/patch-src__qcommon__q_platform.h
@@ -0,0 +1,15 @@
+--- ./tremulous-1.1.0-src/src/qcommon/q_platform.h.orig Fri Jan 13 22:12:32 2006
++++ ./tremulous-1.1.0-src/src/qcommon/q_platform.h Wed Jun 7 16:57:12 2006
+@@ -177,11 +177,7 @@
+ #define ID_INLINE inline
+ #define PATH_SEP '/'
+
+-#ifdef __i386__
+-#define ARCH_STRING "x86"
+-#elif defined __axp__
+-#define ARCH_STRING "alpha"
+-#endif
++#define ARCH_STRING ARCH
+
+ #if BYTE_ORDER == BIG_ENDIAN
+ #define Q3_BIG_ENDIAN
diff --git a/games/tremulous/files/patch-src__unix__linux_glimp.c b/games/tremulous/files/patch-src__unix__linux_glimp.c
new file mode 100644
index 000000000000..3fecc1909574
--- /dev/null
+++ b/games/tremulous/files/patch-src__unix__linux_glimp.c
@@ -0,0 +1,20 @@
+--- ./tremulous-1.1.0-src/src/unix/linux_glimp.c.orig Fri Mar 3 20:59:01 2006
++++ ./tremulous-1.1.0-src/src/unix/linux_glimp.c Wed Jun 7 16:57:12 2006
+@@ -619,8 +619,15 @@
+
+ dx = ((int)event.xmotion.x - mwx);
+ dy = ((int)event.xmotion.y - mwy);
+- mx += dx;
+- my += dy;
++
++ if (abs(dx) > 1)
++ mx += dx * 2;
++ else
++ mx += dx;
++ if (abs(dy) > 1)
++ my += dy * 2;
++ else
++ my += dy;
+
+ mwx = event.xmotion.x;
+ mwy = event.xmotion.y;
diff --git a/games/tremulous/pkg-descr b/games/tremulous/pkg-descr
new file mode 100644
index 000000000000..27e0d8f0dd58
--- /dev/null
+++ b/games/tremulous/pkg-descr
@@ -0,0 +1,21 @@
+Tremulous is a free, open source game that blends a team based FPS with
+elements of an RTS. Players can choose from 2 unique races, aliens and humans.
+Players on both teams are able to build working structures in-game like an
+RTS. These structures provide many functions, the most important being
+spawning. The designated builders must ensure there are spawn structures or
+other players will not be able to rejoin the game after death. Other
+structures provide automated base defense (to some degree), healing functions
+and much more...
+
+Player advancement is different depending on which team you are on. As a
+human, players are rewarded with credits for each alien kill. These credits
+may be used to purchase new weapons and upgrades from the "Armoury". The alien
+team advances quite differently. Upon killing a human foe, the alien is able
+to evolve into a new class. The more kills gained the more powerful the
+classes available.
+
+The overall objective behind Tremulous is to eliminate the opposing team. This
+is achieved by not only killing the opposing players but also removing their
+ability to respawn by destroying their spawn structures.
+
+WWW: http://www.tremulous.net/
diff --git a/games/tremulous/pkg-plist b/games/tremulous/pkg-plist
new file mode 100644
index 000000000000..922bf10bf823
--- /dev/null
+++ b/games/tremulous/pkg-plist
@@ -0,0 +1,20 @@
+%%DEDICATED%%bin/tremded
+%%MASTER_SERVER%%bin/tremmaster
+%%CLIENT%%bin/tremulous
+%%SMP%%bin/tremulous-smp
+share/pixmaps/tremulous.xpm
+%%DATADIR%%/base/data-1.1.0.pk3
+%%DATADIR%%/base/map-arachnid2-1.1.0.pk3
+%%DATADIR%%/base/map-atcs-1.1.0.pk3
+%%DATADIR%%/base/map-karith-1.1.0.pk3
+%%DATADIR%%/base/map-nexus6-1.1.0.pk3
+%%DATADIR%%/base/map-niveus-1.1.0.pk3
+%%DATADIR%%/base/map-transit-1.1.0.pk3
+%%DATADIR%%/base/map-tremor-1.1.0.pk3
+%%DATADIR%%/base/map-uncreation-1.1.0.pk3
+%%DATADIR%%/base/maprotation.cfg
+%%DATADIR%%/base/server.cfg
+%%DATADIR%%/base/vms-1.1.0.pk3
+@dirrmtry share/pixmaps
+@dirrm %%DATADIR%%/base
+@dirrm %%DATADIR%%