summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemi Collet <fedora@famillecollet.com>2015-10-17 10:03:38 +0200
committerRemi Collet <fedora@famillecollet.com>2015-10-17 10:03:38 +0200
commit5b64eca514d9a8d7ed305e9bfdb9ab0d65185772 (patch)
tree3bda0f42d37bf79b71112fc1d4da7797f7a56a0e
parentf812b41f5c17a1476bdc436e2a6031c13328cff9 (diff)
php-pecl-yaml: add upstream patch, fix segfault
-rw-r--r--php-pecl-yaml-dev.spec14
-rw-r--r--yaml-upstream.patch56
2 files changed, 67 insertions, 3 deletions
diff --git a/php-pecl-yaml-dev.spec b/php-pecl-yaml-dev.spec
index 0962acb..89901f2 100644
--- a/php-pecl-yaml-dev.spec
+++ b/php-pecl-yaml-dev.spec
@@ -34,13 +34,16 @@
Summary: PHP Bindings for yaml
Name: %{?sub_prefix}php-pecl-yaml
Version: 2.0.0
-Release: 0.1.%{prever}%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}
+Release: 0.2.%{prever}%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}
License: MIT
Group: Development/Languages
URL: http://pecl.php.net/package/yaml
Source: http://pecl.php.net/get/%{pecl_name}-%{version}%{?prever}.tgz
+# Upstream patch
+Patch0: %{pecl_name}-upstream.patch
+
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: %{?scl_prefix}php-devel >= 7
BuildRequires: %{?scl_prefix}php-pear
@@ -99,6 +102,8 @@ mv %{pecl_name}-%{version}%{?prever} NTS
sed -e '/role="test"/d' -i package.xml
cd NTS
+%patch0 -p1 -b .upstream
+
# Check upstream version (often broken)
extver=$(sed -n '/#define PHP_YAML_VERSION/{s/.* "//;s/".*$//;p}' php_yaml.h)
if test "x${extver}" != "x%{version}%{?prever}"; then
@@ -188,7 +193,7 @@ cd NTS
TEST_PHP_EXECUTABLE=%{__php} \
TEST_PHP_ARGS="-n -d extension=$PWD/modules/%{pecl_name}.so" \
NO_INTERACTION=1 \
-REPORT_EXIT_STATUS=0 \
+REPORT_EXIT_STATUS=1 \
%{__php} -n run-tests.php --show-diff
%if %{with_zts}
@@ -202,7 +207,7 @@ cd ../ZTS
TEST_PHP_EXECUTABLE=%{__ztsphp} \
TEST_PHP_ARGS="-n -d extension=$PWD/modules/%{pecl_name}.so" \
NO_INTERACTION=1 \
-REPORT_EXIT_STATUS=0 \
+REPORT_EXIT_STATUS=1 \
%{__ztsphp} -n run-tests.php --show-diff
%endif
@@ -246,6 +251,9 @@ fi
%changelog
+* Sat Oct 17 2015 Remi Collet <remi@fedoraproject.org> - 2.0.0-0.2.RC2
+- add uptream patches, fix segfault and test suite
+
* Sat Oct 17 2015 Remi Collet <remi@fedoraproject.org> - 2.0.0-0.1.RC2
- update to 2.0.0RC2 for PHP 7
- 2 failed tests, so ignore test suite results for now
diff --git a/yaml-upstream.patch b/yaml-upstream.patch
new file mode 100644
index 0000000..c2bf423
--- /dev/null
+++ b/yaml-upstream.patch
@@ -0,0 +1,56 @@
+From b015af52451b90bc38463ea4915c150de4a1b9d9 Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@php.net>
+Date: Sat, 17 Oct 2015 09:42:29 +0200
+Subject: [PATCH] free later, fix tests/yaml_emit_005.phpt failure
+
+---
+ emit.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/emit.c b/emit.c
+index faa4d07..d210acc 100644
+--- a/emit.c
++++ b/emit.c
+@@ -668,13 +668,13 @@ static int y_write_object(
+ NULL, (yaml_char_t *) YAML_PHP_TAG, (yaml_char_t *) buf.s->val, buf.s->len,
+ 0, 0, YAML_DOUBLE_QUOTED_SCALAR_STYLE);
+
+- smart_string_free(&buf);
+ if (!status) {
+ y_event_init_failed(&event);
+ status = FAILURE;
+ } else {
+ status = y_event_emit(state, &event TSRMLS_CC);
+ }
++ smart_string_free(&buf);
+ }
+
+ return status;
+--
+2.1.4
+
+From 2538b42347d1fc390ebd88ef1c1ca4164c2faecf Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@php.net>
+Date: Sat, 17 Oct 2015 09:46:19 +0200
+Subject: [PATCH] missing init value, fix segfault in tests/bug_64694.phpt
+
+---
+ parse.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/parse.c b/parse.c
+index d52753a..dbd8cd5 100644
+--- a/parse.c
++++ b/parse.c
+@@ -880,7 +880,7 @@ static char *convert_to_char(zval *zv TSRMLS_DC)
+ default:
+ {
+ php_serialize_data_t var_hash;
+- smart_str buf;
++ smart_str buf = {0};
+
+ PHP_VAR_SERIALIZE_INIT(var_hash);
+ php_var_serialize(&buf, zv, &var_hash TSRMLS_CC);
+--
+2.1.4
+