summaryrefslogtreecommitdiff
path: root/extra/tuxpuck
diff options
context:
space:
mode:
Diffstat (limited to 'extra/tuxpuck')
-rw-r--r--extra/tuxpuck/PKGBUILD35
-rw-r--r--extra/tuxpuck/tuxpuck-0.8.2-ldflags.patch11
-rw-r--r--extra/tuxpuck/tuxpuck-0.8.2-libpng15.patch63
3 files changed, 101 insertions, 8 deletions
diff --git a/extra/tuxpuck/PKGBUILD b/extra/tuxpuck/PKGBUILD
index 65bd3c55a..f9b7fc1c8 100644
--- a/extra/tuxpuck/PKGBUILD
+++ b/extra/tuxpuck/PKGBUILD
@@ -1,22 +1,41 @@
-# $Id: PKGBUILD 63695 2010-01-18 10:38:26Z andrea $
+# $Id: PKGBUILD 148948 2012-02-05 11:57:19Z ibiru $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
pkgname=tuxpuck
pkgver=0.8.2
-pkgrel=4
+pkgrel=5
pkgdesc="Airhockey with tux"
arch=('i686' 'x86_64' 'mips64el')
url="http://home.no.net/munsuun/tuxpuck/"
license=('GPL2')
-depends=('libjpeg>=8' 'sdl' 'libpng>=1.4.0' 'libvorbis')
+depends=('libjpeg' 'sdl' 'libpng' 'libvorbis')
makedepends=('freetype2')
options=('!makeflags')
-source=(http://ftp.de.debian.org/debian/pool/main/t/${pkgname}/${pkgname}_$pkgver.orig.tar.gz)
-md5sums=('fc839abc2b1f3eafae397e1ed6487079')
+source=("http://ftp.de.debian.org/debian/pool/main/t/${pkgname}/${pkgname}_$pkgver.orig.tar.gz"
+ 'tuxpuck-0.8.2-ldflags.patch'
+ 'tuxpuck-0.8.2-libpng15.patch')
+md5sums=('fc839abc2b1f3eafae397e1ed6487079'
+ 'cb914d211bf3f519b7700fda180612b0'
+ 'a4da530d670a0c30ac0840aab1db0dca')
build() {
cd $srcdir/$pkgname-$pkgver
- sed -i 's|usr/man|usr/share/man|' Makefile || return 1
- make || return 1
- make DESTDIR=$pkgdir install || return 1
+
+ sed -i 's|usr/man|usr/share/man|' Makefile
+ sed -i -e 's/-Werror//' \
+ -e '/^CC/d' \
+ Makefile \
+ utils/Makefile \
+ data/Makefile
+
+ patch -Np0 -i "${srcdir}/tuxpuck-0.8.2-ldflags.patch"
+ patch -Np0 -i "${srcdir}/tuxpuck-0.8.2-libpng15.patch"
+
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+
+ make DESTDIR=$pkgdir install
}
diff --git a/extra/tuxpuck/tuxpuck-0.8.2-ldflags.patch b/extra/tuxpuck/tuxpuck-0.8.2-ldflags.patch
new file mode 100644
index 000000000..28fcef48a
--- /dev/null
+++ b/extra/tuxpuck/tuxpuck-0.8.2-ldflags.patch
@@ -0,0 +1,11 @@
+--- Makefile.old 2010-10-05 10:34:57.000000000 +0200
++++ Makefile 2010-10-05 10:35:28.000000000 +0200
+@@ -20,7 +20,7 @@
+
+ $(NAME) : $(OBJS)
+ cd data; $(MAKE)
+- $(CC) $(CFLAGS) $(OBJS) data/libdata.a `sdl-config --libs` -lm -lpng \
++ $(CC) $(LDFLAGS) $(CFLAGS) $(OBJS) data/libdata.a `sdl-config --libs` -lm -lpng \
+ -ljpeg -lz -lvorbisfile -lvorbis -logg -o $(NAME)
+
+ w32icon.o : data/icons/tuxpuck.ico
diff --git a/extra/tuxpuck/tuxpuck-0.8.2-libpng15.patch b/extra/tuxpuck/tuxpuck-0.8.2-libpng15.patch
new file mode 100644
index 000000000..ca9539f39
--- /dev/null
+++ b/extra/tuxpuck/tuxpuck-0.8.2-libpng15.patch
@@ -0,0 +1,63 @@
+--- png.c.old 2011-09-14 16:25:54.415338149 +0200
++++ png.c 2011-09-14 17:41:02.190803110 +0200
+@@ -38,6 +38,8 @@
+ png_color_16 *transv;
+ SDL_RWops *src = NULL;
+ Uint32 size;
++ int num_palette;
++ png_colorp png_palette;
+
+ memcpy(&size, data, sizeof(Uint32));
+ if (memcounter)
+@@ -74,7 +76,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))) {
+ SDL_SetError("Error reading the PNG file.");
+ goto done;
+ }
+@@ -142,9 +144,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;
+@@ -152,7 +154,7 @@
+ }
+ }
+ surface = SDL_AllocSurface(SDL_SWSURFACE, width, height,
+- bit_depth * info_ptr->channels, Rmask, Gmask,
++ bit_depth * png_get_channels(png_ptr, info_ptr), Rmask, Gmask,
+ Bmask, Amask);
+ if (surface == NULL) {
+ SDL_SetError("Out of memory");
+@@ -197,12 +199,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;
++ }
+ }
+ }
+ }