commit:     8187eb32d10a53a0c837eadb02625329310b3582
Author:     Brian Evans <grknight <AT> gentoo <DOT> org>
AuthorDate: Wed Apr  4 13:20:44 2018 +0000
Commit:     Brian Evans <grknight <AT> gentoo <DOT> org>
CommitDate: Wed Apr  4 13:21:39 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8187eb32

dev-lang/php: Fix compilation with dev-libs/oniguruma-6.8.1

Include upstream patch for all 7.0 versions
Limit version in 5.6.35-r1 as the patch is not the same there

Closes: https://bugs.gentoo.org/652352
Package-Manager: Portage-2.3.28, Repoman-2.3.9

 dev-lang/php/files/mbstring-oniguruma-6.8.patch    | 30 ++++++++++++++++++++++
 .../{php-5.6.35.ebuild => php-5.6.35-r1.ebuild}    |  2 +-
 dev-lang/php/php-7.0.27.ebuild                     |  2 ++
 dev-lang/php/php-7.0.28.ebuild                     |  2 ++
 dev-lang/php/php-7.0.29.ebuild                     |  2 ++
 dev-lang/php/php-7.1.13.ebuild                     |  2 ++
 dev-lang/php/php-7.1.14.ebuild                     |  2 ++
 dev-lang/php/php-7.1.15.ebuild                     |  2 ++
 dev-lang/php/php-7.1.16.ebuild                     |  2 ++
 dev-lang/php/php-7.2.4.ebuild                      |  2 ++
 10 files changed, 47 insertions(+), 1 deletion(-)

diff --git a/dev-lang/php/files/mbstring-oniguruma-6.8.patch 
b/dev-lang/php/files/mbstring-oniguruma-6.8.patch
new file mode 100644
index 00000000000..c238f88007c
--- /dev/null
+++ b/dev-lang/php/files/mbstring-oniguruma-6.8.patch
@@ -0,0 +1,30 @@
+From 4072b2787074ee8e247a6639585b49e10c5a55fe Mon Sep 17 00:00:00 2001
+From: "Christoph M. Becker" <[email protected]>
+Date: Tue, 20 Mar 2018 16:35:39 +0100
+Subject: [PATCH] Fix #76113: mbstring does not build with Oniguruma 6.8.1
+
+As of Oniguruma 6.8.1, the regex structure has been moved from the
+public `oniguruma.h` to the private `regint.h`.  Thus, it is no longer
+possible to directly access the struct's members, and actually, there
+is no need to, since there are respective accessor functions available
+at least of 2.3.1.
+---
+ ext/mbstring/php_mbregex.c | 2 +-
+ 1 file changed, 1 insertions(+), 1 deletion(-)
+
+diff --git a/ext/mbstring/php_mbregex.c b/ext/mbstring/php_mbregex.c
+index a5a6cd0..7a70c63 100644
+--- a/ext/mbstring/php_mbregex.c
++++ b/ext/mbstring/php_mbregex.c
+@@ -452,7 +452,7 @@ static php_mb_regex_t *php_mbregex_compile_pattern(const 
char *pattern, int patl
+       OnigUChar err_str[ONIG_MAX_ERROR_MESSAGE_LEN];
+ 
+       rc = zend_hash_str_find_ptr(&MBREX(ht_rc), (char *)pattern, patlen);
+-      if (!rc || rc->options != options || rc->enc != enc || rc->syntax != 
syntax) {
++      if (!rc || onig_get_options(rc) != options || onig_get_encoding(rc) != 
enc || onig_get_syntax(rc) != syntax) {
+               if ((err_code = onig_new(&retval, (OnigUChar *)pattern, 
(OnigUChar *)(pattern + patlen), options, enc, syntax, &err_info)) != 
ONIG_NORMAL) {
+                       onig_error_code_to_str(err_str, err_code, &err_info);
+                       php_error_docref(NULL, E_WARNING, "mbregex compile err: 
%s", err_str);
+-- 
+2.1.4
+

diff --git a/dev-lang/php/php-5.6.35.ebuild b/dev-lang/php/php-5.6.35-r1.ebuild
similarity index 99%
rename from dev-lang/php/php-5.6.35.ebuild
rename to dev-lang/php/php-5.6.35-r1.ebuild
index 0cbd2484dc0..ebf59c207d5 100644
--- a/dev-lang/php/php-5.6.35.ebuild
+++ b/dev-lang/php/php-5.6.35-r1.ebuild
@@ -113,7 +113,7 @@ COMMON_DEPEND="
                !gd? (
                        virtual/jpeg:0 media-libs/libpng:0= sys-libs/zlib:0= )
        )
-       unicode? ( dev-libs/oniguruma:= )
+       unicode? ( <dev-libs/oniguruma-6.8.0:= )
        vpx? ( media-libs/libvpx:0= )
        wddx? ( >=dev-libs/libxml2-2.6.8 )
        xml? ( >=dev-libs/libxml2-2.6.8 )

diff --git a/dev-lang/php/php-7.0.27.ebuild b/dev-lang/php/php-7.0.27.ebuild
index 07116183964..88d8e93bc68 100644
--- a/dev-lang/php/php-7.0.27.ebuild
+++ b/dev-lang/php/php-7.0.27.ebuild
@@ -163,6 +163,8 @@ REQUIRED_USE="
        mysql? ( || ( mysqli pdo ) )
 "
 
+PATCHES=( "${FILESDIR}/mbstring-oniguruma-6.8.patch" )
+
 PHP_MV="$(get_major_version)"
 
 php_install_ini() {

diff --git a/dev-lang/php/php-7.0.28.ebuild b/dev-lang/php/php-7.0.28.ebuild
index 889e707ffc3..7964fdcd189 100644
--- a/dev-lang/php/php-7.0.28.ebuild
+++ b/dev-lang/php/php-7.0.28.ebuild
@@ -163,6 +163,8 @@ REQUIRED_USE="
        mysql? ( || ( mysqli pdo ) )
 "
 
+PATCHES=( "${FILESDIR}/mbstring-oniguruma-6.8.patch" )
+
 PHP_MV="$(get_major_version)"
 
 php_install_ini() {

diff --git a/dev-lang/php/php-7.0.29.ebuild b/dev-lang/php/php-7.0.29.ebuild
index 45b3218e4f6..ec866bd84ba 100644
--- a/dev-lang/php/php-7.0.29.ebuild
+++ b/dev-lang/php/php-7.0.29.ebuild
@@ -163,6 +163,8 @@ REQUIRED_USE="
        mysql? ( || ( mysqli pdo ) )
 "
 
+PATCHES=( "${FILESDIR}/mbstring-oniguruma-6.8.patch" )
+
 PHP_MV="$(get_major_version)"
 
 php_install_ini() {

diff --git a/dev-lang/php/php-7.1.13.ebuild b/dev-lang/php/php-7.1.13.ebuild
index 4fc386497f8..65425f9dc6a 100644
--- a/dev-lang/php/php-7.1.13.ebuild
+++ b/dev-lang/php/php-7.1.13.ebuild
@@ -145,6 +145,8 @@ REQUIRED_USE="
        mysql? ( || ( mysqli pdo ) )
 "
 
+PATCHES=( "${FILESDIR}/mbstring-oniguruma-6.8.patch" )
+
 PHP_MV="$(get_major_version)"
 
 php_install_ini() {

diff --git a/dev-lang/php/php-7.1.14.ebuild b/dev-lang/php/php-7.1.14.ebuild
index 682890dc86d..ee42a9c8acb 100644
--- a/dev-lang/php/php-7.1.14.ebuild
+++ b/dev-lang/php/php-7.1.14.ebuild
@@ -145,6 +145,8 @@ REQUIRED_USE="
        mysql? ( || ( mysqli pdo ) )
 "
 
+PATCHES=( "${FILESDIR}/mbstring-oniguruma-6.8.patch" )
+
 PHP_MV="$(get_major_version)"
 
 php_install_ini() {

diff --git a/dev-lang/php/php-7.1.15.ebuild b/dev-lang/php/php-7.1.15.ebuild
index d3c61673621..7624b2d8a8a 100644
--- a/dev-lang/php/php-7.1.15.ebuild
+++ b/dev-lang/php/php-7.1.15.ebuild
@@ -145,6 +145,8 @@ REQUIRED_USE="
        mysql? ( || ( mysqli pdo ) )
 "
 
+PATCHES=( "${FILESDIR}/mbstring-oniguruma-6.8.patch" )
+
 PHP_MV="$(get_major_version)"
 
 php_install_ini() {

diff --git a/dev-lang/php/php-7.1.16.ebuild b/dev-lang/php/php-7.1.16.ebuild
index 34ff2d2648d..26afb4343b5 100644
--- a/dev-lang/php/php-7.1.16.ebuild
+++ b/dev-lang/php/php-7.1.16.ebuild
@@ -145,6 +145,8 @@ REQUIRED_USE="
        mysql? ( || ( mysqli pdo ) )
 "
 
+PATCHES=( "${FILESDIR}/mbstring-oniguruma-6.8.patch" )
+
 PHP_MV="$(get_major_version)"
 
 php_install_ini() {

diff --git a/dev-lang/php/php-7.2.4.ebuild b/dev-lang/php/php-7.2.4.ebuild
index 5407f131e1a..9db1463e3a1 100644
--- a/dev-lang/php/php-7.2.4.ebuild
+++ b/dev-lang/php/php-7.2.4.ebuild
@@ -150,6 +150,8 @@ REQUIRED_USE="
        zip-encryption? ( zip )
 "
 
+PATCHES=( "${FILESDIR}/mbstring-oniguruma-6.8.patch" )
+
 PHP_MV="$(get_major_version)"
 
 php_install_ini() {

Reply via email to