[php-pecl-geoip] run test suite during build, fix segfault #746417
Remi Collet
remi at fedoraproject.org
Sat Oct 15 16:01:59 UTC 2011
commit d9b86de88878a1093c06316fdef11aed49a43e11
Author: remi <fedora at famillecollet.com>
Date: Sat Oct 15 18:01:54 2011 +0200
run test suite during build, fix segfault #746417
geoip-build.patch | 13 +++++++++
geoip-tests.patch | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++
php-pecl-geoip.spec | 39 +++++++++++++++++++++++++--
3 files changed, 121 insertions(+), 3 deletions(-)
---
diff --git a/geoip-build.patch b/geoip-build.patch
new file mode 100644
index 0000000..c8f7397
--- /dev/null
+++ b/geoip-build.patch
@@ -0,0 +1,13 @@
+--- pecl/geoip/trunk/geoip.c 2010/03/31 20:39:48 297236
++++ pecl/geoip/trunk/geoip.c 2011/06/05 19:00:52 311837
+@@ -238,7 +238,9 @@
+
+ add_assoc_bool(row, "available", GeoIP_db_avail(i));
+ add_assoc_string(row, "description", (char *)GeoIPDBDescription[i], 1);
+- add_assoc_string(row, "filename", GeoIPDBFileName[i], 1);
++ if (GeoIPDBFileName[i]) {
++ add_assoc_string(row, "filename", GeoIPDBFileName[i], 1);
++ }
+
+ add_index_zval(return_value, i, row);
+ }
diff --git a/geoip-tests.patch b/geoip-tests.patch
new file mode 100644
index 0000000..6dfd861
--- /dev/null
+++ b/geoip-tests.patch
@@ -0,0 +1,72 @@
+Index: tests/008.phpt
+===================================================================
+--- tests/008.phpt (revision 311865)
++++ tests/008.phpt (working copy)
+@@ -5,7 +5,11 @@
+ --FILE--
+ <?php
+
+-var_dump( geoip_db_filename(14) );
++if (GEOIP_NUM_DB_TYPES <= 18 ) {
++ var_dump( geoip_db_filename(14) );
++} else {
++ var_dump( geoip_db_filename(19) );
++}
+
+ ?>
+ --EXPECT--
+Index: tests/011.phpt
+===================================================================
+--- tests/011.phpt (revision 311865)
++++ tests/011.phpt (working copy)
+@@ -4,8 +4,12 @@
+ <?php if (!extension_loaded("geoip")) print "skip"; ?>
+ --FILE--
+ <?php
++if (GEOIP_NUM_DB_TYPES <= 18 ) {
++ geoip_database_info(14);
++} else {
++ geoip_database_info(19);
++}
+
+-geoip_database_info(14);
+
+ ?>
+ --EXPECTF--
+Index: tests/014.phpt
+===================================================================
+--- tests/014.phpt (revision 311865)
++++ tests/014.phpt (working copy)
+@@ -7,17 +7,15 @@
+ --FILE--
+ <?php
+
+-var_dump(geoip_time_zone_by_country_and_region('CA',''));
+-var_dump(geoip_time_zone_by_country_and_region('CA',NULL));
+-var_dump(geoip_time_zone_by_country_and_region('CA'));
++var_dump(geoip_time_zone_by_country_and_region('CA','AB'));
++var_dump(geoip_time_zone_by_country_and_region('CM',NULL));
+ var_dump(geoip_time_zone_by_country_and_region(NULL,''));
+ var_dump(geoip_time_zone_by_country_and_region(NULL,NULL));
+
+ ?>
+ --EXPECTF--
+ string(%d) "America/%s"
+-string(%d) "America/%s"
+-string(%d) "America/%s"
++string(%d) "Africa/Lagos"
+
+ Warning: geoip_time_zone_by_country_and_region(): You need to specify at least the country code. in %s on line %d
+ bool(false)
+Index: geoip.c
+===================================================================
+--- geoip.c (revision 311865)
++++ geoip.c (working copy)
+@@ -118,6 +118,7 @@
+ _GeoIP_setup_dbfilename();
+
+ /* For database type constants */
++ REGISTER_LONG_CONSTANT("GEOIP_NUM_DB_TYPES", NUM_DB_TYPES, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("GEOIP_COUNTRY_EDITION", GEOIP_COUNTRY_EDITION, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("GEOIP_REGION_EDITION_REV0", GEOIP_REGION_EDITION_REV0, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("GEOIP_CITY_EDITION_REV0", GEOIP_CITY_EDITION_REV0, CONST_CS | CONST_PERSISTENT);
diff --git a/php-pecl-geoip.spec b/php-pecl-geoip.spec
index 38e40a6..e473974 100644
--- a/php-pecl-geoip.spec
+++ b/php-pecl-geoip.spec
@@ -1,4 +1,3 @@
-%global php_apiver %((echo 0; php -i 2>/dev/null | sed -n 's/^PHP API => //p') | tail -1)
%{!?__pecl: %{expand: %%global __pecl %{_bindir}/pecl}}
%{!?php_extdir: %{expand: %%global php_extdir %(php-config --extension-dir)}}
@@ -6,14 +5,19 @@
Name: php-pecl-geoip
Version: 1.0.7
-Release: 6%{?dist}
+Release: 7%{?dist}
Summary: Extension to map IP addresses to geographic places
Group: Development/Languages
License: PHP
URL: http://pecl.php.net/package/%{pecl_name}
Source0: http://pecl.php.net/get/%{pecl_name}-%{version}.tgz
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+# https://bugs.php.net/bug.php?id=60066
+Patch0: geoip-build.patch
+# https://bugs.php.net/bug.php?id=59804
+Patch1: geoip-tests.patch
+
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: GeoIP-devel
BuildRequires: php-devel
BuildRequires: php-pear >= 1:1.4.0
@@ -23,6 +27,12 @@ Requires(post): %{__pecl}
Requires(postun): %{__pecl}
Provides: php-pecl(%{pecl_name}) = %{version}
+# RPM 4.8
+%{?filter_provides_in: %filter_provides_in %{php_extdir}/.*\.so$}
+%{?filter_setup}
+# RPM 4.9
+%global __provides_exclude_from %{?__provides_exclude_from:%__provides_exclude_from|}%{php_extdir}/.*\\.so$
+
%description
This PHP extension allows you to find the location of an IP address
@@ -35,6 +45,11 @@ database
[ -f package2.xml ] || %{__mv} package.xml package2.xml
%{__mv} package2.xml %{pecl_name}-%{version}/%{pecl_name}.xml
+cd %{pecl_name}-%{version}
+%patch0 -p3 -b .build
+%patch1 -p0 -b .tests
+
+
%build
cd %{pecl_name}-%{version}
phpize
@@ -57,6 +72,18 @@ EOF
%{__install} -p -m 644 %{pecl_name}.xml %{buildroot}%{pecl_xmldir}/%{name}.xml
+%check
+cd %{pecl_name}-%{version}
+
+TEST_PHP_EXECUTABLE=%{_bindir}/php \
+REPORT_EXIT_STATUS=1 \
+NO_INTERACTION=1 \
+%{_bindir}/php run-tests.php \
+ -n -q \
+ -d extension_dir=modules \
+ -d extension=%{pecl_name}.so
+
+
%clean
%{__rm} -rf %{buildroot}
@@ -77,6 +104,12 @@ fi
%{pecl_xmldir}/%{name}.xml
%changelog
+* Sat Oct 15 2011 Remi Collet <remi at fedoraproject.org> - 1.0.7-7
+- fix segfault when build with latest GeoIP (#746417)
+- run test suite during build
+- add patch for tests, https://bugs.php.net/bug.php?id=59804
+- add filter to avoid private-shared-object-provides geoip.so
+
* Fri Jul 15 2011 Andrew Colin Kissa <andrew at topdog.za.net> - 1.0.7-6
- Fix bugzilla #715693
More information about the scm-commits
mailing list