Fix building with libpng15 wrt #378181 by Diego Elio Pettenò
authorSamuli Suominen <ssuominen@gentoo.org>
Thu, 15 Sep 2011 03:32:59 +0000 (03:32 +0000)
committerSamuli Suominen <ssuominen@gentoo.org>
Thu, 15 Sep 2011 03:32:59 +0000 (03:32 +0000)
Package-Manager: portage-2.2.0_alpha55/cvs/Linux x86_64

games-strategy/widelands/ChangeLog
games-strategy/widelands/Manifest
games-strategy/widelands/files/widelands-0.16-libpng15.patch [new file with mode: 0644]
games-strategy/widelands/widelands-0.16.ebuild

index bb02fc10fa7874018ba2b86a9e1c5daefcaaadbf..575929d93c834e12e8b2745fbe063f5f76a0bfba 100644 (file)
@@ -1,6 +1,10 @@
 # ChangeLog for games-strategy/widelands
 # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/games-strategy/widelands/ChangeLog,v 1.35 2011/08/11 21:40:00 mr_bones_ Exp $
+# $Header: /var/cvsroot/gentoo-x86/games-strategy/widelands/ChangeLog,v 1.36 2011/09/15 03:32:59 ssuominen Exp $
+
+  15 Sep 2011; Samuli Suominen <ssuominen@gentoo.org> widelands-0.16.ebuild,
+  +files/widelands-0.16-libpng15.patch:
+  Fix building with libpng15 wrt #378181 by Diego Elio Pettenò
 
   11 Aug 2011; Michael Sterrett <mr_bones_@gentoo.org> widelands-0.16.ebuild:
   games goes last on inherit line; tidy
index d535a4906d85c0adbe518fafe00dabb52c75b5c6..d5ee25472e654010f13ea9e31a3b798d90679cca 100644 (file)
@@ -1,11 +1,22 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA256
+
 AUX widelands-0.15-build.patch 1839 RMD160 baedf2f0e20815fdafd8c256a1d339bf32170f21 SHA1 71544823e8c75784db9fa4dcb875fe03f4c1cab8 SHA256 002afd51479536cf796cbab60515ff133bc6fb31d9e9322f966e6217dfdcdd1d
 AUX widelands-0.15-gcc45.patch 1968 RMD160 be797bf86bb24896b7ccc46848726ba8ee15e71d SHA1 b5e5ecb72ad004f39cc77c5b1e0cce5f26bf3746 SHA256 f30fb6ed536fc9caa97fe2fa0b14c162b6469d9e9371beeb183ab7bbb342686b
 AUX widelands-0.15-gcc46.patch 245 RMD160 8b126b213d1eb69ee88903a0b4f1f88743472fa4 SHA1 9cc1519c842afc5e4132b511b5f782b00d1c832d SHA256 fb57dfd043e1ede92ada6b0592d269eef8217ca40cceccf0d6b2a23f8b3d3922
 AUX widelands-0.15-locale.patch 488 RMD160 f194d94e29745084371e735cd913cafbd1b615d0 SHA1 a2f7073ad6e9c5aa642ff03f653865f7413deb84 SHA256 789b80cb441b39fdb54e0b8b9dafbad93786d8b7f23caee3221e42667c05dcfe
 AUX widelands-0.16-goldmine.patch 558 RMD160 d900c8626141a56057f02a0b75d0a94064437275 SHA1 ba7c59cf4e317403443d87832260bcf23c3feb73 SHA256 e49bb7f6e31a36c3b6bffe374122161c113a65a945087ffaa979988fda7b6ade
+AUX widelands-0.16-libpng15.patch 2064 RMD160 a8c9e83438f41e015a42f7d02d4b51bb5321bfc8 SHA1 2cf53e5b53de93a6fae9b1ad2173cbb90dcce573 SHA256 1b696a840d4beef6740531c1cafc227798c513b4c8dd7d3a61d3ce6b256e02ff
 DIST widelands-build15-src.tar.bz2 107471022 RMD160 23dd238978cf97cea2abcb2b8178b090d790cf77 SHA1 dfa3c1bf701dec55cefb5b10f278da037c9288ea SHA256 99cfc86318e74a9abfe85493bf0a072d7ac99d9a3cdaa44922e9a5e027d1be03
 DIST widelands-build16-src.tar.bz2 137808494 RMD160 aa7d14fe0071041227cebf5b5974feb74e7b8c8f SHA1 3e6df06337a4e422236bb0c0bb21068cddb6e274 SHA256 d8db3c15c30314cb220c6d79d93d3d31e7bce2722c93d2c385d643c3c669625d
 EBUILD widelands-0.15.ebuild 1658 RMD160 8c3bda1c60f64ba132a860eb4c9b630c544a98cd SHA1 f8c4c083a20742dc2a9f88e6f1925cfe4ccb452c SHA256 8b1beef3d2c92ce817eb427d65cc2e9ba796a4516641feaed3027d3eb0cfa5b9
-EBUILD widelands-0.16.ebuild 1513 RMD160 416b48dfcd941d23aa9ce396dc48c93a0e5acf26 SHA1 f9ff07a1245ae4c84fa0f38df35053b560afdc46 SHA256 8bd608aa766f0169a75f4001035444f6593191604d5d1b029d8caa9779e00263
-MISC ChangeLog 5899 RMD160 b9628798ef9642259884c476bf999a7b16362d14 SHA1 5ab8d7d09dfaa7fbd721e33461bd6256fcd0f20a SHA256 dd016e16ae137c1df9a02f95814b8398980923bed53fd2f5fb4dd217c6414fe2
+EBUILD widelands-0.16.ebuild 1555 RMD160 542114f7685892f619ba3e027c4e6ec126318e91 SHA1 5dc06ce9a77c15c8d65eaf79b649cba06dbbd2c9 SHA256 1eed46ddd16ce9b69e9a3ab4b13e9e419d1957f631f83dc1928367a2f9a863b7
+MISC ChangeLog 6081 RMD160 2ccabf033305afb673cf0274db661857118446e4 SHA1 1ef8f1389a15d0a04a043b47a23f65d87b7f1790 SHA256 ae7d77caca7e413582ac0ebcfb7aa409e3f43d82abaeba4a807ce77717077d37
 MISC metadata.xml 158 RMD160 cbd9984bb6b426c8c9cee5022fe0a26261612fea SHA1 be5251fa1dacef5c41b74761bb1c8c54fb633b9e SHA256 1423a4fdd4a79b1728a2056d9e300f7e1074253095d82726218d9e9b953888a3
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.18 (GNU/Linux)
+
+iF4EAREIAAYFAk5xciMACgkQXkR9YqOcLPFFkgD+MEBHbzr7XBFN9j/Vh0dkgLz3
+VFGICiHtEKy4ichecQ0A/2pihZRvlRC/VmvSfbLP5NgwT/RkNXHXzKC6KuZthQVR
+=Tdbw
+-----END PGP SIGNATURE-----
diff --git a/games-strategy/widelands/files/widelands-0.16-libpng15.patch b/games-strategy/widelands/files/widelands-0.16-libpng15.patch
new file mode 100644 (file)
index 0000000..9f733e7
--- /dev/null
@@ -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;
+                       }
+               }
+       }
index bb9ed1e330417236b0e34e0ed887f94ab4d46b69..375d7efe757c6b9660248acb3af9a606f02192ce 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2011 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/games-strategy/widelands/widelands-0.16.ebuild,v 1.2 2011/08/11 21:40:00 mr_bones_ Exp $
+# $Header: /var/cvsroot/gentoo-x86/games-strategy/widelands/widelands-0.16.ebuild,v 1.3 2011/09/15 03:32:59 ssuominen Exp $
 
 EAPI=3
 inherit versionator cmake-utils games
@@ -36,7 +36,9 @@ src_prepare() {
        sed -i \
                -e 's:__ppc__:__PPC__:' src/s2map.cc \
                || die "sed s2map.cc failed"
-       epatch "${FILESDIR}"/${P}-goldmine.patch
+       epatch \
+               "${FILESDIR}"/${P}-goldmine.patch \
+               "${FILESDIR}"/${P}-libpng15.patch
 }
 
 src_configure() {