summaryrefslogtreecommitdiffstats
path: root/php-pecl-imagick.spec
diff options
context:
space:
mode:
Diffstat (limited to 'php-pecl-imagick.spec')
-rw-r--r--php-pecl-imagick.spec294
1 files changed, 152 insertions, 142 deletions
diff --git a/php-pecl-imagick.spec b/php-pecl-imagick.spec
index b6bfefc..32467ee 100644
--- a/php-pecl-imagick.spec
+++ b/php-pecl-imagick.spec
@@ -1,147 +1,117 @@
# remirepo spec file for php-pecl-imagick
#
-# Copyright (c) 2008-2022 Remi Collet
-# License: CC-BY-SA
-# http://creativecommons.org/licenses/by-sa/4.0/
+# SPDX-FileCopyrightText: Copyright 2008-2025 Remi Collet
+# SPDX-License-Identifier: CECILL-2.1
+# http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
#
# Please, preserve the changelog entries
#
-%bcond_with im6
-%bcond_with im7
%bcond_without tests
+%bcond_with im6
-# 2 builds needed to get the full set
-# --with im6
-# --with im7
+# Distribution default IM version
+%if 0%{?fedora} >= 38 || 0%{?rhel} >= 10
+%global default 7
+%else
+%global default 6
+%endif
-# we don't want -z defs linker flag
-%undefine _strict_symbol_defs_build
+# NOTICE: 2 builds needed to get the full set
+# All distro
+# default (im7)
+# On EL 8 and 9
+# --with im6
%if 0%{?scl:1}
-%scl_package php-pecl-imagick
+%scl_package php-pecl-imagick
+%else
+%global _root_prefix %{_prefix}
%endif
%global gh_commit 623a3ac0386c93d62c60cbfe610505f2e35780f3
%global gh_short %(c=%{gh_commit}; echo ${c:0:7})
%global gh_owner imagick
%global gh_project imagick
-#global gh_date 20151204
%global pecl_name imagick
+%global pie_vend imagick
+%global pie_proj imagick
%global with_zts 0%{!?_without_zts:%{?__ztsphp:1}}
-%if "%{php_version}" < "5.6"
-%global ini_name %{pecl_name}.ini
-%else
%global ini_name 40-%{pecl_name}.ini
-%endif
-%global upstream_version 3.7.0
-#global upstream_prever RC1
+%global upstream_version 3.8.0
+#global upstream_prever RC2
+%global sources %{pecl_name}-%{upstream_version}%{?upstream_prever}
+%global _configure ../%{sources}/configure
-%if %{with im7}
-Summary: Extension to create and modify images using ImageMagick 7
-Name: %{?scl_prefix}php-pecl-imagick-im7
-%else
+%if %{with im6}
Summary: Extension to create and modify images using ImageMagick 6
Name: %{?scl_prefix}php-pecl-imagick-im6
+%else
+Summary: Extension to create and modify images using ImageMagick 7
+Name: %{?scl_prefix}php-pecl-imagick-im7
%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;')}}
-Source0: https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{pecl_name}-%{version}-%{gh_short}.tar.gz
-%else
-Release: 1.16%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}
+Release: 1%{?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
BuildRequires: make
BuildRequires: %{?dtsprefix}gcc
BuildRequires: %{?scl_prefix}php-devel
BuildRequires: %{?scl_prefix}php-pear
-BuildRequires: pcre-devel
-%if %{with im7}
-BuildRequires: ImageMagick7-devel
-%else
%if %{with im6}
BuildRequires: ImageMagick6-devel
%else
-BuildRequires: ImageMagick-devel
-%endif
+BuildRequires: ImageMagick7-devel
%endif
Requires: %{?scl_prefix}php(zend-abi) = %{php_zend_api}
Requires: %{?scl_prefix}php(api) = %{php_core_api}
-%{?_sclreq:Requires: %{?scl_prefix}runtime%{?_sclreq}%{?_isa}}
-Provides: %{?scl_prefix}php-%{pecl_name} = %{version}%{?prever}
-Provides: %{?scl_prefix}php-%{pecl_name}%{?_isa} = %{version}%{?prever}
-Provides: %{?scl_prefix}php-pecl(%{pecl_name}) = %{version}%{?prever}
-Provides: %{?scl_prefix}php-pecl(%{pecl_name})%{?_isa} = %{version}%{?prever}
+%if %{with im6}
+Provides: %{?scl_prefix}php-%{pecl_name} = %{version}
+Provides: %{?scl_prefix}php-%{pecl_name}%{?_isa} = %{version}
+Provides: %{?scl_prefix}php-pecl-imagick = %{version}-%{release}
+Provides: %{?scl_prefix}php-pecl-imagick%{?_isa} = %{version}-%{release}
+%else
+Provides: %{?scl_prefix}php-%{pecl_name} = 1:%{version}
+Provides: %{?scl_prefix}php-%{pecl_name}%{?_isa} = 1:%{version}
+Provides: %{?scl_prefix}php-pecl-imagick = 1:%{version}-%{release}
+Provides: %{?scl_prefix}php-pecl-imagick%{?_isa} = 1:%{version}-%{release}
+%endif
+Provides: %{?scl_prefix}php-pecl(%{pecl_name}) = %{version}
+Provides: %{?scl_prefix}php-pecl(%{pecl_name})%{?_isa} = %{version}
+Provides: %{?scl_prefix}php-pie(%{pie_vend}/%{pie_proj}) = %{version}
+Provides: %{?scl_prefix}php-%{pie_vend}-%{pie_proj} = %{version}
Conflicts: %{?scl_prefix}php-pecl-gmagick
-%if %{with im7}
-Conflicts: %{?scl_prefix}php-pecl-imagick-im6 <= %{version}-%{release}
-Conflicts: %{?scl_prefix}php-pecl-imagick <= %{version}-%{release}
-%else
+%if %{with im6}
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
-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}
-# Other third party repo stuff
-Obsoletes: php53-pecl-%{pecl_name} <= %{version}
-Obsoletes: php53u-pecl-%{pecl_name} <= %{version}
-Obsoletes: php54-pecl-%{pecl_name} <= %{version}
-Obsoletes: php54w-pecl-%{pecl_name} <= %{version}
-%if "%{php_version}" > "5.5"
-Obsoletes: php55u-pecl-%{pecl_name} <= %{version}
-Obsoletes: php55w-pecl-%{pecl_name} <= %{version}
-%endif
-%if "%{php_version}" > "5.6"
-Obsoletes: php56u-pecl-%{pecl_name} <= %{version}
-Obsoletes: php56w-pecl-%{pecl_name} <= %{version}
-%endif
-%if "%{php_version}" > "7.0"
-Obsoletes: php70u-pecl-%{pecl_name} <= %{version}
-Obsoletes: php70w-pecl-%{pecl_name} <= %{version}
-%endif
-%if "%{php_version}" > "7.1"
-Obsoletes: php71u-pecl-%{pecl_name} <= %{version}
-Obsoletes: php71w-pecl-%{pecl_name} <= %{version}
-%endif
-%if "%{php_version}" > "7.2"
-Obsoletes: php72u-pecl-%{pecl_name} <= %{version}
-Obsoletes: php72w-pecl-%{pecl_name} <= %{version}
-%endif
-%if "%{php_version}" > "7.3"
-Obsoletes: php73-pecl-%{pecl_name} <= %{version}
-Obsoletes: php73w-pecl-%{pecl_name} <= %{version}
-%endif
-%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}
+%else
+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
%endif
-
%description
Imagick is a native php extension to create and modify images
using the ImageMagick API.
Documentation: https://www.php.net/imagick
-%if %{with im7}
-Package built using ImageMagick version 7
-%else
+%if %{with im6}
Package built using ImageMagick version 6
+%else
+Package built using ImageMagick version 7
%endif
Package built for PHP %(%{__php} -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')%{?scl: as Software Collection (%{scl} by %{?scl_vendor}%{!?scl_vendor:rh})}.
@@ -152,11 +122,20 @@ Group: Development/Libraries
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{?scl_prefix}php-devel%{?_isa}
-%if %{with im7}
-Conflicts: %{?scl_prefix}php-pecl-imagick-im6-devel
-%else
+%if %{with im6}
Conflicts: %{?scl_prefix}php-pecl-imagick-im7-devel
+%if %{default} == 6
+Obsoletes: %{?scl_prefix}php-pecl-imagick-devel < %{version}-%{release}
+%else
+Conflicts: %{?scl_prefix}php-pecl-imagick-devel < %{version}-%{release}
+%endif
+%else
+Conflicts: %{?scl_prefix}php-pecl-imagick-im6-devel
+%if %{default} == 7
Obsoletes: %{?scl_prefix}php-pecl-imagick-devel < %{version}-%{release}
+%else
+Conflicts: %{?scl_prefix}php-pecl-imagick-devel < %{version}-%{release}
+%endif
%endif
Provides: %{?scl_prefix}php-pecl-imagick-devel = %{version}-%{release}
Provides: %{?scl_prefix}php-pecl-imagick-devel%{?_isa} = %{version}-%{release}
@@ -167,21 +146,13 @@ 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)
# don't install empty file (d41d8cd98f00b204e9800998ecf8427e)
sed -e '/anonymous_pro_minus.ttf/d' \
-e '/015-imagickdrawsetresolution.phpt/d' \
-e '/OFL.txt/d' \
- %{?_licensedir:-e '/LICENSE/s/role="doc"/role="src"/' } \
+ -e '/LICENSE/s/role="doc"/role="src"/' \
-i package.xml
if grep '\.ttf' package.xml
@@ -189,7 +160,7 @@ then : "Font files detected!"
exit 1
fi
-cd NTS
+cd %{sources}
: Avoid arginfo to be regenerated
rm *.stub.php
@@ -226,38 +197,47 @@ 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}
+[ -f Makefile.global ] && GLOBAL=Makefile.global || GLOBAL=build/Makefile.global
+sed -e 's/INSTALL_ROOT/DESTDIR/' -i $GLOBAL
+
: Standard NTS build
-cd NTS
-%{_bindir}/phpize
-%configure --with-imagick=%{prefix} --with-php-config=%{_bindir}/php-config
-make %{?_smp_mflags}
+cd ../NTS
+%configure --with-imagick=%{_root_prefix} --with-php-config=%{__phpconfig}
+%make_build
-: Dump REFLECTION
+: Dump REFLECTION and PHPINFO
+%{__php} --no-php-ini \
+ --define extension=modules/%{pecl_name}.so \
+ --define imagick.skip_version_check=1 \
+ --re imagick >../REFLECTION
%{__php} --no-php-ini \
--define extension=modules/%{pecl_name}.so \
- --re imagick >REFLECTION
+ --define imagick.skip_version_check=1 \
+ --ri imagick >../PHPINFO
%if %{with_zts}
-cd ../ZTS
: ZTS build
-%{_bindir}/zts-phpize
-%configure --with-imagick=%{prefix} --with-php-config=%{_bindir}/zts-php-config
-make %{?_smp_mflags}
+cd ../ZTS
+%configure --with-imagick=%{_root_prefix} --with-php-config=%{__ztsphpconfig}
+%make_build
%endif
%install
%{?dtsenable}
-make install INSTALL_ROOT=%{buildroot} -C NTS
+%make_install -C NTS
# Drop in the bit of configuration
install -D -m 644 %{ini_name} %{buildroot}%{php_inidir}/%{ini_name}
@@ -266,12 +246,12 @@ install -D -m 644 %{ini_name} %{buildroot}%{php_inidir}/%{ini_name}
install -D -p -m 644 package.xml %{buildroot}%{pecl_xmldir}/%{name}.xml
%if %{with_zts}
-make install INSTALL_ROOT=%{buildroot} -C ZTS
+%make_install -C ZTS
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
@@ -282,35 +262,20 @@ do [ -f $i ] && install -Dpm 644 $i %{buildroot}%{pecl_docdir
done
-%if 0%{?fedora} < 24 && 0%{?rhel} < 8
-# when pear installed alone, after us
-%triggerin -- %{?scl_prefix}php-pear
-if [ -x %{__pecl} ] ; then
- %{pecl_install} %{pecl_xmldir}/%{name}.xml >/dev/null || :
-fi
-
-# posttrans as pear can be installed after us
-%posttrans
-if [ -x %{__pecl} ] ; then
- %{pecl_install} %{pecl_xmldir}/%{name}.xml >/dev/null || :
-fi
-
-%postun
-if [ $1 -eq 0 -a -x %{__pecl} ] ; then
- %{pecl_uninstall} %{pecl_name} >/dev/null || :
-fi
-%endif
-
-
%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)
+# also see https://github.com/Imagick/imagick/issues/724
+rm tests/073_Imagick_forwardFourierTransformImage_basic.phpt
+rm tests/086_Imagick_forwardFourierTransformImage_basic.phpt
+rm tests/151_Imagick_subImageMatch_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 \
@@ -325,11 +290,21 @@ TEST_PHP_ARGS="-n -d extension=%{buildroot}%{php_extdir}/%{pecl_name}.so" \
%else
%{__php} -n run-tests.php -q --show-diff
%endif
+
+if [ -f %{php_extdir}/%{pecl_name}.so ]; then
+ # Only if same version
+ if %{__php} -n -d extension=%{pecl_name} -r 'exit(phpversion("%{pecl_name}")==="%{upstream_version}%{?upstream_prever}" ? 0 : 1);'
+ then
+ : upstream test suite for extension built with previous version
+ %{__php} --ri imagick
+ TEST_PHP_ARGS="-n -d extension=%{pecl_name}" \
+ %{__php} -n run-tests.php -q --show-diff %{?_smp_mflags}
+ fi
+fi
%endif
%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 \
@@ -338,7 +313,7 @@ cd ../ZTS
%files
-%{?_licensedir:%license NTS/LICENSE}
+%license %{sources}/LICENSE
%doc %{pecl_docdir}/%{pecl_name}
%{pecl_xmldir}/%{name}.xml
@@ -351,7 +326,8 @@ cd ../ZTS
%endif
%files devel
-%doc NTS/REFLECTION
+%doc REFLECTION
+%doc PHPINFO
%doc %{pecl_testdir}/%{pecl_name}
%{php_incldir}/ext/%{pecl_name}
@@ -361,6 +337,40 @@ cd ../ZTS
%changelog
+* Fri Apr 11 2025 Remi Collet <remi@remirepo.net> - 3.8.0-1
+- update to 3.8.0
+
+* Fri Mar 14 2025 Remi Collet <remi@remirepo.net> - 3.8.0~RC2-1
+- update to 3.8.0RC2
+- open https://github.com/Imagick/imagick/issues/723 test failure with PHP 5.x
+- open https://github.com/Imagick/imagick/issues/724 erratic segfault in subImageMatch
+
+* Mon Dec 23 2024 Remi Collet <remi@remirepo.net> - 3.7.0-13
+- re-license spec file to CECILL-2.1
+- im7 by default, change using --with im6 build option
+
+* Thu Nov 21 2024 Remi Collet <remi@remirepo.net> - 3.7.0-12
+- drop unneeded build dependency
+
+* Fri Sep 27 2024 Remi Collet <remi@remirepo.net> - 3.7.0-11
+- add patch for PHP 8.4 from
+ https://github.com/Imagick/imagick/pull/690
+
+* 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
+
* Wed Jan 12 2022 Remi Collet <remi@remirepo.net> - 3.7.0-1
- update to 3.7.0