php: security bump to version 5.3.13 and enhance

Bump php to version 5.3.13 to solve multiple CVEs.
The 5.2 series is no longer maintained.

The PCRE and SPL extensions are no longer optional.
Reflection is no longer optional either.

Ncurses was spun out to PECL.

Add a ton of new extensions and give more granular options on others
(like the libxml2-based ones).

The FastCGI option no longer exists, it's always on as long as CGI is.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
This commit is contained in:
Gustavo Zacarias 2012-05-21 01:17:54 +00:00 committed by Peter Korsgaard
parent 360f0e40f0
commit aeb9350cfb
5 changed files with 436 additions and 273 deletions

View File

@ -1,28 +1,21 @@
menu "PHP Extensions"
menu "Extensions"
config BR2_PACKAGE_PHP_CONFIG
string "PHP configuration file to use"
default "$(PHP_DIR)/php.ini-dist"
config BR2_PACKAGE_PHP_EXT_CALENDAR
bool "Calendar"
help
If you want to use a different php.ini file define it here.
Otherwise it'll just copy the default php.ini-dist from PHP.
Calendar and event support
config BR2_PACKAGE_PHP_EXT_SOCKETS
bool "socket"
config BR2_PACKAGE_PHP_EXT_FILEINFO
bool "Fileinfo"
help
Sockets support
File Information support
config BR2_PACKAGE_PHP_EXT_POSIX
bool "posix"
default y
config BR2_PACKAGE_PHP_EXT_READLINE
bool "Readline"
select BR2_PACKAGE_NCURSES
select BR2_PACKAGE_READLINE
help
POSIX support
config BR2_PACKAGE_PHP_EXT_SPL
bool "SPL"
default y
help
Standard PHP library support
Readline support
config BR2_PACKAGE_PHP_EXT_SESSION
bool "Session"
@ -30,98 +23,13 @@ config BR2_PACKAGE_PHP_EXT_SESSION
help
Session support
config BR2_PACKAGE_PHP_EXT_OPENSSL
bool "openssl"
select BR2_PACKAGE_OPENSSL
comment "Compression extensions"
config BR2_PACKAGE_PHP_EXT_BZIP2
bool "bzip2"
select BR2_PACKAGE_BZIP2
help
openssl support
config BR2_PACKAGE_PHP_EXT_LIBXML2
bool "xml2"
select BR2_PACKAGE_LIBXML2
help
libxml2 support
config BR2_PACKAGE_PHP_EXT_SIMPLEXML
bool "simplexml"
select BR2_PACKAGE_PHP_EXT_LIBXML2
help
SimpleXML support
config BR2_PACKAGE_PHP_EXT_ZLIB
bool "zlib"
select BR2_PACKAGE_ZLIB
default y
help
zlib support
config BR2_PACKAGE_PHP_EXT_EXIF
bool "EXIF"
help
EXIF support
config BR2_PACKAGE_PHP_EXT_FTP
bool "FTP"
help
FTP Support
config BR2_PACKAGE_PHP_EXT_GETTEXT
bool "gettext"
select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT
depends on BR2_USE_WCHAR
help
gettext support
comment "gettext support requires a toolchain with WCHAR support"
depends on !BR2_USE_WCHAR
config BR2_PACKAGE_PHP_EXT_GMP
bool "gmp"
select BR2_PACKAGE_GMP
help
GMP support
config BR2_PACKAGE_PHP_EXT_JSON
bool "JSON"
help
JavaScript Object Serialization support
config BR2_PACKAGE_PHP_EXT_READLINE
bool "readline"
depends on (BR2_PACKAGE_PHP_CLI || BR2_PACKAGE_PHP_CGI) && BR2_PACKAGE_READLINE
help
readline support
config BR2_PACKAGE_PHP_EXT_NCURSES
bool "ncurses"
depends on (BR2_PACKAGE_PHP_CLI || BR2_PACKAGE_PHP_CGI) && BR2_PACKAGE_NCURSES
help
ncurses support
config BR2_PACKAGE_PHP_EXT_PCRE
bool "PCRE"
help
Perl Compatible Regular Expressions support
config BR2_PACKAGE_PHP_EXT_PCNTL
bool "PCNTL"
help
Process Control Support
config BR2_PACKAGE_PHP_EXT_SYSVMSG
bool "sysvmsg - System V Message queue"
help
System V Message queue support
config BR2_PACKAGE_PHP_EXT_SYSVSEM
bool "sysvsem - System V Semaphores"
help
System V Sempahore support
config BR2_PACKAGE_PHP_EXT_SYSVSHM
bool "sysvshm - System V Shared memory"
help
System V Shared memory support
bzip2 read/write support
config BR2_PACKAGE_PHP_EXT_ZIP
bool "zip"
@ -129,19 +37,60 @@ config BR2_PACKAGE_PHP_EXT_ZIP
help
Zip read/write support
config BR2_PACKAGE_PHP_EXT_FILTER
bool "filter"
select BR2_PACKAGE_PHP_EXT_PCRE
config BR2_PACKAGE_PHP_EXT_ZLIB
bool "zlib"
select BR2_PACKAGE_ZLIB
default y
help
Input filter support
zlib support
config BR2_PACKAGE_PHP_EXT_CALENDAR
bool "calendar"
comment "Cryptography extensions"
config BR2_PACKAGE_PHP_EXT_HASH
bool "hash"
help
Calendar and event support
HASH message digest framework
config BR2_PACKAGE_PHP_EXT_OPENSSL
bool "openssl"
select BR2_PACKAGE_OPENSSL
help
openssl support
comment "Database extensions"
config BR2_PACKAGE_PHP_EXT_DBA
bool "DBA"
help
Database Abstraction Layer
if BR2_PACKAGE_PHP_EXT_DBA
config BR2_PACKAGE_PHP_EXT_DBA_CDB
bool "cdb"
help
CDB handler
config BR2_PACKAGE_PHP_EXT_DBA_DB4
bool "db4/5"
select BR2_PACKAGE_BERKELEYDB
help
BerkeleyDB version 4/5 handler
config BR2_PACKAGE_PHP_EXT_DBA_FLAT
bool "flat"
default y
help
Flat file handler
config BR2_PACKAGE_PHP_EXT_DBA_INI
bool "ini"
default y
help
INI file handler
endif
config BR2_PACKAGE_PHP_EXT_SQLITE
bool "SQLite"
help
@ -151,35 +100,243 @@ config BR2_PACKAGE_PHP_EXT_SQLITE_UTF8
bool "sqlite UTF8 support"
depends on BR2_PACKAGE_PHP_EXT_SQLITE
help
UTF8 Support for sqlite
UTF8 support for sqlite
config BR2_PACKAGE_PHP_EXT_MYSQL
bool "Mysql"
depends on BR2_INSTALL_LIBSTDCPP
select BR2_PACKAGE_MYSQL_CLIENT
help
MySQL support
config BR2_PACKAGE_PHP_EXT_MYSQLI
bool "Mysqli"
depends on BR2_INSTALL_LIBSTDCPP
select BR2_PACKAGE_MYSQL_CLIENT
select BR2_PACKAGE_PHP_EXT_MYSQL
help
MySQL Improved extension support
config BR2_PACKAGE_PHP_EXT_PDO
bool "PDO"
help
PHP Data Objects support
config BR2_PACKAGE_PHP_EXT_PDO_SQLITE
bool "PDO_SQLite"
depends on BR2_PACKAGE_PHP_EXT_PDO
help
SQLite driver for PDO
config BR2_PACKAGE_PHP_EXT_PDO_SQLITE_EXTERNAL
bool "PDO_SQLite external"
depends on BR2_PACKAGE_PHP_EXT_PDO_SQLITE
select BR2_PACKAGE_SQLITE
help
Use external sqlite3 library
if BR2_PACKAGE_PHP_EXT_PDO
config BR2_PACKAGE_PHP_EXT_PDO_MYSQL
bool "PDO_MySQL"
depends on BR2_PACKAGE_PHP_EXT_PDO
bool "MySQL"
depends on BR2_INSTALL_LIBSTDCPP
select BR2_PACKAGE_MYSQL_CLIENT
help
PDO driver for MySQL
comment "PDO_MySQL requires a toolchain with C++ support"
depends on !BR2_INSTALL_LIBSTDCPP && BR2_PACKAGE_PHP_EXT_PDO
comment "MySQL drivers require a toolchain with C++ support"
depends on !BR2_INSTALL_LIBSTDCPP
config BR2_PACKAGE_PHP_EXT_PDO_SQLITE
bool "SQLite3"
select BR2_PACKAGE_SQLITE
help
SQLite3 driver for PDO
endif
comment "Human language and character encoding support"
config BR2_PACKAGE_PHP_EXT_GETTEXT
bool "Gettext"
select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT
depends on BR2_USE_WCHAR
help
Gettext support
comment "Gettext support requires a toolchain with WCHAR support"
depends on !BR2_USE_WCHAR
config BR2_PACKAGE_PHP_EXT_ICONV
bool "iconv"
select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
help
iconv character set conversion support
config BR2_PACKAGE_PHP_EXT_INTL
bool "intl"
select BR2_PACKAGE_ICU
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_USE_WCHAR
help
Internationalization support
comment "intl support requires a toolchain with C++ and WCHAR support"
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR
comment "Image processing"
config BR2_PACKAGE_PHP_EXT_EXIF
bool "EXIF"
help
EXIF support
comment "Mathematical extensions"
config BR2_PACKAGE_PHP_EXT_BCMATH
bool "BC math"
help
BCMath arbitrary precision mathematics support
config BR2_PACKAGE_PHP_EXT_GMP
bool "GMP"
select BR2_PACKAGE_GMP
help
GNU Multiple Precision support
comment "Other basic extensions"
config BR2_PACKAGE_PHP_EXT_JSON
bool "JSON"
help
JavaScript Object Serialization support
config BR2_PACKAGE_PHP_EXT_TOKENIZER
bool "Tokenizer"
help
Tokenizer functions support
comment "Other services"
config BR2_PACKAGE_PHP_EXT_CURL
bool "cURL"
select BR2_PACKAGE_LIBCURL
help
cURL for URL streams
config BR2_PACKAGE_PHP_EXT_FTP
bool "FTP"
help
FTP support
config BR2_PACKAGE_PHP_EXT_SNMP
bool "SNMP"
select BR2_PACKAGE_NETSNMP
help
SNMP support
config BR2_PACKAGE_PHP_EXT_SOCKETS
bool "sockets"
help
Sockets support
comment "Process Control"
config BR2_PACKAGE_PHP_EXT_PCNTL
bool "PCNTL"
help
Process control support
config BR2_PACKAGE_PHP_EXT_POSIX
bool "Posix"
default y
help
POSIX.1 (IEEE 1003.1) function support
config BR2_PACKAGE_PHP_EXT_SHMOP
bool "shmop"
help
Shared memory support
config BR2_PACKAGE_PHP_EXT_SYSVMSG
bool "sysvmsg"
help
System V message queue support
config BR2_PACKAGE_PHP_EXT_SYSVSEM
bool "sysvsem"
help
System V semaphore support
config BR2_PACKAGE_PHP_EXT_SYSVSHM
bool "sysvshm"
help
System V shared memory support
comment "Variable and Type related"
config BR2_PACKAGE_PHP_EXT_CTYPE
bool "Ctype"
help
Character type checking support
config BR2_PACKAGE_PHP_EXT_FILTER
bool "Filter"
help
Input filter support
comment "Web services"
config BR2_PACKAGE_PHP_EXT_SOAP
bool "SOAP"
select BR2_PACKAGE_PHP_EXT_LIBXML2
help
SOAP support
config BR2_PACKAGE_PHP_EXT_XMLRPC
bool "XML-RPC"
select BR2_PACKAGE_PHP_EXT_LIBXML2
select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
help
XML-RPC support
comment "XML manipulation"
config BR2_PACKAGE_PHP_EXT_DOM
bool "DOM"
select BR2_PACKAGE_PHP_EXT_LIBXML2
help
Document Object Model support
config BR2_PACKAGE_PHP_EXT_LIBXML2
bool "libxml"
select BR2_PACKAGE_LIBXML2
help
libxml2 support
config BR2_PACKAGE_PHP_EXT_SIMPLEXML
bool "SimpleXML"
select BR2_PACKAGE_PHP_EXT_LIBXML2
help
SimpleXML support
config BR2_PACKAGE_PHP_EXT_WDDX
bool "WDDX"
select BR2_PACKAGE_PHP_EXT_LIBXML2
help
WDDX support
config BR2_PACKAGE_PHP_EXT_XML
bool "XML Parser"
select BR2_PACKAGE_PHP_EXT_LIBXML2
help
XML Parser support
config BR2_PACKAGE_PHP_EXT_XMLREADER
bool "XMLReader"
select BR2_PACKAGE_PHP_EXT_LIBXML2
help
XMLReader support
config BR2_PACKAGE_PHP_EXT_XMLWRITER
bool "XMLWriter"
select BR2_PACKAGE_PHP_EXT_LIBXML2
help
XMLWriter support
config BR2_PACKAGE_PHP_EXT_XSL
bool "XSL"
select BR2_PACKAGE_PHP_EXT_DOM
select BR2_PACKAGE_PHP_EXT_LIBXML2
select BR2_PACKAGE_LIBXSLT
help
XSL transformation support
endmenu

View File

@ -9,6 +9,8 @@ config BR2_PACKAGE_PHP
if BR2_PACKAGE_PHP
source "package/php/Config.ext"
config BR2_PACKAGE_PHP_CLI
bool
@ -16,38 +18,30 @@ config BR2_PACKAGE_PHP_CGI
bool
choice
prompt "PHP interface"
prompt "Interface"
default BR2_PACKAGE_PHP_SAPI_CGI
help
Select the PHP interface(s).
config BR2_PACKAGE_PHP_SAPI_CGI
bool "CGI"
select BR2_PACKAGE_PHP_CGI
help
Common Gateway Interface
config BR2_PACKAGE_PHP_SAPI_CLI
bool "cli interface"
bool "CLI"
select BR2_PACKAGE_PHP_CLI
help
Command line interface for PHP.
config BR2_PACKAGE_PHP_SAPI_CGI
bool "cgi interface"
select BR2_PACKAGE_PHP_CGI
help
CGI interface for PHP.
Command Line Interface
config BR2_PACKAGE_PHP_SAPI_CLI_CGI
bool "cli and cgi interfaces"
bool "CGI and CLI"
select BR2_PACKAGE_PHP_CLI
select BR2_PACKAGE_PHP_CGI
help
Command line and CGI interfaces for PHP.
Command line and Common gateway interfaces
endchoice
config BR2_PACKAGE_PHP_FASTCGI
bool "fastcgi"
depends on BR2_PACKAGE_PHP_CGI
default y
help
fast cgi interface for php
source "package/php/Config.ext"
endif

View File

@ -1,30 +0,0 @@
From e814fcac0599dbaae50ede1f9f78e20941e27877 Mon Sep 17 00:00:00 2001
From: pajoye <pajoye@c90b9560-bf6c-de11-be94-00142212c4b1>
Date: Tue, 23 Feb 2010 11:07:39 +0000
Subject: [PATCH] - fix build when __GMP_BITS_PER_MP_LIMB is not defined but GMP_LIMB_BITS (no trace of this change in gmp's changelog...)
git-svn-id: http://svn.php.net/repository/php/php-src/branches/PHP_5_3@295402 c90b9560-bf6c-de11-be94-00142212c4b1
---
ext/gmp/gmp.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/ext/gmp/gmp.c b/ext/gmp/gmp.c
index a54ffe9..f53dcd6 100644
--- a/ext/gmp/gmp.c
+++ b/ext/gmp/gmp.c
@@ -1374,8 +1374,11 @@ ZEND_FUNCTION(gmp_random)
GMPG(rand_initialized) = 1;
}
+#ifdef GMP_LIMB_BITS
+ mpz_urandomb(*gmpnum_result, GMPG(rand_state), GMP_ABS (limiter) * GMP_LIMB_BITS);
+#else
mpz_urandomb(*gmpnum_result, GMPG(rand_state), GMP_ABS (limiter) * __GMP_BITS_PER_MP_LIMB);
-
+#endif
ZEND_REGISTER_RESOURCE(return_value, gmpnum_result, le_gmp);
}
/* }}} */
--
1.7.1

View File

@ -0,0 +1,21 @@
Don't push LDFLAGS/CFLAGS for iconv.
Just assume they're covered somewhere else.
Otherwise we get -L/usr/lib and -I/usr/include search paths with uClibc
internal iconv support, which breaks things.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
diff -Nura php-5.3.13/configure php-5.3.13-iconv/configure
--- php-5.3.13/configure 2012-05-08 06:41:23.000000000 -0300
+++ php-5.3.13-iconv/configure 2012-05-18 22:18:21.313975849 -0300
@@ -47885,8 +47885,8 @@
PHP_ICONV_PREFIX="$ICONV_DIR"
fi
- CFLAGS="-I$PHP_ICONV_PREFIX/include $CFLAGS"
- LDFLAGS="-L$PHP_ICONV_PREFIX/$PHP_LIBDIR $LDFLAGS"
+ #CFLAGS="-I$PHP_ICONV_PREFIX/include $CFLAGS"
+ #LDFLAGS="-L$PHP_ICONV_PREFIX/$PHP_LIBDIR $LDFLAGS"
if test -r "$PHP_ICONV_PREFIX/include/giconv.h"; then
PHP_ICONV_H_PATH="$PHP_ICONV_PREFIX/include/giconv.h"

View File

@ -4,53 +4,59 @@
#
#############################################################
PHP_VERSION = 5.2.17
PHP_VERSION = 5.3.13
PHP_SOURCE = php-$(PHP_VERSION).tar.bz2
PHP_SITE = http://www.php.net/distributions
PHP_INSTALL_STAGING = YES
PHP_INSTALL_STAGING_OPT = INSTALL_ROOT=$(STAGING_DIR) install
PHP_INSTALL_TARGET_OPT = INSTALL_ROOT=$(TARGET_DIR) install
PHP_LIBTOOL_PATCH = NO
PHP_CONF_OPT = --mandir=/usr/share/man \
--infodir=/usr/share/info \
--disable-all \
--without-pear \
--with-config-file-path=/etc \
--localstatedir=/var \
--disable-rpath
PHP_CFLAGS = $(TARGET_CFLAGS)
ifneq ($(BR2_PACKAGE_PHP_CLI),y)
PHP_CONF_OPT += --disable-cli
else
PHP_CONF_OPT += --enable-cli
# Workaround for non-IPv6 uClibc toolchain
ifeq ($(BR2_TOOLCHAIN_BUILDROOT)$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC)$(BR2_TOOLCHAIN_CTNG_uClibc),y)
ifneq ($(BR2_INET_IPV6),y)
PHP_CFLAGS += -DHAVE_DEPRECATED_DNS_FUNCS
endif
endif
ifneq ($(BR2_PACKAGE_PHP_CGI),y)
PHP_CONF_OPT += --disable-cgi
else
PHP_CONF_OPT += --enable-cgi
ifeq ($(BR2_PACKAGE_PHP_FASTCGI),y)
PHP_CONF_OPT += --enable-fastcgi
endif
endif
PHP_CONF_OPT += $(if $(BR2_PACKAGE_PHP_CLI),,--disable-cli)
PHP_CONF_OPT += $(if $(BR2_PACKAGE_PHP_CGI),,--disable-cgi)
### Extensions
ifeq ($(BR2_PACKAGE_PHP_EXT_SOCKETS),y)
PHP_CONF_OPT += --enable-sockets
endif
ifeq ($(BR2_PACKAGE_PHP_EXT_POSIX),y)
PHP_CONF_OPT += --enable-posix
endif
ifeq ($(BR2_PACKAGE_PHP_EXT_SPL),y)
PHP_CONF_OPT += --enable-spl
endif
ifeq ($(BR2_PACKAGE_PHP_EXT_SESSION),y)
PHP_CONF_OPT += --enable-session
endif
PHP_CONF_OPT += $(if $(BR2_PACKAGE_PHP_EXT_SOCKETS),--enable-sockets) \
$(if $(BR2_PACKAGE_PHP_EXT_POSIX),--enable-posix) \
$(if $(BR2_PACKAGE_PHP_EXT_SESSION),--enable-session) \
$(if $(BR2_PACKAGE_PHP_EXT_HASH),--enable-hash) \
$(if $(BR2_PACKAGE_PHP_EXT_DOM),--enable-dom) \
$(if $(BR2_PACKAGE_PHP_EXT_SIMPLEXML),--enable-simplexml) \
$(if $(BR2_PACKAGE_PHP_EXT_SOAP),--enable-soap) \
$(if $(BR2_PACKAGE_PHP_EXT_WDDX),--enable-wddx) \
$(if $(BR2_PACKAGE_PHP_EXT_XML),--enable-xml) \
$(if $(BR2_PACKAGE_PHP_EXT_XMLREADER),--enable-xmlreader) \
$(if $(BR2_PACKAGE_PHP_EXT_XMLWRITER),--enable-xmlwriter) \
$(if $(BR2_PACKAGE_PHP_EXT_EXIF),--enable-exif) \
$(if $(BR2_PACKAGE_PHP_EXT_FTP),--enable-ftp) \
$(if $(BR2_PACKAGE_PHP_EXT_JSON),--enable-json) \
$(if $(BR2_PACKAGE_PHP_EXT_TOKENIZER),--enable-tokenizer) \
$(if $(BR2_PACKAGE_PHP_EXT_PCNTL),--enable-pcntl) \
$(if $(BR2_PACKAGE_PHP_EXT_SHMOP),--enable-shmop) \
$(if $(BR2_PACKAGE_PHP_EXT_SYSVMSG),--enable-sysvmsg) \
$(if $(BR2_PACKAGE_PHP_EXT_SYSVSEM),--enable-sysvsem) \
$(if $(BR2_PACKAGE_PHP_EXT_SYSVSHM),--enable-sysvshm) \
$(if $(BR2_PACKAGE_PHP_EXT_ZIP),--enable-zip) \
$(if $(BR2_PACKAGE_PHP_EXT_CTYPE),--enable-ctype) \
$(if $(BR2_PACKAGE_PHP_EXT_FILTER),--enable-filter) \
$(if $(BR2_PACKAGE_PHP_EXT_CALENDAR),--enable-calendar) \
$(if $(BR2_PACKAGE_PHP_EXT_FILENIFO),--enable-fileinfo) \
$(if $(BR2_PACKAGE_PHP_EXT_BCMATH),--enable-bcmath)
ifeq ($(BR2_PACKAGE_PHP_EXT_OPENSSL),y)
PHP_CONF_OPT += --with-openssl=$(STAGING_DIR)/usr
@ -58,16 +64,14 @@ ifeq ($(BR2_PACKAGE_PHP_EXT_OPENSSL),y)
endif
ifeq ($(BR2_PACKAGE_PHP_EXT_LIBXML2),y)
PHP_CONF_OPT += --enable-libxml \
--with-libxml-dir=${STAGING_DIR}/usr \
--enable-xml \
--enable-xmlreader \
--enable-xmlwriter
PHP_CONF_OPT += --enable-libxml --with-libxml-dir=${STAGING_DIR}/usr
PHP_DEPENDENCIES += libxml2
endif
ifeq ($(BR2_PACKAGE_PHP_EXT_SIMPLEXML),y)
PHP_CONF_OPT += --enable-simplexml
ifeq ($(BR2_PACKAGE_PHP_EXT_XMLRPC),y)
PHP_CONF_OPT += --with-xmlrpc \
$(if $(BR2_PACKAGE_LIBICONV),--with-iconv-dir=$(STAGING_DIR)/usr)
PHP_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBICONV),libiconv)
endif
ifneq ($(BR2_PACKAGE_PHP_EXT_ZLIB)$(BR2_PACKAGE_PHP_EXT_ZIP),)
@ -75,70 +79,35 @@ ifneq ($(BR2_PACKAGE_PHP_EXT_ZLIB)$(BR2_PACKAGE_PHP_EXT_ZIP),)
PHP_DEPENDENCIES += zlib
endif
ifeq ($(BR2_PACKAGE_PHP_EXT_EXIF),y)
PHP_CONF_OPT += --enable-exif
endif
ifeq ($(BR2_PACKAGE_PHP_EXT_FTP),y)
PHP_CONF_OPT += --enable-ftp
endif
ifeq ($(BR2_PACKAGE_PHP_EXT_GETTEXT),y)
PHP_CONF_OPT += --with-gettext=$(STAGING_DIR)/usr
PHP_DEPENDENCIES += $(if $(BR2_NEEDS_GETTEXT),gettext)
endif
ifeq ($(BR2_PACKAGE_PHP_EXT_ICONV),y)
ifeq ($(BR2_PACKAGE_LIBICONV),y)
PHP_CONF_OPT += --with-iconv=$(STAGING_DIR)/usr
PHP_DEPENDENCIES += libiconv
else
PHP_CONF_OPT += --with-iconv
endif
endif
ifeq ($(BR2_PACKAGE_PHP_EXT_INTL),y)
PHP_CONF_OPT += --enable-intl --with-icu-dir=$(STAGING_DIR)/usr
PHP_DEPENDENCIES += icu
endif
ifeq ($(BR2_PACKAGE_PHP_EXT_GMP),y)
PHP_CONF_OPT += --with-gmp=$(STAGING_DIR)/usr
PHP_DEPENDENCIES += gmp
endif
ifeq ($(BR2_PACKAGE_PHP_EXT_JSON),y)
PHP_CONF_OPT += --enable-json
endif
ifeq ($(BR2_PACKAGE_PHP_EXT_READLINE),y)
PHP_CONF_OPT += --with-readline=$(STAGING_DIR)/usr
PHP_DEPENDENCIES += readline
endif
ifeq ($(BR2_PACKAGE_PHP_EXT_NCURSES),y)
PHP_CONF_OPT += --with-ncurses=$(STAGING_DIR)/usr
PHP_DEPENDENCIES += ncurses
endif
ifeq ($(BR2_PACKAGE_PHP_EXT_PCNTL),y)
PHP_CONF_OPT += --enable-pcntl
endif
ifeq ($(BR2_PACKAGE_PHP_EXT_SYSVMSG),y)
PHP_CONF_OPT += --enable-sysvmsg
endif
ifeq ($(BR2_PACKAGE_PHP_EXT_SYSVSEM),y)
PHP_CONF_OPT += --enable-sysvsem
endif
ifeq ($(BR2_PACKAGE_PHP_EXT_SYSVSHM),y)
PHP_CONF_OPT += --enable-sysvshm
endif
ifeq ($(BR2_PACKAGE_PHP_EXT_ZIP),y)
PHP_CONF_OPT += --enable-zip
endif
ifeq ($(BR2_PACKAGE_PHP_EXT_FILTER),y)
PHP_CONF_OPT += --enable-filter
endif
ifeq ($(BR2_PACKAGE_PHP_EXT_CALENDAR),y)
PHP_CONF_OPT += --enable-calendar
endif
ifeq ($(BR2_PACKAGE_PHP_EXT_PCRE),y)
PHP_CONF_OPT += --with-pcre-regex
endif
### Legacy sqlite2 support
ifeq ($(BR2_PACKAGE_PHP_EXT_SQLITE),y)
PHP_CONF_OPT += --with-sqlite
@ -150,16 +119,22 @@ ifeq ($(BR2_PACKAGE_PHP_EXT_SQLITE_UTF8),y)
endif
endif
### Native MySQL extensions
ifeq ($(BR2_PACKAGE_PHP_EXT_MYSQL),y)
PHP_CONF_OPT += --with-mysql=$(STAGING_DIR)/usr
PHP_DEPENDENCIES += mysql_client
endif
ifeq ($(BR2_PACKAGE_PHP_EXT_MYSQLI),y)
PHP_CONF_OPT += --with-mysqli=$(STAGING_DIR)/usr/bin/mysql_config
PHP_DEPENDENCIES += mysql_client
endif
### PDO
ifeq ($(BR2_PACKAGE_PHP_EXT_PDO),y)
PHP_CONF_OPT += --enable-pdo
ifeq ($(BR2_PACKAGE_PHP_EXT_PDO_SQLITE),y)
ifeq ($(BR2_PACKAGE_PHP_EXT_PDO_SQLITE_EXTERNAL),y)
PHP_CONF_OPT += --with-pdo-sqlite=$(STAGING_DIR)/usr
PHP_DEPENDENCIES += sqlite
else
PHP_CONF_OPT += --with-pdo-sqlite
endif
PHP_CFLAGS += -DSQLITE_OMIT_LOAD_EXTENSION
ifneq ($(BR2_LARGEFILE),y)
PHP_CFLAGS += -DSQLITE_DISABLE_LFS
@ -171,6 +146,50 @@ ifeq ($(BR2_PACKAGE_PHP_EXT_PDO_MYSQL),y)
endif
endif
### Use external PCRE if it's available
ifeq ($(BR2_PACKAGE_PCRE),y)
PHP_CONF_OPT += --with-pcre-regex=$(STAGING_DIR)/usr
PHP_DEPENDENCIES += pcre
endif
ifeq ($(BR2_PACKAGE_PHP_EXT_CURL),y)
PHP_CONF_OPT += --with-curl=$(STAGING_DIR)/usr
PHP_DEPENDENCIES += libcurl
endif
ifeq ($(BR2_PACKAGE_PHP_EXT_XSL),y)
PHP_CONF_OPT += --with-xsl=$(STAGING_DIR)/usr
PHP_DEPENDENCIES += libxslt
endif
ifeq ($(BR2_PACKAGE_PHP_EXT_BZIP2),y)
PHP_CONF_OPT += --with-bz2=$(STAGING_DIR)/usr
PHP_DEPENDENCIES += bzip2
endif
### DBA
ifeq ($(BR2_PACKAGE_PHP_EXT_DBA),y)
PHP_CONF_OPT += --enable-dba
ifneq ($(BR2_PACKAGE_PHP_EXT_DBA_CDB),y)
PHP_CONF_OPT += --without-cdb
endif
ifneq ($(BR2_PACKAGE_PHP_EXT_DBA_FLAT),y)
PHP_CONF_OPT += --without-flatfile
endif
ifneq ($(BR2_PACKAGE_PHP_EXT_DBA_INI),y)
PHP_CONF_OPT += --without-inifile
endif
ifeq ($(BR2_PACKAGE_PHP_EXT_DBA_DB4),y)
PHP_CONF_OPT += --with-db4=$(STAGING_DIR)/usr
PHP_DEPENDENCIES += berkeleydb
endif
endif
ifeq ($(BR2_PACKAGE_PHP_EXT_SNMP),y)
PHP_CONF_OPT += --with-snmp=$(STAGING_DIR)/usr
PHP_DEPENDENCIES += netsnmp
endif
# Fixup prefix= and exec_prefix= in php-config
define PHP_FIXUP_PHP_CONFIG
$(SED) 's%^prefix="/usr"%prefix="$(STAGING_DIR)/usr"%' \
@ -185,7 +204,9 @@ define PHP_INSTALL_FIXUP
rm -f $(TARGET_DIR)/usr/bin/phpize
rm -f $(TARGET_DIR)/usr/bin/php-config
if [ ! -f $(TARGET_DIR)/etc/php.ini ]; then \
$(INSTALL) -m 0755 $(BR2_PACKAGE_PHP_CONFIG) $(TARGET_DIR)/etc/php.ini; fi
$(INSTALL) -m 0755 $(PHP_DIR)/php.ini-production \
$(TARGET_DIR)/etc/php.ini; \
fi
endef
PHP_POST_INSTALL_TARGET_HOOKS += PHP_INSTALL_FIXUP