Browse Source

update libpng to latest stable version

Waldemar Brodkorb 10 years ago
parent
commit
c834d24b95
2 changed files with 89 additions and 89 deletions
  1. 2 2
      package/libpng/Makefile
  2. 87 87
      package/libpng/patches/libpng-1.6.17-apng.patch

+ 2 - 2
package/libpng/Makefile

@@ -4,9 +4,9 @@
 include ${ADK_TOPDIR}/rules.mk
 
 PKG_NAME:=		libpng
-PKG_VERSION:=		1.6.14
+PKG_VERSION:=		1.6.17
 PKG_RELEASE:=		1
-PKG_HASH:=		968443a5505815a2a9fbfba87584e4237f8255cfa7b33a18484462db13e4b444
+PKG_HASH:=		98507b55fbe5cd43c51981f2924e4671fd81fe35d52dc53357e20f2c77fa5dfd
 PKG_DESCR:=		library for reading/writing png images
 PKG_SECTION:=		libs/image
 PKG_DEPENDS:=		zlib

+ 87 - 87
package/libpng/patches/libpng-1.6.14-apng.patch → package/libpng/patches/libpng-1.6.17-apng.patch

@@ -1,7 +1,7 @@
-diff -Naru libpng-1.6.14.org/png.h libpng-1.6.14/png.h
---- libpng-1.6.14.org/png.h	2014-10-23 23:57:22.656674917 +0900
-+++ libpng-1.6.14/png.h	2014-10-23 23:57:22.729677456 +0900
-@@ -470,6 +470,10 @@
+diff -Naru libpng-1.6.17.org/png.h libpng-1.6.17/png.h
+--- libpng-1.6.17.org/png.h	2015-03-27 07:56:22.460189754 +0900
++++ libpng-1.6.17/png.h	2015-03-27 07:56:22.536191843 +0900
+@@ -480,6 +480,10 @@
  #   include "pnglibconf.h"
  #endif
  
@@ -12,7 +12,7 @@ diff -Naru libpng-1.6.14.org/png.h libpng-1.6.14/png.h
  #ifndef PNG_VERSION_INFO_ONLY
     /* Machine specific configuration. */
  #  include "pngconf.h"
-@@ -560,6 +564,17 @@
+@@ -570,6 +574,17 @@
   * See pngconf.h for base types that vary by machine/system
   */
  
@@ -30,7 +30,7 @@ diff -Naru libpng-1.6.14.org/png.h libpng-1.6.14/png.h
  /* This triggers a compiler error in png.c, if png.c and png.h
   * do not agree upon the version number.
   */
-@@ -880,6 +895,10 @@
+@@ -890,6 +905,10 @@
  #define PNG_INFO_sPLT 0x2000   /* ESR, 1.0.6 */
  #define PNG_INFO_sCAL 0x4000   /* ESR, 1.0.6 */
  #define PNG_INFO_IDAT 0x8000   /* ESR, 1.0.6 */
@@ -41,7 +41,7 @@ diff -Naru libpng-1.6.14.org/png.h libpng-1.6.14/png.h
  
  /* This is used for the transformation routines, as some of them
   * change these values for the row.  It also should enable using
-@@ -917,6 +936,10 @@
+@@ -927,6 +946,10 @@
  #ifdef PNG_PROGRESSIVE_READ_SUPPORTED
  typedef PNG_CALLBACK(void, *png_progressive_info_ptr, (png_structp, png_infop));
  typedef PNG_CALLBACK(void, *png_progressive_end_ptr, (png_structp, png_infop));
@@ -52,7 +52,7 @@ diff -Naru libpng-1.6.14.org/png.h libpng-1.6.14/png.h
  
  /* The following callback receives png_uint_32 row_number, int pass for the
   * png_bytep data of the row.  When transforming an interlaced image the
-@@ -3255,6 +3278,74 @@
+@@ -3271,6 +3294,74 @@
  /*******************************************************************************
   *  END OF HARDWARE AND SOFTWARE OPTIONS
   ******************************************************************************/
@@ -127,7 +127,7 @@ diff -Naru libpng-1.6.14.org/png.h libpng-1.6.14/png.h
  
  /* Maintainer: Put new public prototypes here ^, in libpng.3, in project
   * defs, and in scripts/symbols.def.
-@@ -3264,7 +3355,11 @@
+@@ -3280,7 +3371,11 @@
   * one to use is one more than this.)
   */
  #ifdef PNG_EXPORT_LAST_ORDINAL
@@ -139,10 +139,10 @@ diff -Naru libpng-1.6.14.org/png.h libpng-1.6.14/png.h
  #endif
  
  #ifdef __cplusplus
-diff -Naru libpng-1.6.14.org/pngget.c libpng-1.6.14/pngget.c
---- libpng-1.6.14.org/pngget.c	2014-10-23 23:57:22.657674952 +0900
-+++ libpng-1.6.14/pngget.c	2014-10-23 23:57:22.730677491 +0900
-@@ -1195,4 +1195,166 @@
+diff -Naru libpng-1.6.17.org/pngget.c libpng-1.6.17/pngget.c
+--- libpng-1.6.17.org/pngget.c	2015-03-27 07:56:22.461189782 +0900
++++ libpng-1.6.17/pngget.c	2015-03-27 07:56:22.537191870 +0900
+@@ -1216,4 +1216,166 @@
  #  endif
  #endif
  
@@ -308,11 +308,11 @@ diff -Naru libpng-1.6.14.org/pngget.c libpng-1.6.14/pngget.c
 +    return 0;
 +}
 +#endif /* PNG_APNG_SUPPORTED */
- #endif /* PNG_READ_SUPPORTED || PNG_WRITE_SUPPORTED */
-diff -Naru libpng-1.6.14.org/pnginfo.h libpng-1.6.14/pnginfo.h
---- libpng-1.6.14.org/pnginfo.h	2014-10-23 23:57:22.657674952 +0900
-+++ libpng-1.6.14/pnginfo.h	2014-10-23 23:57:22.730677491 +0900
-@@ -256,5 +256,18 @@
+ #endif /* READ || WRITE */
+diff -Naru libpng-1.6.17.org/pnginfo.h libpng-1.6.17/pnginfo.h
+--- libpng-1.6.17.org/pnginfo.h	2015-03-27 07:56:22.461189782 +0900
++++ libpng-1.6.17/pnginfo.h	2015-03-27 07:56:22.537191870 +0900
+@@ -255,5 +255,18 @@
     png_bytepp row_pointers;        /* the image bits */
  #endif
  
@@ -331,9 +331,9 @@ diff -Naru libpng-1.6.14.org/pnginfo.h libpng-1.6.14/pnginfo.h
 +
  };
  #endif /* PNGINFO_H */
-diff -Naru libpng-1.6.14.org/pngpread.c libpng-1.6.14/pngpread.c
---- libpng-1.6.14.org/pngpread.c	2014-10-23 23:57:22.657674952 +0900
-+++ libpng-1.6.14/pngpread.c	2014-10-23 23:57:22.730677491 +0900
+diff -Naru libpng-1.6.17.org/pngpread.c libpng-1.6.17/pngpread.c
+--- libpng-1.6.17.org/pngpread.c	2015-03-27 07:56:22.461189782 +0900
++++ libpng-1.6.17/pngpread.c	2015-03-27 07:56:22.537191870 +0900
 @@ -219,6 +219,109 @@
  
     chunk_name = png_ptr->chunk_name;
@@ -443,7 +443,7 @@ diff -Naru libpng-1.6.14.org/pngpread.c libpng-1.6.14/pngpread.c
 +
     if (chunk_name == png_IDAT)
     {
-       if (png_ptr->mode & PNG_AFTER_IDAT)
+       if ((png_ptr->mode & PNG_AFTER_IDAT) != 0)
 @@ -283,6 +386,9 @@
  
     else if (chunk_name == png_IDAT)
@@ -485,7 +485,7 @@ diff -Naru libpng-1.6.14.org/pngpread.c libpng-1.6.14/pngpread.c
  
     else
     {
-@@ -621,7 +751,11 @@
+@@ -623,7 +753,11 @@
        png_byte chunk_tag[4];
  
        /* TODO: this code can be commoned up with the same code in push_read */
@@ -497,7 +497,7 @@ diff -Naru libpng-1.6.14.org/pngpread.c libpng-1.6.14/pngpread.c
        png_push_fill_buffer(png_ptr, chunk_length, 4);
        png_ptr->push_length = png_get_uint_31(png_ptr, chunk_length);
        png_reset_crc(png_ptr);
-@@ -629,17 +763,64 @@
+@@ -631,17 +765,64 @@
        png_ptr->chunk_name = PNG_CHUNK_FROM_STRING(chunk_tag);
        png_ptr->mode |= PNG_HAVE_CHUNK_HEADER;
  
@@ -538,7 +538,7 @@ diff -Naru libpng-1.6.14.org/pngpread.c libpng-1.6.14/pngpread.c
        {
           png_ptr->process_mode = PNG_READ_CHUNK_MODE;
  
-          if (!(png_ptr->flags & PNG_FLAG_ZSTREAM_ENDED))
+          if ((png_ptr->flags & PNG_FLAG_ZSTREAM_ENDED) == 0)
              png_error(png_ptr, "Not enough compressed data");
  
 +#ifdef PNG_READ_APNG_SUPPORTED
@@ -561,8 +561,8 @@ diff -Naru libpng-1.6.14.org/pngpread.c libpng-1.6.14/pngpread.c
 +#endif
     }
  
-    if (png_ptr->idat_size && png_ptr->save_buffer_size)
-@@ -712,6 +893,15 @@
+    if (png_ptr->idat_size != 0 && png_ptr->save_buffer_size != 0)
+@@ -714,6 +895,15 @@
     if (!(buffer_length > 0) || buffer == NULL)
        png_error(png_ptr, "No IDAT data (internal error)");
  
@@ -578,7 +578,7 @@ diff -Naru libpng-1.6.14.org/pngpread.c libpng-1.6.14/pngpread.c
     /* This routine must process all the data it has been given
      * before returning, calling the row callback as required to
      * handle the uncompressed results.
-@@ -1154,6 +1344,18 @@
+@@ -1163,6 +1353,18 @@
     png_set_read_fn(png_ptr, progressive_ptr, png_push_fill_buffer);
  }
  
@@ -597,10 +597,10 @@ diff -Naru libpng-1.6.14.org/pngpread.c libpng-1.6.14/pngpread.c
  png_voidp PNGAPI
  png_get_progressive_ptr(png_const_structrp png_ptr)
  {
-diff -Naru libpng-1.6.14.org/pngpriv.h libpng-1.6.14/pngpriv.h
---- libpng-1.6.14.org/pngpriv.h	2014-10-23 23:57:22.658674987 +0900
-+++ libpng-1.6.14/pngpriv.h	2014-10-23 23:57:22.731677525 +0900
-@@ -555,6 +555,10 @@
+diff -Naru libpng-1.6.17.org/pngpriv.h libpng-1.6.17/pngpriv.h
+--- libpng-1.6.17.org/pngpriv.h	2015-03-27 07:56:22.462189809 +0900
++++ libpng-1.6.17/pngpriv.h	2015-03-27 07:56:22.538191898 +0900
+@@ -516,6 +516,10 @@
  #define PNG_HAVE_CHUNK_AFTER_IDAT 0x2000 /* Have another chunk after IDAT */
                     /*             0x4000 (unused) */
  #define PNG_IS_READ_STRUCT        0x8000 /* Else is a write struct */
@@ -611,7 +611,7 @@ diff -Naru libpng-1.6.14.org/pngpriv.h libpng-1.6.14/pngpriv.h
  
  /* Flags for the transformations the PNG library does on the image data */
  #define PNG_BGR                 0x0001
-@@ -776,6 +780,16 @@
+@@ -737,6 +741,16 @@
  #define png_tRNS PNG_U32(116,  82,  78,  83)
  #define png_zTXt PNG_U32(122,  84,  88, 116)
  
@@ -628,7 +628,7 @@ diff -Naru libpng-1.6.14.org/pngpriv.h libpng-1.6.14/pngpriv.h
  /* The following will work on (signed char*) strings, whereas the get_uint_32
   * macro will fail on top-bit-set values because of the sign extension.
   */
-@@ -1476,6 +1490,47 @@
+@@ -1440,6 +1454,47 @@
       */
  #endif
  
@@ -676,9 +676,9 @@ diff -Naru libpng-1.6.14.org/pngpriv.h libpng-1.6.14/pngpriv.h
  /* Added at libpng version 1.4.0 */
  #ifdef PNG_COLORSPACE_SUPPORTED
  /* These internal functions are for maintaining the colorspace structure within
-diff -Naru libpng-1.6.14.org/pngread.c libpng-1.6.14/pngread.c
---- libpng-1.6.14.org/pngread.c	2014-10-23 23:57:22.659675022 +0900
-+++ libpng-1.6.14/pngread.c	2014-10-23 23:57:22.732677560 +0900
+diff -Naru libpng-1.6.17.org/pngread.c libpng-1.6.17/pngread.c
+--- libpng-1.6.17.org/pngread.c	2015-03-27 07:56:22.463189837 +0900
++++ libpng-1.6.17/pngread.c	2015-03-27 07:56:22.539191925 +0900
 @@ -158,6 +158,9 @@
  
        else if (chunk_name == png_IDAT)
@@ -709,7 +709,7 @@ diff -Naru libpng-1.6.14.org/pngread.c libpng-1.6.14/pngread.c
              PNG_HANDLE_CHUNK_AS_DEFAULT);
 @@ -254,6 +268,72 @@
  }
- #endif /* PNG_SEQUENTIAL_READ_SUPPORTED */
+ #endif /* SEQUENTIAL_READ */
  
 +#ifdef PNG_READ_APNG_SUPPORTED
 +void PNGAPI
@@ -780,10 +780,10 @@ diff -Naru libpng-1.6.14.org/pngread.c libpng-1.6.14/pngread.c
  /* Optional call to update the users info_ptr structure */
  void PNGAPI
  png_read_update_info(png_structrp png_ptr, png_inforp info_ptr)
-diff -Naru libpng-1.6.14.org/pngrutil.c libpng-1.6.14/pngrutil.c
---- libpng-1.6.14.org/pngrutil.c	2014-10-23 23:57:22.660675057 +0900
-+++ libpng-1.6.14/pngrutil.c	2014-10-23 23:57:22.735677664 +0900
-@@ -817,6 +817,11 @@
+diff -Naru libpng-1.6.17.org/pngrutil.c libpng-1.6.17/pngrutil.c
+--- libpng-1.6.17.org/pngrutil.c	2015-03-27 07:56:22.469190002 +0900
++++ libpng-1.6.17/pngrutil.c	2015-03-27 07:56:22.541191980 +0900
+@@ -819,6 +819,11 @@
     filter_type = buf[11];
     interlace_type = buf[12];
  
@@ -795,7 +795,7 @@ diff -Naru libpng-1.6.14.org/pngrutil.c libpng-1.6.14/pngrutil.c
     /* Set internal variables */
     png_ptr->width = width;
     png_ptr->height = height;
-@@ -2697,6 +2702,179 @@
+@@ -2702,6 +2707,179 @@
  }
  #endif
  
@@ -975,7 +975,7 @@ diff -Naru libpng-1.6.14.org/pngrutil.c libpng-1.6.14/pngrutil.c
  #ifdef PNG_READ_UNKNOWN_CHUNKS_SUPPORTED
  /* Utility function for png_handle_unknown; set up png_ptr::unknown_chunk */
  static int
-@@ -3953,7 +4131,38 @@
+@@ -3960,7 +4138,38 @@
        {
           uInt avail_in;
           png_bytep buffer;
@@ -986,7 +986,7 @@ diff -Naru libpng-1.6.14.org/pngrutil.c libpng-1.6.14/pngrutil.c
 +         {
 +            png_crc_finish(png_ptr, bytes_to_skip);
 +            bytes_to_skip = 0;
- 
++
 +            png_ptr->idat_size = png_read_chunk_header(png_ptr);
 +            if (png_ptr->num_frames_read == 0)
 +            {
@@ -1004,7 +1004,7 @@ diff -Naru libpng-1.6.14.org/pngrutil.c libpng-1.6.14/pngrutil.c
 +                  bytes_to_skip = png_ptr->idat_size;
 +                  continue;
 +               }
-+
+ 
 +               png_ensure_sequence_number(png_ptr, png_ptr->idat_size);
 +
 +               png_ptr->idat_size -= 4;
@@ -1014,7 +1014,7 @@ diff -Naru libpng-1.6.14.org/pngrutil.c libpng-1.6.14/pngrutil.c
           while (png_ptr->idat_size == 0)
           {
              png_crc_finish(png_ptr, 0);
-@@ -3965,7 +4174,7 @@
+@@ -3972,7 +4181,7 @@
              if (png_ptr->chunk_name != png_IDAT)
                 png_error(png_ptr, "Not enough image data");
           }
@@ -1023,7 +1023,7 @@ diff -Naru libpng-1.6.14.org/pngrutil.c libpng-1.6.14/pngrutil.c
           avail_in = png_ptr->IDAT_read_size;
  
           if (avail_in > png_ptr->idat_size)
-@@ -4028,6 +4237,9 @@
+@@ -4035,6 +4244,9 @@
  
           png_ptr->mode |= PNG_AFTER_IDAT;
           png_ptr->flags |= PNG_FLAG_ZSTREAM_ENDED;
@@ -1033,7 +1033,7 @@ diff -Naru libpng-1.6.14.org/pngrutil.c libpng-1.6.14/pngrutil.c
  
           if (png_ptr->zstream.avail_in > 0 || png_ptr->idat_size > 0)
              png_chunk_benign_error(png_ptr, "Extra compressed data");
-@@ -4465,4 +4677,80 @@
+@@ -4473,4 +4685,80 @@
  
     png_ptr->flags |= PNG_FLAG_ROW_INIT;
  }
@@ -1113,11 +1113,11 @@ diff -Naru libpng-1.6.14.org/pngrutil.c libpng-1.6.14/pngrutil.c
 +}
 +#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */
 +#endif /* PNG_READ_APNG_SUPPORTED */
- #endif /* PNG_READ_SUPPORTED */
-diff -Naru libpng-1.6.14.org/pngset.c libpng-1.6.14/pngset.c
---- libpng-1.6.14.org/pngset.c	2014-10-23 23:57:22.661675091 +0900
-+++ libpng-1.6.14/pngset.c	2014-10-23 23:57:22.735677664 +0900
-@@ -239,6 +239,11 @@
+ #endif /* READ */
+diff -Naru libpng-1.6.17.org/pngset.c libpng-1.6.17/pngset.c
+--- libpng-1.6.17.org/pngset.c	2015-03-27 07:56:22.469190002 +0900
++++ libpng-1.6.17/pngset.c	2015-03-27 07:56:22.541191980 +0900
+@@ -241,6 +241,11 @@
     info_ptr->pixel_depth = (png_byte)(info_ptr->channels * info_ptr->bit_depth);
  
     info_ptr->rowbytes = PNG_ROWBYTES(info_ptr->pixel_depth, width);
@@ -1129,9 +1129,9 @@ diff -Naru libpng-1.6.14.org/pngset.c libpng-1.6.14/pngset.c
  }
  
  #ifdef PNG_oFFs_SUPPORTED
-@@ -1065,6 +1070,147 @@
+@@ -1090,6 +1095,147 @@
  }
- #endif /* PNG_sPLT_SUPPORTED */
+ #endif /* sPLT */
  
 +#ifdef PNG_APNG_SUPPORTED
 +png_uint_32 PNGAPI
@@ -1277,10 +1277,10 @@ diff -Naru libpng-1.6.14.org/pngset.c libpng-1.6.14/pngset.c
  #ifdef PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED
  static png_byte
  check_location(png_const_structrp png_ptr, int location)
-diff -Naru libpng-1.6.14.org/pngstruct.h libpng-1.6.14/pngstruct.h
---- libpng-1.6.14.org/pngstruct.h	2014-10-23 23:57:22.661675091 +0900
-+++ libpng-1.6.14/pngstruct.h	2014-10-23 23:57:22.735677664 +0900
-@@ -409,6 +409,27 @@
+diff -Naru libpng-1.6.17.org/pngstruct.h libpng-1.6.17/pngstruct.h
+--- libpng-1.6.17.org/pngstruct.h	2015-03-27 07:56:22.470190029 +0900
++++ libpng-1.6.17/pngstruct.h	2015-03-27 07:56:22.541191980 +0900
+@@ -408,6 +408,27 @@
     png_byte filter_type;
  #endif
  
@@ -1308,10 +1308,10 @@ diff -Naru libpng-1.6.14.org/pngstruct.h libpng-1.6.14/pngstruct.h
  /* New members added in libpng-1.2.0 */
  
  /* New members added in libpng-1.0.2 but first enabled by default in 1.2.0 */
-diff -Naru libpng-1.6.14.org/pngtest.c libpng-1.6.14/pngtest.c
---- libpng-1.6.14.org/pngtest.c	2014-10-23 23:57:22.661675091 +0900
-+++ libpng-1.6.14/pngtest.c	2014-10-23 23:57:22.736677699 +0900
-@@ -848,6 +848,10 @@
+diff -Naru libpng-1.6.17.org/pngtest.c libpng-1.6.17/pngtest.c
+--- libpng-1.6.17.org/pngtest.c	2015-03-27 07:56:22.470190029 +0900
++++ libpng-1.6.17/pngtest.c	2015-03-27 07:56:22.541191980 +0900
+@@ -849,6 +849,10 @@
     png_uint_32 width, height;
     int num_pass = 1, pass;
     int bit_depth, color_type;
@@ -1322,7 +1322,7 @@ diff -Naru libpng-1.6.14.org/pngtest.c libpng-1.6.14/pngtest.c
  
     row_buf = NULL;
     error_parameters.file_name = inname;
-@@ -1314,6 +1318,20 @@
+@@ -1316,6 +1320,20 @@
        }
     }
  #endif
@@ -1343,7 +1343,7 @@ diff -Naru libpng-1.6.14.org/pngtest.c libpng-1.6.14/pngtest.c
  #ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED
     {
        png_unknown_chunkp unknowns;
-@@ -1375,6 +1393,89 @@
+@@ -1377,6 +1395,89 @@
     t_misc += (t_stop - t_start);
     t_start = t_stop;
  #endif
@@ -1433,9 +1433,9 @@ diff -Naru libpng-1.6.14.org/pngtest.c libpng-1.6.14/pngtest.c
     for (pass = 0; pass < num_pass; pass++)
     {
        pngtest_debug1("Writing row data for pass %d", pass);
-diff -Naru libpng-1.6.14.org/pngwrite.c libpng-1.6.14/pngwrite.c
---- libpng-1.6.14.org/pngwrite.c	2014-10-23 23:57:22.662675126 +0900
-+++ libpng-1.6.14/pngwrite.c	2014-10-23 23:57:22.737677734 +0900
+diff -Naru libpng-1.6.17.org/pngwrite.c libpng-1.6.17/pngwrite.c
+--- libpng-1.6.17.org/pngwrite.c	2015-03-27 07:56:22.471190057 +0900
++++ libpng-1.6.17/pngwrite.c	2015-03-27 07:56:22.542192007 +0900
 @@ -127,6 +127,10 @@
      * application continues writing the PNG.  So check the 'invalid' flag here
      * too.
@@ -1446,7 +1446,7 @@ diff -Naru libpng-1.6.14.org/pngwrite.c libpng-1.6.14/pngwrite.c
 +#endif
  #ifdef PNG_GAMMA_SUPPORTED
  #  ifdef PNG_WRITE_gAMA_SUPPORTED
-       if (!(info_ptr->colorspace.flags & PNG_COLORSPACE_INVALID) &&
+       if ((info_ptr->colorspace.flags & PNG_COLORSPACE_INVALID) == 0 &&
 @@ -359,6 +363,11 @@
        png_benign_error(png_ptr, "Wrote palette index exceeding num_palette");
  #endif
@@ -1459,7 +1459,7 @@ diff -Naru libpng-1.6.14.org/pngwrite.c libpng-1.6.14/pngwrite.c
     /* See if user wants us to write information chunks */
     if (info_ptr != NULL)
     {
-@@ -1665,6 +1674,43 @@
+@@ -1680,6 +1689,43 @@
  }
  #endif
  
@@ -1503,10 +1503,10 @@ diff -Naru libpng-1.6.14.org/pngwrite.c libpng-1.6.14/pngwrite.c
  
  #ifdef PNG_SIMPLIFIED_WRITE_SUPPORTED
  #ifdef PNG_STDIO_SUPPORTED /* currently required for png_image_write_* */
-diff -Naru libpng-1.6.14.org/pngwutil.c libpng-1.6.14/pngwutil.c
---- libpng-1.6.14.org/pngwutil.c	2014-10-23 23:57:22.663675161 +0900
-+++ libpng-1.6.14/pngwutil.c	2014-10-23 23:57:22.738677769 +0900
-@@ -902,6 +902,11 @@
+diff -Naru libpng-1.6.17.org/pngwutil.c libpng-1.6.17/pngwutil.c
+--- libpng-1.6.17.org/pngwutil.c	2015-03-27 07:56:22.477190222 +0900
++++ libpng-1.6.17/pngwutil.c	2015-03-27 07:56:22.543192035 +0900
+@@ -901,6 +901,11 @@
     /* Write the chunk */
     png_write_complete_chunk(png_ptr, png_IHDR, buf, (png_size_t)13);
  
@@ -1518,9 +1518,9 @@ diff -Naru libpng-1.6.14.org/pngwutil.c libpng-1.6.14/pngwutil.c
     if ((png_ptr->do_filter) == PNG_NO_FILTERS)
     {
        if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE ||
-@@ -1080,7 +1085,14 @@
+@@ -1079,7 +1084,14 @@
                 optimize_cmf(data, png_image_size(png_ptr));
- #        endif
+ #endif
  
 +#        ifdef PNG_WRITE_APNG_SUPPORTED
 +            if (png_ptr->num_frames_written == 0)
@@ -1533,9 +1533,9 @@ diff -Naru libpng-1.6.14.org/pngwutil.c libpng-1.6.14/pngwutil.c
           png_ptr->mode |= PNG_HAVE_IDAT;
  
           png_ptr->zstream.next_out = data;
-@@ -1126,7 +1138,15 @@
-                optimize_cmf(data, png_image_size(png_ptr));
- #        endif
+@@ -1125,7 +1137,15 @@
+             optimize_cmf(data, png_image_size(png_ptr));
+ #endif
  
 +#        ifdef PNG_WRITE_APNG_SUPPORTED
 +            if (png_ptr->num_frames_written == 0)
@@ -1549,7 +1549,7 @@ diff -Naru libpng-1.6.14.org/pngwutil.c libpng-1.6.14/pngwutil.c
           png_ptr->zstream.avail_out = 0;
           png_ptr->zstream.next_out = NULL;
           png_ptr->mode |= PNG_HAVE_IDAT | PNG_AFTER_IDAT;
-@@ -1939,6 +1959,82 @@
+@@ -1938,6 +1958,82 @@
  }
  #endif
  
@@ -1632,9 +1632,9 @@ diff -Naru libpng-1.6.14.org/pngwutil.c libpng-1.6.14/pngwutil.c
  /* Initializes the row writing capability of libpng */
  void /* PRIVATE */
  png_write_start_row(png_structrp png_ptr)
-@@ -3026,4 +3122,39 @@
+@@ -3028,4 +3124,39 @@
     }
- #endif
+ #endif /* WRITE_FLUSH */
  }
 +
 +#ifdef PNG_WRITE_APNG_SUPPORTED
@@ -1671,10 +1671,10 @@ diff -Naru libpng-1.6.14.org/pngwutil.c libpng-1.6.14/pngwutil.c
 +    png_ptr->usr_width = png_ptr->width;
 +}
 +#endif /* PNG_WRITE_APNG_SUPPORTED */
- #endif /* PNG_WRITE_SUPPORTED */
-diff -Naru libpng-1.6.14.org/scripts/symbols.def libpng-1.6.14/scripts/symbols.def
---- libpng-1.6.14.org/scripts/symbols.def	2014-10-23 23:57:22.670675404 +0900
-+++ libpng-1.6.14/scripts/symbols.def	2014-10-23 23:57:22.746678047 +0900
+ #endif /* WRITE */
+diff -Naru libpng-1.6.17.org/scripts/symbols.def libpng-1.6.17/scripts/symbols.def
+--- libpng-1.6.17.org/scripts/symbols.def	2015-03-27 07:56:22.482190359 +0900
++++ libpng-1.6.17/scripts/symbols.def	2015-03-27 07:56:22.548192172 +0900
 @@ -249,3 +249,23 @@
   png_set_check_for_invalid_index @242
   png_get_palette_max @243