From aaad871c35d6a3ec520a7dc62278c77aa9f2897c Mon Sep 17 00:00:00 2001
From: "Yury G. Kudryashov" <urkud.urkud@gmail.com>
Date: Sun, 19 Feb 2012 09:22:24 +0000
Subject: [PATCH] inkscape: a couple of upstream patches to fix FTBFS with
 libpng-1.5

svn path=/nixpkgs/trunk/; revision=32391
---
 .../graphics/inkscape/default.nix             |  6 +--
 .../graphics/inkscape/libpng-1.5.patch        | 47 +++++++++++++++++++
 2 files changed, 50 insertions(+), 3 deletions(-)
 create mode 100644 pkgs/applications/graphics/inkscape/libpng-1.5.patch

diff --git a/pkgs/applications/graphics/inkscape/default.nix b/pkgs/applications/graphics/inkscape/default.nix
index 19a2346802c4..9ef5382eaf96 100644
--- a/pkgs/applications/graphics/inkscape/default.nix
+++ b/pkgs/applications/graphics/inkscape/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, pkgconfig, perl, perlXMLParser, gtk, libXft
 , libpng, zlib, popt, boehmgc, libxml2, libxslt, glib, gtkmm
 , glibmm, libsigcxx, lcms, boost, gettext, makeWrapper, intltool
-, gsl, python, pyxml, lxml, poppler }:
+, gsl, python, pyxml, lxml, poppler, imagemagick, libwpg }:
 
 stdenv.mkDerivation rec {
   name = "inkscape-0.48.2";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "10v7ixdz7f8vgk2wv0m81zli9p0f446cm1f4aqlvni1ndsx44fi2";
   };
 
-  patches = [ ./configure-python-libs.patch ];
+  patches = [ ./configure-python-libs.patch ./libpng-1.5.patch ];
 
   propagatedBuildInputs = [
     # Python is used at run-time to execute scripts, e.g., those from
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     pkgconfig perl perlXMLParser gtk libXft libpng zlib popt boehmgc
     libxml2 libxslt glib gtkmm glibmm libsigcxx lcms boost gettext
-    makeWrapper intltool gsl poppler
+    makeWrapper intltool gsl poppler imagemagick libwpg
   ];
 
   configureFlags = "--with-python";
diff --git a/pkgs/applications/graphics/inkscape/libpng-1.5.patch b/pkgs/applications/graphics/inkscape/libpng-1.5.patch
new file mode 100644
index 000000000000..4c8a7ee5f9b6
--- /dev/null
+++ b/pkgs/applications/graphics/inkscape/libpng-1.5.patch
@@ -0,0 +1,47 @@
+Source: upstream revisions 10061 and 10707
+
+--- a/src/sp-image.cpp	2011-02-21 07:59:34 +0000
++++ b/src/sp-image.cpp	2011-02-21 08:57:28 +0000
+@@ -387,9 +387,13 @@
+ 
+ #if defined(PNG_iCCP_SUPPORTED)
+                 {
+-                    char* name = 0;
++                    png_charp name = 0;
+                     int compression_type = 0;
+-                    char* profile = 0;
++#if (PNG_LIBPNG_VER < 10500)
++                    png_charp profile = 0;
++#else
++                    png_bytep profile = 0;
++#endif
+                     png_uint_32 proflen = 0;
+                     if ( png_get_iCCP(pngPtr, infoPtr, &name, &compression_type, &profile, &proflen) ) {
+ //                                         g_message("Found an iCCP chunk named [%s] with %d bytes and comp %d", name, proflen, compression_type);
+
+--- a/src/extension/internal/pdfinput/svg-builder.cpp	2011-10-27 04:55:51 +0000
++++ b/src/extension/internal/pdfinput/svg-builder.cpp	2011-10-29 20:34:00 +0000
+@@ -1481,7 +1481,7 @@
+         return NULL;
+     }
+     // Set error handler
+-    if (setjmp(png_ptr->jmpbuf)) {
++    if (setjmp(png_jmpbuf(png_ptr))) {
+         png_destroy_write_struct(&png_ptr, &info_ptr);
+         return NULL;
+     }
+
+--- a/src/helper/png-write.cpp	2011-08-07 10:53:12 +0000
++++ b/src/helper/png-write.cpp	2011-10-29 20:34:00 +0000
+@@ -166,8 +166,8 @@
+     /* Set error handling.  REQUIRED if you aren't supplying your own
+      * error hadnling functions in the png_create_write_struct() call.
+      */
+-    if (setjmp(png_ptr->jmpbuf)) {
+-        /* If we get here, we had a problem reading the file */
++    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);
+         return false;
+