pkgsrc/graphics/png/Makefile

37 lines
1.1 KiB
Makefile
Raw Normal View History

Update to 1.5.5 to fix CVE-2011-3328, requested by tron. Version 1.5.5beta01 [July 13, 2011] Fixed some typos and made other minor changes in the manual. Updated contrib/pngminus/makefile.std (Samuli Souminen) Version 1.5.5beta02 [July 14, 2011] Revised Makefile.am and Makefile.in to look in the right directory for pnglibconf.h.prebuilt Version 1.5.5beta03 [July 27, 2011] Enabled compilation with g++ compiler. This compiler does not recognize the file extension, so it always compiles with C++ rules. Made minor changes to pngrutil.c to cast results where C++ expects it but C does not. Minor editing of libpng.3 and libpng-manual.txt. Version 1.5.5beta04 [July 29, 2011] Revised CMakeLists.txt (Clifford Yapp) Updated commentary about the png_rgb_to_gray() default coefficients in the manual and in pngrtran.c Version 1.5.5beta05 [August 17, 2011] Prevent unexpected API exports from non-libpng DLLs on Windows. The "_DLL" is removed from the test of whether a DLL is being built (this erroneously caused the libpng APIs to be marked as DLL exports in static builds under Microsoft Visual Studio). Almost all of the libpng building configuration is moved from pngconf.h to pngpriv.h, but PNG_DLL_EXPORT remains in pngconf.h, though, so that it is colocated with the import definition (it is no longer used anywhere in the installed headers). The VStudio project definitions have been cleaned up: "_USRDLL" has been removed from the static library builds (this was incorrect), and PNG_USE_DLL has been added to pngvalid to test the functionality (pngtest does not supply it, deliberately). The spurious "_EXPORTS" has been removed from the libpng build (all these errors were a result of copy/paste between project configurations.) Added new types and internal functions for CIE RGB end point handling to pngpriv.h (functions yet to be implemented). Version 1.5.5beta06 [August 26, 2011] Ensure the CMAKE_LIBRARY_OUTPUT_DIRECTORY is set in CMakeLists.txt (Clifford Yap) Fixes to rgb_to_gray and cHRM XYZ APIs (John Bowler): The rgb_to_gray code had errors when combined with gamma correction. Some pixels were treated as true grey when they weren't and such pixels and true grey ones were not gamma corrected (the original value of the red component was used instead). APIs to get and set cHRM using color space end points have been added and the rgb_to_gray code that defaults based on cHRM, and the divide-by-zero bug in png_handle_cHRM (CERT VU#477046, CVE-2011-3328, introduced in 1.5.4) have been corrected. A considerable number of tests has been added to pngvalid for the rgb_to_gray transform. Arithmetic errors in rgb_to_gray whereby the calculated gray value was truncated to the bit depth rather than rounded have been fixed except in the 8-bit non-gamma-corrected case (where consistency seems more important than correctness.) The code still has considerable inaccuracies in the 8-bit case because 8-bit linear arithmetic is used. Version 1.5.5beta07 [September 7, 2011] Added "$(ARCH)" option to makefile.darwin Added SunOS support to configure.ac and Makefile.am Changed png_chunk_benign_error() to png_warning() in png.c, in png_XYZ_from_xy_checked(). Version 1.5.5beta08 [September 10, 2011] Fixed 64-bit compilation errors (gcc). The errors fixed relate to conditions where types that are 32 bits in the GCC 32-bit world (uLong and png_size_t) become 64 bits in the 64-bit world. This produces potential truncation errors that the compiler correctly flags. Relocated new HAVE_SOLARIS_LD definition in configure.ac Constant changes for 64-bit compatibility (removal of L suffixes). The 16-bit cases still use "L" as we don't have a 16-bit test system. Version 1.5.5rc01 [September 17, 2011] Removed "L" suffixes from constants in pngpriv.h Version 1.5.5 [September 22, 2011] No changes.
2011-09-28 07:34:08 +02:00
# $NetBSD: Makefile,v 1.139 2011/09/28 05:34:08 wiz Exp $
Update to 1.5.5 to fix CVE-2011-3328, requested by tron. Version 1.5.5beta01 [July 13, 2011] Fixed some typos and made other minor changes in the manual. Updated contrib/pngminus/makefile.std (Samuli Souminen) Version 1.5.5beta02 [July 14, 2011] Revised Makefile.am and Makefile.in to look in the right directory for pnglibconf.h.prebuilt Version 1.5.5beta03 [July 27, 2011] Enabled compilation with g++ compiler. This compiler does not recognize the file extension, so it always compiles with C++ rules. Made minor changes to pngrutil.c to cast results where C++ expects it but C does not. Minor editing of libpng.3 and libpng-manual.txt. Version 1.5.5beta04 [July 29, 2011] Revised CMakeLists.txt (Clifford Yapp) Updated commentary about the png_rgb_to_gray() default coefficients in the manual and in pngrtran.c Version 1.5.5beta05 [August 17, 2011] Prevent unexpected API exports from non-libpng DLLs on Windows. The "_DLL" is removed from the test of whether a DLL is being built (this erroneously caused the libpng APIs to be marked as DLL exports in static builds under Microsoft Visual Studio). Almost all of the libpng building configuration is moved from pngconf.h to pngpriv.h, but PNG_DLL_EXPORT remains in pngconf.h, though, so that it is colocated with the import definition (it is no longer used anywhere in the installed headers). The VStudio project definitions have been cleaned up: "_USRDLL" has been removed from the static library builds (this was incorrect), and PNG_USE_DLL has been added to pngvalid to test the functionality (pngtest does not supply it, deliberately). The spurious "_EXPORTS" has been removed from the libpng build (all these errors were a result of copy/paste between project configurations.) Added new types and internal functions for CIE RGB end point handling to pngpriv.h (functions yet to be implemented). Version 1.5.5beta06 [August 26, 2011] Ensure the CMAKE_LIBRARY_OUTPUT_DIRECTORY is set in CMakeLists.txt (Clifford Yap) Fixes to rgb_to_gray and cHRM XYZ APIs (John Bowler): The rgb_to_gray code had errors when combined with gamma correction. Some pixels were treated as true grey when they weren't and such pixels and true grey ones were not gamma corrected (the original value of the red component was used instead). APIs to get and set cHRM using color space end points have been added and the rgb_to_gray code that defaults based on cHRM, and the divide-by-zero bug in png_handle_cHRM (CERT VU#477046, CVE-2011-3328, introduced in 1.5.4) have been corrected. A considerable number of tests has been added to pngvalid for the rgb_to_gray transform. Arithmetic errors in rgb_to_gray whereby the calculated gray value was truncated to the bit depth rather than rounded have been fixed except in the 8-bit non-gamma-corrected case (where consistency seems more important than correctness.) The code still has considerable inaccuracies in the 8-bit case because 8-bit linear arithmetic is used. Version 1.5.5beta07 [September 7, 2011] Added "$(ARCH)" option to makefile.darwin Added SunOS support to configure.ac and Makefile.am Changed png_chunk_benign_error() to png_warning() in png.c, in png_XYZ_from_xy_checked(). Version 1.5.5beta08 [September 10, 2011] Fixed 64-bit compilation errors (gcc). The errors fixed relate to conditions where types that are 32 bits in the GCC 32-bit world (uLong and png_size_t) become 64 bits in the 64-bit world. This produces potential truncation errors that the compiler correctly flags. Relocated new HAVE_SOLARIS_LD definition in configure.ac Constant changes for 64-bit compatibility (removal of L suffixes). The 16-bit cases still use "L" as we don't have a 16-bit test system. Version 1.5.5rc01 [September 17, 2011] Removed "L" suffixes from constants in pngpriv.h Version 1.5.5 [September 22, 2011] No changes.
2011-09-28 07:34:08 +02:00
DISTNAME= libpng-1.5.5
PKGNAME= ${DISTNAME:S/lib//}
2001-01-13 04:24:26 +01:00
CATEGORIES= graphics
Update png to 1.2.1. Includes an ABI change and a concommittent bump in the shared library version, and in the dependendency information for hundreds of other packages. [Update to png itself was supplied by Thomas Wizner.] Relevant changes since 1.0.12, extracted from the "CHANGES" file: 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. Added a check for attempts to read or write PLTE in grayscale PNG datastreams. 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. Check for missing profile length field in iCCP chunk and free chunk_data in case of truncated iCCP chunk. 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 Use png_malloc instead of png_zalloc to allocate palette in pngset.c Added some typecasts to eliminate gcc 3.0 warnings. Changed prototypes of png_write_oFFS width and height from png_uint_32 to png_int_32. Updated example.c Revised prototypes for png_debug_malloc and png_debug_free in pngtest.c Revised contrib/gregbook Revised pnggccrd.c to conditionally compile some thread-unsafe code only when PNG_THREAD_UNSAFE_OK is defined. Added tests to prevent pngwutil.c from writing a bKGD or tRNS chunk with value exceeding 2^bit_depth-1 Replaced calls to fprintf(stderr,...) with png_warning() in pnggccrd.c Removed restriction that do_invert_mono only operate on 1-bit opaque files Changed a png_warning() to png_debug() in pnggccrd.c Fixed contrib/gregbook/rpng-x.c, rpng2-x.c to avoid crash with XFreeGC(). Include background_1 in png_struct regardless of gamma support. Revised example.c to provide more details about using row_callback(). Added type cast to each NULL appearing in a function call, except for WINCE functions. Removed type casts from all NULLs. Simplified png_create_struct_2(). Revised png_create_info_struct() and png_creat_struct_2(). Added error message if png_write_info() was omitted. Type cast NULLs appearing in function calls when _NO_PROTO or PNG_TYPECAST_NULL is defined. Type cast NULLs appearing in function calls except when PNG_NO_TYPECAST_NULL is defined. Changed typecast of "size" argument to png_size_t in pngmem.c calls to the user malloc_fn, to agree with the prototype in png.h Added a pop/push operation to pnggccrd.c, to preserve Eflag (Maxim Sobolev) Added a pop/push operation to pngvcrd.c, to preserve Eflag. 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.
2002-03-13 18:43:38 +01:00
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=libpng/} \
2000-02-09 23:13:34 +01:00
ftp://ftp.fu-berlin.de/unix/graphics/png/src/
Update to 1.5.5 to fix CVE-2011-3328, requested by tron. Version 1.5.5beta01 [July 13, 2011] Fixed some typos and made other minor changes in the manual. Updated contrib/pngminus/makefile.std (Samuli Souminen) Version 1.5.5beta02 [July 14, 2011] Revised Makefile.am and Makefile.in to look in the right directory for pnglibconf.h.prebuilt Version 1.5.5beta03 [July 27, 2011] Enabled compilation with g++ compiler. This compiler does not recognize the file extension, so it always compiles with C++ rules. Made minor changes to pngrutil.c to cast results where C++ expects it but C does not. Minor editing of libpng.3 and libpng-manual.txt. Version 1.5.5beta04 [July 29, 2011] Revised CMakeLists.txt (Clifford Yapp) Updated commentary about the png_rgb_to_gray() default coefficients in the manual and in pngrtran.c Version 1.5.5beta05 [August 17, 2011] Prevent unexpected API exports from non-libpng DLLs on Windows. The "_DLL" is removed from the test of whether a DLL is being built (this erroneously caused the libpng APIs to be marked as DLL exports in static builds under Microsoft Visual Studio). Almost all of the libpng building configuration is moved from pngconf.h to pngpriv.h, but PNG_DLL_EXPORT remains in pngconf.h, though, so that it is colocated with the import definition (it is no longer used anywhere in the installed headers). The VStudio project definitions have been cleaned up: "_USRDLL" has been removed from the static library builds (this was incorrect), and PNG_USE_DLL has been added to pngvalid to test the functionality (pngtest does not supply it, deliberately). The spurious "_EXPORTS" has been removed from the libpng build (all these errors were a result of copy/paste between project configurations.) Added new types and internal functions for CIE RGB end point handling to pngpriv.h (functions yet to be implemented). Version 1.5.5beta06 [August 26, 2011] Ensure the CMAKE_LIBRARY_OUTPUT_DIRECTORY is set in CMakeLists.txt (Clifford Yap) Fixes to rgb_to_gray and cHRM XYZ APIs (John Bowler): The rgb_to_gray code had errors when combined with gamma correction. Some pixels were treated as true grey when they weren't and such pixels and true grey ones were not gamma corrected (the original value of the red component was used instead). APIs to get and set cHRM using color space end points have been added and the rgb_to_gray code that defaults based on cHRM, and the divide-by-zero bug in png_handle_cHRM (CERT VU#477046, CVE-2011-3328, introduced in 1.5.4) have been corrected. A considerable number of tests has been added to pngvalid for the rgb_to_gray transform. Arithmetic errors in rgb_to_gray whereby the calculated gray value was truncated to the bit depth rather than rounded have been fixed except in the 8-bit non-gamma-corrected case (where consistency seems more important than correctness.) The code still has considerable inaccuracies in the 8-bit case because 8-bit linear arithmetic is used. Version 1.5.5beta07 [September 7, 2011] Added "$(ARCH)" option to makefile.darwin Added SunOS support to configure.ac and Makefile.am Changed png_chunk_benign_error() to png_warning() in png.c, in png_XYZ_from_xy_checked(). Version 1.5.5beta08 [September 10, 2011] Fixed 64-bit compilation errors (gcc). The errors fixed relate to conditions where types that are 32 bits in the GCC 32-bit world (uLong and png_size_t) become 64 bits in the 64-bit world. This produces potential truncation errors that the compiler correctly flags. Relocated new HAVE_SOLARIS_LD definition in configure.ac Constant changes for 64-bit compatibility (removal of L suffixes). The 16-bit cases still use "L" as we don't have a 16-bit test system. Version 1.5.5rc01 [September 17, 2011] Removed "L" suffixes from constants in pngpriv.h Version 1.5.5 [September 22, 2011] No changes.
2011-09-28 07:34:08 +02:00
EXTRACT_SUFX= .tar.bz2
2007-12-12 21:43:06 +01:00
MAINTAINER= wiz@NetBSD.org
HOMEPAGE= http://www.libpng.org/pub/png/libpng.html
COMMENT= Library for manipulating PNG images
LICENSE= png-license
2004-01-05 21:38:34 +01:00
PKG_INSTALLATION_TYPES= overwrite pkgviews
2006-11-02 18:59:37 +01:00
PKG_DESTDIR_SUPPORT= user-destdir
2004-01-05 21:38:34 +01:00
GNU_CONFIGURE= yes
Update to 1.4.2. Shared library name changes from libpn12.* to libpng14.*, so bump ABI depends. Remove libpng.* from package, instead use buildlink to help some packages that are looking for the library themselves instead of using pkg-config or libpng-config. Changes: version 1.4.2: Restored the macro definition of png_check_sig(). Conditionally compile an "else" statement in png_decompress_chunk(). Documented the fact that png_set_dither() was disabled since libpng-1.4.0. Reenabled png_set_dither() but renamed it to png_set_quantize() to reflect more accurately what it actually does. At the same time, renamed the PNG_DITHER_[RED,GREEN_BLUE]_BITS macros to PNG_QUANTIZE_[RED,GREEN,BLUE]_BITS. Added some "(long)" typecasts to printf calls in png_handle_cHRM(). Relaxed the overly-restrictive permissions of some files. Added the "vstudio" project to replace "visualc6" and "visualc71" which will be removed from libpng-1.5.0. Demonstrate in example.c that lang_key should be initialized. Set PNG_NO_READ_BGR, PNG_NO_IO_STATE, and PNG_NO_TIME_RFC1123 in contrib/pngminim/decoder/pngusr.h to make a smaller decoder application. Include png_reset_zstream() in png.c only when PNG_READ_SUPPORTED is defined. Removed dummy_inflate.c and uncompr.c from contrib/pngminim/encoder Corrected PNG_UNKNOWN_CHUNKS_SUPPORTED to PNG_HANDLE_AS_UNKNOWN_SUPPORTED in gregbook/readpng2.c Corrected protection of png_get_user_transform_ptr. The API declaration in png.h is removed if both READ and WRITE USER_TRANSFORM are turned off but was left defined in pngtrans.c Moved declarations of umsg[] inside the proper #ifdef blocks in pngrutil.c version 1.4.1 [February 25, 2010] Updated CMakeLists.txt for consistent indentation and to avoid an unclosed if-statement warning (Philip Lowman). Revised Makefile.am and Makefile.in to remove references to Y2KINFO, KNOWNBUG, and libpng.la (Robert Schwebel). Revised the makefiles to install the same files and symbolic except for libpng.la and libpng14.la. Make png_set|get_compression_buffer_size() available even when PNG_WRITE_SUPPORTED is not enabled. Revised Makefile.am and Makefile.in to simplify their maintenance. Revised the makefiles to install a link to libpng14.so.14.1 Removed png_set_premultiply_alpha() from scripts/*.def Revised png_decompress_chunk() to improve speed and memory usage when decoding large chunks, using a two-pass method suggested by John Bowler. Added png_set|get_chunk_malloc_max() functions. Relocated "int k" declaration in pngtest.c to minimize its scope. Folded some long lines in the source files. Added defineable PNG_USER_CHUNK_CACHE_MAX and PNG_USER_CHUNK_MALLOC_MAX Eliminated use of png_ptr->irowbytes and reused the slot in png_ptr as png_ptr->png_user_chunk_malloc_max. Return allocated "old_buffer" in png_push_save_buffer() before calling png_error(), to avoid a potential memory leak. Removed the cbuilder5 project, which has not been updated to 1.4.0. Complete rewrite of two-pass png_decompress_chunk() by John Bowler. Removed obsolete unused MMX-querying support from contrib/gregbook Removed the AIX redefinition of jmpbuf in png.h Define _ALL_SOURCE in configure.ac, makefile.aix, and CMakeLists.txt when using AIX compiler. Removed unused gzio.c from contrib/pngminim gather and makefile scripts Changes to Libpng from version 1.2.42 to 1.4.0 (January 4, 2010) Libpng-1.4.0 was released by the PNG Development Group on January 3, 2010. Important new features include support for the iTXt chunk and a function for limiting the amount of memory that a possibly malicious compressed chunk can consume. Some long-deprecated functions and features have been removed. A new private header file that is not visible to applications has been created, to improve our ability to maintain binary compatibility among future libpng versions. Specifically, 1. Private libpng prototypes and macro definitions were moved from png.h and pngconf.h into a new pngpriv.h header file that is not visible to applications. 2. Some obsolete/deprecated macros and functions have been removed. a. We eliminated the obsolete, unused pnggccrd.c and pngvcrd.c files and related makefiles. b. We removed the typecasted NULL definitions such as #define png_voidp_NULL (png_voidp)NULL If you used these in your application, just use NULL instead. c. We eliminated the PNG_1_0_X and PNG_1_2_X macros. d. We eliminated the PNG_LEGACY_SUPPORTED macro. e. We removed many WIN32_WCE #ifdefs. f. We removed the functions png_read_init(info_ptr), png_write_init(info_ptr), png_info_init(info_ptr), png_read_destroy(), and png_write_destroy(). They have been deprecated since libpng-0.95. g. We removed the png_permit_empty_plte() function. It has been deprecated since libpng-1.0.9. Use png_permit_mng_features() instead. h. We removed the obsolete stub functions png_get_mmx_flagmask(), png_set_mmx_thresholds(), png_get_asm_flags(), png_get_mmx_bitdepth_threshold(), png_get_mmx_rowbytes_threshold(), png_set_asm_flags(), and png_mmx_supported() i. We removed the obsolete png_check_sig(), png_memcpy_check(), and png_memset_check() functions. Instead use !png_sig_cmp(), png_memcpy(), and png_memset(), respectively, i.e., replace png_check_sig(buf, 8) with png_sig_cmp(buf, 0, 8) == 0 replace png_memcpy_check(png_ptr, dest, src, length) with png_memcpy(dest, src, length) and replace png_memset_check(png_ptr, dest, value, length) with png_memset(dest, value, length) j. We removed support for global arrays to improve thread safety. k. We removed support for numbered error messages by default, since we never got around to actually numbering the error messages. The function png_set_strip_error_numbers() was removed from the library by default. l. The png_zalloc() and png_zfree() functions are no longer exported. The png_zalloc() function no longer zeroes out the memory that it allocates. m. The function png_set_gray_1_2_4_to_8() was removed. It has been deprecated since libpng-1.0.18 and 1.2.9, when it was replaced with png_set_expand_gray_1_2_4_to_8() because the former function also expanded palette images. 3. Several function prototypes were changed. a. We changed the prototype for png_malloc() from png_malloc(png_structp png_ptr, png_uint_32 size) to png_malloc(png_structp png_ptr, png_alloc_size_t size) b. We changed the prototypes of png_get_compression_buffer_size() and png_set_compression_buffer_size() to work with png_size_t instead of png_uint_32. 4. We added some new features: a. We enabled iTXt chunk support by default. This changes the png_text structure by adding the itxt_length, lang, and lang_key members. b. We added the functions png_set_benign_errors(), png_benign_error(), and png_chunk_benign_error(). With these, you can choose to treat certain normally fatal errors as nonfatal. c. Support for setting the maximum amount of memory that the application will allocate for reading chunks was added, as a security measure. The functions png_set_chunk_cache_max() and png_get_chunk_cache_max() were added to the library. d. We added the png_calloc() function and used it in place of of "png_malloc(); png_memset();" except in the case in png_read_png() where the array consists of pointers; in this case a "for" loop is used after the png_malloc() to set the pointers to NULL, to give robust. behavior in case the application runs out of memory part-way through the process. e. We implemented support for I/O states by adding png_ptr member io_state and functions png_get_io_chunk_name() and png_get_io_state() in pngget.c f. We added PNG_TRANSFORM_GRAY_TO_RGB to the available high-level input transforms. 5. Other changes a. We changed the names of the png_struct and info_struct members "trans" and "trans_values" to "trans_alpha" and "trans_color", respectively. b. Checking for and reporting of errors in the IHDR chunk is more thorough. c. We removed the trailing '.' from the warning and error messages. d. Direct access to png_ptr->jmpbuf has been deprecated since libpng version 1.0.6, and libpng now generates a warning about it. To avoid such warnings, change setjmp(png_ptr->jmpbuf) to setjmp(png_jmpbuf(png_ptr))
2010-06-14 00:42:10 +02:00
PKGCONFIG_OVERRIDE= scripts/libpng.pc.in libpng.pc.in
TEST_TARGET= check
USE_LIBTOOL= yes
.include "../../mk/bsd.prefs.mk"
# keep this in sync with the same code in buildlink3.mk
.if ${MACHINE_ARCH} != "i386" && ${MACHINE_ARCH} != "x86_64"
CPPFLAGS+= -DPNG_NO_ASSEMBLER_CODE
.endif
SUBST_CLASSES+= rpathfix
Update to 1.4.2. Shared library name changes from libpn12.* to libpng14.*, so bump ABI depends. Remove libpng.* from package, instead use buildlink to help some packages that are looking for the library themselves instead of using pkg-config or libpng-config. Changes: version 1.4.2: Restored the macro definition of png_check_sig(). Conditionally compile an "else" statement in png_decompress_chunk(). Documented the fact that png_set_dither() was disabled since libpng-1.4.0. Reenabled png_set_dither() but renamed it to png_set_quantize() to reflect more accurately what it actually does. At the same time, renamed the PNG_DITHER_[RED,GREEN_BLUE]_BITS macros to PNG_QUANTIZE_[RED,GREEN,BLUE]_BITS. Added some "(long)" typecasts to printf calls in png_handle_cHRM(). Relaxed the overly-restrictive permissions of some files. Added the "vstudio" project to replace "visualc6" and "visualc71" which will be removed from libpng-1.5.0. Demonstrate in example.c that lang_key should be initialized. Set PNG_NO_READ_BGR, PNG_NO_IO_STATE, and PNG_NO_TIME_RFC1123 in contrib/pngminim/decoder/pngusr.h to make a smaller decoder application. Include png_reset_zstream() in png.c only when PNG_READ_SUPPORTED is defined. Removed dummy_inflate.c and uncompr.c from contrib/pngminim/encoder Corrected PNG_UNKNOWN_CHUNKS_SUPPORTED to PNG_HANDLE_AS_UNKNOWN_SUPPORTED in gregbook/readpng2.c Corrected protection of png_get_user_transform_ptr. The API declaration in png.h is removed if both READ and WRITE USER_TRANSFORM are turned off but was left defined in pngtrans.c Moved declarations of umsg[] inside the proper #ifdef blocks in pngrutil.c version 1.4.1 [February 25, 2010] Updated CMakeLists.txt for consistent indentation and to avoid an unclosed if-statement warning (Philip Lowman). Revised Makefile.am and Makefile.in to remove references to Y2KINFO, KNOWNBUG, and libpng.la (Robert Schwebel). Revised the makefiles to install the same files and symbolic except for libpng.la and libpng14.la. Make png_set|get_compression_buffer_size() available even when PNG_WRITE_SUPPORTED is not enabled. Revised Makefile.am and Makefile.in to simplify their maintenance. Revised the makefiles to install a link to libpng14.so.14.1 Removed png_set_premultiply_alpha() from scripts/*.def Revised png_decompress_chunk() to improve speed and memory usage when decoding large chunks, using a two-pass method suggested by John Bowler. Added png_set|get_chunk_malloc_max() functions. Relocated "int k" declaration in pngtest.c to minimize its scope. Folded some long lines in the source files. Added defineable PNG_USER_CHUNK_CACHE_MAX and PNG_USER_CHUNK_MALLOC_MAX Eliminated use of png_ptr->irowbytes and reused the slot in png_ptr as png_ptr->png_user_chunk_malloc_max. Return allocated "old_buffer" in png_push_save_buffer() before calling png_error(), to avoid a potential memory leak. Removed the cbuilder5 project, which has not been updated to 1.4.0. Complete rewrite of two-pass png_decompress_chunk() by John Bowler. Removed obsolete unused MMX-querying support from contrib/gregbook Removed the AIX redefinition of jmpbuf in png.h Define _ALL_SOURCE in configure.ac, makefile.aix, and CMakeLists.txt when using AIX compiler. Removed unused gzio.c from contrib/pngminim gather and makefile scripts Changes to Libpng from version 1.2.42 to 1.4.0 (January 4, 2010) Libpng-1.4.0 was released by the PNG Development Group on January 3, 2010. Important new features include support for the iTXt chunk and a function for limiting the amount of memory that a possibly malicious compressed chunk can consume. Some long-deprecated functions and features have been removed. A new private header file that is not visible to applications has been created, to improve our ability to maintain binary compatibility among future libpng versions. Specifically, 1. Private libpng prototypes and macro definitions were moved from png.h and pngconf.h into a new pngpriv.h header file that is not visible to applications. 2. Some obsolete/deprecated macros and functions have been removed. a. We eliminated the obsolete, unused pnggccrd.c and pngvcrd.c files and related makefiles. b. We removed the typecasted NULL definitions such as #define png_voidp_NULL (png_voidp)NULL If you used these in your application, just use NULL instead. c. We eliminated the PNG_1_0_X and PNG_1_2_X macros. d. We eliminated the PNG_LEGACY_SUPPORTED macro. e. We removed many WIN32_WCE #ifdefs. f. We removed the functions png_read_init(info_ptr), png_write_init(info_ptr), png_info_init(info_ptr), png_read_destroy(), and png_write_destroy(). They have been deprecated since libpng-0.95. g. We removed the png_permit_empty_plte() function. It has been deprecated since libpng-1.0.9. Use png_permit_mng_features() instead. h. We removed the obsolete stub functions png_get_mmx_flagmask(), png_set_mmx_thresholds(), png_get_asm_flags(), png_get_mmx_bitdepth_threshold(), png_get_mmx_rowbytes_threshold(), png_set_asm_flags(), and png_mmx_supported() i. We removed the obsolete png_check_sig(), png_memcpy_check(), and png_memset_check() functions. Instead use !png_sig_cmp(), png_memcpy(), and png_memset(), respectively, i.e., replace png_check_sig(buf, 8) with png_sig_cmp(buf, 0, 8) == 0 replace png_memcpy_check(png_ptr, dest, src, length) with png_memcpy(dest, src, length) and replace png_memset_check(png_ptr, dest, value, length) with png_memset(dest, value, length) j. We removed support for global arrays to improve thread safety. k. We removed support for numbered error messages by default, since we never got around to actually numbering the error messages. The function png_set_strip_error_numbers() was removed from the library by default. l. The png_zalloc() and png_zfree() functions are no longer exported. The png_zalloc() function no longer zeroes out the memory that it allocates. m. The function png_set_gray_1_2_4_to_8() was removed. It has been deprecated since libpng-1.0.18 and 1.2.9, when it was replaced with png_set_expand_gray_1_2_4_to_8() because the former function also expanded palette images. 3. Several function prototypes were changed. a. We changed the prototype for png_malloc() from png_malloc(png_structp png_ptr, png_uint_32 size) to png_malloc(png_structp png_ptr, png_alloc_size_t size) b. We changed the prototypes of png_get_compression_buffer_size() and png_set_compression_buffer_size() to work with png_size_t instead of png_uint_32. 4. We added some new features: a. We enabled iTXt chunk support by default. This changes the png_text structure by adding the itxt_length, lang, and lang_key members. b. We added the functions png_set_benign_errors(), png_benign_error(), and png_chunk_benign_error(). With these, you can choose to treat certain normally fatal errors as nonfatal. c. Support for setting the maximum amount of memory that the application will allocate for reading chunks was added, as a security measure. The functions png_set_chunk_cache_max() and png_get_chunk_cache_max() were added to the library. d. We added the png_calloc() function and used it in place of of "png_malloc(); png_memset();" except in the case in png_read_png() where the array consists of pointers; in this case a "for" loop is used after the png_malloc() to set the pointers to NULL, to give robust. behavior in case the application runs out of memory part-way through the process. e. We implemented support for I/O states by adding png_ptr member io_state and functions png_get_io_chunk_name() and png_get_io_state() in pngget.c f. We added PNG_TRANSFORM_GRAY_TO_RGB to the available high-level input transforms. 5. Other changes a. We changed the names of the png_struct and info_struct members "trans" and "trans_values" to "trans_alpha" and "trans_color", respectively. b. Checking for and reporting of errors in the IHDR chunk is more thorough. c. We removed the trailing '.' from the warning and error messages. d. Direct access to png_ptr->jmpbuf has been deprecated since libpng version 1.0.6, and libpng now generates a warning about it. To avoid such warnings, change setjmp(png_ptr->jmpbuf) to setjmp(png_jmpbuf(png_ptr))
2010-06-14 00:42:10 +02:00
SUBST_FILES.rpathfix= libpng-config.in
SUBST_MESSAGE.rpathfix= Adding rpath to libpng-config
SUBST_SED.rpathfix= -e 's/-L$${libdir}/${COMPILER_RPATH_FLAG}$${libdir} -L$${libdir}/g'
SUBST_STAGE.rpathfix= pre-configure
2004-01-05 21:38:34 +01:00
.include "../../devel/zlib/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"