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.spec327
1 files changed, 264 insertions, 63 deletions
diff --git a/php-pecl-imagick.spec b/php-pecl-imagick.spec
index 6ed63da..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-2019 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,56 +45,83 @@
%else
%global ini_name 40-%{pecl_name}.ini
%endif
-%global upstream_version 3.4.4
-#global upstream_prever RC2
-
-# We don't really rely on upstream ABI
-%global imbuildver %(pkg-config --silence-errors --modversion ImageMagick 2>/dev/null || echo 65536)
+%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.7.%{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: 4%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}
-Source0: http://pecl.php.net/get/%{pecl_name}-%{upstream_version}%{?upstream_prever}.tgz
+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
-URL: http://pecl.php.net/package/imagick
+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
+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} >= 8
-BuildRequires: ImageMagick-devel
-Requires: ImageMagick-libs%{?_isa} >= %{imbuildver}
+%if %{with im7}
+BuildRequires: ImageMagick7-devel
%else
+%if %{with im6}
BuildRequires: ImageMagick6-devel
-Requires: ImageMagick6-libs%{?_isa} >= %{imbuildver}
+%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}
@@ -108,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
@@ -123,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})}.
@@ -132,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.
@@ -139,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' \
@@ -162,9 +211,14 @@ then : "Font files detected!"
exit 1
fi
-cd NTS
-%patch0 -p1
-%patch1 -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
@@ -187,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
@@ -229,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
@@ -261,38 +329,44 @@ fi
%check
-%if "%{php_version}" > "7.4"
-export REPORT_EXIT_STATUS=0
-%else
+cd %{sources}
export REPORT_EXIT_STATUS=1
-%endif
+
# 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
@@ -305,6 +379,7 @@ cd ../ZTS
%endif
%files devel
+%doc NTS/REFLECTION
%doc %{pecl_testdir}/%{pecl_name}
%{php_incldir}/ext/%{pecl_name}
@@ -314,6 +389,132 @@ 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
+
+* Wed Apr 1 2020 Remi Collet <remi@remirepo.net> - 3.4.4-10
+- drop dependency on ImageMagick6-libs for EL-7.8
+ see https://github.com/remicollet/remirepo/issues/144
+
+* Thu Feb 27 2020 Remi Collet <remi@remirepo.net> - 3.4.4-9
+- rebuild
+
+* Tue Oct 29 2019 Remi Collet <remi@remirepo.net> - 3.4.4-7
+- add patch for latest ImageMagick from
+ https://github.com/Imagick/imagick/pull/302
+
+* Tue Sep 03 2019 Remi Collet <remi@remirepo.net> - 3.4.4-6
+- rebuild for 7.4.0RC1
+
+* Tue Jul 23 2019 Remi Collet <remi@remirepo.net> - 3.4.4-5
+- add patch for PHP 7.4 from
+ https://github.com/Imagick/imagick/pull/296
+- re-enable test suite
+
* Tue Jul 23 2019 Remi Collet <remi@remirepo.net> - 3.4.4-4
- rebuild for 7.4.0beta1
- ignore test suite for now