
Libpng 1.2.30beta04 - July 10, 2008

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

   libpng-1.2.30beta04.tar.gz
   libpng-1.2.30beta04.tar.lzma
     (Get the lzma codec from <http://tukaani.org/lzma>).
   libpng-1.2.30beta04.tar.bz2

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

   libpng-1.2.30beta04-no-config.tar.gz
   libpng-1.2.30beta04-no-config.tar.lzma
   libpng-1.2.30beta04-no-config.tar.bz2

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

   lp1230b04.zip
   lp1230b04.7z
   lp1230b04.tar.bz2

Project files

   libpng-1.2.30beta04-project-netware.zip
   libpng-1.2.30beta04-project-wince.zip

Other information:

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

Changes since the last public release (1.2.29):

version 1.2.29beta01 [May 1, 2008]
  Removed some stray *.diff and *.orig files

version 1.2.29beta02 [May 1, 2008]
  Reverted Makefile.in, aclocal.m4, and configure to the libpng-1.2.26
    versions.

version 1.2.29beta03 [May 2, 2008]
  Added --force to autogen libtoolize options and --force-missing to
    automake options.
  Changed $(ECHO) to echo in Makefile.am and Makefile.in
  Updated all configure files to autoconf-2.62
  #ifdef out pnggcrd.c code if using MSC_VER

version 1.2.29rc01 [May 4, 2008]
  No changes.

version 1.0.35 and 1.2.29 [May 8, 2008]
  No changes.

version 1.0.37 [May 9, 2008]
  Updated Makefile.in and configure (omitted version 1.0.36).

version 1.2.30beta01 [May 29, 2008]
  Updated libpng.pc-configure.in and libpng-config.in per debian bug reports.

version 1.2.30beta02 [June 25, 2008]
  Restored png_flush(png_ptr) at the end of png_write_end(), that was
    removed from libpng-1.0.9beta03.

version 1.2.30beta03 [July 6, 2008]
  Merged some cosmetic whitespace changes from libpng-1.4.0beta19.
  Inline call of png_get_uint_32() in png_get_uint_31(), as in 1.4.0beta19.
  Added demo of decoding vpAg and sTER chunks to pngtest.c, from 1.4.0beta19.
  Changed PNGMAJ from 0 to 12 in makefile.darwin, which does not like 0.
  Added new private function png_read_chunk_header() from 1.4.0beta19.
  Merge reading of chunk length and chunk type into a single 8-byte read.
  Merge writing of chunk length and chunk type into a single 8-byte write.

version 1.2.30beta04 [July 10, 2008]
  Merged more cosmetic whitespace changes from libpng-1.4.0beta19.

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
