diff options
author | Even Rouault <even.rouault@spatialys.com> | 2022-12-09 15:54:08 +0100 |
---|---|---|
committer | Even Rouault <even.rouault@spatialys.com> | 2022-12-09 15:54:08 +0100 |
commit | c83c038d357d61ea7e6b4ad6a6c4384ab6c457ee (patch) | |
tree | ca6a7bc41be02f9f3b1d64e27945df772b3a348e | |
parent | cbb492c27959402604d652c7ee857cf361e48fd1 (diff) | |
download | libtiff-git-c83c038d357d61ea7e6b4ad6a6c4384ab6c457ee.tar.gz |
Prepare v4.5.0 release
-rw-r--r-- | ChangeLog | 1373 | ||||
-rw-r--r-- | HOWTO-RELEASE | 12 | ||||
-rw-r--r-- | RELEASE-DATE | 2 | ||||
-rw-r--r-- | VERSION | 2 | ||||
-rw-r--r-- | doc/Makefile.am | 2 | ||||
-rw-r--r-- | doc/index.rst | 2 | ||||
-rw-r--r-- | doc/releases/index.rst | 1 | ||||
-rw-r--r-- | doc/releases/v4.5.0.rst | 128 | ||||
-rw-r--r-- | libtiff/tiffvers.h | 4 |
9 files changed, 1515 insertions, 11 deletions
@@ -1,3 +1,1376 @@ +2022-12-09 Even Rouault <even.rouault@spatialys.com> + + libtiff v4.5.0 released + +2022-12-08 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'reformat' into 'master' + Whole code-base reformatting + + See merge request libtiff/libtiff!431 + +2022-12-08 Even Rouault <even.rouault@spatialys.com> + + Add .git-blame-ignore-revs. + + tiffcrop: remove version_id and rev_date. + +2022-12-08 pre-commit run by Even Rouault <even.rouault-bot@spatialys.com> + + Reformatting in all other directories using 'pre-commit run' + + Reformatting in test/ using 'pre-commit run' + + Reformatting in tools/ using 'pre-commit run' + + Reformatting in libtiff/ using 'pre-commit run' + +2022-12-08 Even Rouault <even.rouault@spatialys.com> + + Add .clang-format, .pre-commit-config.yaml and CONTRIBUTING.md. + + Remove vim/emacs formatting footers. + +2022-11-29 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'fix_489' into 'master' + TIFFWriteRawStrip(): restore capabilities to append data in the current strip (fixes #489) + + Closes #489 + + See merge request libtiff/libtiff!430 + +2022-11-29 Even Rouault <even.rouault@spatialys.com> + + Add test case for scenario of issue #489. + + TIFFWriteRawStrip(): restore capabilities to append data in the current strip (fixes #489) + This fixes a regression of libtiff 4.4.0 + +2022-11-29 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'manpage_re-entrant_error_handler' into 'master' + manpage update for re-entrant error handler TIFFErrorExtR(), TIFFOpenExt() and... + + See merge request libtiff/libtiff!427 + +2022-11-29 Su Laus <sulau@freenet.de> + + manpage update for re-entrant error handler TIFFErrorExtR(), TIFFOpenExt() and... + +2022-11-27 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'tiffcrop_fix_#169' into 'master' + tiffcrop: Add check if (bps != 1) in writeSingleSection() for... + + Closes #169 + + See merge request libtiff/libtiff!429 + +2022-11-27 Su Laus <sulau@freenet.de> + + tiffcrop: Add check if (bps != 1) in writeSingleSection() for... + +2022-11-26 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'TIFFErrorExtR_fix_missing_calls' into 'master' + TIFFErrorExt() was not replaced with TIFFErrorExtR() everywhere in libtiff.... + + See merge request libtiff/libtiff!428 + +2022-11-26 Su Laus <sulau@freenet.de> + + TIFFErrorExt() was not replaced with TIFFErrorExtR() everywhere in libtiff.... + +2022-11-25 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'tif_jpeg_build_fix' into 'master' + tif_jpeg.c: fix compilation with MSVC (fixes commit 0fd1a81d3547acb8f5be50bbbc3e44bde01c014b) + + See merge request libtiff/libtiff!426 + +2022-11-25 Even Rouault <even.rouault@spatialys.com> + + tif_jpeg.c: fix compilation with MSVC (fixes commit 0fd1a81d3547acb8f5be50bbbc3e44bde01c014b) + +2022-11-25 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'fix_0fd1a81d3547acb8f5be50bbbc3e44bde01c014b' into 'master' + JPEGEncode(): fix wrong pointer data type with libjpeg-turbo 2.2dev in 12-bit mode + + See merge request libtiff/libtiff!425 + +2022-11-25 Even Rouault <even.rouault@spatialys.com> + + JPEGEncode(): fix wrong pointer data type with libjpeg-turbo 2.2dev in 12-bit mode + (fixes commit 0fd1a81d3547acb8f5be50bbbc3e44bde01c014b) + +2022-11-25 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'libjpegturbo_dual' into 'master' + Add support for libjpeg-turbo 2.2-dev 8/12 bit dual mode + + See merge request libtiff/libtiff!422 + +2022-11-25 Even Rouault <even.rouault@spatialys.com> + + Add support for libjpeg-turbo 2.2-dev 8/12 bit dual mode. + +2022-11-23 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'windows-fix' into 'master' + libtiff: Fix TIFFOpen* for the Windows platform in tif_unix.c + + See merge request libtiff/libtiff!424 + +2022-11-23 Francois Bleibel <fbleibel@gmail.com> + + libtiff: Fix TIFFOpen* for the Windows platform in tif_unix.c. + I'm not sure where this change was made, but it must have been in a recent update. TIFFOpenWEx is now TIFFOpenWExt, and _TIFFgetMode takes additional arguments. + + Verified: Tested libtiff on a local Windows build. + +2022-11-23 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'tiffcrop_signed_vs_unsigned' into 'master' + tiffcrop.c: fix warning about signed vs unsigned comparison + + See merge request libtiff/libtiff!423 + +2022-11-23 Even Rouault <even.rouault@spatialys.com> + + tiffcrop.c: fix warning about signed vs unsigned comparison. + +2022-11-23 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'TIFFClientOpenExt_warning_fix' into 'master' + TIFFClientOpenExt(): fix warning on 32-bit platforms (master only) + + See merge request libtiff/libtiff!421 + +2022-11-23 Even Rouault <even.rouault@spatialys.com> + + TIFFClientOpenExt(): fix warning on 32-bit platforms (master only) + +2022-11-23 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'tiffcp_TIFFOpenOptionsFree_memleak_fix' into 'master' + tiffcp: fix leak of TIFFOpenOptionsAlloc() introduced in latest commit (master only) + + See merge request libtiff/libtiff!420 + +2022-11-23 Even Rouault <even.rouault@spatialys.com> + + tiffcp: fix leak of TIFFOpenOptionsAlloc() introduced in latest commit (master only) + Fixes Coverity CID 1517032 + +2022-11-23 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'TIFFOpenOptionsSetMaxSingleMemAlloc' into 'master' + Add TIFFOpenOptionsSetMaxSingleMemAlloc() to define a limit in bytes for a single memory allocation done by libtiff + + See merge request libtiff/libtiff!419 + +2022-11-23 Even Rouault <even.rouault@spatialys.com> + + Emit explicit error message when tif_max_single_mem_alloc is exceeded. + + test_open_options: test TIFFOpenOptionsSetMaxSingleMemAlloc() + + Rename test_error_handlers to test_open_options. + + tiffinfo, tiffcp, tiffcrop, tiffsplit, tiff2rgba, tiff2ps: use TIFFOpenOptionsSetMaxSingleMemAlloc() + + Convert uses of _TIFFmalloc/realloc/calloc/free to the Ext functions. + +2022-11-22 Even Rouault <even.rouault@spatialys.com> + + Add TIFFOpenOptionsSetMaxSingleMemAlloc() + to define a limit in bytes for a single memory allocation done by libtiff. + + Also add internal functions used in replacement of the non Ext ones: + void* _TIFFmallocExt(TIFF* tif, tmsize_t s); + void* _TIFFcallocExt(TIFF* tif, tmsize_t nmemb, tmsize_t siz); + void* _TIFFreallocExt(TIFF* tif, void* p, tmsize_t s); + void _TIFFfreeExt(TIFF* tif, void* p); + +2022-11-22 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'TIFFOpenEx' into 'master' + Add TIFFOpenExt(), TIFFOpenWExt() and TIFFFdOpenExt() with re-entrant error handlers + + See merge request libtiff/libtiff!413 + +2022-11-21 Even Rouault <even.rouault@spatialys.com> + + Remove TIFFSetErrorHandlerExtR() and TIFFSetWarningHandlerExtR() that were temporarily added in master + + Add a _TIFFErrorEarly() function to be able to use the re-entrant error handler, even before TIFF* is valid + + Rework TIFFOpenExt() and similar to use an opaque TIFFOpenOptions* opts argument, with alloc, free and setters + + Document TIFFOpenExt, TIFFOpenWExt, TIFFFdOpenExt, TIFFClientOpenExt, TIFFSetErrorHandlerExtR, TIFFSetWarningHandlerExtR + +2022-11-21 Even Rouault <even.rouault@spatialys.com> + + Add TIFFOpenExt(), TIFFOpenWExt() and TIFFFdOpenExt() with re-entrant error handlers + Rename TIFFClientOpenEx() to TIFFClientOpenExt() + + Rework signature of the re-entrant error handlers and of + TIFFSetWarningHandlerExt() and TIFFSetErrorHandlerExt() + + Use structures that can be extended as extra argument. + + Leverages and ammends https://gitlab.com/libtiff/libtiff/-/merge_requests/409 + +2022-11-21 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'manpage_fix485_file-descriptor_clientdata' into 'master' + manpage: Correct description of file handle/descriptors tif_fd and tif_clientdata. Closes #485. + + Closes #485 + + See merge request libtiff/libtiff!418 + +2022-11-21 Su Laus <sulau@freenet.de> + + manpage: Correct description of file handle/descriptors tif_fd and tif_clientdata. Closes #485. + +2022-11-20 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'manpage_fix440_fix28_TIFFOpen_SubIFD_update' into 'master' + manpage: fix28, fix440, update TIFFOpen and SubIFD + + Closes #440 et #28 + + See merge request libtiff/libtiff!417 + +2022-11-20 Su Laus <sulau@freenet.de> + + manpage: fix28, fix440, update TIFFOpen and SubIFD. + +2022-11-17 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'cmake_tiff_install_warning' into 'master' + CMakeLists.txt: fix warning with -Wdev + + See merge request libtiff/libtiff!416 + +2022-11-13 Even Rouault <even.rouault@spatialys.com> + + CMakeLists.txt: fix warning with -Wdev. + ``` + CMake Warning (dev) at CMakeLists.txt:62 (option): + Policy CMP0077 is not set: option() honors normal variables. Run "cmake + --help-policy CMP0077" for policy details. Use the cmake_policy command to + set the policy and suppress this warning. + + For compatibility with older versions of CMake, option is clearing the + normal variable 'tiff-install'. + This warning is for project developers. Use -Wno-dev to suppress it. + ``` + +2022-11-12 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'fix_479' into 'master' + _TIFFReadEncodedTileAndAllocBuffer(): avoid excessive memory allocation on... + + See merge request libtiff/libtiff!412 + +2022-11-12 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'typo_fix' into 'master' + tif_dirread.c: fix typo in comment + + See merge request libtiff/libtiff!414 + +2022-11-12 Even Rouault <even.rouault@spatialys.com> + + tif_dirread.c: fix typo in comment. + +2022-11-11 Even Rouault <even.rouault@spatialys.com> + + _TIFFReadEncodedTileAndAllocBuffer(): avoid excessive memory allocation on broken files (fixes #479) + +2022-11-10 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'bugfix/tiff2pdf-stdout' into 'master' + tiff2pdf Don't try to seek into stdout. + + See merge request libtiff/libtiff!367 + +2022-11-10 Claus-Justus Heine <himself@claus-justus-heine.de> + + tiff2pdf: Don't try to seek into stdout. + Fixes #441 + +2022-11-08 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'fix_coverity_1516759' into 'master' + TIFFErrorExtR(): fix Dereference after null check (CID 1516759) + + See merge request libtiff/libtiff!411 + +2022-11-08 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'fix_ossfuzz_53137' into 'master' + TIFFReadRGBATileExt(): fix (unsigned) integer overflow on strips/tiles > 2 GB + + See merge request libtiff/libtiff!410 + +2022-11-08 Even Rouault <even.rouault@spatialys.com> + + TIFFErrorExtR(): fix Dereference after null check (CID 1516759) + +2022-11-08 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'no_sprintf' into 'master' + Replace sprintf calls with snprintf + + See merge request libtiff/libtiff!408 + +2022-11-08 Mark Mentovai <mark@chromium.org> + + Replace sprintf calls with snprintf. + This makes it possible to build libtiff without warnings using the macOS + 13 SDK. Calls to sprintf are replaced with snprintf, passing appropriate + buffer sizes. + + It doesn’t appear that any of the changed uses of sprintf were actually + unsafe, so no behavior change is expected aside from SDK compatibility. + + The macOS 13 SDK deprecates sprintf as it’s difficult to use safely. The + deprecation warning message is visible when building C++, but it is not + normally visible when building plain C code due to a quirk in how + sprintf is declared in the SDK. However, the deprecation message is + visible when building plain C under Address Sanitizer + (-fsanitize=address). This discrepancy was discovered at + https://crbug.com/1381706 and reported to Apple with a copy at + https://openradar.appspot.com/FB11761475. + + The macOS 13 SDK is packaged in Xcode 14.1, released on 2022-11-01. This + also affects the iOS 16 SDK and other 2022-era Apple OS SDKs packaged in + Xcode 14.0, released on 2022-09-12. + + libtiff is visible to the Chromium build via PDFium, and this change is + needed to allow Chromium to move forward to the macOS 13 SDK. + + This change is limited to the libtiff directory. Other uses of sprintf + were found in contrib, test, and tools. + +2022-11-08 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'reentrant' into 'master' + Add reentrant error functions + + See merge request libtiff/libtiff!409 + +2022-11-08 Even Rouault <even.rouault@spatialys.com> + + TIFFReadRGBATileExt(): fix (unsigned) integer overflow on strips/tiles > 2 GB + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=53137 + +2022-11-08 Laramie Leavitt <lar@google.com> + + Add reentrant error functions. + Prior to this change, libtiff relied on global error handlers, + which is problematic when libtiff used by multiple independent + libraries from within the same process, as they may unwittingly + clobber the error handling, introduce race conditions when setting + handlers, or otherwise have unintended side effects. + + This change adds error handlers to the TIFF struct, which are + used preferentially when available. The error handlers are invoked + when the re-entrant error functions are called: + + void TIFFErrorExtR(TIFF*, const char* module, const char* fmt, ...) + void TIFFWarningExtR(TIFF*, const char* module, const char* fmt, ...) + + The handlers have a similar signature to the existing extended + handlers, additionally returning an int: + + int TIFFErrorHandlerExtR(thandle_t, const char*, const char*, va_list) + + thandle_t is the userdata passed to TIFFOpen + When the handler returns 1, the global handlers are not called. + + Custom error/warning handlers may be installed on a per-file + basis by calling the Set functions: + + TIFF* tif = TIFFOpen(...); + TIFFSetErrorHandlerExtR(tif, MyErrorHandler); + TIFFSetWarningHandlerExtR(tif, MyWarningHandler); + + Additionally, the callsites to TIFFErrorExt and TIFFWarningExt + have been updated to call the reentrant versions. + +2022-11-08 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'tiffcrop_fix_CoverityScan_tmsize_issue' into 'master' + tiffcrop: should fix some Coverity Scan issues OVERFLOW_BEFORE_WIDEN + + See merge request libtiff/libtiff!403 + +2022-11-08 Su Laus <sulau@freenet.de> + + tiffcrop: should fix some Coverity Scan issues OVERFLOW_BEFORE_WIDEN. + +2022-11-02 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'typo_fix' into 'master' + tif_dirread.c: fix typo in comment + + See merge request libtiff/libtiff!407 + +2022-11-02 Even Rouault <even.rouault@spatialys.com> + + tif_dirread.c: fix typo in comment. + +2022-10-23 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'tiffcrop_formatting_fix' into 'master' + tiffcrop: add casts in TIFFError() to fix compiler warnings + + See merge request libtiff/libtiff!406 + +2022-10-23 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'fix_482' into 'master' + CMake: correctly set default value of 'lzma' option when liblzma is detected (fixes #482) + + Closes #482 + + See merge request libtiff/libtiff!404 + +2022-10-23 Even Rouault <even.rouault@spatialys.com> + + tiffcrop: add casts in TIFFError() to fix compiler warnings. + + CMake: correctly set default value of 'lzma' option when liblzma is detected (fixes #482) + +2022-10-20 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'fix_480' into 'master' + Fix incorrect printf() formatters introduced in recent commits (fixes #480) + + Closes #480 + + See merge request libtiff/libtiff!401 + +2022-10-19 Even Rouault <even.rouault@spatialys.com> + + Fix incorrect printf() formatters introduced in recent commits (fixes #480) + +2022-10-13 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'CLIPPATH_tags_corrected' into 'master' + CLIPPATH tags defined twice but differently and also wrongly (#439) - corrected + + Closes #439 + + See merge request libtiff/libtiff!366 + +2022-10-13 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'FIELD_IGNORE_warning-messages' into 'master' + Warning messages for FIELD_IGNORE tags for writing and for TIFF_SETGET_UNDEFINED for reading added. (#438) + + Closes #438 + + See merge request libtiff/libtiff!365 + +2022-10-13 Su Laus <sulau@freenet.de> + + Warning messages for FIELD_IGNORE tags for writing and for TIFF_SETGET_UNDEFINED for reading added. (#438) + +2022-10-13 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'tag-def_COMPRESSION_corrected' into 'master' + tif_dirinfo.c TIFFTAG_COMPRESSION and _BITSPERSAMPLE definition corrected + + See merge request libtiff/libtiff!364 + +2022-10-13 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'fix_getopt_included_twice' into 'master' + Fix including module getopt.c twice with CMake and HAVE_GETOPT=false + + See merge request libtiff/libtiff!381 + +2022-10-13 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'tiffcrop_CoverityScan_fix_PRINTF_ARGS' into 'master' + tiffcrop: fix Coverity Scan issues about PRINTF_ARGS. + + See merge request libtiff/libtiff!400 + +2022-10-13 Su_Laus <sulau@freenet.de> + + tiffcrop fix Coverity Scan issues about PRINTF_ARGS. + +2022-10-13 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'tiffcrop_fix_#450_too-many-mode-options' into 'master' + tiffcrop: fix #450 too many 'mode' options on command line. + + Closes #470 et #450 + + See merge request libtiff/libtiff!384 + +2022-10-13 Su Laus <sulau@freenet.de> + + tiffcrop: fix #450 too many 'mode' options on command line. + +2022-10-13 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'tiffcrop_fix_#435' into 'master' + tiffcrop subroutines require a larger buffer (fixes #271, #381, #386, #388, #389, #435) + + Closes #465, #464, #435, #389, #388, #386, #381 et #271 + + See merge request libtiff/libtiff!382 + +2022-10-13 Su Laus <sulau@freenet.de> + + tiffcrop subroutines require a larger buffer (fixes #271, #381, #386, #388, #389, #435) + +2022-10-12 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'InkNames_NumberOfInks_handling_revised' into 'master' + Revised handling of TIFFTAG_INKNAMES and related TIFFTAG_NUMBEROFINKS value (fixes #149, #150, #152, #168, #250, #269, #398 and #456) + + Closes #474, #463, #387, #456, #398, #269, #250, #168, #152, #150 et #149 + + See merge request libtiff/libtiff!385 + +2022-10-12 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'tiffcrop_fix_#411_#413' into 'master' + tiffcrop: disable incompatibility of -Z, -X, -Y, -z options with any PAGE_MODE_x option (fixes #411, #413 and #426) + + Closes #426, #413 et #411 + + See merge request libtiff/libtiff!383 + +2022-10-10 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'TIFFAdvanceDirectory_mapped_uio' into 'master' + TIFFAdvanceDirectory(): fix unsigned-integer-overflow in mapped case + + See merge request libtiff/libtiff!398 + +2022-10-10 Even Rouault <even.rouault@spatialys.com> + + TIFFAdvanceDirectory(): fix unsigned-integer-overflow in mapped case. + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=52309 + +2022-10-08 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'tiffinfo_parse_SubIFDs' into 'master' + tiffinfo: Updated to parse through SubIFDs and show their tags. + + See merge request libtiff/libtiff!396 + +2022-10-08 Su Laus <sulau@freenet.de> + + tiffinfo: Updated to parse through SubIFDs and show their tags. + +2022-10-07 Roger Leigh <rleigh@codelibre.net> + + Merge branch 'master' into 'master' + Moved linking of CMath::CMath into CMath_LIBRARY check + + See merge request libtiff/libtiff!397 + +2022-10-07 Frei Herr <herr.frei@googlemail.com> + + Moved linking of CMath::CMath into CMath_LIBRARY check. + +2022-10-06 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'rational_precision2double_coverity-fix' into 'master' + rational_precision2double.c: Fix issue from Coverity Scan. + + See merge request libtiff/libtiff!395 + +2022-10-06 Su_Laus <sulau@freenet.de> + + rational_precision2double.c: Fix issue from Coverity Scan. + + Fix including module getopt.c twice with CMake and HAVE_GETOPT=false. + The "make-files" for the tools- and test- programmes include the module getopt.c once directly as additional source and then again by including port.lib. + This can be avoided by including getopt.c as source in port.lib within port\CMakeLists.txt not with PUBLIC but with PRIVATE. + +2022-10-06 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'fix-455_Improved-IFD-loop-handling' into 'master' + Improved IFD-Loop Handling (fixes #455) + + Closes #455 + + See merge request libtiff/libtiff!386 + +2022-10-06 Su Laus <sulau@freenet.de> + + Improved IFD-Loop Handling (fixes #455) + IFD infinite looping was not fixed by MR 20 (see #455). + An improved IFD loop handling is proposed. + + Basic approach: + + - The order in the entire chain must be checked, and not only whether an offset has already been read once. + - To do this, pairs of directory number and offset are stored and checked. + - The offset of a directory number can change. + - TIFFAdvanceDirectory() must also perform an IFD loop check. + - TIFFCheckDirOffset() is replaced by _TIFFCheckDirNumberAndOffset(). + + Rules for the check: + + - If an offset is already in the list, it must have the same IFD number. Otherwise it is an IDF loop. + - If the offset is not in the list and the IFD number is greater than there are list entries, a new list entry is added. + - Otherwise, the offset of the IFD number is updated. + + Reference is also made to old bugzilla bug 2772 and MR 20, which did not solve the general issue. + This MR closes #455 + +2022-10-05 Roger Leigh <rleigh@codelibre.net> + + Merge branch 'fix-cmake-subproject' into 'master' + Fix CMake build to be compatible with FetchContent + + See merge request libtiff/libtiff!394 + +2022-10-04 Timothy Lyanguzov <theta682@gmail.com> + + Apply 9 suggestion(s) to 3 file(s) + +2022-10-04 Jeremy Maitin-Shepard <jbms@google.com> + + Fix CMake build to be compatible with FetchContent. + Recent versions of CMake have improved support for including + dependencies, using the FetchContent module, which allows a dependency + to be imported as a subproject and then later found automatically by + calls to `find_package`. + + This change makes libtiff's CMake better behaved when used as a + sub-project: + + - CMake has a single global namespace for all target names in all + sub-projects. This commit renames the following CMake targets: + + - port -> tiff_port + - mkg3states -> tiff_mkg3states + - faxtable -> tiff_faxtable + - release -> tiff_release + + - When building TIFF as a sub-project, it is not normally useful to + create install rules for its targets. This commit adds a + `tiff-install` option that controls whether the install rules are + added and defaults to OFF when libtiff is included as a sub-project. + + - Previously, libtiff set `BUILD_SHARED_LIBS` to ON by default. With + this commit, that default is only set if libtiff is the top-level + project. + + - When using `find_package(TIFF)`, the targets `TIFF::TIFF` and + `TIFF::CXX` are defined. This commit makes libtiff itself define + those targets as aliases, to allow other cmake projects to use + either `find_package` or `FetchContent` interchangeably. + + - Adds ZSTD_HAVE_DECOMPRESS_STREAM variable which may be set to bypass + `check_symbol_exists` call. Fixes + https://gitlab.com/libtiff/libtiff/-/issues/472. + +2022-09-27 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'getimage_overflow' into 'master' + Update getimage to support reading large raster images + + See merge request libtiff/libtiff!389 + +2022-09-26 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'MinGW-warnings_ipctutil' into 'master' + Fix #458: MinGW Windows 64: warning because 'long' is a 32 bits type in... + + Closes #458 + + See merge request libtiff/libtiff!391 + +2022-09-26 Su Laus <sulau@freenet.de> + + Fix #458: MinGW Windows 64: warning because 'long' is a 32 bits type in... + +2022-09-16 Eric Siegel <siegel.eric@gmail.com> + + Update getimage to support large raster images. + +2022-09-08 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'typo_fix' into 'master' + tif_lzw.c: fix typo in code comment + + See merge request libtiff/libtiff!387 + +2022-09-08 Even Rouault <even.rouault@spatialys.com> + + tif_lzw.c: fix typo in code comment. + +2022-08-30 Su_Laus <sulau@freenet.de> + + Revised handling of TIFFTAG_INKNAMES and related TIFFTAG_NUMBEROFINKS value + In order to solve the buffer overflow issues related to TIFFTAG_INKNAMES and related TIFFTAG_NUMBEROFINKS value, a revised handling of those tags within LibTiff is proposed: + + Behaviour for writing: + `NumberOfInks` MUST fit to the number of inks in the `InkNames` string. + `NumberOfInks` is automatically set when `InkNames` is set. + If `NumberOfInks` is different to the number of inks within `InkNames` string, that will be corrected and a warning is issued. + If `NumberOfInks` is not equal to samplesperpixel only a warning will be issued. + + Behaviour for reading: + When reading `InkNames` from a TIFF file, the `NumberOfInks` will be set automatically to the number of inks in `InkNames` string. + If `NumberOfInks` is different to the number of inks within `InkNames` string, that will be corrected and a warning is issued. + If `NumberOfInks` is not equal to samplesperpixel only a warning will be issued. + + This allows the safe use of the NumberOfInks value to read out the InkNames without buffer overflow + + This MR will close the following issues: #149, #150, #152, #168 (to be checked), #250, #269, #398 and #456. + + It also fixes the old bug at http://bugzilla.maptools.org/show_bug.cgi?id=2599, for which the limitation of `NumberOfInks = SPP` was introduced, which is in my opinion not necessary and does not solve the general issue. + +2022-08-25 Su_Laus <sulau@freenet.de> + + tiffcrop: disable incompatibility of -Z, -X, -Y, -z options with any PAGE_MODE_x option (fixes #411 and #413) + tiffcrop does not support –Z, -z, -X and –Y options together with any other PAGE_MODE_x options like -H, -V, -P, -J, -K or –S. + + Code analysis: + + With the options –Z, -z, the crop.selections are set to a value > 0. Within main(), this triggers the call of processCropSelections(), which copies the sections from the read_buff into seg_buffs[]. + In the following code in main(), the only supported step, where that seg_buffs are further handled are within an if-clause with if (page.mode == PAGE_MODE_NONE) . + + Execution of the else-clause often leads to buffer-overflows. + + Therefore, the above option combination is not supported and will be disabled to prevent those buffer-overflows. + + The MR solves issues #411 and #413. + +2022-08-21 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'tiffcrop_S-option_mutually_exclusive' into 'master' + tiffcrop: -S option mutually exclusive (fixes #349, #414, #422, #423, #424) + + Closes #424, #423, #422, #414 et #349 + + See merge request libtiff/libtiff!378 + +2022-08-20 Su_Laus <sulau@freenet.de> + + tiffcrop -S option: Make decision simpler. + +2022-08-20 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'remove_death_commented_code' into 'master' + Remove dead code from tif_dirread.c, tif_dirwrite.c and tif_getimage.c + + See merge request libtiff/libtiff!380 + +2022-08-20 Su Laus <sulau@freenet.de> + + Remove dead code from tif_dirread.c, tif_dirwrite.c and tif_getimage.c. + +2022-08-16 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'coverity_fixes' into 'master' + Silence Coverity Scan false positive warnings about out-of-bounds access + + See merge request libtiff/libtiff!379 + +2022-08-16 Even Rouault <even.rouault@spatialys.com> + + tif_zip.c: silence Coverity Scan false positive warnings about out-of-bounds access (CID 1491190, 1491197, 1491201) + + tif_dirread.c: silence Coverity Scan false positive warnings about out-of-bounds access (CID 1491182, 1491186) + +2022-08-16 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'default_tag_values_extended' into 'master' + Presetting of default tag values extended (e.g. PlanarConfig). (fixes #449) + + Closes #449 + + See merge request libtiff/libtiff!377 + +2022-08-16 Su Laus <sulau@freenet.de> + + Presetting of default tag values extended (e.g. PlanarConfig). (fixes #449) + +2022-08-15 Su_Laus <sulau@freenet.de> + + According to Richard Nolde https://gitlab.com/libtiff/libtiff/-/issues/401#note_877637400 the tiffcrop option „-S“ is also mutually exclusive to the other crop options (-X|-Y), -Z and -z. + This is now checked and ends tiffcrop if those arguments are not mutually exclusive. + + This MR will fix the following tiffcrop issues: #349, #414, #422, #423, #424 + +2022-08-09 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'warning_fix' into 'master' + Fix warning about shadowing + + See merge request libtiff/libtiff!376 + +2022-08-09 Even Rouault <even.rouault@spatialys.com> + + Fix warning about shadowing. + +2022-08-09 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'fix_225' into 'master' + Deal with RichTIFFIPTC tag written with LONG type (fixes #225) + + Closes #225 + + See merge request libtiff/libtiff!374 + +2022-08-09 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'Writing_IFD8_to_ClassicTIFF_bugfix' into 'master' + Correcting defects reported by Coverity Scan for MR !369 + + See merge request libtiff/libtiff!375 + +2022-08-09 Su Laus <sulau@freenet.de> + + Correcting defects reported by Coverity Scan for MR !369. + +2022-08-09 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'fix_442_Writing_IFD8_to_ClassicTIFF' into 'master' + TIFFSetValue(): Writing IFD8 & LONG8 tags to ClassicTIFF corrected (fixes #442) + + Closes #442 + + See merge request libtiff/libtiff!369 + +2022-08-09 Su Laus <sulau@freenet.de> + + TIFFSetValue(): Writing IFD8 & LONG8 tags to ClassicTIFF corrected (fixes #442) + +2022-08-09 Even Rouault <even.rouault@spatialys.com> + + Deal with RichTIFFIPTC tag written with LONG type (fixes #225) + +2022-08-07 Roger Leigh <rleigh@codelibre.net> + + Merge branch 'manpage-functions-added' into 'master' + doc: Missing public functions added to TIFF documentation in Sphinx + + See merge request libtiff/libtiff!372 + +2022-08-07 Su Laus <sulau@freenet.de> + + doc: Missing public functions added to TIFF documentation in Sphinx. + +2022-07-29 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'tifjpeg_version_check' into 'master' + tif_jpeg.c: allow to pass -DEXPECTED_JPEG_LIB_VERSION=number to do optional... + + See merge request libtiff/libtiff!373 + +2022-07-29 Even Rouault <even.rouault@spatialys.com> + + tif_jpeg.c: allow to pass -DEXPECTED_JPEG_LIB_VERSION=number to do optional compile-time version check + +2022-07-21 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'TIFFReadFromUserBuffer_fix' into 'master' + TIFFReadFromUserBuffer(): fix clearing of TIFF_CODERSETUP flag that could... + + See merge request libtiff/libtiff!371 + +2022-07-21 Even Rouault <even.rouault@spatialys.com> + + TIFFReadFromUserBuffer(): fix clearing of TIFF_CODERSETUP flag that could cause issues with reading JPEG compressed files + +2022-07-21 Roger Leigh <rleigh@codelibre.net> + + Merge branch 'vs2022-fixes' into 'master' + cmake: Correct duplicate definition of _CRT_SECURE_NO_WARNINGS + + Closes #443 + + See merge request libtiff/libtiff!370 + +2022-07-13 Roger Leigh <rleigh@codelibre.net> + + cmake: Correct duplicate definition of _CRT_SECURE_NO_WARNINGS. + +2022-07-13 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'vs2022-fixes' into 'master' + cmake: Fixes for Visual Studio 2022 + + See merge request libtiff/libtiff!368 + +2022-07-13 Roger Leigh <rleigh@codelibre.net> + + cmake: Fixes for Visual Studio 2022. + +2022-07-03 Roger Leigh <rleigh@codelibre.net> + + Merge branch 'elf-symbol-export' into 'master' + Explicit export of versioned ELF symbols + + Closes #437 + + See merge request libtiff/libtiff!361 + +2022-07-03 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'fix_433' into 'master' + _TIFFCheckFieldIsValidForCodec(): return FALSE when passed a codec-specific... + + Closes #433 + + See merge request libtiff/libtiff!363 + +2022-07-01 Su_Laus <sulau@freenet.de> + + CLIPPATH tags defined twice but differently and also wrongly. + In tif_dirinfo.c the tags for clippath are wrongly defined and the tag TIFFTAG_XCLIPPATHUNITS is even different twice. Therefore, those tags cannot be written / read correctly and may even lead to buffer overflow. + E.g.: In the case of TIFFSetField(YCLIPPATHUNITS), a 1 byte storage space is allocated because of TIFF_SETGET_UNDEFINED, in which an int32_t value should be stored because of TIFF_SLONG type definition. Then, an int32_t value is read from that 1 byte storage location. + + The current definition is: + + { TIFFTAG_CLIPPATH, -1, -3, TIFF_BYTE, 0, TIFF_SETGET_UNDEFINED, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 1, "ClipPath", NULL }, + { TIFFTAG_XCLIPPATHUNITS, 1, 1, TIFF_SLONG, 0, TIFF_SETGET_UNDEFINED, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 0, "XClipPathUnits", NULL }, + { TIFFTAG_XCLIPPATHUNITS, 1, 1, TIFF_SBYTE, 0, TIFF_SETGET_UNDEFINED, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 0, "XClipPathUnits", NULL }, + { TIFFTAG_YCLIPPATHUNITS, 1, 1, TIFF_SLONG, 0, TIFF_SETGET_UNDEFINED, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 0, "YClipPathUnits", NULL }, + + Whereas the correct definition according to TIFF Specification Supplement 1 (https://www.awaresystems.be/imaging/tiff/specification/TIFFPM6.pdf) should be: + + { TIFFTAG_CLIPPATH, -3, -3, TIFF_BYTE, 0, TIFF_SETGET_C32_UINT8, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 1, "ClipPath", NULL }, + { TIFFTAG_XCLIPPATHUNITS, 1, 1, TIFF_LONG, 0, TIFF_SETGET_UINT32, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 0, "XClipPathUnits", NULL }, + { TIFFTAG_YCLIPPATHUNITS, 1, 1, TIFF_LONG, 0, TIFF_SETGET_UINT32, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 0, "YClipPathUnits", NULL }, + + Also the set_get_field of the following tag should be corrected from + + { TIFFTAG_INTEROPERABILITYIFD, 1, 1, TIFF_IFD8, 0, TIFF_SETGET_UNDEFINED, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 0, "InteroperabilityIFDOffset", NULL }, + to + { TIFFTAG_INTEROPERABILITYIFD, 1, 1, TIFF_IFD8, 0, TIFF_SETGET_IFD8, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 0, "InteroperabilityIFDOffset", NULL }, + + However, if those tags schould not be handled by LibTiff because they are deamed as abandoned or unwanted tags, those tags need to be defined with FIELD_IGNORE instead of FIELD_CUSTOM and keeping set_field_type = TIFF_SETGET_UNDEFINED + +2022-07-01 Su_Laus <sulau@freenet.de> + + In tif_dirinfo.c the definition for TIFFTAG_COMPRESSION has different settings of field_readcount=TIFF_VARIABLE (-1) and field_writecount=1. The tag is defined with Count=1, thus field_readcount is wrong and should also be 1. Although TIFFTAG_BITSPERSAMPLE is defined with Count:N=SamplesPerPixel, only ONE uint16_t value is passed with TIFFSetField() and TIFFGetField(). However, an array with N=SamplesPerPixel equal values is written into the TIFF file. Shouldn't field_readcount = field_writecount = 1 then? The behaviour of TiffLib does not change, because the handling is coded directly. + +2022-06-27 Even Rouault <even.rouault@spatialys.com> + + _TIFFCheckFieldIsValidForCodec(): return FALSE when passed a codec-specific tag and the codec is not configured (fixes #433) + This avoids crashes when querying such tags + +2022-06-27 Even Rouault <even.rouault@spatialys.com> + + Merge branch '16bit_cielab' into 'master' + add basic 16bit-cielab support + + See merge request libtiff/libtiff!336 + +2022-06-27 Caolán McNamara <caolan@skynet.ie> + + Add basic 16bit-cielab support. + just a copy of putcontig8bitCIELab that reads 16bit vals but divide l by + 257, a and b by 256 before passing to TIFFCIELabToXYZ + + motivation: https://bugs.documentfoundation.org/show_bug.cgi?id=131199 + the "clavijo16bitlab.tiff" example where tiffinfo says: + ``` + Image Width: 2601 Image Length: 3503 + Resolution: 96, 96 pixels/inch + Bits/Sample: 16 + Compression Scheme: AdobeDeflate + Photometric Interpretation: CIE L*a*b* + Orientation: row 0 top, col 0 lhs + Samples/Pixel: 3 + Rows/Strip: 1 + Planar Configuration: single image plane + DateTime: 2020:03:07 10:20:42 + ``` + +2022-06-24 Roger Leigh <rleigh@codelibre.net> + + Merge branch 'manpage-fixes' into 'master' + Sphinx documentation fixes + + See merge request libtiff/libtiff!362 + +2022-06-24 Roger Leigh <rleigh@codelibre.net> + + doc: Correct types and cross-references. + + doc: Correct manual page path. + + build: Make rational2double static only for automake. + This copies the same logic as used by CMake. + + build: Update autoconf version to 4.5.0 and soname to 6.0.0. + + build: Update autoconf ld-version-script default. + + libtiff: Correct version script for changes since v4.4.0. + + libtiff: Update version script documentation. + + libtiff: Add symbol versioning of all exported symbols. + +2022-06-24 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'webp_mem_improvements' into 'master' + WEBP codec: avoid temporary buffer and memcpy() on whole tile/strip decoding + + See merge request libtiff/libtiff!360 + +2022-06-24 Roger Leigh <rleigh@codelibre.net> + + build: Enable symbol versioning by default. + +2022-06-24 Roger Leigh <rleigh@codelibre.net> + + Merge branch 'sphinx-manpages' into 'master' + doc: Add Sphinx conversion of all manpages + + Closes #361 + + See merge request libtiff/libtiff!356 + +2022-06-24 Roger Leigh <rleigh@codelibre.net> + + Merge branch 'remove-wince' into 'master' + Remove obsolete WinCE source file + + See merge request libtiff/libtiff!357 + +2022-06-23 Even Rouault <even.rouault@spatialys.com> + + WEBP codec: avoid temporary buffer and memcpy() on whole tile/strip decoding + +2022-06-22 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'horAcc8_fix' into 'master' + tif_predict.c: make horAcc8() work with icc (ICC) 2021.6.0 20220226 -O2 + + See merge request libtiff/libtiff!359 + +2022-06-22 Even Rouault <even.rouault@spatialys.com> + + tif_predict.c: make horAcc8() work with icc (ICC) 2021.6.0 20220226 -O2. + For a reason I don't understand, recent ICC generates wrong code in -O2 + mode for the stride = 3 and 4 cases. The modified code is more + straightfoward, so go for it. + +2022-06-19 Roger Leigh <rleigh@codelibre.net> + + Merge branch 'ci-restore-old' into 'master' + ci: Restore testing with Ubuntu 20.04 + + See merge request libtiff/libtiff!358 + +2022-06-19 Roger Leigh <rleigh@codelibre.net> + + ci: Restore testing with Ubuntu 20.04. + + Remove obsolete WinCE source file. + + doc: Add missing punctuation. + + doc: Remove semicolon from c:function definition. + + doc: Remove remaining HTML entities. + + doc: Improve the build page. + +2022-06-18 Roger Leigh <rleigh@codelibre.net> + + doc: Add Sphinx conversion of all manpages. + +2022-06-18 Roger Leigh <rleigh@codelibre.net> + + Merge branch 'dist-html' into 'master' + build: Distribute and install HTML documentation + + See merge request libtiff/libtiff!352 + +2022-06-13 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'pkgconfig' into 'master' + Adding Requires.private generation + + See merge request libtiff/libtiff!355 + +2022-06-13 Yishen Miao <mys721tx@gmail.com> + + Adding Requires.private generation. + Adds Requires.private generation so that pkg-config can correctly find + the dependencies of libtiff. + +2022-06-11 Roger Leigh <rleigh@codelibre.net> + + Merge branch 'ci-dist' into 'master' + ci: Archive distribution tar and zip files + + See merge request libtiff/libtiff!354 + +2022-06-11 Roger Leigh <rleigh@codelibre.net> + + ci: Archive distribution tar and zip files. + +2022-06-11 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'export_TIFFClampDoubleToUInt32' into 'master' + libtiff.def: export _TIFFClampDoubleToUInt32 + + See merge request libtiff/libtiff!353 + +2022-06-11 Even Rouault <even.rouault@spatialys.com> + + libtiff.def: export _TIFFClampDoubleToUInt32. + +2022-06-11 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'issue-415+427+428' into 'master' + fix the FPE in tiffcrop (#415, #427, and #428) + + Closes #428, #427 et #415 + + See merge request libtiff/libtiff!346 + +2022-06-11 4ugustus <wangdw.augustus@qq.com> + + fix the FPE in tiffcrop (#415, #427, and #428) + +2022-06-11 Roger Leigh <rleigh@codelibre.net> + + build: Distribute and install HTML documentation. + +2022-06-10 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'tif_jpeg_warning_fix' into 'master' + tif_jpeg.c: fix error message + + See merge request libtiff/libtiff!351 + +2022-06-10 Even Rouault <even.rouault@spatialys.com> + + tif_jpeg.c: fix error message. + +2022-06-10 Roger Leigh <rleigh@codelibre.net> + + Merge branch 'android_libm' into 'master' + Fix dependency on libm on Android + + See merge request libtiff/libtiff!350 + +2022-06-09 Matthias Kuhn <matthias@opengis.ch> + + Always link to libm if available. + +2022-06-05 Roger Leigh <rleigh@codelibre.net> + + Merge branch 'vasyl5-master-patch-97651' into 'master' + libtoolize: command not found on macOS. + + See merge request libtiff/libtiff!289 + +2022-06-05 Roger Leigh <rleigh@codelibre.net> + + Merge branch 'rst-docs' into 'master' + Convert HTML documentation to Sphinx RST + + See merge request libtiff/libtiff!349 + +2022-06-05 Roger Leigh <rleigh@codelibre.net> + + Merge remote-tracking branch 'origin/master' into rst-docs. + +2022-06-05 Roger Leigh <rleigh@codelibre.net> + + Merge branch 'cmake-xc-faxtable' into 'master' + cmake: Do not build faxtable target when cross-compiling + + See merge request libtiff/libtiff!342 + +2022-06-05 Roger Leigh <rleigh@codelibre.net> + + Merge branch 'cmake-disable-options' into 'master' + Add options for disabling tools, tests, contrib and docs + + See merge request libtiff/libtiff!343 + +2022-06-05 Roger Leigh <rleigh@codelibre.net> + + Merge branch 'cmake-msvc-options' into 'master' + cmake: Add MSVC options when building all libraries and executables + + See merge request libtiff/libtiff!344 + +2022-06-05 Roger Leigh <rleigh@codelibre.net> + + Merge branch 'cmake-win32-libtiffxx-static' into 'master' + cmake: libtiffxx is static on win32 + + See merge request libtiff/libtiff!338 + +2022-06-05 Roger Leigh <rleigh@codelibre.net> + + Merge branch 'licence-file' into 'master' + Rename COPYRIGHT to LICENSE.md + + See merge request libtiff/libtiff!345 + +2022-06-05 Roger Leigh <rleigh@codelibre.net> + + Rename COPYRIGHT to LICENSE.md. + + doc: Fix make distcheck. + + doc: Update automake configuration. + + doc: Do not pass srcdir and builddir to sphinx-build. + + doc: Additional top-level tidying. + + doc: Tidy top-level index. + + doc: Move bugs to project. + + doc: Move misc to project. + + doc: Move all BigTIFF documentation into specification directory. + * Remove the BigTIFF proposal since this has long been completed + * Update the BigTIFF PR to note completion of the work and replace + present with past tense. + + doc: Split release history. + This permits the newer releases to be included in the top-level + toctree without polluting it with dozens of old releases. + + doc: Correct accents. + + doc: BigTIFF design markup improvements. + + Add doc/_static. + + doc: Move TIFF specification and design notes into subdirectory. + + doc: Move releases into subdirectory. + + doc: Mark up TIFF tech note 2. + + doc: Use sphinxdox theme. + The sphix_rtd_theme formats complex tables badly. + + doc: Clean up HTML tags. + +2022-06-04 Roger Leigh <rleigh@codelibre.net> + + ci: Install Sphinx manual for use by GitLab pages. + + doc: Use sphinx_rtd_theme. + + Convert HTML documentation to Sphinx RST. + * Add CMake build logic + * Add Autotools build logic + * Move from html/ to doc/ + * Manual pages are still generated HTML for the time being + + git: Ignore common IDE build files. + +2022-06-04 Roger Leigh <rleigh@codelibre.net> + + Merge branch 'ci-ubuntu-22.04' into 'master' + ci: Update to use Ubuntu 22.04 CI images + + Closes #429 + + See merge request libtiff/libtiff!348 + +2022-06-04 Roger Leigh <rleigh@codelibre.net> + + Merge branch 'opengl-option' into 'master' + cmake: Add tiff-opengl option + + See merge request libtiff/libtiff!340 + +2022-06-04 Roger Leigh <rleigh@codelibre.net> + + tiffdump: Avoid overflow warning when reading. + + ci: Update to use Ubuntu 22.04 CI images. + +2022-06-04 Even Rouault <even.rouault@spatialys.com> + + Merge branch 'master' into 'master' + Include stdlib.h in tif_lzw.c. + + See merge request libtiff/libtiff!347 + +2022-06-04 Brian Ledger <brian.peter.ledger@gmail.com> + + Merge branch 'master' of https://gitlab.com/libtiff/libtiff. + +2022-06-04 Brian Ledger <brian.peter.ledger@gmail.com> + + Include stdlib.h in tif_lzw.c. + In `tif_lzw.c`, a call is made to `_byteswap_uint64`. This is declared in `stdlib.h`. `stdlib.h` is not included in `tib_lzw.c`, so a name error may occur. + + This change adds `#include stdlib.h` to `tif_lzw.c`, to prevent a name error from occuring when `stdlib.h` is not included. + +2022-05-29 Roger Leigh <rleigh@codelibre.net> + + Add options for disabling tools, tests, contrib and docs. + + cmake: Add MSVC options when building all libraries and executables. + + cmake: Do not build faxtable target when cross-compiling. + + cmake: Use add_compile_definitions and add_compile_options. + It seems that some CMake versions can't export targets using PRIVATE + linking, even though the private target is never used. + + Merge remote-tracking branch 'origin/master' into cmake-msvc-options. + + Merge remote-tracking branch 'origin/master' into cmake-win32-libtiffxx-static + +2022-05-29 Roger Leigh <rleigh@codelibre.net> + + Merge branch 'ci-x64' into 'master' + ci: Remove arm64 temporarily + + See merge request libtiff/libtiff!341 + +2022-05-29 Roger Leigh <rleigh@codelibre.net> + + ci: Remove arm64 temporarily. + + autoconf: Add --disable-opengl option. + + cmake: Add tiff-opengl option. + + cmake: Add MSVC options when building all libraries and executables. + + cmake: libtiffxx is static on win32. + +2022-05-22 Even Rouault <even.rouault@spatialys.com> + + html/Makefile.am: add v4.4.0.html to docfiles. + +2022-05-20 Even Rouault <even.rouault@spatialys.com> + + Update HOWTO-RELEASE with .tar.xz. + + Prepare for release 4.4.0. + 2022-05-16 Even Rouault <even.rouault@spatialys.com> libtiff v4.4.0 released diff --git a/HOWTO-RELEASE b/HOWTO-RELEASE index 8abb103b..5728d852 100644 --- a/HOWTO-RELEASE +++ b/HOWTO-RELEASE @@ -41,14 +41,14 @@ Notes on releasing. mv ChangeLog.new ChangeLog rm ChangeLog.added -3. Create html/vX.X.html and add it to git with 'git add html/vX.X.html'. - Take ChangeLog entries and html-ify in there. - Easist thing to do is take html/vX.(X-1).html and use it as a template. +3. Create doc/releases/vX.X.rst and add it to git with 'git add doc/releases/vX.X.rst'. + Update doc/releases/index.rst to point to the new file + Take ChangeLog entries and rst-ify in there. + Easist thing to do is take doc/releases/vX.(X-1).rst and use it as a template. -4. Add vX.X.html file to the list of 'docfiles' files in the html/Makefile.am. +4. Add vX.X.rst file to the list of 'rst_sources' files in the doc/Makefile.am. -5. Update html/index.html to refer to this new page as the current release, - and update date at the bottom of the page +5. Update "Latest Stable Release" in doc/index.rst. 6. Increment the release version in configure.ac. Put 'alpha' or 'beta' after the version, if applicable. For example: diff --git a/RELEASE-DATE b/RELEASE-DATE index dc35e227..6f787fd2 100644 --- a/RELEASE-DATE +++ b/RELEASE-DATE @@ -1 +1 @@ -20220520 +20221209 @@ -1 +1 @@ -4.4.0 +4.5.0 diff --git a/doc/Makefile.am b/doc/Makefile.am index e4460c4f..1449cec8 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -192,6 +192,7 @@ rst_sources = \ releases/v3.5.3.rst \ releases/v4.0.4.rst \ releases/v3.7.2.rst \ + releases/v4.5.0.rst \ functions.rst \ tools.rst \ terms.rst \ @@ -220,6 +221,7 @@ rst_sources = \ functions/TIFFFieldReadCount.rst \ functions/TIFFError.rst \ functions/TIFFOpen.rst \ + functions/TIFFOpenOptions.rst \ functions/TIFFcodec.rst \ functions/TIFFFlush.rst \ functions/TIFFDataWidth.rst \ diff --git a/doc/index.rst b/doc/index.rst index ff844959..b33cdd1f 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -11,7 +11,7 @@ LibTIFF - TIFF Library and Utilities Home Page #1 http://www.simplesystems.org/libtiff/ Home Page #2 https://libtiff.gitlab.io/libtiff/ Home Page #3 http://libtiff.maptools.org/ - Latest Stable Release v4.4.0 + Latest Stable Release v4.5.0 Master Download Site `download.osgeo.org <https://download.osgeo.org/libtiff/>`_ Mailing List `tiff@lists.osgeo.org <tiff@lists.osgeo.org>`_ List subscription http://lists.osgeo.org/mailman/listinfo/tiff/ diff --git a/doc/releases/index.rst b/doc/releases/index.rst index acd076f0..a1a34908 100644 --- a/doc/releases/index.rst +++ b/doc/releases/index.rst @@ -7,6 +7,7 @@ LibTIFF releases. :maxdepth: 1 :titlesonly: + v4.5.0 v4.4.0 v4.3.0 v4.2.0 diff --git a/doc/releases/v4.5.0.rst b/doc/releases/v4.5.0.rst new file mode 100644 index 00000000..74dc0487 --- /dev/null +++ b/doc/releases/v4.5.0.rst @@ -0,0 +1,128 @@ +Changes in TIFF v4.5.0 +====================== + +.. table:: References + :widths: auto + + ====================== ========================================== + Current Version v4.5.0 (:tag:`v4.5.0`) + Previous Version :doc:`v4.4.0 <v4.4.0>` + Master Download Site `<https://download.osgeo.org/libtiff/>`_ + Master HTTP Site #1 `<http://www.simplesystems.org/libtiff/>`_ + Master HTTP Site #2 `<https://libtiff.gitlab.io/libtiff/>`_ + Master HTTP Site #3 `<http://libtiff.maptools.org/>`_ + ====================== ========================================== + +This document provides a summary of significant changes made to the +software between the *previous* and *current* versions (see +above). A fully-detailed change summary is provided by the :file:`ChangeLog` file +included in the release package and by the Git commit history: + +Major changes +------------- + +* Whole code base reformatting of .c/.h files using new .clang-format format +* Documentation changed from static HTML and man pages to Restructured Text + (rst). HTML and man pages are now build artifacts. + +Software configuration changes +------------------------------ + +* SONAME version bumped to 6 due to changes in symbol versioning. +* autoconf/cmake: detect (not yet released) libjpeg-turbo 2.2 to take into + its capability of handling both 8-bit JPEG and 12-bit JPEG in a single build. +* autoconf/cmake: detect sphinx-build to build HTML and man pages +* CMakeLists.txt: fix warning with -Wdev +* CMake: correctly set default value of 'lzma' option when liblzma is detected + (:issue:`482`) +* CMake: Moved linking of CMath::CMath into CMath_LIBRARY check. +* Fix CMake build to be compatible with FetchContent. +* cmake: Correct duplicate definition of _CRT_SECURE_NO_WARNINGS (:issue:`443`) +* cmake: Fixes for Visual Studio 2022. +* Adds Requires.private generation so that pkg-config can correctly find + the dependencies of libtiff. +* Fix dependency on libm on Android +* cmake: libtiffxx is static on win32 +* Fix build in tif_lzw.c +* CMake: Add options for disabling tools, tests, contrib and docs. + +Library changes +--------------- + +New/improved functionalities: + +* Addition of an open option concept with the new functions + :c:func:`TIFFOpenExt`, :c:func:`TIFFOpenWExt`, :c:func:`TIFFFdOpenExt`, + :c:func:`TIFFClientOpenExt`, :c:func:`TIFFOpenOptionsAlloc`, + :c:func:`TIFFOpenOptionsFree` +* Leveraging above mentioned open option concept, addition of a new capability + to limit the size of a single dynamic memory allocation done + by the library with :c:func:`TIFFOpenOptionsSetMaxSingleMemAlloc` +* Leveraging above mentioned open option concept, addition of a new capability + to specify per-TIFF handle re-entrant error and warning callbacks + with :c:func:`TIFFOpenOptionsSetErrorHandlerExtR` and + :c:func:`TIFFOpenOptionsSetWarningHandlerExtR` + +Bug fixes: + +* TIFFWriteRawStrip(): restore capabilities to append data in the current strip + (:issue:`489`) +* _TIFFReadEncodedTileAndAllocBuffer(): avoid excessive memory allocation on + broken files (:issue:`479`) +* TIFFReadRGBATileExt(): fix (unsigned) integer overflow on strips/tiles > 2 GB + (oss-fuzz #53137) +* Replace sprintf calls with snprintf to fix warnings on macOS 13 SDK +* Added warning messages for FIELD_IGNORE tags for writing and for + TIFF_SETGET_UNDEFINED for reading added. (:issue:`438`) +* tif_dirinfo.c: fix TIFFTAG_CLIPPATH tag declaration (:issue:`439`) +* tif_dirinfo.c: fix TIFFTAG_COMPRESSION and _BITSPERSAMPLE tag declaration + (:issue:`364`) +* Revised handling of TIFFTAG_INKNAMES and related TIFFTAG_NUMBEROFINKS value + (:issue:`149`, :issue:`150`, :issue:`152`, :issue:`168`, :issue:`250`, + :issue:`269`,:issue:`398`, :issue:`456`) +* TIFFAdvanceDirectory(): fix unsigned-integer-overflow in mapped case + (oss-fuzz #52309) +* Improved/fixes IFD-Loop Handling (:issue:`455`) +* Update getimage to support large raster images. +* Presetting of default tag values extended (e.g. PlanarConfig). (:issue:`449`) +* Deal with RichTIFFIPTC tag written with LONG type (:issue:`225`) +* TIFFSetValue(): Writing IFD8 & LONG8 tags to ClassicTIFF corrected + (:issue:`442`) +* tif_jpeg.c: allow to pass -DEXPECTED_JPEG_LIB_VERSION=number to do optional + compile-time version check +* TIFFReadFromUserBuffer(): fix clearing of TIFF_CODERSETUP flag that could + cause issues with reading JPEG compressed files +* _TIFFCheckFieldIsValidForCodec(): return FALSE when passed a codec-specific + tag and the codec is not configured (:issue:`433`) +* Add basic 16 bit cielab support. +* WEBP codec: avoid temporary buffer and memcpy() on whole tile/strip decoding +* tif_predict.c: make horAcc8() work with icc (ICC) 2021.6.0 20220226 -O2 + +Tools changes +------------- + +New/improved functionality: + +* :program:`tiffinfo`: Updated to parse through SubIFDs and show their tags. + +Bug fixes: + +* :program:`tiffcrop`: add check if (bps != 1) in writeSingleSection() + (:issue:`169`) +* :program:`tiffcrop`: Fix too many 'mode' options on command line + (:issue:`470` and :issue:`450`) +* :program:`tiffcrop`: Fix memory allocation to require a larger buffer + (:issue:`271`, :issue:`381`, :issue:`386`, :issue:`388`, :issue:`389`, + :issue:`435`) +* :program:`tiffcrop`: disable incompatibility of -Z, -X, -Y, -z options with + any PAGE_MODE_x option (:issue:`411`, :issue:`413`) +* :program:`tiffcrop`: -S option mutually exclusive (:issue:`349`, + :issue:`414`, :issue:`422`, :issue:`423`, :issue:`424`) +* :program:`tiffcrop`: fix floating-point exception (:issue:`415`, + :issue:`427`, :issue:`428`) +* :program:`tiff2pdf`: Don't try to seek into stdout (:issue:`441`) + +Contributed software changes +---------------------------- + +None diff --git a/libtiff/tiffvers.h b/libtiff/tiffvers.h index cbeec2c9..ad21a413 100644 --- a/libtiff/tiffvers.h +++ b/libtiff/tiffvers.h @@ -1,5 +1,5 @@ #define TIFFLIB_VERSION_STR \ - "LIBTIFF, Version 4.4.0\nCopyright (c) 1988-1996 Sam Leffler\nCopyright " \ + "LIBTIFF, Version 4.5.0\nCopyright (c) 1988-1996 Sam Leffler\nCopyright " \ "(c) 1991-1996 Silicon Graphics, Inc." /* * This define can be used in code that requires @@ -8,4 +8,4 @@ * version checking should be done based on the * string returned by TIFFGetVersion. */ -#define TIFFLIB_VERSION 20220520 +#define TIFFLIB_VERSION 20221209 |