diff options
| author | Remi Collet <remi@remirepo.net> | 2022-02-22 13:56:18 +0100 | 
|---|---|---|
| committer | Remi Collet <remi@php.net> | 2022-02-22 13:56:18 +0100 | 
| commit | 0871797de74230cc2e11488e9f71548d79d9b747 (patch) | |
| tree | 2e2cb80f4efd39edae9f66c284c52a144fed43da | |
| parent | e720874e29fad9b89b86c75bbdc1a6ea2d73afeb (diff) | |
fix gh#65 yaml_parse_url method not working using patch from
  https://github.com/php/pecl-file_formats-yaml/pull/66
| -rw-r--r-- | php-pecl-yaml.spec | 12 | ||||
| -rw-r--r-- | yaml-pr66.patch | 137 | 
2 files changed, 147 insertions, 2 deletions
diff --git a/php-pecl-yaml.spec b/php-pecl-yaml.spec index 10770c2..25a47f0 100644 --- a/php-pecl-yaml.spec +++ b/php-pecl-yaml.spec @@ -1,6 +1,6 @@  # remirepo spec file for php-pecl-yaml  # -# Copyright (c) 2012-2021 Remi Collet +# Copyright (c) 2012-2022 Remi Collet  # Fedora spec file for php-pecl-yaml  # @@ -24,12 +24,14 @@  Summary:       PHP Bindings for yaml  Name:          %{?sub_prefix}php-pecl-yaml  Version:       %{upstream_version}%{?upstream_prever:~%{upstream_prever}} -Release:       1%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} +Release:       2%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}  License:       MIT  URL:           https://pecl.php.net/package/yaml  Source0:       https://pecl.php.net/get/%{pecl_name}-%{upstream_version}%{?upstream_prever}.tgz +Patch0:        %{pecl_name}-pr66.patch +  BuildRequires: make  BuildRequires: %{?dtsprefix}gcc  BuildRequires: %{?scl_prefix}php-devel >= 7.1 @@ -90,6 +92,8 @@ sed -e 's/role="test"/role="src"/' \      -i package.xml  cd NTS +%patch0 -p1 -b .pr66 +  # Check upstream version (often broken)  extver=$(sed -n '/#define PHP_YAML_VERSION/{s/.* "//;s/".*$//;p}' php_yaml.h)  if test "x${extver}" != "x%{upstream_version}%{?upstream_prever}"; then @@ -233,6 +237,10 @@ fi  %changelog +* Tue Feb 22 2022 Remi Collet <remi@remirepo.net> - 2.2.2-2 +- fix gh#65 yaml_parse_url method not working using patch from +  https://github.com/php/pecl-file_formats-yaml/pull/66 +  * Mon Oct 25 2021 Remi Collet <remi@remirepo.net> - 2.2.2-1  - update to 2.2.2  - drop patch merged upstream diff --git a/yaml-pr66.patch b/yaml-pr66.patch new file mode 100644 index 0000000..94e9c9e --- /dev/null +++ b/yaml-pr66.patch @@ -0,0 +1,137 @@ +From b3ba97abde6c503a305631649e8be01320078fb1 Mon Sep 17 00:00:00 2001 +From: Remi Collet <remi@remirepo.net> +Date: Tue, 22 Feb 2022 11:57:38 +0100 +Subject: [PATCH 1/2] Fix #65 yaml_parse_url method not working + +--- + yaml.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/yaml.c b/yaml.c +index e06b145..4ca2cfe 100644 +--- a/yaml.c ++++ b/yaml.c +@@ -476,7 +476,6 @@ PHP_FUNCTION(yaml_parse_url) +  + 	php_stream *stream = { 0 }; + 	zend_string *input; +-	size_t size = 0; +  + 	parser_state_t state; + 	zval yaml; +@@ -516,7 +515,7 @@ PHP_FUNCTION(yaml_parse_url) + 	} +  + 	yaml_parser_initialize(&state.parser); +-	yaml_parser_set_input_string(&state.parser, (unsigned char *)input, size); ++	yaml_parser_set_input_string(&state.parser, (unsigned char *)ZSTR_VAL(input), ZSTR_LEN(input)); +  + 	if (pos < 0) { + 		php_yaml_read_all(&state, &ndocs, &yaml); + +From 2cd4463594345a8c844a86c33e3539f5a44f3156 Mon Sep 17 00:00:00 2001 +From: Remi Collet <remi@remirepo.net> +Date: Tue, 22 Feb 2022 12:03:54 +0100 +Subject: [PATCH 2/2] add test for #65 + +--- + package.xml                   |  1 + + tests/yaml_parse_url_001.phpt | 89 +++++++++++++++++++++++++++++++++++ + 2 files changed, 90 insertions(+) + create mode 100644 tests/yaml_parse_url_001.phpt + +diff --git a/tests/yaml_parse_url_001.phpt b/tests/yaml_parse_url_001.phpt +new file mode 100644 +index 0000000..7c5efc4 +--- /dev/null ++++ b/tests/yaml_parse_url_001.phpt +@@ -0,0 +1,89 @@ ++--TEST-- ++yaml_parse_url - general ++--SKIPIF-- ++<?php if(!extension_loaded('yaml')) die('skip yaml n/a'); ?> ++--INI-- ++yaml.decode_timestamp=1 ++date.timezone=GMT ++--FILE-- ++<?php ++var_dump(yaml_parse_url('file://' . __DIR__ . '/yaml_parse_file_001.yaml')); ++?> ++--EXPECT-- ++array(8) { ++  ["invoice"]=> ++  int(34843) ++  ["date"]=> ++  int(980208000) ++  ["bill-to"]=> ++  &array(3) { ++    ["given"]=> ++    string(5) "Chris" ++    ["family"]=> ++    string(6) "Dumars" ++    ["address"]=> ++    array(4) { ++      ["lines"]=> ++      string(27) "458 Walkman Dr. ++Suite #292 ++" ++      ["city"]=> ++      string(9) "Royal Oak" ++      ["state"]=> ++      string(2) "MI" ++      ["postal"]=> ++      int(48046) ++    } ++  } ++  ["ship-to"]=> ++  &array(3) { ++    ["given"]=> ++    string(5) "Chris" ++    ["family"]=> ++    string(6) "Dumars" ++    ["address"]=> ++    array(4) { ++      ["lines"]=> ++      string(27) "458 Walkman Dr. ++Suite #292 ++" ++      ["city"]=> ++      string(9) "Royal Oak" ++      ["state"]=> ++      string(2) "MI" ++      ["postal"]=> ++      int(48046) ++    } ++  } ++  ["product"]=> ++  array(2) { ++    [0]=> ++    array(4) { ++      ["sku"]=> ++      string(6) "BL394D" ++      ["quantity"]=> ++      int(4) ++      ["description"]=> ++      string(10) "Basketball" ++      ["price"]=> ++      float(450) ++    } ++    [1]=> ++    array(4) { ++      ["sku"]=> ++      string(7) "BL4438H" ++      ["quantity"]=> ++      int(1) ++      ["description"]=> ++      string(10) "Super Hoop" ++      ["price"]=> ++      float(2392) ++    } ++  } ++  ["tax"]=> ++  float(251.42) ++  ["total"]=> ++  float(4443.52) ++  ["comments"]=> ++  string(68) "Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338." ++}  | 
