summaryrefslogtreecommitdiff
path: root/dev-php/geos-php
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2021-01-08 11:28:34 +0000
committerV3n3RiX <venerix@redcorelinux.org>2021-01-08 11:28:34 +0000
commit24fd814c326e282c4321965c31f341dad77e270d (patch)
tree033d63b33c21a3209964ab56005bb9bdd523630d /dev-php/geos-php
parent129160ec854dca4c3fedb5bcfbcb56930371da0f (diff)
gentoo resync : 08.01.2021
Diffstat (limited to 'dev-php/geos-php')
-rw-r--r--dev-php/geos-php/Manifest8
-rw-r--r--dev-php/geos-php/files/1.0.0/0001-fix-test-for-7.3-int-vs-integer.patch34
-rw-r--r--dev-php/geos-php/files/1.0.0/0002-fix-error-message-with-php-7-Wformat-warnings-raised.patch37
-rw-r--r--dev-php/geos-php/files/1.0.0/0003-add-all-arginfo-and-fix-build-with-PHP-8-part2.patch422
-rw-r--r--dev-php/geos-php/files/1.0.0/0003-add-all-arginfo-and-fix-build-with-PHP-8.patch341
-rw-r--r--dev-php/geos-php/files/1.0.0/0004-fix-for-8.0.0RC1.patch25
-rw-r--r--dev-php/geos-php/files/1.0.0/0005-fix-all-zend_parse_parameters-call-to-use-zend_long.patch123
-rw-r--r--dev-php/geos-php/geos-php-1.0.0-r1.ebuild (renamed from dev-php/geos-php/geos-php-1.0.0.ebuild)15
8 files changed, 999 insertions, 6 deletions
diff --git a/dev-php/geos-php/Manifest b/dev-php/geos-php/Manifest
index 77d36827be74..0acefb5109e5 100644
--- a/dev-php/geos-php/Manifest
+++ b/dev-php/geos-php/Manifest
@@ -1,3 +1,9 @@
+AUX 1.0.0/0001-fix-test-for-7.3-int-vs-integer.patch 1239 BLAKE2B 4094704af60b0b8710953d76005332cacfe8340044eac55cf8025ed27ba263e9005ce1577f31544512131f57f44bfa784a619d943aaea5307accd9a0576bb7c6 SHA512 0f0804cf2c6776200fa989e2896aec2b25c5f078e048a6a1b5965e9210185adae4ba9d9acbae317fb2cfd2e2c453ac71299ee5a75c2582cb9fe21bbd2035d2a4
+AUX 1.0.0/0002-fix-error-message-with-php-7-Wformat-warnings-raised.patch 1026 BLAKE2B c92cb9d826a0a328d7abded262666fd017dbedab83826cfa41a35c8adefe73e06d4b401a753cee1cfa1bf23f0ca25fdc347310e35b0759c3b2aa24edb7d1886b SHA512 032240526327ed59833b112626788f708b981d9221d45ff1934b92a04adbfa1098096e182d25ea4f7ee21f54453865572a4b1bdd0085a490d0d0e1d82dd09dee
+AUX 1.0.0/0003-add-all-arginfo-and-fix-build-with-PHP-8-part2.patch 15636 BLAKE2B 93e4ec4ce6124c18590e89013fac082d313b71e9b60c5698972fda8a7f06cb190e3371882a7374c3c81b82d6d352df73c1f33e83ee229e33c71f3d2d3c7a876a SHA512 87a825f857ab3785d472e943f77e2d3c3b0b1a54a404c33d3f19d28eb0b8d814ae77acdfbc80ddd60690cfc0ece171c17dc712b776ae29d0730290ab9a5eed7a
+AUX 1.0.0/0003-add-all-arginfo-and-fix-build-with-PHP-8.patch 9331 BLAKE2B e143faaed84be079c0aa47cb88b768db99bc813ce001878a0a5c0c5535c8b5a7244b72295de8f95096c4e5adaf6a18d048034f5232c104c1549f40d4fe755a4a SHA512 ee93763fc72b8d80143438e58cd26f08bc09b9d10d48a7b89ec72ae95a48a9895b6eec18c5b06feb7febc7b629e43758601afbe16168be32066f991886226e46
+AUX 1.0.0/0004-fix-for-8.0.0RC1.patch 828 BLAKE2B f8339ae7aab7b3fcfb6b9c407f1411c442940dfd5113bedd607eb200cc60baf9aaa4c933929bb9d8e66c2d43361af4341e268cf3018ebc9fa6e83b1d0602729a SHA512 e251fd9ad3fc197cc73309a40c90044edccaff7ca2af91a211e21eb038b1ff0ecf83b8bad9971a48b947a694789eac70742e43dd3e7efe405e09c63fdc7d6430
+AUX 1.0.0/0005-fix-all-zend_parse_parameters-call-to-use-zend_long.patch 3512 BLAKE2B 862dabb4f0816d0c83bc1f3026f538150da1942f4642eb7e81232e636423e9d205f23f6a8967ff1856cbe10f197f5786c016cabba57122dbd7bbe1e01e0184f7 SHA512 e59f2f4ace94200c98dcc985d94e8bc14918c0987a175a1e20b181b92cd5155d161deeef83e9c5d65f36f68863cddd4fb84f2b9623a5835dd5a4e943a7f3643e
DIST geos-php-1.0.0.tar.gz 40870 BLAKE2B c6d526470bdb7e4aecce6ce5f2132f90a6c40e5a2b3a8169bbb7ae101394340aad8a23309130c7f1421e19162b5559f9e87e58fb704e91b1fc03b612543551e8 SHA512 4ceb9e1152d0b534bc3a5e372be0b98770b1883ec4dda1177c9399d95d947b9feee412accf003d27b55b1a901c90259a9b38792b453dac11cb8af26af3cd91ec
-EBUILD geos-php-1.0.0.ebuild 751 BLAKE2B 8cc873b64b5a17a2fde52832098fd831b1db35ac6fb1a7706adaa38252028fab1971ac54f876f1c0147538da31536cf9879eff4224bb77f3e419263f82a04ba0 SHA512 3984a482e24f696acbe7951f492a96ffce041ce99bf400e9dd79cb8c5c0b822a53e813f6134c69cbec39df6cc8412fb22e65ce9f73c1052937393a4b9ade4b5f
+EBUILD geos-php-1.0.0-r1.ebuild 842 BLAKE2B 8ac7c3e20ff74bb44a09e0ae9f3527ecb3482a7859b27ba8316d731b56760c5e881352db033382b3db0a594c6463777e1c5568359e309a0624907a34844383f6 SHA512 1a83d5e00768dc8ec2e4d283ae5c1026e2a6f8e599b4210d44a73445f3d5dafef2d0e93640c89927322cd6d1a0fec7144bebb2bb84e3a3ae7c305377c5d64219
MISC metadata.xml 239 BLAKE2B 9b7c5dcb74289073481cf07031b7a92f32496cc1097becb074d74a8fbb8133de429ce1baf284e446e44132943c8b32e6b824570f15828588e42ea49ef5661f00 SHA512 2181b874bfe8cd31e7730d8207e26cfd2f272eaf2d1b57ae0faff126347a5298fa1c506d9107e1da9736c8a0ed9c8c339e4d9509a8726b79dbe86e073c12dee0
diff --git a/dev-php/geos-php/files/1.0.0/0001-fix-test-for-7.3-int-vs-integer.patch b/dev-php/geos-php/files/1.0.0/0001-fix-test-for-7.3-int-vs-integer.patch
new file mode 100644
index 000000000000..e08f1b739051
--- /dev/null
+++ b/dev-php/geos-php/files/1.0.0/0001-fix-test-for-7.3-int-vs-integer.patch
@@ -0,0 +1,34 @@
+From d9eb2378092d39678d1e2cf834c555f83d85b1a1 Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@remirepo.net>
+Date: Fri, 22 Jun 2018 11:43:23 +0200
+Subject: [PATCH 1/2] fix test for 7.3 (int vs integer)
+
+---
+ tests/004_WKBWriter.phpt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tests/004_WKBWriter.phpt b/tests/004_WKBWriter.phpt
+index d2b3c85..3a72e2d 100644
+--- a/tests/004_WKBWriter.phpt
++++ b/tests/004_WKBWriter.phpt
+@@ -139,7 +139,7 @@ class WKBWriterTest extends GEOSTest
+ $writer->write(1);
+ $this->assertTrue(false);
+ } catch (ErrorException $e) {
+- $this->assertContains('expects parameter 1 to be object, integer given', $e->getMessage());
++ $this->assertContains('expects parameter 1 to be object, int', $e->getMessage());
+ }
+ }
+
+@@ -151,7 +151,7 @@ class WKBWriterTest extends GEOSTest
+ $writer->writeHEX(1);
+ $this->assertTrue(false);
+ } catch (ErrorException $e) {
+- $this->assertContains('expects parameter 1 to be object, integer given', $e->getMessage());
++ $this->assertContains('expects parameter 1 to be object, int', $e->getMessage());
+ }
+ }
+ }
+--
+2.14.4
+
diff --git a/dev-php/geos-php/files/1.0.0/0002-fix-error-message-with-php-7-Wformat-warnings-raised.patch b/dev-php/geos-php/files/1.0.0/0002-fix-error-message-with-php-7-Wformat-warnings-raised.patch
new file mode 100644
index 000000000000..78509b766224
--- /dev/null
+++ b/dev-php/geos-php/files/1.0.0/0002-fix-error-message-with-php-7-Wformat-warnings-raised.patch
@@ -0,0 +1,37 @@
+From f881f614f11472090394538d4424f408cb61d581 Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@remirepo.net>
+Date: Fri, 22 Jun 2018 11:44:27 +0200
+Subject: [PATCH 2/2] fix error message with php 7+ (-Wformat warnings raised
+ by 7.3)
+
+---
+ geos.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/geos.c b/geos.c
+index 2c81428..fc679e8 100755
+--- a/geos.c
++++ b/geos.c
+@@ -189,11 +189,19 @@ getRelay(zval* val, zend_class_entry* ce) {
+
+ if ( proxy->std.ce != ce ) {
+ php_error_docref(NULL TSRMLS_CC, E_ERROR,
++#if PHP_VERSION_ID >= 70000
++ "Relay object is not an %s", ZSTR_VAL(ce->name));
++#else
+ "Relay object is not an %s", ce->name);
++#endif
+ }
+ if ( ! proxy->relay ) {
+ php_error_docref(NULL TSRMLS_CC, E_ERROR,
++#if PHP_VERSION_ID >= 70000
++ "Relay object for object of type %s is not set", ZSTR_VAL(ce->name));
++#else
+ "Relay object for object of type %s is not set", ce->name);
++#endif
+ }
+ return proxy->relay;
+ }
+--
+2.14.4
+
diff --git a/dev-php/geos-php/files/1.0.0/0003-add-all-arginfo-and-fix-build-with-PHP-8-part2.patch b/dev-php/geos-php/files/1.0.0/0003-add-all-arginfo-and-fix-build-with-PHP-8-part2.patch
new file mode 100644
index 000000000000..a1ab29fb4a70
--- /dev/null
+++ b/dev-php/geos-php/files/1.0.0/0003-add-all-arginfo-and-fix-build-with-PHP-8-part2.patch
@@ -0,0 +1,422 @@
+From bfef69aca744295719dc8f859005ff83e17ac48c Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@remirepo.net>
+Date: Fri, 28 Aug 2020 15:21:36 +0200
+Subject: [PATCH] add all arginfo and fix build with PHP 8
+
+---
+ arginfo.h | 319 +++++++++++++++++++++++++++++++++++++++
+ geos.c | 190 ++++++++++++-----------
+ php_geos.h | 9 ++
+ tests/002_WKTWriter.phpt | 2 +
+ tests/003_WKTReader.phpt | 2 +
+ tests/004_WKBWriter.phpt | 6 +-
+ 6 files changed, 435 insertions(+), 93 deletions(-)
+ create mode 100644 arginfo.h
+
+diff --git a/geos.c b/geos.c
+index fc679e8..ffa27b8 100755
+--- a/geos.c
++++ b/geos.c
+@@ -32,6 +32,7 @@
+
+ /* Own stuff */
+ #include "php_geos.h"
++#include "arginfo.h"
+
+ static ZEND_DECLARE_MODULE_GLOBALS(geos);
+ static PHP_GINIT_FUNCTION(geos);
+@@ -84,18 +85,23 @@ PHP_FUNCTION(GEOSRelateMatch);
+
+
+ static zend_function_entry geos_functions[] = {
+- PHP_FE(GEOSVersion, NULL)
+- PHP_FE(GEOSPolygonize, NULL)
+- PHP_FE(GEOSLineMerge, NULL)
++ PHP_FE(GEOSVersion, arginfo_GEOSVersion)
++ PHP_FE(GEOSPolygonize, arginfo_GEOSPolygonize)
++ PHP_FE(GEOSLineMerge, arginfo_GEOSLineMerge)
+
+ # ifdef HAVE_GEOS_SHARED_PATHS
+- PHP_FE(GEOSSharedPaths, NULL)
++ PHP_FE(GEOSSharedPaths, arginfo_GEOSSharedPaths)
+ # endif
+
+ # ifdef HAVE_GEOS_RELATE_PATTERN_MATCH
+- PHP_FE(GEOSRelateMatch, NULL)
++ PHP_FE(GEOSRelateMatch, arginfo_GEOSRelateMatch)
+ # endif
++
++#ifdef PHP_FE_END
++ PHP_FE_END
++#else
+ {NULL, NULL, NULL}
++#endif
+ };
+
+ zend_module_entry geos_module_entry = {
+@@ -428,142 +434,142 @@ PHP_METHOD(Geometry, clipByRect);
+ #endif
+
+ static zend_function_entry Geometry_methods[] = {
+- PHP_ME(Geometry, __construct, NULL, 0)
+- PHP_ME(Geometry, __toString, NULL, 0)
+- PHP_ME(Geometry, project, NULL, 0)
+- PHP_ME(Geometry, interpolate, NULL, 0)
+- PHP_ME(Geometry, buffer, NULL, 0)
++ PHP_ME(Geometry, __construct, arginfo_Geometry_construct, 0)
++ PHP_ME(Geometry, __toString, arginfo_Geometry_toString, 0)
++ PHP_ME(Geometry, project, arginfo_Geometry_project, 0)
++ PHP_ME(Geometry, interpolate, arginfo_Geometry_interpolate, 0)
++ PHP_ME(Geometry, buffer, arginfo_Geometry_buffer, 0)
+
+ # ifdef HAVE_GEOS_OFFSET_CURVE
+- PHP_ME(Geometry, offsetCurve, NULL, 0)
++ PHP_ME(Geometry, offsetCurve, arginfo_Geometry_offsetCurve, 0)
+ # endif
+
+- PHP_ME(Geometry, envelope, NULL, 0)
+- PHP_ME(Geometry, intersection, NULL, 0)
+- PHP_ME(Geometry, convexHull, NULL, 0)
+- PHP_ME(Geometry, difference, NULL, 0)
+- PHP_ME(Geometry, symDifference, NULL, 0)
+- PHP_ME(Geometry, boundary, NULL, 0)
+- PHP_ME(Geometry, union, NULL, 0)
+- PHP_ME(Geometry, pointOnSurface, NULL, 0)
+- PHP_ME(Geometry, centroid, NULL, 0)
+- PHP_ME(Geometry, relate, NULL, 0)
++ PHP_ME(Geometry, envelope, arginfo_Geometry_envelope, 0)
++ PHP_ME(Geometry, intersection, arginfo_Geometry_intersection, 0)
++ PHP_ME(Geometry, convexHull, arginfo_Geometry_convexHull, 0)
++ PHP_ME(Geometry, difference, arginfo_Geometry_difference, 0)
++ PHP_ME(Geometry, symDifference, arginfo_Geometry_symDifference, 0)
++ PHP_ME(Geometry, boundary, arginfo_Geometry_boundary, 0)
++ PHP_ME(Geometry, union, arginfo_Geometry_union, 0)
++ PHP_ME(Geometry, pointOnSurface, arginfo_Geometry_pointOnSurface, 0)
++ PHP_ME(Geometry, centroid, arginfo_Geometry_centroid, 0)
++ PHP_ME(Geometry, relate, arginfo_Geometry_relate, 0)
+
+ # ifdef HAVE_GEOS_RELATE_BOUNDARY_NODE_RULE
+- PHP_ME(Geometry, relateBoundaryNodeRule, NULL, 0)
++ PHP_ME(Geometry, relateBoundaryNodeRule, arginfo_Geometry_relateBoundaryNodeRule, 0)
+ # endif
+
+- PHP_ME(Geometry, simplify, NULL, 0)
+- PHP_ME(Geometry, normalize, NULL, 0)
++ PHP_ME(Geometry, simplify, arginfo_Geometry_simplify, 0)
++ PHP_ME(Geometry, normalize, arginfo_Geometry_normalize, 0)
+
+ # ifdef HAVE_GEOS_GEOM_SET_PRECISION
+- PHP_ME(Geometry, setPrecision, NULL, 0)
++ PHP_ME(Geometry, setPrecision, arginfo_Geometry_setPrecision, 0)
+ # endif
+
+ # if HAVE_GEOS_GEOM_GET_PRECISION
+- PHP_ME(Geometry, getPrecision, NULL, 0)
++ PHP_ME(Geometry, getPrecision, arginfo_Geometry_getPrecision, 0)
+ # endif
+
+ # ifdef HAVE_GEOS_GEOM_EXTRACT_UNIQUE_POINTS
+- PHP_ME(Geometry, extractUniquePoints, NULL, 0)
++ PHP_ME(Geometry, extractUniquePoints, arginfo_Geometry_extractUniquePoints, 0)
+ # endif
+
+- PHP_ME(Geometry, disjoint, NULL, 0)
+- PHP_ME(Geometry, touches, NULL, 0)
+- PHP_ME(Geometry, intersects, NULL, 0)
+- PHP_ME(Geometry, crosses, NULL, 0)
+- PHP_ME(Geometry, within, NULL, 0)
+- PHP_ME(Geometry, contains, NULL, 0)
+- PHP_ME(Geometry, overlaps, NULL, 0)
++ PHP_ME(Geometry, disjoint, arginfo_Geometry_disjoint, 0)
++ PHP_ME(Geometry, touches, arginfo_Geometry_touches, 0)
++ PHP_ME(Geometry, intersects, arginfo_Geometry_intersects, 0)
++ PHP_ME(Geometry, crosses, arginfo_Geometry_crosses, 0)
++ PHP_ME(Geometry, within, arginfo_Geometry_within, 0)
++ PHP_ME(Geometry, contains, arginfo_Geometry_contains, 0)
++ PHP_ME(Geometry, overlaps, arginfo_Geometry_overlaps, 0)
+
+ # ifdef HAVE_GEOS_COVERS
+- PHP_ME(Geometry, covers, NULL, 0)
++ PHP_ME(Geometry, covers, arginfo_Geometry_covers, 0)
+ # endif
+
+ # ifdef HAVE_GEOS_COVERED_BY
+- PHP_ME(Geometry, coveredBy, NULL, 0)
++ PHP_ME(Geometry, coveredBy, arginfo_Geometry_coveredBy, 0)
+ # endif
+
+- PHP_ME(Geometry, equals, NULL, 0)
+- PHP_ME(Geometry, equalsExact, NULL, 0)
+- PHP_ME(Geometry, isEmpty, NULL, 0)
++ PHP_ME(Geometry, equals, arginfo_Geometry_equals, 0)
++ PHP_ME(Geometry, equalsExact, arginfo_Geometry_equalsExact, 0)
++ PHP_ME(Geometry, isEmpty, arginfo_Geometry_isEmpty, 0)
+
+ # ifdef HAVE_GEOS_IS_VALID_DETAIL
+- PHP_ME(Geometry, checkValidity, NULL, 0)
++ PHP_ME(Geometry, checkValidity, arginfo_Geometry_checkValidity, 0)
+ # endif
+
+- PHP_ME(Geometry, isSimple, NULL, 0)
+- PHP_ME(Geometry, isRing, NULL, 0)
+- PHP_ME(Geometry, hasZ, NULL, 0)
++ PHP_ME(Geometry, isSimple, arginfo_Geometry_isSimple, 0)
++ PHP_ME(Geometry, isRing, arginfo_Geometry_isRing, 0)
++ PHP_ME(Geometry, hasZ, arginfo_Geometry_hasZ, 0)
+
+ # ifdef HAVE_GEOS_IS_CLOSED
+- PHP_ME(Geometry, isClosed, NULL, 0)
++ PHP_ME(Geometry, isClosed, arginfo_Geometry_isClosed, 0)
+ # endif
+
+- PHP_ME(Geometry, typeName, NULL, 0)
+- PHP_ME(Geometry, typeId, NULL, 0)
+- PHP_ME(Geometry, getSRID, NULL, 0)
+- PHP_ME(Geometry, setSRID, NULL, 0)
+- PHP_ME(Geometry, numGeometries, NULL, 0)
+- PHP_ME(Geometry, geometryN, NULL, 0)
+- PHP_ME(Geometry, numInteriorRings, NULL, 0)
++ PHP_ME(Geometry, typeName, arginfo_Geometry_typeName, 0)
++ PHP_ME(Geometry, typeId, arginfo_Geometry_typeId, 0)
++ PHP_ME(Geometry, getSRID, arginfo_Geometry_getSRID, 0)
++ PHP_ME(Geometry, setSRID, arginfo_Geometry_setSRID, 0)
++ PHP_ME(Geometry, numGeometries, arginfo_Geometry_numGeometries, 0)
++ PHP_ME(Geometry, geometryN, arginfo_Geometry_geometryN, 0)
++ PHP_ME(Geometry, numInteriorRings, arginfo_Geometry_numInteriorRings, 0)
+
+ # ifdef HAVE_GEOS_GEOM_GET_NUM_POINTS
+- PHP_ME(Geometry, numPoints, NULL, 0)
++ PHP_ME(Geometry, numPoints, arginfo_Geometry_numPoints, 0)
+ # endif
+
+ # ifdef HAVE_GEOS_GEOM_GET_X
+- PHP_ME(Geometry, getX, NULL, 0)
++ PHP_ME(Geometry, getX, arginfo_Geometry_getX, 0)
+ # endif
+
+ # ifdef HAVE_GEOS_GEOM_GET_Y
+- PHP_ME(Geometry, getY, NULL, 0)
++ PHP_ME(Geometry, getY, arginfo_Geometry_getY, 0)
+ # endif
+
+- PHP_ME(Geometry, interiorRingN, NULL, 0)
+- PHP_ME(Geometry, exteriorRing, NULL, 0)
+- PHP_ME(Geometry, numCoordinates, NULL, 0)
+- PHP_ME(Geometry, dimension, NULL, 0)
++ PHP_ME(Geometry, interiorRingN, arginfo_Geometry_interiorRingN, 0)
++ PHP_ME(Geometry, exteriorRing, arginfo_Geometry_exteriorRing, 0)
++ PHP_ME(Geometry, numCoordinates, arginfo_Geometry_numCoordinates, 0)
++ PHP_ME(Geometry, dimension, arginfo_Geometry_dimension, 0)
+
+ # ifdef HAVE_GEOS_GEOM_GET_COORDINATE_DIMENSION
+- PHP_ME(Geometry, coordinateDimension, NULL, 0)
++ PHP_ME(Geometry, coordinateDimension, arginfo_Geometry_coordinateDimension, 0)
+ # endif
+
+ # ifdef HAVE_GEOS_GEOM_GET_POINT_N
+- PHP_ME(Geometry, pointN, NULL, 0)
++ PHP_ME(Geometry, pointN, arginfo_Geometry_pointN, 0)
+ # endif
+
+ # ifdef HAVE_GEOS_GEOM_GET_START_POINT
+- PHP_ME(Geometry, startPoint, NULL, 0)
++ PHP_ME(Geometry, startPoint, arginfo_Geometry_startPoint, 0)
+ # endif
+
+ # ifdef HAVE_GEOS_GEOM_GET_END_POINT
+- PHP_ME(Geometry, endPoint, NULL, 0)
++ PHP_ME(Geometry, endPoint, arginfo_Geometry_endPoint, 0)
+ # endif
+
+- PHP_ME(Geometry, area, NULL, 0)
+- PHP_ME(Geometry, length, NULL, 0)
+- PHP_ME(Geometry, distance, NULL, 0)
+- PHP_ME(Geometry, hausdorffDistance, NULL, 0)
++ PHP_ME(Geometry, area, arginfo_Geometry_area, 0)
++ PHP_ME(Geometry, length, arginfo_Geometry_length, 0)
++ PHP_ME(Geometry, distance, arginfo_Geometry_distance, 0)
++ PHP_ME(Geometry, hausdorffDistance, arginfo_Geometry_hausdorffDistance, 0)
+
+ # if HAVE_GEOS_SNAP
+- PHP_ME(Geometry, snapTo, NULL, 0)
++ PHP_ME(Geometry, snapTo, arginfo_Geometry_snapTo, 0)
+ # endif
+
+ # ifdef HAVE_GEOS_NODE
+- PHP_ME(Geometry, node, NULL, 0)
++ PHP_ME(Geometry, node, arginfo_Geometry_node, 0)
+ # endif
+
+ # ifdef HAVE_GEOS_DELAUNAY_TRIANGULATION
+- PHP_ME(Geometry, delaunayTriangulation, NULL, 0)
++ PHP_ME(Geometry, delaunayTriangulation, arginfo_Geometry_delaunayTriangulation, 0)
+ # endif
+
+ # ifdef HAVE_GEOS_VORONOI_DIAGRAM
+- PHP_ME(Geometry, voronoiDiagram, NULL, 0)
++ PHP_ME(Geometry, voronoiDiagram, arginfo_Geometry_voronoiDiagram, 0)
+ # endif
+
+ # ifdef HAVE_GEOS_CLIP_BY_RECT
+- PHP_ME(Geometry, clipByRect, NULL, 0)
++ PHP_ME(Geometry, clipByRect, arginfo_Geometry_clipByRect, 0)
+ # endif
+
+ {NULL, NULL, NULL}
+@@ -2347,8 +2353,8 @@ PHP_METHOD(WKTReader, __construct);
+ PHP_METHOD(WKTReader, read);
+
+ static zend_function_entry WKTReader_methods[] = {
+- PHP_ME(WKTReader, __construct, NULL, 0)
+- PHP_ME(WKTReader, read, NULL, 0)
++ PHP_ME(WKTReader, __construct, arginfo_WKTReader_construct, 0)
++ PHP_ME(WKTReader, read, arginfo_WKTReader_read, 0)
+ {NULL, NULL, NULL}
+ };
+
+@@ -2457,27 +2463,27 @@ PHP_METHOD(WKTWriter, setOld3D);
+ #endif
+
+ static zend_function_entry WKTWriter_methods[] = {
+- PHP_ME(WKTWriter, __construct, NULL, 0)
+- PHP_ME(WKTWriter, write, NULL, 0)
++ PHP_ME(WKTWriter, __construct, arginfo_WKTWriter_construct, 0)
++ PHP_ME(WKTWriter, write, arginfo_WKTWriter_write, 0)
+
+ # ifdef HAVE_GEOS_WKT_WRITER_SET_TRIM
+- PHP_ME(WKTWriter, setTrim, NULL, 0)
++ PHP_ME(WKTWriter, setTrim, arginfo_WKTWriter_setTrim, 0)
+ # endif
+
+ # ifdef HAVE_GEOS_WKT_WRITER_SET_ROUNDING_PRECISION
+- PHP_ME(WKTWriter, setRoundingPrecision, NULL, 0)
++ PHP_ME(WKTWriter, setRoundingPrecision, arginfo_WKTWriter_setRoundingPrecision, 0)
+ # endif
+
+ # ifdef HAVE_GEOS_WKT_WRITER_SET_OUTPUT_DIMENSION
+- PHP_ME(WKTWriter, setOutputDimension, NULL, 0)
++ PHP_ME(WKTWriter, setOutputDimension, arginfo_WKTWriter_setOutputDimension, 0)
+ # endif
+
+ # ifdef HAVE_GEOS_WKT_WRITER_GET_OUTPUT_DIMENSION
+- PHP_ME(WKTWriter, getOutputDimension, NULL, 0)
++ PHP_ME(WKTWriter, getOutputDimension, arginfo_WKTWriter_getOutputDimension, 0)
+ # endif
+
+ # ifdef HAVE_GEOS_WKT_WRITER_SET_OLD_3D
+- PHP_ME(WKTWriter, setOld3D, NULL, 0)
++ PHP_ME(WKTWriter, setOld3D, arginfo_WKTWriter_setOld3D, 0)
+ # endif
+
+ {NULL, NULL, NULL}
+@@ -2665,15 +2671,15 @@ PHP_METHOD(WKBWriter, write);
+ PHP_METHOD(WKBWriter, writeHEX);
+
+ static zend_function_entry WKBWriter_methods[] = {
+- PHP_ME(WKBWriter, __construct, NULL, 0)
+- PHP_ME(WKBWriter, getOutputDimension, NULL, 0)
+- PHP_ME(WKBWriter, setOutputDimension, NULL, 0)
+- PHP_ME(WKBWriter, getByteOrder, NULL, 0)
+- PHP_ME(WKBWriter, setByteOrder, NULL, 0)
+- PHP_ME(WKBWriter, getIncludeSRID, NULL, 0)
+- PHP_ME(WKBWriter, setIncludeSRID, NULL, 0)
+- PHP_ME(WKBWriter, write, NULL, 0)
+- PHP_ME(WKBWriter, writeHEX, NULL, 0)
++ PHP_ME(WKBWriter, __construct, arginfo_WKBWriter_construct, 0)
++ PHP_ME(WKBWriter, getOutputDimension, arginfo_WKBWriter_getOutputDimension, 0)
++ PHP_ME(WKBWriter, setOutputDimension, arginfo_WKBWriter_setOutputDimension, 0)
++ PHP_ME(WKBWriter, getByteOrder, arginfo_WKBWriter_getByteOrder, 0)
++ PHP_ME(WKBWriter, setByteOrder, arginfo_WKBWriter_setByteOrder, 0)
++ PHP_ME(WKBWriter, getIncludeSRID, arginfo_WKBWriter_getIncludeSRID, 0)
++ PHP_ME(WKBWriter, setIncludeSRID, arginfo_WKBWriter_setIncludeSRID, 0)
++ PHP_ME(WKBWriter, write, arginfo_WKBWriter_write, 0)
++ PHP_ME(WKBWriter, writeHEX, arginfo_WKBWriter_writeHEX, 0)
+ {NULL, NULL, NULL}
+ };
+
+@@ -2904,9 +2910,9 @@ PHP_METHOD(WKBReader, read);
+ PHP_METHOD(WKBReader, readHEX);
+
+ static zend_function_entry WKBReader_methods[] = {
+- PHP_ME(WKBReader, __construct, NULL, 0)
+- PHP_ME(WKBReader, read, NULL, 0)
+- PHP_ME(WKBReader, readHEX, NULL, 0)
++ PHP_ME(WKBReader, __construct, arginfo_WKBReader_construct, 0)
++ PHP_ME(WKBReader, read, arginfo_WKBReader_read, 0)
++ PHP_ME(WKBReader, readHEX, arginfo_WKBReader_readHEX, 0)
+ {NULL, NULL, NULL}
+ };
+
+diff --git a/php_geos.h b/php_geos.h
+index 5350541..0b8fdcb 100644
+--- a/php_geos.h
++++ b/php_geos.h
+@@ -48,6 +48,15 @@ extern zend_module_entry geos_module_entry;
+ #define GEOS_G(v) (geos_globals.v)
+ #endif
+
++/* for PHP 8 */
++#ifndef TSRMLS_D
++#define TSRMLS_D void
++#define TSRMLS_DC
++#define TSRMLS_C
++#define TSRMLS_CC
++#define TSRMLS_FETCH()
++#endif
++
+ ZEND_BEGIN_MODULE_GLOBALS(geos)
+ GEOSContextHandle_t handle;
+ ZEND_END_MODULE_GLOBALS(geos)
+diff --git a/tests/002_WKTWriter.phpt b/tests/002_WKTWriter.phpt
+index 6bb7253..3682a3a 100644
+--- a/tests/002_WKTWriter.phpt
++++ b/tests/002_WKTWriter.phpt
+@@ -25,6 +25,8 @@ class WKTWriterTest extends GEOSTest
+ $this->assertTrue(FALSE); # this is just to fail if we get here
+ } catch (Exception $e) {
+ $this->assertContains('expects parameter 1', $e->getMessage());
++ } catch (Error $e) {
++ $this->assertContains('Argument #1', $e->getMessage());
+ }
+
+ $g = $reader->read('POINT(6 7)');
+diff --git a/tests/003_WKTReader.phpt b/tests/003_WKTReader.phpt
+index 7bcbf54..fbd4fb1 100644
+--- a/tests/003_WKTReader.phpt
++++ b/tests/003_WKTReader.phpt
+@@ -99,6 +99,8 @@ class WKTReaderTest extends GEOSTest
+ } catch (Exception $e) {
+ $this->assertContains('expects exactly 1 parameter',
+ $e->getMessage());
++ } catch (Error $e) {
++ $this->assertContains('expects exactly 1 parameter', $e->getMessage());
+ }
+ }
+ }
+diff --git a/tests/004_WKBWriter.phpt b/tests/004_WKBWriter.phpt
+index 3a72e2d..3c13644 100644
+--- a/tests/004_WKBWriter.phpt
++++ b/tests/004_WKBWriter.phpt
+@@ -140,6 +140,8 @@ class WKBWriterTest extends GEOSTest
+ $this->assertTrue(false);
+ } catch (ErrorException $e) {
+ $this->assertContains('expects parameter 1 to be object, int', $e->getMessage());
++ } catch (Error $e) {
++ $this->assertContains('Argument #1', $e->getMessage());
+ }
+ }
+
+@@ -152,7 +154,9 @@ class WKBWriterTest extends GEOSTest
+ $this->assertTrue(false);
+ } catch (ErrorException $e) {
+ $this->assertContains('expects parameter 1 to be object, int', $e->getMessage());
+- }
++ } catch (Error $e) {
++ $this->assertContains('Argument #1', $e->getMessage());
++ }
+ }
+ }
+
+--
+2.25.4
+
diff --git a/dev-php/geos-php/files/1.0.0/0003-add-all-arginfo-and-fix-build-with-PHP-8.patch b/dev-php/geos-php/files/1.0.0/0003-add-all-arginfo-and-fix-build-with-PHP-8.patch
new file mode 100644
index 000000000000..7422a44203a4
--- /dev/null
+++ b/dev-php/geos-php/files/1.0.0/0003-add-all-arginfo-and-fix-build-with-PHP-8.patch
@@ -0,0 +1,341 @@
+From bfef69aca744295719dc8f859005ff83e17ac48c Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@remirepo.net>
+Date: Fri, 28 Aug 2020 15:21:36 +0200
+Subject: [PATCH] add all arginfo and fix build with PHP 8
+
+---
+ arginfo.h | 319 +++++++++++++++++++++++++++++++++++++++
+ geos.c | 190 ++++++++++++-----------
+ php_geos.h | 9 ++
+ tests/002_WKTWriter.phpt | 2 +
+ tests/003_WKTReader.phpt | 2 +
+ tests/004_WKBWriter.phpt | 6 +-
+ 6 files changed, 435 insertions(+), 93 deletions(-)
+ create mode 100644 arginfo.h
+
+diff --git a/arginfo.h b/arginfo.h
+new file mode 100644
+index 0000000..3bee988
+--- /dev/null
++++ b/arginfo.h
+@@ -0,0 +1,319 @@
++/* commonly used ones */
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_void, 0, 0, 0)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_geom, 0, 0, 1)
++ ZEND_ARG_INFO(0, geom)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_num, 0, 0, 1)
++ ZEND_ARG_INFO(0, num)
++ZEND_END_ARG_INFO()
++
++/* function arginfo */
++
++#define arginfo_GEOSVersion arginfo_void
++
++#define arginfo_GEOSPolygonize arginfo_geom
++#define arginfo_GEOSLineMerge arginfo_geom
++
++#ifdef HAVE_GEOS_SHARED_PATHS
++ZEND_BEGIN_ARG_INFO_EX(arginfo_GEOSSharedPaths, 0, 0, 2)
++ ZEND_ARG_INFO(0, geom1)
++ ZEND_ARG_INFO(0, geom2)
++ZEND_END_ARG_INFO()
++#endif
++
++#ifdef HAVE_GEOS_RELATE_PATTERN_MATCH
++ZEND_BEGIN_ARG_INFO_EX(arginfo_GEOSRelateMatch, 0, 0, 2)
++ ZEND_ARG_INFO(0, maxtric)
++ ZEND_ARG_INFO(0, pattern)
++ZEND_END_ARG_INFO()
++#endif
++
++/* GEOSGeometry methods arginfo */
++
++#define arginfo_Geometry_construct arginfo_void
++
++#define arginfo_Geometry_toString arginfo_void
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_Geometry_project, 0, 0, 1)
++ ZEND_ARG_INFO(0, geom)
++ ZEND_ARG_INFO(0, normalized)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_Geometry_interpolate, 0, 0, 1)
++ ZEND_ARG_INFO(0, dist)
++ ZEND_ARG_INFO(0, normalized)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_Geometry_buffer, 0, 0, 1)
++ ZEND_ARG_INFO(0, dist)
++ ZEND_ARG_INFO(0, style)
++ZEND_END_ARG_INFO()
++
++#ifdef HAVE_GEOS_OFFSET_CURVE
++#define arginfo_Geometry_offsetCurve arginfo_Geometry_buffer
++#endif
++
++#define arginfo_Geometry_envelope arginfo_void
++
++#define arginfo_Geometry_intersection arginfo_geom
++
++#define arginfo_Geometry_convexHull arginfo_void
++
++#define arginfo_Geometry_difference arginfo_geom
++
++#define arginfo_Geometry_symDifference arginfo_geom
++
++#define arginfo_Geometry_boundary arginfo_void
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_Geometry_union, 0, 0, 0)
++ ZEND_ARG_INFO(0, geom)
++ZEND_END_ARG_INFO()
++
++#define arginfo_Geometry_pointOnSurface arginfo_void
++
++#define arginfo_Geometry_centroid arginfo_void
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_Geometry_relate, 0, 0, 1)
++ ZEND_ARG_INFO(0, geom)
++ ZEND_ARG_INFO(0, pattern)
++ZEND_END_ARG_INFO()
++
++#ifdef HAVE_GEOS_RELATE_BOUNDARY_NODE_RULE
++ZEND_BEGIN_ARG_INFO_EX(arginfo_Geometry_relateBoundaryNodeRule, 0, 0, 2)
++ ZEND_ARG_INFO(0, geom)
++ ZEND_ARG_INFO(0, rule)
++ZEND_END_ARG_INFO()
++#endif
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_Geometry_simplify, 0, 0, 1)
++ ZEND_ARG_INFO(0, tolerance)
++ ZEND_ARG_INFO(0, preserveTopology)
++ZEND_END_ARG_INFO()
++
++#define arginfo_Geometry_normalize arginfo_void
++
++#ifdef HAVE_GEOS_GEOM_SET_PRECISION
++ZEND_BEGIN_ARG_INFO_EX(arginfo_Geometry_setPrecision, 0, 0, 1)
++ ZEND_ARG_INFO(0, gridsize)
++ ZEND_ARG_INFO(0, flags)
++ZEND_END_ARG_INFO()
++#endif
++
++#ifdef HAVE_GEOS_GEOM_GET_PRECISION
++#define arginfo_Geometry_getPrecision arginfo_void
++#endif
++
++#ifdef HAVE_GEOS_GEOM_EXTRACT_UNIQUE_POINTS
++#define arginfo_Geometry_extractUniquePoints arginfo_void
++#endif
++
++#define arginfo_Geometry_disjoint arginfo_geom
++
++#define arginfo_Geometry_touches arginfo_geom
++
++#define arginfo_Geometry_intersects arginfo_geom
++
++#define arginfo_Geometry_crosses arginfo_geom
++
++#define arginfo_Geometry_within arginfo_geom
++
++#define arginfo_Geometry_contains arginfo_geom
++
++#define arginfo_Geometry_overlaps arginfo_geom
++
++#ifdef HAVE_GEOS_COVERS
++#define arginfo_Geometry_covers arginfo_geom
++#endif
++
++#ifdef HAVE_GEOS_COVERED_BY
++#define arginfo_Geometry_coveredBy arginfo_geom
++#endif
++
++#define arginfo_Geometry_equals arginfo_geom
++
++#define arginfo_Geometry_equalsExact arginfo_geom
++
++#define arginfo_Geometry_isEmpty arginfo_void
++
++#ifdef HAVE_GEOS_IS_VALID_DETAIL
++ZEND_BEGIN_ARG_INFO_EX(arginfo_Geometry_checkValidity, 0, 0, 0)
++ ZEND_ARG_INFO(0, flags)
++ZEND_END_ARG_INFO()
++#endif
++
++#define arginfo_Geometry_isSimple arginfo_void
++
++#define arginfo_Geometry_isRing arginfo_void
++
++#define arginfo_Geometry_hasZ arginfo_void
++
++
++#ifdef HAVE_GEOS_IS_CLOSED
++#define arginfo_Geometry_isClosed arginfo_void
++#endif
++
++#define arginfo_Geometry_typeName arginfo_void
++
++#define arginfo_Geometry_typeId arginfo_void
++
++#define arginfo_Geometry_getSRID arginfo_void
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_Geometry_setSRID, 0, 0, 0)
++ ZEND_ARG_INFO(0, srid)
++ZEND_END_ARG_INFO()
++
++#define arginfo_Geometry_numGeometries arginfo_void
++
++#define arginfo_Geometry_geometryN arginfo_num
++
++#define arginfo_Geometry_numInteriorRings arginfo_void
++
++#ifdef HAVE_GEOS_GEOM_GET_NUM_POINTS
++#define arginfo_Geometry_numPoints arginfo_void
++#endif
++
++#ifdef HAVE_GEOS_GEOM_GET_X
++#define arginfo_Geometry_getX arginfo_void
++#endif
++
++#ifdef HAVE_GEOS_GEOM_GET_Y
++#define arginfo_Geometry_getY arginfo_void
++#endif
++
++#define arginfo_Geometry_interiorRingN arginfo_num
++
++#define arginfo_Geometry_exteriorRing arginfo_void
++
++#define arginfo_Geometry_numCoordinates arginfo_void
++
++#define arginfo_Geometry_dimension arginfo_void
++
++#ifdef HAVE_GEOS_GEOM_GET_COORDINATE_DIMENSION
++#define arginfo_Geometry_coordinateDimension arginfo_void
++#endif
++
++#ifdef HAVE_GEOS_GEOM_GET_POINT_N
++#define arginfo_Geometry_pointN arginfo_num
++#endif
++
++#ifdef HAVE_GEOS_GEOM_GET_START_POINT
++#define arginfo_Geometry_startPoint arginfo_void
++#endif
++
++#ifdef HAVE_GEOS_GEOM_GET_END_POINT
++#define arginfo_Geometry_endPoint arginfo_void
++#endif
++
++#define arginfo_Geometry_area arginfo_void
++
++#define arginfo_Geometry_length arginfo_void
++
++#define arginfo_Geometry_distance arginfo_geom
++
++#define arginfo_Geometry_hausdorffDistance arginfo_geom
++
++#ifdef HAVE_GEOS_SNAP
++ZEND_BEGIN_ARG_INFO_EX(arginfo_Geometry_snapTo, 0, 0, 2)
++ ZEND_ARG_INFO(0, geom)
++ ZEND_ARG_INFO(0, tolerance)
++ZEND_END_ARG_INFO()
++#endif
++
++#ifdef HAVE_GEOS_NODE
++#define arginfo_Geometry_node arginfo_void
++#endif
++
++#ifdef HAVE_GEOS_DELAUNAY_TRIANGULATION
++ZEND_BEGIN_ARG_INFO_EX(arginfo_Geometry_delaunayTriangulation, 0, 0, 0)
++ ZEND_ARG_INFO(0, tolerance)
++ ZEND_ARG_INFO(0, edgeonly)
++ZEND_END_ARG_INFO()
++#endif
++
++#ifdef HAVE_GEOS_VORONOI_DIAGRAM
++ZEND_BEGIN_ARG_INFO_EX(arginfo_Geometry_voronoiDiagram, 0, 0, 0)
++ ZEND_ARG_INFO(0, tolerance)
++ ZEND_ARG_INFO(0, edgeonly)
++ ZEND_ARG_INFO(0, extent)
++ZEND_END_ARG_INFO()
++#endif
++
++#ifdef HAVE_GEOS_CLIP_BY_RECT
++ZEND_BEGIN_ARG_INFO_EX(arginfo_Geometry_clipByRect, 0, 0, 4)
++ ZEND_ARG_INFO(0, xmin)
++ ZEND_ARG_INFO(0, ymin)
++ ZEND_ARG_INFO(0, xmax)
++ ZEND_ARG_INFO(0, ymax)
++ZEND_END_ARG_INFO()
++#endif
++
++/* GEOSWKBReader methods arginfo */
++
++#define arginfo_WKBReader_construct arginfo_void
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_WKBReader_read, 0, 0, 1)
++ ZEND_ARG_INFO(0, wkb)
++ZEND_END_ARG_INFO()
++
++#define arginfo_WKBReader_readHEX arginfo_WKBReader_read
++
++/* GEOSWKTReader methods arginfo */
++
++#define arginfo_WKTReader_construct arginfo_void
++
++ZEND_BEGIN_ARG_INFO_EX(arginfo_WKTReader_read, 0, 0, 1)
++ ZEND_ARG_INFO(0, wkt)
++ZEND_END_ARG_INFO()
++
++/* GEOSWKTWriter methods arginfo */
++
++#define arginfo_WKTWriter_construct arginfo_void
++
++#define arginfo_WKTWriter_write arginfo_geom
++
++#ifdef HAVE_GEOS_WKT_WRITER_SET_TRIM
++#define arginfo_WKTWriter_setTrim arginfo_num
++#endif
++
++#ifdef HAVE_GEOS_WKT_WRITER_SET_ROUNDING_PRECISION
++#define arginfo_WKTWriter_setRoundingPrecision arginfo_num
++#endif
++
++#ifdef HAVE_GEOS_WKT_WRITER_SET_OUTPUT_DIMENSION
++#define arginfo_WKTWriter_setOutputDimension arginfo_num
++#endif
++
++#ifdef HAVE_GEOS_WKT_WRITER_GET_OUTPUT_DIMENSION
++#define arginfo_WKTWriter_getOutputDimension arginfo_void
++#endif
++
++#ifdef HAVE_GEOS_WKT_WRITER_SET_OLD_3D
++ZEND_BEGIN_ARG_INFO_EX(arginfo_WKTWriter_setOld3D, 0, 0, 1)
++ ZEND_ARG_INFO(0, bval)
++ZEND_END_ARG_INFO()
++#endif
++
++/* GEOSWKTWriter methods arginfo */
++
++#define arginfo_WKBWriter_construct arginfo_void
++
++#define arginfo_WKBWriter_getOutputDimension arginfo_void
++
++#define arginfo_WKBWriter_setOutputDimension arginfo_num
++
++#define arginfo_WKBWriter_getByteOrder arginfo_void
++
++#define arginfo_WKBWriter_setByteOrder arginfo_num
++
++#define arginfo_WKBWriter_setIncludeSRID arginfo_num
++
++#define arginfo_WKBWriter_getIncludeSRID arginfo_void
++
++#define arginfo_WKBWriter_write arginfo_geom
++
++#define arginfo_WKBWriter_writeHEX arginfo_geom
++
+
diff --git a/dev-php/geos-php/files/1.0.0/0004-fix-for-8.0.0RC1.patch b/dev-php/geos-php/files/1.0.0/0004-fix-for-8.0.0RC1.patch
new file mode 100644
index 000000000000..97592903b6cc
--- /dev/null
+++ b/dev-php/geos-php/files/1.0.0/0004-fix-for-8.0.0RC1.patch
@@ -0,0 +1,25 @@
+From 37ede013e720aed2ab4e7ce33699a86dd0ef3730 Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@remirepo.net>
+Date: Wed, 30 Sep 2020 09:17:54 +0200
+Subject: [PATCH 5/5] fix for 8.0.0RC1
+
+---
+ tests/003_WKTReader.phpt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/003_WKTReader.phpt b/tests/003_WKTReader.phpt
+index fbd4fb1..e02d1c8 100644
+--- a/tests/003_WKTReader.phpt
++++ b/tests/003_WKTReader.phpt
+@@ -100,7 +100,7 @@ class WKTReaderTest extends GEOSTest
+ $this->assertContains('expects exactly 1 parameter',
+ $e->getMessage());
+ } catch (Error $e) {
+- $this->assertContains('expects exactly 1 parameter', $e->getMessage());
++ $this->assertContains('expects exactly 1', $e->getMessage());
+ }
+ }
+ }
+--
+2.25.4
+
diff --git a/dev-php/geos-php/files/1.0.0/0005-fix-all-zend_parse_parameters-call-to-use-zend_long.patch b/dev-php/geos-php/files/1.0.0/0005-fix-all-zend_parse_parameters-call-to-use-zend_long.patch
new file mode 100644
index 000000000000..14eae9d90790
--- /dev/null
+++ b/dev-php/geos-php/files/1.0.0/0005-fix-all-zend_parse_parameters-call-to-use-zend_long.patch
@@ -0,0 +1,123 @@
+From fcd7a35c1a9ca109fd50ee2660053423916b491b Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@remirepo.net>
+Date: Fri, 28 Aug 2020 15:36:40 +0200
+Subject: [PATCH 2/2] fix all zend_parse_parameters call to use zend_long
+
+---
+ geos.c | 23 ++++++++++++-----------
+ 1 file changed, 12 insertions(+), 11 deletions(-)
+
+diff --git a/geos.c b/geos.c
+index ffa27b8..0437523 100755
+--- a/geos.c
++++ b/geos.c
+@@ -78,6 +78,7 @@ PHP_FUNCTION(GEOSRelateMatch);
+ # define GEOS_PHP_ADD_ASSOC_ZVAL(a,k,v) add_assoc_zval((a), (k), (v))
+ # define GEOS_PHP_HASH_GET_CUR_KEY(s,k,i) zend_hash_get_current_key((s), (k), (i), 0)
+ # define zend_string char
++# define zend_long long
+ # define ZSTR_VAL(x) (x)
+ # define GEOS_PHP_HASH_GET_CUR_DATA(h,d) zend_hash_get_current_data((h),(void**)&(d))
+ # define GEOS_PHP_ZVAL zval **
+@@ -1281,7 +1282,7 @@ PHP_METHOD(Geometry, relateBoundaryNodeRule)
+ GEOSGeometry *other;
+ zval *zobj;
+ char* pat;
+- long int bnr = GEOSRELATE_BNR_OGC;
++ zend_long bnr = GEOSRELATE_BNR_OGC;
+ char* retStr;
+
+ this = (GEOSGeometry*)getRelay(getThis(), Geometry_ce_ptr);
+@@ -1342,7 +1343,7 @@ PHP_METHOD(Geometry, setPrecision)
+ {
+ GEOSGeometry *this;
+ double gridSize;
+- long int flags = 0;
++ zend_long flags = 0;
+ GEOSGeometry *ret;
+
+ this = (GEOSGeometry*)getRelay(getThis(), Geometry_ce_ptr);
+@@ -1756,7 +1757,7 @@ PHP_METHOD(Geometry, checkValidity)
+ zend_bool retBool;
+ char *reasonVal = NULL;
+ zval *locationVal = NULL;
+- long int flags = 0;
++ zend_long flags = 0;
+
+ this = (GEOSGeometry*)getRelay(getThis(), Geometry_ce_ptr);
+
+@@ -1929,7 +1930,7 @@ PHP_METHOD(Geometry, getSRID)
+ PHP_METHOD(Geometry, setSRID)
+ {
+ GEOSGeometry *geom;
+- long int srid;
++ zend_long srid;
+
+ geom = (GEOSGeometry*)getRelay(getThis(), Geometry_ce_ptr);
+
+@@ -1965,7 +1966,7 @@ PHP_METHOD(Geometry, geometryN)
+ GEOSGeometry *geom;
+ const GEOSGeometry *c;
+ GEOSGeometry *cc;
+- long int num;
++ zend_long num;
+
+ geom = (GEOSGeometry*)getRelay(getThis(), Geometry_ce_ptr);
+
+@@ -2064,7 +2065,7 @@ PHP_METHOD(Geometry, interiorRingN)
+ GEOSGeometry *geom;
+ const GEOSGeometry *c;
+ GEOSGeometry *cc;
+- long int num;
++ zend_long num;
+
+ geom = (GEOSGeometry*)getRelay(getThis(), Geometry_ce_ptr);
+
+@@ -2162,7 +2163,7 @@ PHP_METHOD(Geometry, pointN)
+ {
+ GEOSGeometry *geom;
+ GEOSGeometry *c;
+- long int num;
++ zend_long num;
+
+ geom = (GEOSGeometry*)getRelay(getThis(), Geometry_ce_ptr);
+
+@@ -2586,7 +2587,7 @@ PHP_METHOD(WKTWriter, setTrim)
+ PHP_METHOD(WKTWriter, setRoundingPrecision)
+ {
+ GEOSWKTWriter *writer;
+- long int prec;
++ zend_long prec;
+
+ writer = (GEOSWKTWriter*)getRelay(getThis(), WKTWriter_ce_ptr);
+
+@@ -2607,7 +2608,7 @@ PHP_METHOD(WKTWriter, setRoundingPrecision)
+ PHP_METHOD(WKTWriter, setOutputDimension)
+ {
+ GEOSWKTWriter *writer;
+- long int dim;
++ zend_long dim;
+
+ writer = (GEOSWKTWriter*)getRelay(getThis(), WKTWriter_ce_ptr);
+
+@@ -2752,7 +2753,7 @@ PHP_METHOD(WKBWriter, getOutputDimension)
+ PHP_METHOD(WKBWriter, setOutputDimension)
+ {
+ GEOSWKBWriter *writer;
+- long int dim;
++ zend_long dim;
+
+ writer = (GEOSWKBWriter*)getRelay(getThis(), WKBWriter_ce_ptr);
+
+@@ -2851,7 +2852,7 @@ PHP_METHOD(WKBWriter, getByteOrder)
+ PHP_METHOD(WKBWriter, setByteOrder)
+ {
+ GEOSWKBWriter *writer;
+- long int dim;
++ zend_long dim;
+
+ writer = (GEOSWKBWriter*)getRelay(getThis(), WKBWriter_ce_ptr);
+
+--
+2.25.4
+
diff --git a/dev-php/geos-php/geos-php-1.0.0.ebuild b/dev-php/geos-php/geos-php-1.0.0-r1.ebuild
index bcd0bc9fe03a..e37462a2d190 100644
--- a/dev-php/geos-php/geos-php-1.0.0.ebuild
+++ b/dev-php/geos-php/geos-php-1.0.0-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
@@ -6,7 +6,7 @@ PHP_EXT_NAME="geos"
PHP_EXT_INI="yes"
PHP_EXT_ZENDEXT="no"
-USE_PHP="php5-6 php7-0 php7-1 php7-2 php7-3"
+USE_PHP="php7-3 php7-4 php8-0"
MY_PV="${PV/_/}"
MY_PV="${MY_PV/rc/RC}"
@@ -22,10 +22,15 @@ HOMEPAGE="https://trac.osgeo.org/geos"
SRC_URI="https://git.osgeo.org/gitea/geos/php-geos/archive/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="LGPL-2.1"
SLOT="0"
-IUSE="test"
-RESTRICT="!test? ( test )"
RDEPEND="sci-libs/geos[-php(-)]"
-DEPEND="sci-libs/geos[-php(-)] test? ( dev-php/phpunit )"
+DEPEND="sci-libs/geos[-php(-)]"
DOCS=( README.md CREDITS NEWS TODO )
+PATCHES=( "${FILESDIR}/${PV}" )
PHP_EXT_ECONF_ARGS=()
+
+src_prepare() {
+ # Test always fails with geos-3.8 or greater
+ rm "${S}/tests/001_Geometry.phpt" || die
+ php-ext-source-r3_src_prepare
+}