diff options
Diffstat (limited to 'php-pecl-memcached.spec')
-rw-r--r-- | php-pecl-memcached.spec | 280 |
1 files changed, 132 insertions, 148 deletions
diff --git a/php-pecl-memcached.spec b/php-pecl-memcached.spec index 1f830c4..2f60674 100644 --- a/php-pecl-memcached.spec +++ b/php-pecl-memcached.spec @@ -3,16 +3,13 @@ # # Fedora spec file for php-pecl-memcached # -# Copyright (c) 2009-2021 Remi Collet -# License: CC-BY-SA -# http://creativecommons.org/licenses/by-sa/4.0/ +# SPDX-FileCopyrightText: Copyright 2009-2025 Remi Collet +# SPDX-License-Identifier: CECILL-2.1 +# http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt # # Please, preserve the changelog entries # -# 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-memcached @@ -21,62 +18,66 @@ %endif %bcond_without fastlz +%bcond_without zstd %bcond_without igbinary %bcond_without msgpack %bcond_without tests %global with_zts 0%{!?_without_zts:%{?__ztsphp:1}} +%global pie_vend php-memcached +%global pie_proj php-memcached %global pecl_name memcached # After 40-igbinary, 40-json, 40-msgpack %global ini_name 50-%{pecl_name}.ini +%global upstream_version 3.3.0 +#global upstream_prever RC1 +# upstream use dev => alpha => beta => RC +# make RPM happy DEV => alpha => beta => rc +%global upstream_lower %(echo %{upstream_prever} | tr '[:upper:]' '[:lower:]') +%global sources %{pecl_name}-%{upstream_version}%{?upstream_prever} +%global _configure ../%{sources}/configure + + Summary: Extension to work with the Memcached caching daemon -Name: %{?sub_prefix}php-pecl-memcached -Version: 3.1.5 -Release: 10%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} -License: PHP +Name: %{?scl_prefix}php-pecl-memcached +Version: %{upstream_version}%{?upstream_prever:~%{upstream_lower}} +Release: 2%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} +License: PHP-3.01 URL: https://pecl.php.net/package/%{pecl_name} -Source0: https://pecl.php.net/get/%{pecl_name}-%{version}.tgz - -Patch0: https://patch-diff.githubusercontent.com/raw/php-memcached-dev/php-memcached/pull/461.patch -Patch1: https://patch-diff.githubusercontent.com/raw/php-memcached-dev/php-memcached/pull/463.patch -Patch2: https://patch-diff.githubusercontent.com/raw/php-memcached-dev/php-memcached/pull/465.patch -Patch3: https://patch-diff.githubusercontent.com/raw/php-memcached-dev/php-memcached/pull/467.patch -Patch4: https://patch-diff.githubusercontent.com/raw/php-memcached-dev/php-memcached/pull/468.patch -Patch5: https://patch-diff.githubusercontent.com/raw/php-memcached-dev/php-memcached/pull/469.patch -Patch6: https://patch-diff.githubusercontent.com/raw/php-memcached-dev/php-memcached/pull/472.patch -Patch7: https://patch-diff.githubusercontent.com/raw/php-memcached-dev/php-memcached/pull/473.patch -Patch8: https://patch-diff.githubusercontent.com/raw/php-memcached-dev/php-memcached/pull/486.patch -Patch9: https://patch-diff.githubusercontent.com/raw/php-memcached-dev/php-memcached/pull/487.patch -Patch10: https://patch-diff.githubusercontent.com/raw/php-memcached-dev/php-memcached/pull/488.patch +Source0: https://pecl.php.net/get/%{sources}.tgz BuildRequires: %{?dtsprefix}gcc -BuildRequires: %{?scl_prefix}php-devel >= 7 +BuildRequires: %{?scl_prefix}php-devel >= 7.0 BuildRequires: %{?scl_prefix}php-pear BuildRequires: %{?scl_prefix}php-json %if %{with igbinary} -BuildRequires: %{?sub_prefix}php-pecl-igbinary-devel +BuildRequires: %{?scl_prefix}php-pecl-igbinary-devel %endif %if %{with msgpack} -BuildRequires: %{?sub_prefix}php-pecl-msgpack-devel +BuildRequires: %{?scl_prefix}php-pecl-msgpack-devel %endif BuildRequires: zlib-devel BuildRequires: cyrus-sasl-devel %if %{with fastlz} BuildRequires: fastlz-devel %endif +%if %{with zstd} +BuildRequires: libzstd-devel +%endif %if %{with tests} BuildRequires: memcached %endif BuildRequires: pkgconfig(libevent) >= 2.0.2 -%if 0%{?rhel} == 7 || 0%{?rhel} == 8 +%if 0%{?rhel} && 0%{?rhel} < 10 %global move_to_opt 1 BuildRequires: %{?vendeur:%{vendeur}-}libmemcached-awesome-devel >= 1.1 Requires: libevent%{?_isa} Requires: fastlz%{?_isa} Requires: zlib%{?_isa} +Requires: libzstd%{?_isa} Requires: cyrus-sasl-lib%{?_isa} Requires: %{?vendeur:%{vendeur}-}libmemcached-awesome%{?_isa} %else @@ -88,61 +89,21 @@ Requires: %{?scl_prefix}php(zend-abi) = %{php_zend_api} Requires: %{?scl_prefix}php(api) = %{php_core_api} Requires: %{?scl_prefix}php-json%{?_isa} %if %{with igbinary} -Requires: %{?sub_prefix}php-igbinary%{?_isa} +Requires: %{?scl_prefix}php-igbinary%{?_isa} %endif %if %{with msgpack} -Requires: %{?sub_prefix}php-msgpack%{?_isa} -%endif -%{?_sclreq:Requires: %{?scl_prefix}runtime%{?_sclreq}%{?_isa}} - -Provides: %{?scl_prefix}php-%{pecl_name} = %{version} -Provides: %{?scl_prefix}php-%{pecl_name}%{?_isa} = %{version} -Provides: %{?scl_prefix}php-pecl(%{pecl_name}) = %{version} -Provides: %{?scl_prefix}php-pecl(%{pecl_name})%{?_isa} = %{version} -%if "%{?scl_prefix}" != "%{?sub_prefix}" -Provides: %{?scl_prefix}php-pecl-%{pecl_name} = %{version}-%{release} -Provides: %{?scl_prefix}php-pecl-%{pecl_name}%{?_isa} = %{version}-%{release} +Requires: %{?scl_prefix}php-msgpack%{?_isa} %endif -%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} -Obsoletes: php55u-pecl-%{pecl_name} <= %{version} -Obsoletes: php55w-pecl-%{pecl_name} <= %{version} -Obsoletes: php56u-pecl-%{pecl_name} <= %{version} -Obsoletes: php56w-pecl-%{pecl_name} <= %{version} -Obsoletes: php70u-pecl-%{pecl_name} <= %{version} -Obsoletes: php70w-pecl-%{pecl_name} <= %{version} -%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} -%endif -%endif +Provides: %{?scl_prefix}php-%{pecl_name} = %{version} +Provides: %{?scl_prefix}php-%{pecl_name}%{?_isa} = %{version} +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} %if %{move_to_opt} -%{?filter_requires_in: %filter_requires_in %{_libdir}/.*\.so$} +%global __requires_exclude_from ^%{_libdir}/.*$ %endif -%{?filter_setup} %description @@ -160,28 +121,13 @@ Package built for PHP %(%{__php} -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSIO %prep %setup -c -q -mv %{pecl_name}-%{version} NTS # Don't install/register tests sed -e 's/role="test"/role="src"/' \ - %{?_licensedir:-e '/LICENSE/s/role="doc"/role="src"/' } \ + -e '/LICENSE/s/role="doc"/role="src"/' \ -i package.xml -cd NTS -%if "%{php_version}" > "8.0" -%patch0 -p1 -b .pr461 -%patch1 -p1 -b .pr463 -%patch2 -p1 -b .pr465 -%patch3 -p1 -b .pr467 -%patch4 -p1 -b .pr468 -%patch5 -p1 -b .pr469 -%patch6 -p1 -b .pr472 -%patch7 -p1 -b .pr473 -%patch8 -p1 -b .pr486 -%patch9 -p1 -b .pr486 -%endif -%patch10 -p1 -b .pr488 - +cd %{sources} %if %{with fastlz} rm -r fastlz sed -e '/name=.fastlz/d' -i ../package.xml @@ -189,9 +135,9 @@ sed -e '/name=.fastlz/d' -i ../package.xml # Check version as upstream often forget to update this extver=$(sed -n '/#define PHP_MEMCACHED_VERSION/{s/.* "//;s/".*$//;p}' php_memcached.h) -if test "x${extver}" != "x%{version}%{?gh_date:-dev}%{?intver}"; then - : Error: Upstream HTTP version is now ${extver}, expecting %{version}%{?prever}%{?gh_date:-dev}. - : Update the pdover macro and rebuild. +if test "x${extver}" != "x%{upstream_version}%{?upstream_prever:%{upstream_prever}}"; then + : Error: Upstream extension version is ${extver}, expecting %{upstream_version}%{?upstream_prever:%{upstream_prever}}. + : Update the macro and rebuild. exit 1 fi cd .. @@ -217,10 +163,11 @@ extension=%{pecl_name}.so EOF # default options with description from upstream -cat NTS/memcached.ini >>%{ini_name} +cat %{sources}/memcached.ini >>%{ini_name} +mkdir NTS %if %{with_zts} -cp -r NTS ZTS +mkdir ZTS %endif @@ -249,18 +196,24 @@ peclconf() { %if %{with fastlz} --with-system-fastlz \ %endif +%if %{with zstd} + --with-zstd \ +%endif --with-php-config=$1 } -cd NTS -%{_bindir}/phpize -peclconf %{_bindir}/php-config -make %{?_smp_mflags} +cd %{sources} +%{__phpize} +[ -f Makefile.global ] && GLOBAL=Makefile.global || GLOBAL=build/Makefile.global +sed -e 's/INSTALL_ROOT/DESTDIR/' -i $GLOBAL + +cd ../NTS +peclconf %{__phpconfig} +%make_build %if %{with_zts} cd ../ZTS -%{_bindir}/zts-phpize -peclconf %{_bindir}/zts-php-config -make %{?_smp_mflags} +peclconf %{__ztsphpconfig} +%make_build %endif @@ -268,7 +221,7 @@ make %{?_smp_mflags} %{?dtsenable} # Install the NTS extension -make install -C NTS INSTALL_ROOT=%{buildroot} +%make_install -C NTS # Drop in the bit of configuration # rename to z-memcached to be load after msgpack @@ -279,37 +232,17 @@ install -D -m 644 package.xml %{buildroot}%{pecl_xmldir}/%{name}.xml # Install the ZTS extension %if %{with_zts} -make install -C ZTS INSTALL_ROOT=%{buildroot} +%make_install -C ZTS install -D -m 644 %{ini_name} %{buildroot}%{php_ztsinidir}/%{ini_name} %endif # Documentation -cd NTS +cd %{sources} for i in $(grep 'role="doc"' ../package.xml | sed -e 's/^.*name="//;s/".*$//') do install -Dpm 644 $i %{buildroot}%{pecl_docdir}/%{pecl_name}/$i 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 OPT="-n" [ -f %{php_extdir}/igbinary.so ] && OPT="$OPT -d extension=igbinary.so" @@ -319,42 +252,38 @@ OPT="-n" : Minimal load test for NTS extension %{__php} $OPT \ -d extension=%{buildroot}%{php_extdir}/%{pecl_name}.so \ - --modules | grep %{pecl_name} + --modules | grep '^%{pecl_name}$' %if %{with_zts} : Minimal load test for ZTS extension %{__ztsphp} $OPT \ -d extension=%{buildroot}%{php_ztsextdir}/%{pecl_name}.so \ - --modules | grep %{pecl_name} + --modules | grep '^%{pecl_name}$' %endif %if %{with tests} +cd %{sources} ret=0 +%if "%{php_version}" < "7.3" +# ::1:50770 vs [::1]:%s +rm tests/memcachedserver6.phpt +%endif + : Launch the Memcached service -port=$(%{__php} -r 'echo 10000 + PHP_MAJOR_VERSION*100 + PHP_MINOR_VERSION*10 + PHP_INT_SIZE + 0%{?scl:1};') +port=$(%{__php} -r 'echo 10000 + PHP_MAJOR_VERSION*1000 + PHP_MINOR_VERSION*100 + PHP_INT_SIZE + 0%{?scl:10} + %{?fedora}%{?rhel};') memcached -p $port -U $port -d -P $PWD/memcached.pid -sed -e "s/11211/$port/" -i ?TS/tests/* +sed -e "s/11211/$port/" -i tests/* + +: Port for MemcachedServer +port=$(%{__php} -r 'echo 12000 + PHP_MAJOR_VERSION*1000 + PHP_MINOR_VERSION*100 + PHP_INT_SIZE + 0%{?scl:10} + %{?fedora}%{?rhel};') +sed -e "s/3434/$port/" -i tests/* : Run the upstream test Suite for NTS extension -pushd NTS TEST_PHP_EXECUTABLE=%{__php} \ -TEST_PHP_ARGS="$OPT -d extension=$PWD/modules/%{pecl_name}.so" \ -NO_INTERACTION=1 \ -REPORT_EXIT_STATUS=1 \ -%{__php} -n run-tests.php -x --show-diff || ret=1 -popd - -%if %{with_zts} -: Run the upstream test Suite for ZTS extension -pushd ZTS -TEST_PHP_EXECUTABLE=%{__ztsphp} \ -TEST_PHP_ARGS="$OPT -d extension=$PWD/modules/%{pecl_name}.so" \ -NO_INTERACTION=1 \ +TEST_PHP_ARGS="$OPT -d extension=$PWD/../NTS/modules/%{pecl_name}.so" \ REPORT_EXIT_STATUS=1 \ -%{__ztsphp} -n run-tests.php -x --show-diff || ret=1 -popd -%endif +%{__php} -n run-tests.php -q -x --show-diff || ret=1 # Cleanup if [ -f memcached.pid ]; then @@ -367,7 +296,7 @@ exit $ret %files -%{?_licensedir:%license NTS/LICENSE} +%license %{sources}/LICENSE %doc %{pecl_docdir}/%{pecl_name} %{pecl_xmldir}/%{name}.xml @@ -381,6 +310,61 @@ exit $ret %changelog +* Mon Jul 7 2025 Remi Collet <remi@remirepo.net> - 3.3.0-2 +- re-license spec file to CECILL-2.1 +- add pie virtual provides + +* Fri Oct 18 2024 Remi Collet <remi@remirepo.net> - 3.3.0-1 +- update to 3.3.0 + +* Fri Oct 4 2024 Remi Collet <remi@remirepo.net> - 3.3.0~RC1-1 +- update to 3.3.0RC1 +- enable zstd compression support + +* Tue Jan 30 2024 Remi Collet <remi@remirepo.net> - 3.2.0-9 +- fix incompatible pointer types using patch from + https://github.com/php-memcached-dev/php-memcached/pull/555 + +* Wed Aug 30 2023 Remi Collet <remi@remirepo.net> - 3.2.0-7 +- rebuild for PHP 8.3.0RC1 + +* Wed Jul 12 2023 Remi Collet <remi@remirepo.net> - 3.2.0-6 +- build out of sources tree + +* Fri Sep 9 2022 Remi Collet <remi@remirepo.net> - 3.2.0-5 +- rebuild for PHP 8.2 with msgpack and igbinary + +* Thu Sep 1 2022 Remi Collet <remi@remirepo.net> - 3.2.0-4 +- rebuild for PHP 8.2.0RC1 + +* Thu Jul 28 2022 Remi Collet <remi@remirepo.net> - 3.2.0-3 +- more upstream patches for PHP 8.2 + +* Fri Jun 3 2022 Remi Collet <remi@remirepo.net> - 3.2.0-2 +- add upstream patches for PHP 8.2 + +* Thu Mar 24 2022 Remi Collet <remi@remirepo.net> - 3.2.0-1 +- update to 3.2.0 + +* Wed Mar 9 2022 Remi Collet <remi@remirepo.net> - 3.2.0~rc2-1 +- update to 3.2.0RC2 + +* Mon Mar 7 2022 Remi Collet <remi@remirepo.net> - 3.2.0~rc1-1 +- update to 3.2.0RC1 + +* Thu Mar 3 2022 Remi Collet <remi@remirepo.net> - 3.1.6~DEV-1 +- update to 3.1.6-dev (2022-03-02) + +* Fri Feb 25 2022 Remi Collet <remi@remirepo.net> - 3.1.5-13 +- rebuild using remi-libmemcached-awesome + +* Fri Nov 5 2021 Remi Collet <remi@remirepo.net> - 3.1.5-12 +- add patch for MemcachedServer from + https://github.com/php-memcached-dev/php-memcached/pull/474 + +* Wed Sep 01 2021 Remi Collet <remi@remirepo.net> - 3.1.5-11 +- rebuild for 8.1.0RC1 + * Tue Jul 27 2021 Remi Collet <remi@remirepo.net> - 3.1.5-10 - add patch to report about libmemcached-awesome from https://github.com/php-memcached-dev/php-memcached/pull/488 |