commit 3d8cc2dc117c8f2e8b85c40c9beaecab57b1499cb55d5ef7c48da34c88e90fa6 Author: Johannes Weberhofer Date: Fri Nov 22 11:35:58 2024 +0000 - Fix removed "php_strtolower" for PHP 8.4 (https://github.com/Imagick/imagick/pull/690) + imagick-php_strtolower-php84.patch OBS-URL: https://build.opensuse.org/package/show/server:php:extensions/php-imagick?expand=0&rev=16 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..e9f3445 --- /dev/null +++ b/_multibuild @@ -0,0 +1,4 @@ + + php7 + php8 + diff --git a/imagick-3.7.0.tgz b/imagick-3.7.0.tgz new file mode 100644 index 0000000..5020485 --- /dev/null +++ b/imagick-3.7.0.tgz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a364354109029d224bcbb2e82e15b248be9b641227f45e63425c06531792d3e +size 360138 diff --git a/imagick-fix-test316.patch b/imagick-fix-test316.patch new file mode 100644 index 0000000..30d122d --- /dev/null +++ b/imagick-fix-test316.patch @@ -0,0 +1,19 @@ +diff -purN a/tests/316_Imagick_getImageKurtosis.phpt b/tests/316_Imagick_getImageKurtosis.phpt +--- a/tests/316_Imagick_getImageKurtosis.phpt 2022-01-11 16:23:47.000000000 +0100 ++++ b/tests/316_Imagick_getImageKurtosis.phpt 2024-01-22 20:29:18.738097214 +0100 +@@ -14,8 +14,13 @@ function getImageKurtosis() { + $imagick = new \Imagick(__DIR__ . '/Biter_500.jpg'); + $values = $imagick->getImageKurtosis(); + +- check_value($values, "kurtosis", -0.9379261035010518); +- check_value($values, "skewness", 0.4562517200972045); ++ if (isVersionGreaterEqual('6.9.13-2', '7.1.1-24')) { ++ check_value($values, "kurtosis", -0.7092599567492); ++ check_value($values, "skewness", 0.56839010636614); ++ } else { ++ check_value($values, "kurtosis", -0.9379261035010518); ++ check_value($values, "skewness", 0.4562517200972045); ++ } + } + + getImageKurtosis() ; diff --git a/imagick-php_strtolower-php84.patch b/imagick-php_strtolower-php84.patch new file mode 100644 index 0000000..c8f1443 --- /dev/null +++ b/imagick-php_strtolower-php84.patch @@ -0,0 +1,42 @@ +diff -upr imagick-3.7.0.orig/imagick.c imagick-3.7.0/imagick.c +--- imagick-3.7.0.orig/imagick.c 2022-01-11 16:23:47.000000000 +0100 ++++ imagick-3.7.0/imagick.c 2024-11-22 11:14:01.187974046 +0100 +@@ -603,7 +603,11 @@ static zval *php_imagick_read_property(z + if (format) { + retval = rv; + ZVAL_STRING(retval, format); +- php_strtolower(Z_STRVAL_P(retval), Z_STRLEN_P(retval)); ++ #if PHP_VERSION_ID < 80400 ++ php_strtolower(Z_STRVAL_P(retval), Z_STRLEN_P(retval)); ++ #else ++ zend_str_tolower(Z_STRVAL_P(retval), Z_STRLEN_P(retval)); ++ #endif + IMAGICK_FREE_MAGICK_MEMORY(format); + } else { + retval = rv; +@@ -676,7 +680,11 @@ static zval *php_imagick_read_property(z + if (format) { + retval = rv; + ZVAL_STRING(retval, format); +- php_strtolower(Z_STRVAL_P(retval), Z_STRLEN_P(retval)); ++ #if PHP_VERSION_ID < 80400 ++ php_strtolower(Z_STRVAL_P(retval), Z_STRLEN_P(retval)); ++ #else ++ zend_str_tolower(Z_STRVAL_P(retval), Z_STRLEN_P(retval)); ++ #endif + IMAGICK_FREE_MAGICK_MEMORY(format); + } else { + retval = rv; +@@ -759,7 +767,11 @@ static zval *php_imagick_read_property(z + + if (format) { + ZVAL_STRING(retval, format, 1); +- php_strtolower(Z_STRVAL_P(retval), Z_STRLEN_P(retval)); ++ #if PHP_VERSION_ID < 80400 ++ php_strtolower(Z_STRVAL_P(retval), Z_STRLEN_P(retval)); ++ #else ++ zend_str_tolower(Z_STRVAL_P(retval), Z_STRLEN_P(retval)); ++ #endif + IMAGICK_FREE_MAGICK_MEMORY(format); + } else { + ZVAL_STRING(retval, "", 1); diff --git a/imagick-reproducible.patch b/imagick-reproducible.patch new file mode 100644 index 0000000..348a618 --- /dev/null +++ b/imagick-reproducible.patch @@ -0,0 +1,26 @@ +Index: imagick-3.4.3/imagick.c +=================================================================== +--- imagick-3.4.3.orig/imagick.c ++++ imagick-3.4.3/imagick.c +@@ -3897,10 +3897,11 @@ PHP_MINIT_FUNCTION(imagick) + #endif + + REGISTER_INI_ENTRIES(); +- ++#if 0 + if (!IMAGICK_G(skip_version_check)) { + checkImagickVersion(); + } ++#endif + + return SUCCESS; + } +@@ -3933,7 +3934,7 @@ PHP_MINFO_FUNCTION(imagick) + #else + php_info_print_table_row(2, "imagick classes", "Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator"); + #endif +-#ifdef MagickVersion ++#if 0 + php_info_print_table_row(2, "Imagick compiled with ImageMagick version", MagickVersion); + #endif + php_info_print_table_row(2, "Imagick using ImageMagick library version", MagickGetVersion(&version_number)); diff --git a/imagick-xfail-test014.patch b/imagick-xfail-test014.patch new file mode 100644 index 0000000..7703290 --- /dev/null +++ b/imagick-xfail-test014.patch @@ -0,0 +1,12 @@ +diff -purN a/tests/014-setresourcelimit.phpt b/tests/014-setresourcelimit.phpt +--- a/tests/014-setresourcelimit.phpt 2022-01-11 16:23:45.000000000 +0100 ++++ b/tests/014-setresourcelimit.phpt 2024-01-21 21:21:54.685527129 +0100 +@@ -5,6 +5,8 @@ Imagick::setResourceLimit test + $imageMagickRequiredVersion=0x692; + require_once(dirname(__FILE__) . '/skipif.inc'); + ?> ++--XFAIL-- ++These tests are flaky as the values ImageMagick will accept are limited by the policy.xml of the system. + --FILE-- + + +- Fix removed "php_strtolower" for PHP 8.4 + + imagick-php_strtolower-php84.patch + +------------------------------------------------------------------- +Sun Jan 21 20:38:00 UTC 2024 - Arjen de Korte + +- Expect test to fail as the values ImageMagick will accept are limited + by the policy.xml of the system which is more restrictive now + + imagick-xfail-test014.patch + +- Fix test failing since ImageMagick 7.1.1.24 due to changed calculation + of kurtosis and skewness values + + imagick-fix-test316.patch + +------------------------------------------------------------------- +Sat Dec 10 10:32:12 UTC 2022 - Arjen de Korte + +- Remove php7 build for Tumbleweed (PHP 7.4 has reached EOL) + +------------------------------------------------------------------- +Wed Jan 12 20:14:28 UTC 2022 - Arjen de Korte + +- Upgrade to version 3.7.0 + - Added: + * Imagick::COMPOSITE_SALIENCY_BLEND + +- Upgrade to version 3.7.0RC1 + - Added: + * function Imagick::deleteOption(string $option): bool {} + * function Imagick::getBackgroundColor(): ImagickPixel {} + * function Imagick::getImageArtifacts(string $pattern = "*"): array {} + * function Imagick::getImageKurtosis(): array {} + * function Imagick::getImageMean(): array {} + * function Imagick::getImageRange(): array {} + * function Imagick::getInterpolateMethod(): int {} + * function Imagick::getOptions(string $pattern = "*"): array {} + * function Imagick::getOrientation(): int {} + * function Imagick::getResolution(): array {} + * function Imagick::getType(): int {} + * function Imagick::implodeImageWithMethod(float $radius, + int $pixel_interpolate_method): bool {} + * function Imagick::oilPaintImageWithSigma(float $radius, float $sigma) + * function Imagick::polaroidWithTextAndMethod(ImagickDraw $settings, + float $angle, string $caption, int $method): bool {} + * function Imagick::polynomialImage(array $terms): bool {} + * function Imagick::setDepth(int $depth): bool {} + * function Imagick::setExtract(string $geometry): bool {} + * function Imagick::setInterpolateMethod(int $method): bool{} + * function Imagick::setOrientation(int $orientation): bool {} + * function Imagick::spreadImageWithMethod(float $radius, + int $interpolate_method): bool {} + * function Imagick::swirlImageWithMethod(float $degrees, + int $interpolate_method): bool {} + * function Imagick::waveImageWithMethod(float $amplitude, + float $length, int $interpolate_method): bool {} + * Imagick::IMAGE_TYPE_BILEVEL + * Imagick::IMAGE_TYPE_GRAYSCALE + * Imagick::IMAGE_TYPE_GRAYSCALE_ALPHA + * Imagick::IMAGE_TYPE_PALETTE + * Imagick::IMAGE_TYPE_PALETTE_ALPHA + * Imagick::IMAGE_TYPE_TRUE_COLOR + * Imagick::IMAGE_TYPE_TRUE_COLOR_ALPHA + * Imagick::IMAGE_TYPE_COLOR_SEPARATION + * Imagick::IMAGE_TYPE_COLOR_SEPARATION_ALPHA + * Imagick::IMAGE_TYPE_OPTIMIZE + * Imagick::IMAGE_TYPE_PALETTE_BILEVEL_ALPHA + * Imagick::COMPOSITE_SEAMLESS_BLEND + + - Changed: + * Imagick::setImageArtifact can now take null for the string value. + * Return type for Imagick::getImageArtifact is string|null instead of + string. + +------------------------------------------------------------------- +Fri Dec 10 09:17:07 UTC 2021 - Arjen de Korte + +- Upgrade to version 3.6.0 + - No change from 3.6.0RC2 + - removed imagick-fix-457-ensure-format-is-always-lowercase.patch + (upstreamed) + +- Upgrade to version 3.6.0RC2 + - Fixes: + * Remove deprecated message from Imagick::roundCorners() + + - Added: + * Imagick::addNoiseImageWithAttenuate() + +- Upgrade to version 3.6.0RC1 + - Imagick::getImageInterlaceScheme is undeprecated. It's the + appropriate function to call to get the image interlace setting. + - Image formats are now normalised to lower case. + - Imagick::getImageIndex and Imagick::setImageIndex are undeprecated + and work on ImageMagick 7. They call MagickGetIteratorIndex and + MagickSetIteratorIndex internally. + - Imagick::averageImages is undeprecated. For IM 7 it now calls + EvaluateImages(wand->images,MeanEvaluateOperator). + - Imagick::flattenImages is undeprecated. For IM 7 it now calls + MagickMergeImageLayers(intern->magick_wand, FlattenLayer); + internally. + - Imagick::getImageSize is undeprecated. For IM 7 it now calls + MagickGetImageLength internally. + - Imagick::roundCornersImage is undeprecated and available on IM7. + + - Fixes: + * Imagick::borderImage() changed internally to use OverCompositeOp + rather than AtopCompositeOp for ImageMagick > 7. If you need the + old behaviour, please use Imagick::borderImageWithComposite() + instead, which allows you to set the composite method. + * Imagick::frameImage() changed internally to use OverCompositeOp + rather than AtopCompositeOp for ImageMagick > 7. If you need the + old behaviour, please use + Imagick::frameImageWithComposite()instead, which allows you to + set the composite method. + * Imagick::profileImage() fixed to allow null as second paramter + again. If you can't upgrade to this version yet, pass in "", + which has the same effect. + * Imagick::ALPHACHANNEL_COPY and Imagick::ALPHACHANNEL_OPAQUE should + be available on IM7. + * Imagick::setImageMatteColor() should be available on IM7. + + - Added: + * Imagick::borderImageWithComposite() same as Imagick::borderImage() + but allows user to set composite operator used. + * Imagick::frameImageWithComposite() same as Imagick::frameImage() + but allows user to set composite operator used. + * function Imagick::cannyEdgeImage + * function Imagick::setSeed + * function Imagick::waveletDenoiseImage + * function Imagick::meanShiftImage + * function Imagick::kmeansImage + * function Imagick::rangeThresholdImage + * function Imagick::autoThresholdImage + * function Imagick::bilateralBlurImage + * function Imagick::claheImage + * function Imagick::channelFxImage + * function Imagick::colorThresholdImage + * function Imagick::complexImages + * function Imagick::interpolativeResizeImage + * function Imagick::levelImageColors + * function Imagick::levelizeImage + * function Imagick::orderedDitherImage + * function Imagick::whiteBalanceImage + +------------------------------------------------------------------- +Wed Nov 10 11:10:20 UTC 2021 - Johannes Weberhofer + +- added imagick-fix-457-ensure-format-is-always-lowercase.patch + to fix test-failures in latest tumbleweed/factory builds + #gh/Imagick/imagick#457 + +------------------------------------------------------------------- +Tue Nov 9 22:02:45 UTC 2021 - Arjen de Korte + +- Upgrade to version 3.5.1 + - Better detection of appropriate OpenMP library to use, i.e. GCC + or Clang. + +------------------------------------------------------------------- +Sun Jun 20 11:27:28 UTC 2021 - munix9@googlemail.com + +- Upgrade to version 3.5.0 + - Fixed multiple parameter information issues found in 3.5.0RC1. + - ImageMagick 7 is still not widely available on systems. + So contrary to previous plans, ImageMagick 6 support will + continue for now. + But users are recommeded to use ImageMagick 7 if possible. + - Method names have been changed to not be all lower case. Both + method names and parameter information is built from the + Imagick*.stub.php files. + - Prevent accidental creation of zero dimension images. + ImageMagick doesn't prevent creation of zero dimension images, + but will give an error when that image is used. I don't think + this will affect any correctly program, but if it does, and + you need to re-enable zero dimension images, please open an + issue at https://phpimagick.com/issues + - Various pieces of work have been done to make GOMP not + segfault including: + * Call omp_pause_resource_all when available during shutdown. + * Added the 'imagick.shutdown_sleep_count' (default 10) and + 'imagick.set_single_thread' (default On). Both of these + exist to mitigate the segaults on shutdown. + + - Fixes: + * Correct version check to make RemoveAlphaChannel and + FlattenAlphaChannel be available when using Imagick with + ImageMagick version 6.7.8-x + * Imagick::morphology now no longer ignores channel parameter + + - Added: + * PHP 8.0 support. + * Location check for ImageMagick 7 for NixOS and Brew. + * Imagick::houghLineImage(int $width, int $height, float $threshold): bool {} + * Imagick::setImagePixelColor(int $x, int $y, ImagickPixel|string $color) + * Imagick::setImageMask(Imagick $clip_mask, int $pixelmask_type) + * Imagick::getImageMask(int $pixelmask_type) + * Imagick::VIRTUALPIXELMETHOD_DITHER + * Imagick::VIRTUALPIXELMETHOD_RANDOM + * Imagick::COMPOSITE_FREEZE + * Imagick::COMPOSITE_INTERPOLATE + * Imagick::COMPOSITE_NEGATE + * Imagick::COMPOSITE_REFLECT + * Imagick::COMPOSITE_SOFTBURN + * Imagick::COMPOSITE_SOFTDODGE + * Imagick::COMPOSITE_STAMP + * Imagick::COMPOSITE_RMSE + * Imagick::COMPRESSION_DWAA + * Imagick::COMPRESSION_DWAB + * Imagick::EVALUATE_INVERSE_LOG + * Imagick::COLORSPACE_DISPLAYP3 + * Imagick::COLORSPACE_ADOBE98 + * Imagick::COLORSPACE_PROPHOTO + * Imagick::COLORSPACE_JZAZBZ + * Imagick::DISTORTION_RIGID_AFFINE + * Imagick::DISTORTION_BARRELINVERSE + * Imagick::STATISTIC_ROOT_MEAN_SQUARE + +------------------------------------------------------------------- +Thu Feb 18 23:10:08 UTC 2021 - Arjen de Korte + +- Use _multibuild (prepare to build for php8) +- Use php_cfgdir and php_extdir macros to determine location of files + +------------------------------------------------------------------- +Fri Jan 8 07:22:07 UTC 2021 - Arjen de Korte + +- fix %defattr preventing setting executable bits on imagick.so + +------------------------------------------------------------------- +Tue May 7 06:28:00 UTC 2019 - Johannes Weberhofer + +- removed patch imagic-3.4.3-relax_test_150_to_follow_upstream_change.patch + which is no longer necessary. + +- Upgrade to version 3.4.4 + Added: + * function Imagick::optimizeImageTransparency() + * METRIC_STRUCTURAL_SIMILARITY_ERROR + * METRIC_STRUCTURAL_DISSIMILARITY_ERROR + * COMPRESSION_ZSTD - https://github.com/facebook/zstd + * COMPRESSION_WEBP + * CHANNEL_COMPOSITE_MASK + * FILTER_CUBIC_SPLINE - "Define the lobes with the -define + filter:lobes={2,3,4} + (reference https://imagemagick.org/discourse-server/viewtopic.php?f=2&t=32506)." + * Imagick now explicitly conflicts with the Gmagick extension. + + Fixes: + * Correct version check to make RemoveAlphaChannel and FlattenAlphaChannel + be available when using Imagick with ImageMagick version 6.7.8-x + * Bug 77128 - Imagick::setImageInterpolateMethod() not available on Windows + * Prevent memory leak when ImagickPixel::__construct called after object instantiation. + * Prevent segfault when ImagickPixel internal constructor not called. + * Imagick::setResourceLimit support for values larger than 2GB (2^31) on 32bit platforms. + * Corrected memory overwrite in Imagick::colorDecisionListImage() + * Bug 77791 - ImagickKernel::fromMatrix() out of bounds write. + Fixes CVE-2019-11037, boo#1135418 + + The following functions have been deprecated: + * ImagickDraw, matte + * Imagick::averageimages + * Imagick::colorfloodfillimage + * Imagick::filter + * Imagick::flattenimages + * Imagick::getimageattribute + * Imagick::getimagechannelextrema + * Imagick::getimageclipmask + * Imagick::getimageextrema + * Imagick::getimageindex + * Imagick::getimagematte + * Imagick::getimagemattecolor + * Imagick::getimagesize + * Imagick::mapimage + * Imagick::mattefloodfillimage + * Imagick::medianfilterimage + * Imagick::mosaicimages + * Imagick::orderedposterizeimage + * Imagick::paintfloodfillimage + * Imagick::paintopaqueimage + * Imagick::painttransparentimage + * Imagick::radialblurimage + * Imagick::recolorimage + * Imagick::reducenoiseimage + * Imagick::roundcornersimage + * Imagick::roundcorners + * Imagick::setimageattribute + * Imagick::setimagebias + * Imagick::setimageclipmask + * Imagick::setimageindex + * Imagick::setimagemattecolor + * Imagick::setimagebiasquantum + * Imagick::setimageopacity + * Imagick::transformimage + +------------------------------------------------------------------- +Tue Feb 12 17:08:22 UTC 2019 - schwab@suse.de + +- Use bigger timeout when running under qemu + +------------------------------------------------------------------- +Wed May 9 06:37:45 UTC 2018 - jweberhofer@weberhofer.at + +- removed Test 229 which fails occasionally with timeouts + on the OBS build server + +------------------------------------------------------------------- +Mon May 7 06:17:40 UTC 2018 - jweberhofer@weberhofer.at + +- Print test failures in detail + +------------------------------------------------------------------- +Sun May 6 10:09:31 UTC 2018 - jweberhofer@weberhofer.at + +Fixes for bnc#1091929 + +- Due to a packaging change in ghostscript the ghostscript-fonts-std + has to be included explicitly to successfully run the tests. Elsewise + the required helvetica-font is missing. + +- ImageMagick's commit 97a319 makes ImagaMagick to no longer throw an + an exception if image registry tag is not found. + Added imagic-3.4.3-relax_test_150_to_follow_upstream_change.patch + +------------------------------------------------------------------- +Fri Mar 16 13:23:30 UTC 2018 - crrodriguez@opensuse.org + +- Build module with fvisibility=hidden, this should + avoid additional symbol conflicts. + +------------------------------------------------------------------- +Fri Mar 16 13:11:31 UTC 2018 - crrodriguez@opensuse.org + +- add a Conflict between this extension and gmagick. + (boo#1085595) + +------------------------------------------------------------------- +Thu Mar 8 11:34:36 UTC 2018 - ilya@ilya.pp.ua + +- Add %licence macros. + +------------------------------------------------------------------- +Tue Mar 6 18:25:49 UTC 2018 - crrodriguez@opensuse.org + +- remove double ./configure and build +- imagick-reproducible.patch: We only care if ImageMagick + is binary compatible, not about what version the extension + is compiled against, which changes on every minor + revision. + +------------------------------------------------------------------- +Tue Jul 11 09:27:53 UTC 2017 - ilya@ilya.pp.ua + +- Reconfigurate spec-file + +------------------------------------------------------------------- +Fri Apr 7 13:55:19 UTC 2017 - jweberhofer@weberhofer.at + +- removed -devel package which is of no use +- Simplified spec in the build section +- Enabled tests + +------------------------------------------------------------------- +Sat Feb 4 13:06:38 UTC 2017 - jweberhofer@weberhofer.at + +- Upgrade to version 3.4.3 + - Fixes: + * Avoid internal segfault. + * Imagick::getRegistry() now throws an exception if the key does not exist, + rather than terminating the program. + * Prevent attempts to resize image to zero width or height, which is not + supported by ImageMagick. + * Fix compiling on Windows issue. + * Imagick::transformImage and Imagick::orderedPosterizeImage now correctly + excluded from + * Bug 72311 - compiling against PHP 7.1. + * Bug 72226 - regression for Imagick Exception classes being final on 7.x + * Corrected reference of constants. Imagick::METRIC_MEANERRORPERPIXELMETRIC + from MeanErrorPerPixelMetric to MeanErrorPerPixelErrorMetric. + Imagick::METRIC_PEAKSIGNALTONOISERATIO from PeakSignalToNoiseRatioMetric + to PeakSignalToNoiseRatioErrorMetric + + - Added: + * function Imagick::setImageAlpha() which replaces Imagick::setOpacity() + * function Imagick::identifyImageType() : int returns one of the + Imagick::IMGTYPE_* constants + * Imagick::INTERPOLATE_NEAREST_PIXEL for ImageMagick >= 7 + + * In ImageMagick, the names of two filter constants were corrected to the + standard spelling. Support for the new spelling has been added. The old + constants are left in place for legacy support. + Legacy: FILTER_HANNING, new name: FILTER_HANN + Legacy: FILTER_WELSH, new name: FILTER_WELCH + + * The Imagick::IMGTYPE_*MATTE* constants are deprecated for ImageMagick 7. + * Instead an appropriate Imagick::IMGTYPE_*MATTE* should be used. + IMGTYPE_GRAYSCALEMATTE => IMGTYPE_GRAYSCALEALPHA + IMGTYPE_PALETTEMATTE => IMGTYPE_PALETTEALPHA + IMGTYPE_TRUECOLORALPHA => IMGTYPE_TRUECOLORMATTE + IMGTYPE_COLORSEPARATIONALPHA => IMGTYPE_COLORSEPARATIONMATTE + IMGTYPE_PALETTEBILEVELALPHA => IMGTYPE_PALETTEBILEVELMATTE + + * Several ALPHACHANNEL_* constants are only available in ImageMagick < 7 + IMAGICK_REGISTER_CONST_LONG("ALPHACHANNEL_RESET", ResetAlphaChannel); + IMAGICK_REGISTER_CONST_LONG("ALPHACHANNEL_COPY", CopyAlphaChannel); + IMAGICK_REGISTER_CONST_LONG("ALPHACHANNEL_OPAQUE", OpaqueAlphaChannel); + + * Several ALPHACHANNEL_* constants are only available in ImageMagick >= 7. + These constants re-use the values of the constants removed. + IMAGICK_REGISTER_CONST_LONG("ALPHACHANNEL_ON", OnAlphaChannel); + IMAGICK_REGISTER_CONST_LONG("ALPHACHANNEL_OFF", OffAlphaChannel); + IMAGICK_REGISTER_CONST_LONG("ALPHACHANNEL_DISCRETE", DiscreteAlphaChannel); + +------------------------------------------------------------------- +Tue Jan 10 15:31:57 UTC 2017 - jweberhofer@weberhofer.at + +- Upgrade to version 3.4.2 + * Bug: IM143 Correct ifdef around setOpacity and localContrastImage. + * Bug: IM147 Imagick was Borging PHP's error handler. + +------------------------------------------------------------------- +Mon Jun 6 08:32:26 UTC 2016 - jweberhofer@weberhofer.at + +- Minimum required versions are now PHP 5.4 and + ImageMagick 6.5.3.10 + +- Update to version 3.4.1 + * Bug 71742 - arrays that contain data that is held by reference gives error. + * Imagick::autoGammaImage([int channel = CHANNEL_ALL]) + * Imagick::autoOrient() + * Imagick::compositeImageGravity(Imagick $image, int COMPOSITE_CONSTANT, int GRAVITY_CONSTANT) + * Imagick::localContrastImage(float radius, float strength) + * Imagick::DIRECTION_LEFT_TO_RIGHT + * Imagick::DIRECTION_RIGHT_TO_LEFT + * Imagick::SPARSECOLORMETHOD_MANHATTAN + * ImagickDraw::getOpacity() : float + * ImagickDraw::setOpacity(float opacity) :bool + * ImagickDraw::getFontResolution() : array + * ImagickDraw::setFontResolution(float x, float y) : bool + * ImagickDraw::getTextDirection() : bool + * ImagickDraw::setTextDirection(int direction) : bool + * ImagickDraw::getBorderColor() : ImagickPixel + * ImagickDraw::setBorderColor(ImagickPixel color) : bool + * ImagickDraw::getDensity() : string|null + * ImagickDraw::setDensity(string density_string) : bool + * ImagickPixel::setColorFromPixel(ImagickPixel $srcPixel) : bool + +- Version 3.4.0 + - Added support: + * PHP 7 + * ImageMagick 7. Imagick can be compiled against either ImageMagick 6 or ImageMagick 7 + However it must be run with the exact same version it was compiled against. Trying + to run Imagick with a different version of ImageMagick than it was compiled against + is not supported. Please see http://nextgen.imagemagick.org/script/porting.php for + more information about ImageMagick 7. + + - Minimum versions supported are now PHP >= 5.4.0 and ImageMagick >= 6.5.3-10. + Earlier versions may continue to work, but they are no longer supported. + + - Added methods: + * Imagick::evaluateImages(int EVALUATE_CONSTANT) : Imagick + * Imagick::subImageMatch() added parameters. The signature is now: + Imagick::subimagematch(Imagick subimage[, array &$bestMatch[, float &similarity[, + float $similarity_threshold = 0[, int $metric = ]]]]) + These parameters are only used when compiled against ImageMagick 7. + * Imagick::similarityImage() which is an alias to Imagick::subImageMatch() + * Imagick::getConfigureOptions + * Imagick::getFeatures + * Imagick::getHDRIEnabled + * Imagick::setImageChannelMask (IM7 only) + + - Added IM7 constants: + * Imagick::CHANNEL_READ_MASK + * Imagick::CHANNEL_WRITE_MASK + * Imagick::CHANNEL_META + + - Fixes: + * Imagick::setImageWhitePoint, Imagick::setImageRedPrimary, Imagick::setImageGreenPrimary, + Imagick::setImageBluePrimary now take 3 params when compiled against IM7. + * Imagick::getImageWhitePoint, Imagick::getImageRedPrimary, Imagick::getImageGreenPrimary, + Imagick::getImageBluePrimary now return 3 values when compiled against IM7. + * wrong type for zend_parse_parameters. + * Remove duplicated definitions of class constants. + * Imagick::adaptiveResizeImage, Imagick::cropThumbnailImage Imagick::resizeImage, + Imagick::scaleImage, and Imagick::thumbnailImage have all had a rounding bug fixed. + An additional parameter has been added to each of them, 'bool $legacy'. If legacy + is true, the calculations are done with the small rounding bug that existed in + Imagick before 3.4.0. If false, the calculations should produce the same results as + ImageMagick CLI does. + * Imagick::colorizeImage() and Imagick::tintImage were using the wrong behaviour. + It is now fixed and the legacy behaviour can still be used by passing a 3rd + parameter of `true` to the function to indicate that the legacy behaviour is + desired. + * Imagick::importImagePixels regression fixed. + * Imagick::subImageMatch use correct error metric in IM7 + * ImagickPixel::getColorQuantum, ImagickPixel::getColorValueQuantum and + ImagickPixel::setColorValueQuantum now correctly use floats when Imagick + was compiled against a HDRI version of ImageMagick + * Imagick::exportImagePixels works for all storage types + * Version number in extension header + +------------------------------------------------------------------- +Fri Jan 29 09:25:25 UTC 2016 - pgajdos@suse.com + +- provides php-imagick symbol + +------------------------------------------------------------------- +Tue Jan 12 11:49:03 UTC 2016 - pgajdos@suse.com + +- update to 3.3.0 + +------------------------------------------------------------------- +Tue Jan 7 12:19:40 UTC 2014 - jweberhofer@weberhofer.at + +- Update to 3.1.2 + * Fix ZTS build + * Fix small memory leak in identifyImage + * Added LICENSE + * Added mimetype to identify image as per PECL bug 65037 + * Fixed type conversion error in newpseudoimage + * Reworked identifyImage method + * Fixed building against latest ImageMagick versions (#GH-2) + * Fixed thumbnail resize bug (#GH-1) + * Fixed building against latest PHP versions + +- Fixed building on openSUSE 13.1+ +- Cleaned up spec file +- Added seperate image file +- Cleaned up Changelog +- Splited off devel files to a seperate package + +------------------------------------------------------------------- +Fri Aug 10 17:35:00 UTC 2012 - crrodriguez@opensuse.org + +- Update to RC2, fix build + +------------------------------------------------------------------- +Tue Jun 7 23:40:43 UTC 2011 - crrodriguez@opensuse.org + +- fix build + +------------------------------------------------------------------- +Mon Mar 21 00:58:04 UTC 2011 - crrodriguez@opensuse.org + +- Update to version 3.1.0b1 +- php5-imagick does not distribute a LICENSE [bnc#681129] + +------------------------------------------------------------------- +Wed Feb 4 18:56:59 CET 2009 - crrodriguez@suse.de + +- update to 2.2.2RC4 + +------------------------------------------------------------------- +Mon Jan 12 15:47:35 CET 2009 - crrodriguez@suse.de + +- update to version 2.2.2RC2 +- Added Imagick::setImageProgressmonitor and Imagick::orderedPosterizeImage +- Fixes http://imagemagick.org/discourse-server/viewtopic.php?f=18&t=12828 +- Fixes error with empty exception messages +- Fixes PECL Bug #15332 +- Fixed a possible memory leak in Imagick::convolveImage + +------------------------------------------------------------------- +Mon Oct 27 04:39:16 CET 2008 - crrodriguez@suse.de + +- update to 2.2.1 final, cosmetic version bump + +------------------------------------------------------------------- +Mon Sep 8 11:53:31 CEST 2008 - crrodriguez@suse.de + +- update to version 2.2.1RC2 +- Fixes a small memory leak when casting a string to ImagickPixel object +- Added new constants +- Added getImageChannelRange method +- Some cleaning up on the syntax + +------------------------------------------------------------------- +Thu Jul 10 04:32:21 CEST 2008 - crrodriguez@suse.de + +- update to version 2.2.0 + * Major refactoring of the file structure + * Fixes bugs related to the refactoring + +------------------------------------------------------------------- +Fri Jun 13 12:44:11 CEST 2008 - crrodriguez@suse.de + +- update to version 2.2.0RC1 + +------------------------------------------------------------------- +Sun Mar 9 23:12:46 CET 2008 - crrodriguez@suse.de + +- version 2.1.1 final +- Fixed a bug with fit parameter when scaling images with scaling ratio 1:1 + This is a minor BWC break. Scripts relying on incorrect behavior might need revisiting. + +------------------------------------------------------------------- +Wed Feb 27 02:21:53 CET 2008 - crrodriguez@suse.de + +- update to 2.1.1RC1 fixies build with ImageMagick 6.3.8-x + +------------------------------------------------------------------- +Mon Feb 11 16:37:59 CET 2008 - crrodriguez@suse.de + +- version 2.1.0 final +- Addded setImageAlphaChannel method +- Fixed sharpenImage parameters being reversed +- Fixed building with pre 5.2 versions + +------------------------------------------------------------------- +Sun Jan 13 08:25:39 CET 2008 - crrodriguez@suse.de + +- version 2.1.0RC3 +- Fixes PECL Bug #12851 +- Some major housekeeping changing numeral values to constants + +------------------------------------------------------------------- +Tue Dec 25 20:16:16 CET 2007 - crrodriguez@suse.de + +- version 2.1.0RC2 +- Closes PECL Bugs #12463 and #12479 +- Fixes the behavior of flattenImages and fximage +- Fixes incorrect thumbnail behavior +- Fixes a bug in Imagick::cropThumbnailImage +- Added new constant Imagick::NOISE_RANDOM + +------------------------------------------------------------------- +Thu Nov 15 02:48:33 UTC 2007 - crrodriguez@suse.de + +- update to version 2.1.0RC1 +- All methods that expect ImagickPixel now allow a string representing the color +- Added support for pixeliterator in all supported ImageMagick versions. +- ImagickPixelIterator now implements the iterator interface +- It is now possible to set the row with region iterator +- Added MAXPATHLEN checks for image reads/writes +- Added a fix to Imagick::cropThumbnailImage() to check if images are already at the desired size +- Fixed a memory leak in Imagick::getImageHistogram() +- Speed improvements to Imagick::cropThumbnailImage() +- Added interpolate constants +- Fixed ImagickPixel::getColor() +- Marked ImagickDraw::__construct() with ZEND_ACC_CTOR +- Added fit parameter and proportional scaling to: +- Imagick::adaptiveResizeImage() +- Imagick::scaleImage() +- Imagick::resizeImage() +- Added imagick.locale_fix ini setting to fix drawing bug on some locale +- Suppressed warnings in readImageFile and pingImageFile (PECL Bug #12367) +- Added methods: +- ImagickPixel::clone() +- ImagickPixel::getColorAsString() +- Imagick::mergeImageLayers() +- Imagick::paintFloodfillImage() +- Imagick::setFont() +- Imagick::getFont() +- Imagick::setPointsize() +- Imagick::getPointsize() + +------------------------------------------------------------------- +Thu Oct 25 05:45:15 UTC 2007 - crrodriguez@suse.de + +- 2.0.1 final +- ImagickDraw::setFont and ImagickDraw::setFontFamily now allow only valid fonts +- Added IMAGICK_EXTVER and IMAGICK_EXTNUM constants +- Added check for empty or invalid pseudo format string in Imagick::newPseudoImage +- Fixed incorrect arg hinting for Imagick::compareImageChannels + +------------------------------------------------------------------- +Wed Oct 17 23:32:18 UTC 2007 - crrodriguez@suse.de + +- 2.0.1RC1 +- Added Imagick::distortImage and Imagick::setlastiterator +- Added optional fourth parameter to newImage to set the format when creating a new canvas +- Fixed fitting to zero size image in Imagick::thumbnailImage +- Fixed the destroy methods +- Most of the operations that read / add images to the stack move the iterator position to the last element +- Fixed memleaks in methods that replace the internal MagickWand* pointer + +------------------------------------------------------------------- +Tue Oct 2 22:24:04 UTC 2007 - crrodriguez@suse.de + +- 2.0.0 final +- Added Imagick::extentImage +- Added Imagick::IMAGICK_VERSION_NUMBER and Imagick::IMAGICK_VERSION_STRING constants +- Fixed a possible crash in Imagick::newPseudoImage + +------------------------------------------------------------------- +Tue Sep 25 19:33:14 UTC 2007 - crrodriguez@suse.de + +- update to RC4 + +------------------------------------------------------------------- +Thu Sep 20 19:22:02 CEST 2007 - crrodriguez@suse.de + +- update to RC3 + +------------------------------------------------------------------- +Sat Sep 8 03:16:16 CEST 2007 - crrodriguez@suse.de + +- update to RC2 + +------------------------------------------------------------------- +Fri Aug 17 21:47:19 UTC 2007 - crrodriguez@suse.de + +- update to RC1 + +------------------------------------------------------------------- +Sun Jul 8 04:08:28 UTC 2007 - judas_iscariote@shorewall.net + +- Update to version 2.0.0b2, feature upgrade, backward incompatible. + +------------------------------------------------------------------- +Fri Apr 13 18:31:29 UTC 2007 - judas_iscariote@shorewall.net + +- update to version 0.9.13 +- Fixed compile error with newer versions of GraphicsMagick and ImageMagick +- Fixed assertion when using imagick_setfillcolor +- Fixed segfault when an empty blob is loaded +- Use new API for fetching support image formats / fonts + +------------------------------------------------------------------- +Fri Jul 01 00:00:00 2006 - soporte@onfocus.cl + +- very first build diff --git a/php-imagick.spec b/php-imagick.spec new file mode 100644 index 0000000..f529999 --- /dev/null +++ b/php-imagick.spec @@ -0,0 +1,92 @@ +# +# spec file for package php-imagick +# +# Copyright (c) 2022 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%define pkg_name imagick + +%define flavor @BUILD_FLAVOR@%{nil} +%if "%{flavor}" == "" || (0%{?suse_version} >= 1550 && "%{flavor}" == "php7") +%define php_name php +ExclusiveArch: do-not-build +%else +%define php_name %{flavor} +%endif +%if 0%{?suse_version} <= 1500 +%define php_extdir %(%{__php_config} --extension-dir) +%define php_cfgdir %{_sysconfdir}/%{php_name}/conf.d +%endif + +Name: %{php_name}-%{pkg_name} +Version: 3.7.0 +Release: 0 +Summary: Wrapper to the ImageMagick library +License: PHP-3.01 +Group: Productivity/Networking/Web/Servers +URL: https://pecl.php.net/package/imagick +Source0: https://pecl.php.net/get/%{pkg_name}-%{version}.tgz +Source1: php-%{pkg_name}-rpmlintrc +# SUSE: Make build reproduceable +Patch0: imagick-reproducible.patch +# PATCH-FIX-OPENSUSE - test expected to fail because of resource limits in policy.xml +Patch10: imagick-xfail-test014.patch +# PATCH-FIX-OPENSUSE - calculation of kurtosis and skewness was fixed in Imagick-7.1.1.24 +Patch11: imagick-fix-test316.patch +Patch12: imagick-php_strtolower-php84.patch +BuildRequires: %{php_name}-devel >= 7.0.1 +BuildRequires: ImageMagick-devel >= 6.5.3.10 +BuildRequires: ghostscript-fonts-std +BuildRequires: re2c +Requires: php(api) = %{php_core_api} +Requires: php(zend-abi) = %{php_zend_api} +Conflicts: %{php_name}-gmagick +Provides: php-%{pkg_name} = %{version} +Obsoletes: php-%{pkg_name} < %{version} + +%description +PHP extension to create, modify and obtain meta information of images using +the ImageMagick API. + +%prep +%autosetup -n %{pkg_name}-%{version} -p1 + +# fix script-without-shebang/spurious-executable-perm +chmod 0644 ChangeLog LICENSE + +%build +export CFLAGS="%{optflags} -fvisibility=hidden" +%{__phpize} +%configure +%make_build + +%check +%make_build PHP_EXECUTABLE=%{__php} NO_INTERACTION=1 test + +%install +make install-modules INSTALL_ROOT=%{buildroot} +mkdir -p %{buildroot}%{php_cfgdir} +cat > %{buildroot}%{php_cfgdir}/%{pkg_name}.ini <