
Libpng 1.2.51 - February 6, 2014

This is a public release of libpng, intended for use in production codes.

Files available for download:

Source files with LF line endings (for Unix/Linux) and with a
"configure" script

   libpng-1.2.51.tar.xz (LZMA-compressed, recommended)
   libpng-1.2.51.tar.gz
   libpng-1.2.51.tar.bz2

Source files with LF line endings (for Unix/Linux) without the
"configure" script

   libpng-1.2.51-no-config.tar.xz (LZMA-compressed, recommended)
   libpng-1.2.51-no-config.tar.gz
   libpng-1.2.51-no-config.tar.bz2

Source files with CRLF line endings (for Windows), without the
"configure" script

   lpng1251.zip
   lpng1251.7z
   lpng1251.tar.bz2

Project files

   libpng-1.2.51-project-netware.zip
   libpng-1.2.51-project-wince.zip

Other information:

   libpng-1.2.51-README.txt
   libpng-1.2.51-KNOWNBUGS.txt
   libpng-1.2.51-LICENSE.txt
   libpng-1.2.51-Y2K-compliance.txt
   libpng-1.2.51-[previous version]-diff.txt

Changes since the last public release (1.2.50):

version 1.2.51 [February 6, 2014]

version 1.0.61 and 1.2.51 [February 6, 2014]
  Ignore, with a warning, out-of-range value of num_trans in png_set_tRNS().
  Replaced AM_CONFIG_HEADER(config.h) with AC_CONFIG_HEADERS([config.h])
    in configure.ac
  Changed default value of PNG_USER_CACHE_MAX from 0 to 32767 in pngconf.h.
  Avoid a possible memory leak in contrib/gregbook/readpng.c
  Revised libpng.3 so that "doclifter" can process it.
  Changed '"%s"m' to '"%s" m' in png_debug macros to improve portability
    among compilers.
  Rebuilt the configure scripts with autoconf-2.69 and automake-1.14.1
  Removed potentially misleading warning from png_check_IHDR().
  Quiet set-but-not-used warnings in pngset.c
  Quiet an uninitialized memory warning from VC2013 in png_get_png().
  Quiet unused variable warnings from clang by porting PNG_UNUSED() from
    libpng-1.4.6.
  Added -DZ_SOLO to CFLAGS in contrib/pngminim/*/makefile
  Added an #ifdef PNG_FIXED_POINT_SUPPORTED/#endif in pngset.c

Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit
https://lists.sourceforge.net/lists/listinfo/png-mng-implement
to subscribe)
or to glennrp at users.sourceforge.net

Glenn R-P
#endif
