Index: third_party/libpng/README |
diff --git a/third_party/libpng/README b/third_party/libpng/README |
index 4f5d4872966d1eb673a03f6607db6661d37dcca6..dc5b52c04886f33c4da1297dec0b1b3048ae8a94 100644 |
--- a/third_party/libpng/README |
+++ b/third_party/libpng/README |
@@ -1,15 +1,11 @@ |
-README for libpng version 1.2.56 - December 17, 2015 (shared library 12.0) |
+README for libpng version 1.6.22 - May 26, 2016 (shared library 16.0) |
See the note about version numbers near the top of png.h |
See INSTALL for instructions on how to install libpng. |
Libpng comes in several distribution formats. Get libpng-*.tar.gz or |
-libpng-*.tar.xz if you want UNIX-style line |
-endings in the text files, or lpng*.7z or lpng*.zip if you want DOS-style |
-line endings. You can get UNIX-style line endings from the *.zip file |
-by using "unzip -a" but there seems to be no simple way to recover |
-UNIX-style line endings from the *.7z file. The *.tar.xz file is |
-recommended for *NIX users instead. |
+libpng-*.tar.xz or if you want UNIX-style line endings in the text files, |
+or lpng*.7z or lpng*.zip if you want DOS-style line endings. |
Version 0.89 was the first official release of libpng. Don't let the |
fact that it's the first release fool you. The libpng library has been in |
@@ -27,18 +23,25 @@ earlier versions if you are using a shared library. The type of the |
png_uint_32, which will affect shared-library applications that use |
this function. |
-To avoid problems with changes to the internals of png_info_struct, |
+To avoid problems with changes to the internals of png info_struct, |
new APIs have been made available in 0.95 to avoid direct application |
access to info_ptr. These functions are the png_set_<chunk> and |
png_get_<chunk> functions. These functions should be used when |
accessing/storing the info_struct data, rather than manipulating it |
directly, to avoid such problems in the future. |
-It is important to note that the APIs do not make current programs |
+It is important to note that the APIs did not make current programs |
that access the info struct directly incompatible with the new |
-library. However, it is strongly suggested that new programs use |
-the new APIs (as shown in example.c and pngtest.c), and older programs |
-be converted to the new format, to facilitate upgrades in the future. |
+library, through libpng-1.2.x. In libpng-1.4.x, which was meant to |
+be a transitional release, members of the png_struct and the |
+info_struct can still be accessed, but the compiler will issue a |
+warning about deprecated usage. Since libpng-1.5.0, direct access |
+to these structs is not allowed, and the definitions of the structs |
+reside in private pngstruct.h and pnginfo.h header files that are not |
+accessible to applications. It is strongly suggested that new |
+programs use the new APIs (as shown in example.c and pngtest.c), and |
+older programs be converted to the new format, to facilitate upgrades |
+in the future. |
**** |
Additions since 0.90 include the ability to compile libpng as a |
@@ -58,11 +61,11 @@ 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-mng-implement mailing list and not on material submitted |
+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. |
-For a detailed description on using libpng, read libpng.txt. For |
+For a detailed description on using libpng, read libpng-manual.txt. For |
examples of libpng in a program, see example.c and pngtest.c. For usage |
information and restrictions (what little they are) on libpng, see |
png.h. For a description on using zlib (the compression library used by |
@@ -81,17 +84,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, or at |
-ftp://ftp.simplesystems.org/pub/png/src/ |
+zlib should be available at the same place that libpng is, or at zlib.net. |
You may also want a copy of the PNG specification. It is available |
as an RFC, a W3C Recommendation, and an ISO/IEC Standard. You can find |
-these at http://www.libpng.org/pub/png/pngdocs.html |
+these at http://www.libpng.org/pub/png/documents/ |
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. |
+[DOWNLOAD] area, and at ftp://ftp.simplesystems.org. If you can't find it |
+in any of those places, e-mail me, and I'll help you find it. |
I am not a lawyer, but I believe that the Export Control Classification |
Number (ECCN) for libpng is EAR99, which means not subject to export |
@@ -114,21 +115,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 |
development group. |
-Send comments/corrections/commendations to png-mng-implement at lists.sf.net |
-(subscription required; visit |
+Send comments/corrections/commendations to png-mng-implement at |
+lists.sourceforge.net (subscription required; visit |
https://lists.sourceforge.net/lists/listinfo/png-mng-implement |
to subscribe) or to glennrp at users.sourceforge.net |
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-mng-implement list, however. |
+read mail addressed to the png-implement list, however. |
Please do not send general questions about PNG. Send them to |
-the (png-mng-misc at lists.sourceforge.net, subscription required, visit |
+png-mng-misc at lists.sf.net (subscription required; visit |
https://lists.sourceforge.net/lists/listinfo/png-mng-misc to |
-subscribe). On the other hand, please do not send libpng questions to |
-that address, send them to me or to the png-mng-implement list. I'll |
-get them in the end anyway. If you have a question about something |
+subscribe). 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, |
and ...". If in doubt, send questions to me. I'll bounce them |
@@ -150,14 +149,17 @@ Files in this distribution: |
TODO => Things not implemented in the current library |
Y2KINFO => Statement of Y2K compliance |
example.c => Example code for using libpng functions |
- libpng-*-*-diff.txt => Diff from previous release |
- libpng.3 => manual page for libpng (includes libpng.txt) |
- libpng.txt => Description of libpng and its functions |
+ libpng.3 => manual page for libpng (includes libpng-manual.txt) |
+ libpng-manual.txt => Description of libpng and its functions |
libpngpf.3 => manual page for libpng's private functions |
png.5 => manual page for the PNG format |
png.c => Basic interface functions common to library |
- png.h => Library function and interface declarations |
- pngconf.h => System specific library configuration |
+ png.h => Library function and interface declarations (public) |
+ pngpriv.h => Library function and interface declarations (private) |
+ pngconf.h => System specific library configuration (public) |
+ pngstruct.h => png_struct declaration (private) |
+ pnginfo.h => png_info struct declaration (private) |
+ pngdebug.h => debugging macros (private) |
pngerror.c => Error/warning message I/O functions |
pngget.c => Functions for retrieving info from struct |
pngmem.c => Memory handling functions |
@@ -176,98 +178,28 @@ Files in this distribution: |
pngwrite.c => High-level write functions |
pngwtran.c => Write data transformations |
pngwutil.c => Write utility functions |
+ arm => Contains optimized code for the ARM platform |
contrib => Contributions |
+ examples => Example programs |
gregbook => source code for PNG reading and writing, from |
Greg Roelofs' "PNG: The Definitive Guide", |
O'Reilly, 1999 |
- pngminim => Minimal pnm2pngm and png2pnmm programs |
- pngminus => Simple pnm2png and png2pnm programs |
- pngsuite => Test images |
- visupng => Contains a MSVC workspace for VisualPng |
+ libtests => Test programs |
+ pngminim => Minimal decoder, encoder, and progressive decoder |
+ programs demonstrating use of pngusr.dfa |
+ pngminus => Simple pnm2png and png2pnm programs |
+ pngsuite => Test images |
+ tools => Various tools |
+ visupng => Contains a MSVC workspace for VisualPng |
projects => Contains project files and workspaces for |
building a DLL |
- beos => Contains a Beos workspace for building libpng |
- c5builder => Contains a Borland workspace for building |
- libpng and zlib |
- MacOSX => Contains a MacOSX workspace for building libpng |
- netware.txt => Contains instructions for downloading a set |
- of project files for building libpng and |
- zlib on Netware. |
- visualc6 => Contains a Microsoft Visual C++ (MSVC) |
- workspace for building libpng and zlib |
+ owatcom => Contains a WATCOM project for building libpng |
visualc71 => Contains a Microsoft Visual C++ (MSVC) |
workspace for building libpng and zlib |
- wince.txt => Contains instructions for downloading a |
- Microsoft Visual C++ (Windows CD Toolkit) |
- workspace for building libpng and zlib on |
- WindowsCE |
- xcode => Contains xcode project files |
+ vstudio => Contains a Microsoft Visual C++ (MSVC) |
+ workspace for building libpng and zlib |
scripts => Directory containing scripts for building libpng: |
- descrip.mms => VMS makefile for MMS or MMK |
- makefile.std => Generic UNIX makefile (cc, creates static |
- libpng.a) |
- makefile.elf => Linux/ELF gcc makefile symbol versioning, |
- creates libpng12.so.0.1.2.56) |
- makefile.linux => Linux/ELF makefile (gcc, creates |
- libpng12.so.0.1.2.56) |
- makefile.gcmmx => Linux/ELF makefile (gcc, creates |
- libpng12.so.0.1.2.56, previously |
- used 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 |
- ftp://ftp.cs.wisc.edu/ghost) |
- makefile.aix => AIX makefile |
- makefile.cygwin => Cygwin/gcc makefile |
- makefile.darwin => Darwin makefile |
- makefile.dec => DEC Alpha UNIX 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, IBM VisualAge/C++ 4.0 or later |
- makefile.netbsd => NetBSD/cc makefile, makes libpng.so. |
- makefile.ne12bsd => NetBSD/cc makefile, makes libpng12.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.56) |
- makefile.sunos => Sun makefile |
- makefile.solaris => Solaris 2.X makefile |
- (gcc, creates libpng12.so.0.1.2.56) |
- makefile.so9 => Solaris 9 makefile |
- (gcc, creates libpng12.so.0.1.2.56) |
- 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 |
- makefile.mips => MIPS makefile |
- makefile.acorn => Acorn makefile |
- makefile.amiga => Amiga makefile |
- smakefile.ppc => AMIGA smakefile for SAS C V6.58/7.00 PPC |
- compiler (Requires SCOPTIONS, copied from |
- scripts/SCOPTIONS.ppc) |
- makefile.atari => Atari makefile |
- 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.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 |
- later (previously used assembler code tuned |
- for Intel MMX platform) |
- makefile.vcwin32 => makefile for Microsoft Visual C++ 4.0 and |
- later (does not use assembler code) |
- makefile.os2 => OS/2 Makefile (gcc and emx, requires pngos2.def) |
- 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 |
- SCOPTIONS.ppc => Used with smakefile.ppc |
+ (see scripts/README.txt for the list of scripts) |
Good luck, and happy coding. |
@@ -276,7 +208,7 @@ Good luck, and happy coding. |
-Andreas Eric Dilger (former maintainer, 1996-1997) |
Internet: adilger at enel.ucalgary.ca |
- Web: http://members.shaw.ca/adilger/ |
+ Web: http://www-mddsp.enel.ucalgary.ca/People/adilger/ |
-Guy Eric Schalnat (original author and former maintainer, 1995-1996) |
(formerly of Group 42, Inc) |