GraphicsMagick: 4 new changesets
GraphicsMagick Commits <[email protected]>
| Newsgroups | gmane.comp.video.graphicsmagick.cvs |
|---|---|
| Message-ID | <mailman.5932.1647990026.1506.graphicsmagick-commit@lists.sourceforge.net> |
changeset 9b4701a3ca9d in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=9b4701a3ca9d summary: Added Tobias Mark to the list of authors changeset 475e90f262a2 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=475e90f262a2 summary: Added MinGW64 libheif to list of available packages. changeset 5360b2cced34 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=5360b2cced34 summary: Updated the NEWS changeset 07c1e6eeffb8 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=07c1e6eeffb8 summary: JXL: Optimize EOF handling if file size is known diffstat: ChangeLog | 6 +++ NEWS.txt | 63 +++++++++++++++++++++++++++------ VisualMagick/installer/inc/version.isx | 4 +- coders/jxl.c | 17 ++++++++- magick/version.h | 4 +- www/Changelog.html | 5 ++ www/INSTALL-unix.html | 22 +++++----- www/INSTALL-unix.rst | 22 +++++----- www/NEWS.html | 50 ++++++++++++++++++++------ www/authors.html | 2 + www/authors.rst | 3 + 11 files changed, 147 insertions(+), 51 deletions(-) diffs (383 lines): diff -r ad47a349ee9e -r 07c1e6eeffb8 ChangeLog --- a/ChangeLog Sun Mar 20 18:56:29 2022 -0500 +++ b/ChangeLog Tue Mar 22 18:00:04 2022 -0500 @@ -1,3 +1,9 @@ +2022-03-22 Bob Friesenhahn <[email protected]> + + * coders/jxl.c (ReadJXLImage): Added patch from Tobias Mark to + optimize EOF detection if the input file size is known. Avoids + waiting for ReadBlob() to report EOF. + 2022-03-20 Bob Friesenhahn <[email protected]> * Magick++/lib/Magick++/Include.h: Support 'ReadResource'. diff -r ad47a349ee9e -r 07c1e6eeffb8 NEWS.txt --- a/NEWS.txt Sun Mar 20 18:56:29 2022 -0500 +++ b/NEWS.txt Tue Mar 22 18:00:04 2022 -0500 @@ -6,7 +6,7 @@ GraphicsMagick News =================== -This file was last updated to reflect changes up to December 12, 2021 +This file was last updated to reflect changes up to March 22, 2022 Please note that this file records news for the associated development branch and that each development branch has its own NEWS file. See the @@ -56,29 +56,66 @@ Bug fixes: -* None +* Fixed portability issue related to 'sed' which broke + utilities/tests/convert.tap test script. + +* WPG: Fix incorrect TrX and TrY elements in CTM. + +* JNG: Fixes to error handling to avoid temporary file leaks and + avoiding returning a broken image. + +* JPEG: Always store embedded profiles in image, even if in 'ping' mode. + +* MAT: Change from using 'int' for sizes/offsets to using 'size_t' and + check all related calculations for overload. + +* PICT: Fixed a heap overflow. + +* MogrifyImage() and Magick::Image::trim(): Trim requires NorthWestGravity. + +* PerlMagick: Fix issue that image fill attribute had its opacity + reset to transparent so it could not be usefully set at image scope. + +* Documentation generator scripts in 'doc' directory now produce + similar results using GNU sed and Solaris/Illumos sed and don't + produce warnings. New Features: -* Added support for a 'Read' resource limit. This allows the user to - specify a hard limit for how much data may be read from a file, read - from a pipe, or decompressed from a file (e.g gzip or bzip2) before - a hard error is reported. This resource limit is a useful - alternative to completely disabling support for compressed files - using the --disable-compressed-files option and it provides more - protections as well. +* Added support for a 'Read' resource limit (e.g. '-limit read 5mb'). + This allows the user to specify a hard limit for how much data may + be read from a file, read from a pipe, or decompressed from a file + (e.g gzip or bzip2) before a hard error is reported. This resource + limit is a useful alternative to completely disabling support for + compressed files using the --disable-compressed-files option and it + provides more protections as well. * Added support for reading HEIF/HEIC format. * Added support for reading and writing JPEG XL format. +* Support for JasPer 3.0.0 is completed. + +* PNG: Support the define png:chunk-malloc-max=limit in order to allow + reading PNG files which report "chunk data is too large" or to + reduce the default limit. + +* compare: Added support for the '-compress' option. + +* compare: Added support for the '-auto-orient' option. This tries to + assure that the two images are right-side up before comparing. + API Updates: -* None +* Magick++: Support the new 'ReadResource' enumeration. Feature improvements: -* None +* JPEG: Implement more efficient way to append JPEG profile chunks. + +* Resource Limited Memory: The resource limited memory allocator now + maintains useful statistics such as a tally of the total number of + octets moved by realloc. Windows Delegate Updates/Additions: @@ -86,7 +123,9 @@ Build Changes: -* None +* In maintainer mode, the configure script searches for a GnuPG 'gpg' + program to use for signing snapshot releases and uses this to + support PGP-signed development snapshots. Behavior Changes: diff -r ad47a349ee9e -r 07c1e6eeffb8 VisualMagick/installer/inc/version.isx --- a/VisualMagick/installer/inc/version.isx Sun Mar 20 18:56:29 2022 -0500 +++ b/VisualMagick/installer/inc/version.isx Tue Mar 22 18:00:04 2022 -0500 @@ -10,5 +10,5 @@ #define public MagickPackageName "GraphicsMagick" #define public MagickPackageVersion "1.4" -#define public MagickPackageVersionAddendum ".020220320" -#define public MagickPackageReleaseDate "snapshot-20220320" +#define public MagickPackageVersionAddendum ".020220322" +#define public MagickPackageReleaseDate "snapshot-20220322" diff -r ad47a349ee9e -r 07c1e6eeffb8 coders/jxl.c --- a/coders/jxl.c Sun Mar 20 18:56:29 2022 -0500 +++ b/coders/jxl.c Tue Mar 22 18:00:04 2022 -0500 @@ -432,6 +432,9 @@ MagickBool isLinear = MagickFalse; + magick_off_t + blob_len = 0; + assert(image_info != (const ImageInfo *) NULL); assert(image_info->signature == MagickSignature); assert(exception != (ExceptionInfo *) NULL); @@ -472,7 +475,9 @@ if (JxlDecoderSubscribeEvents(jxl, (JxlDecoderStatus)(image_info->ping == MagickTrue ? JXL_DEC_BASIC_INFO - : JXL_DEC_BASIC_INFO | JXL_DEC_FULL_IMAGE | JXL_DEC_COLOR_ENCODING) + : JXL_DEC_BASIC_INFO | + JXL_DEC_FULL_IMAGE | + JXL_DEC_COLOR_ENCODING) ) != JXL_DEC_SUCCESS) ThrowJXLReaderException(ResourceLimitError,MemoryAllocationFailed,image); @@ -480,6 +485,8 @@ if (in_buf == (unsigned char *) NULL) ThrowJXLReaderException(ResourceLimitError,MemoryAllocationFailed,image); + blob_len = GetBlobSize(image); + status=JXL_DEC_NEED_MORE_INPUT; while (status != JXL_DEC_ERROR && status != JXL_DEC_SUCCESS) { @@ -497,6 +504,14 @@ if (count == 0) ThrowJXLReaderException(CorruptImageError, UnexpectedEndOfFile, image); status = JxlDecoderSetInput(jxl,(const uint8_t *) in_buf, (size_t) count); + if (blob_len > 0) + { + /* If file size is known pass the info about the last block, + to the decoder. Note that the call is currently optional */ + blob_len -= count; + if (blob_len == 0) + JxlDecoderCloseInput(jxl); + } break; } case JXL_DEC_BASIC_INFO: diff -r ad47a349ee9e -r 07c1e6eeffb8 magick/version.h --- a/magick/version.h Sun Mar 20 18:56:29 2022 -0500 +++ b/magick/version.h Tue Mar 22 18:00:04 2022 -0500 @@ -38,8 +38,8 @@ #define MagickLibVersion 0x262300 #define MagickLibVersionText "1.4" #define MagickLibVersionNumber 26,23,0 -#define MagickChangeDate "20220320" -#define MagickReleaseDate "snapshot-20220320" +#define MagickChangeDate "20220322" +#define MagickReleaseDate "snapshot-20220322" /* The MagickLibInterfaceNewest and MagickLibInterfaceOldest defines diff -r ad47a349ee9e -r 07c1e6eeffb8 www/Changelog.html --- a/www/Changelog.html Sun Mar 20 18:56:29 2022 -0500 +++ b/www/Changelog.html Tue Mar 22 18:00:04 2022 -0500 @@ -35,6 +35,11 @@ <div class="document"> +<p>2022-03-22 Bob Friesenhahn <<a class="reference external" href="mailto:bfriesen%40simple.dallas.tx.us">bfriesen<span>@</span>simple<span>.</span>dallas<span>.</span>tx<span>.</span>us</a>></p> +<blockquote> +* coders/jxl.c (ReadJXLImage): Added patch from Tobias Mark to +optimize EOF detection if the input file size is known. Avoids +waiting for ReadBlob() to report EOF.</blockquote> <p>2022-03-20 Bob Friesenhahn <<a class="reference external" href="mailto:bfriesen%40simple.dallas.tx.us">bfriesen<span>@</span>simple<span>.</span>dallas<span>.</span>tx<span>.</span>us</a>></p> <blockquote> * Magick++/lib/Magick++/Include.h: Support 'ReadResource'.</blockquote> diff -r ad47a349ee9e -r 07c1e6eeffb8 www/INSTALL-unix.html --- a/www/INSTALL-unix.html Sun Mar 20 18:56:29 2022 -0500 +++ b/www/INSTALL-unix.html Tue Mar 22 18:00:04 2022 -0500 @@ -994,20 +994,20 @@ <p>mingw-w64-x86_64-toolchain, mingw-w64-x86_64-bzip2, mingw-w64-x86_64-freetype, mingw-w64-x86_64-ghostscript, mingw-w64-x86_64-jasper, mingw-w64-x86_64-jbigkit, -mingw-w64-x86_64-lcms2, mingw-w64-x86_64-libjpeg-turbo, -mingw-w64-x86_64-libpng, mingw-w64-x86_64-libtiff, -mingw-w64-x86_64-libtool, mingw-w64-x86_64-libwebp, -mingw-w64-x86_64-libwmf, mingw-w64-x86_64-libxml2, -mingw-w64-x86_64-zlib</p> +mingw-w64-x86_64-lcms2, mingw-w64-x86_64-libheif, +mingw-w64-x86_64-libjpeg-turbo, mingw-w64-x86_64-libpng, +mingw-w64-x86_64-libtiff, mingw-w64-x86_64-libtool, +mingw-w64-x86_64-libwebp, mingw-w64-x86_64-libwmf, +mingw-w64-x86_64-libxml2, mingw-w64-x86_64-zlib</p> <p>and/or use the following to add support for a 32-bit build:</p> <p>mingw-w64-i686-toolchain, mingw-w64-i686-bzip2, mingw-w64-i686-freetype, mingw-w64-i686-ghostscript, -mingw-w64-i686-jasper, mingw-w64-i686-jbigkit, -mingw-w64-i686-lcms2, mingw-w64-i686-libjpeg-turbo, -mingw-w64-i686-libpng, mingw-w64-i686-libtiff, -mingw-w64-i686-libtool, mingw-w64-i686-libwebp, -mingw-w64-i686-libwmf, mingw-w64-i686-libxml2, -mingw-w64-i686-zlib</p> +mingw-w64-i686-jasper, mingw-w64-i686-libheif, +mingw-w64-i686-jbigkit, mingw-w64-i686-lcms2, +mingw-w64-i686-libjpeg-turbo, mingw-w64-i686-libpng, +mingw-w64-i686-libtiff, mingw-w64-i686-libtool, +mingw-w64-i686-libwebp, mingw-w64-i686-libwmf, +mingw-w64-i686-libxml2, mingw-w64-i686-zlib</p> <p>GraphicsMagick may also be built using the free MinGW ("Minimalistic GNU for Windows") package, available from</p> <blockquote> diff -r ad47a349ee9e -r 07c1e6eeffb8 www/INSTALL-unix.rst --- a/www/INSTALL-unix.rst Sun Mar 20 18:56:29 2022 -0500 +++ b/www/INSTALL-unix.rst Tue Mar 22 18:00:04 2022 -0500 @@ -912,22 +912,22 @@ mingw-w64-x86_64-toolchain, mingw-w64-x86_64-bzip2, mingw-w64-x86_64-freetype, mingw-w64-x86_64-ghostscript, mingw-w64-x86_64-jasper, mingw-w64-x86_64-jbigkit, -mingw-w64-x86_64-lcms2, mingw-w64-x86_64-libjpeg-turbo, -mingw-w64-x86_64-libpng, mingw-w64-x86_64-libtiff, -mingw-w64-x86_64-libtool, mingw-w64-x86_64-libwebp, -mingw-w64-x86_64-libwmf, mingw-w64-x86_64-libxml2, -mingw-w64-x86_64-zlib +mingw-w64-x86_64-lcms2, mingw-w64-x86_64-libheif, +mingw-w64-x86_64-libjpeg-turbo, mingw-w64-x86_64-libpng, +mingw-w64-x86_64-libtiff, mingw-w64-x86_64-libtool, +mingw-w64-x86_64-libwebp, mingw-w64-x86_64-libwmf, +mingw-w64-x86_64-libxml2, mingw-w64-x86_64-zlib and/or use the following to add support for a 32-bit build: mingw-w64-i686-toolchain, mingw-w64-i686-bzip2, mingw-w64-i686-freetype, mingw-w64-i686-ghostscript, -mingw-w64-i686-jasper, mingw-w64-i686-jbigkit, -mingw-w64-i686-lcms2, mingw-w64-i686-libjpeg-turbo, -mingw-w64-i686-libpng, mingw-w64-i686-libtiff, -mingw-w64-i686-libtool, mingw-w64-i686-libwebp, -mingw-w64-i686-libwmf, mingw-w64-i686-libxml2, -mingw-w64-i686-zlib +mingw-w64-i686-jasper, mingw-w64-i686-libheif, +mingw-w64-i686-jbigkit, mingw-w64-i686-lcms2, +mingw-w64-i686-libjpeg-turbo, mingw-w64-i686-libpng, +mingw-w64-i686-libtiff, mingw-w64-i686-libtool, +mingw-w64-i686-libwebp, mingw-w64-i686-libwmf, +mingw-w64-i686-libxml2, mingw-w64-i686-zlib GraphicsMagick may also be built using the free MinGW ("Minimalistic GNU for Windows") package, available from diff -r ad47a349ee9e -r 07c1e6eeffb8 www/NEWS.html --- a/www/NEWS.html Sun Mar 20 18:56:29 2022 -0500 +++ b/www/NEWS.html Tue Mar 22 18:00:04 2022 -0500 @@ -38,7 +38,7 @@ <!-- -*- mode: rst -*- --> <!-- This text is in reStucturedText format, so it may look a bit odd. --> <!-- See http://docutils.sourceforge.net/rst.html for details. --> -<p>This file was last updated to reflect changes up to December 12, 2021</p> +<p>This file was last updated to reflect changes up to March 22, 2022</p> <p>Please note that this file records news for the associated development branch and that each development branch has its own NEWS file. See the ChangeLog file, and/or the Mercurial changesets, for full details.</p> @@ -125,27 +125,51 @@ </ul> <p>Bug fixes:</p> <ul class="simple"> -<li>None</li> +<li>Fixed portability issue related to 'sed' which broke +utilities/tests/convert.tap test script.</li> +<li>WPG: Fix incorrect TrX and TrY elements in CTM.</li> +<li>JNG: Fixes to error handling to avoid temporary file leaks and +avoiding returning a broken image.</li> +<li>JPEG: Always store embedded profiles in image, even if in 'ping' mode.</li> +<li>MAT: Change from using 'int' for sizes/offsets to using 'size_t' and +check all related calculations for overload.</li> +<li>PICT: Fixed a heap overflow.</li> +<li>MogrifyImage() and Magick::Image::trim(): Trim requires NorthWestGravity.</li> +<li>PerlMagick: Fix issue that image fill attribute had its opacity +reset to transparent so it could not be usefully set at image scope.</li> +<li>Documentation generator scripts in 'doc' directory now produce +similar results using GNU sed and Solaris/Illumos sed and don't +produce warnings.</li> </ul> <p>New Features:</p> <ul class="simple"> -<li>Added support for a 'Read' resource limit. This allows the user to -specify a hard limit for how much data may be read from a file, read -from a pipe, or decompressed from a file (e.g gzip or bzip2) before -a hard error is reported. This resource limit is a useful -alternative to completely disabling support for compressed files -using the --disable-compressed-files option and it provides more -protections as well.</li> +<li>Added support for a 'Read' resource limit (e.g. '-limit read 5mb'). +This allows the user to specify a hard limit for how much data may +be read from a file, read from a pipe, or decompressed from a file +(e.g gzip or bzip2) before a hard error is reported. This resource +limit is a useful alternative to completely disabling support for +compressed files using the --disable-compressed-files option and it +provides more protections as well.</li> <li>Added support for reading HEIF/HEIC format.</li> <li>Added support for reading and writing JPEG XL format.</li> +<li>Support for JasPer 3.0.0 is completed.</li> +<li>PNG: Support the define png:chunk-malloc-max=limit in order to allow +reading PNG files which report "chunk data is too large" or to +reduce the default limit.</li> +<li>compare: Added support for the '-compress' option.</li> +<li>compare: Added support for the '-auto-orient' option. This tries to +assure that the two images are right-side up before comparing.</li> </ul> <p>API Updates:</p> <ul class="simple"> -<li>None</li> +<li>Magick++: Support the new 'ReadResource' enumeration.</li> </ul> <p>Feature improvements:</p> <ul class="simple"> -<li>None</li> +<li>JPEG: Implement more efficient way to append JPEG profile chunks.</li> +<li>Resource Limited Memory: The resource limited memory allocator now +maintains useful statistics such as a tally of the total number of +octets moved by realloc.</li> </ul> <p>Windows Delegate Updates/Additions:</p> <ul class="simple"> @@ -153,7 +177,9 @@ </ul> <p>Build Changes:</p> <ul class="simple"> -<li>None</li> +<li>In maintainer mode, the configure script searches for a GnuPG 'gpg' +program to use for signing snapshot releases and uses this to +support PGP-signed development snapshots.</li> </ul> <p>Behavior Changes:</p> <ul class="simple"> diff -r ad47a349ee9e -r 07c1e6eeffb8 www/authors.html --- a/www/authors.html Sun Mar 20 18:56:29 2022 -0500 +++ b/www/authors.html Tue Mar 22 18:00:04 2022 -0500 @@ -66,6 +66,8 @@ modules. VisualMagick 'configure' improvements and build testing/fixes for many versions of Microsoft Visual Studio.</dd> +<dt>Tobias Mark</dt> +<dd>Authored the HEIF and JPEG XL coder modules.</dd> </dl> </div> <div class="section" id="former-graphicsmagick-contributors"> diff -r ad47a349ee9e -r 07c1e6eeffb8 www/authors.rst --- a/www/authors.rst Sun Mar 20 18:56:29 2022 -0500 +++ b/www/authors.rst Tue Mar 22 18:00:04 2022 -0500 @@ -34,6 +34,9 @@ build testing/fixes for many versions of Microsoft Visual Studio. +Tobias Mark + Authored the HEIF and JPEG XL coder modules. + Former GraphicsMagick Contributors ==================================