summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--4873.patch262
-rw-r--r--PHPINFO4
-rw-r--r--REFLECTION2
-rw-r--r--php-pecl-protobuf.spec20
4 files changed, 18 insertions, 270 deletions
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 <remi@remirepo.net>
-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 [ <persistent> extension #124 protobuf version 3.6.0 ] {
+Extension [ <persistent> 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 <remi@remirepo.net> - 3.6.1-1
+- update to 3.6.1
+- drop patch merged upstream
+
+* Wed Jul 18 2018 Remi Collet <remi@remirepo.net> - 3.6.0-3
+- rebuild for 7.3.0alpha4 new ABI
+
* Fri Jul 6 2018 Remi Collet <remi@remirepo.net> - 3.6.0-2
- add patch for PHP 7.3 from
https://github.com/google/protobuf/pull/4873