diff --git a/.gitignore b/.gitignore index 29fac45..a1e3bb6 100644 --- a/.gitignore +++ b/.gitignore @@ -9,8 +9,3 @@ clog /php-maxminddb-1.10.0-07f84d9.tgz /php-maxminddb-1.10.1-569bd44.tgz /php-maxminddb-1.11.0-f7cc1a1.tgz -/php-maxminddb-1.11.1-1e66f73.tgz -/php-maxminddb-1.12.0-5b2d7a7.tgz -/php-maxminddb-1.12.1-815939e.tgz -/php-maxminddb-1.13.0-b298986.tgz -/php-maxminddb-1.13.1-2194f58.tgz diff --git a/php-maxminddb.spec b/php-maxminddb.spec index 6ada21a..f33cf38 100644 --- a/php-maxminddb.spec +++ b/php-maxminddb.spec @@ -3,44 +3,35 @@ # # remirepo spec file for php-maxminddb # -# SPDX-FileCopyrightText: Copyright 2018-2025 Remi Collet -# SPDX-License-Identifier: CECILL-2.1 -# http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt +# Copyright (c) 2018-2021 Remi Collet +# License: CC-BY-SA +# http://creativecommons.org/licenses/by-sa/4.0/ # # Please, preserve the changelog entries # -%global gh_commit 2194f58d0f024ce923e685cdf92af3daf9951908 +%global gh_commit f7cc1a1472868f25a02636c99d1054232292bc26 %global gh_short %(c=%{gh_commit}; echo ${c:0:7}) %global gh_owner maxmind %global gh_project MaxMind-DB-Reader-php # Extension -%global pie_vend maxmind-db -%global pie_proj reader-ext %global pecl_name maxminddb +%global with_zts 0%{!?_without_zts:%{?__ztsphp:1}} %global ini_name 40-%{pecl_name}.ini # pure PHP library %global pk_vendor maxmind-db %global pk_project reader -%global _configure ../ext/configure - -%if 0%{?fedora} -%bcond_without tests -%else -%bcond_with tests -%endif +%global with_tests 0%{!?_without_tests:1} Summary: MaxMind DB Reader extension Name: php-maxminddb -Version: 1.13.1 +Version: 1.11.0 Release: 1%{?dist} -License: Apache-2.0 +License: ASL 2.0 URL: https://github.com/%{gh_owner}/%{gh_project} Source0: %{name}-%{version}-%{gh_short}.tgz Source1: makesrc.sh -ExcludeArch: %{ix86} - BuildRequires: make BuildRequires: gcc BuildRequires: php-devel >= 7.2 @@ -59,9 +50,6 @@ Provides: php-pecl-%{pecl_name} = %{version}-%{release} Provides: php-pecl-%{pecl_name}%{?_isa} = %{version}-%{release} Provides: php-pecl(%{pecl_name}) = %{version} Provides: php-pecl(%{pecl_name})%{?_isa} = %{version} -# PIE -Provides: %{?scl_prefix}php-pie(%{pie_vend}/%{pie_proj}) = %{version} -Provides: %{?scl_prefix}php-%{pie_vend}-%{pie_proj} = %{version} %description @@ -79,7 +67,7 @@ Summary: MaxMind DB Reader BuildArch: noarch BuildRequires: php-fedora-autoloader-devel -%if %{with tests} +%if %{with_tests} BuildRequires: php-bcmath BuildRequires: php-gmp # from composer.json "require-dev": { @@ -102,7 +90,7 @@ Recommends: php-bcmath Recommends: php-gmp Recommends: php-maxminddb # from composer.json "conflict": { -# "ext-maxminddb": "<1.11.1,>=2.0.0" +# "ext-maxminddb": "<1.10.0,>=2.0.0" Conflicts: php-maxminddb < %{version} # Weak dependencies on databases Recommends: geolite2-country @@ -110,8 +98,6 @@ Suggests: geolite2-city # From phpcompatifo report for 1.3.0 Requires: php-filter Requires: php-spl -# Autoloader -Requires: php-composer(fedora/autoloader) Provides: php-composer(%{pk_vendor}/%{pk_project}) = %{version} @@ -137,7 +123,10 @@ Autoloader: %{_datadir}/php/MaxMind/Db/Reader/autoload.php --output src/MaxMind/Db/Reader/autoload.php \ src/MaxMind/Db -cd ext +mv ext NTS + +cd NTS + # Sanity check, really often broken extver=$(sed -n '/#define PHP_MAXMINDDB_VERSION/{s/.* "//;s/".*$//;p}' php_maxminddb.h) if test "x${extver}" != "x%{version}%{?gh_date:-dev}"; then @@ -146,6 +135,11 @@ if test "x${extver}" != "x%{version}%{?gh_date:-dev}"; then fi cd .. +%if %{with_zts} +# duplicate for ZTS build +cp -pr NTS ZTS +%endif + # Drop in the bit of configuration cat << 'EOF' | tee %{ini_name} ; Enable '%{pecl_name}' extension module @@ -154,29 +148,39 @@ EOF %build -cd ext -%{__phpize} -sed -e 's/INSTALL_ROOT/DESTDIR/' -i build/Makefile.global - +cd NTS +%{_bindir}/phpize %configure \ - --with-php-config=%{__phpconfig} \ + --with-php-config=%{_bindir}/php-config \ --with-libdir=%{_lib} \ --with-maxminddb +make %{?_smp_mflags} -%make_build +%if %{with_zts} +cd ../ZTS +%{_bindir}/zts-phpize +%configure \ + --with-php-config=%{_bindir}/zts-php-config \ + --with-libdir=%{_lib} \ + --with-maxminddb +make %{?_smp_mflags} +%endif %install -: Install the extension -%make_install -C ext - -: Install XML package description +# Install XML package description install -D -m 644 package.xml %{buildroot}%{pecl_xmldir}/%{name}.xml -: Install the extension +# Install the NTS stuff +make -C NTS install INSTALL_ROOT=%{buildroot} install -D -m 644 %{ini_name} %{buildroot}%{php_inidir}/%{ini_name} -: Install the library +%if %{with_zts} +# Install the ZTS stuff +make -C ZTS install INSTALL_ROOT=%{buildroot} +install -D -m 644 %{ini_name} %{buildroot}%{php_ztsinidir}/%{ini_name} +%endif + mkdir -p %{buildroot}%{_datadir}/php/MaxMind cp -pr src/MaxMind/Db %{buildroot}%{_datadir}/php/MaxMind/Db @@ -185,20 +189,39 @@ cp -pr src/MaxMind/Db %{buildroot}%{_datadir}/php/MaxMind/Db : Minimal load test for NTS extension %{__php} --no-php-ini \ --define 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} --no-php-ini \ + --define extension=%{buildroot}%{php_ztsextdir}/%{pecl_name}.so \ + --modules | grep %{pecl_name} +%endif + +%if %{with_tests} ret=0 -cd ext +cd NTS : Upstream test suite for NTS extension TEST_PHP_EXECUTABLE=%{__php} \ TEST_PHP_ARGS="-n -d extension=%{buildroot}%{php_extdir}/%{pecl_name}.so" \ -%{__php} -n run-tests.php -q --show-diff || ret=1 +NO_INTERACTION=1 \ +REPORT_EXIT_STATUS=1 \ +%{__php} -n run-tests.php --show-diff || ret=1 + +%if %{with_zts} +cd ../ZTS +: Upstream test suite for ZTS extension +TEST_PHP_EXECUTABLE=%{__ztsphp} \ +TEST_PHP_ARGS="-n -d extension=%{buildroot}%{php_ztsextdir}/%{pecl_name}.so" \ +NO_INTERACTION=1 \ +REPORT_EXIT_STATUS=1 \ +%{__ztsphp} -n run-tests.php --show-diff || ret=1 +%endif -%if %{with tests} cd .. : Upstream test suite for the library -for cmd in php80 php81 php82 php83 php84; do +for cmd in php php72 php73 php74 php80 php81; do if which $cmd; then $cmd %{_bindir}/phpunit8 \ --bootstrap %{buildroot}%{_datadir}/php/MaxMind/Db/Reader/autoload.php \ @@ -216,6 +239,7 @@ exit $ret %files +%{!?_licensedir:%global license %%doc} %license LICENSE %doc *.md %{pecl_xmldir}/%{name}.xml @@ -223,6 +247,11 @@ exit $ret %config(noreplace) %{php_inidir}/%{ini_name} %{php_extdir}/%{pecl_name}.so +%if %{with_zts} +%config(noreplace) %{php_ztsinidir}/%{ini_name} +%{php_ztsextdir}/%{pecl_name}.so +%endif + %files -n php-%{pk_vendor}-%{pk_project} %license LICENSE @@ -233,94 +262,12 @@ exit $ret %changelog -* Sat Nov 22 2025 Remi Collet - 1.13.1-1 -- update to 1.13.1 (no changes) -- add pie virtual provides - -* Fri Nov 21 2025 Remi Collet - 1.13.0-1 -- update to 1.13.0 - -* Wed Sep 17 2025 Remi Collet - 1.12.1-3 -- rebuild for https://fedoraproject.org/wiki/Changes/php85 - -* Fri Jul 25 2025 Fedora Release Engineering - 1.12.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Tue May 6 2025 Remi Collet - 1.12.1-1 -- update to 1.12.1 -- re-license spec file to CECILL-2.1 - -* Sat Jan 18 2025 Fedora Release Engineering - 1.12.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Fri Nov 15 2024 Remi Collet - 1.12.0-1 -- update to 1.12.0 - -* Fri Oct 18 2024 Remi Collet - 1.11.1-7 -- modernize the spec file - -* Mon Oct 14 2024 Remi Collet - 1.11.1-6 -- rebuild for https://fedoraproject.org/wiki/Changes/php84 - -* Fri Jul 19 2024 Fedora Release Engineering - 1.11.1-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Fri Apr 12 2024 Remi Collet - 1.11.1-4 -- drop 32-bit support - https://fedoraproject.org/wiki/Changes/php_no_32_bit - -* Thu Jan 25 2024 Fedora Release Engineering - 1.11.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Sun Jan 21 2024 Fedora Release Engineering - 1.11.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Mon Dec 4 2023 Remi Collet - 1.11.1-1 -- update to 1.11.1 - -* Tue Oct 03 2023 Remi Collet - 1.11.0-11 -- rebuild for https://fedoraproject.org/wiki/Changes/php83 - -* Mon Oct 2 2023 Remi Collet - 1.11.0-10 -- add missing dependency on fedora/autoloader -- build out of sources tree - -* Fri Jul 21 2023 Fedora Release Engineering - 1.11.0-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Fri Mar 31 2023 Remi Collet - 1.11.0-8 -- use SPDX license ID - -* Fri Jan 20 2023 Fedora Release Engineering - 1.11.0-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Wed Oct 05 2022 Remi Collet - 1.11.0-6 -- rebuild for https://fedoraproject.org/wiki/Changes/php82 - -* Fri Jul 22 2022 Fedora Release Engineering - 1.11.0-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Fri Jan 21 2022 Fedora Release Engineering - 1.11.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Fri Dec 10 2021 Remi Collet - 1.11.0-3 -- disable library test suite for EL build - -* Thu Oct 28 2021 Remi Collet - 1.11.0-2 -- rebuild for https://fedoraproject.org/wiki/Changes/php81 - * Tue Oct 19 2021 Remi Collet - 1.11.0-1 - update to 1.11.0 -* Fri Jul 23 2021 Fedora Release Engineering - 1.10.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - * Thu Apr 15 2021 Remi Collet - 1.10.1-1 - update to 1.10.1 -* Fri Mar 5 2021 Remi Collet - 1.10.0-2 -- rebuild for https://fedoraproject.org/wiki/Changes/php80 - * Wed Feb 10 2021 Remi Collet - 1.10.0-1 - update to 1.10.0 diff --git a/sources b/sources index dc1dae0..42e5840 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (php-maxminddb-1.13.1-2194f58.tgz) = 4862dd4afcb899fabd91dfa6a6471aa5bf06f2a4b1c5929d68ad72774c8d83e3ea17f2e2bab557b2d27f7fe2267854c391e19443f52e3667ce04614f3e9cf8d0 +SHA512 (php-maxminddb-1.11.0-f7cc1a1.tgz) = d0d7ce79ed152ba9277997515cade9a8c7a043d1a23a27e6838ad48b3e4f8854327356f3a1d30dff156a203ec65329d3f1d936a26a1e9ee5ae87c4ff400f2997