diff options
Diffstat (limited to 'php-pecl-imagick.spec')
-rw-r--r-- | php-pecl-imagick.spec | 297 |
1 files changed, 239 insertions, 58 deletions
diff --git a/php-pecl-imagick.spec b/php-pecl-imagick.spec index a299dec..7e07143 100644 --- a/php-pecl-imagick.spec +++ b/php-pecl-imagick.spec @@ -1,23 +1,41 @@ # remirepo spec file for php-pecl-imagick # -# Copyright (c) 2008-2020 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 +%else +%global default 6 +%bcond_with im6 +%bcond_with im7 +%endif + +# 2 builds needed to get the full set +# --with im6 +# --with im7 + # we don't want -z defs linker flag %undefine _strict_symbol_defs_build %if 0%{?scl:1} -%global sub_prefix %{scl_prefix} -%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 mkoppanen +%global gh_owner imagick %global gh_project imagick #global gh_date 20151204 %global pecl_name imagick @@ -27,53 +45,83 @@ %else %global ini_name 40-%{pecl_name}.ini %endif -%global upstream_version 3.4.4 -#global upstream_prever RC2 +%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 -Summary: Extension to create and modify images using ImageMagick -Name: %{?sub_prefix}php-pecl-imagick +%if %{with im7} +Summary: Extension to create and modify images using ImageMagick 7 +Name: %{?scl_prefix}php-pecl-imagick-im7 +%else +Summary: Extension to create and modify images using ImageMagick 6 +Name: %{?scl_prefix}php-pecl-imagick-im6 +%endif Version: %{upstream_version}%{?upstream_prever:~%{upstream_prever}} %if 0%{?gh_date} -Release: 0.8.%{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: 11%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} +Release: 10.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 -Patch0: https://patch-diff.githubusercontent.com/raw/Imagick/imagick/pull/290.patch -Patch1: https://patch-diff.githubusercontent.com/raw/Imagick/imagick/pull/291.patch -Patch2: https://patch-diff.githubusercontent.com/raw/Imagick/imagick/pull/296.patch -Patch3: https://patch-diff.githubusercontent.com/raw/Imagick/imagick/pull/302.patch +Patch0: %{pecl_name}-tests.patch +BuildRequires: make BuildRequires: %{?dtsprefix}gcc -BuildRequires: %{?scl_prefix}php-devel > 5.4 +BuildRequires: %{?scl_prefix}php-devel BuildRequires: %{?scl_prefix}php-pear BuildRequires: pcre-devel -%if 0%{?fedora} >= 30 || 0%{?rhel} >= 7 -BuildRequires: ImageMagick-devel +%if %{with im7} +BuildRequires: ImageMagick7-devel %else +%if %{with im6} BuildRequires: ImageMagick6-devel +%else +BuildRequires: ImageMagick-devel +%endif %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}} +%if %{with im7} +Provides: %{?scl_prefix}php-%{pecl_name} = 1:%{version}%{?prever} +Provides: %{?scl_prefix}php-%{pecl_name}%{?_isa} = 1:%{version}%{?prever} +%else Provides: %{?scl_prefix}php-%{pecl_name} = %{version}%{?prever} Provides: %{?scl_prefix}php-%{pecl_name}%{?_isa} = %{version}%{?prever} +%endif Provides: %{?scl_prefix}php-pecl(%{pecl_name}) = %{version}%{?prever} Provides: %{?scl_prefix}php-pecl(%{pecl_name})%{?_isa} = %{version}%{?prever} -%if "%{?scl_prefix}" != "%{?sub_prefix}" -Provides: %{?scl_prefix}php-pecl-%{pecl_name} = %{version}-%{release} -Provides: %{?scl_prefix}php-pecl-%{pecl_name}%{?_isa} = %{version}-%{release} -%endif 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 "%{?vendor}" == "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} @@ -105,14 +153,7 @@ Obsoletes: php73w-pecl-%{pecl_name} <= %{version} %endif %if "%{php_version}" > "7.4" Obsoletes: php74-pecl-%{pecl_name} <= %{version} -Obsoletes: php74w-pecl-%{pecl_name} <= %{version} -%endif %endif - -%if 0%{?fedora} < 20 && 0%{?rhel} < 7 -# Filter private shared -%{?filter_provides_in: %filter_provides_in %{_libdir}/.*\.so$} -%{?filter_setup} %endif @@ -120,6 +161,13 @@ Obsoletes: php74w-pecl-%{pecl_name} <= %{version} 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 +Package built using ImageMagick version 6 +%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})}. @@ -129,6 +177,15 @@ 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 +Conflicts: %{?scl_prefix}php-pecl-imagick-im7-devel +Obsoletes: %{?scl_prefix}php-pecl-imagick-devel < %{version}-%{release} +%endif +Provides: %{?scl_prefix}php-pecl-imagick-devel = %{version}-%{release} +Provides: %{?scl_prefix}php-pecl-imagick-devel%{?_isa} = %{version}-%{release} + %description devel These are the files needed to compile programs using %{pecl_name} extension. @@ -136,18 +193,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) -# fix tests role -# https://github.com/mkoppanen/imagick/commit/64ef2a7991c2cdc22b9b2275e732439dc21cede8 sed -e '/anonymous_pro_minus.ttf/d' \ -e '/015-imagickdrawsetresolution.phpt/d' \ -e '/OFL.txt/d' \ @@ -159,13 +211,14 @@ then : "Font files detected!" exit 1 fi -cd NTS -%patch0 -p1 -%patch1 -p1 -%if "%{php_version}" > "7.4" -%patch2 -p1 -%endif -%patch3 -p1 +cd %{sources} +%patch -P0 -p1 + +: Avoid arginfo to be regenerated +rm *.stub.php + +: Fix permission for archive generated on Windows +find . -type f -exec chmod -x {} \; extver=$(sed -n '/#define PHP_IMAGICK_VERSION/{s/.* "//;s/".*$//;p}' php_imagick.h) if test "x${extver}" != "x%{upstream_version}%{?upstream_prever}"; then @@ -188,27 +241,41 @@ imagick.skip_version_check=1 ; Used to enable the image progress monitor. ;imagick.progress_monitor=0 + +; multi-thread management +;imagick.set_single_thread => 1 => 1 +;imagick.shutdown_sleep_count => 10 => 10 + +; to allow null images +;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 +%{__php} --no-php-ini \ + --define extension=modules/%{pecl_name}.so \ + --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 @@ -230,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 @@ -262,35 +329,44 @@ 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 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 \ - --modules | grep %{pecl_name} + --modules | grep '^%{pecl_name}$' +%if %{with tests} : upstream test suite for NTS extension TEST_PHP_EXECUTABLE=%{__php} \ TEST_PHP_ARGS="-n -d extension=%{buildroot}%{php_extdir}/%{pecl_name}.so" \ +%if "%{php_version}" > "7.4" +%{__php} -n run-tests.php -q --show-diff %{?_smp_mflags} +%else %{__php} -n run-tests.php -q --show-diff +%endif +%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 \ - --modules | grep %{pecl_name} + --modules | grep '^%{pecl_name}$' %endif %files -%{?_licensedir:%license NTS/LICENSE} +%{?_licensedir:%license %{sources}/LICENSE} %doc %{pecl_docdir}/%{pecl_name} %{pecl_xmldir}/%{name}.xml @@ -303,6 +379,7 @@ cd ../ZTS %endif %files devel +%doc NTS/REFLECTION %doc %{pecl_testdir}/%{pecl_name} %{php_incldir}/ext/%{pecl_name} @@ -312,6 +389,110 @@ 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 + +* Wed Jan 12 2022 Remi Collet <remi@remirepo.net> - 3.7.0-1 +- update to 3.7.0 + +* Wed Jan 5 2022 Remi Collet <remi@remirepo.net> - 3.7.0~RC1-1 +- update to 3.7.0RC1 + +* Mon Nov 22 2021 Remi Collet <remi@remirepo.net> - 3.6.0-2 +- rebuild with latest ImageMagick 6/7 + +* Wed Nov 17 2021 Remi Collet <remi@remirepo.net> - 3.6.0-1 +- update to 3.6.0 + +* Fri Nov 12 2021 Remi Collet <remi@remirepo.net> - 3.6.0~RC2-1 +- update to 3.6.0RC2 + +* Wed Nov 10 2021 Remi Collet <remi@remirepo.net> - 3.6.0~RC1-1 +- update to 3.6.0RC1 +- drop patch merged upstream + +* Fri Nov 5 2021 Remi Collet <remi@remirepo.net> - 3.5.1-4 +- EL-9 build + +* Mon Sep 20 2021 Remi Collet <remi@remirepo.net> - 3.5.1-3 +- fix #457 failed test with ImageMagick 6.9.12-23 and 7.1.0-8 + using patch from https://github.com/Imagick/imagick/pull/458 + +* Wed Sep 01 2021 Remi Collet <remi@remirepo.net> - 3.5.1-2 +- rebuild for 8.1.0RC1 + +* Fri Jul 23 2021 Remi Collet <remi@remirepo.net> - 3.5.1-1 +- update to 3.5.1 +- drop patch merged upstream + +* Wed Jul 21 2021 Remi Collet <remi@remirepo.net> - 3.5.1~RC1-1 +- update to 3.5.1RC1 +- add patch for PHP 8.1.0beta1 from + https://github.com/Imagick/imagick/pull/450 + +* Thu Jun 24 2021 Remi Collet <remi@remirepo.net> - 3.5.0-2 +- add REFLECTION in package documentation + +* Thu Jun 17 2021 Remi Collet <remi@remirepo.net> - 3.5.0-1 +- update to 3.5.0 +- open https://github.com/Imagick/imagick/pull/434 type issue related to HDRI +- open https://github.com/Imagick/imagick/pull/435 improve regen_arginfo +- open https://github.com/Imagick/imagick/pull/436 cleanup working directory + +* Wed Jun 16 2021 Remi Collet <remi@remirepo.net> - 3.5.0~RC2-1 +- update to 3.5.0RC2 +- rename to php-pecl-imagick-im6 or php-pecl-imagick-im7 +- drop all patches, all merged upstream including + https://github.com/Imagick/imagick/pull/428 add stubs in package + https://github.com/Imagick/imagick/pull/426 typo in type name + https://github.com/Imagick/imagick/pull/425 fix pass by ref usage + +* Tue Jun 15 2021 Remi Collet <remi@remirepo.net> - 3.5.0~RC1-1 +- update to 3.5.0RC1 +- drop all patches, all merged upstream +- add patch to fix some methods reflection from + https://github.com/Imagick/imagick/pull/421 + +* Wed Jun 9 2021 Remi Collet <remi@remirepo.net> - 3.4.4-18 +- add patches for PHP 8.1 from upstream and from + https://github.com/Imagick/imagick/pull/413 +- run tests in parallel (7.4+) + +* Mon Feb 22 2021 Remi Collet <remi@remirepo.net> - 3.4.4-17 +- build against ImageMagick6 and new soname + +* Mon Jan 25 2021 Remi Collet <remi@remirepo.net> - 3.4.4-16 +- add real fix for thread issue from + https://github.com/Imagick/imagick/pull/375 + +* Mon Jan 4 2021 Remi Collet <remi@remirepo.net> - 3.4.4-15 +- allow to use ImageMagick7 using --with im7 build option + +* Wed Sep 30 2020 Remi Collet <remi@remirepo.net> - 3.4.4-14 +- rebuild for PHP 8.0.0RC1 + +* Mon Sep 28 2020 Remi Collet <remi@remirepo.net> - 3.4.4-13 +- add patch for test suite with PHP 8 from + https://github.com/Imagick/imagick/pull/350 - simpler warning + +* Fri Sep 4 2020 Remi Collet <remi@remirepo.net> - 3.4.4-12 +- add patches for PHP 8 from upstream and + https://github.com/Imagick/imagick/pull/346 - SPL always there + https://github.com/Imagick/imagick/pull/347 - thread limit per request + https://github.com/Imagick/imagick/pull/348 - single thread + * Tue Apr 21 2020 Remi Collet <remi@remirepo.net> - 3.4.4-11 - build against ImageMagick on EL-7 |