source: trunk/src/3rdparty/libpng/ANNOUNCE@ 952

Last change on this file since 952 was 846, checked in by Dmitry A. Kuminov, 14 years ago

trunk: Merged in qt 4.7.2 sources from branches/vendor/nokia/qt.

File size: 19.9 KB
Line 
1
2Libpng 1.4.0 - January 3, 2010
3
4This is a public release of libpng, intended for use in production codes.
5
6Files available for download:
7
8Source files with LF line endings (for Unix/Linux) and with a
9"configure" script
10
11 libpng-1.4.0.tar.xz (LZMA-compressed, recommended)
12 libpng-1.4.0.tar.gz
13 libpng-1.4.0.tar.bz2
14
15Source files with CRLF line endings (for Windows), without the
16"configure" script
17
18 lpng140.zip
19 lpng140.7z
20
21Other information:
22
23 libpng-1.4.0-README.txt
24 libpng-1.4.0-LICENSE.txt
25
26Changes since the last public release (1.2.10):
27
28version 1.4.0 [January 3, 2010]
29
30 Enabled iTXt support (changes png_struct, thus requires so-number change).
31 Cleaned up PNG_ASSEMBLER_CODE_SUPPORTED vs PNG_MMX_CODE_SUPPORTED
32 Eliminated PNG_1_0_X and PNG_1_2_X macros.
33 Removed deprecated functions png_read_init, png_write_init, png_info_init,
34 png_permit_empty_plte, png_set_gray_1_2_4_to_8, and removed the
35 deprecated macro PNG_MAX_UINT.
36 Moved "PNG_INTERNAL" parts of png.h and pngconf.h into pngintrn.h
37 Removed all WIN32_WCE #ifdefs except those involving the
38 time.h "tm" structure (Cosmin)
39 Reduced dependency on C-runtime library when on Windows (Simon-Pierre)
40 Replaced sprintf() with png_sprintf() (Simon-Pierre)
41 Revised makefiles to avoid making links to libpng.so.*
42 Added a note in libpng.txt that png_set_sig_bytes(8) can be used when
43 writing an embedded PNG without the 8-byte signature.
44 Updated scripts/pngos2.def, pngw32.def, and projects/wince/png32ce.def
45 Added PNG_NO_GET_INT_32 and PNG_NO_SAVE_INT_32 macros.
46 Scripts/libpng.pc.in contained "configure" style version info and would
47 not work with makefiles.
48 Increased sprintf buffer from 50 to 52 chars in pngrutil.c to avoid
49 buffer overflow.
50 Fixed bug in example.c (png_set_palette_rgb -> png_set_palette_to_rgb))
51 Changed sonum from 0 to 1.
52 Removed unused prototype for png_check_sig() from png.h
53 Prepended "#! /bin/sh" to ltmail.sh and contrib/pngminus/*.sh (Cosmin).
54 Avoided potential buffer overflow and optimized buffer in
55 png_write_sCAL(), png_write_sCAL_s() (Cosmin).
56 Removed the include directories and libraries from CFLAGS and LDFLAGS
57 in scripts/makefile.gcc (Nelson A. de Oliveira, Cosmin).
58 Exported png_write_sig (Cosmin).
59 Optimized buffer in png_handle_cHRM() (Cosmin).
60 Allow zero-length IDAT chunks after the entire zlib datastream, but not
61 after another intervening chunk type.
62 Set pHYs = 2835 x 2835 pixels per meter, and added
63 pngtest now produces, and made some cosmetic changes to pngtest output.
64 sCAL = 0.352778e-3 x 0.352778e-3 meters, in pngtest.png (Cosmin).
65 Added png_set_benign_errors(), png_benign_error(), png_chunk_benign_error().
66 Revised INSTALL and autogen.sh
67 Fixed typo in several makefiles (-W1 should be -Wl)
68 Added typedef for png_int_32 and png_uint_32 on 64-bit systems.
69 Added one zero element to png_gamma_shift[] array in pngrtran.c to avoid
70 reading out of bounds.
71 Added demonstration of user chunk support in pngtest.c, to support the
72 public sTER chunk and a private vpAg chunk.
73 Removed ordinals from scripts/pngw32.def and removed png_info_int and
74 png_set_gray_1_2_4_to_8 entries.
75 Inline call of png_get_uint_32() in png_get_uint_31().
76 Removed WINCE and Netware projects.
77 Removed standalone Y2KINFO file.
78 Removed AC_FUNC_MALLOC from configure.ac.
79 Added a warning when writing iCCP profile with mismatched profile length.
80 Patched pnggccrd.c to assemble on x86_64 platforms.
81 Moved chunk header reading into a separate function png_read_chunk_header()
82 in pngrutil.c. The chunk header (len+sig) is now serialized in a single
83 operation (Cosmin).
84 Implemented support for I/O states. Added png_ptr member io_state, and
85 functions png_get_io_chunk_name() and png_get_io_state() in pngget.c
86 (Cosmin).
87 Added png_get_io_chunk_name and png_get_io_state to scripts/*.def (Cosmin).
88 Renamed scripts/pngw32.* to scripts/pngwin.* (Cosmin).
89 Removed the include directories and libraries from CFLAGS and LDFLAGS
90 in scripts/makefile.gcc (Cosmin).
91 Used png_save_uint_32() to set vpAg width and height in pngtest.c (Cosmin).
92 Cast to proper type when getting/setting vpAg units in pngtest.c (Cosmin).
93 Added pngintrn.h to the Visual C++ projects (Cosmin).
94 Removed scripts/list (Cosmin).
95 Updated copyright year in scripts/pngwin.def (Cosmin).
96 Removed PNG_TYPECAST_NULL and used standard NULL consistently (Cosmin).
97 Disallowed the user to redefine png_size_t, and enforced a consistent use
98 of png_size_t across libpng (Cosmin).
99 Changed the type of png_ptr->rowbytes, PNG_ROWBYTES() and friends
100 to png_size_t (Cosmin).
101 Removed png_convert_size() and replaced png_sizeof with sizeof (Cosmin).
102 Removed some unnecessary type casts (Cosmin).
103 Changed prototype of png_get_compression_buffer_size() and
104 png_set_compression_buffer_size() to work with png_size_t instead of
105 png_uint_32 (Cosmin).
106 Removed png_memcpy_check() and png_memset_check() (Cosmin).
107 Fixed a typo (png_byte --> png_bytep) in libpng.3 and libpng.txt (Cosmin).
108 Clarified that png_zalloc() does not clear the allocated memory,
109 and png_zalloc() and png_zfree() cannot be PNGAPI (Cosmin).
110 Renamed png_mem_size_t to png_alloc_size_t, fixed its definition in
111 pngconf.h, and used it in all memory allocation functions (Cosmin).
112 Renamed pngintrn.h to pngpriv.h, added a comment at the top of the file
113 mentioning that the symbols declared in that file are private, and
114 updated the scripts and the Visual C++ projects accordingly (Cosmin).
115 Removing trailing '.' from the warning and error messages (Cosmin).
116 Revised many of the makefiles to write their defines in pngdefs.h.
117 Changed "logical" to "bitwise" in the documentation.
118 Work around Intel-Mac compiler bug by setting PNG_NO_MMX_CODE in pngconf.h
119 Add a typecast to stifle compiler warning in pngrutil.c
120 Detect and fix attempt to write wrong iCCP profile length.
121 Fix potential buffer overflow in sPLT chunk handler.
122 Fix Makefile.am to not try to link to noexistent files.
123 Check all exported functions for NULL png_ptr.
124 Built Makefile.in with automake-1.9.6 instead of 1.9.2.
125 Add "install: all" in Makefile.am so "configure; make install" will work.
126 Added a typecast in png_zalloc().
127 Changed "new_key[79] = '\0';" to "(*new_key)[79] = '\0';" in pngwutil.c
128 Add "png_bytep" typecast to profile while calculating length in pngwutil.c
129 Added scripts/CMakeLists.txt
130 Added "png_ptr->num_trans=0" before error return in png_handle_tRNS,
131 to eliminate a vulnerability (CVE-2007-2554, CERT VU#684664)
132 Added png_ptr->unknown_chunk to hold working unknown chunk data, so it
133 can be free'ed in case of error. Revised unknown chunk handling in
134 pngrutil.c and pngpread.c to use this structure.
135 Prefer PNG_USE_PNGVCRD when _MSC_VER is defined in pngconf.h
136 Revised pngvcrd.c for improved efficiency.
137 Moved local array "chunkdata" from pngrutil.c to the png_struct, so
138 it will be freed by png_read_destroy() in case of a read error (Kurt
139 Christensen).
140 Change "purpose" and "buffer" to png_ptr->chunkdata to avoid memory leaking.
141 Change all "chunkdata" to "png_ptr->chunkdata" in png_decompress_chunk(),
142 and remove "chunkdata" from parameter list.
143 Put a call to png_check_chunk_name() in png_read_chunk_header().
144 Removed two calls to png_check_chunk_name() occuring later in the process.
145 Define PNG_NO_ERROR_NUMBERS by default in pngconf.h
146 Added png_push_have_buffer() function to pngpread.c
147 Eliminated PNG_BIG_ENDIAN_SUPPORTED and associated png_get_* macros.
148 Made inline expansion of png_get_*() optional with PNG_USE_READ_MACROS.
149 Eliminated all PNG_USELESS_TESTS and PNG_CORRECT_PALETTE_SUPPORTED code.
150 Synced contrib directory and configure files with libpng-1.2.30beta06.
151 Changed "-Wall" to "-W -Wall" in the CFLAGS in all makefiles (Cosmin Truta)
152 Declared png_ptr "volatile" in pngread.c and pngwrite.c to avoid warnings.
153 Updated contrib/visupng/cexcept.h to version 2.0.1
154 Added PNG_LITERAL_CHARACTER macros for #, [, and ].
155 Moved newline character from individual png_debug messages into the
156 png_debug macros.
157 Allow user to #define their own png_debug, png_debug1, and png_debug2.
158 Added PNG_STRING_NEWLINE macro
159 Added PNG_STRING_COPYRIGHT macro.
160 Added non-ISO versions of png_debug macros.
161 Added PNG_WRITE_FLUSH_SUPPORTED and PNG_WRITE_FLUSH_AFTER_IEND_SUPPORTED
162 blocks around new png_flush() call.
163 Revised PNG_NO_STDIO version of png_write_flush()
164 Added png_get|set_chunk_cache_max() to limit the total number of sPLT,
165 text, and unknown chunks that can be stored.
166 Shortened tIME_string to 29 bytes in pngtest.c
167 Revised makefile.darwin to fix shared library numbering.
168 Change png_set_gray_1_2_4_to_8() to png_set_expand_gray_1_2_4_to_8()
169 in example.c (debian bug report)
170 Sync with tEXt vulnerability fix in libpng-1.2.33rc02.
171 Added png_check_cHRM in png.c and moved checking from pngget.c, pngrutil.c,
172 and pngwrite.c
173 Added check for zero-area RGB cHRM triange in png_check_cHRM() and
174 png_check_cHRM_fixed().
175 Revised png_warning() to write its message on standard output by default
176 when warning_fn is NULL.
177 Eliminated png_check_cHRM(). Instead, always use png_check_cHRM_fixed().
178 In png_check_cHRM_fixed(), ensure white_y is > 0, and removed redundant
179 check for all-zero coordinates that is detected by the triangle check.
180 Rearranged test expressions in png_check_cHRM_fixed() to avoid internal
181 overflows.
182 Added PNG_NO_CHECK_cHRM conditional.
183 Fixed string vs pointer-to-string error in png_check_keyword().
184 Added PNG_NO_CHECK_cHRM conditional.
185 Merge png_debug with version 1.2.34beta04.
186 Removed redundant check for key==NULL before calling png_check_keyword()
187 to ensure that new_key gets initialized and removed extra warning
188 (Merge with version 1.2.34beta05 -- Arvan Pritchard).
189 Added PNG_TRANSFORM_STRIP_FILLER_BEFORE and PNG_TRANSFORM_STRIP_FILLER_AFTER
190 conditionals and deprecated PNG_TRANSFORM_STRIP_FILLER (Jim Barry).
191 Turned off PNG_READ_DITHER_SUPPORTED by default.
192 Combined several instances of png_malloc(); png_memset() into png_calloc().
193 Fixed order of #ifdef directives in the png_debug defines in png.h
194 (bug introduced in libpng-1.2.34).
195 Revised comments in png_set_read_fn() and png_set_write_fn().
196 Use png_calloc() instead of png_malloc() to allocate big_row_buf when
197 reading an interlaced file, to avoid a possible UMR.
198 Revised libpng*.txt and png.h documentation about use of png_write_flush()
199 and png_set_write_fn().
200 Removed fflush() from pngtest.c.
201 Added "#define PNG_NO_WRITE_FLUSH" to contrib/pngminim/encoder/pngusr.h
202 Removed fflush() from pngtest.c.
203 Added "#define PNG_NO_WRITE_FLUSH" to contrib/pngminim/encoder/pngusr.h
204 Added a section on differences between 1.0.x and 1.2.x to libpng.3/libpng.txt
205 Fixed potential memory leak of "new_name" in png_write_iCCP() (Ralph Giles)
206 Added "ifndef PNG_SKIP_SETJMP_CHECK" block in pngconf.h to allow
207 application code writers to bypass the check for multiple inclusion
208 of setjmp.h when they know that it is safe to ignore the situation.
209 Eliminated internal use of setjmp() in pngread.c and pngwrite.c
210 Eliminated deprecated png_read_init_3() and png_write_init_3() functions.
211 Renamed "user_chunk_data" to "my_user_chunk_data" in pngtest.c to suppress
212 "shadowed declaration" warning from gcc-4.3.3.
213 Renamed "gamma" to "png_gamma" in pngset.c to avoid "shadowed declaration"
214 warning about a global "gamma" variable in math.h on some platforms.
215 Removed pngprefs.h and MMX from makefiles
216 Rebuilt configure scripts with autoconf-2.63 instead of 2.62
217 Clarified usage of sig_bit versus sig_bit_p in example.c (Vincent Torri)
218 Reformated sources in libpng style (3-space intentation, comment format)
219 Fixed typo in libpng docs (PNG_FILTER_AVE should be PNG_FILTER_AVG)
220 Added sections about the git repository and our coding style to the
221 documentation
222 Relocated misplaced #endif in pngwrite.c, sCAL chunk handler.
223 Conditionally compile png_read_finish_row() which is not used by
224 progressive readers.
225 Added contrib/pngminim/preader to demonstrate building minimal progressive
226 decoder, based on contrib/gregbook with embedded libpng and zlib.
227 In contrib/pngminim/*, renamed "makefile.std" to "makefile", since there
228 is only one makefile in those directories, and revised the README files
229 accordingly.
230 Added "#define PNG_NO_WRITE_SWAP" to contrib/pngminim/encoder/pngusr.h
231 and "define PNG_NO_READ_SWAP" to decoder/pngusr.h and preader/pngusr.h
232 Added a section in the documentation about using png_get_io_ptr() in
233 configure scripts to detect the presence of libpng.
234 Revised libpng*.txt and libpng.3 to mention calling png_set_IHDR()
235 multiple times and to specify the sample order in the tRNS chunk,
236 because the ISO PNG specification has a typo in the tRNS table.
237 Changed several PNG_UNKNOWN_CHUNK_SUPPORTED to
238 PNG_HANDLE_AS_UNKNOWN_SUPPORTED, to make the png_set_keep mechanism
239 available for ignoring known chunks even when not saving unknown chunks.
240 Adopted preference for consistent use of "#ifdef" and "#ifndef" versus
241 "#if defined()" and "if !defined()" where possible.
242 Eliminated PNG_LEGACY_SUPPORTED code.
243 Moved the various unknown chunk macro definitions outside of the
244 PNG_READ|WRITE_ANCILLARY_CHUNK_SUPPORTED blocks.
245 Added a reference to the libpng license in each file.
246 Relocated INVERT_ALPHA within png_read_png() and png_write_png().
247 Added high-level API transform PNG_TRANSFORM_GRAY_TO_RGB.
248 Added an "xcode" project to the projects directory (Alam Arias).
249 Avoid some tests in filter selection in pngwutil.c
250 Avoid a possible NULL dereference in debug build, in png_set_text_2().
251 (bug introduced in libpng-0.95, discovered by Evan Rouault)
252 Rebuilt configure scripts with autoconf-2.65
253 Replaced *.tar.lzma with *.tar.xz in distribution. Get the xz codec
254 from <http://tukaani.org/xz>.
255 Reject attempt to write iCCP chunk with negative embedded profile length
256 (JD Chen)
257 Changed "trans" to "trans_alpha" and changed "trans_values" to "trans_color".
258 Removed lpXYZ.tar.bz2 (with CRLF), KNOWNBUG, libpng-x.y.z-KNOWNBUG.txt,
259 and the "noconfig" files from the distribution.
260 Moved CMakeLists.txt from scripts into the main libpng directory.
261 Various bugfixes and improvements to CMakeLists.txt (Philip Lowman)
262 Converted all PNG_NO_* tests to PNG_*_SUPPORTED everywhere except pngconf.h
263 Eliminated PNG_NO_FREE_ME and PNG_FREE_ME_SUPPORTED macros.
264 Use png_malloc plus a loop instead of png_calloc() to initialize
265 row_pointers in png_read_png().
266 Eliminated PNG_GLOBAL_ARRAYS and PNG_LOCAL_ARRAYS; always use local arrays.
267 Eliminated PNG_CALLOC_SUPPORTED macro and always provide png_calloc().
268 Removed scripts/libpng.icc
269 Changed typecast of filler from png_byte to png_uint_16 in png_set_filler().
270 (Dennis Gustafsson)
271 Eliminated unused PNG_FLAG_FREE_* defines from pngpriv.h
272 Expanded TAB characters in pngrtran.c
273 Removed PNG_CONST from all "PNG_CONST PNG_CHNK" declarations to avoid
274 compiler complaints about doubly declaring things "const".
275 Eliminated unused png_ptr->row_buf_size
276 Changed all "#if [!]defined(X)" to "if[n]def X" where possible.
277 Moved redundant IHDR checking into new png_check_IHDR() in png.c
278 and report all errors found in the IHDR data.
279 Eliminated useless call to png_check_cHRM() from pngset.c
280 Eliminated a shadowed declaration of "pp" in png_handle_sPLT().
281 Patched ltmain.sh for wince support.
282 Added PNG_CONVERT_tIME_SUPPORTED macro.
283 Make inclusion of time.h in pngconf.h depend on PNG_CONVERT_tIME_SUPPORTED
284 Make #define PNG_CONVERT_tIME_SUPPORTED depend on PNG_WRITE_tIME_SUPPORTED
285 Updated scripts/pngw32.def and projects/wince/png32ce.def
286 Copied projects/wince/png32ce.def to the scripts directory.
287 Added scripts/makefile.cegcc
288 Revised libpng*.txt to describe differences from 1.2.40 to 1.4.0
289 Added PNG_DEPSTRUCT, PNG_DEPRECATED, PNG_USE_RESULT, PNG_NORETURN, and
290 PNG_ALLOCATED macros to detect deprecated direct access to the
291 png_struct or info_struct members and other deprecated usage in
292 applications (John Bowler).
293 Updated scripts/makefile* to add "-DPNG_CONFIGURE_LIBPNG" to CFLAGS,
294 to prevent warnings about direct access to png structs by libpng
295 functions while building libpng. They need to be tested, especially
296 those using compilers other than gcc.
297 Updated CMakeLists.txt to add "-DPNG_CONFIGURE_LIBPNG" to the definitions.
298 Updated projects/visualc6 and visualc71 with "/d PNG_CONFIGURE_LIBPNG".
299 They should work but still need to be updated to remove
300 references to pnggccrd.c or pngvcrd.c and ASM building.
301 Added README.txt to the beos, cbuilder5, netware, and xcode projects warning
302 that they need to be updated, to remove references to pnggccrd.c and
303 pngvcrd.c and to depend on pngpriv.h
304 Removed three direct references to read_info_ptr members in pngtest.c
305 that were detected by the new PNG_DEPSTRUCT macro.
306 Moved the png_debug macro definitions and the png_read_destroy(),
307 png_write_destroy() and png_far_to_near() prototypes from png.h
308 to pngpriv.h (John Bowler)
309 Moved the synopsis lines for png_read_destroy(), png_write_destroy()
310 png_debug(), png_debug1(), and png_debug2() from libpng.3 to libpngpf.3.
311 Removed the obsolete, unused pnggccrd.c and pngvcrd.c files.
312 Removed dependency of pngtest.o on pngpriv.h in the makefiles.
313 Added -DPNG_CONFIGURE_LIBPNG to contrib/pngminm/*/makefile
314 Changed png_check_sig() to !png_sig_cmp() in contrib programs.
315 Corrected the png_get_IHDR() call in contrib/gregbook/readpng2.c
316 Changed pngminim/*/gather.sh to stop trying to remove pnggccrd.c and pngvcrd.c
317 Added dependency on pngpriv.h in contrib/pngminim/*/makefile
318 Revised Makefile.am to use libpng.sys while building libpng.so
319 so that only PNG_EXPORT functions are exported.
320 Removed the deprecated png_check_sig() function/macro.
321 Removed recently removed function names from scripts/*.def
322 Added PNG_PRIVATE macro definition in pngconf.h for possible future use.
323 Removed projects/beos and netware.txt; no one seems to be supporting them.
324 Moved libpng-config.in and libpng.pc-configure.in out of the scripts
325 directory, to libpng-config.in and libpng.pc.in, respectively, and
326 modified Makefile.am and configure.ac accordingly. Now "configure"
327 needs nothing from the "scripts" directory.
328 Removed ASM builds from projects/visualc6 and projects/visualc71
329 Removed scripts/makefile.nommx and makefile.vcawin32
330 Revised CMakeLists.txt to account for new location of libpng-config.in
331 and libpng.pc.in
332 Updated INSTALL to reflect removal and relocation of files.
333 Moved descriptions of makefiles and other scripts out of INSTALL into
334 scripts/README.txt
335 Updated the copyright year in scripts/pngwin.rc from 2006 to 2009.
336 Removed obsolete comments about ASM from projects/visualc71/README_zlib.txt
337 Align row_buf on 16-byte boundary in memory.
338 Make the 'png_jmpbuf' macro expand to a call that records the correct
339 longjmp function as well as returning a pointer to the setjmp
340 jmp_buf buffer, and marked direct access to jmpbuf 'deprecated'.
341 (John Bowler)
342 Changed "/255" to "/255.0" in background calculations to make it clear
343 that the 255 is used as a double.
344 Added "#define PNG_NO_PEDANTIC_WARNINGS" in the libpng source files.
345 Revised scripts/makefile.netbsd, makefile.openbsd, and makefile.sco
346 to put png.h and pngconf.h in $prefix/include, like the other scripts,
347 instead of in $prefix/include/libpng. Also revised makefile.sco
348 to put them in $prefix/include/libpng14 instead of in
349 $prefix/include/libpng/libpng14.
350 Added "bit_depth" parameter to the private png_build_gamma_table() function.
351 Use png_calloc() instead of png_malloc(); png_memset() in pngrutil.c
352 Avoid deprecated references to png_ptr-io_ptr and png_ptr->error_ptr
353 in pngtest.c
354
355Send comments/corrections/commendations to png-mng-implement at lists.sf.net
356(subscription required; visit
357https://lists.sourceforge.net/lists/listinfo/png-mng-implement
358to subscribe) or to glennrp at users.sourceforge.net
359
360Glenn R-P
Note: See TracBrowser for help on using the repository browser.