
Libpng 1.0.34 - April 30, 2008

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.0.34.tar.gz
   libpng-1.0.34.tar.lzma
     (Get the lzma codec from <http://tukaani.org/lzma>).
   libpng-1.0.34.tar.bz2

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

   libpng-1.0.34-no-config.tar.gz
   libpng-1.0.34-no-config.tar.lzma
   libpng-1.0.34-no-config.tar.bz2

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

   lpng1034.zip
   lpng1034.7z
   lpng1034.tar.bz2

Project files

   libpng-1.0.34-project-netware.zip
   libpng-1.0.34-project-wince.zip

Other information:

   libpng-1.0.34-README.txt
   libpng-1.0.34-KNOWNBUGS.txt
   libpng-1.0.34-LICENSE.txt
   libpng-1.0.34-Y2K-compliance.txt

Changes since the last public release (1.0.32):

version 1.0.34 [April 30, 2008]

  Fixed bug (introduced in libpng-1.0.6) with handling zero-length
    unknown chunks.
  Added more information about png_set_keep_unknown_chunks() to the
    documetation.
  Revised documentation about unknown chunk and user chunk handling.
  Issue a png_warning when reading a tRNS chunk with out-of-range samples.
  Added check for NULL ptr in TURBOC version of png_free_default().
  Removed several unnecessary checks for NULL before calling png_free().
  Revised png_set_tRNS() so that calling it twice removes and invalidates
    the previous call.
  Revised pngtest to check for out-of-range tRNS samples.
  Added AC_LIBTOOL_WIN32_DLL to configure.ac
  Added MAINTEINERCLEANFILES variable to Makefile.am
  Avoid changing color_type from GRAY to RGB by
    png_set_expand_gray_1_2_4_to_8().
  Fix broken URL for rfc2083 in png.5 and libpng-*.txt
  Removed a stray object file from contrib/gregbook

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
