
Libpng 1.4.0beta106 - November 27, 2009

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.4.0beta106.tar.xz (LZMA-compressed, recommended)
   1.4.0beta106.tar.gz
   1.4.0beta106.tar.bz2

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

   lp140b106.zip
   lp140b106.7z

Other information:

   1.4.0beta106-README.txt
   1.4.0beta106-LICENSE.txt

Changes since the last public release (1.2.10):

version 1.2.10beta1 [April 15, 2006]
  Renamed "config.h" to "png_conf.h" and revised Makefile.am to add
    -DPNG_BUILDING_LIBPNG to compile directive, and modified pngconf.h
    to include png_conf.h only when PNG_BUILDING_LIBPNG is defined.

version 1.2.10beta2 [April 15, 2006]
  Manually updated Makefile.in and configure.  Changed png_conf.h.in
    back to config.h.

version 1.2.10beta3 [April 15, 2006]
  Change png_conf.h back to config.h in pngconf.h.

version 1.2.10beta4 [April 16, 2006]
  Change PNG_BUILDING_LIBPNG to PNG_CONFIGURE_LIBPNG in config/Makefile*.

version 1.2.10beta5 [April 16, 2006]
  Added a configure check for compiling assembler code in pnggccrd.c

version 1.2.10beta6 [April 17, 2006]
  Revised the configure check for pnggccrd.c
  Moved -DPNG_CONFIGURE_LIBPNG into @LIBPNG_DEFINES@
  Added @LIBPNG_DEFINES@ to arguments when building libpng.sym

version 1.2.10beta7 [April 18, 2006]
  Change "exec_prefix=$prefix" to "exec_prefix=$(prefix)" in makefiles.

version 1.2.10rc1 [April 19, 2006]
  Ensure pngconf.h doesn't define both PNG_USE_PNGGCCRD and PNG_USE_PNGVCRD
  Fixed "LN_FS" typo in makefile.sco and makefile.solaris.

version 1.2.10rc2 [April 19, 2006]
  Added a backslash between -DPNG_CONFIGURE_LIBPNG and -DPNG_NO_ASSEMBLER_CODE
    in configure.ac
  Made the configure warning about versioned symbols less arrogant.

version 1.2.10rc3 [April 20, 2006]
  Added a note in libpng.txt that png_set_sig_bytes(8) can be used when
    writing an embedded PNG without the 8-byte signature.

version 1.4.0beta1 [April 20, 2006]
  Enabled iTXt support (changes png_struct, thus requires so-number change).
  Cleaned up PNG_ASSEMBLER_CODE_SUPPORTED vs PNG_MMX_CODE_SUPPORTED
  Eliminated PNG_1_0_X and PNG_1_2_X macros.
  Removed deprecated functions png_read_init, png_write_init, png_info_init,
    png_permit_empty_plte, png_set_gray_1_2_4_to_8, and removed the
    deprecated macro PNG_MAX_UINT.
  Moved "PNG_INTERNAL" parts of png.h and pngconf.h into pngintrn.h
  Removed many WIN32_WCE #ifdefs (Cosmin).
  Reduced dependency on C-runtime library when on Windows (Simon-Pierre)
  Replaced sprintf() with png_sprintf() (Simon-Pierre)

version 1.4.0beta2 [April 20, 2006]
  Revised makefiles to avoid making links to libpng.so.*
  Moved some leftover MMX-related defines from pngconf.h to pngintrn.h
  Updated scripts/pngos2.def, pngw32.def, and projects/wince/png32ce.def
  Updated scripts/pngw32.def to comment out MMX functions.

version 1.2.11beta1 [May 31, 2006]
  scripts/libpng.pc.in contained "configure" style version info and would
    not work with makefiles.
  The shared-library makefiles were linking to libpng.so.0 instead of
    libpng.so.3 compatibility as the library.

version 1.4.0beta3 [May 10, 2006]
  Updated scripts/pngw32.def to comment out MMX functions.
  Added PNG_NO_GET_INT_32 and PNG_NO_SAVE_INT_32 macros.
  Revised pngconf.h and added pngconf.h.in so makefiles and configure can
    pass defines to libpng and applications.

version 1.4.0beta4 [May 11, 2006]
  Revised configure.ac, Makefile.am, and many of the makefiles to write
    their defines in pngconf.h.

version 1.4.0beta5 [May 15, 2006]
  Added a missing semicolon in Makefile.am and Makefile.in
  Deleted extraneous square brackets from configure.ac

version 1.2.11beta2 [June 2, 2006]
  Increased sprintf buffer from 50 to 52 chars in pngrutil.c to avoid
    buffer overflow.
  Fixed bug in example.c (png_set_palette_rgb -> png_set_palette_to_rgb))

version 1.4.0beta6 [June 2, 2006]
  Changed sonum from 0 to 1.
  Removed unused prototype for png_check_sig() from png.h

version 1.2.11beta3 [June 5, 2006]
  Prepended "#! /bin/sh" to ltmail.sh and contrib/pngminus/*.sh (Cosmin).
  Removed the accidental leftover Makefile.in~ (Cosmin).
  Avoided potential buffer overflow and optimized buffer in
    png_write_sCAL(), png_write_sCAL_s() (Cosmin).
  Removed the include directories and libraries from CFLAGS and LDFLAGS
    in scripts/makefile.gcc (Nelson A. de Oliveira, Cosmin).

version 1.2.11beta4 [June 6, 2006]
  Allow zero-length IDAT chunks after the entire zlib datastream, but not
    after another intervening chunk type.

version 1.2.11rc2 [June 14, 2006]
  Added prototypes for PNG_INCH_CONVERSIONS functions to png.h
  Revised INSTALL and autogen.sh
  Fixed typo in several makefiles (-W1 should be -Wl)

version 1.2.11rc3 [June 15, 2006]
  Added one zero element to png_gamma_shift[] array in pngrtran.c to avoid
    reading out of bounds.

version 1.4.0beta7 [June 16, 2006]
  Exported png_write_sig (Cosmin).
  Optimized buffer in png_handle_cHRM() (Cosmin).
  Set pHYs = 2835 x 2835 pixels per meter, and added
    sCAL = 0.352778e-3 x 0.352778e-3 meters, in pngtest.png (Cosmin).
  Added png_set_benign_errors(), png_benign_error(), png_chunk_benign_error().
  Added typedef for png_int_32 and png_uint_32 on 64-bit systems.

version 1.4.0beta8 [June 21, 2006]
  Added demonstration of user chunk support in pngtest.c, to support the
    public sTER chunk and a private vpAg chunk.

version 1.4.0beta9 [July 3, 2006]
  Removed ordinals from scripts/pngw32.def and removed png_info_int and
    png_set_gray_1_2_4_to_8 entries.
  Inline call of png_get_uint_32() in png_get_uint_31().
  Use png_get_uint_31() to get vpAg width and height in pngtest.c
  Removed WINCE and Netware projects.
  Removed standalone Y2KINFO file.

version 1.4.0beta10 [July 12, 2006]
  Added "all: pngconf.h.in pngconf.h" target to Makefile.am

version 1.4.0beta11 [August 19, 2006]
  Removed AC_FUNC_MALLOC from configure.ac.
  Added a warning when writing iCCP profile with mismatched profile length.
  Patched pnggccrd.c to assemble on x86_64 platforms.
  Moved chunk header reading into a separate function png_read_chunk_header()
    in pngrutil.c.  The chunk header (len+sig) is now serialized in a single
    operation (Cosmin).
  Implemented support for I/O states. Added png_ptr member io_state, and
    functions png_get_io_chunk_name() and png_get_io_state() in pngget.c
    (Cosmin).
  Added png_get_io_chunk_name and png_get_io_state to scripts/*.def (Cosmin).
  Renamed scripts/pngw32.* to scripts/pngwin.* (Cosmin).
  Removed the include directories and libraries from CFLAGS and LDFLAGS
    in scripts/makefile.gcc (Cosmin).
  Used png_save_uint_32() to set vpAg width and height in pngtest.c (Cosmin).
  Cast to proper type when getting/setting vpAg units in pngtest.c (Cosmin).
  Added pngintrn.h to the Visual C++ projects (Cosmin).
  Removed scripts/list (Cosmin).
  Updated copyright year in scripts/pngwin.def (Cosmin).
  Removed PNG_TYPECAST_NULL and used standard NULL consistently (Cosmin).
  Disallowed the user to redefine png_size_t, and enforced a consistent use
    of png_size_t across libpng (Cosmin).
  Changed the type of png_ptr->rowbytes, PNG_ROWBYTES() and friends
    to png_size_t (Cosmin).
  Removed png_convert_size() and replaced png_sizeof with sizeof (Cosmin).
  Removed some unnecessary type casts (Cosmin).
  Changed prototype of png_get_compression_buffer_size() and
    png_set_compression_buffer_size() to work with png_size_t instead of
    png_uint_32 (Cosmin).
  Removed png_memcpy_check() and png_memset_check() (Cosmin).
  Fixed a typo (png_byte --> png_bytep) in libpng.3 and libpng.txt (Cosmin).
  Clarified that png_zalloc() does not clear the allocated memory,
    and png_zalloc() and png_zfree() cannot be PNGAPI (Cosmin).
  Renamed png_mem_size_t to png_alloc_size_t, fixed its definition in
    pngconf.h, and used it in all memory allocation functions (Cosmin).
  Renamed pngintrn.h to pngpriv.h, added a comment at the top of the file
    mentioning that the symbols declared in that file are private, and
    updated the scripts and the Visual C++ projects accordingly (Cosmin).
  Removed circular references between pngconf.h and pngconf.h.in in
    scripts/makefile.vc*win32 (Cosmin).
  Removing trailing '.' from the warning and error messages (Cosmin).
  Added pngdefs.h that is built by makefile or configure, instead of
    pngconf.h.in (Glenn).
  Detect and fix attempt to write wrong iCCP profile length.

version 1.4.0beta12 [October 19, 2006]
  Changed "logical" to "bitwise" in the documentation.
  Work around Intel-Mac compiler bug by setting PNG_NO_MMX_CODE in pngconf.h
  Add a typecast to stifle compiler warning in pngrutil.c

version 1.4.0beta13 [November 10, 2006]
  Fix potential buffer overflow in sPLT chunk handler.
  Fix Makefile.am to not try to link to noexistent files.

version 1.4.0beta14 [November 15, 2006]
  Check all exported functions for NULL png_ptr.

version 1.4.0beta15 [November 17, 2006]
  Relocated two misplaced tests for NULL png_ptr.
  Built Makefile.in with automake-1.9.6 instead of 1.9.2.
  Build configure with autoconf-2.60 instead of 2.59.
  Add "install: all" in Makefile.am so "configure; make install" will work.

version 1.4.0beta16 [November 17, 2006]
  Added a typecast in png_zalloc().

version 1.4.0beta17 [December 4, 2006]
  Changed "new_key[79] = '\0';" to "(*new_key)[79] = '\0';" in pngwutil.c

version 1.4.0beta18 [December 7, 2006]
  Added scripts/CMakeLists.txt

version 1.4.0beta19 [May 16, 2007]
  Revised scripts/CMakeLists.txt
  Rebuilt configure and Makefile.in with newer tools.
  Added "png_ptr->num_trans=0" before error return in png_handle_tRNS,
    to eliminate a vulnerability (CVE-2007-2554, CERT VU#684664)

version 1.4.0beta20 [July 9, 2008]
  Moved several PNG_HAVE_* macros from pngpriv.h to png.h because applications
    calling set_unknown_chunk_location() need them.
  Moved several macro definitions from pngpriv.h to pngconf.h
  Added png_ptr->unknown_chunk to hold working unknown chunk data, so it
    can be free'ed in case of error.  Revised unknown chunk handling in
    pngrutil.c and pngpread.c to use this structure.
  Merge with changes to the 1.2.X branch, as of 1.2.19beta10.
  Revised makefile.mingw
  Prefer PNG_USE_PNGVCRD when _MSC_VER is defined in pngconf.h

version 1.4.0beta21 [July 21, 2008]
  Moved local array "chunkdata" from pngrutil.c to the png_struct, so
    it will be freed by png_read_destroy() in case of a read error (Kurt
    Christensen).

version 1.4.0beta22 [July 21, 2008]
  Change "purpose" and "buffer" to png_ptr->chunkdata to avoid memory leaking.

version 1.4.0beta23 [July 22, 2008]
  Change "chunkdata = NULL" to "png_ptr->chunkdata = NULL" several places in
    png_decompress_chunk().

version 1.4.0beta24 [July 25, 2008]
  Change all remaining "chunkdata" to "png_ptr->chunkdata" in
    png_decompress_chunk(), and remove "chunkdata" from parameter list.
  Put a call to png_check_chunk_name() in png_read_chunk_header().
  Revised png_check_chunk_name() to reject a name with a lowercase 3rd byte.
  Removed two calls to png_check_chunk_name() occuring later in the process.
  Define PNG_NO_ERROR_NUMBERS by default in pngconf.h

version 1.4.0beta25 [July 30, 2008]
  Added a call to png_check_chunk_name() in pngpread.c
  Reverted png_check_chunk_name() to accept a name with a lowercase 3rd byte.
  Added png_push_have_buffer() function to pngpread.c
  Eliminated PNG_BIG_ENDIAN_SUPPORTED and associated png_get_* macros.
  Made inline expansion of png_get_*() optional with PNG_USE_READ_MACROS.
  Eliminated all PNG_USELESS_TESTS and PNG_CORRECT_PALETTE_SUPPORTED code.
  Synced contrib directory and configure files with libpng-1.2.30beta06.
  Eliminated no-longer-used pngdefs.h (but it's still built in the makefiles)
  Relocated a misplaced "#endif /* PNG_NO_WRITE_FILTER */" in pngwutil.c

version 1.4.0beta26 [August 4, 2008]
  Removed png_push_have_buffer() function in pngpread.c.  It increased the
    compiled library size slightly.
  Changed "-Wall" to "-W -Wall" in the CFLAGS in all makefiles (Cosmin Truta)
  Declared png_ptr "volatile" in pngread.c and pngwrite.c to avoid warnings.
  Updated contrib/visupng/cexcept.h to version 2.0.1
  Added PNG_LITERAL_CHARACTER macros for #, [, and ].

version 1.4.0beta27 [August 5, 2008]
  Revised usage of PNG_LITERAL_SHARP in pngerror.c.
  Moved newline character from individual png_debug messages into the
    png_debug macros.
  Allow user to #define their own png_debug, png_debug1, and png_debug2.

version 1.4.0beta28 [August 5, 2008]
  Revised usage of PNG_LITERAL_SHARP in pngerror.c.
  Added PNG_STRING_NEWLINE macro

version 1.4.0beta29 [August 9, 2008]
  Revised usage of PNG_STRING_NEWLINE to work on non-ISO compilers.
  Added PNG_STRING_COPYRIGHT macro.
  Added non-ISO versions of png_debug macros.

version 1.4.0beta30 [August 14, 2008]
  Added premultiplied alpha feature (Volker Wiendl).

version 1.4.0beta31 [August 18, 2008]
  Moved png_set_premultiply_alpha from pngtrans.c to pngrtran.c
  Removed extra crc check at the end of png_handle_cHRM().  Bug introduced
    in libpng-1.4.0beta20.

version 1.4.0beta32 [August 19, 2008]
  Added PNG_WRITE_FLUSH_SUPPORTED block around new png_flush() call.
  Revised PNG_NO_STDIO version of png_write_flush()

version 1.4.0beta33 [August 20, 2008]
  Added png_set_chunk_cache_max() to limit the total number of sPLT,
    text, and unknown chunks that can be stored.

version 1.4.0beta34 [September 6, 2008]
  Shortened tIME_string to 29 bytes in pngtest.c
  Fixed off-by-one error introduced in png_push_read_zTXt() function in
    libpng-1.2.30beta04/pngpread.c (Harald van Dijk)

version 1.4.0beta35 [October 6, 2008]
  Changed "trans_values" to "trans_color".
  Change png_set_gray_1_2_4_to_8() to png_set_expand_gray_1_2_4_to_8()
    in example.c (debian bug report)

version 1.4.0beta36 [October 25, 2008]
  Sync with tEXt vulnerability fix in libpng-1.2.33rc02.

version 1.4.0beta37 [November 13, 2008]
  Added png_check_cHRM in png.c and moved checking from pngget.c, pngrutil.c,
    and pngwrite.c

version 1.4.0beta38 [November 22, 2008]
  Added check for zero-area RGB cHRM triange in png_check_cHRM() and
    png_check_cHRM_fixed().

version 1.4.0beta39 [November 23, 2008]
  Revised png_warning() to write its message on standard output by default
    when warning_fn is NULL.

version 1.4.0beta40 [November 24, 2008]
  Eliminated png_check_cHRM().  Instead, always use png_check_cHRM_fixed().
  In png_check_cHRM_fixed(), ensure white_y is > 0, and removed redundant
    check for all-zero coordinates that is detected by the triangle check.

version 1.4.0beta41 [November 26, 2008]
  Fixed string vs pointer-to-string error in png_check_keyword().
  Rearranged test expressions in png_check_cHRM_fixed() to avoid internal
    overflows.
  Added PNG_NO_CHECK_cHRM conditional.

version 1.4.0beta42, 43 [December 1, 2008]
  Merge png_debug with version 1.2.34beta04.

version 1.4.0beta44 [December 6, 2008]
  Removed redundant check for key==NULL before calling png_check_keyword()
    to ensure that new_key gets initialized and removed extra warning
    (Merge with version 1.2.34beta05 -- Arvan Pritchard).

version 1.4.0beta45 [December 9, 2008]
  In png_write_png(), respect the placement of the filler bytes in an earlier
    call to png_set_filler() (Jim Barry).

version 1.4.0beta46 [December 10, 2008]
  Undid previous change and added PNG_TRANSFORM_STRIP_FILLER_BEFORE and
    PNG_TRANSFORM_STRIP_FILLER_AFTER conditionals and deprecated
    PNG_TRANSFORM_STRIP_FILLER (Jim Barry).

version 1.4.0beta47 [December 15, 2008]
  Turned off PNG_READ_DITHER_SUPPORTED by default.

version 1.4.0beta48 [February 14, 2009]
  Added new exported function png_calloc().
  Combined several instances of png_malloc(); png_memset() into png_calloc().
  Removed prototype for png_freeptr() that was added in libpng-1.4.0beta24

version 1.4.0beta49 [February 28, 2009]
  Added png_fileno() macro to pngconf.h, used in pngwio.c
  Corrected order of #ifdef's in png_debug definition in png.h
  Fixed bug introduced in libpng-1.4.0beta48 with the memset arguments
    for pcal_params.
  Fixed order of #ifdef directives in the png_debug defines in png.h
    (bug introduced in libpng-1.2.34/1.4.0beta29).
  Revised comments in png_set_read_fn() and png_set_write_fn().

version 1.4.0beta50 [March 18, 2009]
  Use png_calloc() instead of png_malloc() to allocate big_row_buf when
    reading an interlaced file, to avoid a possible UMR.
  Undid recent revision of PNG_NO_STDIO version of png_write_flush().  Users
    having trouble with fflush() can build with PNG_NO_WRITE_FLUSH defined
    or supply their own flush_fn() replacement.
  Revised libpng*.txt and png.h documentation about use of png_write_flush()
    and png_set_write_fn().
  Removed fflush() from pngtest.c.
  Added "#define PNG_NO_WRITE_FLUSH" to contrib/pngminim/encoder/pngusr.h

version 1.4.0beta51 [March 21, 2009]
  Removed new png_fileno() macro from pngconf.h .

version 1.4.0beta52 [March 27, 2009]
  Relocated png_do_chop() ahead of building gamma tables in pngrtran.c
    This avoids building 16-bit gamma tables unnecessarily.
  Removed fflush() from pngtest.c.
  Added "#define PNG_NO_WRITE_FLUSH" to contrib/pngminim/encoder/pngusr.h
  Added a section on differences between 1.0.x and 1.2.x to libpng.3/libpng.txt

version 1.4.0beta53 [April 1, 2009]
  Removed some remaining MMX macros from pngpriv.h
  Fixed potential memory leak of "new_name" in png_write_iCCP() (Ralph Giles)

version 1.4.0beta54 [April 13, 2009]
  Added "ifndef PNG_SKIP_SETJMP_CHECK" block in pngconf.h to allow
    application code writers to bypass the check for multiple inclusion
    of setjmp.h when they know that it is safe to ignore the situation.
  Eliminated internal use of setjmp() in pngread.c and pngwrite.c
  Reordered ancillary chunks in pngtest.png to be the same as what
    pngtest now produces, and made some cosmetic changes to pngtest output.
  Eliminated deprecated png_read_init_3() and png_write_init_3() functions.

version 1.4.0beta55 [April 15, 2009]
  Simplified error handling in pngread.c and pngwrite.c by putting
    the new png_read_cleanup() and png_write_cleanup() functions inline.

version 1.4.0beta56 [April 25, 2009]
  Renamed "user_chunk_data" to "my_user_chunk_data" in pngtest.c to suppress
    "shadowed declaration" warning from gcc-4.3.3.
  Renamed "gamma" to "png_gamma" in pngset.c to avoid "shadowed declaration"
    warning about a global "gamma" variable in math.h on some platforms.

version 1.4.0beta57 [May 2, 2009]
  Removed prototype for png_freeptr() that was added in libpng-1.4.0beta24
    but was never defined (again).
  Rebuilt configure scripts with autoconf-2.63 instead of 2.62
  Removed pngprefs.h and MMX from makefiles

version 1.4.0beta58 [May 14, 2009]
  Changed pngw32.def to pngwin.def in makefile.mingw (typo was intruduced
    in beta57).
  Clarified usage of sig_bit versus sig_bit_p in example.c (Vincent Torri)

version 1.4.0beta59 [May 15, 2009]
  Reformated sources in libpng style (3-space intentation, comment format)
  Fixed typo in libpng docs (PNG_FILTER_AVE should be PNG_FILTER_AVG)
  Added sections about the git repository and our coding style to the
    documentation
  Relocated misplaced #endif in pngwrite.c, sCAL chunk handler.

version 1.4.0beta60 [May 19, 2009]
  Conditionally compile png_read_finish_row() which is not used by
    progressive readers.
  Added contrib/pngminim/preader to demonstrate building minimal progressive
    decoder, based on contrib/gregbook with embedded libpng and zlib.

version 1.4.0beta61 [May 20, 2009]
  In contrib/pngminim/*, renamed "makefile.std" to "makefile", since there
    is only one makefile in those directories, and revised the README files
    accordingly.
  More reformatting of comments, mostly to capitalize sentences.

version 1.4.0beta62 [June 2, 2009]
  Added "#define PNG_NO_WRITE_SWAP" to contrib/pngminim/encoder/pngusr.h
    and "define PNG_NO_READ_SWAP" to decoder/pngusr.h and preader/pngusr.h
  Reformatted several remaining "else statement" into two lines.
  Added a section to the libpng documentation about using png_get_io_ptr()
    in configure scripts to detect the presence of libpng.

version 1.4.0beta63 [June 15, 2009]
  Revised libpng*.txt and libpng.3 to mention calling png_set_IHDR()
    multiple times and to specify the sample order in the tRNS chunk,
    because the ISO PNG specification has a typo in the tRNS table.
  Changed several PNG_UNKNOWN_CHUNK_SUPPORTED to
    PNG_HANDLE_AS_UNKNOWN_SUPPORTED, to make the png_set_keep mechanism
    available for ignoring known chunks even when not saving unknown chunks.
  Adopted preference for consistent use of "#ifdef" and "#ifndef" versus
    "#if defined()" and "if !defined()" where possible.

version 1.4.0beta64 [June 24, 2009]
  Eliminated PNG_LEGACY_SUPPORTED code.
  Moved the various unknown chunk macro definitions outside of the
     PNG_READ|WRITE_ANCILLARY_CHUNK_SUPPORTED blocks.

version 1.4.0beta65 [June 26, 2009]
  Added a reference to the libpng license in each file.

version 1.4.0beta66 [June 27, 2009]
  Refer to the libpng license instead of the libpng license in each file.

version 1.4.0beta67 [July 6, 2009]
  Relocated INVERT_ALPHA within png_read_png() and png_write_png().
  Added high-level API transform PNG_TRANSFORM_GRAY_TO_RGB.
  Added an "xcode" project to the projects directory (Alam Arias).

version 1.4.0beta68 [July 19, 2009]
  Avoid some tests in filter selection in pngwutil.c

version 1.4.0beta69 [July 25, 2009]
  Simplified the new filter-selection test.  This runs faster in the
    common "PNG_ALL_FILTERS" and PNG_FILTER_NONE cases.
  Removed extraneous declaration from the new call to png_read_gray_to_rgb()
    (bug introduced in libpng-1.4.0beta67).
  Fixed up xcode project (Alam Arias)

version 1.4.0beta70 [July 27, 2009]
  Avoid a possible NULL dereference in debug build, in png_set_text_2().
    (bug introduced in libpng-0.95, discovered by Evan Rouault)

version 1.4.0beta71 [July 29, 2009]
  Rebuilt configure scripts with autoconf-2.64.
  Added a prototype for png_64bit_product() in png.c

version 1.4.0beta72 [August 1, 2009]
  Replaced *.tar.lzma with *.tar.xz in distribution.  Get the xz codec
    from <http://tukaani.org/xz>.

version 1.4.0beta73 [August 1, 2009]
  Reject attempt to write iCCP chunk with negative embedded profile length
    (JD Chen)

version 1.4.0beta74 [August 8, 2009]
  Changed png_ptr and info_ptr member "trans" to "trans_alpha".

version 1.4.0beta75 [August 21, 2009]
  Removed an extra png_debug() recently added to png_write_find_filter().
  Fixed incorrect #ifdef in pngset.c regarding unknown chunk support.

version 1.4.0beta76 [August 22, 2009]
  Moved an incorrectly located test in png_read_row() in pngread.c

version 1.4.0beta77 [August 27, 2009]
  Removed lpXYZ.tar.bz2 (with CRLF), KNOWNBUG, libpng-x.y.z-KNOWNBUG.txt,
    and the "noconfig" files from the distribution.
  Moved CMakeLists.txt from scripts into the main libpng directory.
  Various bugfixes and improvements to CMakeLists.txt (Philip Lowman)

version 1.4.0beta78 [August 31, 2009]
  Converted all PNG_NO_* tests to PNG_*_SUPPORTED everywhere except pngconf.h
  Eliminated PNG_NO_FREE_ME and PNG_FREE_ME_SUPPORTED macros.
  Use png_malloc plus a loop instead of png_calloc() to initialize
    row_pointers in png_read_png().

version 1.4.0beta79 [September 1, 2009]
  Eliminated PNG_GLOBAL_ARRAYS and PNG_LOCAL_ARRAYS; always use local arrays.
  Eliminated PNG_CALLOC_SUPPORTED macro and always provide png_calloc().

version 1.4.0beta80 [September 17, 2009]
  Removed scripts/libpng.icc
  Changed typecast of filler from png_byte to png_uint_16 in png_set_filler().
    (Dennis Gustafsson)
  Fixed typo introduced in beta78 in pngtest.c ("#if def " should be "#ifdef ")

version 1.4.0beta81 [September 23, 2009]
  Eliminated unused PNG_FLAG_FREE_* defines from pngpriv.h
  Expanded TAB characters in pngrtran.c
  Removed PNG_CONST from all "PNG_CONST PNG_CHNK" declarations to avoid
    compiler complaints about doubly declaring things "const".
  Changed all "#if [!]defined(X)" to "if[n]def X" where possible.
  Eliminated unused png_ptr->row_buf_size

version 1.4.0beta82 [September 25, 2009]
  Moved redundant IHDR checking into new png_check_IHDR() in png.c
    and report all errors found in the IHDR data.
  Eliminated useless call to png_check_cHRM() from pngset.c

version 1.4.0beta83 [September 25, 2009]
  Revised png_check_IHDR() to eliminate bogus complaint about filter_type.

version 1.4.0beta84 [September 30, 2009]
  Fixed some inconsistent indentation in pngconf.h
  Revised png_check_IHDR() to add a test for width variable less than 32-bit.

version 1.4.0beta85 [October 1, 2009]
  Revised png_check_IHDR() again, to check info_ptr members instead of
    the contents of the returned parameters.

version 1.4.0beta86 [October 9, 2009]
  Updated the "xcode" project (Alam Arias).
  Eliminated a shadowed declaration of "pp" in png_handle_sPLT().

version 1.4.0rc01 [October 19, 2009]
  Trivial cosmetic changes.

version 1.4.0beta87 [October 30, 2009]
  Moved version 1.4.0 back into beta.

version 1.4.0beta88 [October 30, 2009]
  Revised libpng*.txt section about differences between 1.2.x and 1.4.0
    because most of the new features have now been ported back to 1.2.41

version 1.4.0beta89 [November 1, 2009]
  More bugfixes and improvements to CMakeLists.txt (Philip Lowman)
  Removed a harmless extra png_set_invert_alpha() from pngwrite.c
  Apply png_user_chunk_cache_max within png_decompress_chunk().
  Merged libpng-1.2.41.txt with libpng-1.4.0.txt where appropriate.

version 1.4.0beta90 [November 2, 2009]
  Removed all remaining WIN32_WCE #ifdefs except those involving the
    time.h "tm" structure

version 1.4.0beta91 [November 3, 2009]
  Updated scripts/pngw32.def and projects/wince/png32ce.def
  Copied projects/wince/png32ce.def to the scripts directory.
  Added scripts/makefile.wce
  Patched ltmain.sh for wince support.
  Added PNG_CONVERT_tIME_SUPPORTED macro.

version 1.4.0beta92 [November 4, 2009]
  Make inclusion of time.h in pngconf.h depend on PNG_CONVERT_tIME_SUPPORTED
  Make #define PNG_CONVERT_tIME_SUPPORTED depend on PNG_WRITE_tIME_SUPPORTED
  Revised libpng*.txt to describe differences from 1.2.40 to 1.4.0 (instead
    of differences from 1.2.41 to 1.4.0)

version 1.4.0beta93 [November 7, 2009]
  Added PNG_DEPSTRUCT, PNG_DEPRECATED, PNG_USE_RESULT, PNG_NORETURN, and
    PNG_ALLOCATED macros to detect deprecated direct access to the
    png_struct or info_struct members and other deprecated usage in
    applications (John Bowler).
  Updated scripts/makefile* to add "-DPNG_CONFIGURE_LIBPNG" to CFLAGS,
    to prevent warnings about direct access to png structs by libpng
    functions while building libpng.  They need to be tested, especially
    those using compilers other than gcc.
  Updated projects/visualc6 and visualc71 with "/d PNG_CONFIGURE_LIBPNG".
    They should work but still need to be updated to remove
    references to pnggccrd.c or pngvcrd.c and ASM building.
  Added README.txt to the beos, cbuilder5, netware, and xcode projects warning
    that they need to be updated, to remove references to pnggccrd.c and
    pngvcrd.c and to depend on pngpriv.h
  Removed three direct references to read_info_ptr members in pngtest.c
    that were detected by the new PNG_DEPSTRUCT macro.
  Moved the png_debug macro definitions and the png_read_destroy(),
    png_write_destroy() and png_far_to_near() prototypes from png.h
    to pngpriv.h (John Bowler)
  Moved the synopsis lines for png_read_destroy(), png_write_destroy()
    png_debug(), png_debug1(), and png_debug2() from libpng.3 to libpngpf.3.

version 1.4.0beta94 [November 9, 2009]
  Removed the obsolete, unused pnggccrd.c and pngvcrd.c files.
  Updated CMakeLists.txt to add "-DPNG_CONFIGURE_LIBPNG" to the definitions.
  Removed dependency of pngtest.o on pngpriv.h in the makefiles.
  Only #define PNG_DEPSTRUCT, etc. in pngconf.h if not already defined.

version 1.4.0beta95 [November 10, 2009]
  Changed png_check_sig() to !png_sig_cmp() in contrib programs.
  Added -DPNG_CONFIGURE_LIBPNG to contrib/pngminm/*/makefile
  Changed png_check_sig() to !png_sig_cmp() in contrib programs.
  Corrected the png_get_IHDR() call in contrib/gregbook/readpng2.c
  Changed pngminim/*/gather.sh to stop trying to remove pnggccrd.c and pngvcrd.c
  Added dependency on pngpriv.h in contrib/pngminim/*/makefile

version 1.4.0beta96 [November 12, 2009]
  Renamed scripts/makefile.wce to scripts/makefile.cegcc
  Revised Makefile.am to use libpng.sys while building libpng.so
    so that only PNG_EXPORT functions are exported.
  Removed the deprecated png_check_sig() function/macro.
  Removed recently removed function names from scripts/*.def
  Revised pngtest.png to put chunks in the same order written by pngtest
    (evidently the same change made in libpng-1.0beta54 was lost).
  Added PNG_PRIVATE macro definition in pngconf.h for possible future use.

version 1.4.0beta97 [November 13, 2009]
  Restored pngtest.png to the libpng-1.4.0beta7 version.
  Removed projects/beos and netware.txt; no one seems to be supporting them.
  Revised Makefile.in

version 1.4.0beta98 [November 13, 2009]
  Added the "xcode" project to zip distributions,
  Fixed a typo in scripts/pngwin.def introduced in beta97.

version 1.4.0beta99 [November 14, 2009]
  Moved libpng-config.in and libpng.pc-configure.in out of the scripts
    directory, to libpng-config.in and libpng-pc.in, respectively, and
    modified Makefile.am and configure.ac accordingly.  Now "configure"
    needs nothing from the "scripts" directory.

version 1.4.0beta100 [November 14, 2009]
  Removed ASM builds from projects/visualc6 and projects/visualc71
  Removed scripts/makefile.nommx and makefile.vcawin32
  Revised CMakeLists.txt to account for new location of libpng-config.in
    and libpng-pc.in
  Updated INSTALL to reflect removal and relocation of files.

version 1.4.0beta101 [November 14, 2009]
  Restored the binary files (*.jpg, *.png, some project files) that were
    accidentally deleted from the zip and 7z distributions when the xcode
    project was added.

version 1.4.0beta102 [November 18, 2009]
  Added libpng-config.in and libpng-pc.in to the zip and 7z distributions.
  Fixed a typo in projects/visualc6/pngtest.dsp, introduced in beta100.
  Moved descriptions of makefiles and other scripts out of INSTALL into
    scripts/README.txt
  Updated the copyright year in scripts/pngwin.rc from 2006 to 2009.

version 1.4.0beta103 [November 21, 2009]
  Removed obsolete comments about ASM from projects/visualc71/README_zlib.txt
  Align row_buf on 16-byte boundary in memory.
  Restored the PNG_WRITE_FLUSH_AFTER_IEND guard around the call to png_flush()
    after png_write_IEND().  See 1.4.0beta32, 1.4.0beta50 changes above
    and 1.2.30, 1.2.30rc01 and rc03 in 1.2.41 CHANGES.  Someone needs this
    feature.
  Make the 'png_jmpbuf' macro expand to a call that records the correct
    longjmp function as well as returning a pointer to the setjmp
    jmp_buf buffer, and marked direct access to jmpbuf 'deprecated'.
    (John Bowler)

version 1.4.0beta104 [November 22, 2009]
  Removed png_longjmp_ptr from scripts/*.def and libpng.3
  Rebuilt configure scripts with autoconf-2.65

version 1.4.0beta105 [November 25, 2009]
  Use fast integer PNG_DIVIDE_BY_255() or PNG_DIVIDE_BY_65535() to accomplish
    alpha premultiplication when PNG_READ_COMPOSITE_NODIV_SUPPORTED is defined.
  Changed "/255" to "/255.0" in background calculations to make it clear
    that the 255 is used as a double.

version 1.4.0beta106 [November 27, 2009]
  Removed premultiplied alpha feature.

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
