diff options
-rw-r--r-- | php-pecl-mailparse.spec | 20 | ||||
-rw-r--r-- | upstream.patch | 241 |
2 files changed, 256 insertions, 5 deletions
diff --git a/php-pecl-mailparse.spec b/php-pecl-mailparse.spec index fac1767..d1aa912 100644 --- a/php-pecl-mailparse.spec +++ b/php-pecl-mailparse.spec @@ -16,6 +16,8 @@ %bcond_without tests +%global pie_vend pecl +%global pie_proj mailparse %global pecl_name mailparse %global with_zts 0%{!?_without_zts:%{?__ztsphp:1}} %global ini_name 40-%{pecl_name}.ini @@ -25,11 +27,13 @@ Summary: PHP PECL package for parsing and working with email messages Name: %{?scl_prefix}php-pecl-mailparse Version: 3.1.8 -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: PHP-3.01 URL: https://pecl.php.net/package/mailparse Source0: https://pecl.php.net/get/%{sources}.tgz +Patch0: upstream.patch + BuildRequires: make BuildRequires: %{?dtsprefix}gcc BuildRequires: %{?scl_prefix}php-devel >= 7.3 @@ -45,10 +49,11 @@ Requires: %{?scl_prefix}php-mbstring%{?_isa} Requires: %{?scl_prefix}php(zend-abi) = %{php_zend_api} Requires: %{?scl_prefix}php(api) = %{php_core_api} -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} +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} +Provides: %{?scl_prefix}php-pie(%{pie_vend}/%{pie_proj}) = %{version} %description @@ -67,6 +72,8 @@ sed -e 's/role="test"/role="src"/' \ -i package.xml cd %{sources} +%patch -P0 -p1 -b .up + extver=$(sed -n '/#define PHP_MAILPARSE_VERSION/{s/.* "//;s/".*$//;p}' php_mailparse.h) if test "x${extver}" != "x%{version}"; then : Error: Upstream version is ${extver}, expecting %{version}. @@ -171,6 +178,9 @@ TEST_PHP_EXECUTABLE=%{__php} \ %changelog +* Wed Jul 30 2025 Remi Collet <remi@remirepo.net> - 3.1.8-2 +- fix for PHP 8.5.0alpha3 using patch from upstream + * Fri Oct 4 2024 Remi Collet <remi@remirepo.net> - 3.1.8-1 - update to 3.1.8 diff --git a/upstream.patch b/upstream.patch new file mode 100644 index 0000000..5a99f80 --- /dev/null +++ b/upstream.patch @@ -0,0 +1,241 @@ +From 385f248446a63a8e3d2e8417f4e9ee95f6c32a91 Mon Sep 17 00:00:00 2001 +From: Remi Collet <remi@php.net> +Date: Wed, 30 Jul 2025 12:31:36 +0200 +Subject: [PATCH] use Zend/zend_smart_string.h + +--- + php_mailparse_mime.h | 2 +- + php_mailparse_rfc822.c | 92 ++++++++++++++++++++--------------------- + php_mailparse_rfc822.re | 2 +- + 3 files changed, 48 insertions(+), 48 deletions(-) + +diff --git a/php_mailparse_mime.h b/php_mailparse_mime.h +index 8c3747f..38c5d40 100644 +--- a/php_mailparse_mime.h ++++ b/php_mailparse_mime.h +@@ -17,7 +17,7 @@ + #ifndef php_mailparse_mime_h + #define php_mailparse_mime_h + +-#include "ext/standard/php_smart_string.h" ++#include "Zend/zend_smart_string.h" + + typedef struct _php_mimepart php_mimepart; + +diff --git a/php_mailparse_rfc822.c b/php_mailparse_rfc822.c +index 6bc29a9..28a001a 100644 +--- a/php_mailparse_rfc822.c ++++ b/php_mailparse_rfc822.c +@@ -1,4 +1,4 @@ +-/* Generated by re2c 2.1.1 on Fri Oct 4 14:25:00 2024 */ ++/* Generated by re2c 3.1 on Wed Jul 30 12:30:59 2025 */ + #line 1 "/home/php/git/mailparse/php_mailparse_rfc822.re" + /* + +----------------------------------------------------------------------+ +@@ -20,7 +20,7 @@ + #include "php_mailparse.h" + #include "php_mailparse_rfc822.h" + #include "ext/standard/php_string.h" +-#include "ext/standard/php_smart_string.h" ++#include "Zend/zend_smart_string.h" + #line 36 "/home/php/git/mailparse/php_mailparse_rfc822.re" + + +@@ -106,63 +106,63 @@ printf("ground: start=%p limit=%p cursor=%p: [%d] %s\n", start, YYLIMIT, YYCURSO + if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; + if (yybm[0+yych] & 64) { +- goto yy7; ++ goto yy3; + } + if (yych <= '-') { + if (yych <= '%') { + if (yych <= '!') { +- if (yych <= 0x00) goto yy2; +- if (yych <= 0x1F) goto yy4; +- goto yy10; ++ if (yych <= 0x00) goto yy1; ++ if (yych <= 0x1F) goto yy2; ++ goto yy4; + } else { +- if (yych <= '"') goto yy12; +- if (yych <= '$') goto yy4; +- goto yy10; ++ if (yych <= '"') goto yy5; ++ if (yych <= '$') goto yy2; ++ goto yy4; + } + } else { + if (yych <= ')') { +- if (yych <= '\'') goto yy4; +- if (yych <= '(') goto yy15; +- goto yy17; ++ if (yych <= '\'') goto yy2; ++ if (yych <= '(') goto yy6; ++ goto yy7; + } else { +- if (yych == ',') goto yy10; +- goto yy4; ++ if (yych == ',') goto yy4; ++ goto yy2; + } + } + } else { + if (yych <= '>') { + if (yych <= ';') { +- if (yych <= '/') goto yy10; +- if (yych <= '9') goto yy4; +- goto yy10; ++ if (yych <= '/') goto yy4; ++ if (yych <= '9') goto yy2; ++ goto yy4; + } else { +- if (yych <= '<') goto yy19; +- if (yych <= '=') goto yy10; +- goto yy21; ++ if (yych <= '<') goto yy9; ++ if (yych <= '=') goto yy4; ++ goto yy10; + } + } else { + if (yych <= '[') { +- if (yych <= '@') goto yy10; +- if (yych <= 'Z') goto yy4; +- goto yy10; +- } else { +- if (yych <= '\\') goto yy23; +- if (yych <= ']') goto yy10; ++ if (yych <= '@') goto yy4; ++ if (yych <= 'Z') goto yy2; + goto yy4; ++ } else { ++ if (yych <= '\\') goto yy11; ++ if (yych <= ']') goto yy4; ++ goto yy2; + } + } + } +-yy2: ++yy1: + ++YYCURSOR; + #line 86 "/home/php/git/mailparse/php_mailparse_rfc822.re" + { goto stop; } + #line 160 "<stdout>" +-yy4: ++yy2: + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yybm[0+yych] & 32) { +- goto yy4; ++ goto yy2; + } + #line 140 "/home/php/git/mailparse/php_mailparse_rfc822.re" + { DBG_STATE("ANY"); +@@ -176,30 +176,30 @@ printf("ground: start=%p limit=%p cursor=%p: [%d] %s\n", start, YYLIMIT, YYCURSO + goto state_ground; + } + #line 179 "<stdout>" +-yy7: ++yy3: + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yybm[0+yych] & 64) { +- goto yy7; ++ goto yy3; + } + #line 87 "/home/php/git/mailparse/php_mailparse_rfc822.re" + { DBG_STATE("SPACE"); goto state_ground; } + #line 189 "<stdout>" +-yy10: ++yy4: + ++YYCURSOR; + #line 139 "/home/php/git/mailparse/php_mailparse_rfc822.re" + { DBG_STATE("ATOM"); ADD_ATOM_TOKEN(); goto state_ground; } + #line 194 "<stdout>" +-yy12: ++yy5: + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yybm[0+yych] & 128) { +- goto yy12; ++ goto yy5; + } +- if (yych >= 0x01) goto yy24; +-yy15: ++ if (yych >= 0x01) goto yy12; ++yy6: + ++YYCURSOR; + #line 89 "/home/php/git/mailparse/php_mailparse_rfc822.re" + { DBG_STATE("START COMMENT"); +@@ -211,15 +211,15 @@ printf("ground: start=%p limit=%p cursor=%p: [%d] %s\n", start, YYLIMIT, YYCURSO + goto state_comment; + } + #line 214 "<stdout>" +-yy17: ++yy7: + ++YYCURSOR; +-yy18: ++yy8: + #line 88 "/home/php/git/mailparse/php_mailparse_rfc822.re" + { REPORT_ERR("token not valid in ground state"); goto state_ground; } + #line 220 "<stdout>" +-yy19: ++yy9: + yych = *++YYCURSOR; +- if (yych == '>') goto yy26; ++ if (yych == '>') goto yy13; + #line 121 "/home/php/git/mailparse/php_mailparse_rfc822.re" + { DBG_STATE("LANGLE"); + if (in_bracket) { +@@ -231,7 +231,7 @@ printf("ground: start=%p limit=%p cursor=%p: [%d] %s\n", start, YYLIMIT, YYCURSO + goto state_ground; + } + #line 234 "<stdout>" +-yy21: ++yy10: + ++YYCURSOR; + #line 130 "/home/php/git/mailparse/php_mailparse_rfc822.re" + { DBG_STATE("RANGLE"); +@@ -244,13 +244,13 @@ printf("ground: start=%p limit=%p cursor=%p: [%d] %s\n", start, YYLIMIT, YYCURSO + goto state_ground; + } + #line 247 "<stdout>" +-yy23: ++yy11: + yych = *++YYCURSOR; + if (yybm[0+yych] & 32) { +- goto yy4; ++ goto yy2; + } +- goto yy18; +-yy24: ++ goto yy8; ++yy12: + ++YYCURSOR; + #line 97 "/home/php/git/mailparse/php_mailparse_rfc822.re" + { DBG_STATE("QUOTE STRING"); +@@ -265,7 +265,7 @@ printf("ground: start=%p limit=%p cursor=%p: [%d] %s\n", start, YYLIMIT, YYCURSO + goto state_ground; + } + #line 268 "<stdout>" +-yy26: ++yy13: + ++YYCURSOR; + #line 108 "/home/php/git/mailparse/php_mailparse_rfc822.re" + { DBG_STATE("NULL <>"); +diff --git a/php_mailparse_rfc822.re b/php_mailparse_rfc822.re +index 62dee30..98699ac 100644 +--- a/php_mailparse_rfc822.re ++++ b/php_mailparse_rfc822.re +@@ -18,7 +18,7 @@ + #include "php_mailparse.h" + #include "php_mailparse_rfc822.h" + #include "ext/standard/php_string.h" +-#include "ext/standard/php_smart_string.h" ++#include "Zend/zend_smart_string.h" + /*!re2c + CHAR = [\000-\177]; + ALPHA = [\101-\132]|[\141-\172]; |