summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Sterrett <mr_bones_@gentoo.org>2010-09-09 07:14:12 +0000
committerMichael Sterrett <mr_bones_@gentoo.org>2010-09-09 07:14:12 +0000
commit29ac0609b886de03d75d035e8645ff7420726c8a (patch)
treebf046766b8794a5c7e33006fa44aae81a8581ff5 /games-fps
parentBump chappa patches (73). Thanks to Sascha Lucas. Update metadata.xml (diff)
downloadgentoo-2-29ac0609b886de03d75d035e8645ff7420726c8a.tar.gz
gentoo-2-29ac0609b886de03d75d035e8645ff7420726c8a.tar.bz2
gentoo-2-29ac0609b886de03d75d035e8645ff7420726c8a.zip
version bump with work from Cesar Garcia in bug #306617
(Portage version: 2.1.8.3/cvs/Linux i686)
Diffstat (limited to 'games-fps')
-rw-r--r--games-fps/openarena/ChangeLog10
-rw-r--r--games-fps/openarena/files/openarena-0.8.5-bots-strcpy-fix.patch33
-rw-r--r--games-fps/openarena/files/openarena-0.8.5-makefile.patch321
-rw-r--r--games-fps/openarena/files/openarena-0.8.5-unbundling.patch194
-rw-r--r--games-fps/openarena/openarena-0.8.5.ebuild89
5 files changed, 646 insertions, 1 deletions
diff --git a/games-fps/openarena/ChangeLog b/games-fps/openarena/ChangeLog
index 18a98a1d9e9c..7204c169d606 100644
--- a/games-fps/openarena/ChangeLog
+++ b/games-fps/openarena/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog for games-fps/openarena
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/games-fps/openarena/ChangeLog,v 1.17 2010/05/23 21:25:31 pacho Exp $
+# $Header: /var/cvsroot/gentoo-x86/games-fps/openarena/ChangeLog,v 1.18 2010/09/09 07:14:12 mr_bones_ Exp $
+
+*openarena-0.8.5 (09 Sep 2010)
+
+ 09 Sep 2010; Michael Sterrett <mr_bones_@gentoo.org>
+ +openarena-0.8.5.ebuild, +files/openarena-0.8.5-bots-strcpy-fix.patch,
+ +files/openarena-0.8.5-makefile.patch,
+ +files/openarena-0.8.5-unbundling.patch:
+ version bump with work from Cesar Garcia in bug #306617
23 May 2010; Pacho Ramos <pacho@gentoo.org> openarena-0.8.1-r1.ebuild:
stable amd64, bug 315299
diff --git a/games-fps/openarena/files/openarena-0.8.5-bots-strcpy-fix.patch b/games-fps/openarena/files/openarena-0.8.5-bots-strcpy-fix.patch
new file mode 100644
index 000000000000..af2b8f0fe3b0
--- /dev/null
+++ b/games-fps/openarena/files/openarena-0.8.5-bots-strcpy-fix.patch
@@ -0,0 +1,33 @@
+diff -up quake3-1.36/code/botlib/l_precomp.c~ quake3-1.36/code/botlib/l_precomp.c
+--- quake3-1.36/code/botlib/l_precomp.c~ 2009-04-27 08:42:37.000000000 +0200
++++ quake3-1.36/code/botlib/l_precomp.c 2009-11-03 21:03:08.000000000 +0100
+@@ -948,7 +948,7 @@ void PC_ConvertPath(char *path)
+ if ((*ptr == '\\' || *ptr == '/') &&
+ (*(ptr+1) == '\\' || *(ptr+1) == '/'))
+ {
+- strcpy(ptr, ptr+1);
++ memmove(ptr, ptr+1, strlen(ptr));
+ } //end if
+ else
+ {
+diff -up quake3-1.36/code/botlib/l_script.c~ quake3-1.36/code/botlib/l_script.c
+--- quake3-1.36/code/botlib/l_script.c~ 2009-04-27 08:42:37.000000000 +0200
++++ quake3-1.36/code/botlib/l_script.c 2009-11-03 21:06:11.000000000 +0100
+@@ -1118,7 +1118,7 @@ void StripDoubleQuotes(char *string)
+ {
+ if (*string == '\"')
+ {
+- strcpy(string, string+1);
++ memmove(string, string+1, strlen(string));
+ } //end if
+ if (string[strlen(string)-1] == '\"')
+ {
+@@ -1135,7 +1135,7 @@ void StripSingleQuotes(char *string)
+ {
+ if (*string == '\'')
+ {
+- strcpy(string, string+1);
++ memmove(string, string+1, strlen(string));
+ } //end if
+ if (string[strlen(string)-1] == '\'')
+ {
diff --git a/games-fps/openarena/files/openarena-0.8.5-makefile.patch b/games-fps/openarena/files/openarena-0.8.5-makefile.patch
new file mode 100644
index 000000000000..a716763d84f6
--- /dev/null
+++ b/games-fps/openarena/files/openarena-0.8.5-makefile.patch
@@ -0,0 +1,321 @@
+--- openarena-engine-0.8.1/Makefile 2008-08-09 22:22:37.000000000 +0200
++++ openarena-engine-0.8.1/Makefile.new 2009-01-07 19:33:31.000000000 +0100
+@@ -67,6 +67,10 @@
+
+ ifndef ARCH
+ ARCH=$(COMPILE_ARCH)
++else
++ ifeq ($(ARCH),amd64)
++ ARCH=x86_64
++ endif
+ endif
+ export ARCH
+
+@@ -231,8 +231,7 @@
+ endif
+ endif
+
+- BASE_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes \
+- -pipe -DUSE_ICON $(shell sdl-config --cflags)
++ BASE_CFLAGS = -fno-strict-aliasing -DUSE_ICON $(shell sdl-config --cflags) -I.
+
+ ifeq ($(USE_OPENAL),1)
+ BASE_CFLAGS += -DUSE_OPENAL
+@@ -283,29 +283,29 @@
+ SHLIBCFLAGS=-fPIC
+ SHLIBLDFLAGS=-shared $(LDFLAGS)
+
+- THREAD_LDFLAGS=-lpthread
+- LDFLAGS=-ldl -lm
++ THREAD_LIBS=-lpthread
++ LDLIBS=-ldl -lm -lz
+
+- CLIENT_LDFLAGS=$(shell sdl-config --libs) -lGL
++ CLIENT_LIBS=$(shell sdl-config --libs) -lGL -ljpeg
+
+ ifeq ($(USE_OPENAL),1)
+ ifneq ($(USE_OPENAL_DLOPEN),1)
+- CLIENT_LDFLAGS += -lopenal
++ CLIENT_LIBS += -lopenal
+ endif
+ endif
+
+ ifeq ($(USE_CURL),1)
+ ifneq ($(USE_CURL_DLOPEN),1)
+- CLIENT_LDFLAGS += -lcurl
++ CLIENT_LIBS += -lcurl
+ endif
+ endif
+
+ ifeq ($(USE_CODEC_VORBIS),1)
+- CLIENT_LDFLAGS += -lvorbisfile -lvorbis -logg
++ CLIENT_LIBS += -lvorbisfile -lvorbis -logg
+ endif
+
+ ifeq ($(USE_MUMBLE),1)
+- CLIENT_LDFLAGS += -lrt
++ CLIENT_LIBS += -lrt
+ endif
+
+ ifeq ($(USE_LOCAL_HEADERS),1)
+@@ -323,7 +322,7 @@
+ endif
+
+ DEBUG_CFLAGS = $(BASE_CFLAGS) -g -O0
+- RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG $(OPTIMIZE)
++ RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG
+
+ else # ifeq Linux
+
+@@ -336,7 +336,7 @@
+
+ ifeq ($(PLATFORM),darwin)
+ HAVE_VM_COMPILED=true
+- CLIENT_LDFLAGS=
++ CLIENT_LIBS=
+ OPTIMIZE=
+
+ BASE_CFLAGS = -Wall -Wimplicit -Wstrict-prototypes
+@@ -357,7 +357,7 @@
+ ifeq ($(USE_OPENAL),1)
+ BASE_CFLAGS += -DUSE_OPENAL
+ ifneq ($(USE_OPENAL_DLOPEN),1)
+- CLIENT_LDFLAGS += -framework OpenAL
++ CLIENT_LIBS += -framework OpenAL
+ else
+ BASE_CFLAGS += -DUSE_OPENAL_DLOPEN
+ endif
+@@ -366,7 +366,7 @@
+ ifeq ($(USE_CURL),1)
+ BASE_CFLAGS += -DUSE_CURL
+ ifneq ($(USE_CURL_DLOPEN),1)
+- CLIENT_LDFLAGS += -lcurl
++ CLIENT_LIBS += -lcurl
+ else
+ BASE_CFLAGS += -DUSE_CURL_DLOPEN
+ endif
+@@ -374,7 +374,7 @@
+
+ ifeq ($(USE_CODEC_VORBIS),1)
+ BASE_CFLAGS += -DUSE_CODEC_VORBIS
+- CLIENT_LDFLAGS += -lvorbisfile -lvorbis -logg
++ CLIENT_LIBS += -lvorbisfile -lvorbis -logg
+ endif
+
+ BASE_CFLAGS += -D_THREAD_SAFE=1
+@@ -387,7 +387,7 @@
+ # the file has been modified by each build.
+ LIBSDLMAIN=$(B)/libSDLmain.a
+ LIBSDLMAINSRC=$(LIBSDIR)/macosx/libSDLmain.a
+- CLIENT_LDFLAGS += -framework Cocoa -framework IOKit -framework OpenGL \
++ CLIENT_LIBS += -framework Cocoa -framework IOKit -framework OpenGL \
+ $(LIBSDIR)/macosx/libSDL-1.2.0.dylib
+
+ OPTIMIZE += -ffast-math -falign-loops=16
+@@ -441,7 +441,7 @@
+ ifeq ($(USE_OPENAL_DLOPEN),1)
+ BASE_CFLAGS += -DUSE_OPENAL_DLOPEN
+ else
+- CLIENT_LDFLAGS += $(OPENAL_LDFLAGS)
++ CLIENT_LIBS += $(OPENAL_LDFLAGS)
+ endif
+ endif
+
+@@ -461,8 +461,8 @@
+
+ BINEXT=.exe
+
+- LDFLAGS= -lws2_32 -lwinmm
+- CLIENT_LDFLAGS = -mwindows -lgdi32 -lole32 -lopengl32
++ LDLIBS= -lws2_32 -lwinmm
++ CLIENT_LIBS = -mwindows -lgdi32 -lole32 -lopengl32
+
+ ifeq ($(USE_CURL),1)
+ BASE_CFLAGS += -DUSE_CURL
+@@ -470,9 +470,9 @@
+ ifneq ($(USE_CURL_DLOPEN),1)
+ ifeq ($(USE_LOCAL_HEADERS),1)
+ BASE_CFLAGS += -DCURL_STATICLIB
+- CLIENT_LDFLAGS += $(LIBSDIR)/win32/libcurl.a
++ CLIENT_LIBS += $(LIBSDIR)/win32/libcurl.a
+ else
+- CLIENT_LDFLAGS += $(CURL_LIBS)
++ CLIENT_LIBS += $(CURL_LIBS)
+ endif
+ endif
+ endif
+@@ -480,9 +480,9 @@
+ ifeq ($(USE_CODEC_VORBIS),1)
+ #Sago: Here I get vorbis to compile in Windows:
+ ifeq ($(PLATFORM),mingw32)
+- CLIENT_LDFLAGS += $(LIBSDIR)/win32/libvorbisfile.a $(LIBSDIR)/win32/libvorbis.a $(LIBSDIR)/win32/libogg.a
++ CLIENT_LIBS += $(LIBSDIR)/win32/libvorbisfile.a $(LIBSDIR)/win32/libvorbis.a $(LIBSDIR)/win32/libogg.a
+ else
+- CLIENT_LDFLAGS += -lvorbisfile -lvorbis -logg
++ CLIENT_LIBS += -lvorbisfile -lvorbis -logg
+ endif
+ endif
+
+@@ -496,14 +496,14 @@
+ RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG $(OPTIMIZE)
+
+ # libmingw32 must be linked before libSDLmain
+- CLIENT_LDFLAGS += -lmingw32
++ CLIENT_LIBS += -lmingw32
+ ifeq ($(USE_LOCAL_HEADERS),1)
+ BASE_CFLAGS += -I$(SDLHDIR)/include
+- CLIENT_LDFLAGS += $(LIBSDIR)/win32/libSDLmain.a \
++ CLIENT_LIBS += $(LIBSDIR)/win32/libSDLmain.a \
+ $(LIBSDIR)/win32/libSDL.dll.a
+ else
+ BASE_CFLAGS += $(SDL_CFLAGS)
+- CLIENT_LDFLAGS += $(SDL_LIBS)
++ CLIENT_LIBS += $(SDL_LIBS)
+ endif
+
+
+@@ -561,22 +561,22 @@
+ SHLIBCFLAGS=-fPIC
+ SHLIBLDFLAGS=-shared $(LDFLAGS)
+
+- THREAD_LDFLAGS=-lpthread
++ THREAD_LIBS=-lpthread
+ # don't need -ldl (FreeBSD)
+- LDFLAGS=-lm
++ LDLIBS=-lm -lz
+
+- CLIENT_LDFLAGS =
++ CLIENT_LIBS =
+
+- CLIENT_LDFLAGS += $(shell sdl-config --libs) -lGL
++ CLIENT_LIBS += $(shell sdl-config --libs) -lGL
+
+ ifeq ($(USE_OPENAL),1)
+ ifneq ($(USE_OPENAL_DLOPEN),1)
+- CLIENT_LDFLAGS += $(THREAD_LDFLAGS) -lopenal
++ CLIENT_LIBS += $(THREAD_LIBS) -lopenal
+ endif
+ endif
+
+ ifeq ($(USE_CODEC_VORBIS),1)
+- CLIENT_LDFLAGS += -lvorbisfile -lvorbis -logg
++ CLIENT_LIBS += -lvorbisfile -lvorbis -logg
+ endif
+
+ else # ifeq freebsd
+@@ -618,21 +618,21 @@
+ SHLIBCFLAGS=-fPIC
+ SHLIBLDFLAGS=-shared $(LDFLAGS)
+
+- THREAD_LDFLAGS=-lpthread
+- LDFLAGS=-lm
++ THREAD_LIBS=-lpthread
++ LDLIBS=-lm -lz
+
+- CLIENT_LDFLAGS =
++ CLIENT_LIBS =
+
+- CLIENT_LDFLAGS += $(shell sdl-config --libs) -lGL
++ CLIENT_LIBS += $(shell sdl-config --libs) -lGL
+
+ ifeq ($(USE_OPENAL),1)
+ ifneq ($(USE_OPENAL_DLOPEN),1)
+- CLIENT_LDFLAGS += $(THREAD_LDFLAGS) -lossaudio -lopenal
++ CLIENT_LIBS += $(THREAD_LIBS) -lossaudio -lopenal
+ endif
+ endif
+
+ ifeq ($(USE_CODEC_VORBIS),1)
+- CLIENT_LDFLAGS += -lvorbisfile -lvorbis -logg
++ CLIENT_LIBS += -lvorbisfile -lvorbis -logg
+ endif
+
+ else # ifeq openbsd
+@@ -647,11 +647,11 @@
+ ARCH=i386
+ endif
+
+- LDFLAGS=-lm
++ LDLIBS=-lm -lz
+ SHLIBEXT=so
+ SHLIBCFLAGS=-fPIC
+ SHLIBLDFLAGS=-shared $(LDFLAGS)
+- THREAD_LDFLAGS=-lpthread
++ THREAD_LIBS=-lpthread
+
+ BASE_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes
+
+@@ -686,9 +686,9 @@
+ SHLIBCFLAGS=
+ SHLIBLDFLAGS=-shared
+
+- LDFLAGS=-ldl -lm -lgen
++ LDLIBS=-ldl -lm -lgen -lz
+ # FIXME: The X libraries probably aren't necessary?
+- CLIENT_LDFLAGS=-L/usr/X11/$(LIB) $(shell sdl-config --libs) -lGL \
++ CLIENT_LIBS=-L/usr/X11/$(LIB) $(shell sdl-config --libs) -lGL \
+- -lX11 -lXext -lm
++ -lX11 -lXext -lm -ljpeg
+
+ else # ifeq IRIX
+@@ -736,7 +736,7 @@
+ BASE_CFLAGS += -m32
+ LDFLAGS += -m32
+ BASE_CFLAGS += -I/usr/X11/include/NVIDIA
+- CLIENT_LDFLAGS += -L/usr/X11/lib/NVIDIA -R/usr/X11/lib/NVIDIA
++ CLIENT_LIBS += -L/usr/X11/lib/NVIDIA -R/usr/X11/lib/NVIDIA
+ endif
+ endif
+
+@@ -752,12 +752,12 @@
+ SHLIBCFLAGS=-fPIC
+ SHLIBLDFLAGS=-shared $(LDFLAGS)
+
+- THREAD_LDFLAGS=-lpthread
+- LDFLAGS=-lsocket -lnsl -ldl -lm
++ THREAD_LIBS=-lpthread
++ LDLIBS=-lsocket -lnsl -ldl -lm -lz
+
+ BOTCFLAGS=-O0
+
+- CLIENT_LDFLAGS +=$(shell sdl-config --libs) -lGL
++ CLIENT_LIBS +=$(shell sdl-config --libs) -lGL -ljpeg
+
+ else # ifeq sunos
+
+@@ -825,7 +825,7 @@
+ ifeq ($(USE_INTERNAL_SPEEX),1)
+ BASE_CFLAGS += -DFLOATING_POINT -DUSE_ALLOCA -I$(SPEEXDIR)/include
+ else
+- CLIENT_LDFLAGS += -lspeex
++ CLIENT_LIBS += -lspeex -lspeexdsp
+ endif
+ endif
+
+@@ -1421,13 +1421,13 @@
+
+ $(B)/openarena.$(ARCH)$(BINEXT): $(Q3OBJ) $(Q3POBJ) $(LIBSDLMAIN)
+ $(echo_cmd) "LD $@"
+- $(Q)$(CC) -o $@ $(Q3OBJ) $(Q3POBJ) $(CLIENT_LDFLAGS) \
+- $(LDFLAGS) $(LIBSDLMAIN)
++ $(Q)$(CC) -o $@ $(Q3OBJ) $(Q3POBJ) \
++ $(LDFLAGS) $(LIBSDLMAIN) $(CLIENT_LIBS) $(LDLIBS)
+
+ $(B)/openarena-smp.$(ARCH)$(BINEXT): $(Q3OBJ) $(Q3POBJ_SMP) $(LIBSDLMAIN)
+ $(echo_cmd) "LD $@"
+- $(Q)$(CC) -o $@ $(Q3OBJ) $(Q3POBJ_SMP) $(CLIENT_LDFLAGS) \
+- $(THREAD_LDFLAGS) $(LDFLAGS) $(LIBSDLMAIN)
++ $(Q)$(CC) -o $@ $(Q3OBJ) $(Q3POBJ_SMP) \
++ $(LDFLAGS) $(THREAD_LIBS) $(LIBSDLMAIN) $(CLIENT_LIBS) $(LDLIBS)
+
+ ifneq ($(strip $(LIBSDLMAIN)),)
+ ifneq ($(strip $(LIBSDLMAINSRC)),)
+@@ -1553,7 +1553,7 @@
+
+ $(B)/oa_ded.$(ARCH)$(BINEXT): $(Q3DOBJ)
+ $(echo_cmd) "LD $@"
+- $(Q)$(CC) -o $@ $(Q3DOBJ) $(LDFLAGS)
++ $(Q)$(CC) -o $@ $(Q3DOBJ) $(LDFLAGS) $(LDLIBS)
+
+
+
diff --git a/games-fps/openarena/files/openarena-0.8.5-unbundling.patch b/games-fps/openarena/files/openarena-0.8.5-unbundling.patch
new file mode 100644
index 000000000000..687668e602b8
--- /dev/null
+++ b/games-fps/openarena/files/openarena-0.8.5-unbundling.patch
@@ -0,0 +1,194 @@
+--- openarena-engine-0.8.1/Makefile.old 2010-03-06 21:51:19.000000000 +0100
++++ openarena-engine-0.8.1/Makefile 2010-03-06 21:58:01.000000000 +0100
+@@ -1278,41 +1278,7 @@
+ $(B)/client/l_script.o \
+ $(B)/client/l_struct.o \
+ \
+- $(B)/client/jcapimin.o \
+- $(B)/client/jcapistd.o \
+- $(B)/client/jchuff.o \
+- $(B)/client/jcinit.o \
+- $(B)/client/jccoefct.o \
+- $(B)/client/jccolor.o \
+- $(B)/client/jfdctflt.o \
+- $(B)/client/jcdctmgr.o \
+- $(B)/client/jcphuff.o \
+- $(B)/client/jcmainct.o \
+- $(B)/client/jcmarker.o \
+- $(B)/client/jcmaster.o \
+- $(B)/client/jcomapi.o \
+- $(B)/client/jcparam.o \
+- $(B)/client/jcprepct.o \
+- $(B)/client/jcsample.o \
+- $(B)/client/jdapimin.o \
+- $(B)/client/jdapistd.o \
+ $(B)/client/jdatasrc.o \
+- $(B)/client/jdcoefct.o \
+- $(B)/client/jdcolor.o \
+- $(B)/client/jddctmgr.o \
+- $(B)/client/jdhuff.o \
+- $(B)/client/jdinput.o \
+- $(B)/client/jdmainct.o \
+- $(B)/client/jdmarker.o \
+- $(B)/client/jdmaster.o \
+- $(B)/client/jdpostct.o \
+- $(B)/client/jdsample.o \
+- $(B)/client/jdtrans.o \
+- $(B)/client/jerror.o \
+- $(B)/client/jidctflt.o \
+- $(B)/client/jmemmgr.o \
+- $(B)/client/jmemnobs.o \
+- $(B)/client/jutils.o \
+ \
+ $(B)/client/tr_animation.o \
+ $(B)/client/tr_backend.o \
+--- openarena-engine-0.8.1/code/qcommon/unzip.h.old 2010-03-06 21:59:46.000000000 +0100
++++ openarena-engine-0.8.1/code/qcommon/unzip.h 2010-03-06 22:00:58.000000000 +0100
+@@ -19,6 +19,8 @@
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ ===========================================================================
+ */
++#include <zconf.h>
++#include <zlib.h>
+
+ #if defined(STRICTUNZIP) || defined(STRICTZIPUNZIP)
+ /* like the STRICT of WIN32, we define a pointer that cannot be converted
+@@ -80,6 +82,7 @@
+ typedef void* (*alloc_func) (void* opaque, unsigned int items, unsigned int size);
+ typedef void (*free_func) (void* opaque, void* address);
+
++#if 0
+ struct internal_state;
+
+ typedef struct z_stream_s {
+@@ -105,6 +108,7 @@
+
+ typedef z_stream *z_streamp;
+
++#endif
+
+ /* file_in_zip_read_info_s contain internal information about a file in zipfile,
+ when reading and decompress it */
+--- openarena-engine-0.8.1/code/qcommon/unzip.c.old 2010-03-06 22:01:40.000000000 +0100
++++ openarena-engine-0.8.1/code/qcommon/unzip.c 2010-03-06 22:03:35.000000000 +0100
+@@ -49,7 +49,7 @@
+ ftp://ftp.cdrom.com/pub/infozip/doc/appnote-970311-iz.zip
+ PkWare has also a specification at :
+ ftp://ftp.pkware.com/probdesc.zip */
+-
++#if 0
+ /* zlib.h -- interface of the 'zlib' general purpose compression library
+ version 1.1.3, July 9th, 1998
+
+@@ -955,6 +955,7 @@
+ // static const char * zError OF((int err));
+ // static int inflateSyncPoint OF((z_streamp z));
+ // static const uLong * get_crc_table OF((void));
++#endif
+
+ typedef unsigned char uch;
+ typedef unsigned short ush;
+@@ -2248,6 +2249,8 @@
+ return (int)uReadThis;
+ }
+
++#if 0
++
+ /* infblock.h -- header to use infblock.c
+ * Copyright (C) 1995-1998 Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+@@ -4295,3 +4298,4 @@
+ }
+
+
++#endif
+--- openarena-engine-0.8.1/code/jpeg-6/jdatasrc.c.old 2010-03-10 09:13:25.000000000 +0100
++++ openarena-engine-0.8.1/code/jpeg-6/jdatasrc.c 2010-03-10 09:23:39.000000000 +0100
+@@ -16,9 +16,15 @@
+
+
+ /* this is not a core library module, so it doesn't define JPEG_INTERNALS */
+-#include "jinclude.h"
+-#include "jpeglib.h"
+-#include "jerror.h"
++#include <stdio.h>
++#include <string.h>
++#include <jpeglib.h>
++#include <jerror.h>
++#undef METHODDEF
++#define METHODDEF static
++#undef GLOBAL
++#define GLOBAL
++#define SIZEOF(object) ((size_t) sizeof(object))
+
+ #ifndef MIN
+ #define MIN(a, b) ((a)<(b)?(a):(b))
+@@ -189,7 +195,7 @@
+ */
+
+ GLOBAL void
+-jpeg_mem_src (j_decompress_ptr cinfo, unsigned char *inbuf, size_t size)
++jpeg_mem_src (j_decompress_ptr cinfo, unsigned char *inbuf, unsigned long size)
+ {
+ my_src_ptr src;
+
+--- openarena-engine-0.8.1/code/renderer/tr_image_jpg.c.old 2010-03-10 09:30:30.000000000 +0100
++++ openarena-engine-0.8.1/code/renderer/tr_image_jpg.c 2010-03-10 10:17:42.000000000 +0100
+@@ -31,7 +31,7 @@
+ */
+
+ #define JPEG_INTERNALS
+-#include "../jpeg-6/jpeglib.h"
++#include <jpeglib.h>
+
+ void R_LoadJPG( const char *filename, unsigned char **pic, int *width, int *height ) {
+ /* This struct contains the JPEG decompression parameters and pointers to
+@@ -128,7 +128,10 @@
+ }
+
+ memcount = pixelcount * 4;
+- row_stride = cinfo.output_width * cinfo.output_components;
++ if (3 == cinfo.output_components)
++ row_stride = cinfo.output_width * 4;
++ else
++ row_stride = cinfo.output_width * cinfo.output_components;
+
+ out = ri.Malloc(memcount);
+
+@@ -141,14 +144,26 @@
+ /* Here we use the library's state variable cinfo.output_scanline as the
+ * loop counter, so that we don't have to keep track ourselves.
+ */
++ buf = out;
+ while (cinfo.output_scanline < cinfo.output_height) {
+ /* jpeg_read_scanlines expects an array of pointers to scanlines.
+ * Here the array is only one element long, but you could ask for
+ * more than one scanline at a time if that's more convenient.
+ */
+- buf = ((out+(row_stride*cinfo.output_scanline)));
+ buffer = &buf;
+ (void) jpeg_read_scanlines(&cinfo, buffer, 1);
++ if (3 == cinfo.output_components) {
++ /* turn RGB into RGBA */
++ int ioffset = cinfo.output_width * 3 - 1;
++ int ooffset = cinfo.output_width * 4 - 1;
++ do {
++ buf[ooffset--] = 255;
++ buf[ooffset--] = buf[ioffset--];
++ buf[ooffset--] = buf[ioffset--];
++ buf[ooffset--] = buf[ioffset--];
++ } while (ioffset > 0);
++ }
++ buf += row_stride;
+ }
+
+ buf = out;
+@@ -173,7 +188,7 @@
+ buf[--dindex] = greyshade;
+ } while(sindex);
+ }
+- else
++ else if (4 == cinfo.output_components)
+ {
+ // clear all the alphas to 255
+ int i;
diff --git a/games-fps/openarena/openarena-0.8.5.ebuild b/games-fps/openarena/openarena-0.8.5.ebuild
new file mode 100644
index 000000000000..137cdb3cf275
--- /dev/null
+++ b/games-fps/openarena/openarena-0.8.5.ebuild
@@ -0,0 +1,89 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/games-fps/openarena/openarena-0.8.5.ebuild,v 1.1 2010/09/09 07:14:12 mr_bones_ Exp $
+
+EAPI=2
+inherit eutils flag-o-matic versionator games
+
+MY_PV=$(delete_all_version_separators)
+BASE_PV="0.8.1"
+OLD_PV=$(delete_all_version_separators $BASE_PV)
+
+DESCRIPTION="Open-source replacement for Quake 3 Arena"
+HOMEPAGE="http://openarena.ws/"
+SRC_URI="http://download.tuxfamily.org/openarena/rel/${OLD_PV}/oa${OLD_PV}.zip
+ http://download.tuxfamily.org/openarena/rel/${MY_PV}/oa${MY_PV}p.zip
+ http://openarena.ws/svn/source/${OLD_PV}/${PN}-engine-${BASE_PV}-1.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+curl +openal +vorbis"
+
+RDEPEND="virtual/opengl
+ media-libs/libsdl[joystick,opengl,video]
+ media-libs/speex
+ media-libs/jpeg
+ x11-libs/libXext
+ x11-libs/libX11
+ x11-libs/libXau
+ x11-libs/libXdmcp
+ curl? ( net-misc/curl )
+ openal? ( media-libs/openal )
+ vorbis? ( media-libs/libvorbis )"
+DEPEND="${RDEPEND}
+ app-arch/unzip"
+
+MY_S=${WORKDIR}/${PN}-engine-${BASE_PV}
+S=${WORKDIR}/${PN}-${BASE_PV}
+BUILD_DIR=${PN}-build
+DIR=${GAMES_DATADIR}/${PN}
+
+src_prepare() {
+ cd "${WORKDIR}"
+ epatch "${FILESDIR}"/${P}-makefile.patch \
+ "${FILESDIR}"/${P}-unbundling.patch
+ sed -i \
+ -e '/ALDRIVER_DEFAULT/s/libopenal.so.0/libopenal.so/' \
+ "${MY_S}"/code/client/snd_openal.c \
+ || die "sed failed"
+ cd "${MY_S}"
+ epatch "${FILESDIR}"/${P}-bots-strcpy-fix.patch
+ touch jpegint.h
+}
+
+src_compile() {
+ local myopts
+
+ # enable voip, disable mumble
+ # also build always server and use smp by default
+ myopts="USE_INTERNAL_SPEEX=0 USE_VOIP=1 USE_MUMBLE=0
+ BUILD_SERVER=1 BUILD_CLIENT_SMP=1 USE_LOCAL_HEADERS=0"
+ use curl || myopts="${myopts} USE_CURL=0"
+ use openal || myopts="${myopts} USE_OPENAL=0"
+ use vorbis || myopts="${myopts} USE_CODEC_VORBIS=0"
+
+ cd "${MY_S}"
+ emake \
+ V=1 \
+ DEFAULT_BASEDIR="${DIR}" \
+ BR="${BUILD_DIR}" \
+ ${myopts} \
+ || die "emake failed"
+}
+
+src_install() {
+ cd "${MY_S}"/"${BUILD_DIR}"
+ newgamesbin openarena-smp.* "${PN}" || die "binary install failed"
+ newgamesbin oa_ded.* "${PN}-ded" || die "dedicated binary not found"
+ cd "${S}"
+
+ insinto "${DIR}"
+ doins -r baseoa missionpack || die "doins -r failed"
+
+ dodoc CHANGES CREDITS LINUXNOTES README
+ newicon "${MY_S}"/misc/quake3.png ${PN}.png
+ make_desktop_entry ${PN} "OpenArena"
+
+ prepgamesdirs
+}