[packages/ImageMagick/ImageMagick-6] Up to 6.9.13-59; fix FPX writer build; autotrace off by default (libautotrace links MagickCore-7); r

arekm arekm at pld-linux.org
Thu Oct 15 21:51:08 CEST 2026


commit 086e08372cc01fc7491c8d9a99d36bad3eb7ad6f
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Thu Oct 15 21:50:21 2026 +0200

    Up to 6.9.13-59; fix FPX writer build; autotrace off by default (libautotrace links MagickCore-7); run tests
    
    fixes CVE-2025-55154, CVE-2026-34238 (32-bit), CVE-2026-106565, CVE-2026-106567, CVE-2026-106568

 ImageMagick-fpx-throw.patch | 90 +++++++++++++++++++++++++++++++++++++++++++++
 ImageMagick.spec            | 20 +++++++---
 2 files changed, 105 insertions(+), 5 deletions(-)
---
diff --git a/ImageMagick.spec b/ImageMagick.spec
index 6abd1ad..7331a7e 100644
--- a/ImageMagick.spec
+++ b/ImageMagick.spec
@@ -4,6 +4,7 @@
 #   https://www.imagemagick.org/discourse-server/viewtopic.php?f=4&t=26801
 #
 # Conditional build:
+%bcond_without	tests		# test suite
 # - features:
 %bcond_without	cxx		# Magick++ library
 %bcond_without	opencl		# OpenCL computing support
@@ -19,11 +20,12 @@
 %bcond_without	openjpeg	# JPEG2000 module (which uses openjpeg 2 library)
 %bcond_without	wmf		# WMF module (which uses libwmf library)
 # - module features:
-%bcond_without	autotrace	# Autotrace support in SVG module
+# libautotrace links libMagickCore-7, whose unversioned symbols interpose with MagickCore-6 in one process
+%bcond_with	autotrace	# no Autotrace support in SVG module
 
 %define		origname	ImageMagick
 %define		ver	6.9.13
-%define		pver	56
+%define		pver	59
 Summary:	Image display, conversion, and manipulation under X
 Summary(de.UTF-8):	Darstellen, Konvertieren und Bearbeiten von Grafiken unter X
 Summary(es.UTF-8):	Exhibidor, convertidor y manipulador de imágenes bajo X
@@ -35,12 +37,12 @@ Summary(tr.UTF-8):	X altında resim gösterme, çevirme ve değişiklik yapma
 Summary(uk.UTF-8):	Перегляд, конвертування та обробка зображень під X Window
 Name:		ImageMagick6
 Version:	%{ver}%{?pver:.%{pver}}
-Release:	2
+Release:	1
 Epoch:		1
 License:	Apache-like
 Group:		X11/Applications/Graphics
 Source0:	https://download.imagemagick.org/archive/releases/%{origname}-%{ver}-%{pver}.tar.lz
-# Source0-md5:	3a6aa7bcc5853bcfd640aa689b2fc27a
+# Source0-md5:	969d2d242a963e04fada8fcda338c847
 Patch1:		%{origname}-link.patch
 Patch2:		%{origname}-libpath.patch
 Patch3:		%{origname}-ldflags.patch
@@ -48,9 +50,10 @@ Patch4:		%{origname}-lt.patch
 
 Patch6:		magick6.patch
 Patch7:		%{origname}-OpenCL.patch
+Patch8:		%{origname}-fpx-throw.patch
 URL:		https://legacy.imagemagick.org/
 %{?with_opencl:BuildRequires:	OpenCL-devel}
-BuildRequires:	OpenEXR-devel >= 1.0.6
+%{?with_exr:BuildRequires:	OpenEXR-devel >= 1.0.6}
 BuildRequires:	autoconf >= 2.69
 BuildRequires:	automake >= 1:1.12
 %{?with_autotrace:BuildRequires:	autotrace-devel >= 0.31.2}
@@ -720,6 +723,7 @@ Moduł kodera dla plików WMF.
 %patch -P4 -p1
 %patch -P6 -p1
 %patch -P7 -p1
+%patch -P8 -p1
 
 find -type f | xargs grep -l '/usr/local/bin/perl' | xargs %{__sed} -i -e 's=!/usr/local/bin/perl=!%{__perl}='
 
@@ -747,9 +751,11 @@ touch www/Magick++/NEWS.html www/Magick++/ChangeLog.html
 	--with-dps=no \
 	--with-fftw \
 	--with-fpx%{!?with_fpx:=no} \
+	--with-flif \
 	--with-gs-font-dir=%{_fontsdir}/Type1 \
 	--with-gslib%{!?with_gs:=no} \
 	--with-gvc%{!?with_graphviz:=no} \
+	--with-heic \
 	--with-magick_plus_plus%{!?with_cxx:=no} \
 	--with-openexr%{!?with_exr:=no} \
 	--with-openjp2%{!?with_openjpeg:=no} \
@@ -766,6 +772,8 @@ touch www/Magick++/NEWS.html www/Magick++/ChangeLog.html
 %{__make} -j1
 %{__sed} -i -e 's,/%{origname}-%{ver}/,/%{name}-doc-%{version}/,' utilities/*.1
 
+%{?with_tests:%{__make} LOG_COMPILER="%__bash" check}
+
 %install
 rm -rf $RPM_BUILD_ROOT
 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-perl-%{version}
@@ -1083,11 +1091,13 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{modulesdir}/coders/dng.so
 %{modulesdir}/coders/dng.la
 
+%if %{with graphviz}
 %files coder-dot
 %defattr(644,root,root,755)
 # R: graphviz, gd
 %attr(755,root,root) %{modulesdir}/coders/dot.so
 %{modulesdir}/coders/dot.la
+%endif
 
 %if %{with exr}
 %files coder-exr
diff --git a/ImageMagick-fpx-throw.patch b/ImageMagick-fpx-throw.patch
new file mode 100644
index 0000000..285348b
--- /dev/null
+++ b/ImageMagick-fpx-throw.patch
@@ -0,0 +1,90 @@
+# ImageMagick6 f4454af87ec1 calls an undefined ThrowFPXrException; the macro it defines is ThrowFPXException
+--- ImageMagick-6.9.13-59/coders/fpx.c.orig
++++ ImageMagick-6.9.13-59/coders/fpx.c
+@@ -886,7 +886,7 @@
+   memory_limit=20000000;
+   fpx_status=FPX_SetToolkitMemoryLimit(&memory_limit);
+   if (fpx_status != FPX_OK)
+-    ThrowFPXrException(DelegateError,"UnableToInitializeFPXLibrary");
++    ThrowFPXException(DelegateError,"UnableToInitializeFPXLibrary");
+   tile_width=64;
+   tile_height=64;
+   colorspace.numberOfComponents=3;
+@@ -930,7 +930,7 @@
+       fpx_status=FPX_SetJPEGCompression(flashpix,(unsigned short)
+         image->quality == UndefinedCompressionQuality ? 75 : image->quality);
+       if (fpx_status != FPX_OK)
+-        ThrowFPXrException(DelegateError,"UnableToSetJPEGLevel");
++        ThrowFPXException(DelegateError,"UnableToSetJPEGLevel");
+     }
+   /*
+     Set image summary info.
+@@ -952,7 +952,7 @@
+         summary_info.title.ptr=(unsigned char *) AcquireQuantumMemory(
+           length+MaxTextExtent,sizeof(*summary_info.title.ptr));
+       if (summary_info.title.ptr == (unsigned char *) NULL)
+-        ThrowFPXrException(DelegateError,"UnableToSetImageTitle");
++        ThrowFPXException(DelegateError,"UnableToSetImageTitle");
+       (void) CopyMagickString((char *) summary_info.title.ptr,label,
+         MaxTextExtent);
+     }
+@@ -968,13 +968,13 @@
+     }
+   fpx_status=FPX_SetSummaryInformation(flashpix,&summary_info);
+   if (fpx_status != FPX_OK)
+-    ThrowFPXrException(DelegateError,"UnableToSetSummaryInfo");
++    ThrowFPXException(DelegateError,"UnableToSetSummaryInfo");
+   /*
+     Initialize FlashPix image description.
+   */
+   quantum_info=AcquireQuantumInfo(image_info,image);
+   if (quantum_info == (QuantumInfo *) NULL)
+-    ThrowFPXrException(ResourceLimitError,"MemoryAllocationFailed");
++    ThrowFPXException(ResourceLimitError,"MemoryAllocationFailed");
+   pixels=GetQuantumPixels(quantum_info);
+   fpx_info.numberOfComponents=(unsigned int) colorspace.numberOfComponents;
+   for (i=0; i < (ssize_t) fpx_info.numberOfComponents; i++)
+@@ -1113,37 +1113,37 @@
+         {
+           fpx_status=FPX_SetImageAffineMatrix(flashpix,&affine);
+           if (fpx_status != FPX_OK)
+-            ThrowFPXrException(DelegateError,"UnableToSetAffineMatrix");
++            ThrowFPXException(DelegateError,"UnableToSetAffineMatrix");
+         }
+       if (aspect_ratio_valid != MagickFalse)
+         {
+           fpx_status=FPX_SetImageResultAspectRatio(flashpix,&aspect_ratio);
+           if (fpx_status != FPX_OK)
+-            ThrowFPXrException(DelegateError,"UnableToSetAspectRatio");
++            ThrowFPXException(DelegateError,"UnableToSetAspectRatio");
+         }
+       if (color_twist_valid != MagickFalse)
+         {
+           fpx_status=FPX_SetImageColorTwistMatrix(flashpix,&color_twist);
+           if (fpx_status != FPX_OK)
+-            ThrowFPXrException(DelegateError,"UnableToSetColorTwist");
++            ThrowFPXException(DelegateError,"UnableToSetColorTwist");
+         }
+       if (contrast_valid != MagickFalse)
+         {
+           fpx_status=FPX_SetImageContrastAdjustment(flashpix,&contrast);
+           if (fpx_status != FPX_OK)
+-            ThrowFPXrException(DelegateError,"UnableToSetContrast");
++            ThrowFPXException(DelegateError,"UnableToSetContrast");
+         }
+       if (sharpen_valid != MagickFalse)
+         {
+           fpx_status=FPX_SetImageFilteringValue(flashpix,&sharpen);
+           if (fpx_status != FPX_OK)
+-            ThrowFPXrException(DelegateError,"UnableToSetFilteringValue");
++            ThrowFPXException(DelegateError,"UnableToSetFilteringValue");
+         }
+       if (view_rect_valid != MagickFalse)
+         {
+           fpx_status=FPX_SetImageROI(flashpix,&view_rect);
+           if (fpx_status != FPX_OK)
+-            ThrowFPXrException(DelegateError,"UnableToSetRegionOfInterest");
++            ThrowFPXException(DelegateError,"UnableToSetRegionOfInterest");
+         }
+     }
+   (void) FPX_CloseImage(flashpix);
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/ImageMagick.git/commitdiff/086e08372cc01fc7491c8d9a99d36bad3eb7ad6f



More information about the pld-cvs-commit mailing list