diff options
author | Pav Lucistnik <pav@FreeBSD.org> | 2010-12-01 13:27:08 +0000 |
---|---|---|
committer | Pav Lucistnik <pav@FreeBSD.org> | 2010-12-01 13:27:08 +0000 |
commit | 547ff04a5686166f4ac6c64ceb26870d4b0722cf (patch) | |
tree | 1183390ebb633e8f71d8d263ad8c77e34e539be3 /games/ioquake3 | |
parent | e8d0d5cbbba0bfd92945a23f9df9ebf1f2151bb5 (diff) |
Notes
Diffstat (limited to 'games/ioquake3')
-rw-r--r-- | games/ioquake3/Makefile | 23 | ||||
-rw-r--r-- | games/ioquake3/distinfo | 1 | ||||
-rw-r--r-- | games/ioquake3/files/patch-code-qcommon-vm_x86.c | 29 |
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 + |