diff options
-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." ++} |