From ef8ca11d43ba72ed0a4ecec1befdadacb405a42b Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Nov 13 2018 08:11:27 +0000 Subject: update to 2.0.3 drop patch merged upstream --- diff --git a/.gitignore b/.gitignore index e90be25..e34abf5 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ clog /yaml-2.0.0RC8.tgz /yaml-2.0.0.tgz /yaml-2.0.2.tgz +/yaml-2.0.3.tgz diff --git a/33.patch b/33.patch deleted file mode 100644 index 6e1f935..0000000 --- a/33.patch +++ /dev/null @@ -1,130 +0,0 @@ -From 4a3eb9f1c92e9dff6ce723bd94daef1580d080d2 Mon Sep 17 00:00:00 2001 -From: Remi Collet -Date: Wed, 4 Jul 2018 12:14:48 +0200 -Subject: [PATCH] Fix for PHP 7.3 - ---- - .gitignore | 2 ++ - .travis.yml | 3 +++ - emit.c | 53 ++++++++++++++++++++++++++++++++++++++++++----------- - 3 files changed, 47 insertions(+), 11 deletions(-) - -diff --git a/emit.c b/emit.c -index 993a666..fd3769e 100644 ---- a/emit.c -+++ b/emit.c -@@ -173,7 +173,11 @@ static void y_scan_recursion(const y_emit_state_t *state, zval *data TSRMLS_DC) - return; - } - -+#if PHP_VERSION_ID >= 70300 -+ if (!(GC_FLAGS(ht) & GC_IMMUTABLE) && GC_IS_RECURSIVE(ht)) { -+#else - if (ZEND_HASH_APPLY_PROTECTION(ht) && ht->u.v.nApplyCount > 0) { -+#endif - zval tmp; - ZVAL_LONG(&tmp, (zend_ulong) ht); - -@@ -182,17 +186,29 @@ static void y_scan_recursion(const y_emit_state_t *state, zval *data TSRMLS_DC) - return; - } - -+#if PHP_VERSION_ID >= 70300 -+ if (!(GC_FLAGS(ht) & GC_IMMUTABLE)) { -+ GC_PROTECT_RECURSION(ht); -+ } -+#else - if (ZEND_HASH_APPLY_PROTECTION(ht)) { - ht->u.v.nApplyCount++; - } -+#endif - - ZEND_HASH_FOREACH_VAL(ht, elm) { - y_scan_recursion(state, elm TSRMLS_CC); - } ZEND_HASH_FOREACH_END(); - -+#if PHP_VERSION_ID >= 70300 -+ if (!(GC_FLAGS(ht) & GC_IMMUTABLE)) { -+ GC_UNPROTECT_RECURSION(ht); -+ } -+#else - if (ZEND_HASH_APPLY_PROTECTION(ht)) { - ht->u.v.nApplyCount--; - } -+#endif - - return; - } -@@ -462,7 +478,6 @@ static int y_write_array( - zval key_zval; - zend_ulong kidx; - zend_string *kstr; -- HashTable *tmp_ht; - zend_long recursive_idx = -1; - char *anchor = { 0 }; - size_t anchor_size; -@@ -495,7 +510,11 @@ static int y_write_array( - anchor = (char*) emalloc(anchor_size + 1); - snprintf(anchor, anchor_size + 1, "refid%ld", recursive_idx + 1); - -- if (ZEND_HASH_APPLY_PROTECTION(ht) && ht->u.v.nApplyCount > 1) { -+#if PHP_VERSION_ID >= 70300 -+ if (!(GC_FLAGS(ht) & GC_IMMUTABLE) && GC_IS_RECURSIVE(ht)) { -+#else -+ if (ZEND_HASH_APPLY_PROTECTION(ht) && ht->u.v.nApplyCount > 0) { -+#endif - /* node has been visited before */ - status = yaml_alias_event_initialize( - &event, (yaml_char_t *) anchor); -@@ -536,6 +555,18 @@ static int y_write_array( - return FAILURE; - } - -+#if PHP_VERSION_ID >= 70300 -+ if (!(GC_FLAGS(ht) & GC_IMMUTABLE)) { -+ /* increment access count for hash */ -+ GC_PROTECT_RECURSION(ht); -+ } -+#else -+ if (ZEND_HASH_APPLY_PROTECTION(ht)) { -+ /* increment access count for hash */ -+ ht->u.v.nApplyCount++; -+ } -+#endif -+ - /* emit array elements */ - ZEND_HASH_FOREACH_KEY_VAL(ht, kidx, kstr, elm) { - ZVAL_DEREF(elm); -@@ -555,23 +586,23 @@ static int y_write_array( - } - } - -- tmp_ht = HASH_OF(elm); -- if (tmp_ht && ZEND_HASH_APPLY_PROTECTION(tmp_ht)) { -- /* increment access count for hash */ -- tmp_ht->u.v.nApplyCount++; -- } -- - status = y_write_zval(state, elm, NULL TSRMLS_CC); - -- if (tmp_ht && ZEND_HASH_APPLY_PROTECTION(tmp_ht)) { -- tmp_ht->u.v.nApplyCount--; -- } - - if (SUCCESS != status) { - return FAILURE; - } - } ZEND_HASH_FOREACH_END(); - -+#if PHP_VERSION_ID >= 70300 -+ if (!(GC_FLAGS(ht) & GC_IMMUTABLE)) { -+ GC_UNPROTECT_RECURSION(ht); -+ } -+#else -+ if (ZEND_HASH_APPLY_PROTECTION(ht)) { -+ ht->u.v.nApplyCount--; -+ } -+#endif - - if (Y_ARRAY_SEQUENCE == array_type) { - status = yaml_sequence_end_event_initialize(&event); diff --git a/php-pecl-yaml.spec b/php-pecl-yaml.spec index b126855..064532b 100644 --- a/php-pecl-yaml.spec +++ b/php-pecl-yaml.spec @@ -5,17 +5,14 @@ %global ini_name 40-%{pecl_name}.ini Name: php-pecl-yaml -Version: 2.0.2 -Release: 5%{?dist} +Version: 2.0.3 +Release: 1%{?dist} Summary: Support for YAML 1.1 serialization using the LibYAML library -Group: Development/Languages License: MIT URL: http://pecl.php.net/package/yaml Source0: http://pecl.php.net/get/%{pecl_name}-%{version}%{?prever}.tgz -Patch0: https://patch-diff.githubusercontent.com/raw/php/pecl-file_formats-yaml/pull/33.patch - BuildRequires: php-devel >= 7 BuildRequires: php-pear BuildRequires: libyaml-devel @@ -37,10 +34,6 @@ constructs as valid YAML 1.1 documents. %prep %setup -q -c -pushd %{pecl_name}-%{version}%{?prever} -%patch0 -p1 -b .pr33 -popd - # Remove test file to avoid regsitration (pecl list-files yaml) sed -e 's/role="test"/role="src"/' \ -e '/LICENSE/s/role="doc"/role="src"/' \ @@ -108,6 +101,10 @@ done %changelog +* Tue Nov 13 2018 Remi Collet - 2.0.3-1 +- update to 2.0.3 +- drop patch merged upstream + * Thu Oct 11 2018 Remi Collet - 2.0.2-5 - Rebuild for https://fedoraproject.org/wiki/Changes/php73 - add better patch for PHP 7.3 from diff --git a/sources b/sources index bff8e71..84eb2fb 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (yaml-2.0.2.tgz) = b3dd2098826cd7cdcfd1e5d97b9015de66812dc90e506e74a4a50a56afed5f9de0449465bb807a36a13170f479897cc62a9b108653aa7eb81895abd5966bde1a +SHA512 (yaml-2.0.3.tgz) = 8ed5302b18098afe6a789c2b56d2356ae5b7dd58b9ffe8b2cc574868bc99642ac650e21041d68e6c5a43981df1ab2939f64bf28e9c8482e08e145437cc874316