%define php_name php%{?php_suffix}
%define modname imagick
%define status stable
+%define libversion %(pkg-config --modversion MagickCore 2>/dev/null || echo ERROR)
Summary: %{modname} - PHP wrapper to the Image Magick Library
Summary(pl.UTF-8): %{modname} - PHP-owy wrapper do biblioteki Image Magick
Name: %{php_name}-pecl-%{modname}
-Version: 3.4.2
-Release: 3
+Version: 3.7.0
+Release: 4
License: PHP 3.01
Group: Development/Languages/PHP
-Source0: http://pecl.php.net/get/%{modname}-%{version}.tgz
-# Source0-md5: 3f80e35c2434636cdb5df01b221b3ffa
+Source0: https://pecl.php.net/get/%{modname}-%{version}.tgz
+# Source0-md5: 0687774a6126467d4e5ede02171e981d
Patch0: skip_version_check.patch
-URL: http://pecl.php.net/package/imagick/
+URL: https://pecl.php.net/package/imagick
+BuildRequires: %{php_name}-cli
BuildRequires: %{php_name}-devel >= 4:5.3
+BuildRequires: %{php_name}-pcre
+BuildRequires: %{php_name}-spl
BuildRequires: ImageMagick-devel >= 1:6.2.4.0
+BuildRequires: pkgconfig
+BuildRequires: re2c
BuildRequires: rpmbuild(macros) >= 1.650
%if %{with tests}
-BuildRequires: %{php_name}-cli
-BuildRequires: %{php_name}-pcre
-BuildRequires: %{php_name}-spl
BuildRequires: ImageMagick-coder-jpeg
BuildRequires: ImageMagick-coder-png
BuildRequires: ImageMagick-coder-tiff
%endif
%{?requires_php_extension}
-Requires(triggerpostun): sed >= 4.0
+Requires(postun): sed >= 4.0
Requires: %{php_name}-spl
Suggests: ImageMagick-coder-jpeg
Suggests: ImageMagick-coder-png
Suggests: ImageMagick-coder-tiff
Provides: php(imagick) = %{version}
+Provides: php(lib-imagick) = %{libversion}
Obsoletes: php-pecl-imagick < 3.1.2-2
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
mv %{modname}-%{version}/* .
%patch0 -p1
-# skip failing tests
-Test() {
- nf=$(eval echo \$$#)
- t=$nf; t=${t#\[}; t=${t%\]}
- mv $t $t.skip
+xfail() {
+ local t=$1
+ test -f $t
+ cat >> $t <<-EOF
+
+ --XFAIL--
+ Skip
+ EOF
}
+
+while read line; do
+ t=${line##*\[}; t=${t%\]}
+ test -z "$t" && continue
+ case "$t" in
+ '#'*) continue;;
+ esac
+ xfail $t
+done << 'EOF'
+
+# skip failing tests
Test Imagick, annotateImage [tests/034_Imagick_annotateImage_basic.phpt]
+Test Imagick, setRegistry and getRegistry [tests/150_Imagick_setregistry.phpt]
Test ImagickDraw, composite [tests/177_ImagickDraw_composite_basic.phpt]
Test ImagickDraw, setFontSize [tests/206_ImagickDraw_setFontSize_basic.phpt]
Test ImagickDraw, setFontFamily [tests/207_ImagickDraw_setFontFamily_basic.phpt]
Test Tutorial, psychedelicFont [tests/241_Tutorial_psychedelicFont_basic.phpt]
Test Tutorial, svgExample [tests/243_Tutorial_svgExample_basic.phpt]
Test Tutorial, psychedelicFontGif [tests/244_Tutorial_psychedelicFontGif_basic.phpt]
+Test Imagick, Imagick::exportImagePixels [tests/256_Imagick_exportImagePixels_basic.phpt]
+Test ImagickDraw, getTextDirection [tests/264_ImagickDraw_getTextDirection_basic.phpt]
+Test ImagickDraw, getFontResolution [tests/266_ImagickDraw_getFontResolution_basic.phpt]
+%ifarch x32
+# Fail on 7.0
+Test Imagick, quantizeImage [tests/101_Imagick_quantizeImage_basic.phpt]
+Test Imagick, uniqueImageColors [tests/163_Imagick_uniqueImageColors_basic.phpt]
+Test Tutorial, deconstructGif [tests/237_Tutorial_deconstructGif_basic.phpt]
+Test ImagickPixelIterator, setIteratorRow [tests/251_ImagickPixelIterator_setIteratorRow_basic.phpt]
+%endif
+# Fail on 5.3, 5.5, 5.6, 7.0, 7.1, 7.2
+Test Tutorial, fxAnalyzeImage [tests/229_Tutorial_fxAnalyzeImage_case1.phpt]
+
+# 5.3, 5.5, 5.6, 7.0/x32, 7.1, 7.2, 7.3, 7.4
+ImagickKernel::fromMatrix exceptions [tests/280_imagickkernel_exception_invalid_origin.phpt]
+Imagick::setImageAlpha [tests/274_imagick_setImageAlpha.phpt]
+Test ImagickDraw:: setTextInterlineSpacing [tests/279_ImagickDraw_setTextInterlineSpacing.phpt]
+Test Imagick::optimizeimagelayers and Imagick::optimizeimagetransparency [tests/278_Imagick_optimaze_gif.phpt]
+
+# php73/x32
+Test PHP bug #59378 writing to php://memory is incomplete [tests/bug59378.phpt]
+
+# php 7.4, 8.0
+%if "%php_major_version.%php_minor_version" == "7.4"
+Casting color and opacity to pixel [tests/003_cast_color_opacity.phpt]
+Different types of thumbnailing [tests/002_thumbnail.phpt]
+ImagickKernel::fromMatrix test [tests/145_imagickkernel_coverage.phpt]
+Imagick::resizeImage prevent 0 width/height images [tests/github_174.phpt]
+Test autoGammaImage [tests/263_autoGammaImage.phpt]
+Test compositeImageGravity [tests/261_compositeImageGravity.phpt]
+Test cropthumbnail [tests/006_cropthumbnail.phpt]
+Test filling thumbnail with color [tests/007_thumbnail_fill.phpt]
+Test for round issues [tests/064_cropThumbNailImage.phpt]
+Test Imagick::colorDecisionListImage [tests/277_Imagick_colorDecisionListImage.phpt]
+Test Imagick, progressMonitor [tests/127_Imagick_progressMonitor_basic.phpt]
+Test importimagepixels [tests/010_importimagepixels.phpt]
+Testing clone keyword [tests/004_clone.phpt]
+Testing that cloned object does not affect the original [tests/012-clone-separation.phpt]
+Test thumbnail bestfit [tests/005_bestfit.phpt]
+%ifarch x32 %{ix86}
+Test localContrastImage [tests/260_localContrastImage.phpt]
+%endif
+%endif
+EOF
%build
phpize
%{__make} \
CFLAGS_CLEAN="%{rpmcflags}"
-%if %{with tests}
%{__php} -n -q \
-d extension_dir=modules \
+%if "%php_major_version.%php_minor_version" < "7.4"
-d extension=%{php_extensiondir}/pcre.so \
-d extension=%{php_extensiondir}/spl.so \
+%endif
-d extension=%{modname}.so \
-m > modules.log
grep %{modname} modules.log
+%if %{with tests}
export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2
%{__make} test \
PHP_EXECUTABLE=%{__php} \
+%if "%php_major_version.%php_minor_version" < "7.4"
PHP_TEST_SHARED_SYSTEM_EXTENSIONS="pcre spl" \
%endif
+%endif
%install
rm -rf $RPM_BUILD_ROOT