merged libpng 1.5.7 to trunk
[wxWidgets.git] / src / png / ANNOUNCE
1
2 Libpng 1.5.7 - December 15, 2011
3
4 This is a public release of libpng, intended for use in production codes.
5
6 Files available for download:
7
8 Source files with LF line endings (for Unix/Linux) and with a
9 "configure" script
10
11    libpng-1.5.7.tar.xz (LZMA-compressed, recommended)
12    libpng-1.5.7.tar.gz
13    libpng-1.5.7.tar.bz2
14
15 Source files with CRLF line endings (for Windows), without the
16 "configure" script
17
18    lpng157.7z  (LZMA-compressed, recommended)
19    lpng157.zip
20
21 Other information:
22
23    libpng-1.5.7-README.txt
24    libpng-1.5.7-LICENSE.txt
25
26 Changes since the last public release (1.5.6):
27   Added support for ARM processor (Mans Rullgard)
28   Fixed bug in pngvalid on early allocation failure; fixed type cast in
29     pngmem.c; pngvalid would attempt to call png_error() if the allocation
30     of a png_struct or png_info failed. This would probably have led to a
31     crash.  The pngmem.c implementation of png_malloc() included a cast
32     to png_size_t which would fail on large allocations on 16-bit systems.
33   Fix for the preprocessor of the Intel C compiler. The preprocessor
34     splits adjacent @ signs with a space; this changes the concatentation
35     token from @-@-@ to PNG_JOIN; that should work with all compiler
36     preprocessors.
37   Paeth filter speed improvements from work by Siarhei Siamashka. This
38     changes the 'Paeth' reconstruction function to improve the GCC code
39     generation on x86. The changes are only part of the suggested ones;
40     just the changes that definitely improve speed and remain simple.
41     The changes also slightly increase the clarity of the code.
42   Check compression_type parameter in png_get_iCCP and remove spurious
43     casts. The compression_type parameter is always assigned to, so must
44     be non-NULL. The cast of the profile length potentially truncated the
45     value unnecessarily on a 16-bit int system, so the cast of the (byte)
46     compression type to (int) is specified by ANSI-C anyway.
47   Fixed FP division by zero in pngvalid.c; the 'test_pixel' code left
48     the sBIT fields in the test pixel as 0, which resulted in a floating
49     point division by zero which was irrelevant but causes systems where
50     FP exceptions cause a crash. Added code to pngvalid to turn on FP
51     exceptions if the appropriate glibc support is there to ensure this is
52     tested in the future.
53   Added versioning to pnglibconf.h comments.
54   Installed more accurate linear to sRGB conversion tables. The slightly
55     modified tables reduce the number of 16-bit values that
56     convert to an off-by-one 8-bit value.  The "makesRGB.c" code that was used
57     to generate the tables is now in a contrib/sRGBtables sub-directory.
58   Added run-time detection of NEON support.
59   Multiple transform bug fixes plus a work-round for double gamma correction.
60     libpng does not support more than one transform that requires linear data
61     at once - if this is tried typically the results is double gamma
62     correction. Since the simplified APIs can need rgb to gray combined with
63     a compose operation it is necessary to do one of these outside the main
64     libpng transform code. This check-in also contains fixes to various bugs
65     in compose and rgb to gray (on palette).
66   Fixes for C++ compilation using g++ When libpng source is compiled
67     using g++. The compiler imposes C++ rules on the C source; thus it
68     is desireable to make the source work with either C or C++ rules
69     without throwing away useful error information.  This change adds
70     png_voidcast to allow C semantic (void*) cases or the corresponding
71     C++ static_cast operation, as appropriate.
72   Added --noexecstack to assembler file compilation. GCC does not set
73     this on assembler compilation, even though it does on C compilation.
74     This creates security issues if assembler code is enabled; the
75     work-around is to set it by default in the flags for $(CCAS)
76   Removed "zTXt" from warning in generic chunk decompression function.
77   Validate time settings passed to pngset() and png_convert_to_rfc1123()
78     (Frank Busse).
79   Added MINGW support to CMakeLists.txt
80   Reject invalid compression flag or method when reading the iTXt chunk.
81   Moved pngvalid.c into contrib/libtests
82   Rebuilt Makefile.in, configure, etc., with autoconf-2.68
83   Replaced an "#if" with "#ifdef" in pngrtran.c
84   Revised #if PNG_DO_BC block in png.c (use #ifdef and add #else)
85   Revised pngconf.h to use " __declspec(restrict)" only when MSC_VER >= 1400,
86     as in libpng-1.5.4.
87   Put CRLF line endings in the owatcom project files.
88   Updated CMakeLists.txt to account for the relocation of pngvalid.c
89   Minor fixes to pngvalid.c for gcc 4.6.2 compatibility to remove warnings
90     reported by earlier versions.
91
92 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
93 (subscription required; visit
94 https://lists.sourceforge.net/lists/listinfo/png-mng-implement
95 to subscribe)
96 or to glennrp at users.sourceforge.net
97
98 Glenn R-P