summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile4
-rw-r--r--PHPINFO-im610
-rw-r--r--PHPINFO-im710
-rw-r--r--REFLECTION-im631
-rw-r--r--REFLECTION-im736
-rw-r--r--imagick-tests.patch94
-rw-r--r--php-pecl-imagick.spec99
7 files changed, 217 insertions, 67 deletions
diff --git a/Makefile b/Makefile
index 72a5957..984c849 100644
--- a/Makefile
+++ b/Makefile
@@ -5,6 +5,6 @@ include ../../../common/Makefile
refl: $(NAME).spec
php --re imagick >REFLECTION-im7
php --ri imagick >PHPINFO-im7
- php80 --re imagick >REFLECTION-im6
- php80 --ri imagick >PHPINFO-im6
+ php82 --re imagick >REFLECTION-im6
+ php82 --ri imagick >PHPINFO-im6
diff --git a/PHPINFO-im6 b/PHPINFO-im6
index 98090e5..fe1d92f 100644
--- a/PHPINFO-im6
+++ b/PHPINFO-im6
@@ -4,12 +4,12 @@ imagick
imagick module => enabled
imagick module version => 3.7.0
imagick classes => Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator, ImagickKernel
-Imagick compiled with ImageMagick version => ImageMagick 6.9.12-63 Q16 x86_64 17457 https://legacy.imagemagick.org
-Imagick using ImageMagick library version => ImageMagick 6.9.12-63 Q16 x86_64 17457 https://legacy.imagemagick.org
+Imagick compiled with ImageMagick version => ImageMagick 6.9.13-9 (Beta) Q16 x86_64 18359 https://legacy.imagemagick.org
+Imagick using ImageMagick library version => ImageMagick 6.9.13-9 (Beta) Q16 x86_64 18359 https://legacy.imagemagick.org
ImageMagick copyright => (C) 1999 ImageMagick Studio LLC
-ImageMagick release date => 2022-09-11
-ImageMagick number of supported formats: => 248
-ImageMagick supported formats => 3FR, 3G2, 3GP, AAI, AI, APNG, ART, ARW, AVI, AVIF, AVS, BGR, BGRA, BGRO, BIE, BMP, BMP2, BMP3, BRF, CAL, CALS, CANVAS, CAPTION, CIN, CIP, CLIP, CMYK, CMYKA, CR2, CR3, CRW, CUR, CUT, DATA, DCM, DCR, DCX, DDS, DFONT, DJVU, DNG, DOT, DPX, DXT1, DXT5, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EPT2, EPT3, ERF, EXR, FAX, FILE, FITS, FRACTAL, FTP, FTS, G3, G4, GIF, GIF87, GRADIENT, GRAY, GRAYA, GROUP4, GV, H, HALD, HDR, HEIC, HISTOGRAM, HRZ, HTM, HTML, HTTP, HTTPS, ICB, ICO, ICON, IIQ, INFO, INLINE, IPL, ISOBRL, ISOBRL6, J2C, J2K, JBG, JBIG, JNG, JNX, JP2, JPC, JPE, JPEG, JPG, JPM, JPS, JPT, JSON, K25, KDC, LABEL, M2V, M4V, MAC, MAGICK, MAP, MASK, MAT, MATTE, MEF, MIFF, MKV, MNG, MONO, MOV, MP4, MPC, MPEG, MPG, MRW, MSL, MSVG, MTV, MVG, NEF, NRW, NULL, ORF, OTB, OTF, PAL, PALM, PAM, PANGO, PATTERN, PBM, PCD, PCDS, PCL, PCT, PCX, PDB, PDF, PDFA, PEF, PES, PFA, PFB, PFM, PGM, PGX, PICON, PICT, PIX, PJPEG, PLASMA, PNG, PNG00, PNG24, PNG32, PNG48, PNG64, PNG8, PNM, POCKETMOD, PPM, PREVIEW, PS, PS2, PS3, PSB, PSD, PTIF, PWP, RADIAL-GRADIENT, RAF, RAS, RAW, RGB, RGBA, RGBO, RGF, RLA, RLE, RMF, RW2, SCR, SCT, SFW, SGI, SHTML, SIX, SIXEL, SPARSE-COLOR, SR2, SRF, STEGANO, SUN, SVG, SVGZ, TEXT, TGA, THUMBNAIL, TIFF, TIFF64, TILE, TIM, TTC, TTF, TXT, UBRL, UBRL6, UIL, UYVY, VDA, VICAR, VID, VIDEO, VIFF, VIPS, VST, WBMP, WEBM, WEBP, WMF, WMV, WMZ, WPG, X, X3F, XBM, XC, XCF, XPM, XPS, XV, XWD, YCbCr, YCbCrA, YUV
+ImageMagick release date => 2024-04-19
+ImageMagick number of supported formats: => 250
+ImageMagick supported formats => 3FR, 3G2, 3GP, AAI, AI, APNG, ART, ARW, AVI, AVIF, AVS, BGR, BGRA, BGRO, BIE, BMP, BMP2, BMP3, BRF, CAL, CALS, CANVAS, CAPTION, CIN, CIP, CLIP, CMYK, CMYKA, CR2, CR3, CRW, CUR, CUT, DATA, DCM, DCR, DCX, DDS, DFONT, DJVU, DNG, DOT, DPX, DXT1, DXT5, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EPT2, EPT3, ERF, EXR, FAX, FILE, FITS, FLV, FRACTAL, FTP, FTS, G3, G4, GIF, GIF87, GRADIENT, GRAY, GRAYA, GROUP4, GV, H, HALD, HDR, HEIC, HEIF, HISTOGRAM, HRZ, HTM, HTML, HTTP, HTTPS, ICB, ICO, ICON, IIQ, INFO, INLINE, IPL, ISOBRL, ISOBRL6, J2C, J2K, JBG, JBIG, JNG, JNX, JP2, JPC, JPE, JPEG, JPG, JPM, JPS, JPT, JSON, K25, KDC, LABEL, M2V, M4V, MAC, MAGICK, MAP, MASK, MAT, MATTE, MEF, MIFF, MKV, MNG, MONO, MOV, MP4, MPC, MPEG, MPG, MRW, MSL, MSVG, MTV, MVG, NEF, NRW, NULL, ORF, OTB, OTF, PAL, PALM, PAM, PANGO, PATTERN, PBM, PCD, PCDS, PCL, PCT, PCX, PDB, PDF, PDFA, PEF, PES, PFA, PFB, PFM, PGM, PGX, PICON, PICT, PIX, PJPEG, PLASMA, PNG, PNG00, PNG24, PNG32, PNG48, PNG64, PNG8, PNM, POCKETMOD, PPM, PREVIEW, PS, PS2, PS3, PSB, PSD, PTIF, PWP, RADIAL-GRADIENT, RAF, RAS, RAW, RGB, RGBA, RGBO, RGF, RLA, RLE, RMF, RW2, SCR, SCT, SFW, SGI, SHTML, SIX, SIXEL, SPARSE-COLOR, SR2, SRF, STEGANO, SUN, SVG, SVGZ, TEXT, TGA, THUMBNAIL, TIFF, TIFF64, TILE, TIM, TTC, TTF, TXT, UBRL, UBRL6, UIL, UYVY, VDA, VICAR, VID, VIDEO, VIFF, VIPS, VST, WBMP, WEBM, WEBP, WMF, WMV, WMZ, WPG, X, X3F, XBM, XC, XCF, XPM, XPS, XV, XWD, YCbCr, YCbCrA, YUV
Directive => Local Value => Master Value
imagick.locale_fix => 0 => 0
diff --git a/PHPINFO-im7 b/PHPINFO-im7
index adbcc63..86cfcdb 100644
--- a/PHPINFO-im7
+++ b/PHPINFO-im7
@@ -4,12 +4,12 @@ imagick
imagick module => enabled
imagick module version => 3.7.0
imagick classes => Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator, ImagickKernel
-Imagick compiled with ImageMagick version => ImageMagick 7.1.0-48 Q16-HDRI x86_64 20449 https://imagemagick.org
-Imagick using ImageMagick library version => ImageMagick 7.1.0-48 Q16-HDRI x86_64 20449 https://imagemagick.org
+Imagick compiled with ImageMagick version => ImageMagick 7.1.1-31 Q16-HDRI x86_64 22148 https://imagemagick.org
+Imagick using ImageMagick library version => ImageMagick 7.1.1-31 Q16-HDRI x86_64 22148 https://imagemagick.org
ImageMagick copyright => (C) 1999 ImageMagick Studio LLC
-ImageMagick release date => 2022-09-11
-ImageMagick number of supported formats: => 264
-ImageMagick supported formats => 3FR, 3G2, 3GP, AAI, AI, APNG, ART, ARW, ASHLAR, AVI, AVIF, AVS, BAYER, BAYERA, BGR, BGRA, BGRO, BIE, BMP, BMP2, BMP3, BRF, CAL, CALS, CANVAS, CAPTION, CIN, CIP, CLIP, CMYK, CMYKA, CR2, CR3, CRW, CUBE, CUR, CUT, DATA, DCM, DCR, DCRAW, DCX, DDS, DFONT, DJVU, DNG, DOT, DPX, DXT1, DXT5, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EPT2, EPT3, ERF, EXR, FARBFELD, FAX, FF, FILE, FITS, FL32, FLV, FRACTAL, FTP, FTS, FTXT, G3, G4, GIF, GIF87, GRADIENT, GRAY, GRAYA, GROUP4, GV, HALD, HDR, HEIC, HEIF, HISTOGRAM, HRZ, HTM, HTML, HTTP, HTTPS, ICB, ICO, ICON, IIQ, INFO, INLINE, IPL, ISOBRL, ISOBRL6, J2C, J2K, JBG, JBIG, JNG, JNX, JP2, JPC, JPE, JPEG, JPG, JPM, JPS, JPT, JSON, K25, KDC, KERNEL, LABEL, M2V, M4V, MAC, MAP, MASK, MAT, MATTE, MEF, MIFF, MKV, MNG, MONO, MOV, MP4, MPC, MPEG, MPG, MRW, MSL, MSVG, MTV, MVG, NEF, NRW, NULL, ORA, ORF, OTB, OTF, PAL, PALM, PAM, PANGO, PATTERN, PBM, PCD, PCDS, PCL, PCT, PCX, PDB, PDF, PDFA, PEF, PES, PFA, PFB, PFM, PGM, PGX, PHM, PICON, PICT, PIX, PJPEG, PLASMA, PNG, PNG00, PNG24, PNG32, PNG48, PNG64, PNG8, PNM, POCKETMOD, PPM, PS, PS2, PS3, PSB, PSD, PTIF, PWP, QOI, RADIAL-GRADIENT, RAF, RAS, RAW, RGB, RGB565, RGBA, RGBO, RGF, RLA, RLE, RMF, RSVG, RW2, SCR, SCT, SFW, SGI, SHTML, SIX, SIXEL, SPARSE-COLOR, SR2, SRF, STEGANO, STRIMG, SUN, SVG, SVGZ, TEXT, TGA, THUMBNAIL, TIFF, TIFF64, TILE, TIM, TM2, TTC, TTF, TXT, UBRL, UBRL6, UIL, UYVY, VDA, VICAR, VID, VIFF, VIPS, VST, WBMP, WEBM, WEBP, WMF, WMV, WMZ, WPG, X, X3F, XBM, XC, XCF, XPM, XPS, XV, XWD, YAML, YCbCr, YCbCrA, YUV
+ImageMagick release date => 2024-04-21
+ImageMagick number of supported formats: => 272
+ImageMagick supported formats => 3FR, 3G2, 3GP, AAI, AI, APNG, ART, ARW, ASHLAR, AVI, AVIF, AVS, BAYER, BAYERA, BGR, BGRA, BGRO, BIE, BMP, BMP2, BMP3, BRF, CAL, CALS, CANVAS, CAPTION, CIN, CIP, CLIP, CMYK, CMYKA, CR2, CR3, CRW, CUBE, CUR, CUT, DATA, DCM, DCR, DCRAW, DCX, DDS, DFONT, DJVU, DNG, DOT, DPX, DXT1, DXT5, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EPT2, EPT3, ERF, EXR, FARBFELD, FAX, FF, FFF, FILE, FITS, FL32, FLV, FRACTAL, FTP, FTS, FTXT, G3, G4, GIF, GIF87, GRADIENT, GRAY, GRAYA, GROUP4, GV, HALD, HDR, HEIC, HEIF, HISTOGRAM, HRZ, HTM, HTML, HTTP, HTTPS, ICB, ICO, ICON, IIQ, INFO, INLINE, IPL, ISOBRL, ISOBRL6, J2C, J2K, JBG, JBIG, JNG, JNX, JP2, JPC, JPE, JPEG, JPG, JPM, JPS, JPT, JSON, JXL, K25, KDC, KERNEL, LABEL, M2V, M4V, MAC, MAP, MASK, MAT, MATTE, MDC, MEF, MIFF, MKV, MNG, MONO, MOS, MOV, MP4, MPC, MPEG, MPG, MPO, MRW, MSL, MSVG, MTV, MVG, NEF, NRW, NULL, ORA, ORF, OTB, OTF, PAL, PALM, PAM, PANGO, PATTERN, PBM, PCD, PCDS, PCL, PCT, PCX, PDB, PDF, PDFA, PEF, PES, PFA, PFB, PFM, PGM, PGX, PHM, PICON, PICT, PIX, PJPEG, PLASMA, PNG, PNG00, PNG24, PNG32, PNG48, PNG64, PNG8, PNM, POCKETMOD, PPM, PS, PS2, PS3, PSB, PSD, PTIF, PWP, QOI, RADIAL-GRADIENT, RAF, RAS, RAW, RGB, RGB565, RGBA, RGBO, RGF, RLA, RLE, RMF, RSVG, RW2, RWL, SCR, SCT, SFW, SGI, SHTML, SIX, SIXEL, SPARSE-COLOR, SR2, SRF, SRW, STEGANO, STI, STRIMG, SUN, SVG, SVGZ, TEXT, TGA, THUMBNAIL, TIFF, TIFF64, TILE, TIM, TM2, TTC, TTF, TXT, UBRL, UBRL6, UIL, UYVY, VDA, VICAR, VID, VIFF, VIPS, VST, WBMP, WEBM, WEBP, WMF, WMV, WMZ, WPG, X, X3F, XBM, XC, XCF, XPM, XPS, XV, XWD, YAML, YCBCR, YCBCRA, YUV
Directive => Local Value => Master Value
imagick.locale_fix => 0 => 0
diff --git a/REFLECTION-im6 b/REFLECTION-im6
index 547f09b..14a9072 100644
--- a/REFLECTION-im6
+++ b/REFLECTION-im6
@@ -1,4 +1,4 @@
-Extension [ <persistent> extension #76 imagick version 3.7.0 ] {
+Extension [ <persistent> extension #53 imagick version 3.7.0 ] {
- Dependencies {
Dependency [ gmagick (Conflicts) ]
@@ -42,8 +42,8 @@ Extension [ <persistent> extension #76 imagick version 3.7.0 ] {
- Properties [4] {
Property [ protected $message = '' ]
Property [ protected $code = 0 ]
- Property [ protected $file = NULL ]
- Property [ protected $line = NULL ]
+ Property [ protected string $file = '' ]
+ Property [ protected int $line = 0 ]
}
- Methods [10] {
@@ -60,6 +60,7 @@ Extension [ <persistent> extension #76 imagick version 3.7.0 ] {
- Parameters [0] {
}
+ - Tentative return [ void ]
}
Method [ <internal:Core, inherits Exception, prototype Throwable> final public method getMessage ] {
@@ -133,8 +134,8 @@ Extension [ <persistent> extension #76 imagick version 3.7.0 ] {
- Properties [4] {
Property [ protected $message = '' ]
Property [ protected $code = 0 ]
- Property [ protected $file = NULL ]
- Property [ protected $line = NULL ]
+ Property [ protected string $file = '' ]
+ Property [ protected int $line = 0 ]
}
- Methods [10] {
@@ -151,6 +152,7 @@ Extension [ <persistent> extension #76 imagick version 3.7.0 ] {
- Parameters [0] {
}
+ - Tentative return [ void ]
}
Method [ <internal:Core, inherits Exception, prototype Throwable> final public method getMessage ] {
@@ -224,8 +226,8 @@ Extension [ <persistent> extension #76 imagick version 3.7.0 ] {
- Properties [4] {
Property [ protected $message = '' ]
Property [ protected $code = 0 ]
- Property [ protected $file = NULL ]
- Property [ protected $line = NULL ]
+ Property [ protected string $file = '' ]
+ Property [ protected int $line = 0 ]
}
- Methods [10] {
@@ -242,6 +244,7 @@ Extension [ <persistent> extension #76 imagick version 3.7.0 ] {
- Parameters [0] {
}
+ - Tentative return [ void ]
}
Method [ <internal:Core, inherits Exception, prototype Throwable> final public method getMessage ] {
@@ -315,8 +318,8 @@ Extension [ <persistent> extension #76 imagick version 3.7.0 ] {
- Properties [4] {
Property [ protected $message = '' ]
Property [ protected $code = 0 ]
- Property [ protected $file = NULL ]
- Property [ protected $line = NULL ]
+ Property [ protected string $file = '' ]
+ Property [ protected int $line = 0 ]
}
- Methods [10] {
@@ -333,6 +336,7 @@ Extension [ <persistent> extension #76 imagick version 3.7.0 ] {
- Parameters [0] {
}
+ - Tentative return [ void ]
}
Method [ <internal:Core, inherits Exception, prototype Throwable> final public method getMessage ] {
@@ -406,8 +410,8 @@ Extension [ <persistent> extension #76 imagick version 3.7.0 ] {
- Properties [4] {
Property [ protected $message = '' ]
Property [ protected $code = 0 ]
- Property [ protected $file = NULL ]
- Property [ protected $line = NULL ]
+ Property [ protected string $file = '' ]
+ Property [ protected int $line = 0 ]
}
- Methods [10] {
@@ -424,6 +428,7 @@ Extension [ <persistent> extension #76 imagick version 3.7.0 ] {
- Parameters [0] {
}
+ - Tentative return [ void ]
}
Method [ <internal:Core, inherits Exception, prototype Throwable> final public method getMessage ] {
@@ -4045,12 +4050,14 @@ Extension [ <persistent> extension #76 imagick version 3.7.0 ] {
- Parameters [0] {
}
+ - Tentative return [ void ]
}
Method [ <internal:imagick, prototype Iterator> public method rewind ] {
- Parameters [0] {
}
+ - Tentative return [ void ]
}
Method [ <internal:imagick, prototype Iterator> public method valid ] {
@@ -5451,12 +5458,14 @@ Extension [ <persistent> extension #76 imagick version 3.7.0 ] {
- Parameters [0] {
}
+ - Tentative return [ void ]
}
Method [ <internal:imagick, prototype Iterator> public method rewind ] {
- Parameters [0] {
}
+ - Tentative return [ void ]
}
Method [ <internal:imagick, prototype Iterator> public method current ] {
diff --git a/REFLECTION-im7 b/REFLECTION-im7
index c8cc631..7ffe37a 100644
--- a/REFLECTION-im7
+++ b/REFLECTION-im7
@@ -1,4 +1,4 @@
-Extension [ <persistent> extension #78 imagick version 3.7.0 ] {
+Extension [ <persistent> extension #77 imagick version 3.7.0 ] {
- Dependencies {
Dependency [ gmagick (Conflicts) ]
@@ -42,8 +42,8 @@ Extension [ <persistent> extension #78 imagick version 3.7.0 ] {
- Properties [4] {
Property [ protected $message = '' ]
Property [ protected $code = 0 ]
- Property [ protected $file = NULL ]
- Property [ protected $line = NULL ]
+ Property [ protected string $file = '' ]
+ Property [ protected int $line = 0 ]
}
- Methods [10] {
@@ -60,6 +60,7 @@ Extension [ <persistent> extension #78 imagick version 3.7.0 ] {
- Parameters [0] {
}
+ - Tentative return [ void ]
}
Method [ <internal:Core, inherits Exception, prototype Throwable> final public method getMessage ] {
@@ -133,8 +134,8 @@ Extension [ <persistent> extension #78 imagick version 3.7.0 ] {
- Properties [4] {
Property [ protected $message = '' ]
Property [ protected $code = 0 ]
- Property [ protected $file = NULL ]
- Property [ protected $line = NULL ]
+ Property [ protected string $file = '' ]
+ Property [ protected int $line = 0 ]
}
- Methods [10] {
@@ -151,6 +152,7 @@ Extension [ <persistent> extension #78 imagick version 3.7.0 ] {
- Parameters [0] {
}
+ - Tentative return [ void ]
}
Method [ <internal:Core, inherits Exception, prototype Throwable> final public method getMessage ] {
@@ -224,8 +226,8 @@ Extension [ <persistent> extension #78 imagick version 3.7.0 ] {
- Properties [4] {
Property [ protected $message = '' ]
Property [ protected $code = 0 ]
- Property [ protected $file = NULL ]
- Property [ protected $line = NULL ]
+ Property [ protected string $file = '' ]
+ Property [ protected int $line = 0 ]
}
- Methods [10] {
@@ -242,6 +244,7 @@ Extension [ <persistent> extension #78 imagick version 3.7.0 ] {
- Parameters [0] {
}
+ - Tentative return [ void ]
}
Method [ <internal:Core, inherits Exception, prototype Throwable> final public method getMessage ] {
@@ -315,8 +318,8 @@ Extension [ <persistent> extension #78 imagick version 3.7.0 ] {
- Properties [4] {
Property [ protected $message = '' ]
Property [ protected $code = 0 ]
- Property [ protected $file = NULL ]
- Property [ protected $line = NULL ]
+ Property [ protected string $file = '' ]
+ Property [ protected int $line = 0 ]
}
- Methods [10] {
@@ -333,6 +336,7 @@ Extension [ <persistent> extension #78 imagick version 3.7.0 ] {
- Parameters [0] {
}
+ - Tentative return [ void ]
}
Method [ <internal:Core, inherits Exception, prototype Throwable> final public method getMessage ] {
@@ -406,8 +410,8 @@ Extension [ <persistent> extension #78 imagick version 3.7.0 ] {
- Properties [4] {
Property [ protected $message = '' ]
Property [ protected $code = 0 ]
- Property [ protected $file = NULL ]
- Property [ protected $line = NULL ]
+ Property [ protected string $file = '' ]
+ Property [ protected int $line = 0 ]
}
- Methods [10] {
@@ -424,6 +428,7 @@ Extension [ <persistent> extension #78 imagick version 3.7.0 ] {
- Parameters [0] {
}
+ - Tentative return [ void ]
}
Method [ <internal:Core, inherits Exception, prototype Throwable> final public method getMessage ] {
@@ -485,7 +490,7 @@ Extension [ <persistent> extension #78 imagick version 3.7.0 ] {
Class [ <internal:imagick> <iterateable> class Imagick implements Stringable, Iterator, Traversable, Countable ] {
- - Constants [626] {
+ - Constants [629] {
Constant [ public int COLOR_BLACK ] { 11 }
Constant [ public int COLOR_BLUE ] { 12 }
Constant [ public int COLOR_CYAN ] { 13 }
@@ -579,6 +584,8 @@ Extension [ <persistent> extension #78 imagick version 3.7.0 ] {
Constant [ public int COMPOSITE_SOFTDODGE ] { 77 }
Constant [ public int COMPOSITE_STAMP ] { 78 }
Constant [ public int COMPOSITE_RMSE ] { 79 }
+ Constant [ public int COMPOSITE_SALIENCY_BLEND ] { 80 }
+ Constant [ public int COMPOSITE_SEAMLESS_BLEND ] { 81 }
Constant [ public int MONTAGEMODE_FRAME ] { 1 }
Constant [ public int MONTAGEMODE_UNFRAME ] { 2 }
Constant [ public int MONTAGEMODE_CONCATENATE ] { 3 }
@@ -669,6 +676,7 @@ Extension [ <persistent> extension #78 imagick version 3.7.0 ] {
Constant [ public int COMPRESSION_WEBP ] { 23 }
Constant [ public int COMPRESSION_DWAA ] { 24 }
Constant [ public int COMPRESSION_DWAB ] { 25 }
+ Constant [ public int COMPRESSION_BC7 ] { 26 }
Constant [ public int PAINT_POINT ] { 1 }
Constant [ public int PAINT_REPLACE ] { 2 }
Constant [ public int PAINT_FLOODFILL ] { 3 }
@@ -4013,12 +4021,14 @@ Extension [ <persistent> extension #78 imagick version 3.7.0 ] {
- Parameters [0] {
}
+ - Tentative return [ void ]
}
Method [ <internal:imagick, prototype Iterator> public method rewind ] {
- Parameters [0] {
}
+ - Tentative return [ void ]
}
Method [ <internal:imagick, prototype Iterator> public method valid ] {
@@ -5705,12 +5715,14 @@ Extension [ <persistent> extension #78 imagick version 3.7.0 ] {
- Parameters [0] {
}
+ - Tentative return [ void ]
}
Method [ <internal:imagick, prototype Iterator> public method rewind ] {
- Parameters [0] {
}
+ - Tentative return [ void ]
}
Method [ <internal:imagick, prototype Iterator> public method current ] {
diff --git a/imagick-tests.patch b/imagick-tests.patch
new file mode 100644
index 0000000..7f6990b
--- /dev/null
+++ b/imagick-tests.patch
@@ -0,0 +1,94 @@
+From 944b67fce68bcb5835999a149f917670555b6fcb Mon Sep 17 00:00:00 2001
+From: Danack <Danack@basereality.com>
+Date: Fri, 9 Feb 2024 13:59:39 +0000
+Subject: [PATCH] Improve test so that is passes.
+
+The underlying maths for some statistics changed: https://github.com/ImageMagick/ImageMagick/issues/6924 so the tests need to pass on both before and after maths.
+---
+ bisect/bisect_analyze.sh | 61 +++++++++++++++++++++++++
+ tests/316_Imagick_getImageKurtosis.phpt | 12 ++++-
+ tests/functions.inc | 40 +++++++++++++++-
+ 3 files changed, 110 insertions(+), 3 deletions(-)
+ create mode 100644 bisect/bisect_analyze.sh
+
+diff --git a/tests/316_Imagick_getImageKurtosis.phpt b/tests/316_Imagick_getImageKurtosis.phpt
+index 2618924a..61370b57 100644
+--- a/tests/316_Imagick_getImageKurtosis.phpt
++++ b/tests/316_Imagick_getImageKurtosis.phpt
+@@ -14,8 +14,16 @@ function getImageKurtosis() {
+ $imagick = new \Imagick(__DIR__ . '/Biter_500.jpg');
+ $values = $imagick->getImageKurtosis();
+
+- check_value($values, "kurtosis", -0.9379261035010518);
+- check_value($values, "skewness", 0.4562517200972045);
++ check_value_posibilities(
++ $values,
++ "kurtosis",
++ [-0.9379261035010518, -0.70925995674921]
++ );
++ check_value_posibilities(
++ $values,
++ "skewness",
++ [0.4562517200972045, 0.56839010636614]
++ );
+ }
+
+ getImageKurtosis() ;
+diff --git a/tests/functions.inc b/tests/functions.inc
+index bbd60ac0..11012864 100644
+--- a/tests/functions.inc
++++ b/tests/functions.inc
+@@ -111,7 +111,10 @@ function setFontForImagickDraw(\ImagickDraw $imagickDraw)
+ $imagickDraw->setFont($font);
+ }
+
+-
++/**
++ * Checks that a named value exists in an array and it matches
++ * an expected value.
++ */
+ function check_value(array $values, $name, $expected_value)
+ {
+ if (array_key_exists($name, $values) !== true) {
+@@ -136,6 +139,41 @@ function check_value(array $values, $name, $expected_value)
+ }
+
+
++/**
++ * Checks that a named value exists in an array and it matches
++ * one of a number of expected values.
++ * This function exists because the expected values for Kurtosis can
++ * change when the underlying maths changes: https://github.com/ImageMagick/ImageMagick/issues/6924
++ */
++function check_value_posibilities(array $values, $name, array $expected_values)
++{
++ if (array_key_exists($name, $values) !== true) {
++
++ $message = "Expected key '$name' not set. Array contains:\n";
++ $message .= var_export($values, true);
++
++ throw new \Exception($message);
++ }
++
++
++ $value = $values[$name];
++
++ $epsilon = 0.01;
++
++ foreach ($expected_values as $expected_value) {
++ if (($value > $expected_value - $epsilon) && ($value < $expected_value + $epsilon)) {
++ echo "Value for '$name' is $value which is close enough to expected $expected_value\n";
++ return;
++ }
++ }
++
++ $expected_string = implode(", ", $expected_values);
++
++ $message = "Value for $name doesn't match expected possibilities. Expected one of: $expected_string, actual: $value";
++ throw new \Exception($message);
++}
++
++
+ function check_value_with_epsilon(array $values, $name, $expected_value, $epsilon)
+ {
+ if (array_key_exists($name, $values) !== true) {
diff --git a/php-pecl-imagick.spec b/php-pecl-imagick.spec
index 332b139..0811cdd 100644
--- a/php-pecl-imagick.spec
+++ b/php-pecl-imagick.spec
@@ -1,15 +1,24 @@
# remirepo spec file for php-pecl-imagick
#
-# Copyright (c) 2008-2022 Remi Collet
-# License: CC-BY-SA
+# Copyright (c) 2008-2024 Remi Collet
+# License: CC-BY-SA-4.0
# http://creativecommons.org/licenses/by-sa/4.0/
#
# Please, preserve the changelog entries
#
+%bcond_without tests
+
+# Distribution default IM version
+%if 0%{?fedora} >= 38 || 0%{?rhel} >= 10
+%global default 7
%bcond_with im6
%bcond_with im7
-%bcond_without tests
+%else
+%global default 6
+%bcond_with im6
+%bcond_with im7
+%endif
# 2 builds needed to get the full set
# --with im6
@@ -19,7 +28,9 @@
%undefine _strict_symbol_defs_build
%if 0%{?scl:1}
-%scl_package php-pecl-imagick
+%scl_package php-pecl-imagick
+%else
+%global _root_prefix %{_prefix}
%endif
%global gh_commit 623a3ac0386c93d62c60cbfe610505f2e35780f3
@@ -36,6 +47,12 @@
%endif
%global upstream_version 3.7.0
#global upstream_prever RC1
+%if 0%{?gh_date:1}
+%global sources %{gh_project}-%{gh_commit}
+%else
+%global sources %{pecl_name}-%{upstream_version}%{?upstream_prever}
+%endif
+%global _configure ../%{sources}/configure
%if %{with im7}
Summary: Extension to create and modify images using ImageMagick 7
@@ -46,15 +63,17 @@ Name: %{?scl_prefix}php-pecl-imagick-im6
%endif
Version: %{upstream_version}%{?upstream_prever:~%{upstream_prever}}
%if 0%{?gh_date}
-Release: 0.10.%{gh_date}git%{gh_short}%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}
+Release: 0.11.%{gh_date}git%{gh_short}%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}
Source0: https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{pecl_name}-%{version}-%{gh_short}.tar.gz
%else
-Release: 2.1%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}
+Release: 10.3%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}
Source0: https://pecl.php.net/get/%{pecl_name}-%{upstream_version}%{?upstream_prever}.tgz
%endif
-License: PHP
+License: PHP-3.01
URL: https://pecl.php.net/package/imagick
+Patch0: %{pecl_name}-tests.patch
+
BuildRequires: make
BuildRequires: %{?dtsprefix}gcc
BuildRequires: %{?scl_prefix}php-devel
@@ -72,7 +91,6 @@ BuildRequires: ImageMagick-devel
Requires: %{?scl_prefix}php(zend-abi) = %{php_zend_api}
Requires: %{?scl_prefix}php(api) = %{php_core_api}
-%{?_sclreq:Requires: %{?scl_prefix}runtime%{?_sclreq}%{?_isa}}
%if %{with im7}
Provides: %{?scl_prefix}php-%{pecl_name} = 1:%{version}%{?prever}
@@ -87,15 +105,23 @@ Provides: %{?scl_prefix}php-pecl(%{pecl_name})%{?_isa} = %{version}%{?preve
Conflicts: %{?scl_prefix}php-pecl-gmagick
%if %{with im7}
Conflicts: %{?scl_prefix}php-pecl-imagick-im6 <= %{version}-%{release}
+%if %{default} == 7
+Obsoletes: %{?scl_prefix}php-pecl-imagick <= %{version}-%{release}
+%else
Conflicts: %{?scl_prefix}php-pecl-imagick <= %{version}-%{release}
+%endif
%else
Conflicts: %{?scl_prefix}php-pecl-imagick-im7 <= %{version}-%{release}
+%if %{default} == 6
Obsoletes: %{?scl_prefix}php-pecl-imagick <= %{version}-%{release}
+%else
+Conflicts: %{?scl_prefix}php-pecl-imagick <= %{version}-%{release}
+%endif
%endif
Provides: %{?scl_prefix}php-pecl-imagick = %{version}-%{release}
Provides: %{?scl_prefix}php-pecl-imagick%{?_isa} = %{version}-%{release}
-%if "%{?packager}" == "Remi Collet" && 0%{!?scl:1} && 0%{?rhel}
+%if "%{?packager}" == "Remi Collet" && 0%{!?scl:1} && 0%{?rhel} == 7
# Other third party repo stuff
Obsoletes: php53-pecl-%{pecl_name} <= %{version}
Obsoletes: php53u-pecl-%{pecl_name} <= %{version}
@@ -128,12 +154,6 @@ Obsoletes: php73w-pecl-%{pecl_name} <= %{version}
%if "%{php_version}" > "7.4"
Obsoletes: php74-pecl-%{pecl_name} <= %{version}
%endif
-%if "%{php_version}" > "8.0"
-Obsoletes: php80-pecl-%{pecl_name} <= %{version}
-%endif
-%if "%{php_version}" > "8.1"
-Obsoletes: php81-pecl-%{pecl_name} <= %{version}
-%endif
%endif
@@ -173,12 +193,9 @@ These are the files needed to compile programs using %{pecl_name} extension.
%prep
%setup -q -c
%if 0%{?gh_date}
-mv %{gh_project}-%{gh_commit} NTS
mv NTS/package.xml .
sed -e 's/@PACKAGE_VERSION@/%{version}dev/' -i NTS/php_imagick.h
sed -e 's/3.3.0RC2/%{version}dev/' -i package.xml
-%else
-mv %{pecl_name}-%{upstream_version}%{?upstream_prever} NTS
%endif
# don't install any font (and test using it)
@@ -194,7 +211,9 @@ then : "Font files detected!"
exit 1
fi
-cd NTS
+cd %{sources}
+%patch -P0 -p1
+
: Avoid arginfo to be regenerated
rm *.stub.php
@@ -231,18 +250,21 @@ imagick.skip_version_check=1
;imagick.allow_zero_dimension_images => 0 => 0
EOF
+mkdir NTS
%if %{with_zts}
-cp -r NTS ZTS
+mkdir ZTS
%endif
%build
%{?dtsenable}
+cd %{sources}
+%{__phpize}
+
: Standard NTS build
-cd NTS
-%{_bindir}/phpize
-%configure --with-imagick=%{prefix} --with-php-config=%{_bindir}/php-config
+cd ../NTS
+%configure --with-imagick=%{_root_prefix} --with-php-config=%{__phpconfig}
make %{?_smp_mflags}
: Dump REFLECTION
@@ -251,10 +273,9 @@ make %{?_smp_mflags}
--re imagick >REFLECTION
%if %{with_zts}
-cd ../ZTS
: ZTS build
-%{_bindir}/zts-phpize
-%configure --with-imagick=%{prefix} --with-php-config=%{_bindir}/zts-php-config
+cd ../ZTS
+%configure --with-imagick=%{_root_prefix} --with-php-config=%{__ztsphpconfig}
make %{?_smp_mflags}
%endif
@@ -276,7 +297,7 @@ install -D -m 644 %{ini_name} %{buildroot}%{php_ztsinidir}/%{ini_name}
%endif
# Test & Documentation
-cd NTS
+cd %{sources}
for i in $(grep 'role="test"' ../package.xml | sed -e 's/^.*name="//;s/".*$//')
do [ -f $i ] && install -Dpm 644 $i %{buildroot}%{pecl_testdir}/%{pecl_name}/$i
[ -f tests/$i ] && install -Dpm 644 tests/$i %{buildroot}%{pecl_testdir}/%{pecl_name}/tests/$i
@@ -308,14 +329,17 @@ fi
%check
+cd %{sources}
export REPORT_EXIT_STATUS=1
# very long, and erratic results, sometime timeout
-rm ?TS/tests/229_Tutorial_fxAnalyzeImage_case1.phpt
-rm ?TS/tests/244_Tutorial_psychedelicFontGif_basic.phpt
+rm tests/229_Tutorial_fxAnalyzeImage_case1.phpt
+rm tests/244_Tutorial_psychedelicFontGif_basic.phpt
+# very long, and erratic results, sometime segfault on shutdown (EL-7/8)
+rm tests/073_Imagick_forwardFourierTransformImage_basic.phpt
+rm tests/086_Imagick_forwardFourierTransformImage_basic.phpt
: simple module load test for NTS extension
-cd NTS
%{__php} --no-php-ini \
--define extension_dir=%{buildroot}%{php_extdir} \
--define extension=%{pecl_name}.so \
@@ -334,7 +358,6 @@ TEST_PHP_ARGS="-n -d extension=%{buildroot}%{php_extdir}/%{pecl_name}.so" \
%if %{with_zts}
: simple module load test for ZTS extension
-cd ../ZTS
%{__ztsphp} --no-php-ini \
--define extension_dir=%{buildroot}%{php_ztsextdir} \
--define extension=%{pecl_name}.so \
@@ -343,7 +366,7 @@ cd ../ZTS
%files
-%{?_licensedir:%license NTS/LICENSE}
+%{?_licensedir:%license %{sources}/LICENSE}
%doc %{pecl_docdir}/%{pecl_name}
%{pecl_xmldir}/%{name}.xml
@@ -366,6 +389,18 @@ cd ../ZTS
%changelog
+* Mon Feb 12 2024 Remi Collet <remi@remirepo.net> - 3.7.0-10
+- add upstream patch for test suite with recent IM versions
+
+* Wed Aug 30 2023 Remi Collet <remi@remirepo.net> - 3.7.0-9
+- rebuild for PHP 8.3.0RC1
+
+* Wed Jul 12 2023 Remi Collet <remi@remirepo.net> - 3.7.0-8
+- build out of sources tree
+
+* Fri Mar 10 2023 Remi Collet <remi@remirepo.net> - 3.7.0-7
+- rebuild with latest ImageMagick 6/7
+
* Thu Sep 1 2022 Remi Collet <remi@remirepo.net> - 3.7.0-2
- rebuild for PHP 8.2.0RC1