diff options
| author | Remi Collet <remi@remirepo.net> | 2026-04-23 09:30:30 +0200 |
|---|---|---|
| committer | Remi Collet <remi@php.net> | 2026-04-23 09:30:30 +0200 |
| commit | ec16377d52ea1e350a8ba122eae70c879c90e5ba (patch) | |
| tree | 1d8952e2dde3e08f0e85a181fe9304b9984eac34 | |
initial package
obsoletes php-pecl-geoip
fix compatibility with PHP 7 using patch from
https://github.com/rlerdorf/geoip/pull/7
| -rw-r--r-- | .gitignore | 9 | ||||
| -rw-r--r-- | 0001-Fix-compatibility-with-PHP-7.patch | 29 | ||||
| -rw-r--r-- | Makefile | 4 | ||||
| -rw-r--r-- | composer.json | 19 | ||||
| -rw-r--r-- | php-rlerdorf-geoip.spec | 132 |
5 files changed, 193 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..01f0400 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +clog +package-*.xml +*.tgz +*.tar.bz2 +*.tar.gz +*.tar.xz +*.tar.xz.asc +*.src.rpm +*/*rpm diff --git a/0001-Fix-compatibility-with-PHP-7.patch b/0001-Fix-compatibility-with-PHP-7.patch new file mode 100644 index 0000000..5b3b493 --- /dev/null +++ b/0001-Fix-compatibility-with-PHP-7.patch @@ -0,0 +1,29 @@ +From 80fbfac1c328a3100c8aa8082cde61e12c3d917e Mon Sep 17 00:00:00 2001 +From: Remi Collet <remi@remirepo.net> +Date: Thu, 23 Apr 2026 09:18:26 +0200 +Subject: [PATCH 1/2] Fix compatibility with PHP 7 + +--- + geoip.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/geoip.c b/geoip.c +index 7533a75..8c68248 100644 +--- a/geoip.c ++++ b/geoip.c +@@ -33,6 +33,12 @@ + #include "php_ini.h" + #include "ext/standard/info.h" + ++/* for PHP 7.x */ ++#ifndef ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE ++#define ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(pass_by_ref, name, type_hint, allow_null, default_value) \ ++ ZEND_ARG_TYPE_INFO(pass_by_ref, name, type_hint, allow_null) ++#endif ++ + #include "geoip_arginfo.h" + #include "php_geoip.h" + +-- +2.53.0 + diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..13af741 --- /dev/null +++ b/Makefile @@ -0,0 +1,4 @@ +SRCDIR := $(shell pwd) +NAME := $(shell basename $(SRCDIR)) +include ../../../common/Makefile + diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..8bde336 --- /dev/null +++ b/composer.json @@ -0,0 +1,19 @@ +{ + "name": "rlerdorf/geoip", + "type": "php-ext", + "description": "Legacy GeoIP (v1) PHP extension wrapping MaxMind's libGeoIP C library", + "license": "PHP-3.01", + "require": { + "php": ">=7.2" + }, + "php-ext": { + "extension-name": "geoip", + "configure-options": [ + { + "name": "with-geoip", + "description": "Path to libGeoIP installation prefix (or 'yes' for auto-detection)", + "needs-value": true + } + ] + } +} diff --git a/php-rlerdorf-geoip.spec b/php-rlerdorf-geoip.spec new file mode 100644 index 0000000..f9474f2 --- /dev/null +++ b/php-rlerdorf-geoip.spec @@ -0,0 +1,132 @@ +# remirepo spec file for php-rlerdorf-geoip +# +# SPDX-FileCopyrightText: Copyright 2026 Remi Collet +# SPDX-License-Identifier: CECILL-2.1 +# http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt +# +# Please, preserve the changelog entries +# + +%{?scl:%scl_package php-rlerdorf-geoip} + +%bcond_without tests + +# Extension +%global ext_name geoip +%global ini_name 40-%{ext_name}.ini +%global upstream_version 1.4.0 +#global upstream_prever RC1 +# PIE / packagist +%global pie_vend rlerdorf +%global pie_proj %{ext_name} +# Github forge +%global gh_vend %{pie_vend} +%global gh_proj %{pie_proj} +%global forgeurl https://github.com/%{gh_vend}/%{gh_proj} +%global tag %{upstream_version}%{?upstream_prever} + +Name: %{?scl_prefix}php-%{pie_vend}-%{pie_proj} +Summary: Legacy GeoIP (v1) PHP extension +License: PHP-3.01 +Version: %{upstream_version}%{?upstream_prever:~%{upstream_prever}} +Release: 1%{?dist} +%forgemeta +URL: %{forgeurl} +Source0: %{forgesource} + +Patch0: 0001-Fix-compatibility-with-PHP-7.patch + +BuildRequires: make +BuildRequires: gcc +BuildRequires: %{?scl_prefix}php-devel >= 7.2 +BuildRequires: GeoIP-devel + +Requires: %{?scl_prefix}php(zend-abi) = %{php_zend_api} +Requires: %{?scl_prefix}php(api) = %{php_core_api} + +# Extension +Provides: %{?scl_prefix}php-%{ext_name} = %{version} +Provides: %{?scl_prefix}php-%{ext_name}%{?_isa} = %{version} +# PIE +Provides: %{?scl_prefix}php-pie(%{pie_vend}/%{pie_proj}) = %{version} +# Package is a fork with same API +Obsoletes: %{?scl_prefix}php-pecl-%{ext_name} < 1.2 +Provides: %{?scl_prefix}php-pecl-%{ext_name} = %{version} +Provides: %{?scl_prefix}php-pecl-%{ext_name}%{?_isa} = %{version} + + +%description +This is the legacy (v1) GeoIP PHP extension for PHP 7.2+ and PHP 8.x. + +Unless you have old code that needs this, you might be better off using +- php-maxmind-db-reader library (maxmind-db/reader) +- php-maxminddb extension (maxmind-db/reader-ext) + +Package built for PHP %(%{__php} -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')%{?scl: as Software Collection (%{scl} by %{?scl_vendor}%{!?scl_vendor:rh})}. + + +%prep +%forgesetup +%patch -P0 -p1 -b .pr7 + +: Sanity check, really often broken +extver=$(sed -n '/#define PHP_GEOIP_VERSION/{s/.* "//;s/".*$//;p}' php_geoip.h) +if test "x${extver}" != "x%{upstream_version}%{?upstream_prever}"; then + : Error: Upstream extension version is ${extver}, expecting %{version}. + exit 1 +fi + +: Create configuration file +cat << 'EOF' | tee %{ini_name} +; Enable the %{summary} +extension=%{ext_name}.so +EOF + + +%build +%{__phpize} +[ -f Makefile.global ] && GLOBAL=Makefile.global || GLOBAL=build/Makefile.global +sed -e 's/INSTALL_ROOT/DESTDIR/' -i $GLOBAL + +%configure \ + --with-geoip \ + --with-libdir=%{_lib} \ + --with-php-config=%{__phpconfig} + +%make_build + + +%install +%make_install + +# install config file +install -D -m 644 %{ini_name} %{buildroot}%{php_inidir}/%{ini_name} + + +%check +: Minimal load test for the extension +%{__php} --no-php-ini \ + --define extension=%{buildroot}/%{php_extdir}/%{ext_name}.so \ + --modules | grep '^%{ext_name}$' + +%if %{with tests} +: Upstream test suite for the extension +TEST_PHP_ARGS="-n -d extension=%{buildroot}/%{php_extdir}/%{ext_name}.so" \ +%{__php} -n run-tests.php -P -q --show-diff +%endif + + +%files +%license LICENSE +%doc composer.json +%doc *.md +%config(noreplace) %{php_inidir}/%{ini_name} +%{php_extdir}/%{ext_name}.so + + +%changelog +* Thu Apr 23 2026 Remi Collet <remi@remirepo.net> - 1.4.0-1 +- initial package +- obsoletes php-pecl-geoip +- fix compatibility with PHP 7 using patch from + https://github.com/rlerdorf/geoip/pull/7 |
