From dad988f3a377968148126f7aa84b0ef9d26060e7 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Sat, 11 Aug 2018 06:18:26 +0200 Subject: v3.6.1 --- 4873.patch | 262 ------------------------------------------------- PHPINFO | 4 + REFLECTION | 2 +- php-pecl-protobuf.spec | 20 ++-- 4 files changed, 18 insertions(+), 270 deletions(-) delete mode 100644 4873.patch create mode 100644 PHPINFO diff --git a/4873.patch b/4873.patch deleted file mode 100644 index 83e7135..0000000 --- a/4873.patch +++ /dev/null @@ -1,262 +0,0 @@ -From 3ec00a36190393f2c865c67737309391cf280b3b Mon Sep 17 00:00:00 2001 -From: Remi Collet -Date: Fri, 6 Jul 2018 10:32:18 +0200 -Subject: [PATCH] fix for API change in PHP 7.3 - ---- - php/ext/google/protobuf/def.c | 18 +++++++++--------- - php/ext/google/protobuf/encode_decode.c | 2 +- - php/ext/google/protobuf/map.c | 6 ++++-- - php/ext/google/protobuf/message.c | 8 ++++++++ - php/ext/google/protobuf/protobuf.c | 9 +++++---- - php/ext/google/protobuf/protobuf.h | 7 ++++++- - php/ext/google/protobuf/storage.c | 6 +++--- - 7 files changed, 36 insertions(+), 20 deletions(-) - -diff --git a/php/ext/google/protobuf/def.c b/php/ext/google/protobuf/def.c -index fa33830b93..238a924789 100644 ---- a/php/ext/google/protobuf/def.c -+++ b/php/ext/google/protobuf/def.c -@@ -253,7 +253,7 @@ PHP_METHOD(Descriptor, getField) { - #else - field_hashtable_value = - field_descriptor_type->create_object(field_descriptor_type TSRMLS_CC); -- --GC_REFCOUNT(field_hashtable_value); -+ GC_DELREF(field_hashtable_value); - #endif - FieldDescriptor *field_php = - UNBOX_HASHTABLE_VALUE(FieldDescriptor, field_hashtable_value); -@@ -264,7 +264,7 @@ PHP_METHOD(Descriptor, getField) { - #if PHP_MAJOR_VERSION < 7 - RETURN_ZVAL(field_hashtable_value, 1, 0); - #else -- ++GC_REFCOUNT(field_hashtable_value); -+ GC_ADDREF(field_hashtable_value); - RETURN_OBJ(field_hashtable_value); - #endif - } -@@ -492,7 +492,7 @@ PHP_METHOD(FieldDescriptor, getEnumType) { - #if PHP_MAJOR_VERSION < 7 - RETURN_ZVAL(desc, 1, 0); - #else -- ++GC_REFCOUNT(desc); -+ GC_ADDREF(desc); - RETURN_OBJ(desc); - #endif - } -@@ -512,7 +512,7 @@ PHP_METHOD(FieldDescriptor, getMessageType) { - #if PHP_MAJOR_VERSION < 7 - RETURN_ZVAL(desc, 1, 0); - #else -- ++GC_REFCOUNT(desc); -+ GC_ADDREF(desc); - RETURN_OBJ(desc); - #endif - } -@@ -585,7 +585,7 @@ PHP_METHOD(Oneof, getField) { - #if PHP_MAJOR_VERSION < 7 - RETURN_ZVAL(field_hashtable_value, 1, 0); - #else -- ++GC_REFCOUNT(field_hashtable_value); -+ GC_ADDREF(field_hashtable_value); - RETURN_OBJ(field_hashtable_value); - #endif - } -@@ -703,7 +703,7 @@ PHP_METHOD(DescriptorPool, getGeneratedPool) { - #if PHP_MAJOR_VERSION < 7 - RETURN_ZVAL(generated_pool_php, 1, 0); - #else -- ++GC_REFCOUNT(generated_pool_php); -+ GC_ADDREF(generated_pool_php); - RETURN_OBJ(generated_pool_php); - #endif - } -@@ -713,7 +713,7 @@ PHP_METHOD(InternalDescriptorPool, getGeneratedPool) { - #if PHP_MAJOR_VERSION < 7 - RETURN_ZVAL(internal_generated_pool_php, 1, 0); - #else -- ++GC_REFCOUNT(internal_generated_pool_php); -+ GC_ADDREF(internal_generated_pool_php); - RETURN_OBJ(internal_generated_pool_php); - #endif - } -@@ -1033,7 +1033,7 @@ PHP_METHOD(DescriptorPool, getDescriptorByClassName) { - #if PHP_MAJOR_VERSION < 7 - RETURN_ZVAL(desc, 1, 0); - #else -- ++GC_REFCOUNT(desc); -+ GC_ADDREF(desc); - RETURN_OBJ(desc); - #endif - } -@@ -1070,7 +1070,7 @@ PHP_METHOD(DescriptorPool, getEnumDescriptorByClassName) { - #if PHP_MAJOR_VERSION < 7 - RETURN_ZVAL(desc, 1, 0); - #else -- ++GC_REFCOUNT(desc); -+ GC_ADDREF(desc); - RETURN_OBJ(desc); - #endif - } -diff --git a/php/ext/google/protobuf/encode_decode.c b/php/ext/google/protobuf/encode_decode.c -index a8c47f4d35..de13dfa890 100644 ---- a/php/ext/google/protobuf/encode_decode.c -+++ b/php/ext/google/protobuf/encode_decode.c -@@ -577,7 +577,7 @@ static void map_slot_value(upb_fieldtype_t type, const void* from, - break; - case UPB_TYPE_MESSAGE: - *(zend_object**)to = Z_OBJ_P(*(zval**)from); -- ++GC_REFCOUNT(*(zend_object**)to); -+ GC_ADDREF(*(zend_object**)to); - break; - #endif - default: -diff --git a/php/ext/google/protobuf/map.c b/php/ext/google/protobuf/map.c -index ab8a518a4f..c5b500b53e 100644 ---- a/php/ext/google/protobuf/map.c -+++ b/php/ext/google/protobuf/map.c -@@ -192,7 +192,8 @@ static inline void php_proto_map_string_release(void *value) { - } - static inline void php_proto_map_object_release(void *value) { - zend_object* object = *(zend_object**)value; -- if(--GC_REFCOUNT(object) == 0) { -+ GC_DELREF(object); -+ if(GC_REFCOUNT(object) == 0) { - zend_objects_store_del(object); - } - } -@@ -302,7 +303,8 @@ static bool map_index_unset(Map *intern, const char* keyval, int length) { - zval_ptr_dtor(upb_value_memory(&old_value)); - #else - zend_object* object = *(zend_object**)upb_value_memory(&old_value); -- if(--GC_REFCOUNT(object) == 0) { -+ GC_DELREF(object); -+ if(GC_REFCOUNT(object) == 0) { - zend_objects_store_del(object); - } - #endif -diff --git a/php/ext/google/protobuf/message.c b/php/ext/google/protobuf/message.c -index e28e42a152..a40e0f635c 100644 ---- a/php/ext/google/protobuf/message.c -+++ b/php/ext/google/protobuf/message.c -@@ -869,7 +869,11 @@ PHP_PROTO_INIT_ENUMCLASS_START("Google\\Protobuf\\Field\\Cardinality", - zend_declare_class_constant_long(field_cardinality_type, - "CARDINALITY_REPEATED", 20, 3 TSRMLS_CC); - const char *alias = "Google\\Protobuf\\Field_Cardinality"; -+#if PHP_VERSION_ID < 70300 - zend_register_class_alias_ex(alias, strlen(alias), field_cardinality_type TSRMLS_CC); -+#else -+ zend_register_class_alias_ex(alias, strlen(alias), field_cardinality_type, 1); -+#endif - PHP_PROTO_INIT_ENUMCLASS_END - - // ----------------------------------------------------------------------------- -@@ -924,7 +928,11 @@ PHP_PROTO_INIT_ENUMCLASS_START("Google\\Protobuf\\Field\\Kind", - zend_declare_class_constant_long(field_kind_type, - "TYPE_SINT64", 11, 18 TSRMLS_CC); - const char *alias = "Google\\Protobuf\\Field_Kind"; -+#if PHP_VERSION_ID < 70300 - zend_register_class_alias_ex(alias, strlen(alias), field_kind_type TSRMLS_CC); -+#else -+ zend_register_class_alias_ex(alias, strlen(alias), field_kind_type, 1); -+#endif - PHP_PROTO_INIT_ENUMCLASS_END - - // ----------------------------------------------------------------------------- -diff --git a/php/ext/google/protobuf/protobuf.c b/php/ext/google/protobuf/protobuf.c -index da00302f2c..19cc5efb4e 100644 ---- a/php/ext/google/protobuf/protobuf.c -+++ b/php/ext/google/protobuf/protobuf.c -@@ -104,7 +104,7 @@ void add_def_obj(const void* def, PHP_PROTO_HASHTABLE_VALUE value) { - #if PHP_MAJOR_VERSION < 7 - Z_ADDREF_P(value); - #else -- ++GC_REFCOUNT(value); -+ GC_ADDREF(value); - #endif - add_to_table(upb_def_to_php_obj_map, def, value); - } -@@ -117,7 +117,7 @@ void add_ce_obj(const void* ce, PHP_PROTO_HASHTABLE_VALUE value) { - #if PHP_MAJOR_VERSION < 7 - Z_ADDREF_P(value); - #else -- ++GC_REFCOUNT(value); -+ GC_ADDREF(value); - #endif - add_to_table(ce_to_php_obj_map, ce, value); - } -@@ -134,7 +134,7 @@ void add_proto_obj(const char* proto, PHP_PROTO_HASHTABLE_VALUE value) { - #if PHP_MAJOR_VERSION < 7 - Z_ADDREF_P(value); - #else -- ++GC_REFCOUNT(value); -+ GC_ADDREF(value); - #endif - add_to_strtable(proto_to_php_obj_map, proto, strlen(proto), value); - } -@@ -235,7 +235,8 @@ static PHP_GSHUTDOWN_FUNCTION(protobuf) { - static void php_proto_hashtable_descriptor_release(zval* value) { - void* ptr = Z_PTR_P(value); - zend_object* object = *(zend_object**)ptr; -- if(--GC_REFCOUNT(object) == 0) { -+ GC_DELREF(object); -+ if(GC_REFCOUNT(object) == 0) { - zend_objects_store_del(object); - } - efree(ptr); -diff --git a/php/ext/google/protobuf/protobuf.h b/php/ext/google/protobuf/protobuf.h -index 20035ab7ff..6193b28d73 100644 ---- a/php/ext/google/protobuf/protobuf.h -+++ b/php/ext/google/protobuf/protobuf.h -@@ -46,6 +46,11 @@ - // PHP7 Wrappers - // ---------------------------------------------------------------------------- - -+#if PHP_VERSION_ID < 70300 -+#define GC_ADDREF(h) ++GC_REFCOUNT(h) -+#define GC_DELREF(h) --GC_REFCOUNT(h) -+#endif -+ - #if PHP_MAJOR_VERSION < 7 - - #define php_proto_zend_literal const zend_literal* -@@ -496,7 +501,7 @@ static inline int php_proto_zend_hash_get_current_data_ex(HashTable* ht, - PHP_PROTO_HASHTABLE_VALUE WRAPPED_OBJ; \ - WRAPPED_OBJ = OBJ_CLASS_ENTRY->create_object(OBJ_CLASS_ENTRY); \ - OBJ = UNBOX_HASHTABLE_VALUE(OBJ_TYPE, WRAPPED_OBJ); \ -- --GC_REFCOUNT(WRAPPED_OBJ); -+ GC_DELREF(WRAPPED_OBJ); - - #define PHP_PROTO_CE_DECLARE zend_class_entry* - #define PHP_PROTO_CE_UNREF(ce) (ce) -diff --git a/php/ext/google/protobuf/storage.c b/php/ext/google/protobuf/storage.c -index e7910c85de..a60fbe393b 100644 ---- a/php/ext/google/protobuf/storage.c -+++ b/php/ext/google/protobuf/storage.c -@@ -200,7 +200,7 @@ bool native_slot_set_by_array(upb_fieldtype_t type, - } - #else - DEREF(memory, zval*) = value; -- ++GC_REFCOUNT(Z_OBJ_P(value)); -+ GC_ADDREF(Z_OBJ_P(value)); - #endif - break; - } -@@ -251,7 +251,7 @@ bool native_slot_set_by_map(upb_fieldtype_t type, const zend_class_entry* klass, - } - #else - DEREF(memory, zend_object*) = Z_OBJ_P(value); -- ++GC_REFCOUNT(Z_OBJ_P(value)); -+ GC_ADDREF(Z_OBJ_P(value)); - #endif - break; - } -@@ -428,7 +428,7 @@ void native_slot_get_by_map_value(upb_fieldtype_t type, const void* memory, - ZVAL_ZVAL(CACHED_PTR_TO_ZVAL_PTR(cache), value, 1, 0); - } - #else -- ++GC_REFCOUNT(*(zend_object**)memory); -+ GC_ADDREF(*(zend_object**)memory); - ZVAL_OBJ(cache, *(zend_object**)memory); - #endif - return; diff --git a/PHPINFO b/PHPINFO new file mode 100644 index 0000000..7104f29 --- /dev/null +++ b/PHPINFO @@ -0,0 +1,4 @@ + +protobuf + +Version => 3.6.1 diff --git a/REFLECTION b/REFLECTION index 3419a17..c096fe7 100644 --- a/REFLECTION +++ b/REFLECTION @@ -1,4 +1,4 @@ -Extension [ extension #124 protobuf version 3.6.0 ] { +Extension [ extension #124 protobuf version 3.6.1 ] { - Dependencies { Dependency [ date (Optional) ] diff --git a/php-pecl-protobuf.spec b/php-pecl-protobuf.spec index 40da3a8..10a7592 100644 --- a/php-pecl-protobuf.spec +++ b/php-pecl-protobuf.spec @@ -25,15 +25,12 @@ Summary: Mechanism for serializing structured data Name: %{?sub_prefix}php-pecl-%{pecl_name} -Version: 3.6.0 -Release: 2%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} +Version: 3.6.1 +Release: 1%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} License: BSD -Group: Development/Languages URL: http://pecl.php.net/package/%{pecl_name} Source0: http://pecl.php.net/get/%{pecl_name}-%{version}%{?prever}.tgz -Patch0: https://patch-diff.githubusercontent.com/raw/google/protobuf/pull/4873.patch - BuildRequires: %{?dtsprefix}gcc BuildRequires: %{?scl_prefix}php-devel >= 5.5.9 BuildRequires: %{?scl_prefix}php-pear @@ -69,6 +66,10 @@ Obsoletes: php71w-pecl-%{pecl_name} <= %{version} Obsoletes: php72u-pecl-%{pecl_name} <= %{version} Obsoletes: php72w-pecl-%{pecl_name} <= %{version} %endif +%if "%{php_version}" > "7.3" +Obsoletes: php73u-pecl-%{pecl_name} <= %{version} +Obsoletes: php73w-pecl-%{pecl_name} <= %{version} +%endif %endif %if 0%{?fedora} < 20 && 0%{?rhel} < 7 @@ -99,8 +100,6 @@ sed -e 's/role="test"/role="src"/' \ cd NTS -%patch0 -p5 -b .pr4873 - # Sanity check, really often broken extver=$(sed -n '/#define PHP_PROTOBUF_VERSION/{s/.* "//;s/".*$//;p}' protobuf.h) if test "x${extver}" != "x%{version}%{?prever}"; then @@ -217,6 +216,13 @@ fi %changelog +* Sat Aug 11 2018 Remi Collet - 3.6.1-1 +- update to 3.6.1 +- drop patch merged upstream + +* Wed Jul 18 2018 Remi Collet - 3.6.0-3 +- rebuild for 7.3.0alpha4 new ABI + * Fri Jul 6 2018 Remi Collet - 3.6.0-2 - add patch for PHP 7.3 from https://github.com/google/protobuf/pull/4873 -- cgit