aboutsummaryrefslogtreecommitdiff
path: root/games/ioquake3
diff options
context:
space:
mode:
authorPav Lucistnik <pav@FreeBSD.org>2010-12-01 13:27:08 +0000
committerPav Lucistnik <pav@FreeBSD.org>2010-12-01 13:27:08 +0000
commit547ff04a5686166f4ac6c64ceb26870d4b0722cf (patch)
tree1183390ebb633e8f71d8d263ad8c77e34e539be3 /games/ioquake3
parente8d0d5cbbba0bfd92945a23f9df9ebf1f2151bb5 (diff)
downloadports-547ff04a5686166f4ac6c64ceb26870d4b0722cf.tar.gz
ports-547ff04a5686166f4ac6c64ceb26870d4b0722cf.zip
games/ioquake3
- Add DESKTOP_ENTRIES if the client is installed - Get rid of MD5 distinfo - Backport fix for FreeBSD/i386 with PAE kernel, provided by Nerius Landys games/ioquake3-devel - Update to SVN snapshot 1803, contains a number of fixes including the PAE patch by Nerius Landis - Make the port capable of being a master port games/openarena - Update to the latest source release - Add PAE fix games/openarena-oax - Update to the latest release games/iourbanterror - Abandon urbanterror provided source for ioquake3 source, because the project has announced a switch to a closed source licensing model - Enslave to games/ioquake3-devel - Change versioning scheme to resemble official version numbers - Bump portepoch PR: ports/152637 Submitted by: Dominic Fandrey <kamikaze@bsdforen.de> (maintainer)
Notes
Notes: svn path=/head/; revision=265513
Diffstat (limited to 'games/ioquake3')
-rw-r--r--games/ioquake3/Makefile23
-rw-r--r--games/ioquake3/distinfo1
-rw-r--r--games/ioquake3/files/patch-code-qcommon-vm_x86.c29
3 files changed, 48 insertions, 5 deletions
diff --git a/games/ioquake3/Makefile b/games/ioquake3/Makefile
index 890cd87a0e9d..87a2c1745ef3 100644
--- a/games/ioquake3/Makefile
+++ b/games/ioquake3/Makefile
@@ -7,12 +7,12 @@
PORTNAME?= ioquake3
DISTVERSION?= 1.36
-PORTREVISION?= 6
+PORTREVISION?= 7
CATEGORIES= games
MASTER_SITES?= http://ioquake3.org/files/${DISTVERSION}/
MAINTAINER?= kamikaze@bsdforen.de
-COMMENT?= Cleaned-up and enhaced version of Quake 3
+COMMENT?= Cleaned-up and enhanced version of Quake 3
USE_ZIP?= yes
# Allow slave ports to turn off zip.
@@ -31,7 +31,7 @@ OPTIONS+= CLIENT "Build client" on \
MAKE_ARGS+= DEFAULT_BASEDIR="${Q3DIR}" \
DEFAULT_LIBDIR="${LIBDIR}" \
- HOMEPATH="/.${PORTNAME}" \
+ HOMEPATH="${HOMEPATH}" \
VERSION="${DISTVERSION}" \
ARCH="${ARCH}"
PLIST_SUB+= LIBDIR="${LIBDIR:S/${PREFIX}\///}" \
@@ -43,6 +43,7 @@ MAKE_JOBS_SAFE= yes
LIBDIR= ${PREFIX}/lib/${PORTNAME}
BUILDDIR= ${WRKSRC}/build/release-${OPSYS:L}-${ARCH}
BINSUFFIX?=
+HOMEPATH?= /.${PORTNAME}
Q3CLIENT?= ioquake3
Q3SERVER?= ioq3ded
Q3TOOLS?= q3asm \
@@ -51,6 +52,7 @@ Q3TOOLS?= q3asm \
q3rcc
Q3BASE?= baseq3 \
missionpack
+Q3ICON?= ${PREFIX}/share/pixmaps/quake3.xpm
Q3INSTALL?=
ONLY_FOR_ARCHS= amd64 i386
@@ -61,8 +63,21 @@ MACHINE_ARCH= ${ARCH}
.include <bsd.port.options.mk>
+.if !defined(DESKTOP_ENTRIES)
+.if defined(WITH_CLIENT)
+DESKTOP_ENTRIES+= "${Q3CLIENT} ${DISTVERSION}" "${COMMENT}" \
+ "${Q3ICON}" \
+ "${Q3CLIENT}${BINSUFFIX}" "Application;Game;" false
+.endif
+.if defined(WITH_SMP)
+DESKTOP_ENTRIES+= "${Q3CLIENT} ${DISTVERSION} SMP" "${COMMENT}" \
+ "${Q3ICON}" \
+ "${Q3CLIENT}-smp${BINSUFFIX}" "Application;Game;" false
+.endif
+.endif
+
.if defined(WITHOUT_CLIENT) && defined(WITHOUT_DEDICATED) && \
- defined(WITHOUT_SMP)
+ !defined(WITH_SMP)
IGNORE= needs at least one of CLIENT, DEDICATED and SMP options
.endif
diff --git a/games/ioquake3/distinfo b/games/ioquake3/distinfo
index 828f9daa8ebb..1a313351257d 100644
--- a/games/ioquake3/distinfo
+++ b/games/ioquake3/distinfo
@@ -1,3 +1,2 @@
-MD5 (ioquake3-1.36.zip) = 8e48a3957b3e70601d0ea0a450dc6359
SHA256 (ioquake3-1.36.zip) = 3f8fecd81f9af484b9215df4cf58bcc6a378adb6f1504b0bba169c3dbadb4c94
SIZE (ioquake3-1.36.zip) = 4583577
diff --git a/games/ioquake3/files/patch-code-qcommon-vm_x86.c b/games/ioquake3/files/patch-code-qcommon-vm_x86.c
new file mode 100644
index 000000000000..a24661785255
--- /dev/null
+++ b/games/ioquake3/files/patch-code-qcommon-vm_x86.c
@@ -0,0 +1,29 @@
+--- code/qcommon/vm_x86.c.orig 2008-08-18 01:22:06.000000000 +0200
++++ code/qcommon/vm_x86.c 2010-11-27 14:01:33.000000000 +0100
+@@ -36,7 +36,25 @@
+
+ /* need this on NX enabled systems (i386 with PAE kernel or
+ * noexec32=on x86_64) */
+-#ifdef __linux__
++// Rambetter's note: I'm adding the test for __FreeBSD__ in addition to the [already
++// existing] test for __linux__. Here is why. I own a 32 bit FreeBSD 8.0 server with
++// a PAE kernel. Without VM_X86_MMAP, ioq3ded segfaults shortly after starting
++// (this should come as no surprise). With VM_X86_MMAP, ioq3ded runs very smoothly.
++// So, at a very minimum, we need to set VM_X86_MMAP for FreeBSD PAE kernels.
++// Now, I also happen to own a 32 bit FreeBSD 7.1 server with just the standard kernel
++// (non-PAE). I have run ioq3ded successfully on it with and without VM_X86_MMAP for many
++// months. So, in the case of non-PAE FreeBSD, we can go either way - use VM_X86_MMAP or
++// not use it. The absolute safest fix to this problem is to only set VM_X86_MMAP on
++// PAE FreeBSD kernels (in addition to Linux); however, I don't know of a way to detect
++// the PAE kernel easily. Therefore, since using VM_X86_MMAP won't break anything on
++// non-PAE kernels [apparently], we'll just use it all the time on FreeBSD 32 bit.
++// Now, you may ask the question: Why not change the entire test for just __unix__?
++// Unfortunately I cannot say anything about this because I don't have access to every
++// other system that has __unix__ defined, so I cannot possibly test all those cases to
++// make sure things work. We'll just leave it with __linux__ and __FreeBSD__ to be safe.
++// If someone with a different flavor of UNIX running a PAE kernel has this problem too,
++// they can report the bug and we will adjust the line below accordingly.
++#if defined(__linux__) || defined(__FreeBSD__)
+ #define VM_X86_MMAP
+ #endif
+