[php-pecl-mailparse] PHP 5.4.0 Build
Remi Collet
remi at fedoraproject.org
Fri Jan 20 17:52:57 UTC 2012
commit c312cc8b987401ad83906477d9b885d14c0f80b8
Author: remi <fedora at famillecollet.com>
Date: Fri Jan 20 18:52:27 2012 +0100
PHP 5.4.0 Build
mailparse-php54.patch | 111 +++++++++++++++++++++++++++++++++++++++++++++++
php-pecl-mailparse.spec | 71 ++++++++++++++++++-----------
2 files changed, 155 insertions(+), 27 deletions(-)
---
diff --git a/mailparse-php54.patch b/mailparse-php54.patch
new file mode 100644
index 0000000..36bc067
--- /dev/null
+++ b/mailparse-php54.patch
@@ -0,0 +1,111 @@
+diff -up mailparse-2.1.5/mailparse.c.php54 mailparse-2.1.5/mailparse.c
+--- mailparse-2.1.5/mailparse.c.php54 2009-03-03 23:24:04.000000000 +0100
++++ mailparse-2.1.5/mailparse.c 2011-11-18 17:57:46.036409192 +0100
+@@ -56,7 +56,7 @@ static size_t mailparse_do_uudecode(php_
+ static int le_mime_part;
+
+
+-static function_entry mimemessage_methods[] = {
++static zend_function_entry mimemessage_methods[] = {
+ PHP_NAMED_FE(mimemessage, PHP_FN(mailparse_mimemessage), NULL)
+ PHP_NAMED_FE(get_child, PHP_FN(mailparse_mimemessage_get_child), NULL)
+ PHP_NAMED_FE(get_child_count, PHP_FN(mailparse_mimemessage_get_child_count), NULL)
+@@ -72,7 +72,7 @@ static function_entry mimemessage_method
+
+ static zend_class_entry *mimemsg_class_entry;
+
+-function_entry mailparse_functions[] = {
++zend_function_entry mailparse_functions[] = {
+ PHP_FE(mailparse_msg_parse_file, NULL)
+ PHP_FE(mailparse_msg_get_part, NULL)
+ PHP_FE(mailparse_msg_get_structure, NULL)
+@@ -240,7 +240,7 @@ PHP_FUNCTION(mailparse_mimemessage)
+ RETURN_FALSE;
+
+ /* prepare the mime part for this object */
+- part = php_mimepart_alloc();
++ part = php_mimepart_alloc(TSRMLS_C);
+ MAKE_STD_ZVAL(zpart);
+ php_mimepart_to_zval(zpart, part);
+
+@@ -1074,7 +1074,7 @@ PHP_FUNCTION(mailparse_msg_parse_file)
+
+ filebuf = emalloc(MAILPARSE_BUFSIZ);
+
+- part = php_mimepart_alloc();
++ part = php_mimepart_alloc(TSRMLS_C);
+ php_mimepart_to_zval(return_value, part);
+
+ while(!php_stream_eof(stream)) {
+@@ -1113,7 +1113,7 @@ PHP_FUNCTION(mailparse_msg_free)
+ Returns a handle that can be used to parse a message */
+ PHP_FUNCTION(mailparse_msg_create)
+ {
+- php_mimepart *part = php_mimepart_alloc();
++ php_mimepart *part = php_mimepart_alloc(TSRMLS_C);
+
+ php_mimepart_to_zval(return_value, part);
+ }
+diff -up mailparse-2.1.5/php_mailparse_mime.c.php54 mailparse-2.1.5/php_mailparse_mime.c
+--- mailparse-2.1.5/php_mailparse_mime.c.php54 2011-11-18 17:55:38.630980580 +0100
++++ mailparse-2.1.5/php_mailparse_mime.c 2011-11-18 17:59:03.735671654 +0100
+@@ -305,7 +305,7 @@ static void php_mimepart_free_child(php_
+ php_mimepart_free(*part TSRMLS_CC);
+ }
+
+-PHP_MAILPARSE_API php_mimepart *php_mimepart_alloc(void)
++PHP_MAILPARSE_API php_mimepart *php_mimepart_alloc(TSRMLS_D)
+ {
+ php_mimepart *part = ecalloc(1, sizeof(php_mimepart));
+
+@@ -508,9 +508,9 @@ static int php_mimepart_process_header(p
+ return SUCCESS;
+ }
+
+-static php_mimepart *alloc_new_child_part(php_mimepart *parentpart, size_t startpos, int inherit)
++static php_mimepart *alloc_new_child_part(php_mimepart *parentpart, size_t startpos, int inherit TSRMLS_DC)
+ {
+- php_mimepart *child = php_mimepart_alloc();
++ php_mimepart *child = php_mimepart_alloc(TSRMLS_C);
+ int ret;
+
+ parentpart->parsedata.lastpart = child;
+@@ -599,7 +599,7 @@ static int php_mimepart_process_line(php
+ return SUCCESS;
+ }
+
+- newpart = alloc_new_child_part(workpart, workpart->endpos + origcount, 1);
++ newpart = alloc_new_child_part(workpart, workpart->endpos + origcount, 1 TSRMLS_CC);
+ php_mimepart_update_positions(workpart, workpart->endpos + origcount, workpart->endpos + linelen, 1);
+ newpart->mime_version = estrdup(workpart->mime_version);
+ newpart->parsedata.in_header = 1;
+@@ -688,7 +688,7 @@ static int php_mimepart_process_line(php
+ }
+
+ if (CONTENT_TYPE_IS(workpart, "message/rfc822")) {
+- workpart = alloc_new_child_part(workpart, workpart->bodystart, 0);
++ workpart = alloc_new_child_part(workpart, workpart->bodystart, 0 TSRMLS_CC);
+ workpart->parsedata.in_header = 1;
+ return SUCCESS;
+
+@@ -696,7 +696,7 @@ static int php_mimepart_process_line(php
+
+ /* create a section for the preamble that precedes the first boundary */
+ if (workpart->boundary) {
+- workpart = alloc_new_child_part(workpart, workpart->bodystart, 1);
++ workpart = alloc_new_child_part(workpart, workpart->bodystart, 1 TSRMLS_CC);
+ workpart->parsedata.in_header = 0;
+ workpart->parsedata.is_dummy = 1;
+ return SUCCESS;
+diff -up mailparse-2.1.5/php_mailparse_mime.h.php54 mailparse-2.1.5/php_mailparse_mime.h
+--- mailparse-2.1.5/php_mailparse_mime.h.php54 2011-11-18 17:55:45.702004867 +0100
++++ mailparse-2.1.5/php_mailparse_mime.h 2011-11-18 17:56:51.954226501 +0100
+@@ -81,7 +81,7 @@ struct _php_mimepart {
+
+ };
+
+-PHP_MAILPARSE_API php_mimepart *php_mimepart_alloc(void);
++PHP_MAILPARSE_API php_mimepart *php_mimepart_alloc(TSRMLS_D);
+ PHP_MAILPARSE_API void php_mimepart_free(php_mimepart *part TSRMLS_DC);
+ PHP_MAILPARSE_API int php_mimepart_parse(php_mimepart *part, const char *buf, size_t bufsize TSRMLS_DC);
+ PHP_MAILPARSE_API void php_mimepart_get_offsets(php_mimepart *part, off_t *start, off_t *end, off_t *start_body, int *nlines, int *nbodylines);
diff --git a/php-pecl-mailparse.spec b/php-pecl-mailparse.spec
index 70e13da..60b7306 100644
--- a/php-pecl-mailparse.spec
+++ b/php-pecl-mailparse.spec
@@ -6,12 +6,15 @@
Summary: PHP PECL package for parsing and working with email messages
Name: php-pecl-mailparse
Version: 2.1.5
-Release: 5%{?dist}
+Release: 6%{?dist}
License: PHP
Group: Development/Languages
URL: http://pecl.php.net/package/mailparse
Source0: http://pecl.php.net/get/mailparse-%{version}.tgz
+# https://bugs.php.net/60331
+Patch0: mailparse-php54.patch
+
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
BuildRequires: php-devel, php-pear
# mbstring need for tests
@@ -27,10 +30,11 @@ Requires(postun): %{__pecl}
Provides: php-pecl(%{pecl_name}) = %{version}-%{release}
-%{?filter_setup:
-%filter_provides_in %{php_extdir}/.*\.so$
-%filter_setup
-}
+# RPM 4.8
+%{?filter_provides_in: %filter_provides_in %{php_extdir}/.*\.so$}
+%{?filter_setup}
+# RPM 4.9
+%global __provides_exclude_from %{?__provides_exclude_from:%__provides_exclude_from|}%{php_extdir}/.*\\.so$
%description
@@ -43,39 +47,48 @@ It can deal with rfc822 and rfc2045 (MIME) compliant messages.
# the sources extract straight to it
%setup -q -c
-# Move back all other sources to the top level working directory
-%{__mv} mailparse-%{version}/* .
-%{__chmod} -x *.php *.c *.h
+extver=$(sed -n '/#define PHP_MAILPARSE_VERSION/{s/.* "//;s/".*$//;p}' %{pecl_name}-%{version}/php_mailparse.h)
+if test "x${extver}" != "x%{version}"; then
+ : Error: Upstream version is ${extver}, expecting %{version}.
+ exit 1
+fi
+
+cat > %{pecl_name}.ini << 'EOF'
+; Enable mailparse extension module
+extension = mailparse.so
+
+; Set the default charset
+;mailparse.def_charset = us-ascii
+EOF
+
+%patch0 -p0 -b .php54
+
+chmod -x %{pecl_name}-%{version}/*.{php,c,h}
%build
+cd %{pecl_name}-%{version}
phpize
%configure
-%{__make} %{?_smp_mflags}
+make %{?_smp_mflags}
%install
-%{__rm} -rf %{buildroot}
-%{__make} install INSTALL_ROOT=%{buildroot}
-
-# Drop in the bit of configuration
-%{__mkdir_p} %{buildroot}%{_sysconfdir}/php.d
-%{__cat} > %{buildroot}%{_sysconfdir}/php.d/z-mailparse.ini << 'EOF'
-; Enable mailparse extension module
-extension = mailparse.so
-
-; Set the default charset
-;mailparse.def_charset = us-ascii
-EOF
+rm -rf %{buildroot}
+make -C %{pecl_name}-%{version} \
+ install INSTALL_ROOT=%{buildroot}
# Install XML package description
-# use 'name' rather than 'pecl_name' to avoid conflict with pear extensions
-%{__mkdir_p} %{buildroot}%{pecl_xmldir}
-%{__install} -m 644 package2.xml %{buildroot}%{pecl_xmldir}/%{name}.xml
+install -Dpm 644 package2.xml %{buildroot}%{pecl_xmldir}/%{name}.xml
+
+# Drop in the bit of configuration
+install -Dpm 644 %{pecl_name}.ini %{buildroot}%{_sysconfdir}/php.d/z-%{pecl_name}.ini
%check
-%{__ln_s} %{php_extdir}/mbstring.so modules
+cd %{pecl_name}-%{version}
+ln -s %{php_extdir}/mbstring.so modules
+
TEST_PHP_EXECUTABLE=$(which php) php run-tests.php \
-n -q -d extension_dir=modules \
-d extension=mbstring.so \
@@ -83,7 +96,7 @@ TEST_PHP_EXECUTABLE=$(which php) php run-tests.php \
%clean
-%{__rm} -rf %{buildroot}
+rm -rf %{buildroot}
%if 0%{?pecl_install:1}
@@ -102,7 +115,7 @@ fi
%files
%defattr(-,root,root,-)
-%doc README CREDITS try.php
+%doc %{pecl_name}-%{version}/{README,CREDITS,try.php}
# We prefix the config file with "z-" so that it loads after mbstring.ini
%config(noreplace) %{_sysconfdir}/php.d/z-mailparse.ini
%{php_extdir}/mailparse.so
@@ -110,6 +123,10 @@ fi
%changelog
+* Thu Jan 19 2012 Remi Collet <remi at fedoraproject.org> - 2.1.5-6
+- rebuild against PHP 5.4, with patch
+- fix filters
+
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 2.1.5-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
More information about the scm-commits
mailing list