[dev-lang/php] pull multiple build fixes from fedora for 5.6
This commit is contained in:
parent
96105506f0
commit
d631e46ab4
1
dev-lang/php/Manifest
Normal file
1
dev-lang/php/Manifest
Normal file
@ -0,0 +1 @@
|
||||
DIST php-5.6.38.tar.xz 12467408 BLAKE2B d9ee47e193d80bce8a9ed6ffd3eb13e67ba6d1f597ece2803cd92fddc6245f46cdfe644d6cda12a6bb409b92c1fe748610cc5eb43dea0bf063fda81188ee8b3d SHA512 66c51a8e954b1496c0bad0a2864a2a1537dd1c1c573b553991d6d5bce85fc7bc340e56a21109bc5e9a03799e703204b980b569c95a5c0a1bddb01c8947e7a682
|
2
dev-lang/php/files/20php5-envd
Normal file
2
dev-lang/php/files/20php5-envd
Normal file
@ -0,0 +1,2 @@
|
||||
MANPATH="/usr/lib/php5/man/"
|
||||
CONFIG_PROTECT_MASK="/etc/php/cli-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/apache2-php5/ext-active/"
|
12
dev-lang/php/files/5.6-mbstring-oniguruma-6.8.patch
Normal file
12
dev-lang/php/files/5.6-mbstring-oniguruma-6.8.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -aurN a/ext/mbstring/php_mbregex.c b/ext/mbstring/php_mbregex.c
|
||||
--- a/ext/mbstring/php_mbregex.c 2018-03-28 17:28:58.000000000 -0400
|
||||
+++ b/ext/mbstring/php_mbregex.c 2018-04-04 12:53:23.268296387 -0400
|
||||
@@ -454,7 +454,7 @@
|
||||
OnigUChar err_str[ONIG_MAX_ERROR_MESSAGE_LEN];
|
||||
|
||||
found = zend_hash_find(&MBREX(ht_rc), (char *)pattern, patlen+1, (void **) &rc);
|
||||
- if (found == FAILURE || (*rc)->options != options || (*rc)->enc != enc || (*rc)->syntax != syntax) {
|
||||
+ if (found == FAILURE || 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 TSRMLS_CC, E_WARNING, "mbregex compile err: %s", err_str);
|
65
dev-lang/php/files/libressl-compatibility.patch
Normal file
65
dev-lang/php/files/libressl-compatibility.patch
Normal file
@ -0,0 +1,65 @@
|
||||
--- a/ext/openssl/openssl.c 2018-04-04 14:26:34.583000000 +0000
|
||||
+++ b/ext/openssl/openssl.c 2018-04-04 14:20:16.907000000 +0000
|
||||
@@ -73,7 +73,7 @@
|
||||
#ifdef HAVE_OPENSSL_MD2_H
|
||||
#define OPENSSL_ALGO_MD2 4
|
||||
#endif
|
||||
-#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
|
||||
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined (LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L)
|
||||
#define OPENSSL_ALGO_DSS1 5
|
||||
#endif
|
||||
#define OPENSSL_ALGO_SHA224 6
|
||||
@@ -560,7 +560,7 @@
|
||||
#endif
|
||||
|
||||
/* {{{ OpenSSL compatibility functions and macros */
|
||||
-#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
|
||||
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined (LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L)
|
||||
#define EVP_PKEY_get0_RSA(_pkey) _pkey->pkey.rsa
|
||||
#define EVP_PKEY_get0_DH(_pkey) _pkey->pkey.dh
|
||||
#define EVP_PKEY_get0_DSA(_pkey) _pkey->pkey.dsa
|
||||
@@ -677,7 +677,7 @@
|
||||
return M_ASN1_STRING_data(asn1);
|
||||
}
|
||||
|
||||
-#if OPENSSL_VERSION_NUMBER < 0x10002000L || defined (LIBRESSL_VERSION_NUMBER)
|
||||
+#if OPENSSL_VERSION_NUMBER < 0x10002000L || (defined (LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L)
|
||||
|
||||
static int X509_get_signature_nid(const X509 *x)
|
||||
{
|
||||
@@ -1324,7 +1324,7 @@
|
||||
mdtype = (EVP_MD *) EVP_md2();
|
||||
break;
|
||||
#endif
|
||||
-#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
|
||||
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined (LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L)
|
||||
case OPENSSL_ALGO_DSS1:
|
||||
mdtype = (EVP_MD *) EVP_dss1();
|
||||
break;
|
||||
@@ -1450,7 +1450,7 @@
|
||||
#ifdef HAVE_OPENSSL_MD2_H
|
||||
REGISTER_LONG_CONSTANT("OPENSSL_ALGO_MD2", OPENSSL_ALGO_MD2, CONST_CS|CONST_PERSISTENT);
|
||||
#endif
|
||||
-#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
|
||||
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined (LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L)
|
||||
REGISTER_LONG_CONSTANT("OPENSSL_ALGO_DSS1", OPENSSL_ALGO_DSS1, CONST_CS|CONST_PERSISTENT);
|
||||
#endif
|
||||
REGISTER_LONG_CONSTANT("OPENSSL_ALGO_SHA224", OPENSSL_ALGO_SHA224, CONST_CS|CONST_PERSISTENT);
|
||||
@@ -3620,7 +3620,7 @@
|
||||
RETURN_FALSE;
|
||||
}
|
||||
|
||||
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
|
||||
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !(defined (LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L)
|
||||
/* Due to changes in OpenSSL 1.1 related to locking when decoding CSR,
|
||||
* the pub key is not changed after assigning. It means if we pass
|
||||
* a private key, it will be returned including the private part.
|
||||
@@ -3631,7 +3631,7 @@
|
||||
/* Retrieve the public key from the CSR */
|
||||
tpubkey = X509_REQ_get_pubkey(csr);
|
||||
|
||||
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
|
||||
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !(defined (LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L)
|
||||
/* We need to free the CSR as it was duplicated */
|
||||
X509_REQ_free(csr);
|
||||
#endif
|
17
dev-lang/php/files/php-5.3.0-recode.patch
Normal file
17
dev-lang/php/files/php-5.3.0-recode.patch
Normal file
@ -0,0 +1,17 @@
|
||||
diff -up ext/recode/config9.m4.recode ext/recode/config9.m4
|
||||
--- ext/recode/config9.m4.recode 2008-12-02 00:30:21.000000000 +0100
|
||||
+++ ext/recode/config9.m4 2009-02-28 09:46:50.000000000 +0100
|
||||
@@ -4,13 +4,6 @@ dnl
|
||||
|
||||
dnl Check for extensions with which Recode can not work
|
||||
if test "$PHP_RECODE" != "no"; then
|
||||
- test "$PHP_IMAP" != "no" && recode_conflict="$recode_conflict imap"
|
||||
-
|
||||
- if test -n "$MYSQL_LIBNAME"; then
|
||||
- PHP_CHECK_LIBRARY($MYSQL_LIBNAME, hash_insert, [
|
||||
- recode_conflict="$recode_conflict mysql"
|
||||
- ])
|
||||
- fi
|
||||
|
||||
if test -n "$recode_conflict"; then
|
||||
AC_MSG_ERROR([recode extension can not be configured together with:$recode_conflict])
|
42
dev-lang/php/files/php-5.6-no-bison-warnings.patch
Normal file
42
dev-lang/php/files/php-5.6-no-bison-warnings.patch
Normal file
@ -0,0 +1,42 @@
|
||||
From d3466a04345b31dfc62d94fe994b40321a6418ec Mon Sep 17 00:00:00 2001
|
||||
From: Michael Orlitzky <michael@orlitzky.com>
|
||||
Date: Thu, 29 Sep 2016 15:43:06 -0400
|
||||
Subject: [PATCH 1/1] Zend/acinclude.m4: don't warn about >=bison-3.0.1
|
||||
versions.
|
||||
|
||||
The PHP configure script will emit a warning if it thinks your bison
|
||||
version is insufficient:
|
||||
|
||||
WARNING: This bison version is not supported for regeneration of
|
||||
the Zend/PHP parsers (found: 3.0, min: 204, excluded: 3.0).
|
||||
|
||||
However, there is an error in the test that causes it to treat all
|
||||
3.0.x versions as if they were 3.0. The result is that users get
|
||||
warned about a perfectly acceptable version of bison.
|
||||
|
||||
This patch is meant only for Gentoo, where we can require a working
|
||||
version of bison (something newer than 3.0.1). Having done so, this
|
||||
patch removes the check and the WARNING.
|
||||
|
||||
Gentoo-Bug: 593278
|
||||
PHP-Bug: 69055
|
||||
---
|
||||
Zend/acinclude.m4 | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Zend/acinclude.m4 b/Zend/acinclude.m4
|
||||
index 7fa8c99..9d6cb1d 100644
|
||||
--- a/Zend/acinclude.m4
|
||||
+++ b/Zend/acinclude.m4
|
||||
@@ -9,7 +9,7 @@ AC_DEFUN([LIBZEND_BISON_CHECK],[
|
||||
# non-working versions, e.g. "3.0 3.2";
|
||||
# remove "none" when introducing the first incompatible bison version an
|
||||
# separate any following additions by spaces
|
||||
- bison_version_exclude="3.0"
|
||||
+ bison_version_exclude=""
|
||||
|
||||
# for standalone build of Zend Engine
|
||||
test -z "$SED" && SED=sed
|
||||
--
|
||||
2.7.3
|
||||
|
169
dev-lang/php/files/php-5.6.30-interbase.patch
Normal file
169
dev-lang/php/files/php-5.6.30-interbase.patch
Normal file
@ -0,0 +1,169 @@
|
||||
Adapted for 5.6 from
|
||||
|
||||
From 397bedcc7c3545510a22b7db8dc6444e0a05b085 Mon Sep 17 00:00:00 2001
|
||||
From: Remi Collet <remi@php.net>
|
||||
Date: Wed, 16 Nov 2016 10:45:59 +0100
|
||||
Subject: [PATCH] Fixed bug #73512 Fails to find firebird headers
|
||||
|
||||
- use fb_config output instead of relying on hardoded path
|
||||
|
||||
diff -up ./ext/interbase/config.m4.fb_config ./ext/interbase/config.m4
|
||||
--- ./ext/interbase/config.m4.fb_config 2017-03-17 08:58:57.061708947 +0100
|
||||
+++ ./ext/interbase/config.m4 2017-03-17 09:04:53.389584385 +0100
|
||||
@@ -3,39 +3,54 @@ PHP_ARG_WITH(interbase,for InterBase sup
|
||||
install directory [/usr/interbase]])
|
||||
|
||||
if test "$PHP_INTERBASE" != "no"; then
|
||||
- if test "$PHP_INTERBASE" = "yes"; then
|
||||
- IBASE_INCDIR=/usr/interbase/include
|
||||
- IBASE_LIBDIR=/usr/interbase/lib
|
||||
+
|
||||
+ AC_PATH_PROG(FB_CONFIG, fb_config, no)
|
||||
+
|
||||
+ if test -x "$FB_CONFIG" && test "$PHP_INTERBASE" = "yes"; then
|
||||
+ AC_MSG_CHECKING(for libfbconfig)
|
||||
+ FB_CFLAGS=`$FB_CONFIG --cflags`
|
||||
+ FB_LIBDIR=`$FB_CONFIG --libs`
|
||||
+ FB_VERSION=`$FB_CONFIG --version`
|
||||
+ AC_MSG_RESULT(version $FB_VERSION)
|
||||
+ PHP_EVAL_LIBLINE($FB_LIBDIR, INTERBASE_SHARED_LIBADD)
|
||||
+ PHP_EVAL_INCLINE($FB_CFLAGS)
|
||||
+
|
||||
else
|
||||
- IBASE_INCDIR=$PHP_INTERBASE/include
|
||||
- IBASE_LIBDIR=$PHP_INTERBASE/$PHP_LIBDIR
|
||||
- fi
|
||||
+ if test "$PHP_INTERBASE" = "yes"; then
|
||||
+ IBASE_INCDIR=/usr/interbase/include
|
||||
+ IBASE_LIBDIR=/usr/interbase/lib
|
||||
+ else
|
||||
+ IBASE_INCDIR=$PHP_INTERBASE/include
|
||||
+ IBASE_LIBDIR=$PHP_INTERBASE/$PHP_LIBDIR
|
||||
+ fi
|
||||
|
||||
- PHP_CHECK_LIBRARY(fbclient, isc_detach_database,
|
||||
- [
|
||||
- IBASE_LIBNAME=fbclient
|
||||
- ], [
|
||||
- PHP_CHECK_LIBRARY(gds, isc_detach_database,
|
||||
+ PHP_CHECK_LIBRARY(fbclient, isc_detach_database,
|
||||
[
|
||||
- IBASE_LIBNAME=gds
|
||||
+ IBASE_LIBNAME=fbclient
|
||||
], [
|
||||
- PHP_CHECK_LIBRARY(ib_util, isc_detach_database,
|
||||
+ PHP_CHECK_LIBRARY(gds, isc_detach_database,
|
||||
[
|
||||
- IBASE_LIBNAME=ib_util
|
||||
+ IBASE_LIBNAME=gds
|
||||
], [
|
||||
- AC_MSG_ERROR([libgds, libib_util or libfbclient not found! Check config.log for more information.])
|
||||
+ PHP_CHECK_LIBRARY(ib_util, isc_detach_database,
|
||||
+ [
|
||||
+ IBASE_LIBNAME=ib_util
|
||||
+ ], [
|
||||
+ AC_MSG_ERROR([libgds, libib_util or libfbclient not found! Check config.log for more information.])
|
||||
+ ], [
|
||||
+ -L$IBASE_LIBDIR
|
||||
+ ])
|
||||
], [
|
||||
-L$IBASE_LIBDIR
|
||||
])
|
||||
], [
|
||||
-L$IBASE_LIBDIR
|
||||
])
|
||||
- ], [
|
||||
- -L$IBASE_LIBDIR
|
||||
- ])
|
||||
|
||||
- PHP_ADD_LIBRARY_WITH_PATH($IBASE_LIBNAME, $IBASE_LIBDIR, INTERBASE_SHARED_LIBADD)
|
||||
- PHP_ADD_INCLUDE($IBASE_INCDIR)
|
||||
+ PHP_ADD_LIBRARY_WITH_PATH($IBASE_LIBNAME, $IBASE_LIBDIR, INTERBASE_SHARED_LIBADD)
|
||||
+ PHP_ADD_INCLUDE($IBASE_INCDIR)
|
||||
+ fi
|
||||
+
|
||||
AC_DEFINE(HAVE_IBASE,1,[ ])
|
||||
PHP_NEW_EXTENSION(interbase, interbase.c ibase_query.c ibase_service.c ibase_events.c ibase_blobs.c, $ext_shared)
|
||||
PHP_SUBST(INTERBASE_SHARED_LIBADD)
|
||||
diff -up ./ext/pdo_firebird/config.m4.fb_config ./ext/pdo_firebird/config.m4
|
||||
--- ./ext/pdo_firebird/config.m4.fb_config 2017-01-19 01:17:47.000000000 +0100
|
||||
+++ ./ext/pdo_firebird/config.m4 2017-03-17 08:58:57.061708947 +0100
|
||||
@@ -8,43 +8,56 @@ if test "$PHP_PDO_FIREBIRD" != "no"; the
|
||||
AC_MSG_ERROR([PDO is not enabled! Add --enable-pdo to your configure line.])
|
||||
fi
|
||||
|
||||
- if test "$PHP_PDO_FIREBIRD" = "yes"; then
|
||||
- FIREBIRD_INCDIR=
|
||||
- FIREBIRD_LIBDIR=
|
||||
- FIREBIRD_LIBDIR_FLAG=
|
||||
+ AC_PATH_PROG(FB_CONFIG, fb_config, no)
|
||||
+
|
||||
+ if test -x "$FB_CONFIG" && test "$PHP_PDO_FIREBIRD" = "yes"; then
|
||||
+ AC_MSG_CHECKING(for libfbconfig)
|
||||
+ FB_CFLAGS=`$FB_CONFIG --cflags`
|
||||
+ FB_LIBDIR=`$FB_CONFIG --libs`
|
||||
+ FB_VERSION=`$FB_CONFIG --version`
|
||||
+ AC_MSG_RESULT(version $FB_VERSION)
|
||||
+ PHP_EVAL_LIBLINE($FB_LIBDIR, PDO_FIREBIRD_SHARED_LIBADD)
|
||||
+ PHP_EVAL_INCLINE($FB_CFLAGS)
|
||||
+
|
||||
else
|
||||
- FIREBIRD_INCDIR=$PHP_PDO_FIREBIRD/include
|
||||
- FIREBIRD_LIBDIR=$PHP_PDO_FIREBIRD/$PHP_LIBDIR
|
||||
- FIREBIRD_LIBDIR_FLAG=-L$FIREBIRD_LIBDIR
|
||||
- fi
|
||||
+ if test "$PHP_PDO_FIREBIRD" = "yes"; then
|
||||
+ FIREBIRD_INCDIR=
|
||||
+ FIREBIRD_LIBDIR=
|
||||
+ FIREBIRD_LIBDIR_FLAG=
|
||||
+ else
|
||||
+ FIREBIRD_INCDIR=$PHP_PDO_FIREBIRD/include
|
||||
+ FIREBIRD_LIBDIR=$PHP_PDO_FIREBIRD/$PHP_LIBDIR
|
||||
+ FIREBIRD_LIBDIR_FLAG=-L$FIREBIRD_LIBDIR
|
||||
+ fi
|
||||
|
||||
- PHP_CHECK_LIBRARY(fbclient, isc_detach_database,
|
||||
- [
|
||||
- FIREBIRD_LIBNAME=fbclient
|
||||
- ], [
|
||||
- PHP_CHECK_LIBRARY(gds, isc_detach_database,
|
||||
+ PHP_CHECK_LIBRARY(fbclient, isc_detach_database,
|
||||
[
|
||||
- FIREBIRD_LIBNAME=gds
|
||||
+ FIREBIRD_LIBNAME=fbclient
|
||||
], [
|
||||
- PHP_CHECK_LIBRARY(ib_util, isc_detach_database,
|
||||
+ PHP_CHECK_LIBRARY(gds, isc_detach_database,
|
||||
[
|
||||
- FIREBIRD_LIBNAME=ib_util
|
||||
+ FIREBIRD_LIBNAME=gds
|
||||
], [
|
||||
- AC_MSG_ERROR([libfbclient, libgds or libib_util not found! Check config.log for more information.])
|
||||
+ PHP_CHECK_LIBRARY(ib_util, isc_detach_database,
|
||||
+ [
|
||||
+ FIREBIRD_LIBNAME=ib_util
|
||||
+ ], [
|
||||
+ AC_MSG_ERROR([libfbclient, libgds or libib_util not found! Check config.log for more information.])
|
||||
+ ], [
|
||||
+ $FIREBIRD_LIBDIR_FLAG
|
||||
+ ])
|
||||
], [
|
||||
$FIREBIRD_LIBDIR_FLAG
|
||||
])
|
||||
], [
|
||||
$FIREBIRD_LIBDIR_FLAG
|
||||
])
|
||||
- ], [
|
||||
- $FIREBIRD_LIBDIR_FLAG
|
||||
- ])
|
||||
+ PHP_ADD_LIBRARY_WITH_PATH($FIREBIRD_LIBNAME, $FIREBIRD_LIBDIR, PDO_FIREBIRD_SHARED_LIBADD)
|
||||
+ PHP_ADD_INCLUDE($FIREBIRD_INCDIR)
|
||||
+ fi
|
||||
|
||||
PHP_CHECK_PDO_INCLUDES
|
||||
|
||||
- PHP_ADD_LIBRARY_WITH_PATH($FIREBIRD_LIBNAME, $FIREBIRD_LIBDIR, PDO_FIREBIRD_SHARED_LIBADD)
|
||||
- PHP_ADD_INCLUDE($FIREBIRD_INCDIR)
|
||||
AC_DEFINE(HAVE_PDO_FIREBIRD,1,[ ])
|
||||
PHP_NEW_EXTENSION(pdo_firebird, pdo_firebird.c firebird_driver.c firebird_statement.c, $ext_shared,,-I$pdo_cv_inc_path)
|
||||
PHP_SUBST(PDO_FIREBIRD_SHARED_LIBADD)
|
1198
dev-lang/php/files/php-5.6.31-openssl11.patch
Normal file
1198
dev-lang/php/files/php-5.6.31-openssl11.patch
Normal file
File diff suppressed because it is too large
Load Diff
589
dev-lang/php/files/php-5.6.37-icu62.patch
Normal file
589
dev-lang/php/files/php-5.6.37-icu62.patch
Normal file
@ -0,0 +1,589 @@
|
||||
Backported from 7.1 for 5.6 by Remi
|
||||
|
||||
|
||||
From 710284cbc4a54cac0a9ec4ea29a7486e0d99a33b Mon Sep 17 00:00:00 2001
|
||||
From: Anatol Belski <ab@php.net>
|
||||
Date: Wed, 28 Mar 2018 18:00:28 +0200
|
||||
Subject: [PATCH] Fixed bug #76153 Intl compilation fails with icu4c 61.1
|
||||
|
||||
Additionally, ICU >= 59.1 requires C++11, so add the flags. Some
|
||||
refactoring is needed to comply with the latest recommended build
|
||||
options, such as automatic icu namespace addition.
|
||||
---
|
||||
acinclude.m4 | 3 +++
|
||||
ext/intl/config.m4 | 2 +-
|
||||
ext/intl/config.w32 | 2 +-
|
||||
3 files changed, 5 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/acinclude.m4 b/acinclude.m4
|
||||
index 0e6fb5de855c..3881b2da93d6 100644
|
||||
--- a/acinclude.m4
|
||||
+++ b/acinclude.m4
|
||||
@@ -2244,6 +2244,9 @@ AC_DEFUN([PHP_SETUP_ICU],[
|
||||
ICU_LIBS=`$ICU_CONFIG --ldflags --ldflags-icuio`
|
||||
PHP_EVAL_INCLINE($ICU_INCS)
|
||||
PHP_EVAL_LIBLINE($ICU_LIBS, $1)
|
||||
+
|
||||
+ ICU_EXTRA_FLAGS=`$ICU_CONFIG --cxxflags`
|
||||
+ ICU_EXTRA_FLAGS="$ICU_EXTRA_FLAGS -DU_USING_ICU_NAMESPACE=1"
|
||||
fi
|
||||
])
|
||||
|
||||
diff --git a/ext/intl/config.m4 b/ext/intl/config.m4
|
||||
index ca2cd822f483..a496d8d70c3f 100644
|
||||
--- a/ext/intl/config.m4
|
||||
+++ b/ext/intl/config.m4
|
||||
@@ -85,7 +85,7 @@ if test "$PHP_INTL" != "no"; then
|
||||
breakiterator/codepointiterator_internal.cpp \
|
||||
breakiterator/codepointiterator_methods.cpp \
|
||||
idn/idn.c \
|
||||
- $icu_spoof_src, $ext_shared,,$ICU_INCS -Wno-write-strings)
|
||||
+ $icu_spoof_src, $ext_shared,,$ICU_INCS -Wno-write-strings $ICU_EXTRA_FLAGS,cxx)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/collator)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/converter)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/common)
|
||||
From 398f56dbc85464c95671cbe491c951eccc1f665a Mon Sep 17 00:00:00 2001
|
||||
From: Anatol Belski <ab@php.net>
|
||||
Date: Thu, 29 Mar 2018 14:12:19 +0200
|
||||
Subject: [PATCH] Adjust tests for ICU 61.1 compatibility
|
||||
|
||||
---
|
||||
ext/intl/tests/formatter_format6.phpt | 3 +-
|
||||
ext/intl/tests/formatter_format7.phpt | 130 ++++++++++++++++++
|
||||
.../tests/rbbiter_getBinaryRules_basic.phpt | 3 +-
|
||||
.../tests/rbbiter_getBinaryRules_basic2.phpt | 57 ++++++++
|
||||
.../tests/rbbiter_getRuleStatusVec_basic.phpt | 4 +-
|
||||
ext/intl/tests/rbbiter_getRules_basic.phpt | 7 +-
|
||||
ext/intl/tests/rbbiter_getRules_basic2.phpt | 40 ++++++
|
||||
7 files changed, 236 insertions(+), 8 deletions(-)
|
||||
create mode 100644 ext/intl/tests/formatter_format7.phpt
|
||||
create mode 100644 ext/intl/tests/rbbiter_getBinaryRules_basic2.phpt
|
||||
create mode 100644 ext/intl/tests/rbbiter_getRules_basic2.phpt
|
||||
|
||||
diff --git a/ext/intl/tests/formatter_format6.phpt b/ext/intl/tests/formatter_format6.phpt
|
||||
index 80894c332ba4..70703785c140 100644
|
||||
--- a/ext/intl/tests/formatter_format6.phpt
|
||||
+++ b/ext/intl/tests/formatter_format6.phpt
|
||||
@@ -1,7 +1,8 @@
|
||||
--TEST--
|
||||
-numfmt_format() icu >= 56.1
|
||||
+numfmt_format() icu >= 56.1 && icu < 61.1
|
||||
--SKIPIF--
|
||||
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
|
||||
+<?php if (version_compare(INTL_ICU_VERSION, '61.1') >= 0) die('skip for ICU < 61.1'); ?>
|
||||
<?php if (version_compare(INTL_ICU_VERSION, '56.1') < 0) die('skip for ICU >= 56.1'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
diff --git a/ext/intl/tests/formatter_format7.phpt b/ext/intl/tests/formatter_format7.phpt
|
||||
new file mode 100644
|
||||
index 000000000000..088c526c7022
|
||||
--- /dev/null
|
||||
+++ b/ext/intl/tests/formatter_format7.phpt
|
||||
@@ -0,0 +1,130 @@
|
||||
+--TEST--
|
||||
+numfmt_format() icu >= 61.1
|
||||
+--SKIPIF--
|
||||
+<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
|
||||
+<?php if (version_compare(INTL_ICU_VERSION, '61.1') < 0) die('skip for ICU >= 61.1'); ?>
|
||||
+--FILE--
|
||||
+<?php
|
||||
+
|
||||
+/*
|
||||
+ * Format a number using misc locales/patterns.
|
||||
+ */
|
||||
+
|
||||
+/*
|
||||
+ * TODO: doesn't pass on ICU 3.6 because 'ru' and 'de' locales changed
|
||||
+ * currency and percent formatting.
|
||||
+ */
|
||||
+
|
||||
+function ut_main()
|
||||
+{
|
||||
+ $styles = array(
|
||||
+ NumberFormatter::PATTERN_DECIMAL => '##.#####################',
|
||||
+ NumberFormatter::DECIMAL => '',
|
||||
+ NumberFormatter::CURRENCY => '',
|
||||
+ NumberFormatter::PERCENT => '',
|
||||
+ NumberFormatter::SCIENTIFIC => '',
|
||||
+ NumberFormatter::SPELLOUT => '@@@@@@@',
|
||||
+ NumberFormatter::ORDINAL => '',
|
||||
+ NumberFormatter::DURATION => '',
|
||||
+ NumberFormatter::PATTERN_RULEBASED => '#####.###',
|
||||
+ 1234999, // bad one
|
||||
+ );
|
||||
+
|
||||
+ $integer = array(
|
||||
+ NumberFormatter::ORDINAL => '',
|
||||
+ NumberFormatter::DURATION => '',
|
||||
+ );
|
||||
+ $locales = array(
|
||||
+ 'en_US',
|
||||
+ 'ru_UA',
|
||||
+ 'de',
|
||||
+ 'fr',
|
||||
+ 'en_UK'
|
||||
+ );
|
||||
+
|
||||
+ $str_res = '';
|
||||
+ $number = 1234567.891234567890000;
|
||||
+
|
||||
+ foreach( $locales as $locale )
|
||||
+ {
|
||||
+ $str_res .= "\nLocale is: $locale\n";
|
||||
+ foreach( $styles as $style => $pattern )
|
||||
+ {
|
||||
+ $fmt = ut_nfmt_create( $locale, $style, $pattern );
|
||||
+
|
||||
+ if(!$fmt) {
|
||||
+ $str_res .= "Bad formatter!\n";
|
||||
+ continue;
|
||||
+ }
|
||||
+ $str_res .= dump( isset($integer[$style])?ut_nfmt_format( $fmt, $number, NumberFormatter::TYPE_INT32):ut_nfmt_format( $fmt, $number ) ) . "\n";
|
||||
+ }
|
||||
+ }
|
||||
+ return $str_res;
|
||||
+}
|
||||
+
|
||||
+include_once( 'ut_common.inc' );
|
||||
+
|
||||
+// Run the test
|
||||
+ut_run();
|
||||
+
|
||||
+?>
|
||||
+--EXPECTREGEX--
|
||||
+Locale is: en_US
|
||||
+'1234567.8912345\d+'
|
||||
+'1,234,567.891'
|
||||
+'\$1,234,567.89'
|
||||
+'123,456,789%'
|
||||
+'1.2345678912345\d+E6'
|
||||
+'one million,? two hundred (and )?thirty-four thousand,? five hundred (and )?sixty-seven point eight nine one two three four five( six)? seven( nine)?'
|
||||
+'1,234,567(th|ᵗʰ)'
|
||||
+'342:56:07'
|
||||
+'#####.###'
|
||||
+'USD1,234,567.89'
|
||||
+
|
||||
+Locale is: ru_UA
|
||||
+'1234567.8912345\d+'
|
||||
+'1 234 567,891'
|
||||
+'1 234 567,89 ?(грн\.|₴)'
|
||||
+'123 456 789 ?%'
|
||||
+'1.2345678912345\d+E6'
|
||||
+'один миллион двести тридцать четыре тысячи пятьсот шестьдесят семь целых восемьдесят девять миллионов сто двадцать три тысячи четыреста пятьдесят семь стомиллионных'
|
||||
+'1 234 567.?'
|
||||
+'1 234 567'
|
||||
+'#####.###'
|
||||
+'1 234 567,89 UAH'
|
||||
+
|
||||
+Locale is: de
|
||||
+'1234567.8912345\d+'
|
||||
+'1.234.567,891'
|
||||
+'(¤ )?1.234.567,89( ¤)?'
|
||||
+'123\.456\.789 %'
|
||||
+'1.2345678912345\d+E6'
|
||||
+'eine Million zweihundertvierunddreißigtausendfünfhundertsiebenundsechzig Komma acht neun eins zwei drei vier fünf( sechs)? sieben( neun)?'
|
||||
+'1.234.567.?'
|
||||
+'1.234.567'
|
||||
+'#####.###'
|
||||
+'1.234.567,89 ¤¤'
|
||||
+
|
||||
+Locale is: fr
|
||||
+'1234567.8912345\d+'
|
||||
+'1 234 567,891'
|
||||
+'1 234 567,89 ¤'
|
||||
+'123 456 789 ?%'
|
||||
+'1.2345678912345\d+E6'
|
||||
+'un million deux cent trente-quatre mille cinq cent soixante-sept virgule huit neuf un deux trois quatre cinq( six)? sept( neuf)?'
|
||||
+'1 234 567e'
|
||||
+'1 234 567'
|
||||
+'#####.###'
|
||||
+'1 234 567,89 ¤¤'
|
||||
+
|
||||
+Locale is: en_UK
|
||||
+'1234567.8912345\d+'
|
||||
+'1,234,567.891'
|
||||
+'¤1,234,567.89'
|
||||
+'123,456,789%'
|
||||
+'1.2345678912345\d+E6'
|
||||
+'one million,? two hundred (and )?thirty-four thousand,? five hundred (and )?sixty-seven point eight nine one two three four five( six)? seven( nine)?'
|
||||
+'1,234,567(th|ᵗʰ)'
|
||||
+'342:56:07'
|
||||
+'#####.###'
|
||||
+'¤¤1,234,567.89'
|
||||
diff --git a/ext/intl/tests/rbbiter_getBinaryRules_basic.phpt b/ext/intl/tests/rbbiter_getBinaryRules_basic.phpt
|
||||
index dce0714d4dd4..95ea31108804 100644
|
||||
--- a/ext/intl/tests/rbbiter_getBinaryRules_basic.phpt
|
||||
+++ b/ext/intl/tests/rbbiter_getBinaryRules_basic.phpt
|
||||
@@ -2,6 +2,7 @@
|
||||
IntlRuleBasedBreakIterator::getBinaryRules(): basic test
|
||||
--SKIPIF--
|
||||
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
|
||||
+<?php if (version_compare(INTL_ICU_VERSION, '61.1') >= 0) die('skip for ICU < 61.1'); ?>
|
||||
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip ICU >= 4.8 only'; ?>
|
||||
--FILE--
|
||||
<?php
|
||||
@@ -22,7 +23,7 @@ $rules = <<<RULES
|
||||
!!safe_reverse;
|
||||
RULES;
|
||||
$rbbi = new IntlRuleBasedBreakIterator($rules);
|
||||
-$rbbi->setText('sdfkjsdf88á.... ,;');;
|
||||
+$rbbi->setText('sdfkjsdf88á.... ,;');
|
||||
|
||||
$br = $rbbi->getBinaryRules();
|
||||
|
||||
diff --git a/ext/intl/tests/rbbiter_getBinaryRules_basic2.phpt b/ext/intl/tests/rbbiter_getBinaryRules_basic2.phpt
|
||||
new file mode 100644
|
||||
index 000000000000..f3b6c6cb34c0
|
||||
--- /dev/null
|
||||
+++ b/ext/intl/tests/rbbiter_getBinaryRules_basic2.phpt
|
||||
@@ -0,0 +1,57 @@
|
||||
+--TEST--
|
||||
+IntlRuleBasedBreakIterator::getBinaryRules(): basic test
|
||||
+--SKIPIF--
|
||||
+<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
|
||||
+<?php if(version_compare(INTL_ICU_VERSION, '61.1') < 0) print 'skip ICU >= 61.1 only'; ?>
|
||||
+--FILE--
|
||||
+<?php
|
||||
+ini_set("intl.error_level", E_WARNING);
|
||||
+ini_set("intl.default_locale", "pt_PT");
|
||||
+
|
||||
+$rules = <<<RULES
|
||||
+\$LN = [[:letter:] [:number:]];
|
||||
+\$S = [.;,:];
|
||||
+
|
||||
+!!forward;
|
||||
+\$LN+ {1};
|
||||
+\$S+ {42};
|
||||
+!!reverse;
|
||||
+\$LN+ {1};
|
||||
+\$S+ {42};
|
||||
+!!safe_forward;
|
||||
+!!safe_reverse;
|
||||
+RULES;
|
||||
+$rbbi = new IntlRuleBasedBreakIterator($rules);
|
||||
+$rbbi->setText('sdfkjsdf88á.... ,;');
|
||||
+
|
||||
+$br = $rbbi->getBinaryRules();
|
||||
+
|
||||
+$rbbi2 = new IntlRuleBasedBreakIterator($br, true);
|
||||
+
|
||||
+var_dump($rbbi->getRules(), $rbbi2->getRules());
|
||||
+var_dump($rbbi->getRules() == $rbbi2->getRules());
|
||||
+?>
|
||||
+==DONE==
|
||||
+--EXPECT--
|
||||
+string(137) "$LN = [[:letter:] [:number:]];
|
||||
+$S = [.;,:];
|
||||
+!!forward;
|
||||
+$LN+ {1};
|
||||
+$S+ {42};
|
||||
+!!reverse;
|
||||
+$LN+ {1};
|
||||
+$S+ {42};
|
||||
+!!safe_forward;
|
||||
+!!safe_reverse;"
|
||||
+string(137) "$LN = [[:letter:] [:number:]];
|
||||
+$S = [.;,:];
|
||||
+!!forward;
|
||||
+$LN+ {1};
|
||||
+$S+ {42};
|
||||
+!!reverse;
|
||||
+$LN+ {1};
|
||||
+$S+ {42};
|
||||
+!!safe_forward;
|
||||
+!!safe_reverse;"
|
||||
+bool(true)
|
||||
+==DONE==
|
||||
diff --git a/ext/intl/tests/rbbiter_getRuleStatusVec_basic.phpt b/ext/intl/tests/rbbiter_getRuleStatusVec_basic.phpt
|
||||
index a56f6bc48867..4a654508cc13 100644
|
||||
--- a/ext/intl/tests/rbbiter_getRuleStatusVec_basic.phpt
|
||||
+++ b/ext/intl/tests/rbbiter_getRuleStatusVec_basic.phpt
|
||||
@@ -25,7 +25,7 @@ $rules = <<<RULES
|
||||
!!safe_reverse;
|
||||
RULES;
|
||||
$rbbi = new IntlRuleBasedBreakIterator($rules);
|
||||
-$rbbi->setText('sdfkjsdf88á.... ,;');;
|
||||
+$rbbi->setText('sdfkjsdf88á.... ,;');
|
||||
|
||||
do {
|
||||
var_dump($rbbi->current(), $rbbi->getRuleStatusVec());
|
||||
@@ -56,4 +56,4 @@ array(1) {
|
||||
[0]=>
|
||||
int(4)
|
||||
}
|
||||
-==DONE==
|
||||
\ No newline at end of file
|
||||
+==DONE==
|
||||
diff --git a/ext/intl/tests/rbbiter_getRules_basic.phpt b/ext/intl/tests/rbbiter_getRules_basic.phpt
|
||||
index 2f7a40eb716b..3ad1a9231151 100644
|
||||
--- a/ext/intl/tests/rbbiter_getRules_basic.phpt
|
||||
+++ b/ext/intl/tests/rbbiter_getRules_basic.phpt
|
||||
@@ -1,9 +1,8 @@
|
||||
--TEST--
|
||||
IntlRuleBasedBreakIterator::getRules(): basic test
|
||||
--SKIPIF--
|
||||
-<?php
|
||||
-if (!extension_loaded('intl'))
|
||||
- die('skip intl extension not enabled');
|
||||
+<?php if (!extension_loaded('intl')) die('skip intl extension not enabled'); ?>
|
||||
+<?php if (version_compare(INTL_ICU_VERSION, '61.1') >= 0) die('skip for ICU < 61.1'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
ini_set("intl.error_level", E_WARNING);
|
||||
@@ -29,4 +28,4 @@ var_dump($rbbi->getRules());
|
||||
==DONE==
|
||||
--EXPECT--
|
||||
string(128) "$LN = [[:letter:] [:number:]];$S = [.;,:];!!forward;$LN+ {1};$S+ {42};!!reverse;$LN+ {1};$S+ {42};!!safe_forward;!!safe_reverse;"
|
||||
-==DONE==
|
||||
\ No newline at end of file
|
||||
+==DONE==
|
||||
diff --git a/ext/intl/tests/rbbiter_getRules_basic2.phpt b/ext/intl/tests/rbbiter_getRules_basic2.phpt
|
||||
new file mode 100644
|
||||
index 000000000000..67b3831aa2f3
|
||||
--- /dev/null
|
||||
+++ b/ext/intl/tests/rbbiter_getRules_basic2.phpt
|
||||
@@ -0,0 +1,40 @@
|
||||
+--TEST--
|
||||
+IntlRuleBasedBreakIterator::getRules(): basic test
|
||||
+--SKIPIF--
|
||||
+<?php if (!extension_loaded('intl')) die('skip intl extension not enabled'); ?>
|
||||
+<?php if (version_compare(INTL_ICU_VERSION, '61.1') < 0) die('skip for ICU >= 61.1'); ?>
|
||||
+--FILE--
|
||||
+<?php
|
||||
+ini_set("intl.error_level", E_WARNING);
|
||||
+ini_set("intl.default_locale", "pt_PT");
|
||||
+
|
||||
+$rules = <<<RULES
|
||||
+\$LN = [[:letter:] [:number:]];
|
||||
+\$S = [.;,:];
|
||||
+
|
||||
+!!forward;
|
||||
+\$LN+ {1};
|
||||
+\$S+ {42};
|
||||
+!!reverse;
|
||||
+\$LN+ {1};
|
||||
+\$S+ {42};
|
||||
+!!safe_forward;
|
||||
+!!safe_reverse;
|
||||
+RULES;
|
||||
+$rbbi = new IntlRuleBasedBreakIterator($rules);
|
||||
+var_dump($rbbi->getRules());
|
||||
+
|
||||
+?>
|
||||
+==DONE==
|
||||
+--EXPECT--
|
||||
+string(137) "$LN = [[:letter:] [:number:]];
|
||||
+$S = [.;,:];
|
||||
+!!forward;
|
||||
+$LN+ {1};
|
||||
+$S+ {42};
|
||||
+!!reverse;
|
||||
+$LN+ {1};
|
||||
+$S+ {42};
|
||||
+!!safe_forward;
|
||||
+!!safe_reverse;"
|
||||
+==DONE==
|
||||
From 8b104d789317d96f6d3e23e635f0ca288c0a23ee Mon Sep 17 00:00:00 2001
|
||||
From: Anatol Belski <ab@php.net>
|
||||
Date: Fri, 30 Mar 2018 14:14:35 +0200
|
||||
Subject: [PATCH] Fix clang build, ref buf #76153
|
||||
|
||||
Clang only allows -std=c++11 for C++ source.
|
||||
---
|
||||
ext/intl/config.m4 | 27 +++++++++++++++------------
|
||||
1 file changed, 15 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/ext/intl/config.m4 b/ext/intl/config.m4
|
||||
index a496d8d70c3f..aea57102f6b8 100644
|
||||
--- a/ext/intl/config.m4
|
||||
+++ b/ext/intl/config.m4
|
||||
@@ -20,7 +20,6 @@ if test "$PHP_INTL" != "no"; then
|
||||
PHP_NEW_EXTENSION(intl, php_intl.c \
|
||||
intl_error.c \
|
||||
intl_convert.c \
|
||||
- intl_convertcpp.cpp \
|
||||
collator/collator.c \
|
||||
collator/collator_class.c \
|
||||
collator/collator_sort.c \
|
||||
@@ -32,8 +31,6 @@ if test "$PHP_INTL" != "no"; then
|
||||
collator/collator_is_numeric.c \
|
||||
collator/collator_error.c \
|
||||
common/common_error.c \
|
||||
- common/common_enum.cpp \
|
||||
- common/common_date.cpp \
|
||||
converter/converter.c \
|
||||
formatter/formatter.c \
|
||||
formatter/formatter_main.c \
|
||||
@@ -53,17 +50,12 @@ if test "$PHP_INTL" != "no"; then
|
||||
dateformat/dateformat_attr.c \
|
||||
dateformat/dateformat_data.c \
|
||||
dateformat/dateformat_format.c \
|
||||
- dateformat/dateformat_format_object.cpp \
|
||||
dateformat/dateformat_parse.c \
|
||||
- dateformat/dateformat_create.cpp \
|
||||
- dateformat/dateformat_attrcpp.cpp \
|
||||
- dateformat/dateformat_helpers.cpp \
|
||||
msgformat/msgformat.c \
|
||||
msgformat/msgformat_attr.c \
|
||||
msgformat/msgformat_class.c \
|
||||
msgformat/msgformat_data.c \
|
||||
msgformat/msgformat_format.c \
|
||||
- msgformat/msgformat_helpers.cpp \
|
||||
msgformat/msgformat_parse.c \
|
||||
grapheme/grapheme_string.c \
|
||||
grapheme/grapheme_util.c \
|
||||
@@ -73,6 +65,17 @@ if test "$PHP_INTL" != "no"; then
|
||||
transliterator/transliterator.c \
|
||||
transliterator/transliterator_class.c \
|
||||
transliterator/transliterator_methods.c \
|
||||
+ idn/idn.c \
|
||||
+ $icu_spoof_src, $ext_shared,,$ICU_INCS -Wno-write-strings,cxx)
|
||||
+
|
||||
+ PHP_ADD_SOURCES(PHP_EXT_DIR(intl), intl_convertcpp.cpp \
|
||||
+ common/common_enum.cpp \
|
||||
+ common/common_date.cpp \
|
||||
+ dateformat/dateformat_format_object.cpp \
|
||||
+ dateformat/dateformat_create.cpp \
|
||||
+ dateformat/dateformat_attrcpp.cpp \
|
||||
+ dateformat/dateformat_helpers.cpp \
|
||||
+ msgformat/msgformat_helpers.cpp \
|
||||
timezone/timezone_class.cpp \
|
||||
timezone/timezone_methods.cpp \
|
||||
calendar/calendar_class.cpp \
|
||||
@@ -83,9 +87,9 @@ if test "$PHP_INTL" != "no"; then
|
||||
breakiterator/breakiterator_methods.cpp \
|
||||
breakiterator/rulebasedbreakiterator_methods.cpp \
|
||||
breakiterator/codepointiterator_internal.cpp \
|
||||
- breakiterator/codepointiterator_methods.cpp \
|
||||
- idn/idn.c \
|
||||
- $icu_spoof_src, $ext_shared,,$ICU_INCS -Wno-write-strings $ICU_EXTRA_FLAGS,cxx)
|
||||
+ breakiterator/codepointiterator_methods.cpp, \
|
||||
+ $ICU_INCS -Wno-write-strings -D__STDC_LIMIT_MACROS $ICU_EXTRA_FLAGS)
|
||||
+
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/collator)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/converter)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/common)
|
||||
From 2bd299f7318492fd7e5cafffa562d76ba60e69d4 Mon Sep 17 00:00:00 2001
|
||||
From: Anatol Belski <ab@php.net>
|
||||
Date: Tue, 3 Apr 2018 10:42:14 +0200
|
||||
Subject: [PATCH] Fix shared ext/intl compilation
|
||||
|
||||
---
|
||||
ext/intl/config.m4 | 11 ++++++++---
|
||||
1 file changed, 8 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/ext/intl/config.m4 b/ext/intl/config.m4
|
||||
index aea57102f6b8..959ecd2b26a9 100644
|
||||
--- a/ext/intl/config.m4
|
||||
+++ b/ext/intl/config.m4
|
||||
@@ -68,7 +68,7 @@ if test "$PHP_INTL" != "no"; then
|
||||
idn/idn.c \
|
||||
$icu_spoof_src, $ext_shared,,$ICU_INCS -Wno-write-strings,cxx)
|
||||
|
||||
- PHP_ADD_SOURCES(PHP_EXT_DIR(intl), intl_convertcpp.cpp \
|
||||
+ PHP_INTL_CPP_SOURCES="intl_convertcpp.cpp \
|
||||
common/common_enum.cpp \
|
||||
common/common_date.cpp \
|
||||
dateformat/dateformat_format_object.cpp \
|
||||
@@ -86,8 +86,13 @@ if test "$PHP_INTL" != "no"; then
|
||||
breakiterator/breakiterator_methods.cpp \
|
||||
breakiterator/rulebasedbreakiterator_methods.cpp \
|
||||
breakiterator/codepointiterator_internal.cpp \
|
||||
- breakiterator/codepointiterator_methods.cpp, \
|
||||
- $ICU_INCS -Wno-write-strings -D__STDC_LIMIT_MACROS $ICU_EXTRA_FLAGS)
|
||||
+ breakiterator/codepointiterator_methods.cpp"
|
||||
+ PHP_INTL_CPP_FLAGS="$ICU_INCS -Wno-write-strings -D__STDC_LIMIT_MACROS $ICU_EXTRA_FLAGS"
|
||||
+ if test "$ext_shared" = "no"; then
|
||||
+ PHP_ADD_SOURCES(PHP_EXT_DIR(intl), $PHP_INTL_CPP_SOURCES, $PHP_INTL_CPP_FLAGS)
|
||||
+ else
|
||||
+ PHP_ADD_SOURCES_X(PHP_EXT_DIR(intl), $PHP_INTL_CPP_SOURCES, $PHP_INTL_CPP_FLAGS, shared_objects_intl, yes)
|
||||
+ fi
|
||||
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/collator)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/converter)
|
||||
From ed5aabe8b78d8487ffc6091e0670753d59bb7f5a Mon Sep 17 00:00:00 2001
|
||||
From: Anatol Belski <ab@php.net>
|
||||
Date: Thu, 5 Apr 2018 14:52:40 +0200
|
||||
Subject: [PATCH] Rename var
|
||||
|
||||
---
|
||||
acinclude.m4 | 4 ++--
|
||||
ext/intl/config.m4 | 2 +-
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/acinclude.m4 b/acinclude.m4
|
||||
index 3881b2da93d6..c63edd309e9f 100644
|
||||
--- a/acinclude.m4
|
||||
+++ b/acinclude.m4
|
||||
@@ -2245,8 +2245,8 @@ AC_DEFUN([PHP_SETUP_ICU],[
|
||||
PHP_EVAL_INCLINE($ICU_INCS)
|
||||
PHP_EVAL_LIBLINE($ICU_LIBS, $1)
|
||||
|
||||
- ICU_EXTRA_FLAGS=`$ICU_CONFIG --cxxflags`
|
||||
- ICU_EXTRA_FLAGS="$ICU_EXTRA_FLAGS -DU_USING_ICU_NAMESPACE=1"
|
||||
+ ICU_CXXFLAGS=`$ICU_CONFIG --cxxflags`
|
||||
+ ICU_CXXFLAGS="$ICU_CXXFLAGS -DU_USING_ICU_NAMESPACE=1"
|
||||
fi
|
||||
])
|
||||
|
||||
diff --git a/ext/intl/config.m4 b/ext/intl/config.m4
|
||||
index 959ecd2b26a9..e8428e1cbbe8 100644
|
||||
--- a/ext/intl/config.m4
|
||||
+++ b/ext/intl/config.m4
|
||||
@@ -87,7 +87,7 @@ if test "$PHP_INTL" != "no"; then
|
||||
breakiterator/rulebasedbreakiterator_methods.cpp \
|
||||
breakiterator/codepointiterator_internal.cpp \
|
||||
breakiterator/codepointiterator_methods.cpp"
|
||||
- PHP_INTL_CPP_FLAGS="$ICU_INCS -Wno-write-strings -D__STDC_LIMIT_MACROS $ICU_EXTRA_FLAGS"
|
||||
+ PHP_INTL_CPP_FLAGS="$ICU_INCS -Wno-write-strings -D__STDC_LIMIT_MACROS $ICU_CXXFLAGS"
|
||||
if test "$ext_shared" = "no"; then
|
||||
PHP_ADD_SOURCES(PHP_EXT_DIR(intl), $PHP_INTL_CPP_SOURCES, $PHP_INTL_CPP_FLAGS)
|
||||
else
|
||||
From 09d7ffabcd99fe9b99c4206f321fecc506635072 Mon Sep 17 00:00:00 2001
|
||||
From: Anatol Belski <ab@php.net>
|
||||
Date: Thu, 5 Apr 2018 16:44:12 +0200
|
||||
Subject: [PATCH] Group common flags
|
||||
|
||||
---
|
||||
ext/intl/config.m4 | 11 ++++++-----
|
||||
1 file changed, 6 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/ext/intl/config.m4 b/ext/intl/config.m4
|
||||
index e8428e1cbbe8..52408f8e9183 100644
|
||||
--- a/ext/intl/config.m4
|
||||
+++ b/ext/intl/config.m4
|
||||
@@ -9,6 +9,7 @@ if test "$PHP_INTL" != "no"; then
|
||||
PHP_SETUP_ICU(INTL_SHARED_LIBADD)
|
||||
PHP_SUBST(INTL_SHARED_LIBADD)
|
||||
PHP_REQUIRE_CXX()
|
||||
+ INTL_COMMON_FLAGS="$ICU_INCS -Wno-write-strings -D__STDC_LIMIT_MACROS"
|
||||
if test "$icu_version" -ge "4002"; then
|
||||
icu_spoof_src=" spoofchecker/spoofchecker_class.c \
|
||||
spoofchecker/spoofchecker.c\
|
||||
@@ -66,9 +67,9 @@ if test "$PHP_INTL" != "no"; then
|
||||
transliterator/transliterator_class.c \
|
||||
transliterator/transliterator_methods.c \
|
||||
idn/idn.c \
|
||||
- $icu_spoof_src, $ext_shared,,$ICU_INCS -Wno-write-strings,cxx)
|
||||
+ $icu_spoof_src, $ext_shared,,$INTL_COMMON_FLAGS,cxx)
|
||||
|
||||
- PHP_INTL_CPP_SOURCES="intl_convertcpp.cpp \
|
||||
+ PHP_INTL_CXX_SOURCES="intl_convertcpp.cpp \
|
||||
common/common_enum.cpp \
|
||||
common/common_date.cpp \
|
||||
dateformat/dateformat_format_object.cpp \
|
||||
@@ -87,11 +88,11 @@ if test "$PHP_INTL" != "no"; then
|
||||
breakiterator/rulebasedbreakiterator_methods.cpp \
|
||||
breakiterator/codepointiterator_internal.cpp \
|
||||
breakiterator/codepointiterator_methods.cpp"
|
||||
- PHP_INTL_CPP_FLAGS="$ICU_INCS -Wno-write-strings -D__STDC_LIMIT_MACROS $ICU_CXXFLAGS"
|
||||
+ PHP_INTL_CXX_FLAGS="$INTL_COMMON_FLAGS $ICU_CXXFLAGS"
|
||||
if test "$ext_shared" = "no"; then
|
||||
- PHP_ADD_SOURCES(PHP_EXT_DIR(intl), $PHP_INTL_CPP_SOURCES, $PHP_INTL_CPP_FLAGS)
|
||||
+ PHP_ADD_SOURCES(PHP_EXT_DIR(intl), $PHP_INTL_CXX_SOURCES, $PHP_INTL_CXX_FLAGS)
|
||||
else
|
||||
- PHP_ADD_SOURCES_X(PHP_EXT_DIR(intl), $PHP_INTL_CPP_SOURCES, $PHP_INTL_CPP_FLAGS, shared_objects_intl, yes)
|
||||
+ PHP_ADD_SOURCES_X(PHP_EXT_DIR(intl), $PHP_INTL_CXX_SOURCES, $PHP_INTL_CXX_FLAGS, shared_objects_intl, yes)
|
||||
fi
|
||||
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/collator)
|
13
dev-lang/php/files/php-fpm_at-simple.service
Normal file
13
dev-lang/php/files/php-fpm_at-simple.service
Normal file
@ -0,0 +1,13 @@
|
||||
[Unit]
|
||||
Description=The PHP FastCGI Process Manager
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
PIDFile=/run/php-fpm/php-fpm-%I.pid
|
||||
ExecStart=/usr/libexec/php-fpm-launcher php%I -y /etc/php/fpm-php%I/php-fpm.conf --nodaemonize
|
||||
ExecReload=/bin/kill -USR2 $MAINPID
|
||||
PrivateTmp=true
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
14
dev-lang/php/files/php-fpm_at.service
Normal file
14
dev-lang/php/files/php-fpm_at.service
Normal file
@ -0,0 +1,14 @@
|
||||
[Unit]
|
||||
Description=The PHP FastCGI Process Manager
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=notify
|
||||
PIDFile=/run/php-fpm/php-fpm-%I.pid
|
||||
ExecStart=/usr/libexec/php-fpm-launcher php%I -y /etc/php/fpm-php%I/php-fpm.conf --nodaemonize
|
||||
ExecReload=/bin/kill -USR2 $MAINPID
|
||||
PrivateTmp=true
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
233
dev-lang/php/files/php-freetype-2.9.1.patch
Normal file
233
dev-lang/php/files/php-freetype-2.9.1.patch
Normal file
@ -0,0 +1,233 @@
|
||||
--- a/ext/gd/config.m4 2018-04-24 11:09:54.000000000 -0400
|
||||
+++ b/ext/gd/config.m4 2018-05-04 15:18:49.867283889 -0400
|
||||
@@ -186,21 +186,36 @@
|
||||
AC_DEFUN([PHP_GD_FREETYPE2],[
|
||||
if test "$PHP_FREETYPE_DIR" != "no"; then
|
||||
|
||||
- for i in $PHP_FREETYPE_DIR /usr/local /usr; do
|
||||
- if test -f "$i/bin/freetype-config"; then
|
||||
- FREETYPE2_DIR=$i
|
||||
- FREETYPE2_CONFIG="$i/bin/freetype-config"
|
||||
- break
|
||||
+ AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
|
||||
+ AC_MSG_CHECKING(for freetype2)
|
||||
+
|
||||
+ if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists freetype2 ; then
|
||||
+
|
||||
+ FREETYPE2_CFLAGS=`$PKG_CONFIG --cflags freetype2`
|
||||
+ FREETYPE2_LIBS=`$PKG_CONFIG --libs freetype2`
|
||||
+ FREETYPE2_VERSION=`$PKG_CONFIG --modversion freetype2`
|
||||
+ FREETYPE2_DIR="found"
|
||||
+
|
||||
+ AC_MSG_RESULT(from pkgconfig: version $FREETYPE2_VERSION found)
|
||||
+ else
|
||||
+
|
||||
+ for i in $PHP_FREETYPE_DIR /usr/local /usr; do
|
||||
+ if test -f "$i/bin/freetype-config"; then
|
||||
+ FREETYPE2_DIR=$i
|
||||
+ FREETYPE2_CONFIG="$i/bin/freetype-config"
|
||||
+ break
|
||||
+ fi
|
||||
+ done
|
||||
+
|
||||
+ if test -z "$FREETYPE2_DIR"; then
|
||||
+ AC_MSG_ERROR([freetype-config not found.])
|
||||
fi
|
||||
- done
|
||||
|
||||
- if test -z "$FREETYPE2_DIR"; then
|
||||
- AC_MSG_ERROR([freetype-config not found.])
|
||||
+ FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags`
|
||||
+ FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs`
|
||||
+ AC_MSG_RESULT(found via freetype-config)
|
||||
fi
|
||||
|
||||
- FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags`
|
||||
- FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs`
|
||||
-
|
||||
PHP_EVAL_INCLINE($FREETYPE2_CFLAGS)
|
||||
PHP_EVAL_LIBLINE($FREETYPE2_LIBS, GD_SHARED_LIBADD)
|
||||
AC_DEFINE(HAVE_LIBFREETYPE,1,[ ])
|
||||
--- a/configure 2018-04-24 11:10:05.000000000 -0400
|
||||
+++ b/configure 2018-05-04 15:18:45.626367913 -0400
|
||||
@@ -34348,21 +34348,79 @@
|
||||
|
||||
if test "$PHP_FREETYPE_DIR" != "no"; then
|
||||
|
||||
- for i in $PHP_FREETYPE_DIR /usr/local /usr; do
|
||||
- if test -f "$i/bin/freetype-config"; then
|
||||
- FREETYPE2_DIR=$i
|
||||
- FREETYPE2_CONFIG="$i/bin/freetype-config"
|
||||
- break
|
||||
+ # Extract the first word of "pkg-config", so it can be a program name with args.
|
||||
+set dummy pkg-config; ac_word=$2
|
||||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||||
+$as_echo_n "checking for $ac_word... " >&6; }
|
||||
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
|
||||
+ $as_echo_n "(cached) " >&6
|
||||
+else
|
||||
+ case $PKG_CONFIG in
|
||||
+ [\\/]* | ?:[\\/]*)
|
||||
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
|
||||
+ ;;
|
||||
+ *)
|
||||
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||
+for as_dir in $PATH
|
||||
+do
|
||||
+ IFS=$as_save_IFS
|
||||
+ test -z "$as_dir" && as_dir=.
|
||||
+ for ac_exec_ext in '' $ac_executable_extensions; do
|
||||
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||
+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
|
||||
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||
+ break 2
|
||||
+ fi
|
||||
+done
|
||||
+ done
|
||||
+IFS=$as_save_IFS
|
||||
+
|
||||
+ test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
|
||||
+ ;;
|
||||
+esac
|
||||
+fi
|
||||
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
|
||||
+if test -n "$PKG_CONFIG"; then
|
||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
|
||||
+$as_echo "$PKG_CONFIG" >&6; }
|
||||
+else
|
||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
+$as_echo "no" >&6; }
|
||||
+fi
|
||||
+
|
||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for freetype2" >&5
|
||||
+$as_echo_n "checking for freetype2... " >&6; }
|
||||
+
|
||||
+
|
||||
+ if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists freetype2 ; then
|
||||
+
|
||||
+ FREETYPE2_CFLAGS=`$PKG_CONFIG --cflags freetype2`
|
||||
+ FREETYPE2_LIBS=`$PKG_CONFIG --libs freetype2`
|
||||
+ FREETYPE2_VERSION=`$PKG_CONFIG --modversion freetype2`
|
||||
+ FREETYPE2_DIR="found"
|
||||
+
|
||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: from pkgconfig: version $FREETYPE2_VERSION found" >&5
|
||||
+$as_echo "from pkgconfig: version $FREETYPE2_VERSION found" >&6; }
|
||||
+ else
|
||||
+
|
||||
+ for i in $PHP_FREETYPE_DIR /usr/local /usr; do
|
||||
+ if test -f "$i/bin/freetype-config"; then
|
||||
+ FREETYPE2_DIR=$i
|
||||
+ FREETYPE2_CONFIG="$i/bin/freetype-config"
|
||||
+ break
|
||||
+ fi
|
||||
+ done
|
||||
+
|
||||
+ if test -z "$FREETYPE2_DIR"; then
|
||||
+ as_fn_error $? "freetype-config not found." "$LINENO" 5
|
||||
fi
|
||||
- done
|
||||
|
||||
- if test -z "$FREETYPE2_DIR"; then
|
||||
- as_fn_error $? "freetype-config not found." "$LINENO" 5
|
||||
+ FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags`
|
||||
+ FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs`
|
||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: found via freetype-config" >&5
|
||||
+$as_echo "found via freetype-config" >&6; }
|
||||
fi
|
||||
|
||||
- FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags`
|
||||
- FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs`
|
||||
-
|
||||
|
||||
for ac_i in $FREETYPE2_CFLAGS; do
|
||||
case $ac_i in
|
||||
@@ -36019,21 +36076,78 @@
|
||||
|
||||
if test "$PHP_FREETYPE_DIR" != "no"; then
|
||||
|
||||
- for i in $PHP_FREETYPE_DIR /usr/local /usr; do
|
||||
- if test -f "$i/bin/freetype-config"; then
|
||||
- FREETYPE2_DIR=$i
|
||||
- FREETYPE2_CONFIG="$i/bin/freetype-config"
|
||||
- break
|
||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for freetype2" >&5
|
||||
+$as_echo_n "checking for freetype2... " >&6; }
|
||||
+ # Extract the first word of "pkg-config", so it can be a program name with args.
|
||||
+set dummy pkg-config; ac_word=$2
|
||||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||||
+$as_echo_n "checking for $ac_word... " >&6; }
|
||||
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
|
||||
+ $as_echo_n "(cached) " >&6
|
||||
+else
|
||||
+ case $PKG_CONFIG in
|
||||
+ [\\/]* | ?:[\\/]*)
|
||||
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
|
||||
+ ;;
|
||||
+ *)
|
||||
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||
+for as_dir in $PATH
|
||||
+do
|
||||
+ IFS=$as_save_IFS
|
||||
+ test -z "$as_dir" && as_dir=.
|
||||
+ for ac_exec_ext in '' $ac_executable_extensions; do
|
||||
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||
+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
|
||||
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||
+ break 2
|
||||
+ fi
|
||||
+done
|
||||
+ done
|
||||
+IFS=$as_save_IFS
|
||||
+
|
||||
+ test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
|
||||
+ ;;
|
||||
+esac
|
||||
+fi
|
||||
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
|
||||
+if test -n "$PKG_CONFIG"; then
|
||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
|
||||
+$as_echo "$PKG_CONFIG" >&6; }
|
||||
+else
|
||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
+$as_echo "no" >&6; }
|
||||
+fi
|
||||
+
|
||||
+
|
||||
+
|
||||
+ if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists freetype2 ; then
|
||||
+
|
||||
+ FREETYPE2_CFLAGS=`$PKG_CONFIG --cflags freetype2`
|
||||
+ FREETYPE2_LIBS=`$PKG_CONFIG --libs freetype2`
|
||||
+ FREETYPE2_VERSION=`$PKG_CONFIG --modversion freetype2`
|
||||
+
|
||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: from pkgconfig: version $FREETYPE_VERSON found" >&5
|
||||
+$as_echo "from pkgconfig: version $FREETYPE_VERSON found" >&6; }
|
||||
+ else
|
||||
+
|
||||
+ for i in $PHP_FREETYPE_DIR /usr/local /usr; do
|
||||
+ if test -f "$i/bin/freetype-config"; then
|
||||
+ FREETYPE2_DIR=$i
|
||||
+ FREETYPE2_CONFIG="$i/bin/freetype-config"
|
||||
+ break
|
||||
+ fi
|
||||
+ done
|
||||
+
|
||||
+ if test -z "$FREETYPE2_DIR"; then
|
||||
+ as_fn_error $? "freetype-config not found." "$LINENO" 5
|
||||
fi
|
||||
- done
|
||||
|
||||
- if test -z "$FREETYPE2_DIR"; then
|
||||
- as_fn_error $? "freetype-config not found." "$LINENO" 5
|
||||
+ FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags`
|
||||
+ FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs`
|
||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: found via freetype-config" >&5
|
||||
+$as_echo "found via freetype-config" >&6; }
|
||||
fi
|
||||
|
||||
- FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags`
|
||||
- FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs`
|
||||
-
|
||||
|
||||
for ac_i in $FREETYPE2_CFLAGS; do
|
||||
case $ac_i in
|
57
dev-lang/php/metadata.xml
Normal file
57
dev-lang/php/metadata.xml
Normal file
@ -0,0 +1,57 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="project">
|
||||
<email>php-bugs@gentoo.org</email>
|
||||
<name>PHP</name>
|
||||
</maintainer>
|
||||
<use>
|
||||
<flag name="argon2">Enable password hashing algorithm from <pkg>app-crypt/argon2</pkg></flag>
|
||||
<flag name="cli">Enable CLI SAPI</flag>
|
||||
<flag name="coverage">
|
||||
Include gcov symbols for test coverage and lcov reports. Only
|
||||
useful for extension developers, and requires GCC.
|
||||
</flag>
|
||||
<flag name="embed">Enable embed SAPI </flag>
|
||||
<flag name="enchant">Add supports Enchant spelling library. </flag>
|
||||
<flag name="fileinfo"> Add fileinfo extension support</flag>
|
||||
<flag name="filter">Add filter extension support</flag>
|
||||
<flag name="fpm">Enable the FastCGI Process Manager SAPI</flag>
|
||||
<flag name="gd">Adds support for gd (bundled with PHP)</flag>
|
||||
<flag name="hash">Enable the hash extension</flag>
|
||||
<flag name="json">Enable JSON support</flag>
|
||||
<flag name="ldap-sasl">Add SASL support for the PHP LDAP extension</flag>
|
||||
<flag name="libmysqlclient">
|
||||
Use libmyslclient driver for mysql, mysqli, PDO_Mysql (not recommended)
|
||||
</flag>
|
||||
<flag name="lmdb">Enable support for <pkg>dev-db/lmdb</pkg> db backend</flag>
|
||||
<flag name="intl">
|
||||
Enables the intl extension for extended internalization support
|
||||
</flag>
|
||||
<flag name="opcache">
|
||||
Enables built-in opcode cache, replacing pecl-apc et al.
|
||||
</flag>
|
||||
<flag name="pdo">Enable the bundled PDO extensions</flag>
|
||||
<flag name="phar">
|
||||
Enables the phar extension to provide phar archive support
|
||||
</flag>
|
||||
<flag name="phpdbg">
|
||||
Enable the PHP Debug Command Line SAPI (like gdb for php)
|
||||
</flag>
|
||||
<flag name="session-mm">
|
||||
Include <pkg>dev-libs/mm</pkg> support for session storage
|
||||
</flag>
|
||||
<flag name="sodium">
|
||||
Enable support for crypto through <pkg>dev-libs/libsodium</pkg>
|
||||
</flag>
|
||||
<flag name="tokyocabinet">
|
||||
Enable support for <pkg>dev-db/tokyocabinet</pkg> db backend</flag>
|
||||
<flag name="xmlreader">Enable XMLReader support</flag>
|
||||
<flag name="xmlwriter">Enable XMLWriter support</flag>
|
||||
<flag name="xslt">Enable the XSL extension</flag>
|
||||
<flag name="vpx">Enable webp support for GD in php-5.x</flag>
|
||||
<flag name="webp">Enable webp support for GD in php-7.x</flag>
|
||||
<flag name="zip">Enable ZIP file support</flag>
|
||||
<flag name="zip-encryption">Enable ZIP file encryption from <pkg>dev-libs/libzip</pkg></flag>
|
||||
</use>
|
||||
</pkgmetadata>
|
783
dev-lang/php/php-5.6.38.ebuild
Normal file
783
dev-lang/php/php-5.6.38.ebuild
Normal file
@ -0,0 +1,783 @@
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
inherit autotools flag-o-matic eapi7-ver systemd
|
||||
|
||||
DESCRIPTION="The PHP language runtime engine"
|
||||
HOMEPAGE="https://secure.php.net/"
|
||||
SRC_URI="https://php.net/distributions/${P}.tar.xz"
|
||||
|
||||
LICENSE="PHP-3.01
|
||||
BSD
|
||||
Zend-2.0
|
||||
bcmath? ( LGPL-2.1+ )
|
||||
fpm? ( BSD-2 )
|
||||
gd? ( gd )
|
||||
unicode? ( BSD-2 LGPL-2.1 )"
|
||||
|
||||
SLOT="$(ver_cut 1-2)"
|
||||
KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
|
||||
|
||||
# We can build the following SAPIs in the given order
|
||||
SAPIS="embed cli cgi fpm apache2"
|
||||
|
||||
# SAPIs and SAPI-specific USE flags (cli SAPI is default on):
|
||||
IUSE="${IUSE}
|
||||
${SAPIS/cli/+cli}
|
||||
threads"
|
||||
|
||||
IUSE="${IUSE} acl bcmath berkdb bzip2 calendar cdb cjk
|
||||
coverage crypt +ctype curl debug
|
||||
enchant exif +fileinfo +filter firebird
|
||||
flatfile ftp gd gdbm gmp +hash +iconv imap inifile
|
||||
intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit libressl
|
||||
mhash mssql mysql libmysqlclient mysqli nls
|
||||
oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm
|
||||
readline recode selinux +session sharedmem
|
||||
+simplexml snmp soap sockets spell sqlite ssl
|
||||
sybase-ct sysvipc systemd tidy +tokenizer truetype unicode vpx wddx
|
||||
+xml xmlreader xmlwriter xmlrpc xpm xslt zip zlib"
|
||||
|
||||
# The supported (that is, autodetected) versions of BDB are listed in
|
||||
# the ./configure script. Other versions *work*, but we need to stick to
|
||||
# the ones that can be detected to avoid a repeat of bug #564824.
|
||||
COMMON_DEPEND="
|
||||
>=app-eselect/eselect-php-0.9.1[apache2?,fpm?]
|
||||
>=dev-libs/libpcre-8.32[unicode]
|
||||
fpm? ( acl? ( sys-apps/acl ) )
|
||||
apache2? ( || ( >=www-servers/apache-2.4[apache2_modules_unixd,threads=]
|
||||
<www-servers/apache-2.4[threads=] ) )
|
||||
berkdb? ( || ( sys-libs/db:5.3
|
||||
sys-libs/db:5.1
|
||||
sys-libs/db:4.8
|
||||
sys-libs/db:4.7
|
||||
sys-libs/db:4.6
|
||||
sys-libs/db:4.5 ) )
|
||||
bzip2? ( app-arch/bzip2:0= )
|
||||
cdb? ( || ( dev-db/cdb dev-db/tinycdb ) )
|
||||
cjk? ( !gd? (
|
||||
virtual/jpeg:0
|
||||
media-libs/libpng:0=
|
||||
sys-libs/zlib:0=
|
||||
) )
|
||||
coverage? ( dev-util/lcov )
|
||||
crypt? ( >=dev-libs/libmcrypt-2.4 )
|
||||
curl? ( >=net-misc/curl-7.10.5 )
|
||||
enchant? ( app-text/enchant )
|
||||
exif? ( !gd? (
|
||||
virtual/jpeg:0
|
||||
media-libs/libpng:0=
|
||||
sys-libs/zlib:0=
|
||||
) )
|
||||
firebird? ( dev-db/firebird )
|
||||
gd? ( virtual/jpeg:0 media-libs/libpng:0= sys-libs/zlib:0= )
|
||||
gdbm? ( >=sys-libs/gdbm-1.8.0:0= )
|
||||
gmp? ( dev-libs/gmp:0= )
|
||||
iconv? ( virtual/libiconv )
|
||||
imap? ( virtual/imap-c-client[kerberos=,ssl=] )
|
||||
intl? ( >=dev-libs/icu-62.1:= )
|
||||
iodbc? ( dev-db/libiodbc )
|
||||
kerberos? ( virtual/krb5 )
|
||||
ldap? ( >=net-nds/openldap-1.2.11 )
|
||||
ldap-sasl? ( dev-libs/cyrus-sasl >=net-nds/openldap-1.2.11 )
|
||||
libedit? ( || ( sys-freebsd/freebsd-lib dev-libs/libedit ) )
|
||||
mssql? ( dev-db/freetds[mssql] )
|
||||
libmysqlclient? (
|
||||
mysql? ( virtual/libmysqlclient:= )
|
||||
mysqli? ( virtual/libmysqlclient:= )
|
||||
)
|
||||
nls? ( sys-devel/gettext )
|
||||
oci8-instant-client? ( dev-db/oracle-instantclient-basic )
|
||||
odbc? ( >=dev-db/unixODBC-1.8.13 )
|
||||
postgres? ( dev-db/postgresql:* )
|
||||
qdbm? ( dev-db/qdbm )
|
||||
readline? ( sys-libs/readline:0= )
|
||||
recode? ( app-text/recode )
|
||||
sharedmem? ( dev-libs/mm )
|
||||
simplexml? ( >=dev-libs/libxml2-2.6.8 )
|
||||
snmp? ( >=net-analyzer/net-snmp-5.2 )
|
||||
soap? ( >=dev-libs/libxml2-2.6.8 )
|
||||
spell? ( >=app-text/aspell-0.50 )
|
||||
sqlite? ( >=dev-db/sqlite-3.7.6.3 )
|
||||
ssl? (
|
||||
!libressl? ( dev-libs/openssl:0= )
|
||||
libressl? ( dev-libs/libressl:0= )
|
||||
)
|
||||
sybase-ct? ( dev-db/freetds )
|
||||
tidy? ( app-text/htmltidy )
|
||||
truetype? (
|
||||
=media-libs/freetype-2*
|
||||
>=media-libs/t1lib-5.0.0
|
||||
!gd? (
|
||||
virtual/jpeg:0 media-libs/libpng:0= sys-libs/zlib:0= )
|
||||
)
|
||||
unicode? ( dev-libs/oniguruma:= )
|
||||
vpx? ( media-libs/libvpx:0= )
|
||||
wddx? ( >=dev-libs/libxml2-2.6.8 )
|
||||
xml? ( >=dev-libs/libxml2-2.6.8 )
|
||||
xmlrpc? ( >=dev-libs/libxml2-2.6.8 virtual/libiconv )
|
||||
xmlreader? ( >=dev-libs/libxml2-2.6.8 )
|
||||
xmlwriter? ( >=dev-libs/libxml2-2.6.8 )
|
||||
xpm? (
|
||||
x11-libs/libXpm
|
||||
virtual/jpeg:0
|
||||
media-libs/libpng:0= sys-libs/zlib:0=
|
||||
)
|
||||
xslt? ( dev-libs/libxslt >=dev-libs/libxml2-2.6.8 )
|
||||
zip? ( sys-libs/zlib:0= )
|
||||
zlib? ( sys-libs/zlib:0= )
|
||||
"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
virtual/mta
|
||||
fpm? (
|
||||
selinux? ( sec-policy/selinux-phpfpm )
|
||||
systemd? ( sys-apps/systemd ) )"
|
||||
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
app-arch/xz-utils
|
||||
>=sys-devel/bison-3.0.1
|
||||
sys-devel/flex
|
||||
>=sys-devel/m4-1.4.3
|
||||
>=sys-devel/libtool-1.5.18"
|
||||
|
||||
# Without USE=readline or libedit, the interactive "php -a" CLI will hang.
|
||||
REQUIRED_USE="
|
||||
|| ( cli cgi fpm apache2 embed )
|
||||
cli? ( ^^ ( readline libedit ) )
|
||||
truetype? ( gd zlib )
|
||||
vpx? ( gd zlib )
|
||||
cjk? ( gd zlib )
|
||||
exif? ( gd zlib )
|
||||
xpm? ( gd zlib )
|
||||
gd? ( zlib )
|
||||
simplexml? ( xml )
|
||||
soap? ( xml )
|
||||
wddx? ( xml )
|
||||
xmlrpc? ( || ( xml iconv ) )
|
||||
xmlreader? ( xml )
|
||||
xslt? ( xml )
|
||||
ldap-sasl? ( ldap )
|
||||
mhash? ( hash )
|
||||
phar? ( hash )
|
||||
recode? ( !imap !mysql !mysqli !libmysqlclient )
|
||||
libmysqlclient? ( || (
|
||||
mysql
|
||||
mysqli
|
||||
pdo
|
||||
) )
|
||||
|
||||
qdbm? ( !gdbm )
|
||||
readline? ( !libedit )
|
||||
sharedmem? ( !threads )
|
||||
"
|
||||
|
||||
PHP_MV="$(ver_cut 1)"
|
||||
|
||||
php_install_ini() {
|
||||
local phpsapi="${1}"
|
||||
|
||||
# work out where we are installing the ini file
|
||||
php_set_ini_dir "${phpsapi}"
|
||||
|
||||
# Always install the production INI file, bug 611214.
|
||||
local phpinisrc="php.ini-production-${phpsapi}"
|
||||
cp php.ini-production "${phpinisrc}" || die
|
||||
|
||||
# default to /tmp for save_path, bug #282768
|
||||
sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}" || die
|
||||
|
||||
# Set the extension dir
|
||||
sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" \
|
||||
-i "${phpinisrc}" || die
|
||||
|
||||
# Set the include path to point to where we want to find PEAR packages
|
||||
sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:'"${EPREFIX}"'/usr/share/php'${PHP_MV}':'"${EPREFIX}"'/usr/share/php"|' -i "${phpinisrc}" || die
|
||||
|
||||
dodir "${PHP_INI_DIR#${EPREFIX}}"
|
||||
insinto "${PHP_INI_DIR#${EPREFIX}}"
|
||||
newins "${phpinisrc}" php.ini
|
||||
|
||||
elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR#${EPREFIX}}"
|
||||
elog
|
||||
|
||||
dodir "${PHP_EXT_INI_DIR#${EPREFIX}}"
|
||||
dodir "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}"
|
||||
|
||||
if use opcache; then
|
||||
elog "Adding opcache to $PHP_EXT_INI_DIR"
|
||||
echo "zend_extension=${PHP_DESTDIR}/$(get_libdir)/opcache.so" >> \
|
||||
"${D}/${PHP_EXT_INI_DIR}"/opcache.ini
|
||||
dosym "${PHP_EXT_INI_DIR#${EPREFIX}}/opcache.ini" \
|
||||
"${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini"
|
||||
fi
|
||||
|
||||
# SAPI-specific handling
|
||||
if [[ "${sapi}" == "fpm" ]] ; then
|
||||
einfo "Installing FPM config file php-fpm.conf"
|
||||
insinto "${PHP_INI_DIR#${EPREFIX}}"
|
||||
doins sapi/fpm/php-fpm.conf
|
||||
fi
|
||||
|
||||
dodoc php.ini-{development,production}
|
||||
}
|
||||
|
||||
php_set_ini_dir() {
|
||||
PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}"
|
||||
PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext"
|
||||
PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
eapply "${FILESDIR}/php-${SLOT}-no-bison-warnings.patch"
|
||||
eapply "${FILESDIR}/5.6-mbstring-oniguruma-6.8.patch"
|
||||
eapply "${FILESDIR}/php-freetype-2.9.1.patch"
|
||||
|
||||
# build fixes from fedora SRPM from remi
|
||||
eapply "${FILESDIR}/php-5.3.0-recode.patch"
|
||||
eapply "${FILESDIR}/php-5.6.30-interbase.patch"
|
||||
eapply "${FILESDIR}/php-5.6.31-openssl11.patch"
|
||||
eapply "${FILESDIR}/php-5.6.37-icu62.patch"
|
||||
|
||||
# Change PHP branding
|
||||
# Get the alpha/beta/rc version
|
||||
sed -re "s|^(PHP_EXTRA_VERSION=\").*(\")|\1-pl${PR/r/}-gentoo\2|g" \
|
||||
-i configure.in || die "Unable to change PHP branding"
|
||||
|
||||
# Patch PHP to show Gentoo as the server platform
|
||||
sed -e 's/PHP_UNAME=`uname -a | xargs`/PHP_UNAME=`uname -s -n -r -v | xargs`/g' \
|
||||
-i configure.in || die "Failed to fix server platform name"
|
||||
|
||||
# Prevent PHP from activating the Apache config,
|
||||
# as we will do that ourselves
|
||||
sed -i \
|
||||
-e "s,-i -a -n php${PHP_MV},-i -n php${PHP_MV},g" \
|
||||
-e "s,-i -A -n php${PHP_MV},-i -n php${PHP_MV},g" \
|
||||
configure sapi/apache2filter/config.m4 sapi/apache2handler/config.m4 \
|
||||
|| die
|
||||
|
||||
# Patch PHP to support heimdal instead of mit-krb5
|
||||
if has_version "app-crypt/heimdal" ; then
|
||||
sed -e 's|gssapi_krb5|gssapi|g' -i acinclude.m4 \
|
||||
|| die "Failed to fix heimdal libname"
|
||||
sed -e 's|PHP_ADD_LIBRARY(k5crypto, 1, $1)||g' -i acinclude.m4 \
|
||||
|| die "Failed to fix heimdal crypt library reference"
|
||||
fi
|
||||
|
||||
eapply_user
|
||||
|
||||
# Force rebuilding aclocal.m4
|
||||
rm -f aclocal.m4 || die "failed to remove aclocal.m4 in src_prepare"
|
||||
eautoreconf
|
||||
|
||||
if [[ ${CHOST} == *-darwin* ]] ; then
|
||||
# http://bugs.php.net/bug.php?id=48795, bug #343481
|
||||
sed -i -e '/BUILD_CGI="\\$(CC)/s/CC/CXX/' configure || die
|
||||
fi
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
addpredict /usr/share/snmp/mibs/.index #nowarn
|
||||
addpredict /var/lib/net-snmp/mib_indexes #nowarn
|
||||
|
||||
PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}"
|
||||
|
||||
# The php-fpm config file wants localstatedir to be ${EPREFIX}/var
|
||||
# and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002.
|
||||
local our_conf=(
|
||||
--prefix="${PHP_DESTDIR}"
|
||||
--mandir="${PHP_DESTDIR}/man"
|
||||
--infodir="${PHP_DESTDIR}/info"
|
||||
--libdir="${PHP_DESTDIR}/lib"
|
||||
--with-libdir="$(get_libdir)"
|
||||
--localstatedir="${EPREFIX}/var"
|
||||
--without-pear
|
||||
$(use_enable threads maintainer-zts)
|
||||
)
|
||||
|
||||
our_conf+=(
|
||||
$(use_enable bcmath bcmath)
|
||||
$(use_with bzip2 bz2 "${EPREFIX}/usr")
|
||||
$(use_enable calendar calendar)
|
||||
$(use_enable coverage gcov)
|
||||
$(use_enable ctype ctype)
|
||||
$(use_with curl curl "${EPREFIX}/usr")
|
||||
$(use_enable xml dom)
|
||||
$(use_with enchant enchant "${EPREFIX}/usr")
|
||||
$(use_enable exif exif)
|
||||
$(use_enable fileinfo fileinfo)
|
||||
$(use_enable filter filter)
|
||||
$(use_enable ftp ftp)
|
||||
$(use_with nls gettext "${EPREFIX}/usr")
|
||||
$(use_with gmp gmp "${EPREFIX}/usr")
|
||||
$(use_enable hash hash)
|
||||
$(use_with mhash mhash "${EPREFIX}/usr")
|
||||
$(use_with iconv iconv \
|
||||
$(use elibc_glibc || use elibc_musl || use elibc_FreeBSD || echo "${EPREFIX}/usr"))
|
||||
$(use_enable intl intl)
|
||||
$(use_enable ipv6 ipv6)
|
||||
$(use_enable json json)
|
||||
$(use_with kerberos kerberos "${EPREFIX}/usr")
|
||||
$(use_enable xml libxml)
|
||||
$(use_with xml libxml-dir "${EPREFIX}/usr")
|
||||
$(use_enable unicode mbstring)
|
||||
$(use_with crypt mcrypt "${EPREFIX}/usr")
|
||||
$(use_with mssql mssql "${EPREFIX}/usr")
|
||||
$(use_with unicode onig "${EPREFIX}/usr")
|
||||
$(use_with ssl openssl "${EPREFIX}/usr")
|
||||
$(use_with ssl openssl-dir "${EPREFIX}/usr")
|
||||
$(use_enable pcntl pcntl)
|
||||
$(use_enable phar phar)
|
||||
$(use_enable pdo pdo)
|
||||
$(use_enable opcache opcache)
|
||||
$(use_with postgres pgsql "${EPREFIX}/usr")
|
||||
$(use_enable posix posix)
|
||||
$(use_with spell pspell "${EPREFIX}/usr")
|
||||
$(use_with recode recode "${EPREFIX}/usr")
|
||||
$(use_enable simplexml simplexml)
|
||||
$(use_enable sharedmem shmop)
|
||||
$(use_with snmp snmp "${EPREFIX}/usr")
|
||||
$(use_enable soap soap)
|
||||
$(use_enable sockets sockets)
|
||||
$(use_with sqlite sqlite3 "${EPREFIX}/usr")
|
||||
$(use_with sybase-ct sybase-ct "${EPREFIX}/usr")
|
||||
$(use_enable sysvipc sysvmsg)
|
||||
$(use_enable sysvipc sysvsem)
|
||||
$(use_enable sysvipc sysvshm)
|
||||
$(use_with tidy tidy "${EPREFIX}/usr")
|
||||
$(use_enable tokenizer tokenizer)
|
||||
$(use_enable wddx wddx)
|
||||
$(use_enable xml xml)
|
||||
$(use_enable xmlreader xmlreader)
|
||||
$(use_enable xmlwriter xmlwriter)
|
||||
$(use_with xmlrpc xmlrpc)
|
||||
$(use_with xslt xsl "${EPREFIX}/usr")
|
||||
$(use_enable zip zip)
|
||||
$(use_with zlib zlib "${EPREFIX}/usr")
|
||||
$(use_enable debug debug)
|
||||
)
|
||||
|
||||
# DBA support
|
||||
if use cdb || use berkdb || use flatfile || use gdbm || use inifile \
|
||||
|| use qdbm ; then
|
||||
our_conf+=( "--enable-dba${shared}" )
|
||||
fi
|
||||
|
||||
# DBA drivers support
|
||||
our_conf+=(
|
||||
$(use_with cdb cdb)
|
||||
$(use_with berkdb db4 "${EPREFIX}/usr")
|
||||
$(use_enable flatfile flatfile)
|
||||
$(use_with gdbm gdbm "${EPREFIX}/usr")
|
||||
$(use_enable inifile inifile)
|
||||
$(use_with qdbm qdbm "${EPREFIX}/usr")
|
||||
)
|
||||
|
||||
# Support for the GD graphics library
|
||||
our_conf+=(
|
||||
$(use_with truetype freetype-dir "${EPREFIX}/usr")
|
||||
$(use_with truetype t1lib "${EPREFIX}/usr")
|
||||
$(use_enable cjk gd-jis-conv)
|
||||
$(use_with gd jpeg-dir "${EPREFIX}/usr")
|
||||
$(use_with gd png-dir "${EPREFIX}/usr")
|
||||
$(use_with xpm xpm-dir "${EPREFIX}/usr")
|
||||
$(use_with vpx vpx-dir "${EPREFIX}/usr")
|
||||
)
|
||||
# enable gd last, so configure can pick up the previous settings
|
||||
our_conf+=( $(use_with gd gd) )
|
||||
|
||||
# IMAP support
|
||||
if use imap ; then
|
||||
our_conf+=(
|
||||
$(use_with imap imap "${EPREFIX}/usr")
|
||||
$(use_with ssl imap-ssl "${EPREFIX}/usr")
|
||||
)
|
||||
fi
|
||||
|
||||
# Interbase/firebird support
|
||||
our_conf+=( $(use_with firebird interbase "${EPREFIX}/usr") )
|
||||
|
||||
# LDAP support
|
||||
if use ldap ; then
|
||||
our_conf+=(
|
||||
$(use_with ldap ldap "${EPREFIX}/usr")
|
||||
$(use_with ldap-sasl ldap-sasl "${EPREFIX}/usr")
|
||||
)
|
||||
fi
|
||||
|
||||
# MySQL support
|
||||
local mysqllib="mysqlnd"
|
||||
local mysqlilib="mysqlnd"
|
||||
use libmysqlclient && mysqllib="${EPREFIX}/usr"
|
||||
use libmysqlclient && mysqlilib="${EPREFIX}/usr/bin/mysql_config"
|
||||
|
||||
our_conf+=( $(use_with mysql mysql "${mysqllib}") )
|
||||
our_conf+=( $(use_with mysqli mysqli "${mysqlilib}") )
|
||||
|
||||
local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock"
|
||||
if use mysql || use mysqli ; then
|
||||
our_conf+=( $(use_with mysql mysql-sock "${mysqlsock}") )
|
||||
fi
|
||||
|
||||
# ODBC support
|
||||
our_conf+=(
|
||||
$(use_with odbc unixODBC "${EPREFIX}/usr")
|
||||
$(use_with iodbc iodbc "${EPREFIX}/usr")
|
||||
)
|
||||
|
||||
# Oracle support
|
||||
our_conf+=( $(use_with oci8-instant-client oci8) )
|
||||
|
||||
# PDO support
|
||||
if use pdo ; then
|
||||
our_conf+=(
|
||||
$(use_with mssql pdo-dblib)
|
||||
$(use_with mysql pdo-mysql "${mysqllib}")
|
||||
$(use_with postgres pdo-pgsql)
|
||||
$(use_with sqlite pdo-sqlite "${EPREFIX}/usr")
|
||||
$(use_with firebird pdo-firebird "${EPREFIX}/usr")
|
||||
$(use_with odbc pdo-odbc "unixODBC,${EPREFIX}/usr")
|
||||
$(use_with oci8-instant-client pdo-oci)
|
||||
)
|
||||
fi
|
||||
|
||||
# readline/libedit support
|
||||
our_conf+=(
|
||||
$(use_with readline readline "${EPREFIX}/usr")
|
||||
$(use_with libedit libedit "${EPREFIX}/usr")
|
||||
)
|
||||
|
||||
# Session support
|
||||
if use session ; then
|
||||
our_conf+=( $(use_with sharedmem mm "${EPREFIX}/usr") )
|
||||
else
|
||||
our_conf+=( $(use_enable session session) )
|
||||
fi
|
||||
|
||||
# Use pic for shared modules such as apache2's mod_php
|
||||
our_conf+=( --with-pic )
|
||||
|
||||
# we use the system copy of pcre
|
||||
# --with-pcre-regex affects ext/pcre
|
||||
# --with-pcre-dir affects ext/filter and ext/zip
|
||||
our_conf+=(
|
||||
--with-pcre-regex="${EPREFIX}/usr"
|
||||
--with-pcre-dir="${EPREFIX}/usr"
|
||||
)
|
||||
|
||||
# Catch CFLAGS problems
|
||||
# Fixes bug #14067.
|
||||
# Changed order to run it in reverse for bug #32022 and #12021.
|
||||
replace-cpu-flags "k6*" "i586"
|
||||
|
||||
# Cache the ./configure test results between SAPIs.
|
||||
our_conf+=( --cache-file="${T}/config.cache" )
|
||||
|
||||
# Support user-passed configuration parameters
|
||||
our_conf+=( ${EXTRA_ECONF:-} )
|
||||
|
||||
# Support the Apache2 extras, they must be set globally for all
|
||||
# SAPIs to work correctly, especially for external PHP extensions
|
||||
|
||||
mkdir -p "${WORKDIR}/sapis-build" || die
|
||||
for one_sapi in $SAPIS ; do
|
||||
use "${one_sapi}" || continue
|
||||
php_set_ini_dir "${one_sapi}"
|
||||
|
||||
# The BUILD_DIR variable is used to determine where to output
|
||||
# the files that autotools creates. This was all originally
|
||||
# based on the autotools-utils eclass.
|
||||
BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}"
|
||||
cp -a "${S}" "${BUILD_DIR}" || die
|
||||
cd "${BUILD_DIR}" || die
|
||||
|
||||
local sapi_conf=(
|
||||
--with-config-file-path="${PHP_INI_DIR}"
|
||||
--with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}"
|
||||
)
|
||||
|
||||
for sapi in $SAPIS ; do
|
||||
case "$sapi" in
|
||||
cli|cgi|embed|fpm)
|
||||
if [[ "${one_sapi}" == "${sapi}" ]] ; then
|
||||
sapi_conf+=( "--enable-${sapi}" )
|
||||
if [[ "fpm" == "${sapi}" ]] ; then
|
||||
sapi_conf+=(
|
||||
$(use_with acl fpm-acl)
|
||||
$(use_with systemd fpm-systemd)
|
||||
)
|
||||
fi
|
||||
else
|
||||
sapi_conf+=( "--disable-${sapi}" )
|
||||
fi
|
||||
;;
|
||||
|
||||
apache2)
|
||||
if [[ "${one_sapi}" == "${sapi}" ]] ; then
|
||||
sapi_conf+=( --with-apxs2="${EPREFIX}/usr/bin/apxs" )
|
||||
else
|
||||
sapi_conf+=( --without-apxs2 )
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Construct the $myeconfargs array by concatenating $our_conf
|
||||
# (the common args) and $sapi_conf (the SAPI-specific args).
|
||||
local myeconfargs=( "${our_conf[@]}" )
|
||||
myeconfargs+=( "${sapi_conf[@]}" )
|
||||
|
||||
pushd "${BUILD_DIR}" > /dev/null || die
|
||||
econf "${myeconfargs[@]}"
|
||||
popd > /dev/null || die
|
||||
done
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# snmp seems to run during src_compile, too (bug #324739)
|
||||
addpredict /usr/share/snmp/mibs/.index #nowarn
|
||||
addpredict /var/lib/net-snmp/mib_indexes #nowarn
|
||||
|
||||
for sapi in ${SAPIS} ; do
|
||||
if use "${sapi}"; then
|
||||
cd "${WORKDIR}/sapis-build/$sapi" || \
|
||||
die "Failed to change dir to ${WORKDIR}/sapis-build/$1"
|
||||
emake
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
src_install() {
|
||||
# see bug #324739 for what happens when we don't have that
|
||||
addpredict /usr/share/snmp/mibs/.index #nowarn
|
||||
|
||||
# grab the first SAPI that got built and install common files from there
|
||||
local first_sapi=""
|
||||
for sapi in $SAPIS ; do
|
||||
if use $sapi ; then
|
||||
first_sapi=$sapi
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
# Makefile forgets to create this before trying to write to it...
|
||||
dodir "${PHP_DESTDIR#${EPREFIX}}/bin"
|
||||
|
||||
# Install php environment (without any sapis)
|
||||
cd "${WORKDIR}/sapis-build/$first_sapi" || die
|
||||
emake INSTALL_ROOT="${D}" \
|
||||
install-build install-headers install-programs
|
||||
|
||||
local extension_dir="$("${ED}/${PHP_DESTDIR#${EPREFIX}}/bin/php-config" --extension-dir)"
|
||||
|
||||
# Create the directory where we'll put version-specific php scripts
|
||||
keepdir "/usr/share/php${PHP_MV}"
|
||||
|
||||
local sapi="", file=""
|
||||
local sapi_list=""
|
||||
|
||||
for sapi in ${SAPIS}; do
|
||||
if use "${sapi}" ; then
|
||||
einfo "Installing SAPI: ${sapi}"
|
||||
cd "${WORKDIR}/sapis-build/${sapi}" || die
|
||||
|
||||
if [[ "${sapi}" == "apache2" ]] ; then
|
||||
# We're specifically not using emake install-sapi as libtool
|
||||
# may cause unnecessary relink failures (see bug #351266)
|
||||
insinto "${PHP_DESTDIR#${EPREFIX}}/apache2/"
|
||||
newins ".libs/libphp5$(get_libname)" \
|
||||
"libphp${PHP_MV}$(get_libname)"
|
||||
keepdir "/usr/$(get_libdir)/apache2/modules"
|
||||
else
|
||||
# needed each time, php_install_ini would reset it
|
||||
local dest="${PHP_DESTDIR#${EPREFIX}}"
|
||||
into "${dest}"
|
||||
case "$sapi" in
|
||||
cli)
|
||||
source="sapi/cli/php"
|
||||
;;
|
||||
cgi)
|
||||
source="sapi/cgi/php-cgi"
|
||||
;;
|
||||
fpm)
|
||||
source="sapi/fpm/php-fpm"
|
||||
;;
|
||||
embed)
|
||||
source="libs/libphp${PHP_MV}$(get_libname)"
|
||||
;;
|
||||
*)
|
||||
die "unhandled sapi in src_install"
|
||||
;;
|
||||
esac
|
||||
|
||||
if [[ "${source}" == *"$(get_libname)" ]]; then
|
||||
dolib.so "${source}"
|
||||
else
|
||||
dobin "${source}"
|
||||
local name="$(basename ${source})"
|
||||
dosym "${dest}/bin/${name}" "/usr/bin/${name}${SLOT}"
|
||||
fi
|
||||
fi
|
||||
|
||||
php_install_ini "${sapi}"
|
||||
|
||||
# construct correct SAPI string for php-config
|
||||
# thanks to ferringb for the bash voodoo
|
||||
if [[ "${sapi}" == "apache2" ]]; then
|
||||
sapi_list="${sapi_list:+${sapi_list} }apache2handler"
|
||||
else
|
||||
sapi_list="${sapi_list:+${sapi_list} }${sapi}"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
# Installing opcache module
|
||||
if use opcache ; then
|
||||
into "${PHP_DESTDIR#${EPREFIX}}"
|
||||
dolib.so "modules/opcache$(get_libname)"
|
||||
fi
|
||||
|
||||
# Install env.d files
|
||||
newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}"
|
||||
sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
|
||||
sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
|
||||
|
||||
# set php-config variable correctly (bug #278439)
|
||||
sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \
|
||||
"${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die
|
||||
|
||||
if use fpm ; then
|
||||
if use systemd; then
|
||||
systemd_newunit "${FILESDIR}/php-fpm_at.service" \
|
||||
"php-fpm@${SLOT}.service"
|
||||
else
|
||||
systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" \
|
||||
"php-fpm@${SLOT}.service"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
echo ">>> Test phase [test]: ${CATEGORY}/${PF}"
|
||||
PHP_BIN="${WORKDIR}/sapis-build/cli/sapi/cli/php"
|
||||
if [[ ! -x "${PHP_BIN}" ]] ; then
|
||||
ewarn "Test phase requires USE=cli, skipping"
|
||||
return
|
||||
else
|
||||
export TEST_PHP_EXECUTABLE="${PHP_BIN}"
|
||||
fi
|
||||
|
||||
if [[ -x "${WORKDIR}/sapis/cgi/php-cgi" ]] ; then
|
||||
export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis/cgi/php-cgi"
|
||||
fi
|
||||
|
||||
REPORT_EXIT_STATUS=1 "${TEST_PHP_EXECUTABLE}" -n -d \
|
||||
"session.save_path=${T}" \
|
||||
"${WORKDIR}/sapis-build/cli/run-tests.php" -n -q -d \
|
||||
"session.save_path=${T}"
|
||||
|
||||
for name in ${EXPECTED_TEST_FAILURES}; do
|
||||
mv "${name}.out" "${name}.out.orig" 2>/dev/null || die
|
||||
done
|
||||
|
||||
local failed="$(find -name '*.out')"
|
||||
if [[ ${failed} != "" ]] ; then
|
||||
ewarn "The following test cases failed unexpectedly:"
|
||||
for name in ${failed}; do
|
||||
ewarn " ${name/.out/}"
|
||||
done
|
||||
else
|
||||
einfo "No unexpected test failures, all fine"
|
||||
fi
|
||||
|
||||
if [[ ${PHP_SHOW_UNEXPECTED_TEST_PASS} == "1" ]] ; then
|
||||
local passed=""
|
||||
for name in ${EXPECTED_TEST_FAILURES}; do
|
||||
[[ -f "${name}.diff" ]] && continue
|
||||
passed="${passed} ${name}"
|
||||
done
|
||||
if [[ ${passed} != "" ]] ; then
|
||||
einfo "The following test cases passed unexpectedly:"
|
||||
for name in ${passed}; do
|
||||
ewarn " ${passed}"
|
||||
done
|
||||
else
|
||||
einfo "None of the known-to-fail tests passed, all fine"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
# Output some general info to the user
|
||||
if use apache2 ; then
|
||||
elog
|
||||
elog "To enable PHP in apache, you will need to add \"-D PHP\" to"
|
||||
elog "your apache2 command. OpenRC users can append that string to"
|
||||
elog "APACHE2_OPTS in /etc/conf.d/apache2."
|
||||
elog
|
||||
elog "The apache module configuration file 70_mod_php.conf is"
|
||||
elog "provided (and maintained) by eselect-php."
|
||||
elog
|
||||
fi
|
||||
|
||||
# Create the symlinks for php
|
||||
for m in ${SAPIS}; do
|
||||
[[ ${m} == 'embed' ]] && continue;
|
||||
if use $m ; then
|
||||
local ci=$(eselect php show $m)
|
||||
if [[ -z $ci ]]; then
|
||||
eselect php set $m php${SLOT} || die
|
||||
einfo "Switched ${m} to use php:${SLOT}"
|
||||
einfo
|
||||
elif [[ $ci != "php${SLOT}" ]] ; then
|
||||
elog "To switch $m to use php:${SLOT}, run"
|
||||
elog " eselect php set $m php${SLOT}"
|
||||
elog
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
# Remove dead symlinks for SAPIs that were just disabled. For
|
||||
# example, if the user has the cgi SAPI enabled, then he has an
|
||||
# eselect-php symlink for it. If he later reinstalls PHP with
|
||||
# USE="-cgi", that symlink will break. This call to eselect is
|
||||
# supposed to remove that dead link per bug 572436.
|
||||
eselect php cleanup || die
|
||||
|
||||
if ! has "php${SLOT/./-}" ${PHP_TARGETS}; then
|
||||
elog "To build extensions for this version of PHP, you will need to"
|
||||
elog "add php${SLOT/./-} to your PHP_TARGETS USE_EXPAND variable."
|
||||
elog
|
||||
fi
|
||||
|
||||
# Warn about the removal of PHP_INI_VERSION if the user has it set.
|
||||
if [[ -n "${PHP_INI_VERSION}" ]]; then
|
||||
ewarn 'The PHP_INI_VERSION variable has been phased out. You may'
|
||||
ewarn 'remove it from your configuration at your convenience. See'
|
||||
ewarn
|
||||
ewarn ' https://bugs.gentoo.org/611214'
|
||||
ewarn
|
||||
ewarn 'for more information.'
|
||||
fi
|
||||
|
||||
elog "For details on how version slotting works, please see"
|
||||
elog "the wiki:"
|
||||
elog
|
||||
elog " https://wiki.gentoo.org/wiki/PHP"
|
||||
elog
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
# This serves two purposes. First, if we have just removed the last
|
||||
# installed version of PHP, then this will remove any dead symlinks
|
||||
# belonging to eselect-php. Second, if a user upgrades slots from
|
||||
# (say) 5.6 to 7.0 and depcleans the old slot, then this will update
|
||||
# his existing symlinks to point to the new 7.0 installation. The
|
||||
# latter is bug 432962.
|
||||
#
|
||||
# Note: the eselect-php package may not be installed at this point,
|
||||
# so we can't die() if this command fails.
|
||||
eselect php cleanup
|
||||
}
|
Loading…
Reference in New Issue
Block a user