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

games-engines/stratagus/ChangeLog
games-engines/stratagus/Manifest
games-engines/stratagus/files/stratagus-2.2.5.5-libpng15.patch [new file with mode: 0644]
games-engines/stratagus/stratagus-2.2.5.5.ebuild

index e2ac95536fa777face31de8642f46a83cfd19905..1289793b6afefa12403c61b8becb30de7253a7f1 100644 (file)
@@ -1,6 +1,10 @@
 # ChangeLog for games-engines/stratagus
 # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/games-engines/stratagus/ChangeLog,v 1.20 2011/02/03 19:59:57 mr_bones_ Exp $
+# $Header: /var/cvsroot/gentoo-x86/games-engines/stratagus/ChangeLog,v 1.21 2011/09/17 16:50:03 ssuominen Exp $
+
+  17 Sep 2011; Samuli Suominen <ssuominen@gentoo.org> stratagus-2.2.5.5.ebuild,
+  +files/stratagus-2.2.5.5-libpng15.patch:
+  Fix building with libpng15 wrt #383197 by Diego Elio Pettenò
 
   03 Feb 2011; Michael Sterrett <mr_bones_@gentoo.org>
   stratagus-2.2.5.5.ebuild:
index 311a8491be48961fe0100c06356fcaa2ff19a441..ae6b34a7f05b8aee5ba16917740339d645108490 100644 (file)
@@ -1,4 +1,15 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA256
+
+AUX stratagus-2.2.5.5-libpng15.patch 2260 RMD160 e830d532aadcb7d849a5177ea7f8670778ded586 SHA1 b7f20472c1481223a36363579c4cfcc43b8898a9 SHA256 bf36f8f99da8cace616923f6fd3979a147bf201b462a82f3f059cec01487c61f
 DIST stratagus_2.2.5.5.orig.tar.gz 976972 RMD160 371ded2944db34b930a337ed5a08eca32f772541 SHA1 c7b9ac70c96289ba964919fa9add93e93c879b0d SHA256 e0c8fe592ee3ad0c5806937aa950aad39019780de5344987366fe76901377285
-EBUILD stratagus-2.2.5.5.ebuild 1393 RMD160 c013c3f6a67e4094e556485fb7028d2404a7a7a3 SHA1 86274c3f1fb1bb9a8b9758433a57b0ffceb6402e SHA256 6740a409a8a31c4ce23c379c7d3fa9986ca93e60e3050766382cc28e62f2158b
-MISC ChangeLog 3097 RMD160 8bc594892403a25922c0dc8d0f07e98ecf87f0eb SHA1 480720e410649965168875c77115ed5b1a93f509 SHA256 fe5d1c83412fa4384c174fbb9fd85b5c576343f1f7f5a7640ea473b83bea5855
+EBUILD stratagus-2.2.5.5.ebuild 1442 RMD160 4798b414efdce299cc799b3bf9ebf74b921e7d28 SHA1 b1f6a59ed3b1ada3f6ce66b62a053ac59cebea81 SHA256 c3b6f0ac3ebbb95244867a7ab41efa9e6f5ceca6adf2f183c28de86fb14fe51e
+MISC ChangeLog 3285 RMD160 2812c0094a78858284107aa796b1fb63073f1928 SHA1 8dee38103335e15285053038b3ce92e4f6145de2 SHA256 d7fa2411d24cc80a46bc16173525161c250e0883ddcb03b9078fa610812db4c7
 MISC metadata.xml 158 RMD160 cbd9984bb6b426c8c9cee5022fe0a26261612fea SHA1 be5251fa1dacef5c41b74761bb1c8c54fb633b9e SHA256 1423a4fdd4a79b1728a2056d9e300f7e1074253095d82726218d9e9b953888a3
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.18 (GNU/Linux)
+
+iF4EAREIAAYFAk50z/cACgkQXkR9YqOcLPGe9wD+NXfOVYCdqvwOgZDsFCWlYkUV
+jj6anNqgGzrao35ePboA/RuiswSrtfvlLLAcSh2JTIgywCjgINIgqbo0ifkulq2T
+=/0LH
+-----END PGP SIGNATURE-----
diff --git a/games-engines/stratagus/files/stratagus-2.2.5.5-libpng15.patch b/games-engines/stratagus/files/stratagus-2.2.5.5-libpng15.patch
new file mode 100644 (file)
index 0000000..cc0a738
--- /dev/null
@@ -0,0 +1,71 @@
+--- src/video/png.cpp
++++ src/video/png.cpp
+@@ -147,7 +147,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))) {
+               fprintf(stderr, "Error reading the PNG file.\n");
+               ret = -1;
+               goto done;
+@@ -227,11 +227,11 @@
+                       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;
+-                      s = (info_ptr->channels == 4) ? 0 : 8;
++                      s = (png_get_channels(png_ptr, info_ptr) == 4) ? 0 : 8;
+                       Rmask = 0xFF000000 >> s;
+                       Gmask = 0x00FF0000 >> s;
+                       Bmask = 0x0000FF00 >> s;
+@@ -239,7 +239,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) {
+               fprintf(stderr, "Out of memory");
+               goto done;
+@@ -276,6 +276,8 @@
+       png_read_end(png_ptr, info_ptr);
+       /* Load the palette, if any */
++      int png_num_palette;
++      png_colorp png_palette;
+       palette = surface->format->palette;
+       if (palette) {
+               if (color_type == PNG_COLOR_TYPE_GRAY) {
+@@ -285,12 +287,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 (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 (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;
+                       }
+               }
+       }
+@@ -343,7 +345,7 @@
+               return;
+       }
+-      if (setjmp(png_ptr->jmpbuf)) {
++      if (setjmp(png_jmpbuf(png_ptr))) {
+               /* If we get here, we had a problem reading the file */
+               fclose(fp);
+               png_destroy_write_struct(&png_ptr, &info_ptr);
index 16d9a0802e4d1a9f775eba2df77784dcb217d5f3..c3cdfe952e562069508cad37a4e5c5dadda84c79 100644 (file)
@@ -1,9 +1,9 @@
 # Copyright 1999-2011 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/games-engines/stratagus/stratagus-2.2.5.5.ebuild,v 1.6 2011/03/09 22:54:42 mr_bones_ Exp $
+# $Header: /var/cvsroot/gentoo-x86/games-engines/stratagus/stratagus-2.2.5.5.ebuild,v 1.7 2011/09/17 16:50:03 ssuominen Exp $
 
 EAPI=2
-inherit autotools games
+inherit autotools eutils games
 
 DESCRIPTION="A realtime strategy game engine"
 HOMEPAGE="http://stratagus.sourceforge.net/"
@@ -28,6 +28,7 @@ DEPEND="${RDEPEND}
        doc? ( app-doc/doxygen )"
 
 src_prepare() {
+       epatch "${FILESDIR}"/${P}-libpng15.patch
        sed -i \
                -e 's/-O.*\(-fsigned-char\).*/\1"/' \
                configure.in \