-Libpng 1.6.7 - November 14, 2013
+Libpng 1.6.9 - February 6, 2014
This is a public release of libpng, intended for use in production codes.
Source files with LF line endings (for Unix/Linux) and with a
"configure" script
- libpng-1.6.7.tar.xz (LZMA-compressed, recommended)
- libpng-1.6.7.tar.gz
+ libpng-1.6.9.tar.xz (LZMA-compressed, recommended)
+ libpng-1.6.9.tar.gz
Source files with CRLF line endings (for Windows), without the
"configure" script
- lpng167.7z (LZMA-compressed, recommended)
- lpng167.zip
+ lpng169.7z (LZMA-compressed, recommended)
+ lpng169.zip
Other information:
- libpng-1.6.7-README.txt
- libpng-1.6.7-LICENSE.txt
+ libpng-1.6.9-README.txt
+ libpng-1.6.9-LICENSE.txt
Gnupg/*.asc (PGP armored detached signatures)
-Changes since the last public release (1.6.6):
-
- Revised unknown chunk code to correct several bugs in the NO_SAVE_/NO_WRITE
- combination
- Allow HANDLE_AS_UNKNOWN to work when other options are configured off. Also
- fixed the pngminim makefiles to work when $(MAKEFLAGS) contains stuff
- which terminates the make options (as by default in recent versions of
- Gentoo).
- Avoid up-cast warnings in pngvalid.c. On ARM the alignment requirements of
- png_modifier are greater than that of png_store and as a consequence
- compilation of pngvalid.c results in a warning about increased alignment
- requirements because of the bare cast to (png_modifier*). The code is safe,
- because the pointer is known to point to a stack allocated png_modifier,
- but this change avoids the warning.
- Fixed default behavior of ARM_NEON_API. If the ARM NEON API option was
- compiled without the CHECK option it defaulted to on, not off.
- Check user callback behavior in pngunknown.c. Previous versions compiled
- if SAVE_UNKNOWN was not available but did nothing since the callback
- was never implemented.
- Merged pngunknown.c with 1.7 version and back ported 1.7 improvements/fixes
- Made changes for compatibility with automake 1.14:
- 1) Added the 'compile' program to the list of programs that must be cleaned
- in autogen.sh
- 2) Added 'subdir-objects' which causes .c files in sub-directories to be
- compiled such that the corresponding .o files are also in the
- sub-directory. This is because automake 1.14 warns that the
- current behavior of compiling to the top level directory may be removed
- in the future.
- 3) Updated dependencies on pnglibconf.h to match the new .o locations and
- added all the files in contrib/libtests and contrib/tools that depend
- on pnglibconf.h
- 4) Added 'BUILD_SOURCES = pnglibconf.h'; this is the automake recommended
- way of handling the dependencies of sources that are machine generated;
- unfortunately it only works if the user does 'make all' or 'make check',
- so the dependencies (3) are still required.
- Cleaned up (char*) casts of zlib messages. The latest version of the Intel C
- compiler complains about casting a string literal as (char*), so copied the
- treatment of z_const from the library code into pngfix.c
- Simplified error message code in pngunknown. The simplification has the
- useful side effect of avoiding a bogus warning generated by the latest
- version of the Intel C compiler (it objects to
- condition ? string-literal : string-literal).
- Make autogen.sh work with automake 1.13 as well as 1.14. Do this by always
- removing the 1.14 'compile' script but never checking for it.
- Added ARMv8 support (James Yu <james.yu at linaro.org>). Added file
- arm/filter_neon_intrinsics.c; enable with -mfpu=neon.
- Revised pngvalid to generate size images with as many filters as it can
- manage, limited by the number of rows.
- Cleaned up ARM NEON compilation handling. The tests are now in pngpriv.h
- and detect the broken GCC compilers.
- Allow clang derived from older GCC versions to use ARM intrinsics. This
- causes all clang builds that use -mfpu=neon to use the intrinsics code,
- not the assembler code. This has only been tested on iOS 7. It may be
- necessary to exclude some earlier clang versions but this seems unlikely.
- Changed NEON implementation selection mechanism. This allows assembler
- or intrinsics to be turned on at compile time during the build by defining
- PNG_ARM_NEON_IMPLEMENTATION to the correct value (2 or 1). This macro
- is undefined by default and the build type is selected in pngpriv.h.
- Fixed #include in filter_neon_intrinsics.c and ctype macros. The ctype char
- checking macros take an unsigned char argument, not a signed char.
+Changes since the last public release (1.6.8):
+ Bookkeeping: Moved functions around (no changes). Moved transform
+ function definitions before the place where they are called so that
+ they can be masde static. Move the intrapixel functions and the
+ grayscale palette builder out of the png?tran.c files. The latter
+ isn't a transform function and is no longer used internally, and the
+ former MNG specific functions are better placed in pngread/pngwrite.c
+ Made transform implementation functions static. This makes the internal
+ functions called by png_do_{read|write}_transformations static. On an
+ x86-64 DLL build (Gentoo Linux) this reduces the size of the text
+ segment of the DLL by 1208 bytes, about 0.6%. It also simplifies
+ maintenance by removing the declarations from pngpriv.h and allowing
+ easier changes to the internal interfaces.
+ Rebuilt configure scripts with automake-1.14.1 and autoconf-2.69
+ in the tar distributions.
+ Added checks for libpng 1.5 to pngvalid.c. This supports the use of
+ this version of pngvalid in libpng 1.5
+ Merged with pngvalid.c from libpng-1.7 changes to create a single
+ pngvalid.c
+ Removed #error macro from contrib/tools/pngfix.c (Thomas Klausner).
+ Merged pngrio.c, pngtrans.c, pngwio.c, and pngerror.c with libpng-1.7.0
+ Merged libpng-1.7.0 changes to make no-interlace configurations work
+ with test programs.
+ Revised pngvalid.c to support libpng 1.5, which does not support the
+ PNG_MAXIMUM_INFLATE_WINDOW option, so #define it out when appropriate in
+ pngvalid.c
+ Allow unversioned links created on install to be disabled in configure.
+ In configure builds 'make install' changes/adds links like png.h
+ and libpng.a to point to the newly installed, versioned, files (e.g.
+ libpng17/png.h and libpng17.a). Three new configure options and some
+ rearrangement of Makefile.am allow creation of these links to be disabled.
+ Removed potentially misleading warning from png_check_IHDR().
+ Updated scripts/makefile.* to use CPPFLAGS (Cosmin).
+ Added clang attribute support (Cosmin).
+ Quiet an uninitialized memory warning from VC2013 in png_get_png().
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit