[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