Up to [NetBSD + pkgsrc-wip] / pkgsrc / graphics / png
Request diff between arbitrary revisions - Display revisions graphically
Keyword substitution: kv
Default branch: MAIN
Update to 1.5.1beta01: 1.5.1beta01 contains a security fix for 1.5.0. The current public release, libpng 1.5.0, continues the evolution of the libpng API, finally hiding the contents of the venerable and hoary png_struct and png_info data structures inside private (i.e., non-installed) header files. (Apps that compiled with libpng 1.4 without warnings about deprecated features should happily compile with 1.5, too.) It also includes a new, more thorough test program (pngvalid.c), a new pnglibconf.h header file that tracks what features were enabled or disabled when libpng was built, and huge thanks to John Bowler, who did most of the work. Complete differences relative to libpng 1.4.x are detailed at http://www.libpng.org/pub/png/src/libpng-1.4.x-to-1.5.x-summary.txt . Since the shlib name changed, next up: PKGREVISION++ all across pkgsrc.
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))
Remove @dirrm entries from PLISTs
Update to 1.2.10:
Package change: install old compat library as libpngcompat (pkgsrc
specific, will probably be changed in the future). Makes package
handling quite a bit easier.
version 1.2.10beta1 [April 15, 2006]
Renamed "config.h" to "png_conf.h" and revised Makefile.am to add
-DPNG_BUILDING_LIBPNG to compile directive, and modified pngconf.h
to include png_conf.h only when PNG_BUILDING_LIBPNG is defined.
version 1.2.10beta2 [April 15, 2006]
Manually updated Makefile.in and configure. Changed png_conf.h.in
back to config.h.
version 1.2.10beta3 [April 15, 2006]
Change png_conf.h back to config.h in pngconf.h.
version 1.2.10beta4 [April 16, 2006]
Change PNG_BUILDING_LIBPNG to PNG_CONFIGURE_LIBPNG in config/Makefile*.
version 1.2.10beta5 [April 16, 2006]
Added a configure check for compiling assembler code in pnggccrd.c
version 1.2.10beta6 [April 17, 2006]
Revised the configure check for pnggccrd.c
Moved -DPNG_CONFIGURE_LIBPNG into @LIBPNG_DEFINES@
Added @LIBPNG_DEFINES@ to arguments when building libpng.sym
version 1.2.10beta7 [April 18, 2006]
Change "exec_prefix=$prefix" to "exec_prefix=$(prefix)" in makefiles.
version 1.2.10rc1 [April 19, 2006]
Ensure pngconf.h doesn't define both PNG_USE_PNGGCCRD and PNG_USE_PNGVCRD
Fixed "LN_FS" typo in makefile.sco and makefile.solaris.
version 1.2.10rc2 [April 20, 2006]
Added a backslash between -DPNG_CONFIGURE_LIBPNG and -DPNG_NO_ASSEMBLER_CODE
in configure.ac and configure
Made the configure warning about versioned symbols less arrogant.
version 1.2.10rc3 [April 21, 2006]
Added a note in libpng.txt that png_set_sig_bytes(8) can be used when
writing an embedded PNG without the 8-byte signature.
Revised makefiles and configure to avoid making links to libpng.so.*
version 1.2.10 [April 23, 2006]
Reverted configure to "rc2" state.
Update to 1.2.9nb1: . pngconf.h included "config.h" if HAVE_CONFIG_H is defined -- really not a good idea, patch it out. broke at least libwmf, reported by veego@ . install some libpng12 files -- IIUC, libpng12* is the future and libpng* is becoming obsolete -- at least according to the wishes of the authors. Don't follow this completely yet, but still patch the pkg-config file to link against -lpng instead of -lpng12, which would require a recursive PKGREVISION bump. We should probably do this at some future time. . switch pkgconfig file to look for headers in include/libpng12 -- the headers still exist in include/ for backwards compatibility. . switch to using GNU_CONFIGURE and the included libtool handling instead of patching in our own into a Makefile. Gets rid of patches and pkgsrc Makefile code.
Mechanical changes to package PLISTs to make use of LIBTOOLIZE_PLIST. All library names listed by *.la files no longer need to be listed in the PLIST, e.g., instead of: lib/libfoo.a lib/libfoo.la lib/libfoo.so lib/libfoo.so.0 lib/libfoo.so.0.1 one simply needs: lib/libfoo.la and bsd.pkg.mk will automatically ensure that the additional library names are listed in the installed package +CONTENTS file. Also make LIBTOOLIZE_PLIST default to "yes".
Install lib/pkgconfig/libpng12.pc, otherwise "pkg-config --list-all" will fail with an error if imlib2 is installed.
Backing out PNG patch that installed lib/pkgconfig/libpng12.pc because it was done incorrectly and because it was disruptive to the pkgsrc freeze. Will fix this correctly after the freeze is finished.
Install lib/pkgconfig/libpng12.pc, otherwise "pkgconfig --list-all" will fail with an error if imlib2 is installed.
Merge changes in packages from the buildlink2 branch that have buildlink2.mk files back into the main trunk. This provides sufficient buildlink2 infrastructure to start merging other packages from the buildlink2 branch that have already been converted to use the buildlink2 framework.
Merge changes from pkgsrc-current into the buildlink2 branch for the packages that have buildlink2.mk files.
Update to version 1.2.4. Two new functions since 1.2.1, png_malloc_warn()
and png_set_text_2(), call for a minor version bump in the shared library.
Update "BUILDLINK_DEPENDS" to current level. Also make the shared library
versions visible in the top-level "Makefile", and add a top-level "test"
target to invoke "pngtest" in ${WRKSRC}.
The following is culled from the extensive "CHANGES" file, ommitting
all make system and doc changes, and some bug fixes for bugs that weren't
present in 1.2.1. See "CHANGES" for complete details:
Added setjmp() at the end of png_create_*_struct_2() in case user forgets
to put one in their application.
Exported png_zalloc(), png_zfree(), png_default_read(), png_default_write(),
png_default_flush(), and png_push_fill_buffer() and included them in
module definition files.
Revised prototype for png_default_flush()
Typos in *.def files (png_default_read|write -> png_default_read|write_data)
Once more restored png_zalloc and png_zfree to regular nonexported form.
Restored png_default_read|write_data, png_default_flush, png_read_fill_buffer
to nonexported form, but with PNGAPI, and removed them from module def files.
Removed "PNGAPI" from png_zalloc() and png_zfree() in png.c
Plugged various memory leaks; added png_malloc_warn() and png_set_text_2()
functions.
Plugged memory leak of png_ptr->current_text (Matt Holgate).
Check for buffer overflow before reading CRC in pngpread.c (Warwick Allison)
Plugged memory leak of row_buf in pngtest.c when there is a png_error().
Detect buffer overflow in pngpread.c when IDAT is corrupted with extra data.
Changed png_warning() to png_error() when width is too large to process.
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.
Move pkg/ files into package's toplevel directory