[quake3] Update to 1.36 svn snapshot r2102 This fixes 2 security issues where a malicious server could execut

Hans de Goede jwrdegoede at fedoraproject.org
Thu Jul 28 13:50:05 UTC 2011


commit 326117cfd6b303c2bdc22c58dff5e8c802eb4ea2
Author: Hans de Goede <hdegoede at redhat.com>
Date:   Thu Jul 28 15:51:39 2011 +0200

    Update to 1.36 svn snapshot r2102
    This fixes 2 security issues where a malicious server could execute arbitrary
    code on connecting clients (rhbz#725951):
    CVE-2011-1412: Execute arbitrary shell commands on connecting clients
    CVE-2011-2764: Arbitrary code execution when native-code DLLs are enabled
    Update the autodownload + launch script for UrbanTerror to 4.1.1

 .gitignore                                         |    1 +
 ...0-don-t-require-BASEGAME-pak0.pk3-if-fs_b.patch |   35 ---
 ...seAccelOffset-at-0.001-to-avoid-division-.patch |   49 ----
 ...eRead-allow-loading-any-demo-not-just-the.patch |   56 -----
 ...col-cvar-to-be-changed-on-the-command-lin.patch |  119 ----------
 ...using-the-protocol-version-from-the-comma.patch |   71 ------
 ...al-vmMagic-that-causes-equivalent-native-.patch |   68 ------
 ...new-function-to-go-through-the-search-pat.patch |   64 ------
 0010-Sys_LoadDll-use-FS_FindDll.patch              |   87 -------
 0013-Double-the-default-com_hunkMegs-to-128M.patch |   27 ---
 quake3-1.34-fix-empty-fs_game-from-server.patch    |   15 --
 quake3-1.34-rc4-demo-pak.patch                     |   31 +--
 quake3-1.36-syslibs.patch                          |  238 ++------------------
 quake3.spec                                        |  105 ++++------
 sources                                            |    2 +-
 urbanterror.autodlrc                               |   11 +-
 urbanterror.sh                                     |   33 ++--
 worldofpadman.sh                                   |   16 +-
 18 files changed, 101 insertions(+), 927 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 215b7e6..ea22e42 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
 quake3-1.36.tar.bz2
 /quake3-1.36-svn1802.tar.bz2
+/quake3-1.36-svn2102.tar.bz2
diff --git a/quake3-1.34-rc4-demo-pak.patch b/quake3-1.34-rc4-demo-pak.patch
index ef88e79..00cdba4 100644
--- a/quake3-1.34-rc4-demo-pak.patch
+++ b/quake3-1.34-rc4-demo-pak.patch
@@ -1,25 +1,18 @@
---- quake3-1.36/code/qcommon/files.c.orig	2009-04-27 09:43:28.000000000 +0200
-+++ quake3-1.36/code/qcommon/files.c	2009-04-27 09:44:48.000000000 +0200
-@@ -2874,20 +2874,17 @@ static void FS_CheckPak0( void )
- 		if(!path->pack)
- 			continue;
+diff -up quake3-1.36/code/qcommon/files.c~ quake3-1.36/code/qcommon/files.c
+--- quake3-1.36/code/qcommon/files.c~	2011-07-28 10:55:29.000000000 +0200
++++ quake3-1.36/code/qcommon/files.c	2011-07-28 14:10:08.294992989 +0200
+@@ -3268,11 +3268,10 @@ static void FS_CheckPak0( void )
+ 		
+ 		curpack = path->pack;
  
--		if(!Q_stricmpn( path->pack->pakGamename, "demoq3", MAX_OSPATH )
+-		if(!Q_stricmpn( curpack->pakGamename, "demoq3", MAX_OSPATH )
 -		   && !Q_stricmpn( pakBasename, "pak0", MAX_OSPATH ))
 +		if(!Q_stricmpn( pakBasename, "pak0", MAX_OSPATH ) &&
-+		   path->pack->checksum == DEMO_PAK0_CHECKSUM )
++		   curpack->checksum == DEMO_PAK0_CHECKSUM)
  		{
- 			founddemo = qtrue;
- 
--			if( path->pack->checksum == DEMO_PAK0_CHECKSUM )
--			{
- 				Com_Printf( "\n\n"
- 						"**************************************************\n"
- 						"WARNING: It looks like you're using pak0.pk3\n"
- 						"from the demo. This may work fine, but it is not\n"
- 						"guaranteed or supported.\n"
- 						"**************************************************\n\n\n" );
--			}
+-			if(curpack->checksum == DEMO_PAK0_CHECKSUM)
+-				founddemo = qtrue;
++			founddemo = qtrue;
  		}
  
- 		else if(!Q_stricmpn( path->pack->pakGamename, BASEGAME, MAX_OSPATH )
+ 		else if(!Q_stricmpn( curpack->pakGamename, BASEGAME, MAX_OSPATH )
diff --git a/quake3-1.36-syslibs.patch b/quake3-1.36-syslibs.patch
index 31e1fad..7604150 100644
--- a/quake3-1.36-syslibs.patch
+++ b/quake3-1.36-syslibs.patch
@@ -1,223 +1,17 @@
-diff -up quake3-1.36/code/jpeg-6b/jmemnobs.c.syslibs quake3-1.36/code/jpeg-6b/jmemnobs.c
---- quake3-1.36/code/jpeg-6b/jmemnobs.c.syslibs	2010-05-12 20:55:03.000000000 +0200
-+++ quake3-1.36/code/jpeg-6b/jmemnobs.c	2010-05-13 13:11:58.000000000 +0200
-@@ -17,11 +17,26 @@
- 
- #include "../renderer/tr_local.h"
- 
-+#ifdef USE_SYSTEM_JPEG
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <jpeglib.h>
-+
-+#undef GLOBAL
-+#define GLOBAL(x) x
-+#define FAR
-+
-+typedef void * backing_store_ptr;
-+
-+#else
-+
- #define JPEG_INTERNALS
- #include "jinclude.h"
- #include "jpeglib.h"
- #include "jmemsys.h"		/* import the system-dependent declarations */
- 
-+#endif
-+
- /*
-  * Memory allocation and freeing are controlled by the regular library
-  * routines ri.Malloc() and ri.Free().
-@@ -83,7 +98,13 @@ GLOBAL(void)
- jpeg_open_backing_store (j_common_ptr cinfo, backing_store_ptr info,
- 			 long total_bytes_needed)
+diff -up quake3-1.36/code/renderer/tr_image_jpg.c~ quake3-1.36/code/renderer/tr_image_jpg.c
+--- quake3-1.36/code/renderer/tr_image_jpg.c~	2011-07-28 10:55:28.000000000 +0200
++++ quake3-1.36/code/renderer/tr_image_jpg.c	2011-07-28 11:10:16.575647654 +0200
+@@ -35,12 +35,7 @@ Foundation, Inc., 51 Franklin St, Fifth 
+ #endif
+ 
+ #include <jpeglib.h>
+-
+-#ifndef USE_INTERNAL_JPEG
+-#  if JPEG_LIB_VERSION < 80
+-#    error Need system libjpeg >= 80
+-#  endif
+-#endif
++#include "jpeg_memsrc.c"
+ 
+ static void R_JPGErrorExit(j_common_ptr cinfo)
  {
-+#ifdef USE_SYSTEM_JPEG
-+  fprintf(stderr,
-+    "jmemnobs.c: jpeg_open_backing_store() call, this should never happen!\n");
-+  exit(1);
-+#else
-   ERREXIT(cinfo, JERR_NO_BACKING_STORE);
-+#endif
- }
- 
- 
-diff -up quake3-1.36/code/renderer/tr_image_jpg.c.syslibs quake3-1.36/code/renderer/tr_image_jpg.c
---- quake3-1.36/code/renderer/tr_image_jpg.c.syslibs	2010-05-12 20:55:06.000000000 +0200
-+++ quake3-1.36/code/renderer/tr_image_jpg.c	2010-05-13 14:02:09.000000000 +0200
-@@ -30,8 +30,13 @@ Foundation, Inc., 51 Franklin St, Fifth 
-  * You may also wish to include "jerror.h".
-  */
- 
-+#ifdef USE_SYSTEM_JPEG
-+#include <jpeglib.h>
-+#include "jpeg_memsrc.h"
-+#else
- #define JPEG_INTERNALS
- #include "../jpeg-6b/jpeglib.h"
-+#endif
- 
- void R_LoadJPG( const char *filename, unsigned char **pic, int *width, int *height ) {
-   /* This struct contains the JPEG decompression parameters and pointers to
-@@ -62,6 +67,10 @@ void R_LoadJPG( const char *filename, un
- 		void *v;
- 	} fbuffer;
-   byte  *buf;
-+#ifdef USE_SYSTEM_JPEG
-+   int i,j;
-+   byte *inptr, *outptr;
-+#endif
- 
-   /* In this example we want to open the input file before doing anything else,
-    * so that the setjmp() error recovery below can assume the file is open.
-@@ -131,7 +140,7 @@ void R_LoadJPG( const char *filename, un
-   }
- 
-   memcount = pixelcount * 4;
--  row_stride = cinfo.output_width * cinfo.output_components;
-+  row_stride = cinfo.output_width * 4;
- 
-   out = ri.Malloc(memcount);
- 
-@@ -152,6 +161,21 @@ void R_LoadJPG( const char *filename, un
- 	buf = ((out+(row_stride*cinfo.output_scanline)));
- 	buffer = &buf;
-     (void) jpeg_read_scanlines(&cinfo, buffer, 1);
-+#ifdef USE_SYSTEM_JPEG
-+    /* we have RGB data, we need to expand this out to ARGB */
-+    inptr = buf + cinfo.output_width * 3 - 1;
-+    outptr = buf + row_stride - 1;
-+
-+    for (i = 0; i < cinfo.output_width; i++) {
-+      /* endian dependent? maybe for big endian this must be done after the
-+         color/pixel copy? */
-+      *outptr-- = 255;
-+      for (j = 0; j < 3; j++) {
-+        JOCTET color = *inptr--;
-+        *outptr-- = color;
-+      }
-+    }
-+#endif
-   }
-   
-   buf = out;
-diff -up quake3-1.36/Makefile.syslibs quake3-1.36/Makefile
---- quake3-1.36/Makefile.syslibs	2010-05-12 20:55:16.000000000 +0200
-+++ quake3-1.36/Makefile	2010-05-13 12:58:08.000000000 +0200
-@@ -107,6 +107,10 @@ ifndef GENERATE_DEPENDENCIES
- GENERATE_DEPENDENCIES=1
- endif
- 
-+ifndef USE_SYSTEM_JPEG
-+USE_SYSTEM_JPEG=1
-+endif
-+
- ifndef USE_OPENAL
- USE_OPENAL=1
- endif
-@@ -257,11 +261,14 @@ ifeq ($(PLATFORM),linux)
-   endif
-   endif
- 
--  BASE_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes \
--    -pipe -DUSE_ICON
-+  BASE_CFLAGS = -DUSE_ICON $(shell sdl-config --cflags)
-   CLIENT_CFLAGS = $(SDL_CFLAGS)
-   SERVER_CFLAGS =
- 
-+  ifeq ($(USE_SYSTEM_JPEG),1)
-+    BASE_CFLAGS += -DUSE_SYSTEM_JPEG=1 -ljpeg
-+  endif
-+
-   ifeq ($(USE_OPENAL),1)
-     CLIENT_CFLAGS += -DUSE_OPENAL
-     ifeq ($(USE_OPENAL_DLOPEN),1)
-@@ -1391,41 +1398,7 @@ Q3OBJ = \
-   $(B)/client/l_script.o \
-   $(B)/client/l_struct.o \
-   \
--  $(B)/client/jcapimin.o \
--  $(B)/client/jcapistd.o \
--  $(B)/client/jccoefct.o  \
--  $(B)/client/jccolor.o \
--  $(B)/client/jcdctmgr.o \
--  $(B)/client/jchuff.o   \
--  $(B)/client/jcinit.o \
--  $(B)/client/jcmainct.o \
--  $(B)/client/jcmarker.o \
--  $(B)/client/jcmaster.o \
--  $(B)/client/jcomapi.o \
--  $(B)/client/jcparam.o \
--  $(B)/client/jcphuff.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/jfdctflt.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 \
-@@ -1464,6 +1437,46 @@ Q3OBJ = \
-   $(B)/client/con_log.o \
-   $(B)/client/sys_main.o
- 
-+ifneq ($(USE_SYSTEM_JPEG),1)
-+  Q3OBJ += \
-+    $(B)/client/jcapimin.o \
-+    $(B)/client/jcapistd.o \
-+    $(B)/client/jccoefct.o  \
-+    $(B)/client/jccolor.o \
-+    $(B)/client/jcdctmgr.o \
-+    $(B)/client/jchuff.o   \
-+    $(B)/client/jcinit.o \
-+    $(B)/client/jcmainct.o \
-+    $(B)/client/jcmarker.o \
-+    $(B)/client/jcmaster.o \
-+    $(B)/client/jcomapi.o \
-+    $(B)/client/jcparam.o \
-+    $(B)/client/jcphuff.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/jfdctflt.o \
-+    $(B)/client/jidctflt.o \
-+    $(B)/client/jmemmgr.o \
-+    $(B)/client/jutils.o
-+else
-+  Q3OBJ += $(B)/client/jpeg_memsrc.o
-+endif
-+
- ifeq ($(ARCH),i386)
-   Q3OBJ += \
-     $(B)/client/snd_mixa.o \
diff --git a/quake3.spec b/quake3.spec
index a72c9fd..4f73ad8 100644
--- a/quake3.spec
+++ b/quake3.spec
@@ -1,6 +1,6 @@
 Name:           quake3
 Version:        1.36
-Release:        10.svn1802%{?dist}
+Release:        11.svn2102%{?dist}
 Summary:        Quake 3 Arena engine (ioquake3 version)
 Group:          Amusements/Games
 License:        GPLv2+
@@ -10,11 +10,10 @@ URL:            http://ioquake3.org/
 # svn co svn://svn.icculus.org/quake3/tags/%{version} %{name}-%{version}
 # pushd %{name}-%{version}
 # rm -fr `find -name .svn` code/AL code/SDL12 code/libcurl code/libs
-# mv code/jpeg-6b/jmemnobs.c .; rm code/jpeg-6b/*; mv jmemnobs.c code/jpeg-6b
-# rm -fr code/tools/lcc
+# rm -fr code/jpeg-8c code/zlib code/libspeex code/tools/lcc
 # popd
 # tar cvfj %{name}-%{version}.tar.bz2 %{name}-%{version}
-Source0:        %{name}-%{version}-svn1802.tar.bz2
+Source0:        %{name}-%{version}-svn2102.tar.bz2
 Source1:        %{name}-demo.sh
 Source2:        %{name}.autodlrc
 Source3:        %{name}.desktop
@@ -32,31 +31,10 @@ Source14:       wop.png
 Source15:       jpeg_memsrc.h
 Source16:       jpeg_memsrc.c
 Patch0:         quake3-1.36-syslibs.patch
-Patch1:         quake3-1.34-fix-empty-fs_game-from-server.patch
-Patch2:         quake3-1.34-rc4-demo-pak.patch
-# from debian don't complain about lacking original pak0 with total conversions
-# http://bugzilla.icculus.org/show_bug.cgi?id=4699
-Patch3:         0003-FS_CheckPak0-don-t-require-BASEGAME-pak0.pk3-if-fs_b.patch
-# bugfix from Debian submitted upstream:
-# http://bugzilla.icculus.org/show_bug.cgi?id=4691
-Patch4:         0004-Clip-cl_mouseAccelOffset-at-0.001-to-avoid-division-.patch
-# patches from Debian to allow reporting / accepting a different protocol
-# version, which allows the main ioquake3 to serve as a openarena
-# server / client (there are no protocol differences, yet openarena uses
-# a different protocol version to distuingish itself). Submitted upstream:
-# http://bugzilla.icculus.org/show_bug.cgi?id=4698
-Patch5:         0005-FS_FOpenFileRead-allow-loading-any-demo-not-just-the.patch
-Patch6:         0006-Allow-protocol-cvar-to-be-changed-on-the-command-lin.patch
-Patch7:         0007-Load-demos-using-the-protocol-version-from-the-comma.patch
-# patches from Debian to allow transparent support of native compiled qvm's
-Patch8:         0008-Add-a-special-vmMagic-that-causes-equivalent-native-.patch
-Patch9:         0009-FS_FindDll-new-function-to-go-through-the-search-pat.patch
-Patch10:        0010-Sys_LoadDll-use-FS_FindDll.patch
+Patch1:         quake3-1.34-rc4-demo-pak.patch
 # patches from Debian for openarena compatibility (increase some buffer sizes)
-Patch11:        0011-Double-the-maximum-number-of-cvars.patch
-Patch12:        0012-Increase-the-command-buffer-from-16K-to-128K-followi.patch 
-Patch13:        0013-Double-the-default-com_hunkMegs-to-128M.patch
-BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+Patch2:         0011-Double-the-maximum-number-of-cvars.patch
+Patch3:         0012-Increase-the-command-buffer-from-16K-to-128K-followi.patch
 BuildRequires:  SDL-devel libXt-devel openal-soft-devel libjpeg-devel
 BuildRequires:  speex-devel libvorbis-devel curl-devel desktop-file-utils
 %ifarch %{ix86} x86_64
@@ -159,17 +137,6 @@ Padman menu entry, which will automatically download the necessary datafiles
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
-%patch4 -p1
-%patch5 -p1
-%patch6 -p1
-%patch7 -p1
-%patch8 -p1
-%patch9 -p1
-%patch10 -p1
-%patch11 -p1
-%patch12 -p1
-%patch13 -p1
-
 # Add jpeg_memsrc
 cp -p %{SOURCE15} %{SOURCE16} ./code/renderer/
 
@@ -181,11 +148,11 @@ make %{?_smp_mflags} \
     OPTIMIZE="$RPM_OPT_FLAGS -fno-strict-aliasing" \
     DEFAULT_BASEDIR=%{_datadir}/%{name} USE_CODEC_VORBIS=1 \
     USE_LOCAL_HEADERS=0 BUILD_GAME_SO=0 GENERATE_DEPENDENCIES=0 \
-    USE_INTERNAL_SPEEX=0 BUILD_CLIENT_SMP=1 CROSS_COMPILING=1 
+    USE_INTERNAL_SPEEX=0 USE_INTERNAL_ZLIB=0 USE_INTERNAL_JPEG=0 \
+    BUILD_CLIENT_SMP=1 CROSS_COMPILING=1
 
 
 %install
-rm -rf $RPM_BUILD_ROOT
 mkdir -p $RPM_BUILD_ROOT%{_bindir}
 mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}
 
@@ -229,46 +196,44 @@ install -p -m 644 %{SOURCE14} \
   $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/32x32/apps
 
 
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-
 %post demo
-touch --no-create %{_datadir}/icons/hicolor || :
-if [ -x %{_bindir}/gtk-update-icon-cache ]; then
-   %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
-fi
+touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
 
 %postun demo
-touch --no-create %{_datadir}/icons/hicolor || :
-if [ -x %{_bindir}/gtk-update-icon-cache ]; then
-   %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
+if [ $1 -eq 0 ] ; then
+    touch --no-create %{_datadir}/icons/hicolor &>/dev/null
+    gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
 fi
 
+%posttrans demo
+gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
+
+
 %post -n urbanterror
-touch --no-create %{_datadir}/icons/hicolor || :
-if [ -x %{_bindir}/gtk-update-icon-cache ]; then
-   %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
-fi
+touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
 
 %postun -n urbanterror
-touch --no-create %{_datadir}/icons/hicolor || :
-if [ -x %{_bindir}/gtk-update-icon-cache ]; then
-   %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
+if [ $1 -eq 0 ] ; then
+    touch --no-create %{_datadir}/icons/hicolor &>/dev/null
+    gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
 fi
 
+%posttrans -n urbanterror
+gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
+
+
 %post -n worldofpadman
-touch --no-create %{_datadir}/icons/hicolor || :
-if [ -x %{_bindir}/gtk-update-icon-cache ]; then
-   %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
-fi
+touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
 
 %postun -n worldofpadman
-touch --no-create %{_datadir}/icons/hicolor || :
-if [ -x %{_bindir}/gtk-update-icon-cache ]; then
-   %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
+if [ $1 -eq 0 ] ; then
+    touch --no-create %{_datadir}/icons/hicolor &>/dev/null
+    gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
 fi
 
+%posttrans -n worldofpadman
+gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
+
 
 %files
 %defattr(-,root,root,-)
@@ -304,6 +269,14 @@ fi
 
 
 %changelog
+* Thu Jul 28 2011 Hans de Goede <hdegoede at redhat.com> - 1.36-11.svn2102
+- Update to 1.36 svn snapshot r2102
+- This fixes 2 security issues where a malicious server could execute arbitrary
+  code on connecting clients (rhbz#725951):
+  CVE-2011-1412: Execute arbitrary shell commands on connecting clients
+  CVE-2011-2764: Arbitrary code execution when native-code DLLs are enabled
+- Update the autodownload + launch script for UrbanTerror to 4.1.1
+
 * Tue Feb 08 2011 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.36-10.svn1802
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
 
diff --git a/sources b/sources
index 0e2d544..da1e300 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-83f1b46be26fc9c16c5b53f4f7a0a1b4  quake3-1.36-svn1802.tar.bz2
+2c47cf4501aa906a1f89c61fc87bd6ca  quake3-1.36-svn2102.tar.bz2
diff --git a/urbanterror.autodlrc b/urbanterror.autodlrc
index d93d96c..fe3bee2 100644
--- a/urbanterror.autodlrc
+++ b/urbanterror.autodlrc
@@ -16,13 +16,12 @@ For further information on legal use of programs derived from Quake 3 source cod
 
 [FILELIST]
 [FILE]
-	[FILENAME]UrbanTerror_41_FULL.zip[/FILENAME]
-	[MD5]1370306ea236f65f595e7ca70765e469[/MD5]
-	[PATH]$HOME/.q3a[/PATH]
+	[FILENAME]UrbanTerror411.zip[/FILENAME]
+	[MD5]722c1fea9936593c9ef039bb068cc33b[/MD5]
+	[PATH]$HOME/.q3ut4[/PATH]
 	[MIRRORS]
-		[URL]ftp://ftp.snt.utwente.nl/pub/games/urbanterror/UrbanTerror_41_FULL.zip[/URL]
-		[URL]http://dls.urt.voxel.net/q3ut4/UrbanTerror_41_FULL.zip[/URL]
-		[URL]http://vlaai.snt.utwente.nl/pub/games/urbanterror/UrbanTerror_41_FULL.zip[/URL]
+		[URL]ftp://ftp.snt.utwente.nl/pub/games/urbanterror/full_install/linux_or_mac/UrbanTerror411.zip[/URL]
+		[URL]http://www.iourt.com/files/UrbanTerror411.zip[/URL]
 	[/MIRRORS]
 [/FILE]
 [/FILELIST]
diff --git a/urbanterror.sh b/urbanterror.sh
index 3419a65..1ebfa03 100644
--- a/urbanterror.sh
+++ b/urbanterror.sh
@@ -6,19 +6,29 @@ set -e
 
 checkDriOK "Urban Terror"
 
-if [ ! -f ~/.q3a/q3ut4/zpak000.pk3 ]; then
+# urbanterror < 4.1.1 lived in ~/.q3a/q3ut4, with ~/.q3ut4/q3ut4 being a
+# symlink to it. For urbanterror 4.1.1 we directly use ~/.q3ut4/q3ut4
+if [ -L $HOME/.q3ut4/q3ut4 ]; then
+	rm $HOME/.q3ut4/q3ut4
+fi
+
+# Clean up old urbanterror if any, note we do this undepent of the symlink
+# existing as even older autodownloader installs ran directly from ~/.q3a/q3ut4
+rm -fr $HOME/.q3a/q3ut4
+
+if [ ! -f ~/.q3ut4/q3ut4/zpak000.pk3 ]; then
   set +e
   /usr/share/autodl/AutoDL.py /usr/share/quake3/urbanterror.autodlrc
   STATUS=$?
   set -e
   # status 2 means download was ok, but the user choice not to start the game
   if [ "$STATUS" = "0" -o "$STATUS" = "2" ]; then
-    pushd ~/.q3a > /dev/null
-    unzip -qq -u UrbanTerror_41_FULL.zip
+    pushd ~/.q3ut4 > /dev/null
+    unzip -qq -u UrbanTerror411.zip
     # remove any old versions (if present) otherwise the mv fails
     rm -fr q3ut4
     mv UrbanTerror/q3ut4 .
-    rm -r UrbanTerror UrbanTerror_41_FULL.zip
+    rm -r UrbanTerror UrbanTerror411.zip
     popd > /dev/null
   fi
   if [ "$STATUS" != "0" ]; then
@@ -26,18 +36,11 @@ if [ ! -f ~/.q3a/q3ut4/zpak000.pk3 ]; then
   fi
 fi
 
-# We used to run from under ~/.q3a, but that is a bad idea as that will
-# cause com_standalone to get unset if regular quake3 is also present
-# So now we run from ~/.q3ut4, but we keep the data files under
-# ~/.q3a for compatibilities with older autodl "installs"
-mkdir -p $HOME/.q3ut4
-ln -f -s ../.q3a/q3ut4 $HOME/.q3ut4/q3ut4
-
-# we're a standalone game
-CVARS="+set com_standalone 1"
-CVARS="$CVARS +set fs_basegame q3ut4"
+# We run from ~/.q3ut4, using ~/.q3a is a bad idea as that will
+# cause com_standalone to not get set if regular quake3 is also present
+CVARS="+set com_basegame q3ut4"
+CVARS="$CVARS +set com_homepath .q3ut4"
 CVARS="$CVARS +set fs_basepath /usr/share/q3ut4"
-CVARS="$CVARS +set fs_homepath \"$HOME/.q3ut4\""
 # Urban Terror's default master server is different
 CVARS="$CVARS +set sv_master1 master.urbanterror.net"
 # update.quake3arena.com is pretty irrelevant if you're playing ut
diff --git a/worldofpadman.sh b/worldofpadman.sh
index 0750724..3d01a9f 100644
--- a/worldofpadman.sh
+++ b/worldofpadman.sh
@@ -2,6 +2,10 @@
 
 set -e
 
+. /usr/share/opengl-games-utils/opengl-game-functions.sh
+
+checkDriOK "World of Padman"
+
 # For wop < 1.5 lived in ~/.q3a/wop, with ~/.wop/wop being a symlink to it
 # For wop 1.5 we directly use ~/.wop/wop
 if [ -L $HOME/.wop/wop ]; then
@@ -31,18 +35,16 @@ if [ ! -f $HOME/.wop/wop/wop_001.pk3 ]; then
 fi
 
 # We run from ~/.wop, using ~/.q3a is a bad idea as that will
-# cause com_standalone to get unset if regular quake3 is also present
-
-# we're a standalone game
-CVARS="+set com_standalone 1"
-CVARS="$CVARS +set fs_basegame wop"
+# cause com_standalone to not get set if regular quake3 is also present
+CVARS="+set com_basegame wop"
+CVARS="$CVARS +set com_homepath .wop"
 CVARS="$CVARS +set fs_basepath /usr/share/wop"
-CVARS="$CVARS +set fs_homepath \"$HOME/.wop\""
 # World of Padman's default master server is different
 CVARS="$CVARS +set sv_master1 master.worldofpadman.com:27955"
 # WoP 1.5 has bumped the protocol version to allow using 1 master server
 # for 1.2 and 1.5
-CVARS="$CVARS +set protocol 69"
+CVARS="$CVARS +set com_protocol 69"
+CVARS="$CVARS +set com_legacyprotocol 69"
 # update.quake3arena.com is pretty irrelevant if you're playing wop
 CVARS="$CVARS +set cl_motd 0"
 


More information about the scm-commits mailing list