summaryrefslogtreecommitdiff
path: root/community/scorched3d
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2013-07-19 01:10:32 -0700
committerroot <root@rshg054.dnsready.net>2013-07-19 01:10:32 -0700
commit8fbc0076a4827ddc6af92e0b9daa4c4c31450808 (patch)
tree03fd0e2921ebd53228d9a93e32ed3976b636cbea /community/scorched3d
parente445a313723389ba9ee1fded025c567dae5b21ea (diff)
Fri Jul 19 01:09:18 PDT 2013
Diffstat (limited to 'community/scorched3d')
-rw-r--r--community/scorched3d/PKGBUILD62
-rw-r--r--community/scorched3d/libpng14.patch38
-rw-r--r--community/scorched3d/scorched3d-42.1-fixups.patch58
-rw-r--r--community/scorched3d/scorched3d-42.1-gcc43.patch24
-rw-r--r--community/scorched3d/scorched3d-libpng1.5.patch74
-rw-r--r--community/scorched3d/scorched3d.install11
6 files changed, 267 insertions, 0 deletions
diff --git a/community/scorched3d/PKGBUILD b/community/scorched3d/PKGBUILD
new file mode 100644
index 000000000..61bf7cb63
--- /dev/null
+++ b/community/scorched3d/PKGBUILD
@@ -0,0 +1,62 @@
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Seppo Porspakka <sporspak@paju.oulu.fi>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=scorched3d
+pkgver=43.3.d
+_pkgver=43.3d
+pkgrel=5
+pkgdesc="3D artillery combat game"
+arch=('i686' 'x86_64')
+url="http://www.scorched3d.co.uk/"
+license=('GPL')
+depends=('sdl_net' 'wxgtk' 'freealut>=1.0.0-3' 'libvorbis' 'glu' 'fftw' 'libjpeg>=8' 'xdg-utils')
+makedepends=('gendesk' 'mesa')
+install=scorched3d.install
+source=("http://downloads.sourceforge.net/${pkgname}/Scorched3D-${_pkgver}-src.tar.gz"
+ 'scorched3d.png::http://cdn.portableapps.com/Scorched3DPortable_128.png'
+ 'scorched3d-42.1-gcc43.patch'
+ 'scorched3d-42.1-fixups.patch'
+ 'scorched3d-libpng1.5.patch'
+ 'libpng14.patch')
+md5sums=('9c3043282a9e7451468ff325bef3b04c'
+ '0f7e570f586c227873e909ebbc17c84d'
+ '053769f77a38c252eef1d967b18e93e6'
+ 'dfde556559d95bca07c4a390c60790b4'
+ 'ec6958191751b5a2c44aa15abfc75269'
+ 'c8c03855fd3693122fd39427fa3638c1')
+
+build() {
+ cd "$srcdir/scorched"
+
+# patch -Np1 -i ${srcdir}/scorched3d-42.1-gcc43.patch
+# patch -Np1 -i ${srcdir}/scorched3d-42.1-fixups.patch
+ patch -Np1 -i ${srcdir}/scorched3d-libpng1.5.patch
+# patch -Np0 -i ${srcdir}/libpng14.patch
+
+ WANT_WXGTK=gtk2
+ sh autogen.sh \
+ --prefix=/usr \
+ --datadir=/usr/share/scorched3d \
+ --disable-openaltest \
+ --with-wx-config=wx-config
+
+ sed -i '1 i #include <unistd.h>' src/client/client/SecureID.cpp
+ #sed -i 's/-lz/-lz -lalut/g' src/scorched/Makefile || return 1
+ #sed -i 's|/usr/local/lib/libwx_gtk-2.4.a||' src/scorched/Makefile || return 1
+
+ make
+}
+
+package() {
+ cd "$srcdir"
+ gendesk
+
+ cd scorched
+ make DESTDIR=${pkgdir} install
+ cd ..
+
+ install -D -m644 scorched3d.png "$pkgdir/usr/share/icons/hicolor/48x48/apps/$pkgname.png"
+ install -D -m644 scorched3d.png "$pkgdir/usr/share/pixmaps/$pkgname.png"
+ install -D -m644 scorched3d.desktop "$pkgdir/usr/share/applications/$pkgname.desktop"
+}
diff --git a/community/scorched3d/libpng14.patch b/community/scorched3d/libpng14.patch
new file mode 100644
index 000000000..7a5a9434c
--- /dev/null
+++ b/community/scorched3d/libpng14.patch
@@ -0,0 +1,38 @@
+--- src/common/image/ImagePng.cpp 2009-02-23 04:14:20.000000000 +0100
++++ src/common/image/ImagePng.cpp_patched 2010-01-24 22:01:04.000000000 +0100
+@@ -189,7 +189,7 @@
+ info_ptr = png_create_info_struct(png_ptr);
+ if (info_ptr == NULL)
+ {
+- png_destroy_read_struct(&png_ptr, png_infopp_NULL, png_infopp_NULL);
++ png_destroy_read_struct(&png_ptr, NULL, NULL);
+ return false;
+ }
+
+@@ -200,7 +200,7 @@
+ if (setjmp(png_jmpbuf(png_ptr)))
+ {
+ /* Free all of the memory associated with the png_ptr and info_ptr */
+- png_destroy_read_struct(&png_ptr, &info_ptr, png_infopp_NULL);
++ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+ /* If we get here, we had a problem reading the file */
+ return false;
+ }
+@@ -258,7 +258,7 @@
+ }
+ else
+ {
+- png_destroy_read_struct(&png_ptr, &info_ptr, png_infopp_NULL);
++ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+
+ Logger::log(S3D::formatStringBuffer(
+ "Invalid PNG format.\n"
+@@ -272,7 +272,7 @@
+ // END NEW CODE
+
+ /* clean up after the read, and free any memory allocated - REQUIRED */
+- png_destroy_read_struct(&png_ptr, &info_ptr, png_infopp_NULL);
++ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+
+ /* that's it */
+ return true;
diff --git a/community/scorched3d/scorched3d-42.1-fixups.patch b/community/scorched3d/scorched3d-42.1-fixups.patch
new file mode 100644
index 000000000..36a027cb6
--- /dev/null
+++ b/community/scorched3d/scorched3d-42.1-fixups.patch
@@ -0,0 +1,58 @@
+diff -ru scorched.orig/configure-al.m4 scorched/configure-al.m4
+--- scorched.orig/configure-al.m4 2008-03-03 16:17:18.000000000 -0500
++++ scorched/configure-al.m4 2009-02-15 20:43:35.000000000 -0500
+@@ -7,25 +7,9 @@
+ [ --disable-openaltest Do not try to compile and run a test OpenAL program],
+ , enable_openaltest=yes)
+ AC_MSG_CHECKING(for OpenAL support)
+-AC_PATH_PROG(OPENAL_CONFIG, openal-config, no)
+-if test x$OPENAL_CONFIG = xno; then
+- echo "*** The openal-config script installed by OpenAL could not be found"
+- echo "*** Make sure openal-config is in your path, or set the OPENAL_CONFIG"
+- echo "*** environment variable to the full path to openal-config."
+-
+- AC_MSG_ERROR([*** Can't find the openal library. Try: http://www.openal.org/])
+-else
+-
+- if test x"$use_static_openal" = x"yes"; then
+- AL_LIBS="/usr/local/lib/libopenal.a"
+- else
+- AL_LIBS="`$OPENAL_CONFIG --libs`"
+- fi
+-
+- AL_CFLAGS="`$OPENAL_CONFIG --cflags`"
+-
+- AC_MSG_RESULT(yes)
+-fi
++AL_LIBS="-lopenal"
++AL_CFLAGS="-I/usr/include/AL"
++AC_MSG_RESULT(yes)
+
+ AC_MSG_CHECKING(for Freealut support)
+ AC_PATH_PROG(FREEALUT_CONFIG, freealut-config, no)
+diff -ru scorched.orig/configure.ac scorched/configure.ac
+--- scorched.orig/configure.ac 2008-03-03 16:17:18.000000000 -0500
++++ scorched/configure.ac 2009-02-15 20:40:30.000000000 -0500
+@@ -13,22 +13,6 @@
+ AC_PROG_INSTALL
+ AC_PROG_RANLIB
+
+-LDFLAGS="-L/usr/X11R6/lib -L/usr/X11R6"
+-CPPFLAGS="-I/usr/X11R6/include -I/usr/X11R6"
+-
+-if test `uname` == Darwin; then
+-LDFLAGS="$LDFLAGS -lmx"
+-CPPFLAGS="$CPPFLAGS -DFFTW_USE_DOUBLE -D__DARWIN__ -D__MACOSX__"
+-else
+-LDFLAGS="$LDFLAGS -L/usr/local/lib"
+-CPPFLAGS="$CPPFLAGS -I/usr/local/include"
+-fi
+-
+-AC_CHECK_LIB(fridge, beer, echo "Hmm?!",[
+- echo "Warning: No beer found in fridge!";
+- echo "We highly suggest that you rectify this situation immediately."
+-])
+-
+ AC_ARG_ENABLE(serveronly,
+ [ --enable-serveronly Enable server only compilation],
+ , enable_serveronly=no,
diff --git a/community/scorched3d/scorched3d-42.1-gcc43.patch b/community/scorched3d/scorched3d-42.1-gcc43.patch
new file mode 100644
index 000000000..b235f07c5
--- /dev/null
+++ b/community/scorched3d/scorched3d-42.1-gcc43.patch
@@ -0,0 +1,24 @@
+diff -ur scorched.old/src/common/common/main.h scorched/src/common/common/main.h
+--- scorched.old/src/common/common/main.h 2009-02-18 20:06:22.000000000 +0200
++++ scorched/src/common/common/main.h 2009-02-18 20:07:18.000000000 +0200
+@@ -40,7 +40,7 @@
+ void _no_storage()
+ {
+ printf("Failed to allocate memory!!");
+- std::exit(1);
++ exit(1);
+ }
+
+ void run_main(int argc, char *argv[], OptionsParameters &params)
+diff -ur scorched.old/src/common/porting/windows.h scorched/src/common/porting/windows.h
+--- scorched.old/src/common/porting/windows.h 2009-02-18 20:06:22.000000000 +0200
++++ scorched/src/common/porting/windows.h 2009-02-18 20:06:46.000000000 +0200
+@@ -20,7 +20,7 @@
+ typedef unsigned short WORD;
+ typedef unsigned char BYTE;
+
+-typedef int HWND;
++// typedef int HWND;
+ typedef void * HINSTANCE;
+ typedef int WPARAM;
+ typedef int LPARAM;
diff --git a/community/scorched3d/scorched3d-libpng1.5.patch b/community/scorched3d/scorched3d-libpng1.5.patch
new file mode 100644
index 000000000..4e8f003b8
--- /dev/null
+++ b/community/scorched3d/scorched3d-libpng1.5.patch
@@ -0,0 +1,74 @@
+--- ./src/common/image/ImagePngFactory.cpp.old 2011-09-12 12:34:30.114461019 +0200
++++ ./src/common/image/ImagePngFactory.cpp 2011-09-12 12:39:28.566425593 +0200
+@@ -104,7 +104,7 @@
+
+ static void user_png_error(png_structp png_ptr, png_const_charp msg)
+ {
+- longjmp(png_ptr->jmpbuf,1);
++ longjmp(png_jmpbuf(png_ptr),1);
+ }
+
+ static void user_png_warning(png_structp png_ptr, png_const_charp msg)
+--- ./src/client/client/LoadPNG.cpp.old 2011-09-12 12:45:49.167380419 +0200
++++ ./src/client/client/LoadPNG.cpp 2011-09-12 14:11:14.961772024 +0200
+@@ -28,6 +28,8 @@
+ int row, i;
+ volatile int ckey = -1;
+ png_color_16 *transv;
++ png_colorp png_palette;
++ int num_palette;
+
+ if ( !src ) {
+ /* The error message has been set in SDL_RWFromFile */
+@@ -58,7 +60,7 @@
+ * the normal method of doing things with libpng). REQUIRED unless you
+ * set up your own error handlers in png_create_read_struct() earlier.
+ */
+- if ( setjmp(png_ptr->jmpbuf) ) {
++ if ( setjmp(png_jmpbuf(png_ptr)) ) {
+ error = "Error reading the PNG file.";
+ goto done;
+ }
+@@ -127,9 +129,9 @@
+ Rmask = 0x000000FF;
+ Gmask = 0x0000FF00;
+ Bmask = 0x00FF0000;
+- Amask = (info_ptr->channels == 4) ? 0xFF000000 : 0;
++ Amask = (png_get_channels(png_ptr, info_ptr) == 4) ? 0xFF000000 : 0;
+ } else {
+- int s = (info_ptr->channels == 4) ? 0 : 8;
++ int s = (png_get_channels(png_ptr, info_ptr) == 4) ? 0 : 8;
+ Rmask = 0xFF000000 >> s;
+ Gmask = 0x00FF0000 >> s;
+ Bmask = 0x0000FF00 >> s;
+@@ -137,7 +139,7 @@
+ }
+ }
+ surface = SDL_AllocSurface(SDL_SWSURFACE, width, height,
+- bit_depth*info_ptr->channels, Rmask,Gmask,Bmask,Amask);
++ bit_depth*png_get_channels(png_ptr, info_ptr), Rmask,Gmask,Bmask,Amask);
+ if ( surface == NULL ) {
+ error = "Out of memory";
+ goto done;
+@@ -185,12 +187,15 @@
+ palette->colors[i].g = i;
+ palette->colors[i].b = i;
+ }
+- } else if (info_ptr->num_palette > 0 ) {
+- palette->ncolors = info_ptr->num_palette;
+- for( i=0; i<info_ptr->num_palette; ++i ) {
+- palette->colors[i].b = info_ptr->palette[i].blue;
+- palette->colors[i].g = info_ptr->palette[i].green;
+- palette->colors[i].r = info_ptr->palette[i].red;
++ } else {
++ png_get_PLTE(png_ptr, info_ptr, &png_palette, &num_palette);
++ if (num_palette > 0 ) {
++ palette->ncolors = num_palette;
++ for( i=0; i<num_palette; ++i ) {
++ palette->colors[i].b = png_palette[i].blue;
++ palette->colors[i].g = png_palette[i].green;
++ palette->colors[i].r = png_palette[i].red;
++ }
+ }
+ }
+ }
diff --git a/community/scorched3d/scorched3d.install b/community/scorched3d/scorched3d.install
new file mode 100644
index 000000000..c5571196e
--- /dev/null
+++ b/community/scorched3d/scorched3d.install
@@ -0,0 +1,11 @@
+post_install() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
+post_upgrade() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
+post_remove() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}