From: Jakub Bogusz Date: Wed, 5 Apr 2017 20:04:37 +0000 (+0200) Subject: - updated to 3.6.1 (note: new libgeos soname) X-Git-Tag: auto/th/geos-3.6.1-1 X-Git-Url: http://git.pld-linux.org/?p=packages%2Fgeos.git;a=commitdiff_plain;h=664cfaa0037d02fd36d26df4a98e6f47f52dde2c - updated to 3.6.1 (note: new libgeos soname) - php extension moved to separate package (php-geos.spec); removed outdated php7 patch --- diff --git a/geos-php7.patch b/geos-php7.patch deleted file mode 100644 index ed57773..0000000 --- a/geos-php7.patch +++ /dev/null @@ -1,736 +0,0 @@ ---- geos-3.5.0/php/geos.c.orig 2015-08-14 20:23:15.000000000 +0200 -+++ geos-3.5.0/php/geos.c 2016-03-18 22:08:27.255515276 +0100 -@@ -48,6 +48,21 @@ - #define zend_function_entry function_entry - #endif - -+#if PHP_MAJOR_VERSION >= 7 -+#define zend_uint zend_ulong -+#define PHP_RETURN_STRING(x, n) RETURN_STRING(x) -+#define PHP_RETURN_STRINGL(x, l, n) RETURN_STRINGL(x, l) -+#define php_zend_hash_get_current_key(s, k, i, n) zend_hash_get_current_key(s, k, i) -+#define php_add_assoc_string(rv, res, resv, n) add_assoc_string(rv, res, resv) -+#define PHP_KEY_VAL(key) ZSTR_VAL(key) -+#else -+#define PHP_RETURN_STRING(x, n) RETURN_STRING(x, n) -+#define PHP_RETURN_STRINGL(x, l, n) RETURN_STRINGL(x, l, n) -+#define php_zend_hash_get_current_key(s, k, i, n) zend_hash_get_current_key(s, k, i, n) -+#define php_add_assoc_string(rv, res, resv, n) add_assoc_string(rv, res, resv, n) -+#define PHP_KEY_VAL(key) (key) -+#endif -+ - static zend_function_entry geos_functions[] = { - PHP_FE(GEOSVersion, NULL) - PHP_FE(GEOSPolygonize, NULL) -@@ -104,21 +119,34 @@ - } - - typedef struct Proxy_t { -+#if PHP_MAJOR_VERSION >= 7 -+ void* relay; -+ zend_object std; -+#else - zend_object std; - void* relay; -+#endif - } Proxy; - - static void - setRelay(zval* val, void* obj) { - TSRMLS_FETCH(); -+#if PHP_MAJOR_VERSION >= 7 -+ Proxy* proxy = (Proxy*)((char*)(Z_OBJ_P(val)) - XtOffsetOf(Proxy, std)); -+#else - Proxy* proxy = (Proxy*)zend_object_store_get_object(val TSRMLS_CC); -+#endif - proxy->relay = obj; - } - - static inline void * - getRelay(zval* val, zend_class_entry* ce) { - TSRMLS_FETCH(); -- Proxy *proxy = (Proxy*)zend_object_store_get_object(val TSRMLS_CC); -+#if PHP_MAJOR_VERSION >= 7 -+ Proxy* proxy = (Proxy*)((char*)(Z_OBJ_P(val)) - XtOffsetOf(Proxy, std)); -+#else -+ Proxy* proxy = (Proxy*)zend_object_store_get_object(val TSRMLS_CC); -+#endif - if ( proxy->std.ce != ce ) { - php_error_docref(NULL TSRMLS_CC, E_ERROR, - "Relay object is not an %s", ce->name); -@@ -156,16 +184,29 @@ - return ret; - } - -+#if PHP_MAJOR_VERSION >= 7 -+static zend_object * -+#else - static zend_object_value -+#endif - Gen_create_obj (zend_class_entry *type, -- zend_objects_free_object_storage_t st, zend_object_handlers* handlers) -+#if PHP_MAJOR_VERSION < 7 -+ zend_objects_free_object_storage_t st, -+#endif -+ zend_object_handlers* handlers) - { - TSRMLS_FETCH(); -+#if PHP_MAJOR_VERSION < 7 - zend_object_value retval; -+#endif - -- Proxy *obj = (Proxy *)emalloc(sizeof(Proxy)); -- memset(obj, 0, sizeof(Proxy)); -+#if PHP_MAJOR_VERSION >= 7 -+ Proxy *obj = (Proxy *)ecalloc(1, sizeof(Proxy) + zend_object_properties_size(type)); -+ zend_object_std_init(&obj->std, type); -+#else -+ Proxy *obj = (Proxy *)ecalloc(1, sizeof(Proxy)); - obj->std.ce = type; -+#endif - - ALLOC_HASHTABLE(obj->std.properties); - zend_hash_init(obj->std.properties, 0, NULL, ZVAL_PTR_DTOR, 0); -@@ -176,10 +217,14 @@ - object_properties_init(&(obj->std), type); - #endif - -+#if PHP_MAJOR_VERSION >= 7 -+ return &obj->std; -+#else - retval.handle = zend_objects_store_put(obj, NULL, st, NULL TSRMLS_CC); - retval.handlers = handlers; - - return retval; -+#endif - } - - -@@ -364,9 +409,15 @@ - - /* Serializer function for GEOSGeometry */ - -+#if PHP_MAJOR_VERSION >= 7 -+static int -+Geometry_serialize(zval *object, unsigned char **buffer, size_t *buf_len, -+ zend_serialize_data *data TSRMLS_DC) -+#else - static int - Geometry_serialize(zval *object, unsigned char **buffer, zend_uint *buf_len, - zend_serialize_data *data TSRMLS_DC) -+#endif - { - GEOSWKBWriter *serializer; - GEOSGeometry *geom; -@@ -390,9 +441,15 @@ - return SUCCESS; - } - -+#if PHP_MAJOR_VERSION >= 7 -+static int -+Geometry_deserialize(zval *object, zend_class_entry *ce, const unsigned char *buf, -+ size_t buf_len, zend_unserialize_data *data TSRMLS_DC) -+#else - static int - Geometry_deserialize(zval **object, zend_class_entry *ce, const unsigned char *buf, - zend_uint buf_len, zend_unserialize_data *data TSRMLS_DC) -+#endif - { - GEOSWKBReader* deserializer; - GEOSGeometry* geom; -@@ -406,8 +463,13 @@ - "Geometry_deserialize called with unexpected zend_class_entry"); - return FAILURE; - } -+#if PHP_MAJOR_VERSION >= 7 -+ object_init_ex(object, ce); -+ setRelay(object, geom); -+#else - object_init_ex(*object, ce); - setRelay(*object, geom); -+#endif - - return SUCCESS; - } -@@ -432,7 +494,11 @@ - ngeoms = GEOSGetNumGeometries(g); - for (i=0; i= 7 -+ zval tmp; -+#else - zval *tmp; -+#endif - GEOSGeometry* cc; - const GEOSGeometry* c = GEOSGetGeometryN(g, i); - if ( ! c ) continue; /* should get an exception */ -@@ -440,14 +506,30 @@ - cc = GEOSGeom_clone(c); - if ( ! cc ) continue; /* should get an exception */ - -+#if PHP_MAJOR_VERSION >= 7 -+ object_init_ex(&tmp, Geometry_ce_ptr); -+ setRelay(&tmp, cc); -+ add_next_index_zval(array, &tmp); -+#else - MAKE_STD_ZVAL(tmp); - object_init_ex(tmp, Geometry_ce_ptr); - setRelay(tmp, cc); - add_next_index_zval(array, tmp); -+#endif - } - } - - -+#if PHP_MAJOR_VERSION >= 7 -+static void -+Geometry_dtor (zend_object *object TSRMLS_DC) -+{ -+ Proxy *obj = (Proxy *)((char*)object - XtOffsetOf(Proxy, std)); -+ GEOSGeom_destroy((GEOSGeometry*)obj->relay); -+ -+ zend_object_std_dtor(object); -+} -+#else - static void - Geometry_dtor (void *object TSRMLS_DC) - { -@@ -459,13 +541,21 @@ - - efree(obj); - } -+#endif - -+#if PHP_MAJOR_VERSION >= 7 -+static zend_object * -+Geometry_create_obj (zend_class_entry *type TSRMLS_DC) -+{ -+ return Gen_create_obj(type, &Geometry_object_handlers); -+} -+#else - static zend_object_value - Geometry_create_obj (zend_class_entry *type TSRMLS_DC) - { - return Gen_create_obj(type, Geometry_dtor, &Geometry_object_handlers); - } -- -+#endif - - PHP_METHOD(Geometry, __construct) - { -@@ -500,7 +590,7 @@ - ret = estrdup(wkt); - GEOSFree(wkt); - -- RETURN_STRING(ret, 0); -+ PHP_RETURN_STRING(ret, 0); - } - - PHP_METHOD(Geometry, project) -@@ -595,10 +685,16 @@ - double mitreLimit = default_mitreLimit; - long singleSided = 0; - zval *style_val = NULL; -+#if PHP_MAJOR_VERSION >= 7 -+ zval *data; -+ zend_string *key; -+ zend_ulong index; -+#else - zval **data; -- HashTable *style; - char *key; - ulong index; -+#endif -+ HashTable *style; - - this = (GEOSGeometry*)getRelay(getThis(), Geometry_ce_ptr); - -@@ -612,37 +708,62 @@ - if ( style_val ) - { - style = HASH_OF(style_val); -- while(zend_hash_get_current_key(style, &key, &index, 0) -+ while(php_zend_hash_get_current_key(style, &key, &index, 0) - == HASH_KEY_IS_STRING) - { -- if(!strcmp(key, "quad_segs")) -+ if(!strcmp(PHP_KEY_VAL(key), "quad_segs")) - { -+#if PHP_MAJOR_VERSION >= 7 -+ data = zend_hash_get_current_data(style); -+ quadSegs = getZvalAsLong(data); -+#else - zend_hash_get_current_data(style, (void**)&data); - quadSegs = getZvalAsLong(*data); -+#endif - GEOSBufferParams_setQuadrantSegments(params, quadSegs); - } -- else if(!strcmp(key, "endcap")) -+ else if(!strcmp(PHP_KEY_VAL(key), "endcap")) - { -+#if PHP_MAJOR_VERSION >= 7 -+ data = zend_hash_get_current_data(style); -+ endCapStyle = getZvalAsLong(data); -+#else - zend_hash_get_current_data(style, (void**)&data); - endCapStyle = getZvalAsLong(*data); -+#endif - GEOSBufferParams_setEndCapStyle(params, endCapStyle); - } -- else if(!strcmp(key, "join")) -+ else if(!strcmp(PHP_KEY_VAL(key), "join")) - { -+#if PHP_MAJOR_VERSION >= 7 -+ data = zend_hash_get_current_data(style); -+ joinStyle = getZvalAsLong(data); -+#else - zend_hash_get_current_data(style, (void**)&data); - joinStyle = getZvalAsLong(*data); -+#endif - GEOSBufferParams_setJoinStyle(params, joinStyle); - } -- else if(!strcmp(key, "mitre_limit")) -+ else if(!strcmp(PHP_KEY_VAL(key), "mitre_limit")) - { -+#if PHP_MAJOR_VERSION >= 7 -+ data = zend_hash_get_current_data(style); -+ mitreLimit = getZvalAsDouble(data); -+#else - zend_hash_get_current_data(style, (void**)&data); - mitreLimit = getZvalAsDouble(*data); -+#endif - GEOSBufferParams_setMitreLimit(params, mitreLimit); - } -- else if(!strcmp(key, "single_sided")) -+ else if(!strcmp(PHP_KEY_VAL(key), "single_sided")) - { -+#if PHP_MAJOR_VERSION >= 7 -+ data = zend_hash_get_current_data(style); -+ singleSided = getZvalAsLong(data); -+#else - zend_hash_get_current_data(style, (void**)&data); - singleSided = getZvalAsLong(*data); -+#endif - GEOSBufferParams_setSingleSided(params, singleSided); - } - -@@ -687,10 +808,16 @@ - long int joinStyle = default_joinStyle; - double mitreLimit = default_mitreLimit; - zval *style_val = NULL; -+#if PHP_MAJOR_VERSION >= 7 -+ zval *data; -+ zend_string *key; -+ zend_ulong index; -+#else - zval **data; -- HashTable *style; - char *key; - ulong index; -+#endif -+ HashTable *style; - - this = (GEOSGeometry*)getRelay(getThis(), Geometry_ce_ptr); - -@@ -702,23 +829,38 @@ - if ( style_val ) - { - style = HASH_OF(style_val); -- while(zend_hash_get_current_key(style, &key, &index, 0) -+ while(php_zend_hash_get_current_key(style, &key, &index, 0) - == HASH_KEY_IS_STRING) - { -- if(!strcmp(key, "quad_segs")) -+ if(!strcmp(PHP_KEY_VAL(key), "quad_segs")) - { -+#if PHP_MAJOR_VERSION >= 7 -+ data = zend_hash_get_current_data(style); -+ quadSegs = getZvalAsLong(data); -+#else - zend_hash_get_current_data(style, (void**)&data); - quadSegs = getZvalAsLong(*data); -+#endif - } -- else if(!strcmp(key, "join")) -+ else if(!strcmp(PHP_KEY_VAL(key), "join")) - { -+#if PHP_MAJOR_VERSION >= 7 -+ data = zend_hash_get_current_data(style); -+ joinStyle = getZvalAsLong(data); -+#else - zend_hash_get_current_data(style, (void**)&data); - joinStyle = getZvalAsLong(*data); -+#endif - } -- else if(!strcmp(key, "mitre_limit")) -+ else if(!strcmp(PHP_KEY_VAL(key), "mitre_limit")) - { -+#if PHP_MAJOR_VERSION >= 7 -+ data = zend_hash_get_current_data(style); -+ mitreLimit = getZvalAsDouble(data); -+#else - zend_hash_get_current_data(style, (void**)&data); - mitreLimit = getZvalAsDouble(*data); -+#endif - } - - zend_hash_move_forward(style); -@@ -970,7 +1112,7 @@ - if ( ! pat ) RETURN_NULL(); /* should get an exception first */ - retStr = estrdup(pat); - GEOSFree(pat); -- RETURN_STRING(retStr, 0); -+ PHP_RETURN_STRING(retStr, 0); - } else { - retInt = GEOSRelatePattern(this, other, pat); - if ( retInt == 2 ) RETURN_NULL(); /* should get an exception first */ -@@ -1007,7 +1149,7 @@ - if ( ! pat ) RETURN_NULL(); /* should get an exception first */ - retStr = estrdup(pat); - GEOSFree(pat); -- RETURN_STRING(retStr, 0); -+ PHP_RETURN_STRING(retStr, 0); - } - - /** -@@ -1409,6 +1551,9 @@ - char *reason = NULL; - zend_bool retBool; - char *reasonVal = NULL; -+#if PHP_MAJOR_VERSION >= 7 -+ zval locationValS; -+#endif - zval *locationVal = NULL; - long int flags = 0; - -@@ -1428,7 +1573,11 @@ - } - - if ( location ) { -+#if PHP_MAJOR_VERSION >= 7 -+ locationVal = &locationValS; -+#else - MAKE_STD_ZVAL(locationVal); -+#endif - object_init_ex(locationVal, Geometry_ce_ptr); - setRelay(locationVal, location); - } -@@ -1438,7 +1587,7 @@ - /* return value is an array */ - array_init(return_value); - add_assoc_bool(return_value, "valid", retBool); -- if ( reasonVal ) add_assoc_string(return_value, "reason", reasonVal, 0); -+ if ( reasonVal ) php_add_assoc_string(return_value, "reason", reasonVal, 0); - if ( locationVal ) add_assoc_zval(return_value, "location", locationVal); - - } -@@ -1538,7 +1687,7 @@ - typVal = estrdup(typ); - GEOSFree(typ); - -- RETURN_STRING(typVal, 0); -+ PHP_RETURN_STRING(typVal, 0); - } - - /** -@@ -1999,6 +2148,16 @@ - - static zend_object_handlers WKTReader_object_handlers; - -+#if PHP_MAJOR_VERSION >= 7 -+static void -+WKTReader_dtor (zend_object *object TSRMLS_DC) -+{ -+ Proxy *obj = (Proxy *)((char*)object - XtOffsetOf(Proxy, std)); -+ GEOSWKTReader_destroy((GEOSWKTReader*)obj->relay); -+ -+ zend_object_std_dtor(object); -+} -+#else - static void - WKTReader_dtor (void *object TSRMLS_DC) - { -@@ -2010,12 +2169,21 @@ - - efree(obj); - } -+#endif - -+#if PHP_MAJOR_VERSION >= 7 -+static zend_object * -+WKTReader_create_obj (zend_class_entry *type TSRMLS_DC) -+{ -+ return Gen_create_obj(type, &WKTReader_object_handlers); -+} -+#else - static zend_object_value - WKTReader_create_obj (zend_class_entry *type TSRMLS_DC) - { - return Gen_create_obj(type, WKTReader_dtor, &WKTReader_object_handlers); - } -+#endif - - - PHP_METHOD(WKTReader, __construct) -@@ -2082,6 +2250,16 @@ - - static zend_object_handlers WKTWriter_object_handlers; - -+#if PHP_MAJOR_VERSION >= 7 -+static void -+WKTWriter_dtor (zend_object *object TSRMLS_DC) -+{ -+ Proxy *obj = (Proxy *)((char*)object - XtOffsetOf(Proxy, std)); -+ GEOSWKTWriter_destroy((GEOSWKTWriter*)obj->relay); -+ -+ zend_object_std_dtor(object); -+} -+#else - static void - WKTWriter_dtor (void *object TSRMLS_DC) - { -@@ -2093,12 +2271,21 @@ - - efree(obj); - } -+#endif - -+#if PHP_MAJOR_VERSION >= 7 -+static zend_object * -+WKTWriter_create_obj (zend_class_entry *type TSRMLS_DC) -+{ -+ return Gen_create_obj(type, &WKTWriter_object_handlers); -+} -+#else - static zend_object_value - WKTWriter_create_obj (zend_class_entry *type TSRMLS_DC) - { - return Gen_create_obj(type, WKTWriter_dtor, &WKTWriter_object_handlers); - } -+#endif - - PHP_METHOD(WKTWriter, __construct) - { -@@ -2139,7 +2326,7 @@ - retstr = estrdup(wkt); - GEOSFree(wkt); - -- RETURN_STRING(retstr, 0); -+ PHP_RETURN_STRING(retstr, 0); - } - - PHP_METHOD(WKTWriter, setTrim) -@@ -2257,6 +2444,16 @@ - - static zend_object_handlers WKBWriter_object_handlers; - -+#if PHP_MAJOR_VERSION >= 7 -+static void -+WKBWriter_dtor (zend_object *object TSRMLS_DC) -+{ -+ Proxy *obj = (Proxy *)((char*)object - XtOffsetOf(Proxy, std)); -+ GEOSWKBWriter_destroy((GEOSWKBWriter*)obj->relay); -+ -+ zend_object_std_dtor(object); -+} -+#else - static void - WKBWriter_dtor (void *object TSRMLS_DC) - { -@@ -2268,12 +2465,21 @@ - - efree(obj); - } -+#endif - -+#if PHP_MAJOR_VERSION >= 7 -+static zend_object * -+WKBWriter_create_obj (zend_class_entry *type TSRMLS_DC) -+{ -+ return Gen_create_obj(type, &WKBWriter_object_handlers); -+} -+#else - static zend_object_value - WKBWriter_create_obj (zend_class_entry *type TSRMLS_DC) - { - return Gen_create_obj(type, WKBWriter_dtor, &WKBWriter_object_handlers); - } -+#endif - - /** - * GEOSWKBWriter w = new GEOSWKBWriter() -@@ -2356,7 +2562,7 @@ - retstr = estrndup(ret, retsize); - GEOSFree(ret); - -- RETURN_STRINGL(retstr, retsize, 0); -+ PHP_RETURN_STRINGL(retstr, retsize, 0); - } - - /** -@@ -2388,7 +2594,7 @@ - retstr = estrndup(ret, retsize); - GEOSFree(ret); - -- RETURN_STRING(retstr, 0); -+ PHP_RETURN_STRING(retstr, 0); - } - - /** -@@ -2481,6 +2687,16 @@ - - static zend_object_handlers WKBReader_object_handlers; - -+#if PHP_MAJOR_VERSION >= 7 -+static void -+WKBReader_dtor (zend_object *object TSRMLS_DC) -+{ -+ Proxy *obj = (Proxy *)((char*)object - XtOffsetOf(Proxy, std)); -+ GEOSWKBReader_destroy((GEOSWKBReader*)obj->relay); -+ -+ zend_object_std_dtor(object); -+} -+#else - static void - WKBReader_dtor (void *object TSRMLS_DC) - { -@@ -2492,12 +2708,21 @@ - - efree(obj); - } -+#endif - -+#if PHP_MAJOR_VERSION >= 7 -+static zend_object * -+WKBReader_create_obj (zend_class_entry *type TSRMLS_DC) -+{ -+ return Gen_create_obj(type, &WKBReader_object_handlers); -+} -+#else - static zend_object_value - WKBReader_create_obj (zend_class_entry *type TSRMLS_DC) - { - return Gen_create_obj(type, WKBReader_dtor, &WKBReader_object_handlers); - } -+#endif - - - PHP_METHOD(WKBReader, __construct) -@@ -2575,7 +2800,7 @@ - char *str; - - str = estrdup(GEOSversion()); -- RETURN_STRING(str, 0); -+ PHP_RETURN_STRING(str, 0); - } - - /** -@@ -2608,7 +2833,11 @@ - GEOSGeometry *cut_edges; - GEOSGeometry *dangles; - GEOSGeometry *invalid_rings; -+#if PHP_MAJOR_VERSION >= 7 -+ zval array_elem; -+#else - zval *array_elem; -+#endif - zval *zobj; - - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "o", &zobj) -@@ -2624,11 +2853,36 @@ - /* return value should be an array */ - array_init(return_value); - -+#if PHP_MAJOR_VERSION >= 7 -+ ZVAL_NEW_ARR(&array_elem); -+ array_init(&array_elem); -+ dumpGeometry(rings, &array_elem); -+ GEOSGeom_destroy(rings); -+ add_assoc_zval(return_value, "rings", &array_elem); -+ -+ ZVAL_NEW_ARR(&array_elem); -+ array_init(&array_elem); -+ dumpGeometry(cut_edges, &array_elem); -+ GEOSGeom_destroy(cut_edges); -+ add_assoc_zval(return_value, "cut_edges", &array_elem); -+ -+ ZVAL_NEW_ARR(&array_elem); -+ array_init(&array_elem); -+ dumpGeometry(dangles, &array_elem); -+ GEOSGeom_destroy(dangles); -+ add_assoc_zval(return_value, "dangles", &array_elem); -+ -+ ZVAL_NEW_ARR(&array_elem); -+ array_init(&array_elem); -+ dumpGeometry(invalid_rings, &array_elem); -+ GEOSGeom_destroy(invalid_rings); -+ add_assoc_zval(return_value, "invalid_rings", &array_elem); -+#else - MAKE_STD_ZVAL(array_elem); - array_init(array_elem); - dumpGeometry(rings, array_elem); - GEOSGeom_destroy(rings); -- add_assoc_zval(return_value, "rings", array_elem); -+ add_assoc_zval(return_value, "rings", array_elem); - - MAKE_STD_ZVAL(array_elem); - array_init(array_elem); -@@ -2647,7 +2901,7 @@ - dumpGeometry(invalid_rings, array_elem); - GEOSGeom_destroy(invalid_rings); - add_assoc_zval(return_value, "invalid_rings", array_elem); -- -+#endif - } - - /** -@@ -2813,6 +3067,9 @@ - memcpy(&WKTReader_object_handlers, - zend_get_std_object_handlers(), sizeof(zend_object_handlers)); - WKTReader_object_handlers.clone_obj = NULL; -+#if PHP_MAJOR_VERSION >= 7 -+ WKTReader_object_handlers.free_obj = &WKTReader_dtor; -+#endif - - /* WKTWriter */ - INIT_CLASS_ENTRY(ce, "GEOSWKTWriter", WKTWriter_methods); -@@ -2821,6 +3078,9 @@ - memcpy(&WKTWriter_object_handlers, - zend_get_std_object_handlers(), sizeof(zend_object_handlers)); - WKTWriter_object_handlers.clone_obj = NULL; -+#if PHP_MAJOR_VERSION >= 7 -+ WKTWriter_object_handlers.free_obj = &WKTWriter_dtor; -+#endif - - /* Geometry */ - INIT_CLASS_ENTRY(ce, "GEOSGeometry", Geometry_methods); -@@ -2829,6 +3089,9 @@ - memcpy(&Geometry_object_handlers, - zend_get_std_object_handlers(), sizeof(zend_object_handlers)); - Geometry_object_handlers.clone_obj = NULL; -+#if PHP_MAJOR_VERSION >= 7 -+ Geometry_object_handlers.free_obj = &Geometry_dtor; -+#endif - /* Geometry serialization */ - Geometry_ce_ptr->serialize = Geometry_serialize; - Geometry_ce_ptr->unserialize = Geometry_deserialize; -@@ -2840,6 +3103,9 @@ - memcpy(&WKBWriter_object_handlers, - zend_get_std_object_handlers(), sizeof(zend_object_handlers)); - WKBWriter_object_handlers.clone_obj = NULL; -+#if PHP_MAJOR_VERSION >= 7 -+ WKBWriter_object_handlers.free_obj = &WKBWriter_dtor; -+#endif - - /* WKBReader */ - INIT_CLASS_ENTRY(ce, "GEOSWKBReader", WKBReader_methods); -@@ -2848,6 +3114,9 @@ - memcpy(&WKBReader_object_handlers, - zend_get_std_object_handlers(), sizeof(zend_object_handlers)); - WKBReader_object_handlers.clone_obj = NULL; -+#if PHP_MAJOR_VERSION >= 7 -+ WKBReader_object_handlers.free_obj = &WKBReader_dtor; -+#endif - - - /* Constants */ diff --git a/geos.spec b/geos.spec index a96a834..0ad8f18 100644 --- a/geos.spec +++ b/geos.spec @@ -1,22 +1,18 @@ # # Conditional build: -%bcond_without php # PHP binding %bcond_without ruby # ruby binding -%define php_name php55 Summary: Geometry Engine - Open Source Summary(pl.UTF-8): GEOS - silnik geometryczny z otwartymi źródłami Name: geos -Version: 3.5.0 -Release: 3 +Version: 3.6.1 +Release: 1 License: LGPL v2.1 Group: Libraries Source0: http://download.osgeo.org/geos/%{name}-%{version}.tar.bz2 -# Source0-md5: 136842690be7f504fba46b3c539438dd -Patch0: %{name}-php7.patch -Patch1: rubydir.patch +# Source0-md5: c97e338b3bc81f9848656e9d693ca6cc +Patch0: rubydir.patch URL: http://trac.osgeo.org/geos/ -%{?with_php:BuildRequires: %{php_name}-devel} BuildRequires: autoconf >= 2.52 BuildRequires: automake BuildRequires: libstdc++-devel @@ -69,19 +65,6 @@ Static GEOS library. %description static -l pl.UTF-8 Statyczna biblioteka GEOS. -%package -n %{php_name}-geos -Summary: PHP bindings for Geometry Engine - Open Source -Summary(pl.UTF-8): Wiązania PHP do biblioteki GEOS -Group: Development/Languages/PHP -Requires: %{name} = %{version}-%{release} -%{?requires_php_extension} - -%description -n %{php_name}-geos -PHP bindings for Geometry Engine - Open Source. - -%description -n %{php_name}-geos -l pl.UTF-8 -Wiązania PHP do biblioteki GEOS. - %package -n python-geos Summary: Python bindings for Geometry Engine - Open Source Summary(pl.UTF-8): Wiązania Pythona do biblioteki GEOS @@ -109,7 +92,6 @@ Wiązania języka Ruby do biblioteki GEOS. %prep %setup -q %patch0 -p1 -%patch1 -p1 %build %{__aclocal} -I macros @@ -117,14 +99,12 @@ Wiązania języka Ruby do biblioteki GEOS. %{__autoheader} %{__automake} %configure \ - %{?with_php:--enable-php} \ --enable-python \ %{?with_ruby:--enable-ruby} %{__make} \ pkglibdir=%{_libdir} - %install rm -rf $RPM_BUILD_ROOT @@ -132,14 +112,6 @@ rm -rf $RPM_BUILD_ROOT DESTDIR=$RPM_BUILD_ROOT \ pythondir=%{py_sitescriptdir} -%if %{with php} -install -d $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d -cat <<'EOF' > $RPM_BUILD_ROOT%{php_sysconfdir}/conf.d/geos.ini -; Enable geos extension module -extension=geos.so -EOF -%endif - %{?with_ruby:%{__rm} $RPM_BUILD_ROOT%{ruby_vendorarchdir}/*.{la,a}} %{__rm} $RPM_BUILD_ROOT%{py_sitedir}/geos/*.{la,a} @@ -153,7 +125,7 @@ rm -rf $RPM_BUILD_ROOT %files %defattr(644,root,root,755) -%doc AUTHORS ChangeLog NEWS README TODO +%doc AUTHORS NEWS README TODO %attr(755,root,root) %{_libdir}/libgeos-%{version}.so %attr(755,root,root) %{_libdir}/libgeos_c.so.*.*.* %attr(755,root,root) %ghost %{_libdir}/libgeos_c.so.1 @@ -174,14 +146,6 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/libgeos.a %{_libdir}/libgeos_c.a -%if %{with php} -%files -n %{php_name}-geos -%defattr(644,root,root,755) -%doc php/{README,TODO} -%config(noreplace) %verify(not md5 mtime size) %{php_sysconfdir}/conf.d/geos.ini -%attr(755,root,root) %{php_extensiondir}/geos.so -%endif - %files -n python-geos %defattr(644,root,root,755) %dir %{py_sitedir}/geos