
Libpng 1.5.23rc01 - July 9, 2015

This is not intended to be a public release.  It will be replaced
within a few weeks by a public version or by another test version.

Files available for download:

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

   1.5.23rc01.tar.xz (LZMA-compressed, recommended)
   1.5.23rc01.tar.gz
   1.5.23rc01.tar.bz2

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

   lp1523r01.7z  (LZMA-compressed, recommended)
   lp1523r01.zip

Other information:

   1.5.23rc01-README.txt
   1.5.23rc01-LICENSE.txt
   libpng-1.5.23rc01-*.asc (armored detached GPG signatures)

Changes since the last public release (1.5.22):

Version 1.5.23beta01 [May 21, 2015]
  Removed unused PNG_SET_CHUNK_[CACHE|MALLOC]_LIMIT_SUPPORTED definitions
    from pnglibconf.h.prebuilt (Andrew Church).
  Replaced "unexpected" with an integer in pngset.c where a long was
    expected, to avoid a compiler warning when PNG_DEBUG > 1.
  Fix typecast in a png_debug2() statement in png_set_text_2() to
    avoid a compiler warning in PNG_DEBUG builds.
  Avoid Coverity issue 80858 (REVERSE NULL) in pngtest.c PNG_DEBUG builds.
  Avoid a harmless potential integer overflow in png_XYZ_from_xy() (Bug
    report from Christopher Ferris).

Version 1.5.23beta02 [June 30, 2015]
  Removed WRITE_WEIGHTED_FILTERED code, to save a few kbytes of the
    compiled library size. It never worked properly and as far as we can
    tell, no one uses it. The png_set_filter_heuristics() and
    png_set_filter_heuristics_fixed() APIs are retained but deprecated
    and do nothing.
  Quieted Coverity issues in pngvalid.c.
  Removed non-working progressive reader 'skip' function.

Version 1.5.23rc01 [July 9, 2015]
  Belatedly added Mans Rullgard to the list of Contributing Authors.

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
