summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ANNOUNCE123
-rw-r--r--CHANGES82
-rw-r--r--INSTALL61
-rw-r--r--KNOWNBUG2
-rw-r--r--LICENSE4
-rw-r--r--README79
-rw-r--r--Y2KINFO4
-rwxr-xr-xconfigure4
-rw-r--r--example.c3
-rw-r--r--libpng.3219
-rw-r--r--libpng.txt48
-rw-r--r--libpngpf.34
-rw-r--r--png.524
-rw-r--r--png.c6
-rw-r--r--png.h49
-rw-r--r--pngasmrd.h11
-rw-r--r--pngconf.h32
-rw-r--r--pngerror.c2
-rw-r--r--pnggccrd.c2
-rw-r--r--pngget.c2
-rw-r--r--pngmem.c2
-rw-r--r--pngnow.pngbin2018 -> 2069 bytes
-rw-r--r--pngpread.c2
-rw-r--r--pngread.c6
-rw-r--r--pngrio.c2
-rw-r--r--pngrtran.c10
-rw-r--r--pngrutil.c2
-rw-r--r--pngset.c2
-rw-r--r--pngtest.c4
-rw-r--r--pngtest.pngbin8574 -> 8574 bytes
-rw-r--r--pngtrans.c32
-rw-r--r--pngvcrd.c2
-rw-r--r--pngwio.c2
-rw-r--r--pngwrite.c2
-rw-r--r--pngwtran.c2
-rw-r--r--pngwutil.c12
-rwxr-xr-xscripts/libpng-config-head.in2
-rw-r--r--scripts/libpng.pc.in2
-rw-r--r--scripts/makefile.32sunu14
-rw-r--r--scripts/makefile.64sunu14
-rw-r--r--scripts/makefile.aix2
-rw-r--r--scripts/makefile.beos14
-rw-r--r--scripts/makefile.cygwin16
-rw-r--r--scripts/makefile.darwin14
-rw-r--r--scripts/makefile.dec14
-rw-r--r--scripts/makefile.gcmmx14
-rw-r--r--scripts/makefile.hp64216
-rw-r--r--scripts/makefile.hpgcc14
-rw-r--r--scripts/makefile.hpux14
-rw-r--r--scripts/makefile.linux14
-rw-r--r--scripts/makefile.ne12bsd2
-rw-r--r--scripts/makefile.netbsd2
-rw-r--r--scripts/makefile.openbsd2
-rw-r--r--scripts/makefile.sco14
-rw-r--r--scripts/makefile.sggcc18
-rw-r--r--scripts/makefile.sgi18
-rw-r--r--scripts/makefile.so914
-rw-r--r--scripts/makefile.solaris14
-rw-r--r--scripts/pngos2.def28
-rw-r--r--scripts/pngw32.def34
60 files changed, 768 insertions, 585 deletions
diff --git a/ANNOUNCE b/ANNOUNCE
index dd85cbc1f..b317fd657 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,116 +1,27 @@
-Libpng 1.0.16 - August 15, 2004
+Libpng 1.0.17 - September 12, 2004
This is a public release of libpng, intended for use in production codes.
-Changes since the last public release (1.0.15):
+Changes since the last public release (1.0.16):
- Commented out warning about uninitialized mmx_support in pnggccrd.c.
- Changed "IBMCPP__" flag to "__IBMCPP__" in pngconf.h.
- Relocated two more misplaced PNGAPI lines in pngtest.c
- Fixed memory overrun bug in png_do_read_filler() with 16-bit datastreams,
- introduced in version 1.0.2.
- Fixed potential overrun in pngerror.c by using strncpy instead of memcpy.
- Revised makefile.macosx, makefile.dec, makefile.aix, and makefile.32sunu.
- Changed the one instance of "ln -sf" to "ln -f -s" in each Sun makefile.
- Fixed potential overrun in pngerror.c by using strncpy instead of memcpy.
- Added "#!/bin/sh" at the top of configure, for recognition of the
- 'x' flag under Cygwin (Cosmin).
- Optimized vacuous tests that silence compiler warnings, in png.c (Cosmin).
- Added support for PNG_USER_CONFIG, in pngconf.h (Cosmin).
- Fixed the special memory handler for Borland C under DOS, in pngmem.c
- (Cosmin).
- Removed some spurious assignments in pngrutil.c (Cosmin).
- Replaced 65536 with 65536L, and 0xffff with 0xffffL, to silence warnings
- on 16-bit platforms (Cosmin).
- Enclosed shift op expressions in parentheses, to silence warnings (Cosmin).
- Used proper type png_fixed_point, to avoid problems on 16-bit platforms,
- in png_handle_sRGB() (Cosmin).
- Added compression_type to png_struct, and optimized the window size
- inside the deflate stream (Cosmin).
- Fixed definition of isnonalpha(), in pngerror.c and pngrutil.c (Cosmin).
- Fixed handling of unknown chunks that come after IDAT (Cosmin).
- Allowed png_error() and png_warning() to work even if png_ptr == NULL
- (Cosmin).
- Replaced row_info->rowbytes with row_bytes in png_write_find_filter()
- (Cosmin).
- Fixed definition of PNG_LIBPNG_VER_DLLNUM (Simon-Pierre).
- Used PNG_LIBPNG_VER and PNG_LIBPNG_VER_STRING instead of the hardcoded
- values in png.c (Simon-Pierre, Cosmin).
- Initialized png_libpng_ver[] with PNG_LIBPNG_VER_STRING (Simon-Pierre).
- Replaced PNG_LIBPNG_VER_MAJOR with PNG_LIBPNG_VER_DLLNUM in png.rc
- (Simon-Pierre).
- Moved the definition of PNG_HEADER_VERSION_STRING near the definitions
- of the other PNG_LIBPNG_VER_... symbols in png.h (Cosmin).
- Relocated #ifndef PNGAPI guards in pngconf.h (Simon-Pierre, Cosmin).
- Updated scripts/makefile.vc(a)win32 (Cosmin).
- Updated the MSVC project (Simon-Pierre, Cosmin).
- Updated the Borland C++ Builder project (Cosmin).
- Avoided access to asm_flags in pngvcrd.c, if PNG_1_0_X is defined (Cosmin).
- Commented out warning about uninitialized mmx_support in pngvcrd.c (Cosmin).
- Removed scripts/makefile.bd32 and scripts/pngdef.pas (Cosmin).
- Added extra guard around inclusion of Turbo C memory headers, in pngconf.h
- (Cosmin).
- Renamed projects/msvc/ to projects/visualc6/, and projects/borland/ to
- projects/cbuilder5/ (Cosmin).
- Moved projects/visualc6/png32ms.def to scripts/pngw32.def,
- and projects/visualc6/png.rc to scripts/pngw32.rc (Cosmin).
- Added projects/visualc6/pngtest.dsp; removed contrib/msvctest/ (Cosmin).
- Updated contrib/visupng/VisualPng.dsp (Cosmin).
- Updated contrib/visupng/cexcept.h to version 2.0.0 (Cosmin).
- Added a separate distribution with "configure" and supporting files (Junichi).
- Added user ability to change png_size_t via a PNG_SIZE_T macro.
- Added png_sizeof() and png_convert_size() functions.
- Added PNG_SIZE_MAX (maximum value of a png_size_t variable.
- Added check in png_malloc_default() for (size_t)size != (png_uint_32)size
- which would indicate an overflow.
- Changed sPLT failure action from png_error to png_warning and abandon chunk.
- Changed sCAL and iCCP failures from png_error to png_warning and abandon.
- Added png_get_uint_31(png_ptr, buf) function.
- Added PNG_UINT_32_MAX macro.
- Renamed PNG_MAX_UINT to PNG_UINT_31_MAX.
- Made png_zalloc() issue a png_warning and return NULL on potential
- overflow.
- Turn on PNG_NO_ZALLOC_ZERO by default in version 1.2.x
- Revised "clobber list" in pnggccrd.c so it will compile under gcc-3.4.
- Revised Borland portion of png_malloc() to return NULL or issue
- png_error() according to setting of PNG_FLAG_MALLOC_NULL_MEM_OK.
- Added PNG_NO_SEQUENTIAL_READ_SUPPORTED macro to conditionally remove
- sequential read support.
- Added some "#if PNG_WRITE_SUPPORTED" blocks.
- #ifdef'ed out some redundancy in png_malloc_default().
- Use png_malloc instead of png_zalloc to allocate the pallete.
- Rearranged order of processing of color types in png_handle_tRNS().
- Added PNG_ROWBYTES macro to calculate rowbytes without integer overflow.
- Updated makefile.darwin and removed makefile.macosx from scripts directory.
- Imposed default one million column, one-million row limits on the image
- dimensions, and added png_set_user_limits() function and
- PNG_SET_USER_LIMITS_SUPPORTED macro to override them.
- Fixed wrong cast of returns from png_get_user_width|height_max().
- Fixed buffer overflow vulnerability in png_handle_tRNS()
- Fixed integer arithmetic overflow vulnerability in png_read_png().
- Fixed some harmless bugs in png_handle_sBIT, etc, that would cause
- duplicate chunk types to go undetected.
- Changed some "keep the compiler happy" from empty statements to returns,
- Revised makefile.darwin and makefile.solaris. Removed makefile.macosx.
- Revised pngtest's png_debug_malloc() to use png_malloc() instead of
- png_malloc_default() which is not supposed to be exported.
- Fixed old bug in RGB to Gray transformation.
- Fixed problem with 64-bit compilers by casting arguments to abs()
- to png_int_32.
- Changed "ln -sf" to "ln -f -s" in three makefiles (solaris, sco, so9).
- Changed "HANDLE_CHUNK_*" to "PNG_HANDLE_CHUNK_*" (Cosmin)
- Added "-@/bin/rm -f $(DL)/$(LIBNAME).so.$(PNGMAJ)" to 15 *NIX makefiles.
- Added code to update the row_info->colortype in png_do_read_filler() (MSB).
- Eliminated use of "abs()" in testing cHRM and gAMA values, to avoid
- trouble with some 64-bit compilers. Created PNG_OUT_OF_RANGE() macro.
- Revised documentation of png_set_keep_unknown_chunks().
- Check handle_as_unknown status in pngpread.c, as in pngread.c previously.
- Moved "PNG_HANDLE_CHUNK_*" macros out of PNG_INTERNAL section of png.h
- Added "rim" definitions for CONST4 and CONST6 in pnggccrd.c
Revised pngtest so memory allocation testing is only done when PNG_DEBUG==1.
+ Removed unused pngasmrd.h file.
+ Removed references to uu.net for archived files. Added references to
+ PNG Spec (second edition) and the PNG ISO/IEC Standard.
+ Added "test-dd" target in 15 makefiles, to run pngtest in DESTDIR.
+ Fixed bug with "optimized window size" in the IDAT datastream, that
+ causes libpng to write PNG files with incorrect zlib header bytes.
+ Fixed bug with sCAL chunk and big-endian machines (David Munro).
+ Undid new code added in 1.2.6 to update the color_type in
+ png_set_filler().
+ Revised png_set_strip_filler() to not remove alpha if color_type has alpha.
+ Added makefile.hp64
+ Changed projects/msvc/png32ms.def to scripts/png32ms.def in makefile.cygwin
Send comments/corrections/commendations to
-png-implement@ccrc.wustl.edu or to glennrp@users.sourceforge.net
+png-implement@ccrc.wustl.edu (subscription required; write to
+majordomo@ccrc.wustl.edu with "subscribe png-implement" in the message)
+or to glennrp@users.sourceforge.net
Glenn R-P
diff --git a/CHANGES b/CHANGES
index 980538cda..109583e55 100644
--- a/CHANGES
+++ b/CHANGES
@@ -4,6 +4,7 @@ CHANGES - changes for libpng
version 0.2
added reader into png.h
fixed small problems in stub file
+
version 0.3
added pull reader
split up pngwrite.c to several files
@@ -14,6 +15,7 @@ version 0.3
interfaced with zlib 0.5
added K&R support
added check for 64 KB blocks for 16 bit machines
+
version 0.4
cleaned up code and commented code
simplified time handling into png_time
@@ -24,23 +26,28 @@ version 0.4
interfaced with zlib 0.71
cleaned up zTXt reader and writer (using zlib's Reset functions)
split transformations into pngrtran.c and pngwtran.c
+
version 0.5
interfaced with zlib 0.8
fixed many reading and writing bugs
saved using 3 spaces instead of tabs
+
version 0.6
added png_large_malloc() and png_large_free()
added png_size_t
cleaned up some compiler warnings
added png_start_read_image()
+
version 0.7
cleaned up lots of bugs
finished dithering and other stuff
added test program
changed name from pnglib to libpng
+
version 0.71 [June, 1995]
changed pngtest.png for zlib 0.93
fixed error in libpng.txt and example.c
+
version 0.8
cleaned up some bugs
added png_set_filler()
@@ -57,27 +64,34 @@ version 0.8
enabled png_set_shift to work with paletted images on read
added png_read_update_info() - updates info structure with
transformations
+
version 0.81 [August, 1995]
incorporated Tim Wegner's medium model code (thanks, Tim)
+
version 0.82 [September, 1995]
[unspecified changes]
+
version 0.85 [December, 1995]
added more medium model code (almost everything's a far)
added i/o, error, and memory callback functions
fixed some bugs (16 bit, 4 bit interlaced, etc.)
added first run progressive reader (barely tested)
+
version 0.86 [January, 1996]
fixed bugs
improved documentation
+
version 0.87 [January, 1996]
fixed medium model bugs
fixed other bugs introduced in 0.85 and 0.86
added some minor documentation
+
version 0.88 [January, 1996]
fixed progressive bugs
replaced tabs with spaces
cleaned up documentation
added callbacks for read/write and warning/error functions
+
version 0.89 [July, 1996]
added new initialization API to make libpng work better with shared libs
we now have png_create_read_struct(), png_create_write_struct(),
@@ -104,6 +118,7 @@ version 0.89 [July, 1996]
into a binary when only reading or writing functionality is used
new pngtest image also has interlacing and zTXt
updated documentation to reflect new API
+
version 0.90 [January, 1997]
made CRC errors/warnings on critical and ancillary chunks configurable
libpng will use the zlib CRC routines by (compile-time) default
@@ -125,6 +140,7 @@ version 0.90 [January, 1997]
be able to handle all chunks via a callback mechanism
try to fix Linux "setjmp" buffer size problems
removed png_large_malloc, png_large_free, and png_realloc functions.
+
version 0.95 [March, 1997]
fixed bug in pngwutil.c allocating "up_row" twice and "avg_row" never
fixed bug in PNG file signature compares when start != 0
@@ -159,6 +175,7 @@ version 0.95 [March, 1997]
functions in pngget.c to get infomation in info_ptr. This isolates
the application from the internal organization of png_info_struct
(good for shared library implementations).
+
version 0.96 [May, 1997]
fixed serious bug with < 8bpp images introduced in 0.95
fixed 256-color transparency bug (Greg Roelofs)
@@ -169,6 +186,7 @@ version 0.96 [May, 1997]
added read of CRC after IEND chunk for embedded PNGs (Laszlo Nyul)
added typecasts to quiet compiler errors
added more debugging info
+
version 0.97 [January, 1998]
removed PNG_USE_OWN_CRC capability
relocated png_set_crc_action from pngrutil.c to pngrtran.c
@@ -191,6 +209,7 @@ version 0.97 [January, 1998]
added "-m" option and PNGTEST_DEBUG_MEMORY to pngtest (John Bowler)
regularized version numbering scheme and bumped shared-library major
version number to 2 to avoid problems with libpng 0.89 apps (Greg Roelofs)
+
version 0.98 [January, 1998]
cleaned up some typos in libpng.txt and in code documentation
fixed memory leaks in pCAL chunk processing (Glenn R-P and John Bowler)
@@ -202,6 +221,7 @@ version 0.98 [January, 1998]
PNG_TIME_RFC1152_SUPPORTED macro to PNG_TIME_RFC1123_SUPPORTED
added png_invert_alpha capability (Glenn R-P -- suggestion by Jon Vincent)
changed srgb_intent from png_byte to int to avoid compiler bugs
+
version 0.99 [January 30, 1998]
free info_ptr->text instead of end_info_ptr->text in pngread.c (John Bowler)
fixed a longstanding "packswap" bug in pngtrans.c
@@ -262,6 +282,7 @@ version 0.99h [March 6, 1998, evening]
Changed PNG_READ_NOT_FULLY_SUPPORTED to PNG_READ_TRANSFORMS_NOT_SUPPORTED
and added PNG_PROGRESSIVE_READ_NOT_SUPPORTED macro
Added user transform capability
+
version 1.00 [March 7, 1998]
Changed several typedefs in pngrutil.c
Added makefile.wat (Pawel Mrochen), updated makefile.tc3 (Willem van Schaik)
@@ -271,6 +292,7 @@ version 1.00 [March 7, 1998]
changed some typedefs (s_start, etc.) in pngrutil.c
fixed dimensions of "short_months" array in pngwrite.c
Replaced ansi2knr.c with the one from jpeg-v6
+
version 1.0.0 [March 8, 1998]
Changed name from 1.00 to 1.0.0 (Adam Costello)
Added smakefile.ppc (with SCOPTIONS.ppc) for Amiga PPC (Andreas Kleinert)
@@ -285,6 +307,7 @@ version 1.0.0b [March 13, 1998]
Quieted compiler complaints about two empty "for" loops in pngrutil.c
Minor changes to makefile.s2x
Removed #ifdef/#endif around a png_free() in pngread.c
+
version 1.0.1 [March 14, 1998]
Changed makefile.s2x to reduce security risk of using a relative pathname
Fixed some typos in the documentation (Greg).
@@ -353,6 +376,7 @@ version 1.0.1e [June 6, 1998]
and revised pngtest.c to demonstrate their use, replacing the
PNGTEST_DEBUG_MEM feature.
Added makefile.w32, for Microsoft C++ 4.0 and later (Tim Wegner).
+
version 1.0.2 [June 14, 1998]
Fixed two bugs in makefile.bor .
version 1.0.2a [December 30, 1998]
@@ -387,6 +411,7 @@ version 1.0.2a [January 6, 1999]
Changed "check_if_png" function in example.c to return true (nonzero) if PNG.
Changed libpng.txt to demonstrate png_sig_cmp() instead of png_check_sig()
which is obsolete.
+
version 1.0.3 [January 14, 1999]
Added makefile.hux, for Hewlett Packard HPUX 10.20 and 11.00 (Jim Rice)
Added a statement of Y2K compliance in png.h, libpng.3, and Y2KINFO.
@@ -439,6 +464,7 @@ version 1.0.3d [September 4, 1999]
Fixed type casting of igamma in pngrutil.c
Added new png_expand functions to scripts/pngdef.pas and pngos2.def
Added a demo read_user_transform_fn that examines the row filters in pngtest.c
+
version 1.0.4 [September 24, 1999]
Define PNG_ALWAYS_EXTERN in pngconf.h if __STDC__ is defined
Delete #define PNG_INTERNAL and include "png.h" from pngasmrd.h
@@ -477,6 +503,7 @@ version 1.0.4f [October 15, 1999]
Added type casting mostly in pngrtran.c and pngwtran.c
Removed some pointless "ptr = NULL" in pngmem.c
Added a "contrib" directory containing the source code from Greg's book.
+
version 1.0.5 [October 15, 1999]
Minor editing of the INSTALL and README files.
version 1.0.5a [October 23, 1999]
@@ -660,6 +687,7 @@ version 1.0.5v [March 11, 2000]
Updated documentation of png_rgb_to_gray calculations in libpng.3/libpng.txt.
Renamed makefile.borland,turboc3 back to makefile.bor,tc3 as in version 1.0.3,
revised borland makefiles; added makefile.ibmvac3 and makefile.gcc (Cosmin)
+
version 1.0.6 [March 20, 2000]
Minor revisions of makefile.bor, libpng.txt, and gregbook/rpng2-win.c
Added makefile.sggcc (SGI IRIX with gcc)
@@ -798,6 +826,7 @@ version 1.0.7beta18 [June 23, 2000]
version 1.0.7rc2 [June 28, 2000]
Updated license to include disclaimers required by UCITA.
Fixed "DJBPP" typo in pnggccrd.c introduced in beta18.
+
version 1.0.7 [July 1, 2000]
Revised the definition of "trans_values" in libpng.3/libpng.txt
version 1.0.8beta1 [July 8, 2000]
@@ -822,6 +851,7 @@ version 1.0.8beta4 [July 14, 2000]
Added PNG_NO_ZALLOC_ZERO macro (makes png_zalloc skip zeroing memory)
version 1.0.8rc1 [July 16, 2000]
Revised png_debug() macros and statements to eliminate compiler warnings.
+
version 1.0.8 [July 24, 2000]
Added png_flush() in pngwrite.c, after png_write_IEND().
Updated makefile.hpux to build a shared library.
@@ -892,6 +922,7 @@ version 1.0.9beta11 [January 19, 2001]
be re-enabled in version 1.2.0.
version 1.0.9rc2 [January 22, 2001]
Revised cygwin support.
+
version 1.0.9 [January 31, 2001]
Added check of cygwin's ALL_STATIC in pngconf.h
Added "-nommx" parameter to contrib/gregbook/rpng2-win and rpng2-x demos.
@@ -913,6 +944,7 @@ version 1.0.10rc1 [March 23, 2001]
and png_strlen.
Revised png_mmx_supported() function in pnggccrd.c to return proper value.
Fixed bug in progressive reading (pngpread.c) with small images (height < 8).
+
version 1.0.10 [March 30, 2001]
Deleted extraneous space (introduced in 1.0.9) from line 42 of makefile.cygwin
Added beos project files (Chris Herborth)
@@ -930,6 +962,7 @@ version 1.0.11beta4 [April 20, 2001]
from user's malloc_fn().
Removed some useless type casts of the NULL pointer.
Added makefile.netbsd
+
version 1.0.11 [April 27, 2001]
Revised makefile.netbsd
version 1.0.12beta1 [May 14, 2001]
@@ -944,21 +977,15 @@ version 1.2.0beta1 [May 6, 2001]
Bumped DLLNUM to 2.
Re-enabled PNG_MNG_FEATURES_SUPPORTED and enabled PNG_ASSEMBLER_CODE_SUPPORTED
by default.
- Added runtime selection of MMX features.
- Added png_set_strip_error_numbers function and related macros.
version 1.2.0beta2 [May 7, 2001]
Finished merging 1.2.0beta1 with version 1.0.11
Added a check for attempts to read or write PLTE in grayscale PNG datastreams.
version 1.2.0beta3 [May 17, 2001]
- Enabled user memory function by default.
Modified png_create_struct so it passes user mem_ptr to user memory allocator.
Increased png_mng_features flag from png_byte to png_uint_32.
- Bumped shared-library (so-number) and dll-number to 3.
version 1.2.0beta4 [June 23, 2001]
Check for missing profile length field in iCCP chunk and free chunk_data
in case of truncated iCCP chunk.
- Bumped shared-library number to 3 in makefile.sgi and makefile.sggcc
- Bumped dll-number from 2 to 3 in makefile.cygwin
Revised contrib/gregbook/rpng*-x.c to avoid a memory leak and to exit cleanly
if user attempts to run it on an 8-bit display.
Updated contrib/gregbook
@@ -978,6 +1005,7 @@ version 1.2.0beta5 [August 8, 2001]
Revised makefile.sgi and makefile.sggcc
Replaced calls to fprintf(stderr,...) with png_warning() in pnggccrd.c
Removed restriction that do_invert_mono only operate on 1-bit opaque files
+
version 1.2.0 [September 1, 2001]
Changed a png_warning() to png_debug() in pnggccrd.c
Fixed contrib/gregbook/rpng-x.c, rpng2-x.c to avoid crash with XFreeGC().
@@ -1011,6 +1039,7 @@ version 1.2.1rc2 [December 4, 2001]
Always allocate 256-entry internal palette, hist, and trans arrays, to
avoid out-of-bounds memory reference caused by invalid PNG datastreams.
Added a check for prefix_length > data_length in iCCP chunk handler.
+
version 1.2.1 [December 7, 2001]
None.
version 1.2.2beta1 [February 22, 2002]
@@ -1035,7 +1064,6 @@ version 1.2.2beta3 [March 7, 2002]
Modified shared-library makefiles to install pkgconfig/libpngNN.pc.
Export (with PNGAPI) png_zalloc, png_zfree, and png_handle_as_unknown
Removed unused png_write_destroy_info prototype from png.h
- Eliminated incorrect use of width_mmx from pnggccrd.c in pixel_bytes == 8 case
Added install-shared target to all makefiles that make shared libraries.
Stopped a double free of palette, hist, and trans when not using free_me.
Added makefile.32sunu for Sun Ultra 32 and makefile.64sunu for Sun Ultra 64.
@@ -1064,6 +1092,7 @@ version 1.0.13rc1 [April 7, 2002]
Save the ebx register in pnggccrd.c (Sami Farin)
Add "mem_ptr = png_ptr->mem_ptr" in png_destroy_write_struct() (Paul Gardner).
Updated makefiles to put headers in include/libpng and remove old include/*.h.
+
version 1.2.2 [April 15, 2002]
version 1.0.13 [April 15, 2002]
Revised description of png_set_filter() in libpng.3/libpng.txt.
@@ -1118,6 +1147,7 @@ version 1.2.3rc6 [May 14, 2002]
Changed "Gz" to "Gd" in projects/msvc/libpng.dsp and zlib.dsp.
Removed leftover libpng-config "sed" script from four makefiles.
Revised libpng-config creating script in 16 makefiles.
+
version 1.2.3 [May 22, 2002]
Revised libpng-config target in makefile.cygwin.
Removed description of png_set_mem_fn() from documentation.
@@ -1147,6 +1177,7 @@ version 1.2.4beta3 [June 28, 2002]
version 1.2.4rc1 and 1.0.14rc1 [July 2, 2002]
Added "test-installed" target to makefile.cygwin and makefile.sco.
Revised pnggccrd.c to be able to back out version 1.0.x via PNG_1_0_X macro.
+
version 1.2.4 and 1.0.14 [July 8, 2002]
Changed png_warning() to png_error() when width is too large to process.
version 1.2.4patch01 [July 20, 2002]
@@ -1173,6 +1204,7 @@ version 1.2.5rc2 and 1.0.15rc2 [September 16, 2002]
Added missing "; fi" to makefile.32sunu.
version 1.2.5rc3 and 1.0.15rc3 [September 18, 2002]
Revised libpng-config script.
+
version 1.2.5 and 1.0.15 [October 3, 2002]
Revised makefile.macosx, makefile.darwin, makefile.hpgcc, and makefile.hpux,
and makefile.aix.
@@ -1226,8 +1258,6 @@ version 1.2.6beta3 [July 18, 2004]
Updated scripts/makefile.vc(a)win32 (Cosmin).
Updated the MSVC project (Simon-Pierre, Cosmin).
Updated the Borland C++ Builder project (Cosmin).
- Avoided access to asm_flags in pngvcrd.c, if PNG_1_0_X is defined (Cosmin).
- Commented out warning about uninitialized mmx_support in pngvcrd.c (Cosmin).
Removed scripts/makefile.bd32 and scripts/pngdef.pas (Cosmin).
Added extra guard around inclusion of Turbo C memory headers, in pngconf.h
(Cosmin).
@@ -1263,7 +1293,7 @@ version 1.2.6beta4 [July 28, 2004]
Added some "#if PNG_WRITE_SUPPORTED" blocks.
#ifdef'ed out some redundancy in png_malloc_default().
Use png_malloc instead of png_zalloc to allocate the pallete.
-version 1.2.6rc1 [August 4, 2004]
+version 1.0.16rc1 and 1.2.6rc1 [August 4, 2004]
Fixed buffer overflow vulnerability in png_handle_tRNS()
Fixed integer arithmetic overflow vulnerability in png_read_png().
Fixed some harmless bugs in png_handle_sBIT, etc, that would cause
@@ -1277,7 +1307,8 @@ version 1.2.6rc1 [August 4, 2004]
Revised use of PNG_SET_USER_LIMITS_SUPPORTED macro.
Fixed wrong cast of returns from png_get_user_width|height_max().
Changed some "keep the compiler happy" from empty statements to returns,
-version 1.2.6rc2 [August 7, 2004]
+ Revised libpng.txt to remove 1.2.x stuff from the 1.0.x distribution
+version 1.0.16rc2 and 1.2.6rc2 [August 7, 2004]
Revised makefile.darwin and makefile.solaris. Removed makefile.macosx.
Revised pngtest's png_debug_malloc() to use png_malloc() instead of
png_malloc_default() which is not supposed to be exported.
@@ -1291,23 +1322,42 @@ version 1.2.6rc2 [August 7, 2004]
Changed "HANDLE_CHUNK_*" to "PNG_HANDLE_CHUNK_*" (Cosmin)
Added "-@/bin/rm -f $(DL)/$(LIBNAME).so.$(PNGMAJ)" to 15 *NIX makefiles.
Added code to update the row_info->colortype in png_do_read_filler() (MSB).
-version 1.2.6rc3 [August 9, 2004]
+version 1.0.16rc3 and 1.2.6rc3 [August 9, 2004]
Eliminated use of "abs()" in testing cHRM and gAMA values, to avoid
trouble with some 64-bit compilers. Created PNG_OUT_OF_RANGE() macro.
Revised documentation of png_set_keep_unknown_chunks().
Check handle_as_unknown status in pngpread.c, as in pngread.c previously.
Moved "PNG_HANDLE_CHUNK_*" macros out of PNG_INTERNAL section of png.h
Added "rim" definitions for CONST4 and CONST6 in pnggccrd.c
-version 1.2.6rc4 [August 10, 2004]
+version 1.0.16rc4 and 1.2.6rc4 [August 10, 2004]
Fixed mistake in pngtest.c introduced in 1.2.6rc2 (declaration of
"pinfo" was out of place).
-version 1.2.6rc5 [August 10, 2004]
+version 1.0.16rc5 and 1.2.6rc5 [August 10, 2004]
Moved "PNG_HANDLE_CHUNK_*" macros out of PNG_ASSEMBLER_CODE_SUPPORTED
section of png.h where they were inadvertently placed in version rc3.
-version 1.2.6rc6 [August 15, 2004]
+
+version 1.0.16 and 1.2.6 [August 15, 2004]
Revised pngtest so memory allocation testing is only done when PNG_DEBUG==1.
+version 1.2.7beta1 [August 26, 2004]
+ Removed unused pngasmrd.h file.
+ Removed references to uu.net for archived files. Added references to
+ PNG Spec (second edition) and the PNG ISO/IEC Standard.
+ Added "test-dd" target in 15 makefiles, to run pngtest in DESTDIR.
+ Fixed bug with "optimized window size" in the IDAT datastream, that
+ causes libpng to write PNG files with incorrect zlib header bytes.
+version 1.2.7beta2 [August 28, 2004]
+ Fixed bug with sCAL chunk and big-endian machines (David Munro).
+ Undid new code added in 1.2.6rc2 to update the color_type in
+ png_set_filler().
+version 1.0.17rc1 and 1.2.7rc1 [September 4, 2004]
+ Revised png_set_strip_filler() to not remove alpha if color_type has alpha.
+version 1.0.17 and 1.2.7 [September 12, 2004]
+ Added makefile.hp64
+ Changed projects/msvc/png32ms.def to scripts/png32ms.def in makefile.cygwin
Send comments/corrections/commendations to
-png-implement@ccrc.wustl.edu or to glennrp@users.sourceforge.net
+png-implement@ccrc.wustl.edu (subscription required; write to
+majordomo@ccrc.wustl.edu with "subscribe png-implement" in the message)
+or to glennrp@users.sourceforge.net
Glenn R-P
diff --git a/INSTALL b/INSTALL
index 02895f8e8..d55c83a9a 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,5 +1,5 @@
-Installing libpng version 1.0.16 - August 15, 2004
+Installing libpng version 1.0.17 - September 12, 2004
Before installing libpng, you must first install zlib. zlib
can usually be found wherever you got libpng. zlib can be
@@ -10,8 +10,8 @@ zlib.h and zconf.h include files that correspond to the
version of zlib that's installed.
You can rename the directories that you downloaded (they
-might be called "libpng-1.0.16" or "lpng109" and "zlib-1.1.3"
-or "zlib113") so that you have directories called "zlib" and "libpng".
+might be called "libpng-1.0.17" or "lpng109" and "zlib-1.2.1"
+or "zlib121") so that you have directories called "zlib" and "libpng".
Your directory structure should look like this:
@@ -23,14 +23,13 @@ Your directory structure should look like this:
*.c
contrib
gregbook
- msvctest
pngminus
pngsuite
visupng
projects
beos
- borland
- msvc
+ c5builder (Borland)
+ visualc6 (msvc)
netware.txt
wince.txt
scripts
@@ -48,13 +47,16 @@ If the line endings in the files look funny, you may wish to get the other
distribution of libpng. It is available in both tar.gz (UNIX style line
endings) and zip (DOS style line endings) formats.
-If you are building libpng with MSVC, you can enter the libpng\msvc directory
-and follow the instructions in msvc\README.txt.
-You can build libpng for WindowsCE by entering the downloading and installing
-the libpng\wince directory as instructed in the projects\wince.txt file, and
+If you are building libpng with MSVC, you can enter the
+libpng projects\visualc6 directory and follow the instructions in
+projects\visualc6\README.txt.
+
+You can build libpng for WindowsCE by downloading and installing
+the projects\wince directory as instructed in the projects\wince.txt file, and
then following the instructions in the README* files. Similarly, you can
-build libpng for Netware as instructed in projects\netware.txt.
+build libpng for Netware or Beos as instructed in projects\netware.txt
+or projects\beos.
Else enter the zlib directory and follow the instructions in zlib/README,
then come back here and choose the appropriate makefile.sys in the scripts
@@ -64,8 +66,10 @@ The files that are presently available in the scripts directory
include
makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
- makefile.linux => Linux/ELF makefile (gcc, creates libpng10.so.0.1.0.16)
- makefile.gcmmx => Linux/ELF makefile (gcc, creates libpng10.so.0.1.0.16,
+ makefile.linux => Linux/ELF makefile
+ (gcc, creates libpng10.so.0.1.0.17)
+ makefile.gcmmx => Linux/ELF makefile
+ (gcc, creates libpng10.so.0.1.0.17,
uses assembler code tuned for Intel MMX platform)
makefile.gcc => Generic makefile (gcc, creates static libpng.a)
makefile.knr => Archaic UNIX Makefile that converts files with
@@ -75,20 +79,25 @@ include
makefile.cygwin => Cygwin/gcc makefile
makefile.darwin => Darwin makefile, can use on MacosX
makefile.dec => DEC Alpha UNIX makefile
- makefile.hpgcc => FreeBSD makefile
+ makefile.freebsd => FreeBSD makefile
makefile.hpgcc => HPUX makefile using gcc
makefile.hpux => HPUX (10.20 and 11.00) makefile
+ makefile.hp64 => HPUX (10.20 and 11.00) makefile, 64-bit
makefile.ibmc => IBM C/C++ version 3.x for Win32 and OS/2 (static)
makefile.intel => Intel C/C++ version 4.0 and later
libpng.icc => Project file for IBM VisualAge/C++ version 4.0 or later
makefile.netbsd => NetBSD/cc makefile, uses PNGGCCRD, makes libpng.so.
- makefile.ne0bsd => NetBSD/cc makefile, uses PNGGCCRD, makes libpng0.so
+ makefile.ne10bsd => NetBSD/cc makefile, uses PNGGCCRD,
+ makes libpng10.so
makefile.openbsd => OpenBSD makefile
makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib)
- makefile.sggcc => Silicon Graphics (gcc, creates libpng10.so.0.1.0.16)
+ makefile.sggcc => Silicon Graphics (gcc,
+ creates libpng10.so.0.1.0.17)
makefile.sunos => Sun makefile
- makefile.solaris => Solaris 2.X makefile (gcc, creates libpng10.so.0.1.0.16)
- makefile.so9 => Solaris 9 makefile (gcc, creates libpng10.so.0.1.0.16)
+ makefile.solaris => Solaris 2.X makefile (gcc,
+ creates libpng10.so.0.1.0.17)
+ makefile.so9 => Solaris 9 makefile (gcc,
+ creates libpng10.so.0.1.0.17)
makefile.32sunu => Sun Ultra 32-bit makefile
makefile.64sunu => Sun Ultra 64-bit makefile
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
@@ -101,7 +110,6 @@ include
makefile.beos => BEOS makefile for X86
makefile.bor => Borland makefile (uses bcc)
makefile.bc32 => 32-bit Borland C++ (all modules compiled in C mode)
- makefile.bd32 => To make a png32bd.dll with Borland C++ 4.5
makefile.tc3 => Turbo C 3.0 makefile
makefile.dj2 => DJGPP 2 makefile
makefile.msc => Microsoft C makefile
@@ -114,7 +122,6 @@ include
makefile.watcom => Watcom 10a+ Makefile, 32-bit flat memory model
makevms.com => VMS build script
descrip.mms => VMS makefile for MMS or MMK
- pngdef.pas => Defines for a png32bd.dll with Borland C++ 4.5
SCOPTIONS.ppc => Used with smakefile.ppc
Copy the file (or files) that you need from the
@@ -129,13 +136,13 @@ target directories to match your preferences.
Then read pngconf.h to see if you want to make any configuration
changes.
-Then just run "make test" which will create the libpng library in
-this directory and run a quick test that reads the "pngtest.png"
-file and writes a "pngout.png" file that should be identical to it.
-Look for "9782 zero samples" in the output of the test. For more
-confidence, you can run another test by typing "pngtest pngnow.png"
-and looking for "289 zero samples" in the output. Also, you can
-run "pngtest -m *.png" in the "contrib/pngsuite" directory and compare
+Then just run "make" which will create the libpng library in
+this directory and "make test" which will run a quick test that reads
+the "pngtest.png" file and writes a "pngout.png" file that should be
+identical to it. Look for "9782 zero samples" in the output of the
+test. For more confidence, you can run another test by typing
+"pngtest pngnow.png" and looking for "289 zero samples" in the output.
+Also, you can run "pngtest -m contrib/pngsuite/*.png" and compare
your output with the result shown in contrib/pngsuite/README.
Most of the makefiles will allow you to run "make install" to
diff --git a/KNOWNBUG b/KNOWNBUG
index 9a2778d5b..9232aa594 100644
--- a/KNOWNBUG
+++ b/KNOWNBUG
@@ -1,5 +1,5 @@
-Known bugs in libpng version 1.0.16
+Known bugs in libpng version 1.0.17
1. April 22, 2001: pnggccrd.c has been reported to crash on NetBSD when
reading interlaced PNG files, when assembler code is enabled but running
diff --git a/LICENSE b/LICENSE
index 65c9d4678..3e5a36abb 100644
--- a/LICENSE
+++ b/LICENSE
@@ -8,7 +8,7 @@ COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:
If you modify libpng you may insert additional notices immediately following
this sentence.
-libpng version 1.2.6, August 15, 2004, is
+libpng version 1.2.6, September 12, 2004, is
Copyright (c) 2004 Glenn Randers-Pehrson, and is
distributed according to the same disclaimer and license as libpng-1.2.5
with the following individual added to the list of Contributing Authors
@@ -106,4 +106,4 @@ certification mark of the Open Source Initiative.
Glenn Randers-Pehrson
glennrp@users.sourceforge.net
-August 15, 2004
+September 12, 2004
diff --git a/README b/README
index 32e4100c2..af74e719b 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-README for libpng version 1.0.16 - August 15, 2004 (shared library 12.0)
+README for libpng version 1.0.17 - September 12, 2004 (shared library 10.0)
See the note about version numbers near the top of png.h
See INSTALL for instructions on how to install libpng.
@@ -54,7 +54,7 @@ to set different actions based on whether the CRC error occurred in a
critical or an ancillary chunk.
The changes made to the library, and bugs fixed are based on discussions
-on the PNG implementation mailing list <png-implement@ccrc.wustl.edu>
+on the PNG-implement mailing list
and not on material submitted privately to Guy, Andreas, or Glenn. They will
forward any good suggestions to the list.
@@ -77,16 +77,15 @@ compression library that is useful for more things than just PNG files.
You can use zlib as a drop-in replacement for fread() and fwrite() if
you are so inclined.
-zlib should be available at the same place that libpng is.
-If not, it should be at ftp.uu.net in /graphics/png
-Eventually, it will be at ftp.uu.net in /pub/archiving/zip/zlib
+zlib should be available at the same place that libpng is, or at.
+ftp://ftp.info-zip.org/pub/infozip/zlib
You may also want a copy of the PNG specification. It is available
-as an RFC and a W3C Recommendation. Failing
-these resources you can try ftp.uu.net in the /graphics/png directory.
+as an RFC, a W3C Recommendation, and an ISO/IEC Standard. You can find
+these at http://www.libpng.org/pub/png/documents/
-This code is currently being archived at ftp.uu.net in the
-/graphics/png directory, and on CompuServe, Lib 20 (PNG SUPPORT)
+This code is currently being archived at libpng.sf.net in the
+[DOWNLOAD] area, and on CompuServe, Lib 20 (PNG SUPPORT)
at GO GRAPHSUP. If you can't find it in any of those places,
e-mail me, and I'll help you find it.
@@ -105,16 +104,19 @@ This release was created and will be supported by myself (of course
based in a large way on Guy's and Andreas' earlier work), and the PNG group.
glennrp@users.sourceforge.net
-png-implement@ccrc.wustl.edu
+png-implement@ccrc.wustl.edu (subscription required; write to
+majordomo@ccrc.wustl.edu with "subscribe png-implement" in the message).
You can't reach Guy, the original libpng author, at the addresses
given in previous versions of this document. He and Andreas will read mail
addressed to the png-implement list, however.
Please do not send general questions about PNG. Send them to
-the address in the specification (png-group@w3.org). At the same
-time, please do not send libpng questions to that address, send them to me
-or to png-implement@ccrc.wustl.edu. I'll
+the (png-list@ccrc.wustl.edu, subscription required, write to
+majordomo@ccrc.wustl.edu with "subscribe png-list" in your message).
+On the other hand,
+please do not send libpng questions to that address, send them to me
+or to the png-implement list. I'll
get them in the end anyway. If you have a question about something
in the PNG specification that is related to using libpng, send it
to me. Send me any questions that start with "I was using libpng,
@@ -122,10 +124,10 @@ and ...". If in doubt, send questions to me. I'll bounce them
to others, if necessary.
Please do not send suggestions on how to change PNG. We have
-been discussing PNG for three years now, and it is official and
+been discussing PNG for nine years now, and it is official and
finished. If you have suggestions for libpng, however, I'll
-gladly listen. Even if your suggestion is not used for version
-1.0, it may be used later.
+gladly listen. Even if your suggestion is not used immediately,
+it may be used later.
Files in this distribution:
@@ -173,9 +175,9 @@ Files in this distribution:
visupng => Contains a MSVC workspace for VisualPng
projects => Contains project files and workspaces for building DLL
beos => Contains a Beos workspace for building libpng
- borland => Contains a Borland workspace for building libpng
+ c5builder => Contains a Borland workspace for building libpng
and zlib
- msvc => Contains a Microsoft Visual C++ (MSVC) workspace
+ visualc6 => Contains a Microsoft Visual C++ (MSVC) workspace
for building libpng and zlib
netware.txt => Contains instructions for downloading a set of
project files for building libpng and zlib on
@@ -187,10 +189,10 @@ Files in this distribution:
descrip.mms => VMS makefile for MMS or MMK
makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
makefile.linux => Linux/ELF makefile
- (gcc, creates libpng12.so.0.1.2.5)
- makefile.gcmmx => Linux/ELF makefile (gcc, creates
- libpng12.so.0.1.2.5, uses assembler code
- tuned for Intel MMX platform)
+ (gcc, creates libpng10.so.0.1.0.17)
+ makefile.gcmmx => Linux/ELF makefile
+ (gcc, creates libpng10.so.0.1.0.17,
+ uses assembler code tuned for Intel MMX platform)
makefile.gcc => Generic makefile (gcc, creates static libpng.a)
makefile.knr => Archaic UNIX Makefile that converts files with
ansi2knr (Requires ansi2knr.c from
@@ -202,20 +204,21 @@ Files in this distribution:
makefile.freebsd => FreeBSD makefile
makefile.hpgcc => HPUX makefile using gcc
makefile.hpux => HPUX (10.20 and 11.00) makefile
+ makefile.hp64 => HPUX (10.20 and 11.00) makefile, 64 bit
makefile.ibmc => IBM C/C++ version 3.x for Win32 and OS/2 (static)
makefile.intel => Intel C/C++ version 4.0 and later
libpng.icc => Project file, IBM VisualAge/C++ 4.0 or later
- makefile.macosx => MACOS X Makefile
makefile.netbsd => NetBSD/cc makefile, PNGGCCRD, makes libpng.so.
- makefile.ne0bsd => NetBSD/cc makefile, PNGGCCRD, makes libpng0.so
+ makefile.ne10bsd => NetBSD/cc makefile, PNGGCCRD, makes libpng10.so
makefile.openbsd => OpenBSD makefile
makefile.sgi => Silicon Graphics IRIX (cc, creates static lib)
- makefile.sggcc => Silicon Graphics (gcc, creates libpng12.so.0.1.2.5)
+ makefile.sggcc => Silicon Graphics
+ (gcc, creates libpng10.so.0.1.0.17)
makefile.sunos => Sun makefile
makefile.solaris => Solaris 2.X makefile
- (gcc, creates libpng12.so.0.1.2.5)
+ (gcc, creates libpng10.so.0.1.0.17)
makefile.so9 => Solaris 9 makefile
- (gcc, creates libpng12.so.0.1.2.5)
+ (gcc, creates libpng10.so.0.1.0.17)
makefile.32sunu => Sun Ultra 32-bit makefile
makefile.64sunu => Sun Ultra 64-bit makefile
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
@@ -229,11 +232,10 @@ Files in this distribution:
makefile.beos => BEOS makefile for X86
makefile.bor => Borland makefile (uses bcc)
makefile.bc32 => 32-bit Borland C++ (all modules compiled in C mode)
- makefile.bd32 => To make a png32bd.dll with Borland C++ 4.5
makefile.tc3 => Turbo C 3.0 makefile
makefile.dj2 => DJGPP 2 makefile
makefile.msc => Microsoft C makefile
- makefile.vcawin32 => makefile for Microsoft Visual C++ 5.0 and
+ makefile.vcawin32=> makefile for Microsoft Visual C++ 5.0 and
later (uses assembler code tuned for Intel MMX
platform)
makefile.vcwin32 => makefile for Microsoft Visual C++ 4.0 and
@@ -242,28 +244,17 @@ Files in this distribution:
pngos2.def => OS/2 module definition file used by makefile.os2
makefile.watcom => Watcom 10a+ Makefile, 32-bit flat memory model
makevms.com => VMS build script
- pngdef.pas => Defines for a png32bd.dll with Borland C++ 4.5
SCOPTIONS.ppc => Used with smakefile.ppc
- mangle => Directory containing scripts to build libpng12m.so:
- mangle.in => Function-decoration macros added to png.h by the
- makefiles.
- makefile.linux => Linux/ELF makefile
- (gcc, creates libpng12m.so.0.1.2.5)
- makefile.gcmmx => Linux/ELF makefile (gcc, creates
- libpng12.so.0m.1.2.5, uses assembler code
- tuned for Intel MMX platform)
- makefile.sgi => Silicon Graphics (cc, creates libpng12m.so)
- makefile.sggcc => Silicon Graphics (gcc, creates libpng12m.so)
Good luck, and happy coding.
--Glenn Randers-Pehrson
- Internet: randeg@alum.rpi.edu
+-Glenn Randers-Pehrson (current maintainer)
+ Internet: glennrp@users.sourceforge.net
--Andreas Eric Dilger
+-Andreas Eric Dilger (former maintainer, 1996-1997)
Internet: adilger@enel.ucalgary.ca
Web: http://www-mddsp.enel.ucalgary.ca/People/adilger/
--Guy Eric Schalnat
+-Guy Eric Schalnat (original author and former maintainer, 1995-1996)
(formerly of Group 42, Inc)
Internet: gschal@infinet.com
diff --git a/Y2KINFO b/Y2KINFO
index 2d38f31b6..40338b030 100644
--- a/Y2KINFO
+++ b/Y2KINFO
@@ -1,13 +1,13 @@
Y2K compliance in libpng:
=========================
- August 15, 2004
+ September 12, 2004
Since the PNG Development group is an ad-hoc body, we can't make
an official declaration.
This is your unofficial assurance that libpng from version 0.71 and
- upward through 1.0.16 are Y2K compliant. It is my belief that earlier
+ upward through 1.0.17 are Y2K compliant. It is my belief that earlier
versions were also Y2K compliant.
Libpng only has three year fields. One is a 2-byte unsigned integer
diff --git a/configure b/configure
index 5925b6e75..a505f4664 100755
--- a/configure
+++ b/configure
@@ -1,13 +1,13 @@
#!/bin/sh
echo "
There is no \"configure\" script in this distribution of
- libpng-1.0.16.
+ libpng-1.0.17.
Instead, please copy the appropriate makefile for your system from the
\"scripts\" directory. Read the INSTALL file for more details.
Update, July 2004: you can get a "configure" based distribution
from the libpng distribution sites. Download the file
- libpng-1.0.16-config.tar.gz
+ libpng-1.0.17-config.tar.gz
"
diff --git a/example.c b/example.c
index fb1f5ed1d..ba0ecc5b5 100644
--- a/example.c
+++ b/example.c
@@ -742,6 +742,9 @@ void write_png(char *file_name /* , ... other image information ... */)
png_byte image[height][width*bytes_per_pixel];
png_bytep row_pointers[height];
+ if (height > PNG_UINT_32_MAX/png_sizeof(png_bytep))
+ png_error (png_ptr, "Image is too tall to process in memory");
+
for (k = 0; k < height; k++)
row_pointers[k] = image + k*width*bytes_per_pixel;
diff --git a/libpng.3 b/libpng.3
index a27be76f7..b8d798c1e 100644
--- a/libpng.3
+++ b/libpng.3
@@ -1,6 +1,6 @@
-.TH LIBPNG 3 "August 15, 2004"
+.TH LIBPNG 3 "September 12, 2004"
.SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.0.16
+libpng \- Portable Network Graphics (PNG) Reference Library 1.0.17
.SH SYNOPSIS
\fI\fB
@@ -402,6 +402,14 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.0.16
\fI\fB
+\fB#if \fI!defined(PNG_1_0_X)
+
+\fBvoid png_set_add_alpha (png_structp \fP\fIpng_ptr\fP\fB, png_uint_32 \fP\fIfiller\fP\fB, int \fIflags\fP\fB);\fP
+
+\fI\fB#endif
+
+\fI\fB
+
\fBvoid png_set_background (png_structp \fP\fIpng_ptr\fP\fB, png_color_16p \fP\fIbackground_color\fP\fB, int \fP\fIbackground_gamma_code\fP\fB, int \fP\fIneed_expand\fP\fB, double \fIbackground_gamma\fP\fB);\fP
\fI\fB
@@ -773,7 +781,7 @@ Following is a copy of the libpng.txt file that accompanies libpng.
.SH LIBPNG.TXT
libpng.txt - A description on how to use and modify libpng
- libpng version 1.0.16 - August 15, 2004
+ libpng version 1.0.17 - September 12, 2004
Updated and distributed by Glenn Randers-Pehrson
<glennrp@users.sourceforge.net>
Copyright (c) 1998-2004 Glenn Randers-Pehrson
@@ -810,19 +818,23 @@ Libpng was written as a companion to the PNG specification, as a way
of reducing the amount of time and effort it takes to support the PNG
file format in application programs.
-The PNG-1.2 specification is available at <http://www.libpng.org/pub/png>
-and at <ftp://ftp.uu.net/graphics/png/documents/>.
+The PNG specification (second edition), November 2003, is available as
+a W3C Recommendation and as an ISO Standard (ISO/IEC 15948:2003 (E)) at
+<http://www.w3.org/TR/2003/REC-PNG-20031110/
+The W3C and ISO documents have identical technical content.
+
+The PNG-1.2 specification is available at
+<http://www.libpng.org/pub/png/documents/>
The PNG-1.0 specification is available
-as RFC 2083 <ftp://ftp.uu.net/graphics/png/documents/> and as a
+as RFC 2083 <http://www.libpng.org/pub/png/documents/> and as a
W3C Recommendation <http://www.w3.org/TR/REC.png.html>. Some
additional chunks are described in the special-purpose public chunks
-documents at <ftp://ftp.uu.net/graphics/png/documents/>.
+documents at <http://www.libpng.org/pub/png/documents/>.
Other information
about PNG, and the latest version of libpng, can be found at the PNG home
-page, <http://www.libpng.org/pub/png/>
-and at <ftp://ftp.uu.net/graphics/png/>.
+page, <http://www.libpng.org/pub/png/>.
Most users will not have to modify the library significantly; advanced
users may want to modify it more. All attempts were made to make it as
@@ -855,7 +867,6 @@ same instance of a structure. Note: thread safety may be defeated
by use of some of the MMX assembler code in pnggccrd.c, which is only
compiled when the user defines PNG_THREAD_UNSAFE_OK.
-
.SH II. Structures
There are two main structures that are important to libpng, png_struct
@@ -1073,28 +1084,6 @@ To inform libpng about your function, use
png_set_read_status_fn(png_ptr, read_row_callback);
-%-%.SS Width and height limits
-%-%
-%-%The PNG specification allows the width and height of an image to be as
-%-%large as 2^31-1 (0x7fffffff), or about 2.147 billion rows and columns.
-%-%Since very few applications really need to process such large images,
-%-%we have imposed an arbitrary 1-million limit on rows and columns.
-%-%Larger images will be rejected immediately with a png_error() call. If
-%-%you wish to override this limit, you can use
-%-%
-%-% png_set_user_limits(png_ptr, width_max, height_max);
-%-%
-%-%to set your own limits, or use width_max = height_max = 0x7fffffffL
-%-%to allow all valid dimensions (libpng may reject some very large images
-%-%anyway because of potential buffer overflow conditions).
-%-%
-%-%You should put this statement after you create the PNG structure and
-%-%before calling png_read_info(), png_read_png(), or png_process_data().
-%-%If you need to retrieve the limits that are being applied, use
-%-%
-%-% width_max = png_get_user_width_max(png_ptr);
-%-% height_max = png_get_user_height_max(png_ptr);
-%-%
.SS Unknown-chunk handling
Now you get to set the way the library processes unknown chunks in the
@@ -1170,6 +1159,9 @@ then png_read_image(), and finally png_read_end().
(The final parameter of this call is not yet used. Someday it might point
to transformation parameters required by some future input transform.)
+You must use png_transforms and not call any png_set_transform() functions
+when you use png_read_png().
+
After you have called png_read_png(), you can retrieve the image data
with
@@ -1534,14 +1526,14 @@ unless the library has been told to transform it into another format.
For example, 4 bit/pixel paletted or grayscale data will be returned
2 pixels/byte with the leftmost pixel in the high-order bits of the
byte, unless png_set_packing() is called. 8-bit RGB data will be stored
-in RGB RGB RGB format unless png_set_filler() is called to insert filler
-bytes, either before or after each RGB triplet. 16-bit RGB data will
-be returned RRGGBB RRGGBB, with the most significant byte of the color
-value first, unless png_set_strip_16() is called to transform it to
-regular RGB RGB triplets, or png_set_filler() is called to insert
-filler bytes, either before or after each RRGGBB triplet. Similarly,
-8-bit or 16-bit grayscale data can be modified with png_set_filler()
-or png_set_strip_16().
+in RGB RGB RGB format unless png_set_filler()
+is called to insert filler bytes, either before or after each RGB triplet.
+16-bit RGB data will be returned RRGGBB RRGGBB, with the most significant
+byte of the color value first, unless png_set_strip_16() is called to
+transform it to regular RGB RGB triplets, or png_set_filler|add alpha()
+is called to insert filler bytes, either before or after each RRGGBB
+triplet. Similarly, 8-bit or 16-bit grayscale data can be modified with
+png_set_filler() or png_set_strip_16().
The following code transforms grayscale images of less than 8 to 8 bits,
changes paletted images to RGB, and adds a full alpha channel if there is
@@ -1626,6 +1618,7 @@ does not affect images that already have full alpha channels. To add an
opaque alpha channel, use filler=0xff or 0xffff and PNG_FILLER_AFTER which
will generate RGBA pixels.
+ color_type == PNG_COLOR_TYPE_GRAY)
If you are reading an image with an alpha channel, and you need the
data as ARGB instead of the normal PNG format RGBA:
@@ -2770,6 +2763,9 @@ then png_write_image(), and finally png_write_end().
(The final parameter of this call is not yet used. Someday it might point
to transformation parameters required by some future output transform.)
+You must use png_transforms and not call any png_set_transform() functions
+when you use png_write_png().
+
.SS The low-level write interface
If you are going the low-level route instead, you are now ready to
@@ -3462,125 +3458,6 @@ When PNG_DEBUG = 1, the macros are defined, but only png_debug statements
having level = 0 will be printed. There aren't any such statements in
this version of libpng, but if you insert some they will be printed.
-%-%.SH VI. Runtime optimization
-%-%
-%-%A new feature in libpng 1.2.0 is the ability to dynamically switch between
-%-%standard and optimized versions of some routines. Currently these are
-%-%limited to three computationally intensive tasks when reading PNG files:
-%-%decoding row filters, expanding interlacing, and combining interlaced or
-%-%transparent row data with previous row data. Currently the optimized
-%-%versions are available only for x86 (Intel, AMD, etc.) platforms with
-%-%MMX support, though this may change in future versions. (For example,
-%-%the non-MMX assembler optimizations for zlib might become similarly
-%-%runtime-selectable in future releases, in which case libpng could be
-%-%extended to support them. Alternatively, the compile-time choice of
-%-%floating-point versus integer routines for gamma correction might become
-%-%runtime-selectable.)
-%-%
-%-%Because such optimizations tend to be very platform- and compiler-dependent,
-%-%both in how they are written and in how they perform, the new runtime code
-%-%in libpng has been written to allow programs to query, enable, and disable
-%-%either specific optimizations or all such optimizations. For example, to
-%-%enable all possible optimizations (bearing in mind that some "optimizations"
-%-%may actually run more slowly in rare cases):
-%-%
-%-% #if defined(PNG_LIBPNG_VER) && (PNG_LIBPNG_VER >= 10200)
-%-% png_uint_32 mask, flags;
-%-%
-%-% flags = png_get_asm_flags(png_ptr);
-%-% mask = png_get_asm_flagmask(PNG_SELECT_READ | PNG_SELECT_WRITE);
-%-% png_set_asm_flags(png_ptr, flags | mask);
-%-% #endif
-%-%
-%-%To enable only optimizations relevant to reading PNGs, use PNG_SELECT_READ
-%-%by itself when calling png_get_asm_flagmask(); similarly for optimizing
-%-%only writing. To disable all optimizations:
-%-%
-%-% #if defined(PNG_LIBPNG_VER) && (PNG_LIBPNG_VER >= 10200)
-%-% flags = png_get_asm_flags(png_ptr);
-%-% mask = png_get_asm_flagmask(PNG_SELECT_READ | PNG_SELECT_WRITE);
-%-% png_set_asm_flags(png_ptr, flags & ~mask);
-%-% #endif
-%-%
-%-%To enable or disable only MMX-related features, use png_get_mmx_flagmask()
-%-%in place of png_get_asm_flagmask(). The mmx version takes one additional
-%-%parameter:
-%-%
-%-% #if defined(PNG_LIBPNG_VER) && (PNG_LIBPNG_VER >= 10200)
-%-% int selection = PNG_SELECT_READ | PNG_SELECT_WRITE;
-%-% int compilerID;
-%-%
-%-% mask = png_get_mmx_flagmask(selection, &compilerID);
-%-% #endif
-%-%
-%-%On return, compilerID will indicate which version of the MMX assembler
-%-%optimizations was compiled. Currently two flavors exist: Microsoft
-%-%Visual C++ (compilerID == 1) and GNU C (a.k.a. gcc/gas, compilerID == 2).
-%-%On non-x86 platforms or on systems compiled without MMX optimizations, a
-%-%value of -1 is used.
-%-%
-%-%Note that both png_get_asm_flagmask() and png_get_mmx_flagmask() return
-%-%all valid, settable optimization bits for the version of the library that's
-%-%currently in use. In the case of shared (dynamically linked) libraries,
-%-%this may include optimizations that did not exist at the time the code was
-%-%written and compiled. It is also possible, of course, to enable only known,
-%-%specific optimizations; for example:
-%-%
-%-% #if defined(PNG_LIBPNG_VER) && (PNG_LIBPNG_VER >= 10200)
-%-% flags = PNG_ASM_FLAG_MMX_READ_COMBINE_ROW \
-%-% | PNG_ASM_FLAG_MMX_READ_INTERLACE \
-%-% | PNG_ASM_FLAG_MMX_READ_FILTER_SUB \
-%-% | PNG_ASM_FLAG_MMX_READ_FILTER_UP \
-%-% | PNG_ASM_FLAG_MMX_READ_FILTER_AVG \
-%-% | PNG_ASM_FLAG_MMX_READ_FILTER_PAETH ;
-%-% png_set_asm_flags(png_ptr, flags);
-%-% #endif
-%-%
-%-%This method would enable only the MMX read-optimizations available at the
-%-%time of libpng 1.2.0's release, regardless of whether a later version of
-%-%the DLL were actually being used. (Also note that these functions did not
-%-%exist in versions older than 1.2.0, so any attempt to run a dynamically
-%-%linked app on such an older version would fail.)
-%-%
-%-%To determine whether the processor supports MMX instructions at all, use
-%-%the png_mmx_support() function:
-%-%
-%-% #if defined(PNG_LIBPNG_VER) && (PNG_LIBPNG_VER >= 10200)
-%-% mmxsupport = png_mmx_support();
-%-% #endif
-%-%
-%-%It returns -1 if MMX support is not compiled into libpng, 0 if MMX code
-%-%is compiled but MMX is not supported by the processor, or 1 if MMX support
-%-%is fully available. Note that png_mmx_support(), png_get_mmx_flagmask(),
-%-%and png_get_asm_flagmask() all may be called without allocating and ini-
-%-%tializing any PNG structures (for example, as part of a usage screen or
-%-%"about" box).
-%-%
-%-%The following code can be used to prevent an application from using the
-%-%thread_unsafe features, even if libpng was built with PNG_THREAD_UNSAFE_OK
-%-%defined:
-%-%
-%-%#if defined(PNG_USE_PNGGCCRD) && defined(PNG_ASSEMBLER_CODE_SUPPORTED) \
-%-% && defined(PNG_THREAD_UNSAFE_OK)
-%-% /* Disable thread-unsafe features of pnggccrd */
-%-% if (png_access_version() >= 10200)
-%-% {
-%-% png_uint_32 mmx_disable_mask = 0;
-%-% png_uint_32 asm_flags;
-%-%
-%-% mmx_disable_mask |= ( PNG_ASM_FLAG_MMX_READ_COMBINE_ROW \
-%-% | PNG_ASM_FLAG_MMX_READ_FILTER_SUB \
-%-% | PNG_ASM_FLAG_MMX_READ_FILTER_AVG \
-%-% | PNG_ASM_FLAG_MMX_READ_FILTER_PAETH );
-%-% asm_flags = png_get_asm_flags(png_ptr);
-%-% png_set_asm_flags(png_ptr, asm_flags & ~mmx_disable_mask);
-%-% }
-%-%#endif
-%-%
-%-%For more extensive examples of runtime querying, enabling and disabling
-%-%of optimized features, see contrib/gregbook/readpng2.c in the libpng
-%-%source-code distribution.
-%-%
.SH VI. MNG support
The MNG specification (available at http://www.libpng.org/pub/mng) allows
@@ -3655,15 +3532,15 @@ application:
png_uint_32 application_vn = PNG_LIBPNG_VER;
-.SH VII. Y2K Compliance in libpng
+.SH VIII. Y2K Compliance in libpng
-August 15, 2004
+September 12, 2004
Since the PNG Development group is an ad-hoc body, we can't make
an official declaration.
This is your unofficial assurance that libpng from version 0.71 and
-upward through 1.0.16 are Y2K compliant. It is my belief that earlier
+upward through 1.0.17 are Y2K compliant. It is my belief that earlier
versions were also Y2K compliant.
Libpng only has three year fields. One is a 2-byte unsigned integer that
@@ -3806,6 +3683,11 @@ the first widely used release:
1.2.6rc1-5 13 10206 12.so.0.1.2.6rc1-5
1.0.16 10 10016 10.so.0.1.0.16
1.2.6 13 10206 12.so.0.1.2.6
+ 1.2.7beta1-2 13 10207 12.so.0.1.2.7beta1-2
+ 1.0.17rc1 10 10017 12.so.0.1.0.17rc1
+ 1.2.7rc1 13 10207 12.so.0.1.2.7rc1
+ 1.0.17 10 10017 12.so.0.1.0.17
+ 1.2.7 13 10207 12.so.0.1.2.7
Henceforth the source version will match the shared-library minor
and patch numbers; the shared-library major version number will be
@@ -3822,7 +3704,7 @@ libpngpf(3), png(5)
.LP
.IR libpng :
.IP
-ftp://ftp.uu.net/graphics/png
+http://libpng.sourceforge.net (follow the [DOWNLOAD] link)
http://www.libpng.org/pub/png
.LP
@@ -3832,8 +3714,6 @@ http://www.libpng.org/pub/png
.I libpng
or at
.br
-ftp://ftp.uu.net/pub/archiving/zip/zlib
-.br
ftp://ftp.info-zip.org/pub/infozip/zlib
.LP
@@ -3863,13 +3743,14 @@ possible without all of you.
Thanks to Frank J. T. Wojcik for helping with the documentation.
-Libpng version 1.0.16 - August 15, 2004:
+Libpng version 1.0.17 - September 12, 2004:
Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
Currently maintained by Glenn Randers-Pehrson (glennrp@users.sourceforge.net).
Supported by the PNG development group
.br
-(png-implement@ccrc.wustl.edu).
+png-implement@ccrc.wustl.edu (subscription required; write to
+majordomo@ccrc.wustl.edu with "subscribe png-implement" in the message).
.SH COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:
@@ -3880,7 +3761,7 @@ included in the libpng distribution, the latter shall prevail.)
If you modify libpng you may insert additional notices immediately following
this sentence.
-libpng version 1.2.6, August 15, 2004, is
+libpng version 1.2.6, September 12, 2004, is
Copyright (c) 2004 Glenn Randers-Pehrson, and is
distributed according to the same disclaimer and license as libpng-1.2.5
with the following individual added to the list of Contributing Authors
@@ -3979,7 +3860,7 @@ certification mark of the Open Source Initiative.
Glenn Randers-Pehrson
glennrp@users.sourceforge.net
-August 15, 2004
+September 12, 2004
.\" end of man page
diff --git a/libpng.txt b/libpng.txt
index d1d374287..6029929fc 100644
--- a/libpng.txt
+++ b/libpng.txt
@@ -1,6 +1,6 @@
libpng.txt - A description on how to use and modify libpng
- libpng version 1.0.16 - August 15, 2004
+ libpng version 1.0.17 - September 12, 2004
Updated and distributed by Glenn Randers-Pehrson
<glennrp@users.sourceforge.net>
Copyright (c) 1998-2004 Glenn Randers-Pehrson
@@ -37,19 +37,23 @@ Libpng was written as a companion to the PNG specification, as a way
of reducing the amount of time and effort it takes to support the PNG
file format in application programs.
-The PNG-1.2 specification is available at <http://www.libpng.org/pub/png>
-and at <ftp://ftp.uu.net/graphics/png/documents/>.
+The PNG specification (second edition), November 2003, is available as
+a W3C Recommendation and as an ISO Standard (ISO/IEC 15948:2003 (E)) at
+<http://www.w3.org/TR/2003/REC-PNG-20031110/
+The W3C and ISO documents have identical technical content.
+
+The PNG-1.2 specification is available at
+<http://www.libpng.org/pub/png/documents/>
The PNG-1.0 specification is available
-as RFC 2083 <ftp://ftp.uu.net/graphics/png/documents/> and as a
+as RFC 2083 <http://www.libpng.org/pub/png/documents/> and as a
W3C Recommendation <http://www.w3.org/TR/REC.png.html>. Some
additional chunks are described in the special-purpose public chunks
-documents at <ftp://ftp.uu.net/graphics/png/documents/>.
+documents at <http://www.libpng.org/pub/png/documents/>.
Other information
about PNG, and the latest version of libpng, can be found at the PNG home
-page, <http://www.libpng.org/pub/png/>
-and at <ftp://ftp.uu.net/graphics/png/>.
+page, <http://www.libpng.org/pub/png/>.
Most users will not have to modify the library significantly; advanced
users may want to modify it more. All attempts were made to make it as
@@ -82,7 +86,6 @@ same instance of a structure. Note: thread safety may be defeated
by use of some of the MMX assembler code in pnggccrd.c, which is only
compiled when the user defines PNG_THREAD_UNSAFE_OK.
-
II. Structures
There are two main structures that are important to libpng, png_struct
@@ -375,6 +378,9 @@ then png_read_image(), and finally png_read_end().
(The final parameter of this call is not yet used. Someday it might point
to transformation parameters required by some future input transform.)
+You must use png_transforms and not call any png_set_transform() functions
+when you use png_read_png().
+
After you have called png_read_png(), you can retrieve the image data
with
@@ -739,14 +745,14 @@ unless the library has been told to transform it into another format.
For example, 4 bit/pixel paletted or grayscale data will be returned
2 pixels/byte with the leftmost pixel in the high-order bits of the
byte, unless png_set_packing() is called. 8-bit RGB data will be stored
-in RGB RGB RGB format unless png_set_filler() is called to insert filler
-bytes, either before or after each RGB triplet. 16-bit RGB data will
-be returned RRGGBB RRGGBB, with the most significant byte of the color
-value first, unless png_set_strip_16() is called to transform it to
-regular RGB RGB triplets, or png_set_filler() is called to insert
-filler bytes, either before or after each RRGGBB triplet. Similarly,
-8-bit or 16-bit grayscale data can be modified with png_set_filler()
-or png_set_strip_16().
+in RGB RGB RGB format unless png_set_filler()
+is called to insert filler bytes, either before or after each RGB triplet.
+16-bit RGB data will be returned RRGGBB RRGGBB, with the most significant
+byte of the color value first, unless png_set_strip_16() is called to
+transform it to regular RGB RGB triplets, or png_set_filler|add alpha()
+is called to insert filler bytes, either before or after each RRGGBB
+triplet. Similarly, 8-bit or 16-bit grayscale data can be modified with
+png_set_filler() or png_set_strip_16().
The following code transforms grayscale images of less than 8 to 8 bits,
changes paletted images to RGB, and adds a full alpha channel if there is
@@ -831,6 +837,7 @@ does not affect images that already have full alpha channels. To add an
opaque alpha channel, use filler=0xff or 0xffff and PNG_FILLER_AFTER which
will generate RGBA pixels.
+ color_type == PNG_COLOR_TYPE_GRAY)
If you are reading an image with an alpha channel, and you need the
data as ARGB instead of the normal PNG format RGBA:
@@ -1975,6 +1982,9 @@ then png_write_image(), and finally png_write_end().
(The final parameter of this call is not yet used. Someday it might point
to transformation parameters required by some future output transform.)
+You must use png_transforms and not call any png_set_transform() functions
+when you use png_write_png().
+
The low-level write interface
If you are going the low-level route instead, you are now ready to
@@ -2741,15 +2751,15 @@ application:
png_uint_32 application_vn = PNG_LIBPNG_VER;
-VII. Y2K Compliance in libpng
+VIII. Y2K Compliance in libpng
-August 15, 2004
+September 12, 2004
Since the PNG Development group is an ad-hoc body, we can't make
an official declaration.
This is your unofficial assurance that libpng from version 0.71 and
-upward through 1.0.16 are Y2K compliant. It is my belief that earlier
+upward through 1.0.17 are Y2K compliant. It is my belief that earlier
versions were also Y2K compliant.
Libpng only has three year fields. One is a 2-byte unsigned integer that
diff --git a/libpngpf.3 b/libpngpf.3
index 6ca45c547..f0eaad49a 100644
--- a/libpngpf.3
+++ b/libpngpf.3
@@ -1,6 +1,6 @@
-.TH LIBPNGPF 3 "August 15, 2004"
+.TH LIBPNGPF 3 "September 12, 2004"
.SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.0.16
+libpng \- Portable Network Graphics (PNG) Reference Library 1.0.17
(private functions)
.SH SYNOPSIS
\fB\fB#include <png.h>\fP\fP
diff --git a/png.5 b/png.5
index e9e9bc700..1cc5ef4f9 100644
--- a/png.5
+++ b/png.5
@@ -1,4 +1,4 @@
-.TH PNG 5 "August 15, 2004"
+.TH PNG 5 "September 12, 2004"
.SH NAME
png \- Portable Network Graphics (PNG) format
.SH DESCRIPTION
@@ -20,12 +20,14 @@ platforms.
.SH "SEE ALSO"
.IR libpng(3), zlib(3), deflate(5), and zlib(5)
.LP
+PNG specification (second edition), November 2003:
+.IP
+.br
+ <http://www.w3.org/TR/2003/REC-PNG-20031110/
PNG 1.2 specification, July 1999:
.IP
.br
http://www.libpng.org/pub/png
-.br
-or ftp://ftp.uu.net/graphics/png/documents
.LP
PNG 1.0 specification, October 1996:
.IP
@@ -41,15 +43,27 @@ http://www.w3.org/TR/REC-png.html
.SH AUTHORS
This man page: Glenn Randers-Pehrson
.LP
+Portable Network Graphics (PNG) Specification (Second Edition)
+Information technology - Computer graphics and image processing -
+Portable Network Graphics (PNG): Functional specification.
+ISO/IEC 15948:2003 (E) (November 10, 2003): David Duce and others.
+.LP
Portable Network Graphics (PNG) Specification Version 1.2 (July 8, 1999):
-Glenn Randers-Pehrson and others (png-list@ccrc.wustl.edu).
+Glenn Randers-Pehrson and others (png-list).
.LP
Portable Network Graphics (PNG) Specification Version 1.0 (October 1, 1996):
-Thomas Boutell and others (png-list@ccrc.wustl.edu).
+Thomas Boutell and others (png-list).
.LP
.SH COPYRIGHT NOTICE
+.LP
+This man page is Copyright (c) 1998-2004 Glenn Randers-Pehrson. See png.h
+for conditions of use and distribution.
+.LP
+The PNG Specification (Second Edition) is
+Copyright (c) 2003 W3C. (MIT, ERCIM, Keio), All Rights Reserved.
+.LP
The PNG-1.2 specification is copyright (c) 1999 Glenn Randers-Pehrson.
See the specification for conditions of use and distribution.
.LP
diff --git a/png.c b/png.c
index 14041811c..3a9cae302 100644
--- a/png.c
+++ b/png.c
@@ -1,7 +1,7 @@
/* png.c - location for general purpose libpng functions
*
- * libpng version 1.0.16 - August 15, 2004
+ * libpng version 1.0.17 - September 12, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -13,7 +13,7 @@
#include "png.h"
/* Generate a compiler error if there is an old png.h in the search path. */
-typedef version_1_0_16 Your_png_h_is_not_version_1_0_16;
+typedef version_1_0_17 Your_png_h_is_not_version_1_0_17;
/* Version information for C files. This had better match the version
* string defined in png.h. */
@@ -678,7 +678,7 @@ png_charp PNGAPI
png_get_copyright(png_structp png_ptr)
{
if (&png_ptr != NULL) /* silence compiler warning about unused png_ptr */
- return ((png_charp) "\n libpng version 1.0.16 - August 15, 2004\n\
+ return ((png_charp) "\n libpng version 1.0.17 - September 12, 2004\n\
Copyright (c) 1998-2004 Glenn Randers-Pehrson\n\
Copyright (c) 1996-1997 Andreas Dilger\n\
Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.\n");
diff --git a/png.h b/png.h
index 648aa7e7f..322aef64d 100644
--- a/png.h
+++ b/png.h
@@ -1,6 +1,6 @@
/* png.h - header file for PNG reference library
*
- * libpng version 1.0.16 - August 15, 2004
+ * libpng version 1.0.17 - September 12, 2004
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
@@ -8,7 +8,7 @@
* Authors and maintainers:
* libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
* libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger
- * libpng versions 0.97, January 1998, through 1.0.16 - August 15, 2004: Glenn
+ * libpng versions 0.97, January 1998, through 1.0.17 - September 12, 2004: Glenn
* See also "Contributing Authors", below.
*
* Note about libpng version numbers:
@@ -101,6 +101,11 @@
* 1.2.6beta1-4 13 10206 12.so.0.1.2.6beta1-4
* 1.0.16 10 10016 10.so.0.1.0.16
* 1.2.6 13 10206 12.so.0.1.2.6
+ * 1.2.7beta1-2 13 10207 12.so.0.1.2.7beta1-2
+ * 1.0.17rc1 10 10017 12.so.0.1.0.17rc1
+ * 1.2.7rc1 13 10207 12.so.0.1.2.7rc1
+ * 1.0.17 10 10017 12.so.0.1.0.17
+ * 1.2.7 13 10207 12.so.0.1.2.7
*
* Henceforth the source version will match the shared-library major
* and minor numbers; the shared-library major version number will be
@@ -120,8 +125,8 @@
* in binary compatibility (e.g., when a new feature is added).
*
* See libpng.txt or libpng.3 for more information. The PNG specification
- * is available as RFC 2083 <ftp://ftp.uu.net/graphics/png/documents/>
- * and as a W3C Recommendation <http://www.w3.org/TR/REC.png.html>
+ * is available as a W3C Recommendation and as an ISO Specification,
+ * <http://www.w3.org/TR/2003/REC-PNG-20031110/
*/
/*
@@ -130,17 +135,17 @@
* If you modify libpng you may insert additional notices immediately following
* this sentence.
*
- * libpng version 1.2.6, August 15, 2004, is
- * Copyright (c) 2004 Glenn Randers-Pehrson, and is
+ * libpng versions 1.2.6, August 15, 2004, through 1.0.17, September 12, 2004, are
+ * Copyright (c) 2004 Glenn Randers-Pehrson, and are
* distributed according to the same disclaimer and license as libpng-1.2.5
- * with the following individual added to the list of Contributing Authors
+ * with the following individual added to the list of Contributing Authors:
*
* Cosmin Truta
*
- * libpng versions 1.0.7, July 1, 2000, through 1.2.5 - October 3, 2002, are
+ * libpng versions 1.0.7, July 1, 2000, through 1.2.5, October 3, 2002, are
* Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are
* distributed according to the same disclaimer and license as libpng-1.0.6
- * with the following individuals added to the list of Contributing Authors
+ * with the following individuals added to the list of Contributing Authors:
*
* Simon-Pierre Cadieux
* Eric S. Raymond
@@ -156,8 +161,8 @@
* the user.
*
* libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are
- * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
- * Distributed according to the same disclaimer and license as libpng-0.96,
+ * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson, and are
+ * distributed according to the same disclaimer and license as libpng-0.96,
* with the following individuals added to the list of Contributing Authors:
*
* Tom Lane
@@ -242,13 +247,13 @@
* Y2K compliance in libpng:
* =========================
*
- * August 15, 2004
+ * September 12, 2004
*
* Since the PNG Development group is an ad-hoc body, we can't make
* an official declaration.
*
* This is your unofficial assurance that libpng from version 0.71 and
- * upward through 1.0.16 are Y2K compliant. It is my belief that earlier
+ * upward through 1.0.17 are Y2K compliant. It is my belief that earlier
* versions were also Y2K compliant.
*
* Libpng only has three year fields. One is a 2-byte unsigned integer
@@ -304,9 +309,9 @@
*/
/* Version information for png.h - this should match the version in png.c */
-#define PNG_LIBPNG_VER_STRING "1.0.16"
+#define PNG_LIBPNG_VER_STRING "1.0.17"
#define PNG_HEADER_VERSION_STRING \
- " libpng version 1.0.16 - August 15, 2004 (header)\n"
+ " libpng version 1.0.17 - September 12, 2004 (header)\n"
#define PNG_LIBPNG_VER_SONUM 0
#define PNG_LIBPNG_VER_DLLNUM %DLLNUM%
@@ -314,7 +319,7 @@
/* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */
#define PNG_LIBPNG_VER_MAJOR 1
#define PNG_LIBPNG_VER_MINOR 0
-#define PNG_LIBPNG_VER_RELEASE 16
+#define PNG_LIBPNG_VER_RELEASE 17
/* This should match the numeric part of the final component of
* PNG_LIBPNG_VER_STRING, omitting any leading zero: */
@@ -333,7 +338,7 @@
* Versions 0.7 through 1.0.0 were in the range 0 to 100 here (only
* version 1.0.0 was mis-numbered 100 instead of 10000). From
* version 1.0.1 it's xxyyzz, where x=major, y=minor, z=release */
-#define PNG_LIBPNG_VER 10016 /* 1.0.16 */
+#define PNG_LIBPNG_VER 10017 /* 1.0.17 */
#ifndef PNG_VERSION_INFO_ONLY
@@ -1310,7 +1315,7 @@ struct png_struct_def
/* This triggers a compiler error in png.c, if png.c and png.h
* do not agree upon the version number.
*/
-typedef png_structp version_1_0_16;
+typedef png_structp version_1_0_17;
typedef png_struct FAR * FAR * png_structpp;
@@ -1482,12 +1487,17 @@ extern PNG_EXPORT(void,png_set_invert_alpha) PNGARG((png_structp png_ptr));
#endif
#if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED)
-/* Add a filler byte to 24-bit RGB images. */
+/* Add a filler byte to 8-bit Gray or 24-bit RGB images. */
extern PNG_EXPORT(void,png_set_filler) PNGARG((png_structp png_ptr,
png_uint_32 filler, int flags));
/* The values of the PNG_FILLER_ defines should NOT be changed */
#define PNG_FILLER_BEFORE 0
#define PNG_FILLER_AFTER 1
+/* Add an alpha byte to 8-bit Gray or 24-bit RGB images. */
+#if !defined(PNG_1_0_X)
+extern PNG_EXPORT(void,png_set_add_alpha) PNGARG((png_structp png_ptr,
+ png_uint_32 filler, int flags));
+#endif
#endif /* PNG_READ_FILLER_SUPPORTED || PNG_WRITE_FILLER_SUPPORTED */
#if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED)
@@ -2571,6 +2581,7 @@ extern PNG_EXPORT(png_uint_32,png_get_user_height_max) PNGARG((png_structp
#define PNG_RGB_TO_GRAY_ERR 0x200000L
#define PNG_RGB_TO_GRAY_WARN 0x400000L
#define PNG_RGB_TO_GRAY 0x600000L /* two bits, RGB_TO_GRAY_ERR|WARN */
+#define PNG_ADD_ALPHA 0x1000000L /* Added to libpng-1.2.7 */
/* flags for png_create_struct */
#define PNG_STRUCT_PNG 0x0001
diff --git a/pngasmrd.h b/pngasmrd.h
deleted file mode 100644
index 335a682be..000000000
--- a/pngasmrd.h
+++ /dev/null
@@ -1,11 +0,0 @@
-/* pngasmrd.h - assembler version of utilities to read a PNG file
- *
- * libpng 1.0.16 - August 15, 2004
- * For conditions of distribution and use, see copyright notice in png.h
- * Copyright (c) 2002-2004 Glenn Randers-Pehrson
- *
- */
-
-/* This file is obsolete in libpng-1.0.9 and later; its contents now appear
- * at the end of pngconf.h.
- */
diff --git a/pngconf.h b/pngconf.h
index c81b87c06..33154f342 100644
--- a/pngconf.h
+++ b/pngconf.h
@@ -1,7 +1,7 @@
/* pngconf.h - machine configurable file for libpng
*
- * libpng version 1.0.16 - August 15, 2004
+ * libpng version 1.0.17 - September 12, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -17,9 +17,7 @@
#ifndef PNGCONF_H
#define PNGCONF_H
-#ifdef PNG_USER_CONFIG
-#include "pngusr.h"
-#endif
+#define PNG_1_0_X
/* This is the size of the compression buffer, and thus the size of
* an IDAT chunk. Make this whatever size you feel is best for your
@@ -589,13 +587,6 @@
# endif
#endif /* PNG_WRITE_TRANSFORMS_SUPPORTED */
-#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
- defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
-# ifndef PNG_NO_USER_TRANSFORM_PTR
-# define PNG_USER_TRANSFORM_PTR_SUPPORTED
-# endif
-#endif
-
#define PNG_WRITE_INTERLACING_SUPPORTED /* not required for PNG-compliant
encoders, but can cause trouble
if left undefined */
@@ -605,12 +596,6 @@
# define PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
#endif
-#ifndef PNG_1_0_X
-#ifndef PNG_NO_ERROR_NUMBERS
-#define PNG_ERROR_NUMBERS_SUPPORTED
-#endif
-#endif /* PNG_1_0_X */
-
#ifndef PNG_NO_WRITE_FLUSH
# define PNG_WRITE_FLUSH_SUPPORTED
#endif
@@ -622,6 +607,19 @@
#endif /* PNG_WRITE_SUPPORTED */
+#ifndef PNG_1_0_X
+# ifndef PNG_NO_ERROR_NUMBERS
+# define PNG_ERROR_NUMBERS_SUPPORTED
+# endif
+#endif /* PNG_1_0_X */
+
+#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
+ defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
+# ifndef PNG_NO_USER_TRANSFORM_PTR
+# define PNG_USER_TRANSFORM_PTR_SUPPORTED
+# endif
+#endif
+
#ifndef PNG_NO_STDIO
# define PNG_TIME_RFC1123_SUPPORTED
#endif
diff --git a/pngerror.c b/pngerror.c
index da7453a9e..2e2a37893 100644
--- a/pngerror.c
+++ b/pngerror.c
@@ -1,7 +1,7 @@
/* pngerror.c - stub functions for i/o and memory allocation
*
- * libpng version 1.0.16 - August 15, 2004
+ * libpng version 1.0.17 - September 12, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pnggccrd.c b/pnggccrd.c
index 2edf06aec..4cfe0704c 100644
--- a/pnggccrd.c
+++ b/pnggccrd.c
@@ -6,7 +6,7 @@
* and http://www.intel.com/drg/pentiumII/appnotes/923/923.htm
* for Intel's performance analysis of the MMX vs. non-MMX code.
*
- * libpng version 1.0.16 - August 15, 2004
+ * libpng version 1.0.17 - September 12, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* Copyright (c) 1998, Intel Corporation
diff --git a/pngget.c b/pngget.c
index db937f8d2..33dd04ec9 100644
--- a/pngget.c
+++ b/pngget.c
@@ -1,7 +1,7 @@
/* pngget.c - retrieval of values from info struct
*
- * libpng 1.0.16 - August 15, 2004
+ * libpng 1.0.17 - September 12, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngmem.c b/pngmem.c
index 1be5157bf..ba50105c1 100644
--- a/pngmem.c
+++ b/pngmem.c
@@ -1,7 +1,7 @@
/* pngmem.c - stub functions for memory allocation
*
- * libpng version 1.0.16 - August 15, 2004
+ * libpng version 1.0.17 - September 12, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngnow.png b/pngnow.png
index 174b5fa05..82793ebdd 100644
--- a/pngnow.png
+++ b/pngnow.png
Binary files differ
diff --git a/pngpread.c b/pngpread.c
index 923df63f7..627da7591 100644
--- a/pngpread.c
+++ b/pngpread.c
@@ -1,7 +1,7 @@
/* pngpread.c - read a png file in push mode
*
- * libpng version 1.0.16 - August 15, 2004
+ * libpng version 1.0.17 - September 12, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngread.c b/pngread.c
index 123bfce83..69337bdad 100644
--- a/pngread.c
+++ b/pngread.c
@@ -1,7 +1,7 @@
/* pngread.c - read a PNG file
*
- * libpng 1.0.16 - August 15, 2004
+ * libpng 1.0.17 - September 12, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -803,7 +803,7 @@ png_read_row(png_structp png_ptr, png_bytep row, png_bytep dsp_row)
* not called png_set_interlace_handling(), the display_row buffer will
* be ignored, so pass NULL to it.
*
- * [*] png_handle_alpha() does not exist yet, as of libpng version 1.0.16
+ * [*] png_handle_alpha() does not exist yet, as of libpng version 1.0.17
*/
void PNGAPI
@@ -853,7 +853,7 @@ png_read_rows(png_structp png_ptr, png_bytepp row,
* only call this function once. If you desire to have an image for
* each pass of a interlaced image, use png_read_rows() instead.
*
- * [*] png_handle_alpha() does not exist yet, as of libpng version 1.0.16
+ * [*] png_handle_alpha() does not exist yet, as of libpng version 1.0.17
*/
void PNGAPI
png_read_image(png_structp png_ptr, png_bytepp image)
diff --git a/pngrio.c b/pngrio.c
index 7669ac2e7..b689410a2 100644
--- a/pngrio.c
+++ b/pngrio.c
@@ -1,7 +1,7 @@
/* pngrio.c - functions for data input
*
- * libpng 1.0.16 - August 15, 2004
+ * libpng 1.0.17 - September 12, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngrtran.c b/pngrtran.c
index 7894e391e..d6c483f40 100644
--- a/pngrtran.c
+++ b/pngrtran.c
@@ -1,7 +1,7 @@
/* pngrtran.c - transforms the data in a row for PNG readers
*
- * libpng version 1.0.16 - August 15, 2004
+ * libpng version 1.0.17 - September 12, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -1135,8 +1135,10 @@ png_read_transform_info(png_structp png_ptr, png_infop info_ptr)
(info_ptr->color_type == PNG_COLOR_TYPE_GRAY)))
{
info_ptr->channels++;
-#if 0 /* if adding a true alpha channel not just filler */
- info_ptr->color_type |= PNG_COLOR_MASK_ALPHA;
+ /* if adding a true alpha channel not just filler */
+#if !defined(PNG_1_0_X)
+ if (png_ptr->transformations & PNG_ADD_ALPHA)
+ info_ptr->color_type |= PNG_COLOR_MASK_ALPHA;
#endif
}
#endif
@@ -1927,7 +1929,6 @@ png_do_read_filler(png_row_infop row_info, png_bytep row,
row_info->rowbytes = row_width * 4;
}
}
- row_info->color_type |= PNG_COLOR_MASK_ALPHA;
} /* COLOR_TYPE == GRAY */
else if (row_info->color_type == PNG_COLOR_TYPE_RGB)
{
@@ -2012,7 +2013,6 @@ png_do_read_filler(png_row_infop row_info, png_bytep row,
row_info->rowbytes = row_width * 8;
}
}
- row_info->color_type |= PNG_COLOR_MASK_ALPHA;
} /* COLOR_TYPE == RGB */
}
#endif
diff --git a/pngrutil.c b/pngrutil.c
index 158f17a84..f22cab63c 100644
--- a/pngrutil.c
+++ b/pngrutil.c
@@ -1,6 +1,6 @@
/* pngrutil.c - utilities to read a PNG file
*
- * libpng version 1.0.16 - August 15, 2004
+ * libpng version 1.0.17 - September 12, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngset.c b/pngset.c
index 5927edbec..b571cdd99 100644
--- a/pngset.c
+++ b/pngset.c
@@ -1,7 +1,7 @@
/* pngset.c - storage of image information into info struct
*
- * libpng 1.0.16 - August 15, 2004
+ * libpng 1.0.17 - September 12, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngtest.c b/pngtest.c
index ab0860585..b705d491e 100644
--- a/pngtest.c
+++ b/pngtest.c
@@ -1,7 +1,7 @@
/* pngtest.c - a simple test program to test libpng
*
- * libpng 1.0.16 - August 15, 2004
+ * libpng 1.0.17 - September 12, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -1551,4 +1551,4 @@ main(int argc, char *argv[])
}
/* Generate a compiler error if there is an old png.h in the search path. */
-typedef version_1_0_16 your_png_h_is_not_version_1_0_16;
+typedef version_1_0_17 your_png_h_is_not_version_1_0_17;
diff --git a/pngtest.png b/pngtest.png
index ebea081c5..f3a6df448 100644
--- a/pngtest.png
+++ b/pngtest.png
Binary files differ
diff --git a/pngtrans.c b/pngtrans.c
index 7c5ba4f8d..1c6e8764a 100644
--- a/pngtrans.c
+++ b/pngtrans.c
@@ -1,7 +1,7 @@
/* pngtrans.c - transforms the data in a row (used by both readers and writers)
*
- * libpng 1.0.16 - August 15, 2004
+ * libpng 1.0.17 - September 12, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -100,7 +100,7 @@ png_set_filler(png_structp png_ptr, png_uint_32 filler, int filler_loc)
else
png_ptr->flags &= ~PNG_FLAG_FILLER_AFTER;
- /* This should probably go in the "do_filler" routine.
+ /* This should probably go in the "do_read_filler" routine.
* I attempted to do that in libpng-1.0.1a but that caused problems
* so I restored it in libpng-1.0.2a
*/
@@ -118,6 +118,18 @@ png_set_filler(png_structp png_ptr, png_uint_32 filler, int filler_loc)
png_ptr->usr_channels = 2;
}
}
+
+#if !defined(PNG_1_0_X)
+/* Added to libpng-1.2.7 */
+void PNGAPI
+png_set_add_alpha(png_structp png_ptr, png_uint_32 filler, int filler_loc)
+{
+ png_debug(1, "in png_set_add_alpha\n");
+ png_set_filler(png_ptr, filler, filler_loc);
+ png_ptr->transformations |= PNG_ADD_ALPHA;
+}
+#endif
+
#endif
#if defined(PNG_READ_SWAP_ALPHA_SUPPORTED) || \
@@ -375,16 +387,13 @@ png_do_strip_filler(png_row_infop row_info, png_bytep row, png_uint_32 flags)
if (row != NULL && row_info != NULL)
#endif
{
-/*
- if (row_info->color_type == PNG_COLOR_TYPE_RGB ||
- row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
-*/
png_bytep sp=row;
png_bytep dp=row;
png_uint_32 row_width=row_info->width;
png_uint_32 i;
- if (row_info->channels == 4)
+ if (row_info->color_type == PNG_COLOR_TYPE_RGB &&
+ row_info->channels == 4)
{
if (row_info->bit_depth == 8)
{
@@ -461,13 +470,9 @@ png_do_strip_filler(png_row_infop row_info, png_bytep row, png_uint_32 flags)
row_info->rowbytes = row_width * 6;
}
row_info->channels = 3;
- row_info->color_type &= ~PNG_COLOR_MASK_ALPHA;
}
-/*
- else if (row_info->color_type == PNG_COLOR_TYPE_GRAY ||
- row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
-*/
- else if (row_info->channels == 2)
+ else if (row_info->color_type == PNG_COLOR_TYPE_GRAY &&
+ row_info->channels == 2)
{
if (row_info->bit_depth == 8)
{
@@ -519,7 +524,6 @@ png_do_strip_filler(png_row_infop row_info, png_bytep row, png_uint_32 flags)
row_info->rowbytes = row_width * 2;
}
row_info->channels = 1;
- row_info->color_type &= ~PNG_COLOR_MASK_ALPHA;
}
}
}
diff --git a/pngvcrd.c b/pngvcrd.c
index 48186670c..d709f1d55 100644
--- a/pngvcrd.c
+++ b/pngvcrd.c
@@ -2,7 +2,7 @@
*
* For Intel x86 CPU and Microsoft Visual C++ compiler
*
- * libpng version 1.0.16 - August 15, 2004
+ * libpng version 1.0.17 - September 12, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* Copyright (c) 1998, Intel Corporation
diff --git a/pngwio.c b/pngwio.c
index 77daa8864..cbb6aae82 100644
--- a/pngwio.c
+++ b/pngwio.c
@@ -1,7 +1,7 @@
/* pngwio.c - functions for data output
*
- * libpng 1.0.16 - August 15, 2004
+ * libpng 1.0.17 - September 12, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngwrite.c b/pngwrite.c
index 5cbd1515c..1e00dcf93 100644
--- a/pngwrite.c
+++ b/pngwrite.c
@@ -1,7 +1,7 @@
/* pngwrite.c - general routines to write a PNG file
*
- * libpng 1.0.16 - August 15, 2004
+ * libpng 1.0.17 - September 12, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngwtran.c b/pngwtran.c
index a7031e8f5..b20a0be6f 100644
--- a/pngwtran.c
+++ b/pngwtran.c
@@ -1,7 +1,7 @@
/* pngwtran.c - transforms the data in a row for PNG writers
*
- * libpng version 1.0.16 - August 15, 2004
+ * libpng version 1.0.17 - September 12, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/pngwutil.c b/pngwutil.c
index 00dbb01aa..edf972e90 100644
--- a/pngwutil.c
+++ b/pngwutil.c
@@ -1,7 +1,7 @@
/* pngwutil.c - utilities to write a PNG file
*
- * libpng version 1.0.16 - August 15, 2004
+ * libpng version 1.0.17 - September 12, 2004
* For conditions of distribution and use, see copyright notice in png.h
* Copyright (c) 1998-2004 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -617,8 +617,8 @@ png_write_IDAT(png_structp png_ptr, png_bytep data, png_size_t length)
png_ptr->height < 16384 && png_ptr->width < 16384)
{
png_uint_32 uncompressed_idat_size = png_ptr->height *
- (PNG_ROWBYTES(png_ptr->channels*png_ptr->bit_depth,
- png_ptr->channels * png_ptr->bit_depth + 15) >> 3);
+ ((png_ptr->width *
+ png_ptr->channels * png_ptr->bit_depth + 15) >> 3);
unsigned int z_cinfo = z_cmf >> 4;
unsigned int half_z_window_size = 1 << (z_cinfo + 7);
while (uncompressed_idat_size <= half_z_window_size &&
@@ -1556,6 +1556,7 @@ png_write_sCAL(png_structp png_ptr, int unit, double width,double height)
#endif
png_size_t total_len;
char wbuf[32], hbuf[32];
+ png_byte bunit = unit;
png_debug(1, "in png_write_sCAL\n");
@@ -1576,7 +1577,7 @@ png_write_sCAL(png_structp png_ptr, int unit, double width,double height)
png_debug1(3, "sCAL total length = %d\n", (int)total_len);
png_write_chunk_start(png_ptr, (png_bytep)png_sCAL, (png_uint_32)total_len);
- png_write_chunk_data(png_ptr, (png_bytep)&unit, 1);
+ png_write_chunk_data(png_ptr, (png_bytep)&bunit, 1);
png_write_chunk_data(png_ptr, (png_bytep)wbuf, png_strlen(wbuf)+1);
png_write_chunk_data(png_ptr, (png_bytep)hbuf, png_strlen(hbuf));
@@ -1593,6 +1594,7 @@ png_write_sCAL_s(png_structp png_ptr, int unit, png_charp width,
#endif
png_size_t total_len;
char wbuf[32], hbuf[32];
+ png_byte bunit = unit;
png_debug(1, "in png_write_sCAL_s\n");
@@ -1602,7 +1604,7 @@ png_write_sCAL_s(png_structp png_ptr, int unit, png_charp width,
png_debug1(3, "sCAL total length = %d\n", total_len);
png_write_chunk_start(png_ptr, (png_bytep)png_sCAL, (png_uint_32)total_len);
- png_write_chunk_data(png_ptr, (png_bytep)&unit, 1);
+ png_write_chunk_data(png_ptr, (png_bytep)&bunit, 1);
png_write_chunk_data(png_ptr, (png_bytep)wbuf, png_strlen(wbuf)+1);
png_write_chunk_data(png_ptr, (png_bytep)hbuf, png_strlen(hbuf));
diff --git a/scripts/libpng-config-head.in b/scripts/libpng-config-head.in
index eb1e67824..afca9a9ad 100755
--- a/scripts/libpng-config-head.in
+++ b/scripts/libpng-config-head.in
@@ -8,7 +8,7 @@
# Modeled after libxml-config.
-version=1.0.16
+version=1.0.17
prefix=""
libdir=""
libs=""
diff --git a/scripts/libpng.pc.in b/scripts/libpng.pc.in
index e7705f902..f28ad668a 100644
--- a/scripts/libpng.pc.in
+++ b/scripts/libpng.pc.in
@@ -6,6 +6,6 @@ includedir=${exec_prefix}/include
Name: libpng10
Description: Loads and saves PNG files
-Version: 1.0.16
+Version: 1.0.17
Libs: -L${libdir} -lpng10 -lz -lm
Cflags: -I${includedir}/libpng10
diff --git a/scripts/makefile.32sunu b/scripts/makefile.32sunu
index fbcc6cc35..2b5e93048 100644
--- a/scripts/makefile.32sunu
+++ b/scripts/makefile.32sunu
@@ -33,7 +33,7 @@ RANLIB=echo
LIBNAME=libpng10
PNGMAJ = 0
-PNGMIN = 1.0.16
+PNGMIN = 1.0.17
PNGVER = $(PNGMAJ).$(PNGMIN)
INCPATH=$(prefix)/include
@@ -183,7 +183,17 @@ install-config: libpng-config
install: install-static install-shared install-man install-config
# If you installed in $(DESTDIR), test-installed won't work until you
-# move the library to its final location.
+# move the library to its final location. Use test-dd to test it
+# before then.
+
+test-dd:
+ echo
+ echo Testing installed dynamic shared library in $(DL).
+ $(CC) $(SUN_CC_FLAGS) -I$(DI) -I$(ZLIBINC) \
+ `$(BINPATH)/libpng10-config --cflags` pngtest.c \
+ -o pngtestd -L$(DL) -R$(DL) `$(BINPATH)/libpng10-config --ldflags` \
+ $(SUN_LD_FLAGS) -L$(ZLIBLIB) -R$(ZLIBLIB)
+ ./pngtestd pngtest.png
test-installed:
echo
diff --git a/scripts/makefile.64sunu b/scripts/makefile.64sunu
index bc24eb334..2ce8a8024 100644
--- a/scripts/makefile.64sunu
+++ b/scripts/makefile.64sunu
@@ -33,7 +33,7 @@ RANLIB=echo
LIBNAME=libpng10
PNGMAJ = 0
-PNGMIN = 1.0.16
+PNGMIN = 1.0.17
PNGVER = $(PNGMAJ).$(PNGMIN)
INCPATH=$(prefix)/include
@@ -184,7 +184,17 @@ install-config: libpng-config
install: install-static install-shared install-man install-config
# If you installed in $(DESTDIR), test-installed won't work until you
-# move the library to its final location.
+# move the library to its final location. Use test-dd to test it
+# before then.
+
+test-dd:
+ echo
+ echo Testing installed dynamic shared library in $(DL).
+ $(CC) $(SUN_CC_FLAGS) -I$(DI) -I$(ZLIBINC) \
+ `$(BINPATH)/libpng10-config --cflags` pngtest.c \
+ -o pngtestd -L$(DL) -R$(DL) `$(BINPATH)/libpng10-config --ldflags` \
+ $(SUN_LD_FLAGS) -L$(ZLIBLIB) -R$(ZLIBLIB)
+ ./pngtestd pngtest.png
test-installed:
echo
diff --git a/scripts/makefile.aix b/scripts/makefile.aix
index bda1c1339..f1f32c00a 100644
--- a/scripts/makefile.aix
+++ b/scripts/makefile.aix
@@ -18,7 +18,7 @@ RM = rm -f
LIBNAME=libpng10
PNGMAJ = 0
-PNGMIN = 1.0.16
+PNGMIN = 1.0.17
PNGVER = $(PNGMAJ).$(PNGMIN)
prefix=/usr/local
diff --git a/scripts/makefile.beos b/scripts/makefile.beos
index 9799a3497..e49d1e548 100644
--- a/scripts/makefile.beos
+++ b/scripts/makefile.beos
@@ -12,7 +12,7 @@ ZLIBLIB=/usr/local/lib
ZLIBINC=/usr/local/include
PNGMAJ = 0
-PNGMIN = 1.0.16
+PNGMIN = 1.0.17
PNGVER = $(PNGMAJ).$(PNGMIN)
ALIGN=
@@ -165,7 +165,17 @@ install-config: libpng-config
install: install-static install-shared install-man install-config
# If you installed in $(DESTDIR), test-installed won't work until you
-# move the library to its final location.
+# move the library to its final location. Use test-dd to test it
+# before then.
+
+test-dd:
+ echo
+ echo Testing installed dynamic shared library in $(DL).
+ $(CC) -I$(DI) $(CFLAGS) \
+ `$(BINPATH)/libpng10-config --cflags` pngtest.c \
+ -L$(DL) -L$(ZLIBLIB) -W1,-rpath $(ZLIBLIB):$(DL) \
+ -o pngtestd `$(BINPATH)/libpng10-config --ldflags`
+ ./pngtestd pngtest.png
test-installed:
$(CC) $(CFLAGS) \
diff --git a/scripts/makefile.cygwin b/scripts/makefile.cygwin
index 7c43dc9d0..1646d352d 100644
--- a/scripts/makefile.cygwin
+++ b/scripts/makefile.cygwin
@@ -79,7 +79,7 @@ CFLAGS= $(strip $(MINGW_CCFLAGS) $(addprefix -I,$(ZLIBINC)) \
LIBNAME = libpng10
PNGMAJ = 0
CYGDLL = 12
-PNGMIN = 1.0.16
+PNGMIN = 1.0.17
PNGVER = $(PNGMAJ).$(PNGMIN)
SHAREDLIB=cygpng$(CYGDLL).dll
@@ -176,7 +176,7 @@ $(STATLIB): $(OBJS)
ar rc $@ $(OBJS)
$(RANLIB) $@
-$(SHAREDDEF): projects/msvc/png32ms.def
+$(SHAREDDEF): scripts/png32ms.def
cat $< | sed -e '1{G;s/^\(.*\)\(\n\)/EXPORTS/;};2,/^EXPORTS/d' | \
sed -e 's/\([^;]*\);/;/' > $@
@@ -260,7 +260,17 @@ test-config-install: $(DB)/libpng-config
install: install-static install-shared install-man install-config
# If you installed in $(DESTDIR), test-installed won't work until you
-# move the library to its final location.
+# move the library to its final location. Use test-dd to test it
+# before then.
+
+test-dd:
+ echo
+ echo Testing installed dynamic shared library in $(DL).
+ $(CC) -I$(DI) $(CFLAGS) \
+ `$(BINPATH)/libpng10-config --cflags` pngtest.c \
+ -L$(DL) -L$(ZLIBLIB) \
+ -o pngtestd `$(BINPATH)/libpng10-config --ldflags`
+ ./pngtestd pngtest.png
test-installed:
$(CC) $(CFLAGS) \
diff --git a/scripts/makefile.darwin b/scripts/makefile.darwin
index 6ab05b46e..1ae6d0331 100644
--- a/scripts/makefile.darwin
+++ b/scripts/makefile.darwin
@@ -23,7 +23,7 @@ LDFLAGS=-L. -L$(ZLIBLIB) -lpng10 -lz
RANLIB=ranlib
PNGMAJ = 0
-PNGMIN = 1.0.16
+PNGMIN = 1.0.17
PNGVER = $(PNGMAJ).$(PNGMIN)
LIBNAME = libpng10
@@ -167,7 +167,17 @@ install-config: libpng-config
install: install-static install-shared install-man install-config
# If you installed in $(DESTDIR), test-installed won't work until you
-# move the library to its final location.
+# move the library to its final location. Use test-dd to test it
+# before then.
+
+test-dd:
+ echo
+ echo Testing installed dynamic shared library in $(DL).
+ $(CC) -I$(DI) -I$(ZLIBINC) \
+ `$(BINPATH)/libpng10-config --cflags` pngtest.c \
+ -L$(DL) -L$(ZLIBLIB) \
+ -o pngtestd `$(BINPATH)/libpng10-config --ldflags`
+ ./pngtestd pngtest.png
test-installed:
$(CC) $(CFLAGS) \
diff --git a/scripts/makefile.dec b/scripts/makefile.dec
index ff88f0ff9..8f736d780 100644
--- a/scripts/makefile.dec
+++ b/scripts/makefile.dec
@@ -32,7 +32,7 @@ ZLIBLIB=../zlib
ZLIBINC=../zlib
PNGMAJ = 0
-PNGMIN = 1.0.16
+PNGMIN = 1.0.17
PNGVER = $(PNGMAJ).$(PNGMIN)
LIBNAME = libpng10
@@ -148,7 +148,17 @@ install-config: libpng-config
install: install-static install-shared install-man install-config
# If you installed in $(DESTDIR), test-installed won't work until you
-# move the library to its final location.
+# move the library to its final location. Use test-dd to test it
+# before then.
+
+test-dd:
+ echo
+ echo Testing installed dynamic shared library in $(DL).
+ $(CC) -w1 -I$(DI) -I$(ZLIBINC) \
+ `$(BINPATH)/libpng10-config --cflags` pngtest.c \
+ -L$(DL) -L$(ZLIBLIB) -R$(ZLIBLIB) -R$(DL) \
+ -o pngtestd `$(BINPATH)/libpng10-config --ldflags`
+ ./pngtestd pngtest.png
test-installed:
echo
diff --git a/scripts/makefile.gcmmx b/scripts/makefile.gcmmx
index 3a1ad0390..0a1ad6c7b 100644
--- a/scripts/makefile.gcmmx
+++ b/scripts/makefile.gcmmx
@@ -15,7 +15,7 @@
LIBNAME = libpng10
PNGMAJ = 0
-PNGMIN = 1.0.16
+PNGMIN = 1.0.17
PNGVER = $(PNGMAJ).$(PNGMIN)
CC=gcc
@@ -212,7 +212,17 @@ install-config: libpng-config
install: install-static install-shared install-man install-config
# If you installed in $(DESTDIR), test-installed won't work until you
-# move the library to its final location.
+# move the library to its final location. Use test-dd to test it
+# before then.
+
+test-dd:
+ echo
+ echo Testing installed dynamic shared library in $(DL).
+ $(CC) -I$(DI) -I$(ZLIBINC) \
+ `$(BINPATH)/libpng10-config --cflags` pngtest.c \
+ -L$(DL) -L$(ZLIBLIB) -W1, -rpath,$(DL) -Wl,-rpath,$(ZLIBLIB) \
+ -o pngtestd `$(BINPATH)/libpng10-config --ldflags`
+ ./pngtestd pngtest.png
test-installed:
$(CC) -I$(ZLIBINC) \
diff --git a/scripts/makefile.hp64 b/scripts/makefile.hp64
new file mode 100644
index 000000000..5dc6e4cee
--- /dev/null
+++ b/scripts/makefile.hp64
@@ -0,0 +1,216 @@
+# makefile for libpng, HPUX (10.20 and 11.00) using the ANSI/C product.
+# Copyright (C) 1999-2002 Glenn Randers-Pehrson
+# Copyright (C) 1995 Guy Eric Schalnat, Group 42
+# contributed by Jim Rice and updated by Chris Schleicher, Hewlett Packard
+# For conditions of distribution and use, see copyright notice in png.h
+
+# Where the zlib library and include files are located
+ZLIBLIB=/opt/zlib/lib
+ZLIBINC=/opt/zlib/include
+
+# Note that if you plan to build a libpng shared library, zlib must also
+# be a shared library, which zlib's configure does not do. After running
+# zlib's configure, edit the appropriate lines of makefile to read:
+# CFLAGS=-O1 -DHAVE_UNISTD -DUSE_MAP -fPIC \
+# LDSHARED=ld -b
+# SHAREDLIB=libz.sl
+
+CC=cc
+CFLAGS=-I$(ZLIBINC) -O -Ae -Wl,+vnocompatwarnings +DD64 \
+-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 +Z -DHAVE_UNISTD_H -DUSE_MMAP
+# Caution: be sure you have built zlib with the same CFLAGS.
+CCFLAGS=-I$(ZLIBINC) -O -Ae -Wl,+vnocompatwarnings +DD64 \
+-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 +Z -DHAVE_UNISTD_H -DUSE_MMAP
+
+LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lz -lm
+
+RANLIB=ranlib
+
+PNGMAJ = 0
+PNGMIN = 1.0.17
+PNGVER = $(PNGMAJ).$(PNGMIN)
+LIBNAME = libpng10
+
+# where make install puts libpng.a, libpng10.sl, and png.h
+prefix=/opt/libpng
+INCPATH=$(prefix)/include
+LIBPATH=$(prefix)/lib
+MANPATH=$(prefix)/man
+BINPATH=$(prefix)/bin
+
+# override DESTDIR= on the make install command line to easily support
+# installing into a temporary location. Example:
+#
+# make install DESTDIR=/tmp/build/libpng
+#
+# If you're going to install into a temporary location
+# via DESTDIR, $(DESTDIR)$(prefix) must already exist before
+# you execute make install.
+DESTDIR=
+
+DB=$(DESTDIR)$(BINPATH)
+DI=$(DESTDIR)$(INCPATH)
+DL=$(DESTDIR)$(LIBPATH)
+DM=$(DESTDIR)$(MANPATH)
+
+OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o \
+ pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \
+ pngwtran.o pngmem.o pngerror.o pngpread.o
+
+OBJSDLL = $(OBJS:.o=.pic.o)
+
+.SUFFIXES: .c .o .pic.o
+
+.c.pic.o:
+ $(CC) -c $(CFLAGS) +z -o $@ $*.c
+
+all: libpng.a $(LIBNAME).sl pngtest libpng.pc libpng-config
+
+libpng.a: $(OBJS)
+ ar rc $@ $(OBJS)
+ $(RANLIB) $@
+
+libpng.pc:
+ cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
+
+libpng-config:
+ ( cat scripts/libpng-config-head.in; \
+ echo prefix=\"$(prefix)\"; \
+ echo I_opts=\"-I$(INCPATH)/$(LIBNAME)\"; \
+ echo ccopts=\"-Ae +DA1.1 +DS2.0\"; \
+ echo L_opts=\"-L$(LIBPATH)\"; \
+ echo libs=\"-lpng10 -lz -lm\"; \
+ cat scripts/libpng-config-body.in ) > libpng-config
+ chmod +x libpng-config
+
+$(LIBNAME).sl: $(LIBNAME).sl.$(PNGMAJ)
+ ln -sf $(LIBNAME).sl.$(PNGMAJ) $(LIBNAME).sl
+
+$(LIBNAME).sl.$(PNGMAJ): $(LIBNAME).sl.$(PNGVER)
+ ln -sf $(LIBNAME).sl.$(PNGVER) $(LIBNAME).sl.$(PNGMAJ)
+
+$(LIBNAME).sl.$(PNGVER): $(OBJSDLL)
+ $(LD) -b +s \
+ +h $(LIBNAME).sl.$(PNGMAJ) -o $(LIBNAME).sl.$(PNGVER) $(OBJSDLL)
+
+libpng.sl.3.$(PNGMIN): $(OBJSDLL)
+ $(LD) -b +s \
+ +h libpng.sl.3 -o libpng.sl.3.$(PNGMIN) $(OBJSDLL)
+
+pngtest: pngtest.o libpng.a
+ $(CC) -o pngtest $(CCFLAGS) pngtest.o $(LDFLAGS)
+
+test: pngtest
+ ./pngtest
+
+install-headers: png.h pngconf.h
+ -@if [ ! -d $(DI) ]; then mkdir $(DI); fi
+ -@if [ ! -d $(DI)/$(LIBNAME) ]; then mkdir $(DI)/$(LIBNAME); fi
+ cp png.h pngconf.h $(DI)/$(LIBNAME)
+ chmod 644 $(DI)/$(LIBNAME)/png.h $(DI)/$(LIBNAME)/pngconf.h
+ -@/bin/rm -f $(DI)/png.h $(DI)/pngconf.h
+ -@/bin/rm -f $(DI)/libpng
+ (cd $(DI); ln -sf $(LIBNAME) libpng; ln -sf $(LIBNAME)/* .)
+
+install-static: install-headers libpng.a
+ -@if [ ! -d $(DL) ]; then mkdir $(DL); fi
+ cp libpng.a $(DL)/$(LIBNAME).a
+ chmod 644 $(DL)/$(LIBNAME).a
+ -@/bin/rm -f $(DL)/libpng.a
+ (cd $(DL); ln -sf $(LIBNAME).a libpng.a)
+
+install-shared: install-headers $(LIBNAME).sl.$(PNGVER) libpng.pc \
+ libpng.sl.3.$(PNGMIN)
+ -@if [ ! -d $(DL) ]; then mkdir $(DL); fi
+ -@/bin/rm -f $(DL)/$(LIBNAME).sl.$(PNGVER)* $(DL)/$(LIBNAME).sl
+ -@/bin/rm -f $(DL)/$(LIBNAME).sl.$(PNGMAJ)
+ -@/bin/rm -f $(DL)/libpng.sl
+ -@/bin/rm -f $(DL)/libpng.sl.3
+ -@/bin/rm -f $(DL)/libpng.sl.3.$(PNGMIN)*
+ cp $(LIBNAME).sl.$(PNGVER) $(DL)
+ cp libpng.sl.3.$(PNGMIN) $(DL)
+ chmod 755 $(DL)/$(LIBNAME).sl.$(PNGVER)
+ chmod 755 $(DL)/libpng.sl.3.$(PNGMIN)
+ (cd $(DL); \
+ ln -sf libpng.sl.3.$(PNGMIN) libpng.sl.3; \
+ ln -sf libpng.sl.3 libpng.sl; \
+ ln -sf $(LIBNAME).sl.$(PNGVER) $(LIBNAME).sl.$(PNGMAJ); \
+ ln -sf $(LIBNAME).sl.$(PNGMAJ) $(LIBNAME).sl)
+ -@if [ ! -d $(DL)/pkgconfig ]; then mkdir $(DL)/pkgconfig; fi
+ -@/bin/rm -f $(DL)/pkgconfig/$(LIBNAME).pc
+ -@/bin/rm -f $(DL)/pkgconfig/libpng.pc
+ cp libpng.pc $(DL)/pkgconfig/$(LIBNAME).pc
+ chmod 644 $(DL)/pkgconfig/$(LIBNAME).pc
+ (cd $(DL)/pkgconfig; ln -sf $(LIBNAME).pc libpng.pc)
+
+install-man: libpng.3 libpngpf.3 png.5
+ -@if [ ! -d $(DM) ]; then mkdir $(DM); fi
+ -@if [ ! -d $(DM)/man3 ]; then mkdir $(DM)/man3; fi
+ -@/bin/rm -f $(DM)/man3/libpng.3
+ -@/bin/rm -f $(DM)/man3/libpngpf.3
+ cp libpng.3 $(DM)/man3
+ cp libpngpf.3 $(DM)/man3
+ -@if [ ! -d $(DM)/man5 ]; then mkdir $(DM)/man5; fi
+ -@/bin/rm -f $(DM)/man5/png.5
+ cp png.5 $(DM)/man5
+
+install-config: libpng-config
+ -@if [ ! -d $(DB) ]; then mkdir $(DB); fi
+ -@/bin/rm -f $(DB)/libpng-config
+ -@/bin/rm -f $(DB)/$(LIBNAME)-config
+ cp libpng-config $(DB)/$(LIBNAME)-config
+ chmod 755 $(DB)/$(LIBNAME)-config
+ (cd $(DB); ln -sf $(LIBNAME)-config libpng-config)
+
+install: install-static install-shared install-man install-config
+
+# If you installed in $(DESTDIR), test-installed won't work until you
+# move the library to its final location. Use test-dd to test it
+# before then.
+
+test-dd:
+ echo
+ echo Testing installed dynamic shared library in $(DL).
+ $(CC) -I$(DI) -I$(ZLIBINC) $(CCFLAGS) \
+ `$(BINPATH)/libpng10-config --cflags` pngtest.c \
+ -L$(DL) -L$(ZLIBLIB) \
+ -o pngtestd `$(BINPATH)/libpng10-config --ldflags`
+ ./pngtestd pngtest.png
+
+test-installed:
+ echo
+ echo Testing installed dynamic shared library.
+ $(CC) $(CCFLAGS) \
+ `$(BINPATH)/libpng10-config --cflags` pngtest.c \
+ -L$(ZLIBLIB) \
+ -o pngtesti `$(BINPATH)/libpng10-config --ldflags`
+ ./pngtesti pngtest.png
+
+clean:
+ /bin/rm -f *.o libpng.a pngtest pngtesti pngout.png \
+ libpng-config $(LIBNAME).sl $(LIBNAME).sl.$(PNGMAJ)* \
+ libpng.sl.3.$(PNGMIN) \
+ libpng.pc
+
+DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
+writelock:
+ chmod a-w *.[ch35] $(DOCS) scripts/*
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+png.o: png.h pngconf.h
+pngerror.o: png.h pngconf.h
+pngrio.o: png.h pngconf.h
+pngwio.o: png.h pngconf.h
+pngmem.o: png.h pngconf.h
+pngset.o: png.h pngconf.h
+pngget.o: png.h pngconf.h
+pngread.o: png.h pngconf.h
+pngrtran.o: png.h pngconf.h
+pngrutil.o: png.h pngconf.h
+pngtest.o: png.h pngconf.h
+pngtrans.o: png.h pngconf.h
+pngwrite.o: png.h pngconf.h
+pngwtran.o: png.h pngconf.h
+pngwutil.o: png.h pngconf.h
+pngpread.o: png.h pngconf.h
diff --git a/scripts/makefile.hpgcc b/scripts/makefile.hpgcc
index 7c496ef6f..21ea870d6 100644
--- a/scripts/makefile.hpgcc
+++ b/scripts/makefile.hpgcc
@@ -41,7 +41,7 @@ RANLIB=ranlib
#RANLIB=echo
PNGMAJ = 0
-PNGMIN = 1.0.16
+PNGMIN = 1.0.17
PNGVER = $(PNGMAJ).$(PNGMIN)
LIBNAME = libpng10
@@ -176,7 +176,17 @@ install-config: libpng-config
install: install-static install-shared install-man install-config
# If you installed in $(DESTDIR), test-installed won't work until you
-# move the library to its final location.
+# move the library to its final location. Use test-dd to test it
+# before then.
+
+test-dd:
+ echo
+ echo Testing installed dynamic shared library in $(DL).
+ $(CC) -I$(DI) -I$(ZLIBINC) \
+ `$(BINPATH)/libpng10-config --cflags` pngtest.c \
+ -L$(DL) -L$(ZLIBLIB) -W1,-rpath,$(DL) -Wl,-rpath,$(ZLIBLIB) \
+ -o pngtestd `$(BINPATH)/libpng10-config --ldflags`
+ ./pngtestd pngtest.png
test-installed:
echo
diff --git a/scripts/makefile.hpux b/scripts/makefile.hpux
index e4daba75a..e0a53d47a 100644
--- a/scripts/makefile.hpux
+++ b/scripts/makefile.hpux
@@ -24,7 +24,7 @@ LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lz -lm
RANLIB=ranlib
PNGMAJ = 0
-PNGMIN = 1.0.16
+PNGMIN = 1.0.17
PNGVER = $(PNGMAJ).$(PNGMIN)
LIBNAME = libpng10
@@ -162,7 +162,17 @@ install-config: libpng-config
install: install-static install-shared install-man install-config
# If you installed in $(DESTDIR), test-installed won't work until you
-# move the library to its final location.
+# move the library to its final location. Use test-dd to test it
+# before then.
+
+test-dd:
+ echo
+ echo Testing installed dynamic shared library in $(DL).
+ $(CC) -I$(DI) -I$(ZLIBINC) $(CCFLAGS) \
+ `$(BINPATH)/libpng10-config --cflags` pngtest.c \
+ -L$(DL) -L$(ZLIBLIB) \
+ -o pngtestd `$(BINPATH)/libpng10-config --ldflags`
+ ./pngtestd pngtest.png
test-installed:
echo
diff --git a/scripts/makefile.linux b/scripts/makefile.linux
index 5e60ac8c8..e689e7170 100644
--- a/scripts/makefile.linux
+++ b/scripts/makefile.linux
@@ -5,7 +5,7 @@
LIBNAME = libpng10
PNGMAJ = 0
-PNGMIN = 1.0.16
+PNGMIN = 1.0.17
PNGVER = $(PNGMAJ).$(PNGMIN)
CC=gcc
@@ -184,7 +184,17 @@ install-config: libpng-config
install: install-static install-shared install-man install-config
# If you installed in $(DESTDIR), test-installed won't work until you
-# move the library to its final location.
+# move the library to its final location. Use test-dd to test it
+# before then.
+
+test-dd:
+ echo
+ echo Testing installed dynamic shared library in $(DL).
+ $(CC) -I$(DI) -I$(ZLIBINC) \
+ `$(BINPATH)/libpng10-config --cflags` pngtest.c \
+ -L$(DL) -L$(ZLIBLIB) -W1, -rpath,$(DL) -Wl,-rpath,$(ZLIBLIB) \
+ -o pngtestd `$(BINPATH)/libpng10-config --ldflags`
+ ./pngtestd pngtest.png
test-installed:
$(CC) -I$(ZLIBINC) \
diff --git a/scripts/makefile.ne12bsd b/scripts/makefile.ne12bsd
index 782f9391c..9a17f0240 100644
--- a/scripts/makefile.ne12bsd
+++ b/scripts/makefile.ne12bsd
@@ -13,7 +13,7 @@ INCSDIR=${LOCALBASE}/include/libpng10
LIB= png12
SHLIB_MAJOR= 0
-SHLIB_MINOR= 1.0.16
+SHLIB_MINOR= 1.0.17
SRCS= pnggccrd.c png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \
pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
pngwtran.c pngmem.c pngerror.c pngpread.c
diff --git a/scripts/makefile.netbsd b/scripts/makefile.netbsd
index 86c356881..0bc126cd7 100644
--- a/scripts/makefile.netbsd
+++ b/scripts/makefile.netbsd
@@ -13,7 +13,7 @@ INCSDIR=${LOCALBASE}/include/libpng
LIB= png
SHLIB_MAJOR= 3
-SHLIB_MINOR= 1.0.16
+SHLIB_MINOR= 1.0.17
SRCS= pnggccrd.c png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \
pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
pngwtran.c pngmem.c pngerror.c pngpread.c
diff --git a/scripts/makefile.openbsd b/scripts/makefile.openbsd
index a357e7a3f..c08e66ce0 100644
--- a/scripts/makefile.openbsd
+++ b/scripts/makefile.openbsd
@@ -7,7 +7,7 @@ LIBDIR= ${PREFIX}/lib
MANDIR= ${PREFIX}/man/cat
SHLIB_MAJOR= 0
-SHLIB_MINOR= 1.0.16
+SHLIB_MINOR= 1.0.17
LIB= png
SRCS= png.c pngerror.c pnggccrd.c pngget.c pngmem.c pngpread.c \
diff --git a/scripts/makefile.sco b/scripts/makefile.sco
index 954858507..61ace9f9f 100644
--- a/scripts/makefile.sco
+++ b/scripts/makefile.sco
@@ -24,7 +24,7 @@ LDFLAGS=-L. -L$(ZLIBLIB) -lpng10 -lz -lm
RANLIB=echo
PNGMAJ = 0
-PNGMIN = 1.0.16
+PNGMIN = 1.0.17
PNGVER = $(PNGMAJ).$(PNGMIN)
LIBNAME = libpng10
@@ -162,7 +162,17 @@ install-config: libpng-config
install: install-static install-shared install-man install-config
# If you installed in $(DESTDIR), test-installed won't work until you
-# move the library to its final location.
+# move the library to its final location. Use test-dd to test it
+# before then.
+
+test-dd:
+ echo
+ echo Testing installed dynamic shared library in $(DL).
+ $(CC) -I$(DI) $(CFLAGS) \
+ `$(BINPATH)/libpng10-config --cflags` pngtest.c \
+ -L$(DL) -L$(ZLIBLIB) \
+ -o pngtestd `$(BINPATH)/libpng10-config --ldflags`
+ ./pngtestd pngtest.png
test-installed:
$(CC) $(CFLAGS) \
diff --git a/scripts/makefile.sggcc b/scripts/makefile.sggcc
index ce4444f50..e6f5fb530 100644
--- a/scripts/makefile.sggcc
+++ b/scripts/makefile.sggcc
@@ -18,7 +18,7 @@ ZLIBINC=../zlib
LIBNAME=libpng10
PNGMAJ = 0
-PNGMIN = 1.0.16
+PNGMIN = 1.0.17
PNGVER = $(PNGMAJ).$(PNGMIN)
CC=gcc
@@ -169,14 +169,26 @@ install-config: libpng-config
install: install-static install-shared install-man install-config
# If you installed in $(DESTDIR), test-installed won't work until you
-# move the library to its final location.
+# move the library to its final location. Use test-dd to test it
+# before then.
+
+test-dd:
+ echo
+ echo Testing installed dynamic shared library in $(DL).
+ $(CC) -I$(DI) -I$(ZLIBINC) \
+ `$(BINPATH)/libpng10-config --cflags` pngtest.c \
+ -L$(DL) -L$(ZLIBLIB) \
+ -rpath $(ZLIBLIB):$(DL)\
+ -o pngtestd `$(BINPATH)/libpng10-config --ldflags`
+ ./pngtestd pngtest.png
test-installed:
echo
echo Testing installed dynamic shared library.
$(CC) -I$(ZLIBINC) \
`$(BINPATH)/libpng10-config --cflags` pngtest.c \
- -L$(ZLIBLIB) -rpath $(ZLIBLIB):`$(BINPATH)/libpng10-config --libdir` \
+ -L$(ZLIBLIB) \
+ -rpath $(ZLIBLIB):`$(BINPATH)/libpng10-config --libdir` \
-o pngtesti `$(BINPATH)/libpng10-config --ldflags`
./pngtesti pngtest.png
diff --git a/scripts/makefile.sgi b/scripts/makefile.sgi
index 2b3df6684..dc3460bd4 100644
--- a/scripts/makefile.sgi
+++ b/scripts/makefile.sgi
@@ -5,7 +5,7 @@
LIBNAME=libpng10
PNGMAJ = 0
-PNGMIN = 1.0.16
+PNGMIN = 1.0.17
PNGVER = $(PNGMAJ).$(PNGMIN)
# Where make install puts libpng.a, libpng10.so, and libpng10/png.h
@@ -175,14 +175,26 @@ install-config: libpng-config
install: install-static install-shared install-man install-config
# If you installed in $(DESTDIR), test-installed won't work until you
-# move the library to its final location.
+# move the library to its final location. Use test-dd to test it
+# before then.
+
+test-dd:
+ echo
+ echo Testing installed dynamic shared library in $(DL).
+ $(CC) -I$(DI) -I$(ZLIBINC) \
+ `$(BINPATH)/libpng10-config --cflags` pngtest.c \
+ -L$(DL) -L$(ZLIBLIB) \
+ -rpath $(ZLIBLIB):$(DL) \
+ -o pngtestd `$(BINPATH)/libpng10-config --ldflags`
+ ./pngtestd pngtest.png
test-installed:
echo
echo Testing installed dynamic shared library.
$(CC) -I$(ZLIBINC) \
`$(BINPATH)/libpng10-config --cflags` pngtest.c \
- -L$(ZLIBLIB) -rpath $(ZLIBLIB):`$(BINPATH)/libpng10-config --libdir` \
+ -L$(ZLIBLIB) \
+ -rpath $(ZLIBLIB):`$(BINPATH)/libpng10-config --libdir` \
-o pngtesti `$(BINPATH)/libpng10-config --ldflags`
./pngtesti pngtest.png
diff --git a/scripts/makefile.so9 b/scripts/makefile.so9
index 80c803b7d..d35bb057b 100644
--- a/scripts/makefile.so9
+++ b/scripts/makefile.so9
@@ -34,7 +34,7 @@ LDFLAGS=-L. -R. -L$(ZLIBLIB) -R$(ZLIBLIB) -lpng10 -lz -lm
RANLIB=echo
PNGMAJ = 0
-PNGMIN = 1.0.16
+PNGMIN = 1.0.17
PNGVER = $(PNGMAJ).$(PNGMIN)
LIBNAME = libpng10
@@ -182,7 +182,17 @@ install-config: libpng-config
install: install-static install-shared install-man install-config
# If you installed in $(DESTDIR), test-installed won't work until you
-# move the library to its final location.
+# move the library to its final location. Use test-dd to test it
+# before then.
+
+test-dd:
+ echo
+ echo Testing installed dynamic shared library in $(DL).
+ $(CC) -I$(DI) -I$(ZLIBINC) \
+ `$(BINPATH)/libpng10-config --cflags` pngtest.c \
+ -o pngtestd `$(BINPATH)/libpng10-config --ldflags` \
+ -L$(DL) -L$(ZLIBLIB) -R$(ZLIBLIB) -R$(DL)
+ ./pngtestd pngtest.png
test-installed:
echo
diff --git a/scripts/makefile.solaris b/scripts/makefile.solaris
index 91fbe9e5c..01ac64fe8 100644
--- a/scripts/makefile.solaris
+++ b/scripts/makefile.solaris
@@ -30,7 +30,7 @@ LDFLAGS=-L. -R. -L$(ZLIBLIB) -R$(ZLIBLIB) -lpng10 -lz -lm
RANLIB=echo
PNGMAJ = 0
-PNGMIN = 1.0.16
+PNGMIN = 1.0.17
PNGVER = $(PNGMAJ).$(PNGMIN)
LIBNAME = libpng10
@@ -179,7 +179,17 @@ install-config: libpng-config
install: install-static install-shared install-man install-config
# If you installed in $(DESTDIR), test-installed won't work until you
-# move the library to its final location.
+# move the library to its final location. Use test-dd to test it
+# before then.
+
+test-dd:
+ echo
+ echo Testing installed dynamic shared library in $(DL).
+ $(CC) -I$(DI) -I$(ZLIBINC) \
+ `$(BINPATH)/libpng10-config --cflags` pngtest.c \
+ -o pngtestd `$(BINPATH)/libpng10-config --ldflags` \
+ -L$(DL) -L$(ZLIBLIB) -R$(ZLIBLIB) -R$(DL)
+ ./pngtestd pngtest.png
test-installed:
echo
diff --git a/scripts/pngos2.def b/scripts/pngos2.def
index 6c806f556..004645074 100644
--- a/scripts/pngos2.def
+++ b/scripts/pngos2.def
@@ -2,7 +2,7 @@
; PNG.LIB module definition file for OS/2
;----------------------------------------
-; Version 1.0.16
+; Version 1.0.17
LIBRARY PNG
DESCRIPTION "PNG image compression library for OS/2"
@@ -184,32 +184,6 @@ EXPORTS
png_convert_to_rfc1123
png_set_invalid
-; Added at version 1.2.0:
- png_mmx_support
- png_permit_empty_plte
- png_permit_mng_features
- png_get_mmx_flagmask
- png_get_asm_flagmask
- png_get_asm_flags
- png_get_mmx_bitdepth_threshold
- png_get_mmx_rowbytes_threshold
- png_set_asm_flags
- png_init_mmx_flags
-
-; Added at version 1.2.2:
- png_handle_as_unknown
-
-; Added at version 1.2.2 and deleted from 1.2.3:
-; png_zalloc
-; png_zfree
-
-; Added at version 1.2.4
- png_malloc_warn
-
-; Added at version 1.2.6
- png_set_user_limits
- png_get_user_height_max
- png_get_user_width_max
; These are not present when libpng is compiled with PNG_NO_GLOBAL_ARRAYS
png_libpng_ver
diff --git a/scripts/pngw32.def b/scripts/pngw32.def
index 60843dc43..742065330 100644
--- a/scripts/pngw32.def
+++ b/scripts/pngw32.def
@@ -6,7 +6,7 @@ LIBRARY
DESCRIPTION "PNG image compression library for Windows"
EXPORTS
-;Version 1.0.16
+;Version 1.0.17
png_build_grayscale_palette @1
png_check_sig @2
png_chunk_error @3
@@ -191,35 +191,3 @@ EXPORTS
png_write_init_3 @176
png_info_init_3 @177
png_destroy_struct @178
-; Added at version 1.2.0
-; For use with PNG_USER_MEM_SUPPORTED
- png_destroy_struct_2 @179
- png_create_read_struct_2 @180
- png_create_write_struct_2 @181
- png_malloc_default @182
- png_free_default @183
-; MNG features
- png_permit_mng_features @184
-; MMX support
- png_mmx_support @185
- png_get_mmx_flagmask @186
- png_get_asm_flagmask @187
- png_get_asm_flags @188
- png_get_mmx_bitdepth_threshold @189
- png_get_mmx_rowbytes_threshold @190
- png_set_asm_flags @191
- png_init_mmx_flags @192
-; Strip error numbers
- png_set_strip_error_numbers @193
-; Added at version 1.2.2
- png_handle_as_unknown @194
-; Added at version 1.2.2 and deleted from 1.2.3
-; png_zalloc @195
-; png_zfree @196
-; Added at version 1.2.4
- png_malloc_warn @195
-; Added at version 1.2.6
- png_malloc_warn @195
- png_get_user_height_max @196
- png_get_user_width_max @197
- png_set_user_limits @198