summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--php-pecl-mailparse.spec20
-rw-r--r--upstream.patch241
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];