diff options
| -rw-r--r-- | php-pecl-xlswriter.spec | 32 | ||||
| -rw-r--r-- | xlswriter-php82.patch | 46 | 
2 files changed, 59 insertions, 19 deletions
diff --git a/php-pecl-xlswriter.spec b/php-pecl-xlswriter.spec index a0cc04d..f907383 100644 --- a/php-pecl-xlswriter.spec +++ b/php-pecl-xlswriter.spec @@ -15,7 +15,6 @@  %if 0%{?scl:1}  %scl_package         php-pecl-xlswriter -%global sub_prefix   %{scl_prefix}  %endif  %global with_zts     0%{!?_without_zts:%{?__ztsphp:1}} @@ -29,13 +28,15 @@  %endif  Summary:        An efficient and fast xlsx file extension -Name:           %{?sub_prefix}php-pecl-%{pecl_name} +Name:           %{?scl_prefix}php-pecl-%{pecl_name}  Version:        1.5.2 -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:        BSD  URL:            https://pecl.php.net/package/%{pecl_name}  Source0:        https://pecl.php.net/get/%{pecl_name}-%{version}.tgz +Patch0:         %{pecl_name}-php82.patch +  BuildRequires:  %{?dtsprefix}gcc  BuildRequires:  make  BuildRequires:  %{?scl_prefix}php-devel >= 7.0 @@ -63,22 +64,6 @@ Provides:       %{?scl_prefix}php-%{pecl_name}               = %{version}  Provides:       %{?scl_prefix}php-%{pecl_name}%{?_isa}       = %{version}  Provides:       %{?scl_prefix}php-pecl(%{pecl_name})         = %{version}  Provides:       %{?scl_prefix}php-pecl(%{pecl_name})%{?_isa} = %{version} -%if "%{?scl_prefix}" != "%{?sub_prefix}" -Provides:       %{?scl_prefix}php-pecl-%{pecl_name}          = %{version}-%{release} -Provides:       %{?scl_prefix}php-pecl-%{pecl_name}%{?_isa}  = %{version}-%{release} -%endif - -%if "%{?packager}" == "Remi Collet" && 0%{!?scl:1} && 0%{?rhel} -%if "%{php_version}" > "7.4" -Obsoletes:      php74-pecl-%{pecl_name} <= %{version} -%endif -%if "%{php_version}" > "8.0" -Obsoletes:      php80-pecl-%{pecl_name} <= %{version} -%endif -%if "%{php_version}" > "8.1" -Obsoletes:      php81-pecl-%{pecl_name} <= %{version} -%endif -%endif  %description @@ -122,6 +107,8 @@ sed -e 's/role="test"/role="src"/' \      -i package.xml  cd NTS +%patch0 -p1 -b .pr451 +  %if %{with syslib}  # we use the system libraries  rm -r library @@ -228,6 +215,9 @@ OPT="$OPT %{?_smp_mflags}"  rm ?TS/tests/open_xlsx_get_data_skip_empty.phpt  rm ?TS/tests/open_xlsx_next_row_skip_empty.phpt  %endif +%if "%{php_version}" > "8.2" +rm ?TS/tests/validation_limiting_input_to_a_value_in_a_dropdown_list.phpt +%endif  cd NTS  : Minimal load test for NTS extension @@ -274,6 +264,10 @@ cd ..  %changelog +* Fri Sep 16 2022 Remi Collet <remi@remirepo.net> - 1.5.2-2 +- add patch for PHP 8.2 from +  https://github.com/viest/php-ext-xlswriter/pull/451 +  * Thu Apr 28 2022 Remi Collet <remi@remirepo.net> - 1.5.2-1  - update to 1.5.2 diff --git a/xlswriter-php82.patch b/xlswriter-php82.patch new file mode 100644 index 0000000..912beda --- /dev/null +++ b/xlswriter-php82.patch @@ -0,0 +1,46 @@ +From 5ec02a705d9171150035b028af622f913088ff7f Mon Sep 17 00:00:00 2001 +From: Remi Collet <remi@remirepo.net> +Date: Fri, 16 Sep 2022 11:43:18 +0200 +Subject: [PATCH] Fix for PACKED array on PHP 8.2 + +--- + kernel/excel.c | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/kernel/excel.c b/kernel/excel.c +index 698db1f..093c1ce 100644 +--- a/kernel/excel.c ++++ b/kernel/excel.c +@@ -627,7 +627,8 @@ PHP_METHOD(vtiful_xls, header) +  */ + PHP_METHOD(vtiful_xls, data) + { +-    zend_ulong column_index = 0; ++    zend_ulong column_index = 0, index; ++    zend_string *key; +     zval *data = NULL, *data_r_value = NULL; +  +     ZEND_PARSE_PARAMETERS_START(1, 1) +@@ -651,17 +652,16 @@ PHP_METHOD(vtiful_xls, data) +  +         column_index = 0; +  +-        ZEND_HASH_FOREACH_BUCKET(Z_ARRVAL_P(data_r_value), Bucket *bucket) ++        ZEND_HASH_FOREACH_KEY_VAL_IND(Z_ARRVAL_P(data_r_value), index, key, data) { +             // numeric index rewriting +-            if (bucket->key == NULL) { +-                column_index = bucket->h; ++            if (key == NULL) { ++                column_index = index; +             } +- +-            type_writer(&bucket->val, SHEET_CURRENT_LINE(obj), column_index, &obj->write_ptr, NULL, obj->format_ptr.format); ++            type_writer(data, SHEET_CURRENT_LINE(obj), column_index, &obj->write_ptr, NULL, obj->format_ptr.format); +  +             // next number index +             ++column_index; +-        ZEND_HASH_FOREACH_END(); ++        } ZEND_HASH_FOREACH_END(); +  +         SHEET_LINE_ADD(obj) +     ZEND_HASH_FOREACH_END();  | 
