diff options
author | root <root@rshg054.dnsready.net> | 2012-02-06 23:14:50 +0000 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2012-02-06 23:14:50 +0000 |
commit | 1fa6edfba8d1e31ca1c0d59e8202cd3c62ccf393 (patch) | |
tree | 8d7ccc2dc9d08a4c3cde26aa01c887e9a0fc2fa1 /community/widelands | |
parent | bdb5b3e66f6afa586ea147f69af5e4ba388f7615 (diff) |
Mon Feb 6 23:14:50 UTC 2012
Diffstat (limited to 'community/widelands')
-rw-r--r-- | community/widelands/PKGBUILD | 8 | ||||
-rw-r--r-- | community/widelands/widelands-0.16-libpng15.patch | 61 |
2 files changed, 67 insertions, 2 deletions
diff --git a/community/widelands/PKGBUILD b/community/widelands/PKGBUILD index 4d207a5a6..6f540efaa 100644 --- a/community/widelands/PKGBUILD +++ b/community/widelands/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 57518 2011-10-29 21:39:24Z lcarlier $ +# $Id: PKGBUILD 63777 2012-02-05 12:14:08Z ibiru $ # Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com> # Contributor: Arkham <arkham at archlinux dot us> # Contributor: Christoph Zeiler <rabyte*gmail> @@ -6,17 +6,19 @@ pkgname=widelands pkgver=16 _realver=build16 -pkgrel=4 +pkgrel=5 pkgdesc="A realtime strategy game with emphasis on economy and transport" arch=('i686' 'x86_64') url="http://widelands.org/" license=('GPL') makedepends=('cmake' 'boost' 'sdl_mixer' 'sdl_image' 'sdl_net' 'sdl_ttf' 'sdl_gfx' 'ggz-client-libs' 'lua' 'glew' 'python2') source=(http://launchpad.net/$pkgname/build16/$_realver/+download/$pkgname-$_realver-src.tar.bz2 + widelands-0.16-libpng15.patch $pkgname.desktop $pkgname.png $pkgname.sh) md5sums=('3d8c28e145b73c64d8ed1625319d25a2' + 'e492620b071cbd1db04280173653a67c' '15820bf099fd6f16251fe70a75c534bb' '3dfda7e9ca76ca00dd98d745d0ceb328' '7cae50aba5ed0cd2cfeea79124637b46') @@ -24,6 +26,8 @@ md5sums=('3d8c28e145b73c64d8ed1625319d25a2' build() { cd $srcdir/$pkgname-$_realver-src + patch -Np0 < $srcdir/widelands-0.16-libpng15.patch + mkdir -p build/compile && cd build/compile cmake ../.. -DCMAKE_BUILD_TYPE=Release \ diff --git a/community/widelands/widelands-0.16-libpng15.patch b/community/widelands/widelands-0.16-libpng15.patch new file mode 100644 index 000000000..9f733e7b9 --- /dev/null +++ b/community/widelands/widelands-0.16-libpng15.patch @@ -0,0 +1,61 @@ +--- src/graphic/SDL_mng.cc ++++ src/graphic/SDL_mng.cc +@@ -276,7 +276,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; + } +@@ -356,9 +356,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 const s = (info_ptr->channels == 4) ? 0 : 8; ++ int const s = (png_get_channels(png_ptr, info_ptr) == 4) ? 0 : 8; + Rmask = 0xFF000000 >> s; + Gmask = 0x00FF0000 >> s; + Bmask = 0x0000FF00 >> s; +@@ -369,7 +369,7 @@ + SDL_AllocSurface + (SDL_SWSURFACE, + width, height, +- bit_depth * info_ptr->channels, ++ bit_depth * png_get_channels(png_ptr, info_ptr), + Rmask, Gmask, Bmask, Amask); + if (not surface) { + SDL_SetError("Out of memory"); +@@ -407,6 +407,9 @@ + /* read rest of file, get additional chunks in info_ptr - REQUIRED */ + png_read_end(png_ptr, info_ptr); + ++ png_colorp png_palette; ++ int png_num_palette; ++ + /* Load the palette, if any */ + if ((palette = surface->format->palette)) { + if (color_type == PNG_COLOR_TYPE_GRAY) { +@@ -416,12 +419,12 @@ + palette->colors[i].g = i; + palette->colors[i].b = i; + } +- } else if (info_ptr->num_palette > 0) { +- palette->ncolors = info_ptr->num_palette; +- for (uint32_t 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 if (png_num_palette > 0) { ++ palette->ncolors = png_num_palette; ++ for (uint32_t i = 0; i < png_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; + } + } + } |