From 0708035f91c87c1b21663e125fc4e43d2ee90df2 Mon Sep 17 00:00:00 2001 From: Denis Silakov Date: Thu, 20 Sep 2018 15:47:28 +0300 Subject: [PATCH] Import --- .abf.yml | 2 + create_data_file.php | 17 + maxlifetime | 11 + php-5.3.0RC1-enchant_lib64_fix.diff | 11 + php-5.3.0RC2-xmlrpc-epi_fix.diff | 11 + php-5.3.8-bdb-5.2.diff | 11 + php-5.3.x-fpm-0.6.5-mdv_conf.diff | 83 + php-5.3.x-fpm-0.6.5-shared.diff | 21 + php-5.5.6-db-6.0.patch | 12 + php-7.0.1-clang-warnings.patch | 11 + php-7.2.0-visibility.patch | 97 + php-7.2.5-freetype-2.9.1.patch | 27 + php-7.3.0rc1-compile.patch | 15 + php-bug43221.diff | 17 + php-bug43589.diff | 11 + php-cxx.diff | 18 + php-dba-link.patch | 12 + php-dlopen.diff | 17 + php-exif_nesting_level.diff | 11 + php-filter-shared.diff | 14 + php-fpm-tmpfiles.conf | 1 + php-fpm.logrotate | 11 + php-fpm.service | 13 + php-fpm.sysconf | 3 + php-imap-annotation+status-current.diff | 302 +++ php-imap-myrights.diff | 92 + php-install.diff | 11 + php-libc-client.diff | 25 + php-libtool.diff | 37 + php-mail.diff | 85 + php-mariadb-10.3.patch | 61 + php-no_pam_in_c-client.diff | 16 + php-phpbuilddir.diff | 22 + php-phpize.diff | 63 + php-session.save_path.diff | 16 + php-shared.diff | 73 + php-tests-wddx.diff | 24 + php-umask.diff | 40 + php-xmlrpc_epi.patch | 11 + php-xmlrpc_no_rpath.diff | 21 + php-zlib-for-getimagesize.patch | 38 + php.crond | 8 + php.ini | 1806 +++++++++++++++ php.spec | 2679 +++++++++++++++++++++++ php5-apache2-filters.diff | 77 + 45 files changed, 5964 insertions(+) create mode 100644 .abf.yml create mode 100644 create_data_file.php create mode 100644 maxlifetime create mode 100644 php-5.3.0RC1-enchant_lib64_fix.diff create mode 100644 php-5.3.0RC2-xmlrpc-epi_fix.diff create mode 100644 php-5.3.8-bdb-5.2.diff create mode 100644 php-5.3.x-fpm-0.6.5-mdv_conf.diff create mode 100644 php-5.3.x-fpm-0.6.5-shared.diff create mode 100644 php-5.5.6-db-6.0.patch create mode 100644 php-7.0.1-clang-warnings.patch create mode 100644 php-7.2.0-visibility.patch create mode 100644 php-7.2.5-freetype-2.9.1.patch create mode 100644 php-7.3.0rc1-compile.patch create mode 100644 php-bug43221.diff create mode 100644 php-bug43589.diff create mode 100644 php-cxx.diff create mode 100644 php-dba-link.patch create mode 100644 php-dlopen.diff create mode 100644 php-exif_nesting_level.diff create mode 100644 php-filter-shared.diff create mode 100644 php-fpm-tmpfiles.conf create mode 100644 php-fpm.logrotate create mode 100644 php-fpm.service create mode 100644 php-fpm.sysconf create mode 100644 php-imap-annotation+status-current.diff create mode 100644 php-imap-myrights.diff create mode 100644 php-install.diff create mode 100644 php-libc-client.diff create mode 100644 php-libtool.diff create mode 100644 php-mail.diff create mode 100644 php-mariadb-10.3.patch create mode 100644 php-no_pam_in_c-client.diff create mode 100644 php-phpbuilddir.diff create mode 100644 php-phpize.diff create mode 100644 php-session.save_path.diff create mode 100644 php-shared.diff create mode 100644 php-tests-wddx.diff create mode 100644 php-umask.diff create mode 100644 php-xmlrpc_epi.patch create mode 100644 php-xmlrpc_no_rpath.diff create mode 100644 php-zlib-for-getimagesize.patch create mode 100644 php.crond create mode 100644 php.ini create mode 100644 php.spec create mode 100644 php5-apache2-filters.diff diff --git a/.abf.yml b/.abf.yml new file mode 100644 index 0000000..1a01530 --- /dev/null +++ b/.abf.yml @@ -0,0 +1,2 @@ +sources: + php-7.3.0RC1.tar.xz: 60d0942021f6d26d416da655d42f06e264a78077 diff --git a/create_data_file.php b/create_data_file.php new file mode 100644 index 0000000..bf1f563 --- /dev/null +++ b/create_data_file.php @@ -0,0 +1,17 @@ +/* This is a generated file, do not modify */ +/* Usage: php create_data_file.php /path/to/magic.mgc > data_file.c */ + diff --git a/maxlifetime b/maxlifetime new file mode 100644 index 0000000..67e537b --- /dev/null +++ b/maxlifetime @@ -0,0 +1,11 @@ +#!/bin/bash -e + +max=1440 + +cur=$(sed -n -e 's/^[[:space:]]*session.gc_maxlifetime[[:space:]]*=[[:space:]]*\([0-9]\+\).*$/\1/p' /etc/php.d/*_session.ini 2>/dev/null || true); +[ -z "$cur" ] && cur=0 +[ "$cur" -gt "$max" ] && max=$cur + +echo $(($max/60)) + +exit 0 diff --git a/php-5.3.0RC1-enchant_lib64_fix.diff b/php-5.3.0RC1-enchant_lib64_fix.diff new file mode 100644 index 0000000..d0502ff --- /dev/null +++ b/php-5.3.0RC1-enchant_lib64_fix.diff @@ -0,0 +1,11 @@ +--- ext/enchant/config.m4 2004-03-08 21:12:12.000000000 +0100 ++++ ext/enchant/config.m4.oden 2009-03-27 12:50:12.000000000 +0100 +@@ -27,7 +27,7 @@ + AC_MSG_ERROR(Cannot find enchant) + fi + +- ENCHANT_LIBDIR=$ENCHANT_DIR/lib ++ ENCHANT_LIBDIR=$ENCHANT_DIR/$PHP_LIBNAME + + AC_DEFINE(HAVE_ENCHANT,1,[ ]) + PHP_SUBST(ENCHANT_SHARED_LIBADD) diff --git a/php-5.3.0RC2-xmlrpc-epi_fix.diff b/php-5.3.0RC2-xmlrpc-epi_fix.diff new file mode 100644 index 0000000..7b0febe --- /dev/null +++ b/php-5.3.0RC2-xmlrpc-epi_fix.diff @@ -0,0 +1,11 @@ +--- ext/xmlrpc/config.m4 2009-06-11 22:04:26.000000000 +0200 ++++ ext/xmlrpc/config.m4.oden 2009-06-11 22:17:31.000000000 +0200 +@@ -116,7 +116,7 @@ + fi + + PHP_ADD_INCLUDE($XMLRPC_DIR) +- PHP_ADD_LIBRARY_WITH_PATH(xmlrpc,,XMLRPC_SHARED_LIBADD) ++ PHP_ADD_LIBRARY_WITH_PATH(xmlrpc-epi,,XMLRPC_SHARED_LIBADD) + PHP_NEW_EXTENSION(xmlrpc,xmlrpc-epi-php.c, $ext_shared) + PHP_SUBST(XMLRPC_SHARED_LIBADD) + XMLRPC_MODULE_TYPE=external diff --git a/php-5.3.8-bdb-5.2.diff b/php-5.3.8-bdb-5.2.diff new file mode 100644 index 0000000..a4e9619 --- /dev/null +++ b/php-5.3.8-bdb-5.2.diff @@ -0,0 +1,11 @@ +--- php-7.0.3/ext/dba/config.m4.bdb-5.2.droplet 2016-02-04 13:33:43.649310979 +0100 ++++ php-7.0.3/ext/dba/config.m4 2016-02-04 13:34:20.573508825 +0100 +@@ -366,7 +366,7 @@ if test "$PHP_DB4" != "no"; then + break + fi + done +- PHP_DBA_DB_CHECK(4, db-5.3 db-5.1 db-5.0 db-4.8 db-4.7 db-4.6 db-4.5 db-4.4 db-4.3 db-4.2 db-4.1 db-4.0 db-4 db4 db, [(void)db_create((DB**)0, (DB_ENV*)0, 0)]) ++ PHP_DBA_DB_CHECK(4, db-6.1 db-6.0 db-5.3 db-5.2 db-5.1 db-5.0 db-4.8 db-4.7 db-4.6 db-4.5 db-4.4 db-4.3 db-4.2 db-4.1 db-4.0 db-4 db4 db, [(void)db_create((DB**)0, (DB_ENV*)0, 0)]) + fi + PHP_DBA_STD_RESULT(db4,Berkeley DB4) + diff --git a/php-5.3.x-fpm-0.6.5-mdv_conf.diff b/php-5.3.x-fpm-0.6.5-mdv_conf.diff new file mode 100644 index 0000000..7e96f6e --- /dev/null +++ b/php-5.3.x-fpm-0.6.5-mdv_conf.diff @@ -0,0 +1,83 @@ +--- php-7.0.1/sapi/fpm/php-fpm.conf.in.fpmmdv.droplet 2015-12-16 11:41:54.000000000 +0100 ++++ php-7.0.1/sapi/fpm/php-fpm.conf.in 2015-12-29 00:32:32.641437818 +0100 +@@ -14,14 +14,14 @@ + ; Pid file + ; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@ + ; Default Value: none +-;pid = run/php-fpm.pid ++pid = /run/php-fpm/php-fpm.pid + + ; Error log file + ; If it's set to "syslog", log is sent to syslogd instead of being written + ; into a local file. + ; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@ + ; Default Value: log/php-fpm.log +-;error_log = log/php-fpm.log ++error_log = /var/log/php-fpm.log + + ; syslog_facility is used to specify what type of program is logging the + ; message. This lets syslogd specify that messages from different facilities +--- php-7.0.1/sapi/fpm/www.conf.in.fpmmdv.droplet 2015-12-29 00:33:15.685147449 +0100 ++++ php-7.0.1/sapi/fpm/www.conf.in 2015-12-29 00:34:56.491559636 +0100 +@@ -33,7 +33,7 @@ group = @php_fpm_group@ + ; (IPv6 and IPv4-mapped) on a specific port; + ; '/path/to/unix/socket' - to listen on a unix socket. + ; Note: This value is mandatory. +-listen = 127.0.0.1:9000 ++listen = /run/php-fpm/php-fpm.sock + + ; Set listen(2) backlog. + ; Default Value: 511 (-1 on FreeBSD and OpenBSD) +@@ -104,22 +104,22 @@ pm = dynamic + ; forget to tweak pm.* to fit your needs. + ; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' + ; Note: This value is mandatory. +-pm.max_children = 5 ++pm.max_children = 35 + + ; The number of child processes created on startup. + ; Note: Used only when pm is set to 'dynamic' + ; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 +-pm.start_servers = 2 ++pm.start_servers = 20 + + ; The desired minimum number of idle server processes. + ; Note: Used only when pm is set to 'dynamic' + ; Note: Mandatory when pm is set to 'dynamic' +-pm.min_spare_servers = 1 ++pm.min_spare_servers = 5 + + ; The desired maximum number of idle server processes. + ; Note: Used only when pm is set to 'dynamic' + ; Note: Mandatory when pm is set to 'dynamic' +-pm.max_spare_servers = 3 ++pm.max_spare_servers = 35 + + ; The number of seconds after which an idle process will be killed. + ; Note: Used only when pm is set to 'ondemand' +@@ -130,7 +130,7 @@ pm.max_spare_servers = 3 + ; This can be useful to work around memory leaks in 3rd party libraries. For + ; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. + ; Default Value: 0 +-;pm.max_requests = 500 ++pm.max_requests = 10000 + + ; The URI to view the FPM status page. If this value is not set, no URI will be + ; recognized as a status page. It shows the following informations: +@@ -314,7 +314,7 @@ pm.max_spare_servers = 3 + ; The log file for slow requests + ; Default Value: not set + ; Note: slowlog is mandatory if request_slowlog_timeout is set +-;slowlog = log/$pool.log.slow ++slowlog = /var/log/$pool.log.slow + + ; The timeout for serving a single request after which a PHP backtrace will be + ; dumped to the 'slowlog' file. A value of '0s' means 'off'. +@@ -386,6 +386,7 @@ pm.max_spare_servers = 3 + ;env[TMP] = /tmp + ;env[TMPDIR] = /tmp + ;env[TEMP] = /tmp ++env[PATH] = $PATH + + ; Additional php.ini defines, specific to this pool of workers. These settings + ; overwrite the values previously defined in the php.ini. The directives are the diff --git a/php-5.3.x-fpm-0.6.5-shared.diff b/php-5.3.x-fpm-0.6.5-shared.diff new file mode 100644 index 0000000..efe078a --- /dev/null +++ b/php-5.3.x-fpm-0.6.5-shared.diff @@ -0,0 +1,21 @@ +--- php-7.0.1/sapi/fpm/config.m4.shared-fpm.droplet 2015-12-29 00:22:54.122668064 +0100 ++++ php-7.0.1/sapi/fpm/config.m4 2015-12-29 00:25:26.130145446 +0100 +@@ -718,7 +718,7 @@ if test "$PHP_FPM" != "no"; then + BUILD_FPM="\$(CC) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(NATIVE_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_BINARY_OBJS:.lo=.o) \$(PHP_FASTCGI_OBJS:.lo=.o) \$(PHP_FPM_OBJS:.lo=.o) \$(PHP_FRAMEWORKS) \$(EXTRA_LIBS) \$(FPM_EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_FPM_PATH)" + ;; + *) +- BUILD_FPM="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_FASTCGI_OBJS) \$(PHP_FPM_OBJS) \$(EXTRA_LIBS) \$(FPM_EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_FPM_PATH)" ++ BUILD_FPM="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) libphp\$(PHP_MAJOR_VERSION)_common.la \$(PHP_BINARY_OBJS) \$(PHP_FASTCGI_OBJS) \$(PHP_FPM_OBJS) \$(EXTRA_LIBS) \$(FPM_EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_FPM_PATH)" + ;; + esac + +--- php-7.0.1/sapi/fpm/Makefile.frag.shared-fpm.droplet 2015-12-29 00:22:54.122668064 +0100 ++++ php-7.0.1/sapi/fpm/Makefile.frag 2015-12-29 00:26:16.331407285 +0100 +@@ -1,6 +1,6 @@ + fpm: $(SAPI_FPM_PATH) + +-$(SAPI_FPM_PATH): $(PHP_GLOBAL_OBJS) $(PHP_BINARY_OBJS) $(PHP_FASTCGI_OBJS) $(PHP_FPM_OBJS) ++$(SAPI_FPM_PATH): libphp$(PHP_MAJOR_VERSION)_common.la $(PHP_BINARY_OBJS) $(PHP_FASTCGI_OBJS) $(PHP_FPM_OBJS) + $(BUILD_FPM) + + install-fpm: $(SAPI_FPM_PATH) diff --git a/php-5.5.6-db-6.0.patch b/php-5.5.6-db-6.0.patch new file mode 100644 index 0000000..ef2788c --- /dev/null +++ b/php-5.5.6-db-6.0.patch @@ -0,0 +1,12 @@ +diff -up php-7.3.0RC1/ext/dba/config.m4.db60~ php-7.3.0RC1/ext/dba/config.m4 +--- php-7.3.0RC1/ext/dba/config.m4.db60~ 2018-09-13 22:48:02.122654318 +0200 ++++ php-7.3.0RC1/ext/dba/config.m4 2018-09-13 22:48:47.222861935 +0200 +@@ -277,7 +277,7 @@ AC_DEFUN([PHP_DBA_DB_CHECK],[ + ]])],[ + AC_EGREP_CPP(yes,[ + #include "$THIS_INCLUDE" +-#if DB_VERSION_MAJOR == $1 || ($1 == 4 && DB_VERSION_MAJOR == 5) ++#if DB_VERSION_MAJOR == $1 || ($1 == 4 && DB_VERSION_MAJOR >= 5) + yes + #endif + ],[ diff --git a/php-7.0.1-clang-warnings.patch b/php-7.0.1-clang-warnings.patch new file mode 100644 index 0000000..4fe7490 --- /dev/null +++ b/php-7.0.1-clang-warnings.patch @@ -0,0 +1,11 @@ +--- php-7.0.1/Zend/zend_portability.h.omv~ 2015-12-29 03:38:23.186894098 +0100 ++++ php-7.0.1/Zend/zend_portability.h 2015-12-29 03:38:48.437952703 +0100 +@@ -183,7 +183,7 @@ char *alloca(); + # define ZEND_ATTRIBUTE_MALLOC + #endif + +-#if ZEND_GCC_VERSION >= 4003 || __has_attribute(alloc_size) ++#if (ZEND_GCC_VERSION >= 4003 && !defined(__clang__)) || __has_attribute(alloc_size) + # define ZEND_ATTRIBUTE_ALLOC_SIZE(X) __attribute__ ((alloc_size(X))) + # define ZEND_ATTRIBUTE_ALLOC_SIZE2(X,Y) __attribute__ ((alloc_size(X,Y))) + #else diff --git a/php-7.2.0-visibility.patch b/php-7.2.0-visibility.patch new file mode 100644 index 0000000..bab08e0 --- /dev/null +++ b/php-7.2.0-visibility.patch @@ -0,0 +1,97 @@ +--- php-7.2.0/ext/date/php_date.c.omv~ 2017-11-29 13:24:17.183364915 +0100 ++++ php-7.2.0/ext/date/php_date.c 2017-11-29 13:24:28.970391388 +0100 +@@ -664,7 +664,7 @@ static zval *date_period_read_property(z + static void date_period_write_property(zval *object, zval *member, zval *value, void **cache_slot); + + /* {{{ Module struct */ +-zend_module_entry date_module_entry = { ++__attribute__((visibility("default"))) zend_module_entry date_module_entry = { + STANDARD_MODULE_HEADER_EX, + NULL, + NULL, +--- php-7.2.0/ext/libxml/libxml.c.omv~ 2017-11-29 13:29:29.380067310 +0100 ++++ php-7.2.0/ext/libxml/libxml.c 2017-11-29 13:29:45.521103681 +0100 +@@ -135,7 +135,7 @@ static const zend_function_entry libxml_ + PHP_FE_END + }; + +-zend_module_entry libxml_module_entry = { ++__attribute__((visibility("default"))) zend_module_entry libxml_module_entry = { + STANDARD_MODULE_HEADER, + "libxml", /* extension name */ + libxml_functions, /* extension function list */ +--- php-7.2.0/ext/pcre/php_pcre.c.omv~ 2017-11-29 13:29:59.452135074 +0100 ++++ php-7.2.0/ext/pcre/php_pcre.c 2017-11-29 13:30:04.050145437 +0100 +@@ -2715,7 +2715,7 @@ static const zend_function_entry pcre_fu + PHP_FE_END + }; + +-zend_module_entry pcre_module_entry = { ++__attribute__((visibility("default"))) zend_module_entry pcre_module_entry = { + STANDARD_MODULE_HEADER, + "pcre", + pcre_functions, +--- php-7.2.0/ext/reflection/php_reflection.c.omv~ 2017-11-29 13:30:13.372166447 +0100 ++++ php-7.2.0/ext/reflection/php_reflection.c 2017-11-29 13:30:34.731214591 +0100 +@@ -6830,7 +6830,7 @@ PHP_MINFO_FUNCTION(reflection) /* {{{ */ + php_info_print_table_end(); + } /* }}} */ + +-zend_module_entry reflection_module_entry = { /* {{{ */ ++__attribute__((visibility("default"))) zend_module_entry reflection_module_entry = { /* {{{ */ + STANDARD_MODULE_HEADER, + "Reflection", + reflection_ext_functions, +--- php-7.2.0/ext/simplexml/simplexml.c.omv~ 2017-11-29 13:31:10.373294945 +0100 ++++ php-7.2.0/ext/simplexml/simplexml.c 2017-11-29 13:31:14.562304390 +0100 +@@ -2676,7 +2676,7 @@ static const zend_module_dep simplexml_d + }; + /* }}} */ + +-zend_module_entry simplexml_module_entry = { /* {{{ */ ++__attribute__((visibility("default"))) zend_module_entry simplexml_module_entry = { /* {{{ */ + STANDARD_MODULE_HEADER_EX, NULL, + simplexml_deps, + "SimpleXML", +--- php-7.2.0/ext/spl/php_spl.c.omv~ 2017-11-29 13:30:51.564252538 +0100 ++++ php-7.2.0/ext/spl/php_spl.c 2017-11-29 13:31:00.361272372 +0100 +@@ -1015,7 +1015,7 @@ PHP_RSHUTDOWN_FUNCTION(spl) /* {{{ */ + + /* {{{ spl_module_entry + */ +-zend_module_entry spl_module_entry = { ++__attribute__((visibility("default"))) zend_module_entry spl_module_entry = { + STANDARD_MODULE_HEADER, + "SPL", + spl_functions, +--- php-7.2.0/ext/standard/basic_functions.c.omv~ 2017-11-29 13:31:35.333351228 +0100 ++++ php-7.2.0/ext/standard/basic_functions.c 2017-11-29 13:31:39.891361507 +0100 +@@ -3422,7 +3422,7 @@ static const zend_module_dep standard_de + }; + /* }}} */ + +-zend_module_entry basic_functions_module = { /* {{{ */ ++__attribute__((visibility("default"))) zend_module_entry basic_functions_module = { /* {{{ */ + STANDARD_MODULE_HEADER_EX, + NULL, + standard_deps, +--- php-7.2.0/Zend/zend_signal.c.omv~ 2017-11-29 13:31:58.788404124 +0100 ++++ php-7.2.0/Zend/zend_signal.c 2017-11-29 13:32:19.265450309 +0100 +@@ -377,7 +377,7 @@ static void zend_signal_globals_ctor(zen + } + /* }}} */ + +-void zend_signal_init(void) /* {{{ */ ++__attribute__((visibility("default"))) void zend_signal_init(void) /* {{{ */ + { + int signo; + struct sigaction sa; +@@ -399,7 +399,7 @@ void zend_signal_init(void) /* {{{ */ + + /* {{{ zend_signal_startup + * alloc zend signal globals */ +-void zend_signal_startup(void) ++__attribute__((visibility("default"))) void zend_signal_startup(void) + { + + #ifdef ZTS diff --git a/php-7.2.5-freetype-2.9.1.patch b/php-7.2.5-freetype-2.9.1.patch new file mode 100644 index 0000000..c5387a6 --- /dev/null +++ b/php-7.2.5-freetype-2.9.1.patch @@ -0,0 +1,27 @@ +diff -up php-7.2.5/ext/gd/config.m4.omv~ php-7.2.5/ext/gd/config.m4 +--- php-7.2.5/ext/gd/config.m4.omv~ 2018-05-09 00:44:24.799260377 +0200 ++++ php-7.2.5/ext/gd/config.m4 2018-05-09 00:45:22.108945925 +0200 +@@ -185,21 +185,8 @@ AC_DEFUN([PHP_GD_XPM],[ + + 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 +- fi +- done +- +- if test -z "$FREETYPE2_DIR"; then +- AC_MSG_ERROR([freetype-config not found.]) +- fi +- +- FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags` +- FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs` ++ FREETYPE2_CFLAGS=`pkg-config --cflags freetype2` ++ FREETYPE2_LIBS=`pkg-config --libs freetype2` + + PHP_EVAL_INCLINE($FREETYPE2_CFLAGS) + PHP_EVAL_LIBLINE($FREETYPE2_LIBS, GD_SHARED_LIBADD) diff --git a/php-7.3.0rc1-compile.patch b/php-7.3.0rc1-compile.patch new file mode 100644 index 0000000..a4b40ec --- /dev/null +++ b/php-7.3.0rc1-compile.patch @@ -0,0 +1,15 @@ +diff -up php-7.3.0RC1/sapi/apache2handler/php_functions.c.omv~ php-7.3.0RC1/sapi/apache2handler/php_functions.c +--- php-7.3.0RC1/sapi/apache2handler/php_functions.c.omv~ 2018-09-13 23:54:45.499115056 +0200 ++++ php-7.3.0RC1/sapi/apache2handler/php_functions.c 2018-09-13 23:55:15.453241974 +0200 +@@ -225,10 +225,7 @@ PHP_FUNCTION(apache_get_output_filters) + WRONG_PARAM_COUNT; + } + +- if(array_init(return_value) != SUCCESS) +- { +- RETURN_NULL(); +- } ++ array_init(return_value); + + ctx = SG(server_context); + diff --git a/php-bug43221.diff b/php-bug43221.diff new file mode 100644 index 0000000..6598de8 --- /dev/null +++ b/php-bug43221.diff @@ -0,0 +1,17 @@ +diff -u -3 -p -r1.151.2.22.2.35 -r1.151.2.22.2.36 +--- ext/simplexml/simplexml.c 31 Jul 2007 15:40:49 -0000 1.151.2.22.2.35 ++++ ext/simplexml/simplexml.c 12 Nov 2007 18:59:26 -0000 1.151.2.22.2.36 +@@ -1635,6 +1635,13 @@ SXE_METHOD(addAttribute) + + localname = xmlSplitQName2((xmlChar *)qname, &prefix); + if (localname == NULL) { ++ if (nsuri_len > 0) { ++ if (prefix != NULL) { ++ xmlFree(prefix); ++ } ++ php_error_docref(NULL, E_WARNING, "Attribute requires prefix for namespace"); ++ return; ++ } + localname = xmlStrdup((xmlChar *)qname); + } + diff --git a/php-bug43589.diff b/php-bug43589.diff new file mode 100644 index 0000000..b333ef3 --- /dev/null +++ b/php-bug43589.diff @@ -0,0 +1,11 @@ +--- ext/bz2/bz2_filter.c 9 Aug 2007 23:27:22 -0000 1.3.2.2.2.5 ++++ ext/bz2/bz2_filter.c 16 Dec 2007 17:22:31 -0000 1.3.2.2.2.6 +@@ -132,6 +132,8 @@ static php_stream_filter_status_t php_bz + data->strm.avail_out = data->outbuf_len; + data->strm.next_out = data->outbuf; + exit_status = PSFS_PASS_ON; ++ } else if (status == BZ_OK) { ++ break; + } + } + } diff --git a/php-cxx.diff b/php-cxx.diff new file mode 100644 index 0000000..c084ba0 --- /dev/null +++ b/php-cxx.diff @@ -0,0 +1,18 @@ +--- php-5.4.1RC2/aclocal.m4.cxx.droplet 2012-04-17 21:11:51.000000000 +0200 ++++ php-5.4.1RC2/aclocal.m4 2012-04-17 21:12:43.372215983 +0200 +@@ -758,14 +758,7 @@ AC_DEFUN([PHP_BUILD_THREAD_SAFE],[ + dnl + dnl PHP_REQUIRE_CXX + dnl +-AC_DEFUN([PHP_REQUIRE_CXX],[ +- if test -z "$php_cxx_done"; then +- AC_PROG_CXX +- AC_PROG_CXXCPP +- PHP_ADD_LIBRARY(stdc++) +- php_cxx_done=yes +- fi +-]) ++AC_DEFUN([PHP_REQUIRE_CXX]) + + dnl + dnl PHP_BUILD_SHARED diff --git a/php-dba-link.patch b/php-dba-link.patch new file mode 100644 index 0000000..2450053 --- /dev/null +++ b/php-dba-link.patch @@ -0,0 +1,12 @@ +diff -up php-7.3.0RC1/ext/dba/config.m4.dba-link.droplet php-7.3.0RC1/ext/dba/config.m4 +--- php-7.3.0RC1/ext/dba/config.m4.dba-link.droplet 2018-09-13 22:49:02.287930835 +0200 ++++ php-7.3.0RC1/ext/dba/config.m4 2018-09-13 23:19:59.940775252 +0200 +@@ -282,6 +282,8 @@ AC_DEFUN([PHP_DBA_DB_CHECK],[ + #endif + ],[ + THIS_LIBS=$LIB ++ LDFLAGS=$old_LDFLAGS ++ LIBS=$old_LIBS + lib_found=1 + ]) + ],[]) diff --git a/php-dlopen.diff b/php-dlopen.diff new file mode 100644 index 0000000..e01ed91 --- /dev/null +++ b/php-dlopen.diff @@ -0,0 +1,17 @@ +--- php-7.1.3/Zend/zend_portability.h.dlopen.droplet 2017-03-15 01:29:44.168736658 +0100 ++++ php-7.1.3/Zend/zend_portability.h 2017-03-15 01:30:29.179707854 +0100 +@@ -146,11 +146,11 @@ + # endif + + # if defined(RTLD_GROUP) && defined(RTLD_WORLD) && defined(RTLD_PARENT) +-# define DL_LOAD(libname) dlopen(libname, RTLD_LAZY | RTLD_GLOBAL | RTLD_GROUP | RTLD_WORLD | RTLD_PARENT) ++# define DL_LOAD(libname) dlopen(libname, RTLD_NOW | RTLD_GLOBAL | RTLD_GROUP | RTLD_WORLD | RTLD_PARENT) + # elif defined(RTLD_DEEPBIND) && !defined(__SANITIZE_ADDRESS__) +-# define DL_LOAD(libname) dlopen(libname, RTLD_LAZY | RTLD_GLOBAL | RTLD_DEEPBIND) ++# define DL_LOAD(libname) dlopen(libname, RTLD_NOW | RTLD_GLOBAL | RTLD_DEEPBIND) + # else +-# define DL_LOAD(libname) dlopen(libname, RTLD_LAZY | RTLD_GLOBAL) ++# define DL_LOAD(libname) dlopen(libname, RTLD_NOW | RTLD_GLOBAL) + # endif + # define DL_UNLOAD dlclose + # if defined(DLSYM_NEEDS_UNDERSCORE) diff --git a/php-exif_nesting_level.diff b/php-exif_nesting_level.diff new file mode 100644 index 0000000..78c51af --- /dev/null +++ b/php-exif_nesting_level.diff @@ -0,0 +1,11 @@ +--- php-7.2.0/ext/exif/exif.c.exif_nesting_level.droplet 2017-11-29 12:55:33.396697427 +0100 ++++ php-7.2.0/ext/exif/exif.c 2017-11-29 12:55:51.777730539 +0100 +@@ -89,7 +89,7 @@ typedef unsigned char uchar; + + #define EFREE_IF(ptr) if (ptr) efree(ptr) + +-#define MAX_IFD_NESTING_LEVEL 150 ++#define MAX_IFD_NESTING_LEVEL 250 + + /* {{{ arginfo */ + ZEND_BEGIN_ARG_INFO(arginfo_exif_tagname, 0) diff --git a/php-filter-shared.diff b/php-filter-shared.diff new file mode 100644 index 0000000..c8bdcdf --- /dev/null +++ b/php-filter-shared.diff @@ -0,0 +1,14 @@ +--- ext/filter/config.m4 2006-12-06 00:51:30.000000000 +0100 ++++ ext/filter/config.m4.oden 2007-06-20 12:26:17.000000000 +0200 +@@ -10,10 +10,7 @@ + if test "$PHP_FILTER" != "no"; then + + dnl Check if configure is the PHP core configure +- if test -n "$PHP_VERSION"; then +- dnl This extension can not be build as shared when in PHP core +- ext_shared=no +- else ++ if test -z "$PHP_VERSION"; then + dnl This is PECL build, check if bundled PCRE library is used + old_CPPFLAGS=$CPPFLAGS + CPPFLAGS=$INCLUDES diff --git a/php-fpm-tmpfiles.conf b/php-fpm-tmpfiles.conf new file mode 100644 index 0000000..37c8c46 --- /dev/null +++ b/php-fpm-tmpfiles.conf @@ -0,0 +1 @@ +d /run/php-fpm 0711 apache apache diff --git a/php-fpm.logrotate b/php-fpm.logrotate new file mode 100644 index 0000000..fbeae5d --- /dev/null +++ b/php-fpm.logrotate @@ -0,0 +1,11 @@ +/var/log/php-fpm/php-fpm.log /var/log/php-fpm/php-fpm-slow.log { + rotate 5 + monthly + missingok + create 640 apache apache + notifempty + nocompress + postrotate + /bin/kill -SIGUSR1 `cat /run/php-fpm/php-fpm.pid 2>/dev/null` > /dev/null 2>&1 || : + endscript +} diff --git a/php-fpm.service b/php-fpm.service new file mode 100644 index 0000000..546a7ff --- /dev/null +++ b/php-fpm.service @@ -0,0 +1,13 @@ +[Unit] +Description=The PHP FastCGI Process Manager +After=syslog.target network.target + +[Service] +Type=forking +PIDFile=/run/php-fpm/php-fpm.pid +EnvironmentFile=/etc/sysconfig/php-fpm +ExecStart=/usr/sbin/php-fpm --daemonize --fpm-config /etc/php-fpm.conf $PHP_FPM_OPTIONS +ExecReload=/bin/kill -USR2 $MAINPID + +[Install] +WantedBy=multi-user.target diff --git a/php-fpm.sysconf b/php-fpm.sysconf new file mode 100644 index 0000000..1a77771 --- /dev/null +++ b/php-fpm.sysconf @@ -0,0 +1,3 @@ +# pass additional options here +PHP_FPM_OPTIONS="" + diff --git a/php-imap-annotation+status-current.diff b/php-imap-annotation+status-current.diff new file mode 100644 index 0000000..acc6291 --- /dev/null +++ b/php-imap-annotation+status-current.diff @@ -0,0 +1,302 @@ +diff -Naurp php-5.3.4RC1/ext/imap/php_imap.c php-5.3.4RC1.oden/ext/imap/php_imap.c +--- php-5.3.4RC1/ext/imap/php_imap.c 2010-11-18 16:22:22.000000000 +0100 ++++ php-5.3.4RC1.oden/ext/imap/php_imap.c 2010-11-22 10:01:42.538863104 +0100 +@@ -164,6 +164,22 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_geta + ZEND_ARG_INFO(0, mailbox) + ZEND_END_ARG_INFO() + #endif ++#if defined(HAVE_IMAP2005) ++ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_setannotation, 0, 0, 5) ++ ZEND_ARG_INFO(0, stream_id) ++ ZEND_ARG_INFO(0, mailbox) ++ ZEND_ARG_INFO(0, entry) ++ ZEND_ARG_INFO(0, attr) ++ ZEND_ARG_INFO(0, value) ++ZEND_END_ARG_INFO() ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_getannotation, 0, 0, 4) ++ ZEND_ARG_INFO(0, stream_id) ++ ZEND_ARG_INFO(0, mailbox) ++ ZEND_ARG_INFO(0, entry) ++ ZEND_ARG_INFO(0, attr) ++ZEND_END_ARG_INFO() ++#endif + + ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_expunge, 0, 0, 1) + ZEND_ARG_INFO(0, stream_id) +@@ -408,6 +424,11 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_stat + ZEND_ARG_INFO(0, options) + ZEND_END_ARG_INFO() + ++ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_status_current, 0, 0, 2) ++ ZEND_ARG_INFO(0, stream_id) ++ ZEND_ARG_INFO(0, options) ++ZEND_END_ARG_INFO() ++ + ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_bodystruct, 0, 0, 3) + ZEND_ARG_INFO(0, stream_id) + ZEND_ARG_INFO(0, msg_no) +@@ -507,6 +528,7 @@ const zend_function_entry imap_functions + PHP_FE(imap_binary, arginfo_imap_binary) + PHP_FE(imap_utf8, arginfo_imap_utf8) + PHP_FE(imap_status, arginfo_imap_status) ++ PHP_FE(imap_status_current, arginfo_imap_status_current) + PHP_FE(imap_mailboxmsginfo, arginfo_imap_mailboxmsginfo) + PHP_FE(imap_setflag_full, arginfo_imap_setflag_full) + PHP_FE(imap_clearflag_full, arginfo_imap_clearflag_full) +@@ -537,6 +559,10 @@ const zend_function_entry imap_functions + PHP_FE(imap_setacl, arginfo_imap_setacl) + PHP_FE(imap_getacl, arginfo_imap_getacl) + #endif ++#if defined(HAVE_IMAP2005) ++ PHP_FE(imap_setannotation, arginfo_imap_setannotation) ++ PHP_FE(imap_getannotation, arginfo_imap_getannotation) ++#endif + + PHP_FE(imap_mail, arginfo_imap_mail) + +@@ -798,6 +824,30 @@ void mail_getacl(MAILSTREAM *stream, cha + /* }}} */ + #endif + ++#if defined(HAVE_IMAP2005) ++/* {{{ mail_getannotation ++ * ++ * Mail GET_ANNOTATION callback ++ * Called via the mail_parameter function in c-client:src/c-client/mail.c ++ */ ++void mail_getannotation(MAILSTREAM *stream, ANNOTATION *alist) ++{ ++ ANNOTATION_VALUES *cur; ++ ++ TSRMLS_FETCH(); ++ ++ /* walk through the ANNOTATION_VALUES */ ++ ++ for(cur = alist->values; cur; cur = cur->next) { ++ if (cur->value) ++ add_assoc_stringl(IMAPG(imap_annotation_list), cur->attr, cur->value, strlen(cur->value), 1); ++ else ++ add_assoc_stringl(IMAPG(imap_annotation_list), cur->attr, "", 0, 1); ++ } ++} ++/* }}} */ ++#endif ++ + /* {{{ PHP_GINIT_FUNCTION + */ + static PHP_GINIT_FUNCTION(imap) +@@ -823,6 +873,7 @@ static PHP_GINIT_FUNCTION(imap) + #if defined(HAVE_IMAP2000) || defined(HAVE_IMAP2001) + imap_globals->quota_return = NIL; + imap_globals->imap_acl_list = NIL; ++ imap_globals->imap_annotation_list = NIL; + #endif + imap_globals->gets_stream = NIL; + } +@@ -1547,7 +1598,119 @@ PHP_FUNCTION(imap_getacl) + } + /* }}} */ + #endif /* HAVE_IMAP2000 || HAVE_IMAP2001 */ ++ ++#if defined(HAVE_IMAP2005) ++ ++/* {{{ proto bool imap_setannotation(resource stream_id, string mailbox, string entry, string attr, string value) ++ Sets an annotation for a given mailbox */ ++PHP_FUNCTION(imap_setannotation) ++{ ++ zval **streamind, **mailbox, **entry, **attr, **value; ++ pils *imap_le_struct; ++ long ret; ++ ++ // TODO: Use zend_parse_parameters here ++ if (ZEND_NUM_ARGS() != 5 || zend_get_parameters_ex(5, &streamind, &mailbox, &entry, &attr, &value) == FAILURE) { ++ ZEND_WRONG_PARAM_COUNT(); ++ } ++ ++ ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); ++ ++ convert_to_string_ex(mailbox); ++ convert_to_string_ex(entry); ++ convert_to_string_ex(attr); ++ convert_to_string_ex(value); ++ ++ // create annotation object ++ ANNOTATION *annotation = mail_newannotation(); ++ if (!annotation) ++ RETURN_FALSE; ++ annotation->values = mail_newannotationvalue(); ++ if (!annotation->values) { ++ mail_free_annotation(&annotation); ++ RETURN_FALSE; ++ } ++ ++ // fill in annotation values ++ annotation->mbox = Z_STRVAL_P(*mailbox); ++ annotation->entry = Z_STRVAL_P(*entry); ++ annotation->values->attr = Z_STRVAL_P(*attr); ++ annotation->values->value = Z_STRVAL_P(*value); ++ ++ ret = imap_setannotation(imap_le_struct->imap_stream, annotation); ++ ++ // make sure mail_free_annotation doesn't free our variables ++ annotation->mbox = NULL; ++ annotation->entry = NULL; ++ annotation->values->attr = NULL; ++ annotation->values->value = NULL; ++ mail_free_annotation(&annotation); ++ ++ RETURN_BOOL(ret); ++} ++/* }}} */ ++ ++/* {{{ proto array imap_getannotation(resource stream_id, string mailbox, string entry, string attr) ++ Gets the ACL for a given mailbox */ ++PHP_FUNCTION(imap_getannotation) ++{ ++ zval **streamind, **mailbox, **entry, **attr; ++ pils *imap_le_struct; ++ long ret; ++ ++ if(ZEND_NUM_ARGS() != 4 || zend_get_parameters_ex(4, &streamind, &mailbox, &entry, &attr) == FAILURE) { ++ ZEND_WRONG_PARAM_COUNT(); ++ } + ++ ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); ++ ++ convert_to_string_ex(mailbox); ++ convert_to_string_ex(entry); ++ convert_to_string_ex(attr); ++ ++ /* initializing the special array for the return values */ ++ if (array_init(return_value) == FAILURE) { ++ RETURN_FALSE; ++ } ++ ++ // fillup calling parameters ++ STRINGLIST *entries = mail_newstringlist(); ++ if (!entries) ++ RETURN_FALSE; ++ ++ STRINGLIST *cur = entries; ++ cur->text.data = (unsigned char *)cpystr(Z_STRVAL_P(*entry)); ++ cur->text.size = Z_STRLEN_P(*entry); ++ cur->next = NIL; ++ ++ STRINGLIST *attributes = mail_newstringlist(); ++ if (!attributes) ++ RETURN_FALSE; ++ cur = attributes; ++ cur->text.data = (unsigned char *)cpystr (Z_STRVAL_P(*attr)); ++ cur->text.size = Z_STRLEN_P(*attr); ++ cur->next = NIL; ++ ++ IMAPG(imap_annotation_list) = return_value; ++ ++ /* set the callback for the GET_ANNOTATION function */ ++ mail_parameters(NIL, SET_ANNOTATION, (void *) mail_getannotation); ++ ret = imap_getannotation(imap_le_struct->imap_stream, Z_STRVAL_P(+mailbox), entries, attributes); ++ ++ mail_free_stringlist(&entries); ++ mail_free_stringlist(&attributes); ++ ++ if (!ret) { ++ zval_dtor(return_value); ++ RETURN_FALSE; ++ } ++ ++ IMAPG(imap_annotation_list) = NIL; ++} ++/* }}} */ ++ ++#endif /* HAVE_IMAP2005 */ ++ + /* {{{ proto bool imap_expunge(resource stream_id) + Permanently delete all messages marked for deletion */ + PHP_FUNCTION(imap_expunge) +@@ -3190,6 +3353,42 @@ PHP_FUNCTION(imap_msgno) + } + /* }}} */ + ++/* {{{ proto object imap_status_current(resource stream_id, int options) ++ Get (cached) status info from current mailbox */ ++PHP_FUNCTION(imap_status_current) ++{ ++ zval **streamind, **pflags; ++ pils *imap_le_struct; ++ long flags = 0L; ++ ++ if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &streamind, &pflags) == FAILURE) { ++ ZEND_WRONG_PARAM_COUNT(); ++ } ++ ++ ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); ++ ++ convert_to_long_ex(pflags); ++ flags = Z_LVAL_PP(pflags); ++ ++ if (object_init(return_value) == FAILURE) { ++ RETURN_FALSE; ++ } ++ ++ if (flags & SA_MESSAGES) { ++ add_property_long(return_value, "messages", imap_le_struct->imap_stream->nmsgs); ++ } ++ if (flags & SA_RECENT) { ++ add_property_long(return_value, "recent", imap_le_struct->imap_stream->recent); ++ } ++ if (flags & SA_UIDNEXT) { ++ add_property_long(return_value, "uidnext", imap_le_struct->imap_stream->uid_last+1); ++ } ++ if (flags & SA_UIDVALIDITY) { ++ add_property_long(return_value, "uidvalidity", imap_le_struct->imap_stream->uid_validity); ++ } ++} ++/* }}} */ ++ + /* {{{ proto object imap_status(resource stream_id, string mailbox, int options) + Get status info from a mailbox */ + PHP_FUNCTION(imap_status) +diff -Naurp php-5.3.4RC1/ext/imap/php_imap.h php-5.3.4RC1.oden/ext/imap/php_imap.h +--- php-5.3.4RC1/ext/imap/php_imap.h 2010-01-03 10:23:27.000000000 +0100 ++++ php-5.3.4RC1.oden/ext/imap/php_imap.h 2010-11-22 10:01:42.542862889 +0100 +@@ -153,6 +153,7 @@ PHP_FUNCTION(imap_lsub); + PHP_FUNCTION(imap_lsub_full); + PHP_FUNCTION(imap_create); + PHP_FUNCTION(imap_rename); ++PHP_FUNCTION(imap_status_current); + PHP_FUNCTION(imap_status); + PHP_FUNCTION(imap_bodystruct); + PHP_FUNCTION(imap_fetch_overview); +@@ -173,6 +174,9 @@ PHP_FUNCTION(imap_mime_header_decode); + PHP_FUNCTION(imap_thread); + PHP_FUNCTION(imap_timeout); + ++// TODO: Needs fixing in configure in ++#define HAVE_IMAP2005 1 ++ + #if defined(HAVE_IMAP2000) || defined(HAVE_IMAP2001) + PHP_FUNCTION(imap_get_quota); + PHP_FUNCTION(imap_get_quotaroot); +@@ -180,7 +184,10 @@ PHP_FUNCTION(imap_set_quota); + PHP_FUNCTION(imap_setacl); + PHP_FUNCTION(imap_getacl); + #endif +- ++#if defined(HAVE_IMAP2005) ++PHP_FUNCTION(imap_setannotation); ++PHP_FUNCTION(imap_getannotation); ++#endif + + ZEND_BEGIN_MODULE_GLOBALS(imap) + char *imap_user; +@@ -211,6 +218,9 @@ ZEND_BEGIN_MODULE_GLOBALS(imap) + zval **quota_return; + zval *imap_acl_list; + #endif ++#if defined(HAVE_IMAP2005) ++ zval *imap_annotation_list; ++#endif + /* php_stream for php_mail_gets() */ + php_stream *gets_stream; + ZEND_END_MODULE_GLOBALS(imap) diff --git a/php-imap-myrights.diff b/php-imap-myrights.diff new file mode 100644 index 0000000..efec577 --- /dev/null +++ b/php-imap-myrights.diff @@ -0,0 +1,92 @@ +diff -Naurp php-5.3.4RC1/ext/imap/php_imap.c php-5.3.4RC1.oden/ext/imap/php_imap.c +--- php-5.3.4RC1/ext/imap/php_imap.c 2010-11-22 10:39:59.349863220 +0100 ++++ php-5.3.4RC1.oden/ext/imap/php_imap.c 2010-11-22 10:40:14.709956619 +0100 +@@ -163,6 +163,11 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_geta + ZEND_ARG_INFO(0, stream_id) + ZEND_ARG_INFO(0, mailbox) + ZEND_END_ARG_INFO() ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_myrights, 0, 0, 2) ++ ZEND_ARG_INFO(0, stream_id) ++ ZEND_ARG_INFO(0, mailbox) ++ZEND_END_ARG_INFO() + #endif + #if defined(HAVE_IMAP2005) + ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_setannotation, 0, 0, 5) +@@ -558,6 +563,7 @@ const zend_function_entry imap_functions + PHP_FE(imap_set_quota, arginfo_imap_set_quota) + PHP_FE(imap_setacl, arginfo_imap_setacl) + PHP_FE(imap_getacl, arginfo_imap_getacl) ++ PHP_FE(imap_myrights, arginfo_imap_myrights) + #endif + #if defined(HAVE_IMAP2005) + PHP_FE(imap_setannotation, arginfo_imap_setannotation) +@@ -822,6 +828,20 @@ void mail_getacl(MAILSTREAM *stream, cha + } + } + /* }}} */ ++ ++/* {{{ mail_myrights ++ * ++ * Mail MYRIGHTS callback ++ * Called via the mail_parameter function in c-client:src/c-client/mail.c ++ */ ++void mail_myrights(MAILSTREAM *stream, char *mailbox, char *rights) ++{ ++ TSRMLS_FETCH(); ++ ++ ZVAL_STRING(IMAPG(imap_acl_list), rights, 1); ++ ++} ++/* }}} */ + #endif + + #if defined(HAVE_IMAP2005) +@@ -1597,6 +1617,36 @@ PHP_FUNCTION(imap_getacl) + IMAPG(imap_acl_list) = NIL; + } + /* }}} */ ++ ++/* {{{ proto string imap_myrights(resource stream_id, string mailbox) ++ Gets my rights (ACL) for a given mailbox */ ++PHP_FUNCTION(imap_myrights) ++{ ++ zval **streamind, **mailbox; ++ pils *imap_le_struct; ++ ++ if(ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &streamind, &mailbox) == FAILURE) { ++ ZEND_WRONG_PARAM_COUNT(); ++ } ++ ++ ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap); ++ ++ convert_to_string_ex(mailbox); ++ ++ IMAPG(imap_acl_list) = return_value; ++ ++ /* set the callback for the GET_ACL function */ ++ mail_parameters(NIL, SET_MYRIGHTS, (void *) mail_myrights); ++ if(!imap_myrights(imap_le_struct->imap_stream, Z_STRVAL_P(*mailbox))) { ++ php_error(E_WARNING, "c-client imap_myrights failed"); ++ zval_dtor(return_value); ++ RETURN_FALSE; ++ } ++ ++ IMAPG(imap_acl_list) = NIL; ++} ++/* }}} */ ++ + #endif /* HAVE_IMAP2000 || HAVE_IMAP2001 */ + + #if defined(HAVE_IMAP2005) +diff -Naurp php-5.3.4RC1/ext/imap/php_imap.h php-5.3.4RC1.oden/ext/imap/php_imap.h +--- php-5.3.4RC1/ext/imap/php_imap.h 2010-11-22 10:39:59.349863220 +0100 ++++ php-5.3.4RC1.oden/ext/imap/php_imap.h 2010-11-22 10:40:14.709956619 +0100 +@@ -183,6 +183,7 @@ PHP_FUNCTION(imap_get_quotaroot); + PHP_FUNCTION(imap_set_quota); + PHP_FUNCTION(imap_setacl); + PHP_FUNCTION(imap_getacl); ++PHP_FUNCTION(imap_myrights); + #endif + #if defined(HAVE_IMAP2005) + PHP_FUNCTION(imap_setannotation); diff --git a/php-install.diff b/php-install.diff new file mode 100644 index 0000000..3229815 --- /dev/null +++ b/php-install.diff @@ -0,0 +1,11 @@ +--- php-7.0.1/sapi/apache2handler/config.m4.install.droplet 2015-12-29 00:35:28.723395998 +0100 ++++ php-7.0.1/sapi/apache2handler/config.m4 2015-12-29 00:36:14.211182883 +0100 +@@ -67,7 +67,7 @@ if test "$PHP_APXS2" != "no"; then + fi + + APXS_LIBEXECDIR='$(INSTALL_ROOT)'`$APXS -q LIBEXECDIR` +- if test -z `$APXS -q SYSCONFDIR`; then ++ if true; then + INSTALL_IT="\$(mkinstalldirs) '$APXS_LIBEXECDIR' && \ + $APXS -S LIBEXECDIR='$APXS_LIBEXECDIR' \ + -i -n php7" diff --git a/php-libc-client.diff b/php-libc-client.diff new file mode 100644 index 0000000..1ee14c2 --- /dev/null +++ b/php-libc-client.diff @@ -0,0 +1,25 @@ +--- php-5.5.5/ext/imap/config.m4.libc-client-php.droplet 2013-10-19 15:41:59.216630129 +0200 ++++ php-5.5.5/ext/imap/config.m4 2013-10-19 15:43:08.238767234 +0200 +@@ -198,20 +198,14 @@ if test "$PHP_IMAP" != "no"; then + AC_MSG_ERROR(Cannot find rfc822.h. Please check your c-client installation.) + fi + +- if test ! -r "$IMAP_DIR/c-client/libc-client.a" && test -r "$IMAP_DIR/c-client/c-client.a" ; then +- ln -s "$IMAP_DIR/c-client/c-client.a" "$IMAP_DIR/c-client/libc-client.a" >/dev/null 2>&1 +- elif test ! -r "$IMAP_DIR/$PHP_LIBDIR/libc-client.a" && test -r "$IMAP_DIR/$PHP_LIBDIR/c-client.a"; then +- ln -s "$IMAP_DIR/$PHP_LIBDIR/c-client.a" "$IMAP_DIR/$PHP_LIBDIR/libc-client.a" >/dev/null 2>&1 +- fi +- +- for lib in c-client4 c-client imap; do ++ for lib in c-client; do + IMAP_LIB=$lib + IMAP_LIB_CHK($PHP_LIBDIR) + IMAP_LIB_CHK(c-client) + done + + if test -z "$IMAP_LIBDIR"; then +- AC_MSG_ERROR(Cannot find imap library (libc-client.a). Please check your c-client installation.) ++ AC_MSG_ERROR(Cannot find imap library (libc-client.so). Please check your c-client installation.) + fi + + PHP_ADD_INCLUDE($IMAP_INC_DIR) diff --git a/php-libtool.diff b/php-libtool.diff new file mode 100644 index 0000000..fe24108 --- /dev/null +++ b/php-libtool.diff @@ -0,0 +1,37 @@ +--- aclocal.m4 2009-12-22 23:07:46.000000000 +0100 ++++ aclocal.m4.oden 2010-01-02 15:56:37.000000000 +0100 +@@ -3540,6 +3540,20 @@ + rm -rf conftest* + ;; + ++*-*-linux*) ++ # Test if the compiler is 64bit ++ echo 'int i;' > conftest.$ac_ext ++ lt_cv_cc_64bit_output=no ++ if AC_TRY_EVAL(ac_compile); then ++ case `/usr/bin/file conftest.$ac_objext` in ++ *"ELF 64"*) ++ lt_cv_cc_64bit_output=yes ++ ;; ++ esac ++ fi ++ rm -rf conftest* ++ ;; ++ + *-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" +@@ -4587,6 +4601,13 @@ + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + ++ case $host_cpu:$lt_cv_cc_64bit_output in ++ powerpc64:yes | s390x:yes | sparc64:yes | x86_64:yes) ++ sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /usr/X11R6/lib64" ++ sys_lib_search_path_spec="/lib64 /usr/lib64 /usr/local/lib64 /usr/X11R6/lib64" ++ ;; ++ esac ++ + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, diff --git a/php-mail.diff b/php-mail.diff new file mode 100644 index 0000000..0060c2e --- /dev/null +++ b/php-mail.diff @@ -0,0 +1,85 @@ +--- php-7.0.1/ext/standard/mail.c.mail.droplet 2015-12-16 11:42:00.000000000 +0100 ++++ php-7.0.1/ext/standard/mail.c 2015-12-29 00:19:04.678943466 +0100 +@@ -22,6 +22,8 @@ + #include + #include + #include ++#include ++#include + #include "php.h" + #include "ext/standard/info.h" + #include "ext/standard/php_string.h" +@@ -47,6 +49,9 @@ + #include "php_string.h" + #include "exec.h" + ++#include "zend_operators.h" ++#include "zend_globals.h" ++ + #ifdef PHP_WIN32 + #include "win32/sendmail.h" + #endif +@@ -125,6 +130,18 @@ PHP_FUNCTION(mail) + MAIL_ASCIIZ_CHECK(ZSTR_VAL(extra_cmd), ZSTR_LEN(extra_cmd)); + } + ++ /* search for To: and Subject: headers which should be specified in proper mail() parameters, not in additional headers */ ++ if (headers != NULL) { ++ if (strncasecmp(headers, "to:", sizeof("to:") - 1) == 0 || strcasestr(headers, "\nto:")) { ++ php_error_docref(NULL, E_WARNING, "To: headers aren't allowed in the additional_headers parameter. Use $to parameter for that. Mail not sent."); ++ RETURN_FALSE; ++ } ++ if (strncasecmp(headers, "subject:", sizeof("subject:") - 1) == 0 || strcasestr(headers, "\nsubject:")) { ++ php_error_docref(NULL, E_WARNING, "Subject: headers aren't allowed in the additional_headers parameter. Use $subject parameter for that. Mail not sent."); ++ RETURN_FALSE; ++ } ++ } ++ + if (to_len > 0) { + to_r = estrndup(to, to_len); + for (; to_len; to_len--) { +@@ -396,8 +413,42 @@ PHPAPI int php_mail(char *to, char *subj + MAIL_RET(0); + } + #endif +- fprintf(sendmail, "To: %s\n", to); +- fprintf(sendmail, "Subject: %s\n", subject); ++ TSRMLS_FETCH(); ++ ++ if ((to != NULL) && (strlen(to)!=0)) { ++ fprintf(sendmail, "To: %s\n", to); ++ } ++ if ((subject != NULL) && (strlen(subject)!=0)) { ++ fprintf(sendmail, "Subject: %s\n", subject); ++ } ++ ++ if (PG(http_globals)[TRACK_VARS_SERVER]) { ++ zval **remote_addr, **server_name, **server_port, ++ **script_name, **http_user_agent; ++ ++ if (zend_hash_find(PG(http_globals)[TRACK_VARS_SERVER]->value.ht, "REMOTE_ADDR", sizeof("REMOTE_ADDR"), (void **) &remote_addr)==SUCCESS) { ++ convert_to_string_ex(remote_addr); ++ fprintf(sendmail, "HTTP-Posting-Client: %s\n", Z_STRVAL_P(*remote_addr)); ++ } ++ if (zend_hash_find(PG(http_globals)[TRACK_VARS_SERVER]->value.ht, "SERVER_NAME", sizeof("SERVER_NAME"), (void **) &server_name)==SUCCESS) { ++ convert_to_string_ex(server_name); ++ fprintf(sendmail, "HTTP-Posting-URI: %s", Z_STRVAL_P(*server_name)); ++ if (zend_hash_find(PG(http_globals)[TRACK_VARS_SERVER]->value.ht, "SERVER_PORT", sizeof("SERVER_PORT"), (void **) &server_port)==SUCCESS) { ++ convert_to_string_ex(server_port); ++ fprintf(sendmail, ":%s", Z_STRVAL_P(*server_port)); ++ } ++ if (zend_hash_find(PG(http_globals)[TRACK_VARS_SERVER]->value.ht, "SCRIPT_NAME", sizeof("SCRIPT_NAME"), (void **) &script_name)==SUCCESS) { ++ convert_to_string_ex(script_name); ++ fprintf(sendmail, "%s", Z_STRVAL_P(*script_name)); ++ } ++ fprintf(sendmail, "\n"); ++ } ++ if (zend_hash_find(PG(http_globals)[TRACK_VARS_SERVER]->value.ht, "HTTP_USER_AGENT", sizeof("HTTP_USER_AGENT"), (void **) &http_user_agent)==SUCCESS) { ++ convert_to_string_ex(http_user_agent); ++ fprintf(sendmail, "HTTP-Posting-User-Agent: %s\n", Z_STRVAL_P(*http_user_agent)); ++ } ++ } ++ + if (hdr != NULL) { + fprintf(sendmail, "%s\n", hdr); + } diff --git a/php-mariadb-10.3.patch b/php-mariadb-10.3.patch new file mode 100644 index 0000000..c9f027f --- /dev/null +++ b/php-mariadb-10.3.patch @@ -0,0 +1,61 @@ +diff -up php-7.2.4/ext/mysqli/mysqli_api.c.omv~ php-7.2.4/ext/mysqli/mysqli_api.c +--- php-7.2.4/ext/mysqli/mysqli_api.c.omv~ 2018-04-06 21:50:05.183703414 +0200 ++++ php-7.2.4/ext/mysqli/mysqli_api.c 2018-04-06 21:50:16.436829372 +0200 +@@ -616,7 +616,7 @@ PHP_FUNCTION(mysqli_change_user) + size_t user_len, password_len, dbname_len; + zend_ulong rc; + #if !defined(MYSQLI_USE_MYSQLND) && defined(HAVE_MYSQLI_SET_CHARSET) +- const CHARSET_INFO * old_charset; ++ const MY_CHARSET_INFO * old_charset; + #endif + + if (zend_parse_method_parameters(ZEND_NUM_ARGS(), getThis(), "Osss!", &mysql_link, mysqli_link_class_entry, &user, &user_len, &password, &password_len, &dbname, &dbname_len) == FAILURE) { +diff -up php-7.2.4/ext/mysqli/mysqli.c.omv~ php-7.2.4/ext/mysqli/mysqli.c +--- php-7.2.4/ext/mysqli/mysqli.c.omv~ 2018-04-06 21:49:41.782434506 +0200 ++++ php-7.2.4/ext/mysqli/mysqli.c 2018-04-06 21:49:52.708561249 +0200 +@@ -26,6 +26,7 @@ + + #include + ++#include + #include "php.h" + #include "php_ini.h" + #include "ext/standard/info.h" +diff -up php-7.2.4/ext/mysqli/mysqli_nonapi.c.omv~ php-7.2.4/ext/mysqli/mysqli_nonapi.c +--- php-7.2.4/ext/mysqli/mysqli_nonapi.c.omv~ 2018-04-06 21:51:43.217399945 +0200 ++++ php-7.2.4/ext/mysqli/mysqli_nonapi.c 2018-04-06 21:58:52.799445824 +0200 +@@ -263,7 +263,7 @@ void mysqli_common_connect(INTERNAL_FUNC + php_mysqli_set_error(mysql_errno(mysql->mysql), (char *) mysql_error(mysql->mysql)); + + #if !defined(MYSQLI_USE_MYSQLND) +- mysql->mysql->reconnect = MyG(reconnect); ++/* mysql->mysql->reconnect = MyG(reconnect); */ + #endif + + mysql_options(mysql->mysql, MYSQL_OPT_LOCAL_INFILE, (char *)&MyG(allow_local_infile)); +diff -up php-7.2.4/ext/mysqli/mysqli_prop.c.omv~ php-7.2.4/ext/mysqli/mysqli_prop.c +--- php-7.2.4/ext/mysqli/mysqli_prop.c.omv~ 2018-04-06 21:50:25.687842714 +0200 ++++ php-7.2.4/ext/mysqli/mysqli_prop.c 2018-04-06 21:50:35.116768902 +0200 +@@ -23,6 +23,7 @@ + + #include + ++#include + #include "php.h" + #include "php_ini.h" + #include "ext/standard/info.h" +diff -up php-7.2.4/ext/mysqli/php_mysqli_structs.h.omv~ php-7.2.4/ext/mysqli/php_mysqli_structs.h +--- php-7.2.4/ext/mysqli/php_mysqli_structs.h.omv~ 2018-04-06 21:49:12.161080045 +0200 ++++ php-7.2.4/ext/mysqli/php_mysqli_structs.h 2018-04-06 21:58:44.599503172 +0200 +@@ -79,11 +79,7 @@ + #include + #include + #include +-#include +-#include + #include +-#include +-#include + #include "mysqli_libmysql.h" + #endif /* MYSQLI_USE_MYSQLND */ + diff --git a/php-no_pam_in_c-client.diff b/php-no_pam_in_c-client.diff new file mode 100644 index 0000000..8de0a51 --- /dev/null +++ b/php-no_pam_in_c-client.diff @@ -0,0 +1,16 @@ +diff -up php-7.3.0RC1/ext/imap/config.m4.no_pam_in_c-client.droplet php-7.3.0RC1/ext/imap/config.m4 +--- php-7.3.0RC1/ext/imap/config.m4.no_pam_in_c-client.droplet 2018-09-13 23:20:57.043938103 +0200 ++++ php-7.3.0RC1/ext/imap/config.m4 2018-09-13 23:21:32.613041390 +0200 +@@ -178,12 +178,6 @@ if test "$PHP_IMAP" != "no"; then + ],[]) + CPPFLAGS=$old_CPPFLAGS + +- PHP_CHECK_LIBRARY(pam, pam_start, +- [ +- PHP_ADD_LIBRARY(pam,, IMAP_SHARED_LIBADD) +- AC_DEFINE(HAVE_LIBPAM,1,[ ]) +- ]) +- + PHP_CHECK_LIBRARY(crypt, crypt, + [ + PHP_ADD_LIBRARY(crypt,, IMAP_SHARED_LIBADD) diff --git a/php-phpbuilddir.diff b/php-phpbuilddir.diff new file mode 100644 index 0000000..a26cca1 --- /dev/null +++ b/php-phpbuilddir.diff @@ -0,0 +1,22 @@ +--- php-5.4.1RC2/scripts/Makefile.frag.phpbuilddir.droplet 2012-04-12 07:07:50.000000000 +0200 ++++ php-5.4.1RC2/scripts/Makefile.frag 2012-04-17 20:53:30.980190103 +0200 +@@ -4,7 +4,7 @@ + # + + phpincludedir = $(includedir)/php +-phpbuilddir = $(libdir)/build ++phpbuilddir = $(libdir)/php/build + + BUILD_FILES = \ + scripts/phpize.m4 \ +--- php-5.4.1RC2/scripts/phpize.in.phpbuilddir.droplet 2012-04-17 20:53:30.000000000 +0200 ++++ php-5.4.1RC2/scripts/phpize.in 2012-04-17 20:54:13.665191018 +0200 +@@ -4,7 +4,7 @@ + prefix='@prefix@' + datarootdir='@datarootdir@' + exec_prefix="`eval echo @exec_prefix@`" +-phpdir="`eval echo @libdir@`/build" ++phpdir="`eval echo @libdir@`/php/build" + includedir="`eval echo @includedir@`/php" + builddir="`pwd`" + SED="@SED@" diff --git a/php-phpize.diff b/php-phpize.diff new file mode 100644 index 0000000..e71ecab --- /dev/null +++ b/php-phpize.diff @@ -0,0 +1,63 @@ +diff -up php-7.3.0RC1/build/build2.mk.phpize.droplet php-7.3.0RC1/build/build2.mk +--- php-7.3.0RC1/build/build2.mk.phpize.droplet 2018-09-13 22:42:02.479901557 +0200 ++++ php-7.3.0RC1/build/build2.mk 2018-09-13 22:46:57.574353336 +0200 +@@ -26,6 +26,7 @@ targets = $(TOUCH_FILES) configure $(con + + PHP_AUTOCONF ?= 'autoconf' + PHP_AUTOHEADER ?= 'autoheader' ++PHP_ACLOCAL ?= 'aclocal' + + SUPPRESS_WARNINGS ?= 2>&1 | (egrep -v '(AC_PROG_CXXCPP was called before AC_PROG_CXX|defined in acinclude.m4 but never used)'||true) + +diff -up php-7.3.0RC1/scripts/phpize.in.phpize.droplet php-7.3.0RC1/scripts/phpize.in +--- php-7.3.0RC1/scripts/phpize.in.phpize.droplet 2018-09-11 13:13:29.000000000 +0200 ++++ php-7.3.0RC1/scripts/phpize.in 2018-09-13 22:47:29.701503740 +0200 +@@ -11,7 +11,7 @@ SED="@SED@" + + FILES_BUILD="mkdep.awk scan_makefile_in.awk shtool libtool.m4 ax_check_compile_flag.m4 ax_gcc_func_attribute.m4" + FILES="acinclude.m4 Makefile.global config.sub config.guess ltmain.sh run-tests*.php" +-CLEAN_FILES="$FILES *.o *.lo *.la .deps .libs/ build/ modules/ install-sh \ ++CLEAN_FILES="$FILES *.o *.so *.lo *.la .deps .libs/ build/ modules/ install-sh \ + mkinstalldirs missing config.nice config.sub config.guess configure configure.ac \ + aclocal.m4 config.h config.h.in conftest* ltmain.sh libtool config.cache autom4te.cache/ \ + config.log config.status Makefile Makefile.fragments Makefile.objects confdefs.h \ +@@ -121,6 +121,7 @@ phpize_check_autotools() + { + test -z "$PHP_AUTOCONF" && PHP_AUTOCONF=autoconf + test -z "$PHP_AUTOHEADER" && PHP_AUTOHEADER=autoheader ++ test -z "$PHP_ACLOCAL" && PHP_ACLOCAL=aclocal + + if test ! -x "$PHP_AUTOCONF" && test ! -x "`$php_shtool path $PHP_AUTOCONF`"; then + cat < configure.ac ++ cp $phpdir/phpize.m4 configure.in + } + + phpize_autotools() + { ++ libtoolize --copy --force || exit 1 ++ $PHP_ACLOCAL || exit 1 + $PHP_AUTOCONF || exit 1 + $PHP_AUTOHEADER || exit 1 + } diff --git a/php-session.save_path.diff b/php-session.save_path.diff new file mode 100644 index 0000000..b9623f7 --- /dev/null +++ b/php-session.save_path.diff @@ -0,0 +1,16 @@ +--- php-7.2.0/ext/session/session.c.session.save_path.droplet 2017-11-29 12:53:35.546492999 +0100 ++++ php-7.2.0/ext/session/session.c 2017-11-29 12:55:16.785667771 +0100 +@@ -790,11 +790,11 @@ static PHP_INI_MH(OnUpdateRfc1867Freq) / + /* {{{ PHP_INI + */ + PHP_INI_BEGIN() +- STD_PHP_INI_ENTRY("session.save_path", "", PHP_INI_ALL, OnUpdateSaveDir, save_path, php_ps_globals, ps_globals) ++ STD_PHP_INI_ENTRY("session.save_path", "/var/lib/php", PHP_INI_ALL, OnUpdateSaveDir, save_path, php_ps_globals, ps_globals) + STD_PHP_INI_ENTRY("session.name", "PHPSESSID", PHP_INI_ALL, OnUpdateName, session_name, php_ps_globals, ps_globals) + PHP_INI_ENTRY("session.save_handler", "files", PHP_INI_ALL, OnUpdateSaveHandler) + STD_PHP_INI_BOOLEAN("session.auto_start", "0", PHP_INI_PERDIR, OnUpdateBool, auto_start, php_ps_globals, ps_globals) +- STD_PHP_INI_ENTRY("session.gc_probability", "1", PHP_INI_ALL, OnUpdateSessionLong, gc_probability, php_ps_globals, ps_globals) ++ STD_PHP_INI_ENTRY("session.gc_probability", "0", PHP_INI_ALL, OnUpdateSessionLong, gc_probability, php_ps_globals, ps_globals) + STD_PHP_INI_ENTRY("session.gc_divisor", "100", PHP_INI_ALL, OnUpdateSessionLong, gc_divisor, php_ps_globals, ps_globals) + STD_PHP_INI_ENTRY("session.gc_maxlifetime", "1440", PHP_INI_ALL, OnUpdateSessionLong, gc_maxlifetime, php_ps_globals, ps_globals) + PHP_INI_ENTRY("session.serialize_handler", "php", PHP_INI_ALL, OnUpdateSerializer) diff --git a/php-shared.diff b/php-shared.diff new file mode 100644 index 0000000..70bbc18 --- /dev/null +++ b/php-shared.diff @@ -0,0 +1,73 @@ +--- php-7.2.0/Makefile.global.shared.droplet 2017-11-28 10:22:51.000000000 +0100 ++++ php-7.2.0/Makefile.global 2017-11-29 00:28:39.001984696 +0100 +@@ -15,8 +15,12 @@ build-modules: $(PHP_MODULES) $(PHP_ZEND + + build-binaries: $(PHP_BINARIES) + +-libphp$(PHP_MAJOR_VERSION).la: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) +- $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -rpath $(phptempdir) $(EXTRA_LDFLAGS) $(LDFLAGS) $(PHP_RPATHS) $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@ ++libphp$(PHP_MAJOR_VERSION)_common.la: $(PHP_GLOBAL_OBJS) ++ $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -version-info 8:0:3 -rpath $(phptempdir) $(LDFLAGS) $(PHP_RPATHS) $(PHP_GLOBAL_OBJS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@ ++ -@$(LIBTOOL) --silent --mode=install cp $@ $(phptempdir)/$@ >/dev/null 2>&1 ++ ++libphp$(PHP_MAJOR_VERSION).la: libphp$(PHP_MAJOR_VERSION)_common.la $(PHP_SAPI_OBJS) ++ $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -rpath $(phptempdir) $(EXTRA_LDFLAGS) $(LDFLAGS) $(PHP_RPATHS) libphp$(PHP_MAJOR_VERSION)_common.la $(PHP_SAPI_OBJS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@ + -@$(LIBTOOL) --silent --mode=install cp $@ $(phptempdir)/$@ >/dev/null 2>&1 + + libs/libphp$(PHP_MAJOR_VERSION).bundle: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) +@@ -27,10 +31,10 @@ install: $(all_targets) $(install_target + install-sapi: $(OVERALL_TARGET) + @echo "Installing PHP SAPI module: $(PHP_SAPI)" + -@$(mkinstalldirs) $(INSTALL_ROOT)$(bindir) +- -@if test ! -r $(phptempdir)/libphp$(PHP_MAJOR_VERSION).$(SHLIB_DL_SUFFIX_NAME); then \ ++ -@if test ! -r $(phptempdir)/libphp$(PHP_MAJOR_VERSION)_common.$(SHLIB_DL_SUFFIX_NAME); then \ + for i in 0.0.0 0.0 0; do \ +- if test -r $(phptempdir)/libphp$(PHP_MAJOR_VERSION).$(SHLIB_DL_SUFFIX_NAME).$$i; then \ +- $(LN_S) $(phptempdir)/libphp$(PHP_MAJOR_VERSION).$(SHLIB_DL_SUFFIX_NAME).$$i $(phptempdir)/libphp$(PHP_MAJOR_VERSION).$(SHLIB_DL_SUFFIX_NAME); \ ++ if test -r $(phptempdir)/libphp$(PHP_MAJOR_VERSION)_common.$(SHLIB_DL_SUFFIX_NAME).$$i; then \ ++ $(LN_S) $(phptempdir)/libphp$(PHP_MAJOR_VERSION)_common.$(SHLIB_DL_SUFFIX_NAME).$$i $(phptempdir)/libphp$(PHP_MAJOR_VERSION)_common.$(SHLIB_DL_SUFFIX_NAME); \ + break; \ + fi; \ + done; \ +--- php-7.2.0/sapi/cgi/config9.m4.shared.droplet 2017-11-28 10:23:05.000000000 +0100 ++++ php-7.2.0/sapi/cgi/config9.m4 2017-11-29 00:28:39.002984698 +0100 +@@ -64,7 +64,7 @@ if test "$PHP_CGI" != "no"; then + BUILD_CGI="\$(CC) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(NATIVE_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_BINARY_OBJS:.lo=.o) \$(PHP_FASTCGI_OBJS:.lo=.o) \$(PHP_CGI_OBJS:.lo=.o) \$(PHP_FRAMEWORKS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH)" + ;; + *) +- BUILD_CGI="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_FASTCGI_OBJS) \$(PHP_CGI_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH)" ++ BUILD_CGI="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) libphp\$(PHP_MAJOR_VERSION)_common.la \$(PHP_BINARY_OBJS) \$(PHP_FASTCGI_OBJS) \$(PHP_CGI_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH)" + ;; + esac + +--- php-7.2.0/sapi/cgi/Makefile.frag.shared.droplet 2017-11-28 10:23:05.000000000 +0100 ++++ php-7.2.0/sapi/cgi/Makefile.frag 2017-11-29 00:28:39.002984698 +0100 +@@ -1,6 +1,6 @@ + cgi: $(SAPI_CGI_PATH) + +-$(SAPI_CGI_PATH): $(PHP_GLOBAL_OBJS) $(PHP_BINARY_OBJS) $(PHP_FASTCGI_OBJS) $(PHP_CGI_OBJS) ++$(SAPI_CGI_PATH): libphp$(PHP_MAJOR_VERSION)_common.la $(PHP_BINARY_OBJS) $(PHP_FASTCGI_OBJS) $(PHP_CGI_OBJS) + $(BUILD_CGI) + + install-cgi: $(SAPI_CGI_PATH) +--- php-7.2.0/sapi/cli/config.m4.shared.droplet 2017-11-29 00:28:39.002984698 +0100 ++++ php-7.2.0/sapi/cli/config.m4 2017-11-29 00:30:00.110178568 +0100 +@@ -45,7 +45,7 @@ if test "$PHP_CLI" != "no"; then + BUILD_CLI="\$(CC) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(NATIVE_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_BINARY_OBJS:.lo=.o) \$(PHP_CLI_OBJS:.lo=.o) \$(PHP_FRAMEWORKS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CLI_PATH)" + ;; + *) +- BUILD_CLI="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_CLI_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CLI_PATH)" ++ BUILD_CLI="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) libphp\$(PHP_MAJOR_VERSION)_common.la \$(PHP_BINARY_OBJS) \$(PHP_CLI_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CLI_PATH)" + ;; + esac + +--- php-7.2.0/sapi/cli/Makefile.frag.shared.droplet 2017-11-28 10:23:05.000000000 +0100 ++++ php-7.2.0/sapi/cli/Makefile.frag 2017-11-29 00:28:39.002984698 +0100 +@@ -1,6 +1,6 @@ + cli: $(SAPI_CLI_PATH) + +-$(SAPI_CLI_PATH): $(PHP_GLOBAL_OBJS) $(PHP_BINARY_OBJS) $(PHP_CLI_OBJS) ++$(SAPI_CLI_PATH): libphp$(PHP_MAJOR_VERSION)_common.la $(PHP_BINARY_OBJS) $(PHP_CLI_OBJS) + $(BUILD_CLI) + + install-cli: $(SAPI_CLI_PATH) diff --git a/php-tests-wddx.diff b/php-tests-wddx.diff new file mode 100644 index 0000000..e76482f --- /dev/null +++ b/php-tests-wddx.diff @@ -0,0 +1,24 @@ +diff -Naur php-5.2.3/ext/wddx/tests/001.phpt php-5.2.3.oden/ext/wddx/tests/001.phpt +--- php-5.2.3/ext/wddx/tests/001.phpt 2007-05-18 13:29:55.000000000 +0200 ++++ php-5.2.3.oden/ext/wddx/tests/001.phpt 2007-06-20 13:19:55.000000000 +0200 +@@ -22,7 +22,7 @@ + ["aDateTime2"]=> + int(329632332) + ["aDateTime3"]=> +- string(22) "2040-06-12T04:32:12+00" ++ string(12) "NotADateTime" + ["aBoolean"]=> + bool(true) + ["anArray"]=> +diff -Naur php-5.2.3/ext/wddx/tests/wddx.xml php-5.2.3.oden/ext/wddx/tests/wddx.xml +--- php-5.2.3/ext/wddx/tests/wddx.xml 2005-03-12 02:52:48.000000000 +0100 ++++ php-5.2.3.oden/ext/wddx/tests/wddx.xml 2007-06-20 13:19:55.000000000 +0200 +@@ -20,7 +20,7 @@ + 1980-06-12T04:32:12+00 + + +- 2040-06-12T04:32:12+00 ++ NotADateTime + + + diff --git a/php-umask.diff b/php-umask.diff new file mode 100644 index 0000000..5936a43 --- /dev/null +++ b/php-umask.diff @@ -0,0 +1,40 @@ +--- php-7.0.1/sapi/apache2handler/sapi_apache2.c.umask.droplet 2015-12-16 11:41:54.000000000 +0100 ++++ php-7.0.1/sapi/apache2handler/sapi_apache2.c 2015-12-29 00:40:11.502348482 +0100 +@@ -475,6 +475,19 @@ static apr_status_t php_server_context_c + return APR_SUCCESS; + } + ++static int saved_umask; ++ ++static void php_save_umask(void) ++{ ++ saved_umask = umask(0777); ++ umask(saved_umask); ++} ++ ++static void php_restore_umask(void) ++{ ++ umask(saved_umask); ++} ++ + static int php_apache_request_ctor(request_rec *r, php_struct *ctx) + { + char *content_length; +@@ -669,6 +682,8 @@ zend_first_try { + } else { + zend_file_handle zfd; + ++ php_save_umask(); ++ + zfd.type = ZEND_HANDLE_FILENAME; + zfd.filename = (char *) r->filename; + zfd.free_filename = 0; +@@ -680,6 +695,8 @@ zend_first_try { + zend_execute_scripts(ZEND_INCLUDE, NULL, 1, &zfd); + } + ++ php_restore_umask(); ++ + apr_table_set(r->notes, "mod_php_memory_usage", + apr_psprintf(ctx->r->pool, "%" APR_SIZE_T_FMT, zend_memory_peak_usage(1))); + } diff --git a/php-xmlrpc_epi.patch b/php-xmlrpc_epi.patch new file mode 100644 index 0000000..67c6a14 --- /dev/null +++ b/php-xmlrpc_epi.patch @@ -0,0 +1,11 @@ +--- php-7.0.1/ext/xmlrpc/xmlrpc-epi-php.c.xmlrpc_epi_header 2015-12-29 00:12:51.764748580 +0100 ++++ php-7.0.1/ext/xmlrpc/xmlrpc-epi-php.c 2015-12-29 00:15:09.654193700 +0100 +@@ -71,7 +71,7 @@ + #include "ext/date/php_date.h" + #include "php_ini.h" + #include "php_xmlrpc.h" +-#include "xmlrpc.h" ++#include + + static int le_xmlrpc_server; + diff --git a/php-xmlrpc_no_rpath.diff b/php-xmlrpc_no_rpath.diff new file mode 100644 index 0000000..e0a8d88 --- /dev/null +++ b/php-xmlrpc_no_rpath.diff @@ -0,0 +1,21 @@ +--- ext/xmlrpc/config.m4 2007-06-11 11:48:59.000000000 +0200 ++++ ext/xmlrpc/config.m4.oden 2007-06-11 12:21:28.000000000 +0200 +@@ -49,7 +49,7 @@ + for i in $PHP_LIBEXPAT_DIR $XMLRPC_DIR /usr/local /usr; do + if test -f $i/$PHP_LIBDIR/libexpat.a || test -f $i/$PHP_LIBDIR/libexpat.$SHLIB_SUFFIX_NAME; then + AC_DEFINE(HAVE_LIBEXPAT,1,[ ]) +- PHP_ADD_LIBRARY_WITH_PATH(expat, $i/$PHP_LIBDIR, XMLRPC_SHARED_LIBADD) ++ PHP_ADD_LIBRARY_WITH_PATH(expat,,XMLRPC_SHARED_LIBADD) + PHP_ADD_INCLUDE($i/include) + testval=yes + break +@@ -100,7 +100,8 @@ + fi + + PHP_ADD_INCLUDE($XMLRPC_DIR) +- PHP_ADD_LIBRARY_WITH_PATH(xmlrpc, $XMLRPC_DIR/$PHP_LIBDIR, XMLRPC_SHARED_LIBADD) ++ PHP_ADD_LIBRARY_WITH_PATH(xmlrpc,,XMLRPC_SHARED_LIBADD) + PHP_NEW_EXTENSION(xmlrpc,xmlrpc-epi-php.c, $ext_shared) ++ PHP_SUBST(XMLRPC_SHARED_LIBADD) + XMLRPC_MODULE_TYPE=external + fi diff --git a/php-zlib-for-getimagesize.patch b/php-zlib-for-getimagesize.patch new file mode 100644 index 0000000..7a9062c --- /dev/null +++ b/php-zlib-for-getimagesize.patch @@ -0,0 +1,38 @@ +--- php-7.0.1/ext/standard/image.c.zlib-for-getimagesize.droplet 2015-12-16 11:42:03.000000000 +0100 ++++ php-7.0.1/ext/standard/image.c 2015-12-29 00:21:45.084450620 +0100 +@@ -34,7 +34,7 @@ + #include "win32/php_stdint.h" + #endif + +-#if HAVE_ZLIB && !defined(COMPILE_DL_ZLIB) ++#if HAVE_ZLIB + #include "zlib.h" + #endif + +@@ -84,7 +84,7 @@ PHP_MINIT_FUNCTION(imagetypes) + REGISTER_LONG_CONSTANT("IMAGETYPE_JP2", IMAGE_FILETYPE_JP2, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IMAGETYPE_JPX", IMAGE_FILETYPE_JPX, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IMAGETYPE_JB2", IMAGE_FILETYPE_JB2, CONST_CS | CONST_PERSISTENT); +-#if HAVE_ZLIB && !defined(COMPILE_DL_ZLIB) ++#if HAVE_ZLIB + REGISTER_LONG_CONSTANT("IMAGETYPE_SWC", IMAGE_FILETYPE_SWC, CONST_CS | CONST_PERSISTENT); + #endif + REGISTER_LONG_CONSTANT("IMAGETYPE_IFF", IMAGE_FILETYPE_IFF, CONST_CS | CONST_PERSISTENT); +@@ -192,7 +192,7 @@ static unsigned long int php_swf_get_bit + } + /* }}} */ + +-#if HAVE_ZLIB && !defined(COMPILE_DL_ZLIB) ++#if HAVE_ZLIB + /* {{{ php_handle_swc + */ + static struct gfxinfo *php_handle_swc(php_stream * stream) +@@ -1337,7 +1337,7 @@ static void php_getimagesize_from_stream + result = php_handle_swf(stream); + break; + case IMAGE_FILETYPE_SWC: +-#if HAVE_ZLIB && !defined(COMPILE_DL_ZLIB) ++#if HAVE_ZLIB + result = php_handle_swc(stream); + #else + php_error_docref(NULL, E_NOTICE, "The image is a compressed SWF file, but you do not have a static version of the zlib extension enabled"); diff --git a/php.crond b/php.crond new file mode 100644 index 0000000..23e0586 --- /dev/null +++ b/php.crond @@ -0,0 +1,8 @@ +#!/bin/bash +# /etc/cron.d/php: crontab fragment for php +# This purges session files older than X, where X is defined in seconds +# as the largest value of session.gc_maxlifetime from all your php.ini +# files, or 24 minutes if not defined. See /usr/lib/php/maxlifetime + +# Look for and purge old sessions every 30 minutes +09,39 * * * * root [ -d /var/lib/php ] && find /var/lib/php/ -type f -depth -mindepth 1 -maxdepth 1 -mmin +$(/usr/lib/php/maxlifetime) -print0 | xargs -r -0 rm diff --git a/php.ini b/php.ini new file mode 100644 index 0000000..b5ada06 --- /dev/null +++ b/php.ini @@ -0,0 +1,1806 @@ +[PHP] + +;;;;;;;;;;;;;;;;;;; +; About php.ini ; +;;;;;;;;;;;;;;;;;;; +; PHP's initialization file, generally called php.ini, is responsible for +; configuring many of the aspects of PHP's behavior. + +; PHP attempts to find and load this configuration from a number of locations. +; The following is a summary of its search order: +; 1. SAPI module specific location. +; 2. The PHPRC environment variable. (As of PHP 5.2.0) +; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) +; 4. Current working directory (except CLI) +; 5. The web server's directory (for SAPI modules), or directory of PHP +; (otherwise in Windows) +; 6. The directory from the --with-config-file-path compile time option, or the +; Windows directory (C:\windows or C:\winnt) +; See the PHP docs for more specific information. +; http://php.net/configuration.file + +; The syntax of the file is extremely simple. Whitespace and Lines +; beginning with a semicolon are silently ignored (as you probably guessed). +; Section headers (e.g. [Foo]) are also silently ignored, even though +; they might mean something in the future. + +; Directives following the section heading [PATH=/www/mysite] only +; apply to PHP files in the /www/mysite directory. Directives +; following the section heading [HOST=www.example.com] only apply to +; PHP files served from www.example.com. Directives set in these +; special sections cannot be overridden by user-defined INI files or +; at runtime. Currently, [PATH=] and [HOST=] sections only work under +; CGI/FastCGI. +; http://php.net/ini.sections + +; Directives are specified using the following syntax: +; directive = value +; Directive names are *case sensitive* - foo=bar is different from FOO=bar. +; Directives are variables used to configure PHP or PHP extensions. +; There is no name validation. If PHP can't find an expected +; directive because it is not set or is mistyped, a default value will be used. + +; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one +; of the INI constants (On, Off, True, False, Yes, No and None) or an expression +; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a +; previously set variable or directive (e.g. ${foo}) + +; Expressions in the INI file are limited to bitwise operators and parentheses: +; | bitwise OR +; ^ bitwise XOR +; & bitwise AND +; ~ bitwise NOT +; ! boolean NOT + +; Boolean flags can be turned on using the values 1, On, True or Yes. +; They can be turned off using the values 0, Off, False or No. + +; An empty string can be denoted by simply not writing anything after the equal +; sign, or by using the None keyword: + +; foo = ; sets foo to an empty string +; foo = None ; sets foo to an empty string +; foo = "None" ; sets foo to the string 'None' + +; If you use constants in your value, and these constants belong to a +; dynamically loaded extension (either a PHP extension or a Zend extension), +; you may only use these constants *after* the line that loads the extension. + +;;;;;;;;;;;;;;;;;;; +; About this file ; +;;;;;;;;;;;;;;;;;;; +; PHP comes packaged with two INI files. One that is recommended to be used +; in production environments and one that is recommended to be used in +; development environments. + +; php.ini-production contains settings which hold security, performance and +; best practices at its core. But please be aware, these settings may break +; compatibility with older or less security conscience applications. We +; recommending using the production ini in production and testing environments. + +; php.ini-development is very similar to its production variant, except it's +; much more verbose when it comes to errors. We recommending using the +; development version only in development environments as errors shown to +; application users can inadvertently leak otherwise secure information. + +;;;;;;;;;;;;;;;;;;; +; Quick Reference ; +;;;;;;;;;;;;;;;;;;; +; The following are all the settings which are different in either the production +; or development versions of the INIs with respect to PHP's default behavior. +; Please see the actual settings later in the document for more details as to why +; we recommend these changes in PHP's behavior. + +; display_errors +; Default Value: On +; Development Value: On +; Production Value: Off + +; display_startup_errors +; Default Value: Off +; Development Value: On +; Production Value: Off + +; error_reporting +; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED +; Development Value: E_ALL +; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT + +; html_errors +; Default Value: On +; Development Value: On +; Production value: On + +; log_errors +; Default Value: Off +; Development Value: On +; Production Value: On + +; max_input_time +; Default Value: -1 (Unlimited) +; Development Value: 60 (60 seconds) +; Production Value: 60 (60 seconds) + +; output_buffering +; Default Value: Off +; Development Value: 4096 +; Production Value: 4096 + +; register_argc_argv +; Default Value: On +; Development Value: Off +; Production Value: Off + +; request_order +; Default Value: None +; Development Value: "GP" +; Production Value: "GP" + +; session.bug_compat_42 +; Default Value: On +; Development Value: On +; Production Value: Off + +; session.bug_compat_warn +; Default Value: On +; Development Value: On +; Production Value: Off + +; session.gc_divisor +; Default Value: 100 +; Development Value: 1000 +; Production Value: 1000 + +; session.hash_bits_per_character +; Default Value: 4 +; Development Value: 5 +; Production Value: 5 + +; short_open_tag +; Default Value: On +; Development Value: Off +; Production Value: Off + +; track_errors +; Default Value: Off +; Development Value: On +; Production Value: Off + +; url_rewriter.tags +; Default Value: "a=href,area=href,frame=src,form=,fieldset=" +; Development Value: "a=href,area=href,frame=src,input=src,form=fakeentry" +; Production Value: "a=href,area=href,frame=src,input=src,form=fakeentry" + +; variables_order +; Default Value: "EGPCS" +; Development Value: "GPCS" +; Production Value: "GPCS" + +;;;;;;;;;;;;;;;;;;;; +; php.ini Options ; +;;;;;;;;;;;;;;;;;;;; +; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" +;user_ini.filename = ".user.ini" + +; To disable this feature set this option to empty value +user_ini.filename = + +; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) +;user_ini.cache_ttl = 300 + +;;;;;;;;;;;;;;;;;;;; +; Language Options ; +;;;;;;;;;;;;;;;;;;;; + +; Enable the PHP scripting language engine under Apache. +; http://php.net/engine +engine = On + +; This directive determines whether or not PHP will recognize code between +; tags as PHP source which should be processed as such. It's been +; recommended for several years that you not use the short tag "short cut" and +; instead to use the full tag combination. With the wide spread use +; of XML and use of these tags by other languages, the server can become easily +; confused and end up parsing the wrong code in the wrong context. But because +; this short cut has been a feature for such a long time, it's currently still +; supported for backwards compatibility, but we recommend you don't use them. +; Default Value: On +; Development Value: Off +; Production Value: Off +; http://php.net/short-open-tag +short_open_tag = On + +; Allow ASP-style <% %> tags. +; http://php.net/asp-tags +asp_tags = Off + +; The number of significant digits displayed in floating point numbers. +; http://php.net/precision +precision = 14 + +; Output buffering is a mechanism for controlling how much output data +; (excluding headers and cookies) PHP should keep internally before pushing that +; data to the client. If your application's output exceeds this setting, PHP +; will send that data in chunks of roughly the size you specify. +; Turning on this setting and managing its maximum buffer size can yield some +; interesting side-effects depending on your application and web server. +; You may be able to send headers and cookies after you've already sent output +; through print or echo. You also may see performance benefits if your server is +; emitting less packets due to buffered output versus PHP streaming the output +; as it gets it. On production servers, 4096 bytes is a good setting for performance +; reasons. +; Note: Output buffering can also be controlled via Output Buffering Control +; functions. +; Possible Values: +; On = Enabled and buffer is unlimited. (Use with caution) +; Off = Disabled +; Integer = Enables the buffer and sets its maximum size in bytes. +; Note: This directive is hardcoded to Off for the CLI SAPI +; Default Value: Off +; Development Value: 4096 +; Production Value: 4096 +; http://php.net/output-buffering +output_buffering = 4096 + +; You can redirect all of the output of your scripts to a function. For +; example, if you set output_handler to "mb_output_handler", character +; encoding will be transparently converted to the specified encoding. +; Setting any output handler automatically turns on output buffering. +; Note: People who wrote portable scripts should not depend on this ini +; directive. Instead, explicitly set the output handler using ob_start(). +; Using this ini directive may cause problems unless you know what script +; is doing. +; Note: You cannot use both "mb_output_handler" with "ob_iconv_handler" +; and you cannot use both "ob_gzhandler" and "zlib.output_compression". +; Note: output_handler must be empty if this is set 'On' !!!! +; Instead you must use zlib.output_handler. +; http://php.net/output-handler +;output_handler = + +; Transparent output compression using the zlib library +; Valid values for this option are 'off', 'on', or a specific buffer size +; to be used for compression (default is 4KB) +; Note: Resulting chunk size may vary due to nature of compression. PHP +; outputs chunks that are few hundreds bytes each as a result of +; compression. If you prefer a larger chunk size for better +; performance, enable output_buffering in addition. +; Note: You need to use zlib.output_handler instead of the standard +; output_handler, or otherwise the output will be corrupted. +; http://php.net/zlib.output-compression +zlib.output_compression = Off + +; http://php.net/zlib.output-compression-level +;zlib.output_compression_level = -1 + +; You cannot specify additional output handlers if zlib.output_compression +; is activated here. This setting does the same as output_handler but in +; a different order. +; http://php.net/zlib.output-handler +;zlib.output_handler = + +; Implicit flush tells PHP to tell the output layer to flush itself +; automatically after every output block. This is equivalent to calling the +; PHP function flush() after each and every call to print() or echo() and each +; and every HTML block. Turning this option on has serious performance +; implications and is generally recommended for debugging purposes only. +; http://php.net/implicit-flush +; Note: This directive is hardcoded to On for the CLI SAPI +implicit_flush = Off + +; The unserialize callback function will be called (with the undefined class' +; name as parameter), if the unserializer finds an undefined class +; which should be instantiated. A warning appears if the specified function is +; not defined, or if the function doesn't include/implement the missing class. +; So only set this entry, if you really want to implement such a +; callback-function. +unserialize_callback_func = + +; When floats & doubles are serialized store serialize_precision significant +; digits after the floating point. The default value ensures that when floats +; are decoded with unserialize, the data will remain the same. +serialize_precision = 17 + +; open_basedir, if set, limits all file operations to the defined directory +; and below. This directive makes most sense if used in a per-directory +; or per-virtualhost web server configuration file. This directive is +; *NOT* affected by whether Safe Mode is turned On or Off. +; http://php.net/open-basedir +;open_basedir = + +; This directive allows you to disable certain functions for security reasons. +; It receives a comma-delimited list of function names. This directive is +; *NOT* affected by whether Safe Mode is turned On or Off. +; http://php.net/disable-functions +disable_functions = + +; this is an example +;disable_functions = php_uname, getmyuid, getmypid, passthru, leak, listen, diskfreespace, tmpfile, link, ignore_user_abord, shell_exec, dl, set_time_limit, exec, system, highlight_file, source, show_source, fpaththru, virtual, posix_ctermid, posix _getcwd, posix_getegid, posix_geteuid, posix_getgid, posix_getgrgid, posix_getgrnam, posix_getgroups, posix_getlogin, posix_g etpgid, posix_getpgrp, posix_getpid, posix, _getppid, posix_getpwnam, posix_getpwuid, posix_getrlimit, posix_getsid, posix_ge tuid, posix_isatty, posix_kill, posix_mkfifo, posix_setegid, posix_seteuid, posix_setgid, posix_setpgid, posix_setsid, posix_ setuid, posix_times, posix_ttyname, posix_uname, proc_open, proc_close, proc_get_status, proc_nice, proc_terminate, phpinfo + +; This directive allows you to disable certain classes for security reasons. +; It receives a comma-delimited list of class names. This directive is +; *NOT* affected by whether Safe Mode is turned On or Off. +; http://php.net/disable-classes +disable_classes = + +; Colors for Syntax Highlighting mode. Anything that's acceptable in +; would work. +; http://php.net/syntax-highlighting +;highlight.string = #DD0000 +;highlight.comment = #FF9900 +;highlight.keyword = #007700 +;highlight.default = #0000BB +;highlight.html = #000000 + +; If enabled, the request will be allowed to complete even if the user aborts +; the request. Consider enabling it if executing long requests, which may end up +; being interrupted by the user or a browser timing out. PHP's default behavior +; is to disable this feature. +; http://php.net/ignore-user-abort +;ignore_user_abort = On + +; Determines the size of the realpath cache to be used by PHP. This value should +; be increased on systems where PHP opens many files to reflect the quantity of +; the file operations performed. +; http://php.net/realpath-cache-size +;realpath_cache_size = 16k + +; Duration of time, in seconds for which to cache realpath information for a given +; file or directory. For systems with rarely changing files, consider increasing this +; value. +; http://php.net/realpath-cache-ttl +;realpath_cache_ttl = 120 + +; Enables or disables the circular reference collector. +; http://php.net/zend.enable-gc +zend.enable_gc = On + +; If enabled, scripts may be written in encodings that are incompatible with +; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such +; encodings. To use this feature, mbstring extension must be enabled. +; Default: Off +;zend.multibyte = Off + +; Allows to set the default encoding for the scripts. This value will be used +; unless "declare(encoding=...)" directive appears at the top of the script. +; Only affects if zend.multibyte is set. +; Default: "" +;zend.script_encoding = + +;;;;;;;;;;;;;;;;; +; Miscellaneous ; +;;;;;;;;;;;;;;;;; + +; Decides whether PHP may expose the fact that it is installed on the server +; (e.g. by adding its signature to the Web server header). It is no security +; threat in any way, but it makes it possible to determine whether you use PHP +; on your server or not. +; http://php.net/expose-php +expose_php = On + +;;;;;;;;;;;;;;;;;;; +; Resource Limits ; +;;;;;;;;;;;;;;;;;;; + +; Maximum execution time of each script, in seconds +; http://php.net/max-execution-time +; Note: This directive is hardcoded to 0 for the CLI SAPI +max_execution_time = 30 + +; Maximum amount of time each script may spend parsing request data. It's a good +; idea to limit this time on productions servers in order to eliminate unexpectedly +; long running scripts. +; Note: This directive is hardcoded to -1 for the CLI SAPI +; Default Value: -1 (Unlimited) +; Development Value: 60 (60 seconds) +; Production Value: 60 (60 seconds) +; http://php.net/max-input-time +max_input_time = 60 + +; Maximum input variable nesting level +; http://php.net/max-input-nesting-level +;max_input_nesting_level = 64 + +; How many GET/POST/COOKIE input variables may be accepted +; max_input_vars = 1000 + +; Maximum amount of memory a script may consume (128MB) +; http://php.net/memory-limit +memory_limit = 128M + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Error handling and logging ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +; This directive informs PHP of which errors, warnings and notices you would like +; it to take action for. The recommended way of setting values for this +; directive is through the use of the error level constants and bitwise +; operators. The error level constants are below here for convenience as well as +; some common settings and their meanings. +; By default, PHP is set to take action on all errors, notices and warnings EXCEPT +; those related to E_NOTICE and E_STRICT, which together cover best practices and +; recommended coding standards in PHP. For performance reasons, this is the +; recommend error reporting setting. Your production server shouldn't be wasting +; resources complaining about best practices and coding standards. That's what +; development servers and development settings are for. +; Note: The php.ini-development file has this setting as E_ALL. This +; means it pretty much reports everything which is exactly what you want during +; development and early testing. +; +; Error Level Constants: +; E_ALL - All errors and warnings (includes E_STRICT as of PHP 6.0.0) +; E_ERROR - fatal run-time errors +; E_RECOVERABLE_ERROR - almost fatal run-time errors +; E_WARNING - run-time warnings (non-fatal errors) +; E_PARSE - compile-time parse errors +; E_NOTICE - run-time notices (these are warnings which often result +; from a bug in your code, but it's possible that it was +; intentional (e.g., using an uninitialized variable and +; relying on the fact it's automatically initialized to an +; empty string) +; E_STRICT - run-time notices, enable to have PHP suggest changes +; to your code which will ensure the best interoperability +; and forward compatibility of your code +; E_CORE_ERROR - fatal errors that occur during PHP's initial startup +; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's +; initial startup +; E_COMPILE_ERROR - fatal compile-time errors +; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) +; E_USER_ERROR - user-generated error message +; E_USER_WARNING - user-generated warning message +; E_USER_NOTICE - user-generated notice message +; E_DEPRECATED - warn about code that will not work in future versions +; of PHP +; E_USER_DEPRECATED - user-generated deprecation warnings +; +; Common Values: +; E_ALL (Show all errors, warnings and notices including coding standards.) +; E_ALL & ~E_NOTICE (Show all errors, except for notices) +; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) +; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) +; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED +; Development Value: E_ALL +; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT +; http://php.net/error-reporting +error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT + +; This directive controls whether or not and where PHP will output errors, +; notices and warnings too. Error output is very useful during development, but +; it could be very dangerous in production environments. Depending on the code +; which is triggering the error, sensitive information could potentially leak +; out of your application such as database usernames and passwords or worse. +; It's recommended that errors be logged on production servers rather than +; having the errors sent to STDOUT. +; Possible Values: +; Off = Do not display any errors +; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) +; On or stdout = Display errors to STDOUT +; Default Value: On +; Development Value: On +; Production Value: Off +; http://php.net/display-errors +display_errors = Off + +; The display of errors which occur during PHP's startup sequence are handled +; separately from display_errors. PHP's default behavior is to suppress those +; errors from clients. Turning the display of startup errors on can be useful in +; debugging configuration problems. But, it's strongly recommended that you +; leave this setting off on production servers. +; Default Value: Off +; Development Value: On +; Production Value: Off +; http://php.net/display-startup-errors +display_startup_errors = Off + +; Besides displaying errors, PHP can also log errors to locations such as a +; server-specific log, STDERR, or a location specified by the error_log +; directive found below. While errors should not be displayed on productions +; servers they should still be monitored and logging is a great way to do that. +; Default Value: Off +; Development Value: On +; Production Value: On +; http://php.net/log-errors +log_errors = Off + +; Set maximum length of log_errors. In error_log information about the source is +; added. The default is 1024 and 0 allows to not apply any maximum length at all. +; http://php.net/log-errors-max-len +log_errors_max_len = 1024 + +; Do not log repeated messages. Repeated errors must occur in same file on same +; line unless ignore_repeated_source is set true. +; http://php.net/ignore-repeated-errors +ignore_repeated_errors = Off + +; Ignore source of message when ignoring repeated messages. When this setting +; is On you will not log errors with repeated messages from different files or +; source lines. +; http://php.net/ignore-repeated-source +ignore_repeated_source = Off + +; If this parameter is set to Off, then memory leaks will not be shown (on +; stdout or in the log). This has only effect in a debug compile, and if +; error reporting includes E_WARNING in the allowed list +; http://php.net/report-memleaks +report_memleaks = On + +; This setting is on by default. +;report_zend_debug = 0 + +; Store the last error/warning message in $php_errormsg (boolean). Setting this value +; to On can assist in debugging and is appropriate for development servers. It should +; however be disabled on production servers. +; Default Value: Off +; Development Value: On +; Production Value: Off +; http://php.net/track-errors +track_errors = Off + +; Turn off normal error reporting and emit XML-RPC error XML +; http://php.net/xmlrpc-errors +;xmlrpc_errors = 0 + +; An XML-RPC faultCode +;xmlrpc_error_number = 0 + +; When PHP displays or logs an error, it has the capability of formatting the +; error message as HTML for easier reading. This directive controls whether +; the error message is formatted as HTML or not. +; Note: This directive is hardcoded to Off for the CLI SAPI +; Default Value: On +; Development Value: On +; Production value: On +; http://php.net/html-errors +html_errors = On + +; If html_errors is set to On *and* docref_root is not empty, then PHP +; produces clickable error messages that direct to a page describing the error +; or function causing the error in detail. +; You can download a copy of the PHP manual from http://php.net/docs +; and change docref_root to the base URL of your local copy including the +; leading '/'. You must also specify the file extension being used including +; the dot. PHP's default behavior is to leave these settings empty, in which +; case no links to documentation are generated. +; Note: Never use this feature for production boxes. +; http://php.net/docref-root +; Examples +;docref_root = "/phpmanual/" + +; http://php.net/docref-ext +;docref_ext = .html + +; String to output before an error message. PHP's default behavior is to leave +; this setting blank. +; http://php.net/error-prepend-string +; Example: +;error_prepend_string = "" + +; String to output after an error message. PHP's default behavior is to leave +; this setting blank. +; http://php.net/error-append-string +; Example: +;error_append_string = "" + +; Log errors to specified file. PHP's default behavior is to leave this value +; empty. +; http://php.net/error-log +; Example: +;error_log = "/var/log/httpd/php_errors.log" +; Log errors to syslog (Event Log on NT, not valid in Windows 95). +;error_log = syslog + +;windows.show_crt_warning +; Default value: 0 +; Development value: 0 +; Production value: 0 + +;;;;;;;;;;;;;;;;; +; Data Handling ; +;;;;;;;;;;;;;;;;; + +; The separator used in PHP generated URLs to separate arguments. +; PHP's default setting is "&". +; http://php.net/arg-separator.output +; Example: +;arg_separator.output = "&" + +; List of separator(s) used by PHP to parse input URLs into variables. +; PHP's default setting is "&". +; NOTE: Every character in this directive is considered as separator! +; http://php.net/arg-separator.input +; Example: +;arg_separator.input = ";&" + +; This directive determines which super global arrays are registered when PHP +; starts up. G,P,C,E & S are abbreviations for the following respective super +; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty +; paid for the registration of these arrays and because ENV is not as commonly +; used as the others, ENV is not recommended on productions servers. You +; can still get access to the environment variables through getenv() should you +; need to. +; Default Value: "EGPCS" +; Development Value: "GPCS" +; Production Value: "GPCS"; +; http://php.net/variables-order +variables_order = "EGPCS" + +; This directive determines which super global data (G,P,C,E & S) should +; be registered into the super global array REQUEST. If so, it also determines +; the order in which that data is registered. The values for this directive are +; specified in the same manner as the variables_order directive, EXCEPT one. +; Leaving this value empty will cause PHP to use the value set in the +; variables_order directive. It does not mean it will leave the super globals +; array REQUEST empty. +; Default Value: None +; Development Value: "GP" +; Production Value: "GP" +; http://php.net/request-order +request_order = "GP" + +; This directive determines whether PHP registers $argv & $argc each time it +; runs. $argv contains an array of all the arguments passed to PHP when a script +; is invoked. $argc contains an integer representing the number of arguments +; that were passed when the script was invoked. These arrays are extremely +; useful when running scripts from the command line. When this directive is +; enabled, registering these variables consumes CPU cycles and memory each time +; a script is executed. For performance reasons, this feature should be disabled +; on production servers. +; Note: This directive is hardcoded to On for the CLI SAPI +; Default Value: On +; Development Value: Off +; Production Value: Off +; http://php.net/register-argc-argv +register_argc_argv = Off + +; When enabled, the ENV, REQUEST and SERVER variables are created when they're +; first used (Just In Time) instead of when the script starts. If these +; variables are not used within a script, having this directive on will result +; in a performance gain. The PHP directive register_argc_argv must be disabled +; for this directive to have any affect. +; http://php.net/auto-globals-jit +auto_globals_jit = On + +; Whether PHP will read the POST data. +; This option is enabled by default. +; Most likely, you won't want to disable this option globally. It causes $_POST +; and $_FILES to always be empty; the only way you will be able to read the +; POST data will be through the php://input stream wrapper. This can be useful +; to proxy requests or to process the POST data in a memory efficient fashion. +; http://php.net/enable-post-data-reading +;enable_post_data_reading = Off + +; Maximum size of POST data that PHP will accept. +; Its value may be 0 to disable the limit. It is ignored if POST data reading +; is disabled through enable_post_data_reading. +; http://php.net/post-max-size +post_max_size = 8M + +; Automatically add files before PHP document. +; http://php.net/auto-prepend-file +auto_prepend_file = + +; Automatically add files after PHP document. +; http://php.net/auto-append-file +auto_append_file = + +; By default, PHP will output a character encoding using +; the Content-type: header. To disable sending of the charset, simply +; set it to be empty. +; +; PHP's built-in default is text/html +; http://php.net/default-mimetype +default_mimetype = "text/html" + +; PHP's default character set is set to empty. +; http://php.net/default-charset +;default_charset = "UTF-8" + +; Always populate the $HTTP_RAW_POST_DATA variable. PHP's default behavior is +; to disable this feature. If post reading is disabled through +; enable_post_data_reading, $HTTP_RAW_POST_DATA is *NOT* populated. +; http://php.net/always-populate-raw-post-data +;always_populate_raw_post_data = On + +;;;;;;;;;;;;;;;;;;;;;;;;; +; Paths and Directories ; +;;;;;;;;;;;;;;;;;;;;;;;;; + +; PHP's default setting for include_path is ".;/path/to/php/pear" +; http://php.net/include-path +include_path = ".:/usr/lib/php/:/usr/share/pear/:/usr/share/php/" + +; The root of the PHP pages, used only if nonempty. +; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root +; if you are running php as a CGI under any web server (other than IIS) +; see documentation for security issues. The alternate is to use the +; cgi.force_redirect configuration below +; http://php.net/doc-root +doc_root = + +; The directory under which PHP opens the script using /~username used only +; if nonempty. +; http://php.net/user-dir +user_dir = + +; Directory in which the loadable extensions (modules) reside. +; http://php.net/extension-dir +extension_dir = "/usr/lib/php/extensions" + +; Whether or not to enable the dl() function. The dl() function does NOT work +; properly in multithreaded servers, such as IIS or Zeus, and is automatically +; disabled on them. +; http://php.net/enable-dl +enable_dl = On + +; cgi.force_redirect is necessary to provide security running PHP as a CGI under +; most web servers. Left undefined, PHP turns this on by default. You can +; turn it off here AT YOUR OWN RISK +; **You CAN safely turn this off for IIS, in fact, you MUST.** +; http://php.net/cgi.force-redirect +;cgi.force_redirect = 1 + +; if cgi.nph is enabled it will force cgi to always sent Status: 200 with +; every request. PHP's default behavior is to disable this feature. +;cgi.nph = 1 + +; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape +; (iPlanet) web servers, you MAY need to set an environment variable name that PHP +; will look for to know it is OK to continue execution. Setting this variable MAY +; cause security issues, KNOW WHAT YOU ARE DOING FIRST. +; http://php.net/cgi.redirect-status-env +;cgi.redirect_status_env = ; + +; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's +; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok +; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting +; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting +; of zero causes PHP to behave as before. Default is 1. You should fix your scripts +; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. +; http://php.net/cgi.fix-pathinfo +;cgi.fix_pathinfo=1 + +; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate +; security tokens of the calling client. This allows IIS to define the +; security context that the request runs under. mod_fastcgi under Apache +; does not currently support this feature (03/17/2002) +; Set to 1 if running under IIS. Default is zero. +; http://php.net/fastcgi.impersonate +;fastcgi.impersonate = 1; + +; Disable logging through FastCGI connection. PHP's default behavior is to enable +; this feature. +;fastcgi.logging = 0 + +; cgi.rfc2616_headers configuration option tells PHP what type of headers to +; use when sending HTTP response code. If it's set 0 PHP sends Status: header that +; is supported by Apache. When this option is set to 1 PHP will send +; RFC2616 compliant header. +; Default is zero. +; http://php.net/cgi.rfc2616-headers +;cgi.rfc2616_headers = 0 + +;;;;;;;;;;;;;;;; +; File Uploads ; +;;;;;;;;;;;;;;;; + +; Whether to allow HTTP file uploads. +; http://php.net/file-uploads +file_uploads = On + +; Temporary directory for HTTP uploaded files (will use system default if not +; specified). +; http://php.net/upload-tmp-dir +upload_tmp_dir = /var/tmp + +; Maximum allowed size for uploaded files. +; http://php.net/upload-max-filesize +upload_max_filesize = 16M + +; Maximum number of files that can be uploaded via a single request +max_file_uploads = 20 + +;;;;;;;;;;;;;;;;;; +; Fopen wrappers ; +;;;;;;;;;;;;;;;;;; + +; Whether to allow the treatment of URLs (like http:// or ftp://) as files. +; http://php.net/allow-url-fopen +allow_url_fopen = On + +; Whether to allow include/require to open URLs (like http:// or ftp://) as files. +; http://php.net/allow-url-include +allow_url_include = Off + +; Define the anonymous ftp password (your email address). PHP's default setting +; for this is empty. +; http://php.net/from +;from="john@doe.com" + +; Define the User-Agent string. PHP's default setting for this is empty. +; http://php.net/user-agent +;user_agent="PHP" + +; Default timeout for socket based streams (seconds) +; http://php.net/default-socket-timeout +default_socket_timeout = 60 + +; If your scripts have to deal with files from Macintosh systems, +; or you are running on a Mac and need to deal with files from +; unix or win32 systems, setting this flag will cause PHP to +; automatically detect the EOL character in those files so that +; fgets() and file() will work regardless of the source of the file. +; http://php.net/auto-detect-line-endings +;auto_detect_line_endings = Off + +;;;;;;;;;;;;;;;;;;;;;; +; Dynamic Extensions ; +;;;;;;;;;;;;;;;;;;;;;; + +; On Mandriva, we don't add the extensions in php.ini anymore, we put +; them in /etc/php.d/_.ini, for example 10_recode.ini. +; This is so that the RPMS can register themselves without having to +; modify the php.ini file. + +;;;;;;;;;;;;;;;;;;; +; Module Settings ; +;;;;;;;;;;;;;;;;;;; + +[CLI Server] +; Whether the CLI web server uses ANSI color coding in its terminal output. +cli_server.color = On + +[Date] +; Defines the default timezone used by the date functions +; http://php.net/date.timezone +;date.timezone = + +; http://php.net/date.default-latitude +;date.default_latitude = 31.7667 + +; http://php.net/date.default-longitude +;date.default_longitude = 35.2333 + +; http://php.net/date.sunrise-zenith +;date.sunrise_zenith = 90.583333 + +; http://php.net/date.sunset-zenith +;date.sunset_zenith = 90.583333 + +[filter] +; http://php.net/filter.default +;filter.default = unsafe_raw + +; http://php.net/filter.default-flags +;filter.default_flags = + +[iconv] +;iconv.input_encoding = ISO-8859-1 +;iconv.internal_encoding = ISO-8859-1 +;iconv.output_encoding = ISO-8859-1 + +[intl] +;intl.default_locale = +; This directive allows you to produce PHP errors when some error +; happens within intl functions. The value is the level of the error produced. +; Default is 0, which does not produce any errors. +;intl.error_level = E_WARNING + +[sqlite] +; http://php.net/sqlite.assoc-case +;sqlite.assoc_case = 0 + +[sqlite3] +;sqlite3.extension_dir = + +[Pcre] +;PCRE library backtracking limit. +; http://php.net/pcre.backtrack-limit +;pcre.backtrack_limit=100000 + +;PCRE library recursion limit. +;Please note that if you set this value to a high number you may consume all +;the available process stack and eventually crash PHP (due to reaching the +;stack size limit imposed by the Operating System). +; http://php.net/pcre.recursion-limit +;pcre.recursion_limit=100000 + +[Pdo] +; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" +; http://php.net/pdo-odbc.connection-pooling +;pdo_odbc.connection_pooling=strict + +;pdo_odbc.db2_instance_name + +[Pdo_mysql] +; If mysqlnd is used: Number of cache slots for the internal result set cache +; http://php.net/pdo_mysql.cache_size +pdo_mysql.cache_size = 2000 + +; Default socket name for local MySQL connects. If empty, uses the built-in +; MySQL defaults. +; http://php.net/pdo_mysql.default-socket +pdo_mysql.default_socket= + +[Phar] +; http://php.net/phar.readonly +;phar.readonly = On + +; http://php.net/phar.require-hash +;phar.require_hash = On + +;phar.cache_list = + +[mail function] +; For Win32 only. +; http://php.net/smtp +SMTP = localhost +; http://php.net/smtp-port +smtp_port = 25 + +; For Win32 only. +; http://php.net/sendmail-from +;sendmail_from = me@example.com + +; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). +; http://php.net/sendmail-path +;sendmail_path = + +; Force the addition of the specified parameters to be passed as extra parameters +; to the sendmail binary. These parameters will always replace the value of +; the 5th parameter to mail(), even in safe mode. +;mail.force_extra_parameters = + +; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename +mail.add_x_header = On + +; The path to a log file that will log all mail() calls. Log entries include +; the full path of the script, line number, To address and headers. +;mail.log = + +[SQL] +; http://php.net/sql.safe-mode +sql.safe_mode = Off + +[ODBC] +; http://php.net/odbc.default-db +;odbc.default_db = Not yet implemented + +; http://php.net/odbc.default-user +;odbc.default_user = Not yet implemented + +; http://php.net/odbc.default-pw +;odbc.default_pw = Not yet implemented + +; Controls the ODBC cursor model. +; Default: SQL_CURSOR_STATIC (default). +;odbc.default_cursortype + +; Allow or prevent persistent links. +; http://php.net/odbc.allow-persistent +odbc.allow_persistent = On + +; Check that a connection is still valid before reuse. +; http://php.net/odbc.check-persistent +odbc.check_persistent = On + +; Maximum number of persistent links. -1 means no limit. +; http://php.net/odbc.max-persistent +odbc.max_persistent = -1 + +; Maximum number of links (persistent + non-persistent). -1 means no limit. +; http://php.net/odbc.max-links +odbc.max_links = -1 + +; Handling of LONG fields. Returns number of bytes to variables. 0 means +; passthru. +; http://php.net/odbc.defaultlrl +odbc.defaultlrl = 4096 + +; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. +; See the documentation on odbc_binmode and odbc_longreadlen for an explanation +; of odbc.defaultlrl and odbc.defaultbinmode +; http://php.net/odbc.defaultbinmode +odbc.defaultbinmode = 1 + +;birdstep.max_links = -1 + +[Interbase] +; Allow or prevent persistent links. +ibase.allow_persistent = 1 + +; Maximum number of persistent links. -1 means no limit. +ibase.max_persistent = -1 + +; Maximum number of links (persistent + non-persistent). -1 means no limit. +ibase.max_links = -1 + +; Default database name for ibase_connect(). +;ibase.default_db = + +; Default username for ibase_connect(). +;ibase.default_user = + +; Default password for ibase_connect(). +;ibase.default_password = + +; Default charset for ibase_connect(). +;ibase.default_charset = + +; Default timestamp format. +ibase.timestampformat = "%Y-%m-%d %H:%M:%S" + +; Default date format. +ibase.dateformat = "%Y-%m-%d" + +; Default time format. +ibase.timeformat = "%H:%M:%S" + +[MySQL] +; Allow accessing, from PHP's perspective, local files with LOAD DATA statements +; http://php.net/mysql.allow_local_infile +mysql.allow_local_infile = On + +; Allow or prevent persistent links. +; http://php.net/mysql.allow-persistent +mysql.allow_persistent = On + +; If mysqlnd is used: Number of cache slots for the internal result set cache +; http://php.net/mysql.cache_size +mysql.cache_size = 2000 + +; Maximum number of persistent links. -1 means no limit. +; http://php.net/mysql.max-persistent +mysql.max_persistent = -1 + +; Maximum number of links (persistent + non-persistent). -1 means no limit. +; http://php.net/mysql.max-links +mysql.max_links = -1 + +; Default port number for mysql_connect(). If unset, mysql_connect() will use +; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the +; compile-time value defined MYSQL_PORT (in that order). Win32 will only look +; at MYSQL_PORT. +; http://php.net/mysql.default-port +mysql.default_port = + +; Default socket name for local MySQL connects. If empty, uses the built-in +; MySQL defaults. +; http://php.net/mysql.default-socket +mysql.default_socket = + +; Default host for mysql_connect() (doesn't apply in safe mode). +; http://php.net/mysql.default-host +mysql.default_host = + +; Default user for mysql_connect() (doesn't apply in safe mode). +; http://php.net/mysql.default-user +mysql.default_user = + +; Default password for mysql_connect() (doesn't apply in safe mode). +; Note that this is generally a *bad* idea to store passwords in this file. +; *Any* user with PHP access can run 'echo get_cfg_var("mysql.default_password") +; and reveal this password! And of course, any users with read access to this +; file will be able to reveal the password as well. +; http://php.net/mysql.default-password +mysql.default_password = + +; Maximum time (in seconds) for connect timeout. -1 means no limit +; http://php.net/mysql.connect-timeout +mysql.connect_timeout = 60 + +; Trace mode. When trace_mode is active (=On), warnings for table/index scans and +; SQL-Errors will be displayed. +; http://php.net/mysql.trace-mode +mysql.trace_mode = Off + +[MySQLi] + +; Maximum number of persistent links. -1 means no limit. +; http://php.net/mysqli.max-persistent +mysqli.max_persistent = -1 + +; Allow accessing, from PHP's perspective, local files with LOAD DATA statements +; http://php.net/mysqli.allow_local_infile +;mysqli.allow_local_infile = On + +; Allow or prevent persistent links. +; http://php.net/mysqli.allow-persistent +mysqli.allow_persistent = On + +; Maximum number of links. -1 means no limit. +; http://php.net/mysqli.max-links +mysqli.max_links = -1 + +; If mysqlnd is used: Number of cache slots for the internal result set cache +; http://php.net/mysqli.cache_size +mysqli.cache_size = 2000 + +; Default port number for mysqli_connect(). If unset, mysqli_connect() will use +; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the +; compile-time value defined MYSQL_PORT (in that order). Win32 will only look +; at MYSQL_PORT. +; http://php.net/mysqli.default-port +mysqli.default_port = 3306 + +; Default socket name for local MySQL connects. If empty, uses the built-in +; MySQL defaults. +; http://php.net/mysqli.default-socket +mysqli.default_socket = + +; Default host for mysql_connect() (doesn't apply in safe mode). +; http://php.net/mysqli.default-host +mysqli.default_host = + +; Default user for mysql_connect() (doesn't apply in safe mode). +; http://php.net/mysqli.default-user +mysqli.default_user = + +; Default password for mysqli_connect() (doesn't apply in safe mode). +; Note that this is generally a *bad* idea to store passwords in this file. +; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") +; and reveal this password! And of course, any users with read access to this +; file will be able to reveal the password as well. +; http://php.net/mysqli.default-pw +mysqli.default_pw = + +; Allow or prevent reconnect +mysqli.reconnect = Off + +[mysqlnd] +; Enable / Disable collection of general statistics by mysqlnd which can be +; used to tune and monitor MySQL operations. +; http://php.net/mysqlnd.collect_statistics +mysqlnd.collect_statistics = On + +; Enable / Disable collection of memory usage statistics by mysqlnd which can be +; used to tune and monitor MySQL operations. +; http://php.net/mysqlnd.collect_memory_statistics +mysqlnd.collect_memory_statistics = Off + +; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. +; http://php.net/mysqlnd.net_cmd_buffer_size +;mysqlnd.net_cmd_buffer_size = 2048 + +; Size of a pre-allocated buffer used for reading data sent by the server in +; bytes. +; http://php.net/mysqlnd.net_read_buffer_size +;mysqlnd.net_read_buffer_size = 32768 + +[OCI8] + +; Connection: Enables privileged connections using external +; credentials (OCI_SYSOPER, OCI_SYSDBA) +; http://php.net/oci8.privileged-connect +;oci8.privileged_connect = Off + +; Connection: The maximum number of persistent OCI8 connections per +; process. Using -1 means no limit. +; http://php.net/oci8.max-persistent +;oci8.max_persistent = -1 + +; Connection: The maximum number of seconds a process is allowed to +; maintain an idle persistent connection. Using -1 means idle +; persistent connections will be maintained forever. +; http://php.net/oci8.persistent-timeout +;oci8.persistent_timeout = -1 + +; Connection: The number of seconds that must pass before issuing a +; ping during oci_pconnect() to check the connection validity. When +; set to 0, each oci_pconnect() will cause a ping. Using -1 disables +; pings completely. +; http://php.net/oci8.ping-interval +;oci8.ping_interval = 60 + +; Connection: Set this to a user chosen connection class to be used +; for all pooled server requests with Oracle 11g Database Resident +; Connection Pooling (DRCP). To use DRCP, this value should be set to +; the same string for all web servers running the same application, +; the database pool must be configured, and the connection string must +; specify to use a pooled server. +;oci8.connection_class = + +; High Availability: Using On lets PHP receive Fast Application +; Notification (FAN) events generated when a database node fails. The +; database must also be configured to post FAN events. +;oci8.events = Off + +; Tuning: This option enables statement caching, and specifies how +; many statements to cache. Using 0 disables statement caching. +; http://php.net/oci8.statement-cache-size +;oci8.statement_cache_size = 20 + +; Tuning: Enables statement prefetching and sets the default number of +; rows that will be fetched automatically after statement execution. +; http://php.net/oci8.default-prefetch +;oci8.default_prefetch = 100 + +; Compatibility. Using On means oci_close() will not close +; oci_connect() and oci_new_connect() connections. +; http://php.net/oci8.old-oci-close-semantics +;oci8.old_oci_close_semantics = Off + +[PostgreSQL] +; Allow or prevent persistent links. +; http://php.net/pgsql.allow-persistent +pgsql.allow_persistent = On + +; Detect broken persistent links always with pg_pconnect(). +; Auto reset feature requires a little overheads. +; http://php.net/pgsql.auto-reset-persistent +pgsql.auto_reset_persistent = Off + +; Maximum number of persistent links. -1 means no limit. +; http://php.net/pgsql.max-persistent +pgsql.max_persistent = -1 + +; Maximum number of links (persistent+non persistent). -1 means no limit. +; http://php.net/pgsql.max-links +pgsql.max_links = -1 + +; Ignore PostgreSQL backends Notice message or not. +; Notice message logging require a little overheads. +; http://php.net/pgsql.ignore-notice +pgsql.ignore_notice = 0 + +; Log PostgreSQL backends Notice message or not. +; Unless pgsql.ignore_notice=0, module cannot log notice message. +; http://php.net/pgsql.log-notice +pgsql.log_notice = 0 + +[Sybase-CT] +; Allow or prevent persistent links. +; http://php.net/sybct.allow-persistent +sybct.allow_persistent = On + +; Maximum number of persistent links. -1 means no limit. +; http://php.net/sybct.max-persistent +sybct.max_persistent = -1 + +; Maximum number of links (persistent + non-persistent). -1 means no limit. +; http://php.net/sybct.max-links +sybct.max_links = -1 + +; Minimum server message severity to display. +; http://php.net/sybct.min-server-severity +sybct.min_server_severity = 10 + +; Minimum client message severity to display. +; http://php.net/sybct.min-client-severity +sybct.min_client_severity = 10 + +; Set per-context timeout +; http://php.net/sybct.timeout +;sybct.timeout= + +;sybct.packet_size + +; The maximum time in seconds to wait for a connection attempt to succeed before returning failure. +; Default: one minute +;sybct.login_timeout= + +; The name of the host you claim to be connecting from, for display by sp_who. +; Default: none +;sybct.hostname= + +; Allows you to define how often deadlocks are to be retried. -1 means "forever". +; Default: 0 +;sybct.deadlock_retry_count= + +[bcmath] +; Number of decimal digits for all bcmath functions. +; http://php.net/bcmath.scale +bcmath.scale = 0 + +[browscap] +; http://php.net/browscap +;browscap = extra/browscap.ini + +[Session] +; Handler used to store/retrieve data. +; http://php.net/session.save-handler +session.save_handler = files + +; Argument passed to save_handler. In the case of files, this is the path +; where data files are stored. Note: Windows users have to change this +; variable in order to use PHP's session functions. +; +; The path can be defined as: +; +; session.save_path = "N;/path" +; +; where N is an integer. Instead of storing all the session files in +; /path, what this will do is use subdirectories N-levels deep, and +; store the session data in those directories. This is useful if you +; or your OS have problems with lots of files in one directory, and is +; a more efficient layout for servers that handle lots of sessions. +; +; NOTE 1: PHP will not create this directory structure automatically. +; You can use the script in the ext/session dir for that purpose. +; NOTE 2: See the section on garbage collection below if you choose to +; use subdirectories for session storage +; +; The file storage module creates files using mode 600 by default. +; You can change that by using +; +; session.save_path = "N;MODE;/path" +; +; where MODE is the octal representation of the mode. Note that this +; does not overwrite the process's umask. +; http://php.net/session.save-path + +; On Mandriva, we don't add the extensions in php.ini anymore, we put +; them in /etc/php.d/_.ini, for example 10_recode.ini. +; +; This is so that the RPMS can register themselves without having to +; modify the php.ini file. +session.save_path = "/var/lib/php" + +; Whether to use cookies. +; http://php.net/session.use-cookies +session.use_cookies = 1 + +; http://php.net/session.cookie-secure +;session.cookie_secure = + +; This option forces PHP to fetch and use a cookie for storing and maintaining +; the session id. We encourage this operation as it's very helpful in combatting +; session hijacking when not specifying and managing your own session id. It is +; not the end all be all of session hijacking defense, but it's a good start. +; http://php.net/session.use-only-cookies +session.use_only_cookies = 1 + +; Name of the session (used as cookie name). +; http://php.net/session.name +session.name = PHPSESSID + +; Initialize session on request startup. +; http://php.net/session.auto-start +session.auto_start = 0 + +; Lifetime in seconds of cookie or, if 0, until browser is restarted. +; http://php.net/session.cookie-lifetime +session.cookie_lifetime = 0 + +; The path for which the cookie is valid. +; http://php.net/session.cookie-path +session.cookie_path = / + +; The domain for which the cookie is valid. +; http://php.net/session.cookie-domain +session.cookie_domain = + +; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. +; http://php.net/session.cookie-httponly +session.cookie_httponly = + +; Handler used to serialize data. php is the standard serializer of PHP. +; http://php.net/session.serialize-handler +session.serialize_handler = php + +; Defines the probability that the 'garbage collection' process is started +; on every session initialization. The probability is calculated by using +; gc_probability/gc_divisor. Where session.gc_probability is the numerator +; and gc_divisor is the denominator in the equation. Setting this value to 1 +; when the session.gc_divisor value is 100 will give you approximately a 1% chance +; the gc will run on any give request. +; Default Value: 1 +; Development Value: 1 +; Production Value: 1 +; http://php.net/session.gc-probability + +; This is disabled in the Mandriva Linux packages, due to the strict permissions +; on /var/lib/php. Instead of setting this here, see the cronjob at +; /etc/cron.d/php, which uses the session.gc_maxlifetime setting below +session.gc_probability = 0 + +; Defines the probability that the 'garbage collection' process is started on every +; session initialization. The probability is calculated by using the following equation: +; gc_probability/gc_divisor. Where session.gc_probability is the numerator and +; session.gc_divisor is the denominator in the equation. Setting this value to 1 +; when the session.gc_divisor value is 100 will give you approximately a 1% chance +; the gc will run on any give request. Increasing this value to 1000 will give you +; a 0.1% chance the gc will run on any give request. For high volume production servers, +; this is a more efficient approach. +; Default Value: 100 +; Development Value: 1000 +; Production Value: 1000 +; http://php.net/session.gc-divisor +session.gc_divisor = 100 + +; After this number of seconds, stored data will be seen as 'garbage' and +; cleaned up by the garbage collection process. +; http://php.net/session.gc-maxlifetime +session.gc_maxlifetime = 1440 + +; NOTE: If you are using the subdirectory option for storing session files +; (see session.save_path above), then garbage collection does *not* +; happen automatically. You will need to do your own garbage +; collection through a shell script, cron entry, or some other method. +; For example, the following script would is the equivalent of +; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): +; find /path/to/sessions -cmin +24 | xargs rm + +; PHP 4.2 and less have an undocumented feature/bug that allows you to +; to initialize a session variable in the global scope. +; PHP 4.3 and later will warn you, if this feature is used. +; You can disable the feature and the warning separately. At this time, +; the warning is only displayed, if bug_compat_42 is enabled. This feature +; introduces some serious security problems if not handled correctly. It's +; recommended that you do not use this feature on production servers. But you +; should enable this on development servers and enable the warning as well. If you +; do not enable the feature on development servers, you won't be warned when it's +; used and debugging errors caused by this can be difficult to track down. +; Default Value: On +; Development Value: On +; Production Value: Off +; http://php.net/session.bug-compat-42 +session.bug_compat_42 = Off + +; This setting controls whether or not you are warned by PHP when initializing a +; session value into the global space. session.bug_compat_42 must be enabled before +; these warnings can be issued by PHP. See the directive above for more information. +; Default Value: On +; Development Value: On +; Production Value: Off +; http://php.net/session.bug-compat-warn +session.bug_compat_warn = Off + +; Check HTTP Referer to invalidate externally stored URLs containing ids. +; HTTP_REFERER has to contain this substring for the session to be +; considered as valid. +; http://php.net/session.referer-check +session.referer_check = + +; How many bytes to read from the file. +; http://php.net/session.entropy-length +;session.entropy_length = 32 + +; Specified here to create the session id. +; http://php.net/session.entropy-file +; Defaults to /dev/urandom +; On systems that don't have /dev/urandom but do have /dev/arandom, this will default to /dev/arandom +; If neither are found at compile time, the default is no entropy file. +; On windows, setting the entropy_length setting will activate the +; Windows random source (using the CryptoAPI) +session.entropy_file = /dev/urandom + +; Set to {nocache,private,public,} to determine HTTP caching aspects +; or leave this empty to avoid sending anti-caching headers. +; http://php.net/session.cache-limiter +session.cache_limiter = nocache + +; Document expires after n minutes. +; http://php.net/session.cache-expire +session.cache_expire = 180 + +; trans sid support is disabled by default. +; Use of trans sid may risk your users security. +; Use this option with caution. +; - User may send URL contains active session ID +; to other person via. email/irc/etc. +; - URL that contains active session ID may be stored +; in publically accessible computer. +; - User may access your site with the same session ID +; always using URL stored in browser's history or bookmarks. +; http://php.net/session.use-trans-sid +session.use_trans_sid = 0 + +; Select a hash function for use in generating session ids. +; Possible Values +; 0 (MD5 128 bits) +; 1 (SHA-1 160 bits) +; This option may also be set to the name of any hash function supported by +; the hash extension. A list of available hashes is returned by the hash_algos() +; function. +; http://php.net/session.hash-function +session.hash_function = 0 + +; Define how many bits are stored in each character when converting +; the binary hash data to something readable. +; Possible values: +; 4 (4 bits: 0-9, a-f) +; 5 (5 bits: 0-9, a-v) +; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") +; Default Value: 4 +; Development Value: 5 +; Production Value: 5 +; http://php.net/session.hash-bits-per-character +session.hash_bits_per_character = 5 + +; The URL rewriter will look for URLs in a defined set of HTML tags. +; form/fieldset are special; if you include them here, the rewriter will +; add a hidden field with the info which is otherwise appended +; to URLs. If you want XHTML conformity, remove the form entry. +; Note that all valid entries require a "=", even if no value follows. +; Default Value: "a=href,area=href,frame=src,form=,fieldset=" +; Development Value: "a=href,area=href,frame=src,input=src,form=fakeentry" +; Production Value: "a=href,area=href,frame=src,input=src,form=fakeentry" +; http://php.net/url-rewriter.tags +url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry" + +; Enable upload progress tracking in $_SESSION +; Default Value: On +; Development Value: On +; Production Value: On +; http://php.net/session.upload-progress.enabled +;session.upload_progress.enabled = On + +; Cleanup the progress information as soon as all POST data has been read +; (i.e. upload completed). +; Default Value: On +; Development Value: On +; Production Value: On +; http://php.net/session.upload-progress.cleanup +;session.upload_progress.cleanup = On + +; A prefix used for the upload progress key in $_SESSION +; Default Value: "upload_progress_" +; Development Value: "upload_progress_" +; Production Value: "upload_progress_" +; http://php.net/session.upload-progress.prefix +;session.upload_progress.prefix = "upload_progress_" + +; The index name (concatenated with the prefix) in $_SESSION +; containing the upload progress information +; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" +; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" +; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" +; http://php.net/session.upload-progress.name +;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" + +; How frequently the upload progress should be updated. +; Given either in percentages (per-file), or in bytes +; Default Value: "1%" +; Development Value: "1%" +; Production Value: "1%" +; http://php.net/session.upload-progress.freq +;session.upload_progress.freq = "1%" + +; The minimum delay between updates, in seconds +; Default Value: 1 +; Development Value: 1 +; Production Value: 1 +; http://php.net/session.upload-progress.min-freq +;session.upload_progress.min_freq = "1" + +[MSSQL] +; Allow or prevent persistent links. +mssql.allow_persistent = On + +; Maximum number of persistent links. -1 means no limit. +mssql.max_persistent = -1 + +; Maximum number of links (persistent+non persistent). -1 means no limit. +mssql.max_links = -1 + +; Minimum error severity to display. +mssql.min_error_severity = 10 + +; Minimum message severity to display. +mssql.min_message_severity = 10 + +; Compatibility mode with old versions of PHP 3.0. +mssql.compatability_mode = Off + +; Connect timeout +;mssql.connect_timeout = 5 + +; Query timeout +;mssql.timeout = 60 + +; Valid range 0 - 2147483647. Default = 4096. +;mssql.textlimit = 4096 + +; Valid range 0 - 2147483647. Default = 4096. +;mssql.textsize = 4096 + +; Limits the number of records in each batch. 0 = all records in one batch. +;mssql.batchsize = 0 + +; Specify how datetime and datetim4 columns are returned +; On => Returns data converted to SQL server settings +; Off => Returns values as YYYY-MM-DD hh:mm:ss + +; https://qa.mandriva.com/show_bug.cgi?id=41297 +mssql.datetimeconvert = Off + +; Use NT authentication when connecting to the server +mssql.secure_connection = Off + +; Specify max number of processes. -1 = library default +; msdlib defaults to 25 +; FreeTDS defaults to 4096 +;mssql.max_procs = -1 + +; Specify client character set. +; If empty or not set the client charset from freetds.conf is used +; This is only used when compiled with FreeTDS +;mssql.charset = "ISO-8859-1" + +[Assertion] +; Assert(expr); active by default. +; http://php.net/assert.active +;assert.active = On + +; Issue a PHP warning for each failed assertion. +; http://php.net/assert.warning +;assert.warning = On + +; Don't bail out by default. +; http://php.net/assert.bail +;assert.bail = Off + +; User-function to be called if an assertion fails. +; http://php.net/assert.callback +;assert.callback = 0 + +; Eval the expression with current error_reporting(). Set to true if you want +; error_reporting(0) around the eval(). +; http://php.net/assert.quiet-eval +;assert.quiet_eval = 0 + +[COM] +; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs +; http://php.net/com.typelib-file +;com.typelib_file = + +; allow Distributed-COM calls +; http://php.net/com.allow-dcom +;com.allow_dcom = true + +; autoregister constants of a components typlib on com_load() +; http://php.net/com.autoregister-typelib +;com.autoregister_typelib = true + +; register constants casesensitive +; http://php.net/com.autoregister-casesensitive +;com.autoregister_casesensitive = false + +; show warnings on duplicate constant registrations +; http://php.net/com.autoregister-verbose +;com.autoregister_verbose = true + +; The default character set code-page to use when passing strings to and from COM objects. +; Default: system ANSI code page +;com.code_page= + +[mbstring] +; language for internal character representation. +; http://php.net/mbstring.language +;mbstring.language = Japanese + +; internal/script encoding. +; Some encoding cannot work as internal encoding. +; (e.g. SJIS, BIG5, ISO-2022-*) +; http://php.net/mbstring.internal-encoding +;mbstring.internal_encoding = EUC-JP + +; http input encoding. +; http://php.net/mbstring.http-input +;mbstring.http_input = auto + +; http output encoding. mb_output_handler must be +; registered as output buffer to function +; http://php.net/mbstring.http-output +;mbstring.http_output = SJIS + +; enable automatic encoding translation according to +; mbstring.internal_encoding setting. Input chars are +; converted to internal encoding by setting this to On. +; Note: Do _not_ use automatic encoding translation for +; portable libs/applications. +; http://php.net/mbstring.encoding-translation +;mbstring.encoding_translation = Off + +; automatic encoding detection order. +; auto means +; http://php.net/mbstring.detect-order +;mbstring.detect_order = auto + +; substitute_character used when character cannot be converted +; one from another +; http://php.net/mbstring.substitute-character +;mbstring.substitute_character = none; + +; overload(replace) single byte functions by mbstring functions. +; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), +; etc. Possible values are 0,1,2,4 or combination of them. +; For example, 7 for overload everything. +; 0: No overload +; 1: Overload mail() function +; 2: Overload str*() functions +; 4: Overload ereg*() functions +; http://php.net/mbstring.func-overload +;mbstring.func_overload = 0 + +; enable strict encoding detection. +;mbstring.strict_detection = Off + +; This directive specifies the regex pattern of content types for which mb_output_handler() +; is activated. +; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) +;mbstring.http_output_conv_mimetype= + +[gd] +; Tell the jpeg decode to ignore warnings and try to create +; a gd image. The warning will then be displayed as notices +; disabled by default +; http://php.net/gd.jpeg-ignore-warning +;gd.jpeg_ignore_warning = 0 + +[exif] +; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. +; With mbstring support this will automatically be converted into the encoding +; given by corresponding encode setting. When empty mbstring.internal_encoding +; is used. For the decode settings you can distinguish between motorola and +; intel byte order. A decode setting cannot be empty. +; http://php.net/exif.encode-unicode +;exif.encode_unicode = ISO-8859-15 + +; http://php.net/exif.decode-unicode-motorola +;exif.decode_unicode_motorola = UCS-2BE + +; http://php.net/exif.decode-unicode-intel +;exif.decode_unicode_intel = UCS-2LE + +; http://php.net/exif.encode-jis +;exif.encode_jis = + +; http://php.net/exif.decode-jis-motorola +;exif.decode_jis_motorola = JIS + +; http://php.net/exif.decode-jis-intel +;exif.decode_jis_intel = JIS + +[Tidy] +; The path to a default tidy configuration file to use when using tidy +; http://php.net/tidy.default-config +;tidy.default_config = /usr/local/lib/php/default.tcfg + +; Should tidy clean and repair output automatically? +; WARNING: Do not use this option if you are generating non-html content +; such as dynamic images +; http://php.net/tidy.clean-output +tidy.clean_output = Off + +[soap] +; Enables or disables WSDL caching feature. +; http://php.net/soap.wsdl-cache-enabled +soap.wsdl_cache_enabled=1 + +; Sets the directory name where SOAP extension will put cache files. +; http://php.net/soap.wsdl-cache-dir +soap.wsdl_cache_dir="/var/tmp" + +; (time to live) Sets the number of second while cached file will be used +; instead of original one. +; http://php.net/soap.wsdl-cache-ttl +soap.wsdl_cache_ttl=86400 + +; Sets the size of the cache limit. (Max. number of WSDL files to cache) +soap.wsdl_cache_limit = 5 + +[sysvshm] +; A default size of the shared memory segment +;sysvshm.init_mem = 10000 + +[ldap] +; Sets the maximum number of open links or -1 for unlimited. +ldap.max_links = -1 + +[mcrypt] +; For more information about mcrypt settings see http://php.net/mcrypt-module-open + +; Directory where to load mcrypt algorithms +; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt) +;mcrypt.algorithms_dir= + +; Directory where to load mcrypt modes +; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt) +;mcrypt.modes_dir= + +[dba] +;dba.default_handler= + +; Local Variables: +; tab-width: 4 +; End: diff --git a/php.spec b/php.spec new file mode 100644 index 0000000..6d10aa0 --- /dev/null +++ b/php.spec @@ -0,0 +1,2679 @@ +%define _build_pkgcheck_set %{nil} +%define _build_pkgcheck_srpm %{nil} + +%define _disable_lto 1 + +%define build_test 0 +%{?_with_test: %{expand: %%global build_test 1}} +%{?_without_test: %{expand: %%global build_test 0}} + +%define build_libmagic 0 +%{?_with_libmagic: %{expand: %%global build_libmagic 1}} +%{?_without_libmagic: %{expand: %%global build_libmagic 0}} + +%define php7_common_major 5 +%define libname %mklibname php7_common %{php7_common_major} + +%define __noautoreq '.*/bin/awk|.*/bin/gawk' + +%define beta RC1 + +Summary: The PHP7 scripting language +Name: php +Version: 7.3.0 +%if "%{beta}" != "" +Release: 0.%{beta}.1 +Source0: https://downloads.php.net/~cmb/php-%{version}%{beta}.tar.xz +%else +Release: 1 +Source0: http://ch1.php.net/distributions/php-%{version}.tar.xz +%endif +Group: Development/PHP +License: PHP License +URL: http://www.php.net +Source2: maxlifetime +Source3: php.crond +Source4: php-fpm.service +Source5: php-fpm.sysconf +Source6: php-fpm.logrotate +# S7 comes from ext/fileinfo/create_data_file.php but could be removed someday +Source7: create_data_file.php +Source9: php-fpm-tmpfiles.conf +Source10: php.ini +Patch1: php-shared.diff +Patch2: php-mariadb-10.3.patch +Patch3: php-libtool.diff +Patch4: php-phpize.diff +Patch5: php-phpbuilddir.diff +# http://www.outoforder.cc/projects/apache/mod_transform/ +# http://www.outoforder.cc/projects/apache/mod_transform/patches/php7-apache2-filters.patch +Patch6: php5-apache2-filters.diff +Patch8: php-xmlrpc_epi.patch +Patch9: php-xmlrpc_no_rpath.diff +Patch10: php-7.3.0rc1-compile.patch +Patch11: php-5.3.8-bdb-5.2.diff +Patch12: php-5.5.6-db-6.0.patch +Patch13: php-7.0.1-clang-warnings.patch +Patch14: php-7.2.0-visibility.patch +##################################################################### +# Stolen from PLD +Patch20: php-mail.diff +Patch21: php-filter-shared.diff +Patch22: php-dba-link.patch +Patch23: php-zlib-for-getimagesize.patch +# for kolab2 +# P50 was rediffed from PLD (php-5.3.3-8.src.rpm) which merges the annotation and status-current patches +Patch27: php-imap-annotation+status-current.diff +# P51 was taken from http://kolab.org/cgi-bin/viewcvs-kolab.cgi/server/php/patches/php-5.3.2/ +Patch28: php-imap-myrights.diff +Patch29: php-5.3.x-fpm-0.6.5-shared.diff +Patch30: php-5.3.x-fpm-0.6.5-mdv_conf.diff +##################################################################### +# stolen from debian +Patch50: php-session.save_path.diff +Patch51: php-exif_nesting_level.diff +##################################################################### +# Stolen from fedora +Patch101: php-cxx.diff +Patch102: php-install.diff +Patch105: php-umask.diff +# Fixes for extension modules +Patch113: php-libc-client.diff +Patch114: php-no_pam_in_c-client.diff +# Functional changes +Patch115: php-dlopen.diff +# Fix bugs +Patch120: php-tests-wddx.diff +Patch121: php-bug43221.diff +Patch123: php-bug43589.diff +Patch227: php-5.3.0RC1-enchant_lib64_fix.diff +Patch228: php-5.3.0RC2-xmlrpc-epi_fix.diff +# Use pkg-config instead of (removed as of 2.9.1) freetype-config +Patch229: php-7.2.5-freetype-2.9.1.patch + +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: bison +BuildRequires: byacc +BuildRequires: file +BuildRequires: flex +BuildRequires: lemon +BuildRequires: libtool +BuildRequires: openssl +BuildRequires: systemd +BuildRequires: re2c >= 0.13.4 + +BuildRequires: pkgconfig(enchant) +BuildRequires: pkgconfig(expat) +BuildRequires: pkgconfig(freetype2) +BuildRequires: pkgconfig(libcurl) +BuildRequires: pkgconfig(libpcre) +BuildRequires: pkgconfig(libpng) +BuildRequires: pkgconfig(libwebp) +BuildRequires: pkgconfig(libxml-2.0) +BuildRequires: pkgconfig(libxslt) +BuildRequires: pkgconfig(libzip) +BuildRequires: pkgconfig(ncurses) +BuildRequires: pkgconfig(openssl) +BuildRequires: pkgconfig(sqlite3) +BuildRequires: pkgconfig(uuid) +BuildRequires: pkgconfig(x11) +BuildRequires: pkgconfig(xpm) +#BuildRequires: pkgconfig(libxcrypt) +BuildRequires: pkgconfig(libpcre2-posix) +BuildRequires: pkgconfig(libpcre2-8) +BuildRequires: pkgconfig(libpcre2-16) +BuildRequires: pkgconfig(libpcre2-32) + +BuildRequires: apache-devel >= 2.2.0 +BuildRequires: aspell-devel +BuildRequires: bzip2-devel +BuildRequires: c-client-devel >= 2007 +BuildRequires: db-devel +BuildRequires: elfutils-devel +BuildRequires: freetds-devel >= 0.63 +BuildRequires: gdbm-devel +BuildRequires: gd-devel >= 2.0.33 +BuildRequires: gettext-devel +BuildRequires: gmp-devel +BuildRequires: gpm-devel +BuildRequires: icu-devel >= 49.0 +BuildRequires: jpeg-devel +BuildRequires: openldap-devel +BuildRequires: sasl-devel +BuildRequires: libtool-devel +BuildRequires: mbfl-devel >= 1.2.0 +BuildRequires: mysql-devel >= 4.1.7 +BuildRequires: lm_sensors-devel +BuildRequires: net-snmp-devel +BuildRequires: net-snmp-mibs +BuildRequires: onig-devel >= 5.9.2 +BuildRequires: pam-devel +BuildRequires: postgresql-devel +BuildRequires: readline-devel +BuildRequires: recode-devel +BuildRequires: t1lib-devel +BuildRequires: tidy-devel +BuildRequires: unixODBC-devel >= 2.2.1 +BuildRequires: xmlrpc-epi-devel +# For _pre_useradd +BuildRequires: rpm-helper +%if %{build_libmagic} +BuildRequires: magic-devel +%endif +Epoch: 3 + +# stupid postgresql... stupid build system... +# this is needed due to the postgresql packaging and due to bugs like this: +# https://qa.mandriva.com/show_bug.cgi?id=52527 +%define postgresql_version %(pg_config &>/dev/null && pg_config 2>/dev/null | grep "^VERSION" | awk '{ print $4 }' 2>/dev/null || echo 0) + +%description +PHP7 is an HTML-embeddable scripting language. PHP7 offers built-in database +integration for several commercial and non-commercial database management +systems, so writing a database-enabled script with PHP7 is fairly simple. The +most common use of PHP7 coding is probably as a replacement for CGI scripts. + +%package cli +Summary: PHP7 CLI interface +Group: Development/Other +Requires: %{libname} >= %{EVRD} +Requires: php-ctype >= %{EVRD} +Requires: php-filter >= %{EVRD} +Requires: php-ftp >= %{EVRD} +Requires: php-gettext >= %{EVRD} +Requires: php-hash >= %{EVRD} +Requires: php-ini >= %{version} +Requires: php-json >= %{EVRD} +Requires: php-openssl >= %{EVRD} +Requires: php-posix >= %{EVRD} +Requires: php-session >= %{EVRD} +# Suggests: php-suhosin >= 0.9.33 +Requires: php-sysvsem >= %{EVRD} +Requires: php-sysvshm >= %{EVRD} +Requires: php-timezonedb >= 3:2009.10 +Requires: php-tokenizer >= %{EVRD} +Requires: php-xmlreader >= %{EVRD} +Requires: php-xmlwriter >= %{EVRD} +Requires: php-zlib >= %{EVRD} +Requires: php-xml >= %{EVRD} +Provides: php = %{EVRD} +Provides: /usr/bin/php + +%description cli +PHP7 is an HTML-embeddable scripting language. PHP7 offers built-in database +integration for several commercial and non-commercial database management +systems, so writing a database-enabled script with PHP7 is fairly simple. The +most common use of PHP7 coding is probably as a replacement for CGI scripts. + +This package contains a command-line (CLI) version of php. You must also +install libphp7_common. If you need apache module support, you also need to +install the apache-mod_php package. + +%package dbg +Summary: Debugging version of the PHP7 CLI interface +Group: Development/Other +Requires: %{libname} >= %{EVRD} +Requires: php-ctype >= %{EVRD} +Requires: php-filter >= %{EVRD} +Requires: php-ftp >= %{EVRD} +Requires: php-gettext >= %{EVRD} +Requires: php-hash >= %{EVRD} +Requires: php-ini >= %{version} +Requires: php-json >= %{EVRD} +Requires: php-openssl >= %{EVRD} +Requires: php-posix >= %{EVRD} +Requires: php-session >= %{EVRD} +# Suggests: php-suhosin >= 0.9.33 +Requires: php-sysvsem >= %{EVRD} +Requires: php-sysvshm >= %{EVRD} +Requires: php-timezonedb >= 3:2009.10 +Requires: php-tokenizer >= %{EVRD} +Requires: php-xmlreader >= %{EVRD} +Requires: php-xmlwriter >= %{EVRD} +Requires: php-zlib >= %{EVRD} +Requires: php-xml >= %{EVRD} +Provides: php = %{EVRD} + +%description dbg +PHP7 is an HTML-embeddable scripting language. PHP7 offers built-in database +integration for several commercial and non-commercial database management +systems, so writing a database-enabled script with PHP7 is fairly simple. The +most common use of PHP7 coding is probably as a replacement for CGI scripts. + +This package contains a debugging version of php. You must also +install libphp7_common. If you need apache module support, you also need to +install the apache-mod_php package. + +%package cgi +Summary: PHP7 CGI interface +Group: Development/Other +Requires: %{libname} >= %{EVRD} +Requires: php-ctype >= %{EVRD} +Requires: php-filter >= %{EVRD} +Requires: php-ftp >= %{EVRD} +Requires: php-gettext >= %{EVRD} +Requires: php-hash >= %{EVRD} +Requires: php-ini >= %{version} +Requires: php-json >= %{EVRD} +Requires: php-openssl >= %{EVRD} +Requires: php-posix >= %{EVRD} +Requires: php-session >= %{EVRD} +# Suggests: php-suhosin >= 0.9.33 +Requires: php-sysvsem >= %{EVRD} +Requires: php-sysvshm >= %{EVRD} +Requires: php-timezonedb >= 3:2009.10 +Requires: php-tokenizer >= %{EVRD} +Requires: php-xmlreader >= %{EVRD} +Requires: php-xmlwriter >= %{EVRD} +Requires: php-zlib >= %{EVRD} +Requires: php-xml >= %{EVRD} +Provides: php = %{EVRD} +Provides: php-fcgi = %{EVRD} +Obsoletes: php-fcgi +# because of a added compat softlink +Conflicts: php-fcgi < %{EVRD} + +%description cgi +PHP7 is an HTML-embeddable scripting language. PHP7 offers built-in database +integration for several commercial and non-commercial database management +systems, so writing a database-enabled script with PHP7 is fairly simple. The +most common use of PHP7 coding is probably as a replacement for CGI scripts. + +This package contains a standalone (CGI) version of php with FastCGI support. +You must also install libphp7_common. If you need apache module support, you +also need to install the apache-mod_php package. + +%package -n %{libname} +Summary: Shared library for PHP7 +Group: Development/Other +Provides: php-pcre = %{EVRD} +Provides: php-simplexml = %{EVRD} +Requires: systemd-units +Requires(post): systemd-units +Requires(preun): systemd-units +Requires(postun): systemd-units + +%description -n %{libname} +This package provides the common files to run with different implementations of +PHP7. You need this package if you install the php standalone package or a +webserver with php support (ie: apache-mod_php). + +%package devel +Summary: Development package for PHP7 +Group: Development/C +Requires: %{libname} >= %{EVRD} +Requires: autoconf automake libtool +Requires: bison +Requires: byacc +Requires: chrpath +Requires: dos2unix +Requires: flex +Requires: openssl +Requires: re2c >= 0.9.11 +Requires: tcl +Requires: pam-devel +Requires: pkgconfig(libpcre) +Requires: pkgconfig(libxml-2.0) +Requires: pkgconfig(libxslt) +Requires: pkgconfig(openssl) + + +%description devel +The php-devel package lets you compile dynamic extensions to PHP7. Included +here is the source for the php extensions. Instead of recompiling the whole php +binary to add support for, say, oracle, install this package and use the new +self-contained extensions support. For more information, read the file +SELF-CONTAINED-EXTENSIONS. + +%package openssl +Summary: OpenSSL extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description openssl +This is a dynamic shared object (DSO) for PHP that will add OpenSSL support. + +%package zlib +Summary: Zlib extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description zlib +This is a dynamic shared object (DSO) for PHP that will add zlib compression +support to PHP. + +%package doc +Summary: Documentation for PHP +Group: Development/PHP + +%description doc +Documentation for php. + +%package bcmath +Summary: The bcmath module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description bcmath +This is a dynamic shared object (DSO) for PHP that will add bc style precision +math functions support. + +For arbitrary precision mathematics PHP offers the Binary Calculator which +supports numbers of any size and precision, represented as strings. + +%package bz2 +Summary: Bzip2 extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description bz2 +This is a dynamic shared object (DSO) for PHP that will add bzip2 compression +support to PHP. + +The bzip2 functions are used to transparently read and write bzip2 (.bz2) +compressed files. + +%package calendar +Summary: Calendar extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description calendar +This is a dynamic shared object (DSO) for PHP that will add calendar support. + +The calendar extension presents a series of functions to simplify converting +between different calendar formats. The intermediary or standard it is based on +is the Julian Day Count. The Julian Day Count is a count of days starting from +January 1st, 4713 B.C. To convert between calendar systems, you must first +convert to Julian Day Count, then to the calendar system of your choice. Julian +Day Count is very different from the Julian Calendar! For more information on +Julian Day Count, visit http://www.hermetic.ch/cal_stud/jdn.htm. For more +information on calendar systems visit +http://www.boogle.com/info/cal-overview.html. Excerpts from this page are +included in these instructions, and are in quotes. + +%package ctype +Summary: Ctype extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description ctype +This is a dynamic shared object (DSO) for PHP that will add ctype support. + +The functions provided by this extension check whether a character or string +falls into a certain character class according to the current locale (see also +setlocale()). + +%package curl +Summary: Curl extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description curl +This is a dynamic shared object (DSO) for PHP that will add curl support. + +PHP supports libcurl, a library created by Daniel Stenberg, that allows you to +connect and communicate to many different types of servers with many different +types of protocols. libcurl currently supports the http, https, ftp, gopher, +telnet, dict, file, and ldap protocols. libcurl also supports HTTPS +certificates, HTTP POST, HTTP PUT, FTP uploading (this can also be done with +PHP's ftp extension), HTTP form based upload, proxies, cookies, and +user+password authentication. + +%package dba +Summary: DBA extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description dba +This is a dynamic shared object (DSO) for PHP that will add flat-file databases +(DBA) support. + +These functions build the foundation for accessing Berkeley DB style databases. + +This is a general abstraction layer for several file-based databases. As such, +functionality is limited to a common subset of features supported by modern +databases such as Sleepycat Software's DB2. (This is not to be confused with +IBM's DB2 software, which is supported through the ODBC functions.) + +%package dom +Summary: Dom extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description dom +This is a dynamic shared object (DSO) for PHP that will add dom support. + +The DOM extension is the replacement for the DOM XML extension from PHP 4. The +extension still contains many old functions, but they should no longer be used. +In particular, functions that are not object-oriented should be avoided. + +The extension allows you to operate on an XML document with the DOM API. + +%package enchant +Summary: Libenchant binder, support near all spelling tools +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description enchant +Enchant is a binder for libenchant. Libenchant provides a common API for many +spell libraries: + + - aspell/pspell (intended to replace ispell) + - hspell (hebrew) + - ispell + - myspell (OpenOffice project, mozilla) + - uspell (primarily Yiddish, Hebrew, and Eastern European languages) + A plugin system allows to add custom spell support. + see www.abisource.com/enchant/ + +%package exif +Summary: EXIF extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} +Requires: php-mbstring >= %{EVRD} + +%description exif +This is a dynamic shared object (DSO) for PHP that will add EXIF tags support +in image files. + +With the exif extension you are able to work with image meta data. For example, +you may use exif functions to read meta data of pictures taken from digital +cameras by working with information stored in the headers of the JPEG and TIFF +images. + +%package fileinfo +Summary: Fileinfo extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description fileinfo +This extension allows retrieval of information regarding vast majority of file. +This information may include dimensions, quality, length etc... + +Additionally it can also be used to retrieve the mime type for a particular +file and for text files proper language encoding. + +%package filter +Summary: Extension for safely dealing with input parameters +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description filter +The Input Filter extension is meant to address this issue by implementing a set +of filters and mechanisms that users can use to safely access their input data. + +%package ftp +Summary: FTP extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description ftp +This is a dynamic shared object (DSO) for PHP that will add FTP support. + +The functions in this extension implement client access to file servers +speaking the File Transfer Protocol (FTP) as defined in +http://www.faqs.org/rfcs/rfc959. This extension is meant for detailed access to +an FTP server providing a wide range of control to the executing script. If you +only wish to read from or write to a file on an FTP server, consider using the +ftp:// wrapper with the filesystem functions which provide a simpler and more +intuitive interface. + +%package gd +Summary: GD extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description gd +This is a dynamic shared object (DSO) for PHP that will add GD support, +allowing you to create and manipulate images with PHP using the gd library. + +PHP is not limited to creating just HTML output. It can also be used to create +and manipulate image files in a variety of different image formats, including +gif, png, jpg, wbmp, and xpm. Even more convenient, PHP can output image +streams directly to a browser. You will need to compile PHP with the GD library +of image functions for this to work. GD and PHP may also require other +libraries, depending on which image formats you want to work with. + +You can use the image functions in PHP to get the size of JPEG, GIF, PNG, SWF, +TIFF and JPEG2000 images. + +%package gettext +Summary: Gettext extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description gettext +This is a dynamic shared object (DSO) for PHP that will add gettext support. + +The gettext functions implement an NLS (Native Language Support) API which can +be used to internationalize your PHP applications. Please see the gettext +documentation for your system for a thorough explanation of these functions or +view the docs at http://www.gnu.org/software/gettext/manual/gettext.html. + +%package gmp +Summary: Gmp extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description gmp +This is a dynamic shared object (DSO) for PHP that will add arbitrary length +number support using the GNU MP library. + +%package hash +Summary: HASH Message Digest Framework +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description hash +Native implementations of common message digest algorithms using a generic +factory method. + +Message Digest (hash) engine. Allows direct or incremental processing of +arbitrary length messages using a variety of hashing algorithms. + +%package iconv +Summary: Iconv extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description iconv +This is a dynamic shared object (DSO) for PHP that will add iconv support. + +This module contains an interface to iconv character set conversion facility. +With this module, you can turn a string represented by a local character set +into the one represented by another character set, which may be the Unicode +character set. Supported character sets depend on the iconv implementation of +your system. Note that the iconv function on some systems may not work as you +expect. In such case, it'd be a good idea to install the GNU libiconv library. +It will most likely end up with more consistent results. + +%package imap +Summary: IMAP extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description imap +This is a dynamic shared object (DSO) for PHP that will add IMAP support. + +These functions are not limited to the IMAP protocol, despite their name. The +underlying c-client library also supports NNTP, POP3 and local mailbox access +methods. + +%package intl +Summary: Internationalization extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description intl +This is a dynamic shared object (DSO) for PHP that will add +Internationalization support. + +Internationalization extension implements ICU library functionality in PHP. + +%package json +Summary: JavaScript Object Notation +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description json +Support for JSON (JavaScript Object Notation) serialization. + +%package ldap +Summary: LDAP extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description ldap +This is a dynamic shared object (DSO) for PHP that will add LDAP support. + +LDAP is the Lightweight Directory Access Protocol, and is a protocol used to +access "Directory Servers". The Directory is a special kind of database that +holds information in a tree structure. + +The concept is similar to your hard disk directory structure, except that in +this context, the root directory is "The world" and the first level +subdirectories are "countries". Lower levels of the directory structure contain +entries for companies, organisations or places, while yet lower still we find +directory entries for people, and perhaps equipment or documents. + +%package mbstring +Summary: MBstring extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} +# To make it easier to find for e.g. Roundcube requesting php-multibyte +Provides: %{name}-multibyte = %{EVRD} + +%description mbstring +This is a dynamic shared object (DSO) for PHP that will add multibyte string +support. + +mbstring provides multibyte specific string functions that help you deal with +multibyte encodings in PHP. In addition to that, mbstring handles character +encoding conversion between the possible encoding pairs. mbstring is designed +to handle Unicode-based encodings such as UTF-8 and UCS-2 and many single-byte +encodings for convenience. + +%package mysqli +Summary: MySQL database module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} +Obsoletes: %{name}-mysql < %{EVRD} + +%description mysqli +This is a dynamic shared object (DSO) for PHP that will add MySQL database +support. + +The mysqli extension allows you to access the functionality provided by MySQL +4.1 and above. It is an improved version of the older PHP MySQL driver, +offering various benefits. The developers of the PHP programming language +recommend using MySQLi when dealing with MySQL server versions 4.1.3 and newer +(takes advantage of new functionality) + +More information about the MySQL Database server can be found at +http://www.mysql.com/ + +Documentation for MySQL can be found at http://dev.mysql.com/doc/. + +Documentation for MySQLi can be found at http://www.php.net/manual/en/mysqli.overview.php. + +%package mysqlnd +Summary: MySQL native database module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description mysqlnd +This is a dynamic shared object (DSO) for PHP that will add MySQL native +database support. + +These functions allow you to access MySQL database servers. More information +about MySQL can be found at http://www.mysql.com/. + +Documentation for MySQL can be found at http://dev.mysql.com/doc/. + +%package odbc +Summary: ODBC extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description odbc +This is a dynamic shared object (DSO) for PHP that will add ODBC support. + +In addition to normal ODBC support, the Unified ODBC functions in PHP allow you +to access several databases that have borrowed the semantics of the ODBC API to +implement their own API. Instead of maintaining multiple database drivers that +were all nearly identical, these drivers have been unified into a single set of +ODBC functions. + +%package opcache +Summary: Opcode cache for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description opcache +Opcode cache for PHP + +%package pcntl +Summary: Process Control extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description pcntl +This is a dynamic shared object (DSO) for PHP that will add process spawning +and control support. It supports functions like fork(), waitpid(), signal() +etc. + +Process Control support in PHP implements the Unix style of process creation, +program execution, signal handling and process termination. Process Control +should not be enabled within a webserver environment and unexpected results may +happen if any Process Control functions are used within a webserver +environment. + +%package pdo +Summary: PHP Data Objects Interface +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description pdo +PDO provides a uniform data access interface, sporting advanced features such +as prepared statements and bound parameters. PDO drivers are dynamically +loadable and may be developed independently from the core, but still accessed +using the same API. + +Read the documentation at http://www.php.net/pdo for more information. + +%package pdo_dblib +Summary: Sybase Interface driver for PDO +Group: Development/PHP +Requires: freetds >= 0.63 +Requires: php-pdo >= %{EVRD} +Requires: %{libname} >= %{EVRD} + +%description pdo_dblib +PDO_DBLIB is a driver that implements the PHP Data Objects (PDO) interface to +enable access from PHP to Microsoft SQL Server and Sybase databases through the +FreeTDS libary. + +%package pdo_mysql +Summary: MySQL Interface driver for PDO +Group: Development/PHP +Requires: php-pdo >= %{EVRD} +Requires: %{libname} >= %{EVRD} + +%description pdo_mysql +PDO_MYSQL is a driver that implements the PHP Data Objects (PDO) interface to +enable access from PHP to MySQL 3.x and 4.x databases. + +PDO_MYSQL will take advantage of native prepared statement support present in +MySQL 4.1 and higher. If you're using an older version of the mysql client +libraries, PDO will emulate them for you. + +%package pdo_odbc +Summary: ODBC v3 Interface driver for PDO +Group: Development/PHP +Requires: php-pdo >= %{EVRD} +Requires: %{libname} >= %{EVRD} + +%description pdo_odbc +PDO_ODBC is a driver that implements the PHP Data Objects (PDO) interface to +enable access from PHP to databases through ODBC drivers or through the IBM DB2 +Call Level Interface (DB2 CLI) library. PDO_ODBC currently supports three +different "flavours" of database drivers: + + o ibm-db2 - Supports access to IBM DB2 Universal Database, Cloudscape, and + Apache Derby servers through the free DB2 client. + + o unixODBC - Supports access to database servers through the unixODBC driver + manager and the database's own ODBC drivers. + + o generic - Offers a compile option for ODBC driver managers that are not + explicitly supported by PDO_ODBC. + +%package pdo_pgsql +Summary: PostgreSQL interface driver for PDO +Group: Development/PHP +Requires: php-pdo >= %{EVRD} +Requires: %{libname} >= %{EVRD} +Requires: postgresql-libs >= %{postgresql_version} + +%description pdo_pgsql +PDO_PGSQL is a driver that implements the PHP Data Objects (PDO) interface to +enable access from PHP to PostgreSQL databases. + +%package pdo_sqlite +Summary: SQLite v3 Interface driver for PDO +Group: Development/PHP +Requires: php-pdo >= %{EVRD} +Requires: %{libname} >= %{EVRD} + +%description pdo_sqlite +PDO_SQLITE is a driver that implements the PHP Data Objects (PDO) interface to +enable access to SQLite 3 databases. + +This extension provides an SQLite v3 driver for PDO. SQLite V3 is NOT +compatible with the bundled SQLite 2 in PHP 7, but is a significant step +forwards, featuring complete utf-8 support, native support for blobs, native +support for prepared statements with bound parameters and improved concurrency. + +%package pgsql +Summary: PostgreSQL database module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} +Requires: postgresql-libs >= %{postgresql_version} + +%description pgsql +This is a dynamic shared object (DSO) for PHP that will add PostgreSQL database +support. + +PostgreSQL database is Open Source product and available without cost. +Postgres, developed originally in the UC Berkeley Computer Science Department, +pioneered many of the object-relational concepts now becoming available in some +commercial databases. It provides SQL92/SQL99 language support, transactions, +referential integrity, stored procedures and type extensibility. PostgreSQL is +an open source descendant of this original Berkeley code. + +%package phar +Summary: Allows running of complete applications out of .phar files +Group: Development/PHP +Requires: %{libname} >= %{EVRD} +Requires: php-bz2 +Requires: php-hash + +%description phar +This is the extension version of PEAR's PHP_Archive package. Support for +zlib, bz2 and crc32 is achieved without any dependency other than the external +zlib or bz2 extension. + +.phar files can be read using the phar stream, or with the Phar class. If the +SPL extension is available, a Phar object can be used as an array to iterate +over a phar's contents or to read files directly from the phar. + +Phar archives can be created using the streams API or with the Phar class, if +the phar.readonly ini variable is set to false. + +Full support for MD5 and SHA1 signatures is possible. Signatures can be +required if the ini variable phar.require_hash is set to true. When PECL +extension hash is avaiable then SHA-256 and SHA-512 signatures are supported as +well. + +%package posix +Summary: POSIX extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description posix +This is a dynamic shared object (DSO) for PHP that will add POSIX functions +support to PHP. + +This module contains an interface to those functions defined in the IEEE 1003.1 +(POSIX.1) standards document which are not accessible through other means. +POSIX.1 for example defined the open(), read(), write() and close() functions, +too, which traditionally have been part of PHP 3 for a long time. Some more +system specific functions have not been available before, though, and this +module tries to remedy this by providing easy access to these functions. + +%package pspell +Summary: Pspell extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description pspell +This is a dynamic shared object (DSO) for PHP that will add pspell support to +PHP. + +These functions allow you to check the spelling of a word and offer +suggestions. + +%package readline +Summary: Readline extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description readline +This PHP module adds support for readline functions (only for cli and cgi +SAPIs). + +The readline() functions implement an interface to the GNU Readline library. +These are functions that provide editable command lines. An example being the +way Bash allows you to use the arrow keys to insert characters or scroll +through command history. Because of the interactive nature of this library, it +will be of little use for writing Web applications, but may be useful when +writing scripts used from a command line. + +%package recode +Summary: Recode extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description recode +This is a dynamic shared object (DSO) for PHP that will add recode support +using the recode library. + +This module contains an interface to the GNU Recode library. The GNU Recode +library converts files between various coded character sets and surface +encodings. When this cannot be achieved exactly, it may get rid of the +offending characters or fall back on approximations. The library recognises or +produces nearly 150 different character sets and is able to convert files +between almost any pair. Most RFC 1345 character sets are supported. + +%package session +Summary: Session extension module for PHP +Group: Development/PHP +Requires(pre,postun): rpm-helper +Requires: %{libname} >= %{EVRD} + +%description session +This is a dynamic shared object (DSO) for PHP that will add session support. + +Session support in PHP consists of a way to preserve certain data across +subsequent accesses. This enables you to build more customized applications and +increase the appeal of your web site. + +A visitor accessing your web site is assigned a unique id, the so-called +session id. This is either stored in a cookie on the user side or is propagated +in the URL. + +%package shmop +Summary: Shared Memory Operations extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description shmop +This is a dynamic shared object (DSO) for PHP that will add Shared Memory +Operations support. + +Shmop is an easy to use set of functions that allows PHP to read, write, create +and delete Unix shared memory segments. + +%package snmp +Summary: NET-SNMP extension module for PHP +Group: Development/PHP +Requires: net-snmp-mibs +Requires: %{libname} >= %{EVRD} + +%description snmp +This is a dynamic shared object (DSO) for PHP that will add SNMP support using +the NET-SNMP libraries. + +In order to use the SNMP functions you need to install the NET-SNMP package. + +%package soap +Summary: Soap extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description soap +This is a dynamic shared object (DSO) for PHP that will add soap support. + +The SOAP extension can be used to write SOAP Servers and Clients. It supports +subsets of SOAP 1.1, SOAP 1.2 and WSDL 1.1 specifications. + +%package sockets +Summary: Sockets extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description sockets +This is a dynamic shared object (DSO) for PHP that will add sockets support. + +The socket extension implements a low-level interface to the socket +communication functions based on the popular BSD sockets, providing the +possibility to act as a socket server as well as a client. + +%package sqlite3 +Summary: SQLite database bindings for PHP +Group: Development/PHP +Requires: php-pdo >= %{EVRD} +Requires: %{libname} >= %{EVRD} +Obsoletes: %name-sqlite + +%description sqlite3 +This is an extension for the SQLite Embeddable SQL Database Engine. SQLite is a +C library that implements an embeddable SQL database engine. Programs that link +with the SQLite library can have SQL database access without running a separate +RDBMS process. + +SQLite is not a client library used to connect to a big database server. SQLite +is the server. The SQLite library reads and writes directly to and from the +database files on disk. + +%package sysvmsg +Summary: SysV msg extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description sysvmsg +This is a dynamic shared object (DSO) for PHP that will add SysV message queues +support. + +%package sysvsem +Summary: SysV sem extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description sysvsem +This is a dynamic shared object (DSO) for PHP that will add SysV semaphores +support. + +%package sysvshm +Summary: SysV shm extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description sysvshm +This is a dynamic shared object (DSO) for PHP that will add SysV Shared Memory +support. + +%package tidy +Summary: Tidy HTML Repairing and Parsing for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description tidy +Tidy is a binding for the Tidy HTML clean and repair utility which allows you +to not only clean and otherwise manipluate HTML documents, but also traverse +the document tree using the Zend Engine 2 OO semantics. + +%package tokenizer +Summary: Tokenizer extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description tokenizer +This is a dynamic shared object (DSO) for PHP that will add Tokenizer support. + +The tokenizer functions provide an interface to the PHP tokenizer embedded in +the Zend Engine. Using these functions you may write your own PHP source +analyzing or modification tools without having to deal with the language +specification at the lexical level. + +%package xml +Summary: XML extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description xml +This is a dynamic shared object (DSO) for PHP that will add XML support. This +extension lets you create XML parsers and then define handlers for different +XML events. + +%package xmlreader +Summary: Xmlreader extension module for PHP +Group: Development/PHP +Requires: php-dom +Requires: %{libname} >= %{EVRD} + +%description xmlreader +XMLReader represents a reader that provides non-cached, forward-only access to +XML data. It is based upon the xmlTextReader api from libxml + +%package xmlrpc +Summary: Xmlrpc extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description xmlrpc +This is a dynamic shared object (DSO) for PHP that will add XMLRPC support. + +These functions can be used to write XML-RPC servers and clients. You can find +more information about XML-RPC at http://www.xmlrpc.com/, and more +documentation on this extension and its functions at +http://xmlrpc-epi.sourceforge.net/. + +%package xmlwriter +Summary: Provides fast, non-cached, forward-only means to write XML data +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description xmlwriter +This extension wraps the libxml xmlWriter API. Represents a writer that +provides a non-cached, forward-only means of generating streams or files +containing XML data. + +%package xsl +Summary: Xsl extension module for PHP +Group: Development/PHP +Requires: %{libname} >= %{EVRD} + +%description xsl +This is a dynamic shared object (DSO) for PHP that will add xsl support. + +The XSL extension implements the XSL standard, performing XSLT transformations +using the libxslt library + +%package wddx +Summary: WDDX serialization functions +Group: Development/PHP +Requires: php-xml +Requires: %{libname} >= %{EVRD} + +%description wddx +This is a dynamic shared object (DSO) that adds wddx support to PHP. + +These functions are intended for work with WDDX (http://www.openwddx.org/) + +%package zip +Summary: A zip management extension for PHP +Group: Development/PHP + +%description zip +This is a dynamic shared object (DSO) for PHP that will add zip support to +create and read zip files using the libzip library. + +%package fpm +Summary: PHP7 FastCGI Process Manager +Group: Development/Other +Requires(post): rpm-helper +Requires(preun): rpm-helper +Requires(pre): rpm-helper +Requires(postun): rpm-helper +Requires: %{libname} >= %{EVRD} +Requires: php-ctype >= %{EVRD} +Requires: php-filter >= %{EVRD} +Requires: php-ftp >= %{EVRD} +Requires: php-gettext >= %{EVRD} +Requires: php-hash >= %{EVRD} +Requires: php-ini >= %{version} +Requires: php-json >= %{EVRD} +Requires: php-openssl >= %{EVRD} +Requires: php-posix >= %{EVRD} +Requires: php-session >= %{EVRD} +# Suggests: php-suhosin >= 0.9.33 +Requires: php-sysvsem >= %{EVRD} +Requires: php-sysvshm >= %{EVRD} +Requires: php-timezonedb >= 3:2009.10 +Requires: php-tokenizer >= %{EVRD} +Requires: php-xmlreader >= %{EVRD} +Requires: php-xmlwriter >= %{EVRD} +Requires: php-zlib >= %{EVRD} +Requires: php-xml >= %{EVRD} +Provides: php = %{EVRD} + +%description fpm +PHP7 is an HTML-embeddable scripting language. PHP7 offers built-in database +integration for several commercial and non-commercial database management +systems, so writing a database-enabled script with PHP7 is fairly simple. The +most common use of PHP7 coding is probably as a replacement for CGI scripts. + +This package contains the FastCGI Process Manager. You must also install +libphp7_common. + +%package -n apache-mod_php +Summary: The PHP HTML-embedded scripting language for use with apache +Group: System/Servers +Requires(pre,postun): rpm-helper +Requires: %{libname} = %{EVRD} +Requires: apache-base >= 2.4.0 +Requires: apache-modules >= 2.4.0 +Requires: apache-mpm >= 2.4.0 +Requires: %{name}-ctype = %{EVRD} +Requires: %{name}-filter = %{EVRD} +Requires: %{name}-ftp = %{EVRD} +Requires: %{name}-gettext = %{EVRD} +Requires: %{name}-hash = %{EVRD} +Requires: %{name}-ini >= %{version} +Requires: %{name}-json = %{EVRD} +Requires: %{name}-openssl = %{EVRD} +Requires: %{name}-pcre = %{EVRD} +Requires: %{name}-posix = %{EVRD} +Requires: %{name}-session = %{EVRD} +Requires: %{name}-sysvsem = %{EVRD} +Requires: %{name}-tokenizer = %{EVRD} +Requires: %{name}-xmlreader = %{EVRD} +Requires: %{name}-xmlwriter = %{EVRD} +Requires: %{name}-zlib = %{EVRD} +Requires: %{name}-xml = %{EVRD} +Requires: %{name}-timezonedb >= 3:2009.10 +# Suggests: %{name}-suhosin >= 0.9.29 +Conflicts: %{name}-suhosin < 0.9.29 +Conflicts: apache-mpm-worker >= 2.4.0 +# mod_php with the event mpm is not an recommended by php devs, but +# is (at least somewhat) working. Let's not do a hard conflict. +# Conflicts: apache-mpm-event >= 2.4.0 +Provides: mod_php = %{EVRD} +BuildRequires: dos2unix + +%description -n apache-mod_php +PHP7 is an HTML-embedded scripting language. PHP7 attempts to make it easy for +developers to write dynamically generated web pages. PHP7 also offers built-in +database integration for several commercial and non-commercial database +management systems, so writing a database-enabled web page with PHP7 is fairly +simple. The most common use of PHP coding is probably as a replacement for CGI +scripts. The %{name} module enables the apache web server to understand +and process the embedded PHP language in web pages. + +This package contains PHP version 7. You'll also need to install the apache web +server. + + +%package -n php-ini +Summary: INI files for PHP +Group: Development/Other + +%description -n php-ini +The php-ini package contains the ini file required for PHP. + + +%prep +export LC_ALL=en_US.utf-8 +export LANG=en_US.utf-8 +export LANGUAGE=en_US.utf-8 +export LANGUAGES=en_US.utf-8 +%setup -qn %{name}-%{version}%{beta} + +%if %{build_libmagic} +if ! [ -f %{_datadir}/misc/magic.mgc ]; then + echo "ERROR: the %{_datadir}/misc/magic.mgc file is needed" + exit 1 +fi +%endif + +# the ".droplet" suffix is here to nuke the backups later..., we don't want those in php-devel + +%patch1 -p1 -b .shared.droplet +%patch2 -p1 -b .mariadb~ +%patch3 -p0 -b .libtool.droplet +%patch4 -p1 -b .phpize.droplet +%patch5 -p1 -b .phpbuilddir.droplet +%patch6 -p1 -b .apache2-filters.droplet +%patch8 -p1 -b .xmlrpc_epi_header +%patch9 -p0 -b .xmlrpc_no_rpath.droplet +%patch10 -p1 -b .compile~ +%patch11 -p1 -b .bdb-5.2.droplet +%patch12 -p1 -b .db60~ +%patch13 -p1 -b .clangwarn~ +%patch14 -p1 -b .0014~ + +##################################################################### +# Stolen from PLD +# FIXME needs porting +#patch20 -p1 -b .mail.droplet +%patch21 -p0 -b .filter-shared.droplet +%patch22 -p1 -b .dba-link.droplet +%patch23 -p1 -b .zlib-for-getimagesize.droplet +# for kolab2 +# FIXME needs porting +#patch27 -p1 -b .imap-annotation.droplet +#patch28 -p1 -b .imap-myrights.droplet +# fpm stuff +%patch29 -p1 -b .shared-fpm.droplet +%patch30 -p1 -b .fpmmdv.droplet + +##################################################################### +# stolen from debian +%patch50 -p1 -b .session.save_path.droplet +%patch51 -p1 -b .exif_nesting_level.droplet + +##################################################################### +# Stolen from fedora +%patch101 -p1 -b .cxx.droplet +%patch102 -p1 -b .install.droplet +%patch105 -p1 -b .umask.droplet +%patch113 -p1 -b .libc-client-php.droplet +%patch114 -p1 -b .no_pam_in_c-client.droplet +%patch115 -p1 -b .dlopen.droplet + +# upstream fixes +%patch120 -p1 -b .tests-wddx.droplet +%patch121 -p0 -b .bug43221.droplet +%patch123 -p0 -b .bug43589.droplet +%patch227 -p0 -b .enchant_lib64_fix.droplet +%patch228 -p0 -b .xmlrpc-epi_fix.droplet + +%patch229 -p1 -b .ft291~ + +cp %{SOURCE2} maxlifetime +cp %{SOURCE3} php.crond +cp %{SOURCE4} php-fpm.service +cp %{SOURCE5} php-fpm.sysconf +cp %{SOURCE6} php-fpm.logrotate +cp %{SOURCE7} create_data_file.php + +# lib64 hack +perl -p -i -e "s|/usr/lib|%{_libdir}|" php.crond + +# nuke bogus checks becuase i fixed this years ago in our recode package +rm -f ext/recode/config9.m4 + +# Change perms otherwise rpm would get fooled while finding requires +find -name "*.inc" | xargs chmod 644 +find -name "*.php*" | xargs chmod 644 +find -name "*README*" | xargs chmod 644 + +# php7_module -> php_module to ease upgrades +find -type f |xargs sed -i -e 's,php7_module,php_module,g' +sed -i -e 's,APLOG_USE_MODULE(php7,APLOG_USE_MODULE(php,g' sapi/apache2handler/* + +mkdir -p php-devel/extensions +mkdir -p php-devel/sapi + +# Install test files in php-devel +cp -a tests php-devel + +cp -dpR ext/* php-devel/extensions/ +rm -f php-devel/extensions/informix/stub.c +rm -f php-devel/extensions/standard/.deps +rm -f php-devel/extensions/skeleton/EXPERIMENTAL + +# SAPI +cp -dpR sapi/* php-devel/sapi/ +rm -f php-devel/sapi/thttpd/stub.c +rm -f php-devel/sapi/cgi/php.sym +rm -f php-devel/sapi/fastcgi/php.sym +rm -f php-devel/sapi/pi3web/php.sym + +# cleanup +find php-devel -name "*.droplet" | xargs rm -f + +# don't ship MS Windows source +rm -rf php-devel/extensions/com_dotnet + +# likewise with these: +find php-devel -name "*.dsp" | xargs rm -f +find php-devel -name "*.mak" | xargs rm -f +find php-devel -name "*.w32" | xargs rm + +# maek sure using system libs +rm -rf ext/pcre/pcrelib +rm -rf ext/pdo_sqlite/sqlite +rm -rf ext/xmlrpc/libxmlrpc + +%build +%serverbuild + +cp -f %{_datadir}/libtool/build-aux/config.* . + +# it does not work with -fPIE and someone added that to the serverbuild macro... +CFLAGS=`echo $CFLAGS|sed -e 's|-fPIE||g'` +CXXFLAGS=`echo $CXXFLAGS|sed -e 's|-fPIE||g'` + +#export CFLAGS="`echo ${CFLAGS} | sed s/O2/O0/` -fPIC -L%{_libdir} -fno-strict-aliasing" +export CFLAGS="${CFLAGS} -fPIC -L%{_libdir} -fno-strict-aliasing" +export CXXFLAGS="${CFLAGS}" +export RPM_OPT_FLAGS="${CFLAGS}" + +cat > php-devel/buildext < ext/fileinfo/data_file.c +rm -rf ext/fileinfo/.libs ext/fileinfo/*.lo ext/fileinfo/*.la modules/fileinfo.so modules/fileinfo.la +cp -p ext/fileinfo/data_file.c php-devel/extensions/fileinfo/data_file.c +%make +%endif + +# make php-cgi +cp -af php_config.h.cgi main/php_config.h +make -f Makefile.cgi sapi/cgi/php-cgi +cp -af php_config.h.apxs main/php_config.h + +# make php-fpm +cp -af php_config.h.fpm main/php_config.h +make -f Makefile.fpm sapi/fpm/php-fpm +cp -af php_config.h.apxs main/php_config.h + +# make apache-mod_php +mkdir mod_php +cd mod_php +cp -dpR ../php-devel/sapi/apache2handler/* . +cp ../main/internal_functions.c . +cp ../ext/date/lib/timelib_config.h . +mv mod_php7.c mod_php.c +find . -type f |xargs dos2unix +apxs \ + `apr-1-config --link-ld --libs` \ + `xml2-config --cflags` \ + -I. -I.. -I../main -I../Zend -I../TSRM \ + -L../libs -lphp7_common \ + -c mod_php.c sapi_apache2.c apache_config.c \ + php_functions.c internal_functions.c + +%install + +install -d %{buildroot}%{_libdir} +install -d %{buildroot}%{_bindir} +install -d %{buildroot}%{_sysconfdir}/php.d +install -d %{buildroot}%{_libdir}/php/extensions +install -d %{buildroot}%{_usrsrc}/php-devel +install -d %{buildroot}%{_mandir}/man1 +install -d %{buildroot}%{_sysconfdir}/cron.d +install -d %{buildroot}/var/lib/php + +make -f Makefile.apxs install \ + INSTALL_ROOT=%{buildroot} \ + INSTALL_IT="\$(LIBTOOL) --mode=install install libphp7_common.la %{buildroot}%{_libdir}/" + +# borked autopoo +rm -f %{buildroot}%{_bindir}/php %{buildroot}%{_bindir}/php-cgi +./libtool --silent --mode=install install sapi/cli/php %{buildroot}%{_bindir}/php +./libtool --silent --mode=install install sapi/cgi/php-cgi %{buildroot}%{_bindir}/php-cgi + +# compat php-fcgi symink +ln -s php-cgi %{buildroot}%{_bindir}/php-fcgi + +cp -dpR php-devel/* %{buildroot}%{_usrsrc}/php-devel/ +install -m0644 run-tests*.php %{buildroot}%{_usrsrc}/php-devel/ +install -m0644 main/internal_functions.c %{buildroot}%{_usrsrc}/php-devel/ + +install -m0644 sapi/cli/php.1 %{buildroot}%{_mandir}/man1/ +install -m0644 scripts/man1/phpize.1 %{buildroot}%{_mandir}/man1/ +install -m0644 scripts/man1/php-config.1 %{buildroot}%{_mandir}/man1/ + +# fpm +install -d %{buildroot}/lib/systemd/system +install -d %{buildroot}%{_sysconfdir}/logrotate.d +install -d %{buildroot}%{_sysconfdir}/sysconfig +install -d %{buildroot}%{_sysconfdir}/php-fpm.d +install -d %{buildroot}%{_sbindir} +install -d %{buildroot}%{_mandir}/man8 +install -d %{buildroot}/var/lib/php-fpm +install -d %{buildroot}/var/log/php-fpm +install -d %{buildroot}/run/php-fpm +install -D -p -m 0644 %{SOURCE9} %{buildroot}%{_tmpfilesdir}/php-fpm.conf +# a small bug here... +echo "; place your config here" > %{buildroot}%{_sysconfdir}/php-fpm.d/default.conf + +./libtool --silent --mode=install install sapi/fpm/php-fpm %{buildroot}%{_sbindir}/php-fpm +install -m0644 sapi/fpm/php-fpm.8 %{buildroot}%{_mandir}/man8/ +install -m0644 sapi/fpm/php-fpm.conf %{buildroot}%{_sysconfdir}/ +install -m0644 php-fpm.service %{buildroot}/lib/systemd/system/ +install -m0644 php-fpm.sysconf %{buildroot}%{_sysconfdir}/sysconfig/php-fpm +install -m0644 php-fpm.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/php-fpm + +perl -pi -e "s|^pid.*|pid = /run/php-fpm/php-fpm.pid|g" %{buildroot}%{_sysconfdir}/php-fpm.conf + +ln -snf extensions %{buildroot}%{_usrsrc}/php-devel/ext + +# extensions +echo "extension = openssl.so" > %{buildroot}%{_sysconfdir}/php.d/21_openssl.ini +echo "extension = zlib.so" > %{buildroot}%{_sysconfdir}/php.d/21_zlib.ini +echo "extension = bcmath.so" > %{buildroot}%{_sysconfdir}/php.d/66_bcmath.ini +echo "extension = bz2.so" > %{buildroot}%{_sysconfdir}/php.d/10_bz2.ini +echo "extension = calendar.so" > %{buildroot}%{_sysconfdir}/php.d/11_calendar.ini +echo "extension = ctype.so" > %{buildroot}%{_sysconfdir}/php.d/12_ctype.ini +echo "extension = curl.so" > %{buildroot}%{_sysconfdir}/php.d/13_curl.ini +echo "extension = dba.so" > %{buildroot}%{_sysconfdir}/php.d/14_dba.ini +echo "extension = dom.so" > %{buildroot}%{_sysconfdir}/php.d/18_dom.ini +echo "extension = exif.so" > %{buildroot}%{_sysconfdir}/php.d/19_exif.ini +echo "extension = filter.so" > %{buildroot}%{_sysconfdir}/php.d/81_filter.ini +echo "extension = ftp.so" > %{buildroot}%{_sysconfdir}/php.d/22_ftp.ini +echo "extension = gd.so" > %{buildroot}%{_sysconfdir}/php.d/23_gd.ini +echo "extension = gettext.so" > %{buildroot}%{_sysconfdir}/php.d/24_gettext.ini +echo "extension = gmp.so" > %{buildroot}%{_sysconfdir}/php.d/25_gmp.ini +echo "extension = hash.so" > %{buildroot}%{_sysconfdir}/php.d/54_hash.ini +echo "extension = iconv.so" > %{buildroot}%{_sysconfdir}/php.d/26_iconv.ini +echo "extension = imap.so" > %{buildroot}%{_sysconfdir}/php.d/27_imap.ini +echo "extension = intl.so" > %{buildroot}%{_sysconfdir}/php.d/27_intl.ini +echo "extension = ldap.so" > %{buildroot}%{_sysconfdir}/php.d/28_ldap.ini +echo "extension = mbstring.so" > %{buildroot}%{_sysconfdir}/php.d/29_mbstring.ini +echo "extension = fileinfo.so" > %{buildroot}%{_sysconfdir}/php.d/32_fileinfo.ini +echo "extension = mysqli.so" > %{buildroot}%{_sysconfdir}/php.d/37_mysqli.ini +echo "extension = enchant.so" > %{buildroot}%{_sysconfdir}/php.d/38_enchant.ini +echo "extension = odbc.so" > %{buildroot}%{_sysconfdir}/php.d/39_odbc.ini +echo "extension = pcntl.so" > %{buildroot}%{_sysconfdir}/php.d/40_pcntl.ini +echo "extension = pdo.so" > %{buildroot}%{_sysconfdir}/php.d/70_pdo.ini +echo "extension = pdo_dblib.so" > %{buildroot}%{_sysconfdir}/php.d/71_pdo_dblib.ini +echo "extension = pdo_mysql.so" > %{buildroot}%{_sysconfdir}/php.d/73_pdo_mysql.ini +echo "extension = pdo_odbc.so" > %{buildroot}%{_sysconfdir}/php.d/75_pdo_odbc.ini +echo "extension = pdo_pgsql.so" > %{buildroot}%{_sysconfdir}/php.d/76_pdo_pgsql.ini +echo "extension = pdo_sqlite.so" > %{buildroot}%{_sysconfdir}/php.d/77_pdo_sqlite.ini +echo "extension = mysqlnd.so" > %{buildroot}%{_sysconfdir}/php.d/78_mysqlnd.ini +echo "extension = pgsql.so" > %{buildroot}%{_sysconfdir}/php.d/42_pgsql.ini +echo "extension = posix.so" > %{buildroot}%{_sysconfdir}/php.d/43_posix.ini +echo "extension = pspell.so" > %{buildroot}%{_sysconfdir}/php.d/44_pspell.ini +echo "extension = readline.so" > %{buildroot}%{_sysconfdir}/php.d/45_readline.ini +echo "extension = recode.so" > %{buildroot}%{_sysconfdir}/php.d/46_recode.ini +echo "extension = session.so" > %{buildroot}%{_sysconfdir}/php.d/47_session.ini +echo "extension = shmop.so" > %{buildroot}%{_sysconfdir}/php.d/48_shmop.ini +echo "extension = snmp.so" > %{buildroot}%{_sysconfdir}/php.d/50_snmp.ini +echo "extension = soap.so" > %{buildroot}%{_sysconfdir}/php.d/51_soap.ini +echo "extension = sockets.so" > %{buildroot}%{_sysconfdir}/php.d/52_sockets.ini +echo "extension = sqlite3.so" > %{buildroot}%{_sysconfdir}/php.d/78_sqlite3.ini +echo "extension = sysvmsg.so" > %{buildroot}%{_sysconfdir}/php.d/56_sysvmsg.ini +echo "extension = sysvsem.so" > %{buildroot}%{_sysconfdir}/php.d/57_sysvsem.ini +echo "extension = sysvshm.so" > %{buildroot}%{_sysconfdir}/php.d/58_sysvshm.ini +echo "extension = tidy.so" > %{buildroot}%{_sysconfdir}/php.d/59_tidy.ini +echo "extension = tokenizer.so" > %{buildroot}%{_sysconfdir}/php.d/60_tokenizer.ini +echo "extension = xml.so" > %{buildroot}%{_sysconfdir}/php.d/62_xml.ini +echo "extension = xmlreader.so" > %{buildroot}%{_sysconfdir}/php.d/63_xmlreader.ini +echo "extension = xmlrpc.so" > %{buildroot}%{_sysconfdir}/php.d/62_xmlrpc.ini +echo "extension = xmlwriter.so" > %{buildroot}%{_sysconfdir}/php.d/64_xmlwriter.ini +echo "extension = xsl.so" > %{buildroot}%{_sysconfdir}/php.d/63_xsl.ini +echo "extension = wddx.so" > %{buildroot}%{_sysconfdir}/php.d/63_wddx.ini +echo "extension = json.so" > %{buildroot}%{_sysconfdir}/php.d/82_json.ini +echo "extension = zip.so" > %{buildroot}%{_sysconfdir}/php.d/83_zip.ini +echo "extension = phar.so" > %{buildroot}%{_sysconfdir}/php.d/84_phar.ini +cat >%{buildroot}%{_sysconfdir}/php.d/85_opcache.ini <<"EOF" +zend_extension = %{_libdir}/php/extensions/opcache.so +opcache.memory_consumption=128 +opcache.interned_strings_buffer=8 +opcache.max_accelerated_files=4000 +opcache.revalidate_freq=60 +opcache.fast_shutdown=1 +opcache.enable_cli=1 +EOF + +install -m0755 maxlifetime %{buildroot}%{_libdir}/php/maxlifetime +install -m0644 php.crond %{buildroot}%{_sysconfdir}/cron.d/php + +# mod_php +install -d %{buildroot}%{_libdir}/apache +install -d %{buildroot}%{_sysconfdir}/httpd/modules.d +install -m 755 mod_php/.libs/*.so %{buildroot}%{_libdir}/apache/ + +cat > %{buildroot}%{_sysconfdir}/httpd/modules.d/170_mod_php.conf << EOF +LoadModule php_module %{_libdir}/apache/mod_php.so + +AddType application/x-httpd-php .php +AddType application/x-httpd-php .phtml +AddType application/x-httpd-php-source .phps + +DirectoryIndex index.php index.phtml +EOF + +# fix docs +cp Zend/LICENSE Zend/ZEND_LICENSE +cp README.SELF-CONTAINED-EXTENSIONS SELF-CONTAINED-EXTENSIONS +cp ext/openssl/README README.openssl +cp ext/spl/README README.spl +cp ext/libxml/CREDITS CREDITS.libxml +cp ext/zlib/CREDITS CREDITS.zlib + +# cgi docs +cp sapi/cgi/CREDITS CREDITS.cgi +cp sapi/cgi/README.FastCGI README.fcgi + +# cli docs +cp sapi/cli/CREDITS CREDITS.cli +cp sapi/cli/README README.cli + +# phar fixes +if [ -L %{buildroot}%{_bindir}/phar ]; then + rm -f %{buildroot}%{_bindir}/phar + mv %{buildroot}%{_bindir}/phar.phar %{buildroot}%{_bindir}/phar +fi + +# inis +install -d -m 755 %{buildroot}%{_sysconfdir}/php.d +install -d -m 755 %{buildroot}%{_libdir}/php/extensions +install -d -m 755 %{buildroot}%{_datadir}/php + +sed -e 's,/usr/lib,%{_libdir},g' %{SOURCE10} >%{buildroot}%{_sysconfdir}/php.ini +cp %{buildroot}%{_sysconfdir}/php.ini %{buildroot}%{_sysconfdir}/php-cgi-fcgi.ini + +# house cleaning +rm -f %{buildroot}%{_bindir}/pear +rm -f %{buildroot}%{_libdir}/*.*a + +# don't pack useless stuff +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/bcmath +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/bz2 +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/calendar +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/ctype +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/curl +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/dba +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/dom +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/enchant +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/ereg +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/exif +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/fileinfo +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/filter +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/ftp +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/gettext +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/gmp +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/hash +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/iconv +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/imap +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/intl +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/json +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/ldap +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/libxml +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/mbstring +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/mysql +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/mysqli +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/mysqlnd +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/odbc +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/openssl +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/pcntl +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/pcre +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/pdo +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/pdo_dblib +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/pdo_mysql +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/pdo_odbc +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/pdo_pgsql +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/pdo_sqlite +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/pgsql +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/phar +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/posix +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/pspell +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/readline +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/recode +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/shmop +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/snmp +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/soap +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/sockets +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/spl +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/sqlite +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/sqlite3 +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/standard +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/sysvmsg +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/sysvsem +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/sysvshm +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/tidy +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/tokenizer +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/wddx +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/xml +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/xmlreader +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/xmlrpc +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/xmlwriter +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/xsl +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/zip +rm -rf %{buildroot}%{_usrsrc}/php-devel/extensions/zlib + +# php-devel.i586: E: zero-length /usr/src/php-devel/extensions/pdo_firebird/EXPERIMENTAL +find %{buildroot}%{_usrsrc}/php-devel -type f -size 0 -exec rm -f {} \; + +%if %{build_test} +# do a make test +export NO_INTERACTION=1 +export PHPRC="." +export REPORT_EXIT_STATUS=2 +export TEST_PHP_DETAILED=0 +export TEST_PHP_ERROR_STYLE=EMACS +export TEST_PHP_LOG_FORMAT=LEODC +export PHP_INI_SCAN_DIR=/dev/null + +# FAILING TESTS: +# unknown errors with ext/date/tests/oo_002.phpt probably because of php-5.2.5-systzdata.patch +# http://bugs.php.net/bug.php?id=22414 (claimed to be fixed in 2003, but seems not) +# unknown errors with ext/standard/tests/general_functions/phpinfo.phpt +# unknown errors with ext/standard/tests/strings/setlocale_* +disable_tests="ext/date/tests/oo_002.phpt \ +ext/standard/tests/file/bug22414.phpt \ +ext/standard/tests/general_functions/phpinfo.phpt \ +ext/standard/tests/strings/setlocale_basic1.phpt \ +ext/standard/tests/strings/setlocale_basic2.phpt \ +ext/standard/tests/strings/setlocale_basic3.phpt \ +ext/standard/tests/strings/setlocale_variation1.phpt \ +ext/standard/tests/strings/setlocale_variation3.phpt \ +ext/standard/tests/strings/setlocale_variation4.phpt \ +ext/standard/tests/strings/setlocale_variation5.phpt" + +[[ -n "$disable_tests" ]] && \ +for f in $disable_tests; do + [[ -f "$f" ]] && mv $f $f.disabled +done + +cat >php-test.ini <>php-test.ini + ;; + wddx.so|xsl.so) + # Unresolved symbols, need fixing + ;; +# ctype.so|dom.so|openssl.so|zlib.so|ftp.so|gettext.so|posix.so|session.so|hash.so|sysvsem.so|sysvshm.so|tokenizer.so|xml.so|xmlreader.so|xmlwriter.so|filter.so|json.so) + # Apparently loaded by default without a need to mention them in the ini file +# ;; + *) + echo extension=$B >>php-test.ini + ;; + esac +done +cat >>php-test.ini </dev/null 2>&1 || : + +%postun bcmath +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post bz2 +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun bz2 +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post calendar +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun calendar +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post cgi +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun cgi +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post cli +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun cli +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post ctype +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun ctype +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post curl +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun curl +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post dba +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun dba +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post devel +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun devel +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post doc +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun doc +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post dom +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun dom +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post enchant +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun enchant +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post exif +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun exif +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post fileinfo +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun fileinfo +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post filter +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun filter +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post ftp +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun ftp +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post gd +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun gd +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post gettext +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun gettext +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post gmp +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun gmp +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post hash +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun hash +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post iconv +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun iconv +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post imap +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun imap +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post intl +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun intl +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post json +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun json +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post ldap +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun ldap +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post mbstring +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun mbstring +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post mysqli +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun mysqli +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post mysqlnd +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun mysqlnd +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post odbc +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun odbc +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post openssl +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun openssl +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post pcntl +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun pcntl +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post pdo +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun pdo +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post pdo_dblib +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun pdo_dblib +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post pdo_mysql +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun pdo_mysql +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post pdo_odbc +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun pdo_odbc +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post pdo_pgsql +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun pdo_pgsql +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post pdo_sqlite +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun pdo_sqlite +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post pgsql +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun pgsql +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post phar +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun phar +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post posix +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun posix +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post pspell +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun pspell +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post readline +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun readline +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post recode +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun recode +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%pre session +%_pre_useradd apache /var/www /bin/sh + +%post session +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun session +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post shmop +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun shmop +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post snmp +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun snmp +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post soap +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun soap +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post sockets +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun sockets +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post sqlite3 +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun sqlite3 +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post sysvmsg +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun sysvmsg +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post sysvsem +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun sysvsem +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post sysvshm +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun sysvshm +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post tidy +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun tidy +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post tokenizer +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun tokenizer +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post wddx +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun wddx +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post xml +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun xml +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post xmlreader +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun xmlreader +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post xmlrpc +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun xmlrpc +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post xmlwriter +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun xmlwriter +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post xsl +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun xsl +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post zip +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun zip +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post zlib +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun zlib +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%post fpm +%tmpfiles_create php-fpm +%_post_service php-fpm +if [ $1 = 1 ]; then + # Initial installation + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%pre fpm +%_preun_service php-fpm +%_pre_useradd apache /var/www /bin/sh + +%preun fpm +if [ $1 = 0 ]; then + # Package removal, not upgrade + /bin/systemctl --no-reload disable php-fpm.service >/dev/null 2>&1 || : + /bin/systemctl stop php-fpm.service >/dev/null 2>&1 || : +fi + +%postun fpm +/bin/systemctl daemon-reload >/dev/null 2>&1 || : +if [ $1 -ge 1 ]; then + # Package upgrade, not uninstall + /bin/systemctl try-restart php-fpm.service >/dev/null 2>&1 || : +fi +%_postun_userdel apache + +%post -n apache-mod_php +/bin/systemctl daemon-reload >/dev/null 2>&1 || : + +%postun -n apache-mod_php +if [ "$1" = "0" ]; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi + +%files doc +%doc CREDITS INSTALL LICENSE NEWS Zend/ZEND_LICENSE +%doc php.ini-production php.ini-development configure_command +%doc README.openssl README.spl CREDITS.libxml CREDITS.zlib +%doc README.EXT_SKEL README.input_filter +%doc README.PARAMETER_PARSING_API README.STREAMS + +%files -n %{libname} +%{_libdir}/libphp7_common.so.%{php7_common_major}* + +%files cli +%doc CREDITS.cli README.cli +%attr(0755,root,root) %{_bindir}/php +%attr(0644,root,root) %{_mandir}/man1/php.1* + +%files dbg +%attr(0755,root,root) %{_bindir}/phpdbg +%attr(0644,root,root) %{_mandir}/man1/phpdbg.1* + +%files cgi +%doc CREDITS.cgi README.fcgi +%attr(0755,root,root) %{_bindir}/php-cgi +%attr(0755,root,root) %{_bindir}/php-fcgi +%{_mandir}/man1/php-cgi.1* + +%files devel +%doc SELF-CONTAINED-EXTENSIONS CODING_STANDARDS README.* EXTENSIONS +%doc Zend/ZEND_* README.TESTING* +%attr(0755,root,root) %{_bindir}/php-config +%attr(0755,root,root) %{_bindir}/phpize +%attr(0755,root,root) %{_libdir}/libphp7_common.so +%{_libdir}/php/build +%{_usrsrc}/php-devel +%{_includedir}/php +%attr(0644,root,root) %{_mandir}/man1/php-config.1* +%attr(0644,root,root) %{_mandir}/man1/phpize.1* + +%files openssl +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/21_openssl.ini +%attr(0755,root,root) %{_libdir}/php/extensions/openssl.so + +%files zlib +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/21_zlib.ini +%attr(0755,root,root) %{_libdir}/php/extensions/zlib.so + +%files bcmath +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/66_bcmath.ini +%attr(0755,root,root) %{_libdir}/php/extensions/bcmath.so + +%files bz2 +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/10_bz2.ini +%attr(0755,root,root) %{_libdir}/php/extensions/bz2.so + +%files calendar +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/11_calendar.ini +%attr(0755,root,root) %{_libdir}/php/extensions/calendar.so + +%files ctype +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/12_ctype.ini +%attr(0755,root,root) %{_libdir}/php/extensions/ctype.so + +%files curl +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/13_curl.ini +%attr(0755,root,root) %{_libdir}/php/extensions/curl.so + +%files dba +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/14_dba.ini +%attr(0755,root,root) %{_libdir}/php/extensions/dba.so + +%files dom +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/18_dom.ini +%attr(0755,root,root) %{_libdir}/php/extensions/dom.so + +%files enchant +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/38_enchant.ini +%attr(0755,root,root) %{_libdir}/php/extensions/enchant.so + +%files exif +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/19_exif.ini +%attr(0755,root,root) %{_libdir}/php/extensions/exif.so + +%files fileinfo +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/32_fileinfo.ini +%attr(0755,root,root) %{_libdir}/php/extensions/fileinfo.so + +%files filter +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/81_filter.ini +%attr(0755,root,root) %{_libdir}/php/extensions/filter.so + +%files ftp +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/22_ftp.ini +%attr(0755,root,root) %{_libdir}/php/extensions/ftp.so + +%files gd +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/23_gd.ini +%attr(0755,root,root) %{_libdir}/php/extensions/gd.so + +%files gettext +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/24_gettext.ini +%attr(0755,root,root) %{_libdir}/php/extensions/gettext.so + +%files gmp +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/25_gmp.ini +%attr(0755,root,root) %{_libdir}/php/extensions/gmp.so + +%files hash +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/54_hash.ini +%attr(0755,root,root) %{_libdir}/php/extensions/hash.so + +%files iconv +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/26_iconv.ini +%attr(0755,root,root) %{_libdir}/php/extensions/iconv.so + +%files imap +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/27_imap.ini +%attr(0755,root,root) %{_libdir}/php/extensions/imap.so + +%files intl +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/27_intl.ini +%attr(0755,root,root) %{_libdir}/php/extensions/intl.so + +%files json +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/82_json.ini +%attr(0755,root,root) %{_libdir}/php/extensions/json.so + +%files ldap +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/28_ldap.ini +%attr(0755,root,root) %{_libdir}/php/extensions/ldap.so + +%files mbstring +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/29_mbstring.ini +%attr(0755,root,root) %{_libdir}/php/extensions/mbstring.so + +%files mysqli +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/37_mysqli.ini +%attr(0755,root,root) %{_libdir}/php/extensions/mysqli.so + +%files mysqlnd +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/78_mysqlnd.ini +%attr(0755,root,root) %{_libdir}/php/extensions/mysqlnd.so + +%files odbc +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/39_odbc.ini +%attr(0755,root,root) %{_libdir}/php/extensions/odbc.so + +%files opcache +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/85_opcache.ini +%attr(0755,root,root) %{_libdir}/php/extensions/opcache.so + +%files pcntl +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/40_pcntl.ini +%attr(0755,root,root) %{_libdir}/php/extensions/pcntl.so + +%files pdo +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/70_pdo.ini +%attr(0755,root,root) %{_libdir}/php/extensions/pdo.so + +%files pdo_dblib +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/71_pdo_dblib.ini +%attr(0755,root,root) %{_libdir}/php/extensions/pdo_dblib.so + +%files pdo_mysql +%config(noreplace) %attr(0644,root,root) %{_sysconfdir}/php.d/73_pdo_mysql.ini +%attr(0755,root,root) %{_libdir}/php/extensions/pdo_mysql.so + +%files pdo_odbc +%config(noreplace) %attr(0644,root,root) %{_sysconfdir}/php.d/75_pdo_odbc.ini +%attr(0755,root,root) %{_libdir}/php/extensions/pdo_odbc.so + +%files pdo_pgsql +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/76_pdo_pgsql.ini +%attr(0755,root,root) %{_libdir}/php/extensions/pdo_pgsql.so + +%files pdo_sqlite +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/77_pdo_sqlite.ini +%attr(0755,root,root) %{_libdir}/php/extensions/pdo_sqlite.so + +%files pgsql +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/42_pgsql.ini +%attr(0755,root,root) %{_libdir}/php/extensions/pgsql.so + +%files phar +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/84_phar.ini +%attr(0755,root,root) %{_libdir}/php/extensions/phar.so +%attr(0755,root,root) %{_bindir}/phar +%{_mandir}/man1/phar.1* +%{_mandir}/man1/phar.phar.1* + +%files posix +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/43_posix.ini +%attr(0755,root,root) %{_libdir}/php/extensions/posix.so + +%files pspell +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/44_pspell.ini +%attr(0755,root,root) %{_libdir}/php/extensions/pspell.so + +%files readline +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/45_readline.ini +%attr(0755,root,root) %{_libdir}/php/extensions/readline.so + +%files recode +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/46_recode.ini +%attr(0755,root,root) %{_libdir}/php/extensions/recode.so + +%files session +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/47_session.ini +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/cron.d/php +%attr(0755,root,root) %{_libdir}/php/extensions/session.so +%attr(0755,root,root) %{_libdir}/php/maxlifetime +%attr(01733,apache,apache) %dir /var/lib/php + +%files shmop +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/48_shmop.ini +%attr(0755,root,root) %{_libdir}/php/extensions/shmop.so + +%files snmp +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/50_snmp.ini +%attr(0755,root,root) %{_libdir}/php/extensions/snmp.so + +%files soap +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/51_soap.ini +%attr(0755,root,root) %{_libdir}/php/extensions/soap.so + +%files sockets +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/52_sockets.ini +%attr(0755,root,root) %{_libdir}/php/extensions/sockets.so + +%files sqlite3 +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/78_sqlite3.ini +%attr(0755,root,root) %{_libdir}/php/extensions/sqlite3.so + +%files sysvmsg +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/56_sysvmsg.ini +%attr(0755,root,root) %{_libdir}/php/extensions/sysvmsg.so + +%files sysvsem +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/57_sysvsem.ini +%attr(0755,root,root) %{_libdir}/php/extensions/sysvsem.so + +%files sysvshm +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/58_sysvshm.ini +%attr(0755,root,root) %{_libdir}/php/extensions/sysvshm.so + +%files tidy +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/59_tidy.ini +%attr(0755,root,root) %{_libdir}/php/extensions/tidy.so + +%files tokenizer +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/60_tokenizer.ini +%attr(0755,root,root) %{_libdir}/php/extensions/tokenizer.so + +%files xml +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/62_xml.ini +%attr(0755,root,root) %{_libdir}/php/extensions/xml.so + +%files xmlreader +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/63_xmlreader.ini +%attr(0755,root,root) %{_libdir}/php/extensions/xmlreader.so + +%files xmlrpc +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/62_xmlrpc.ini +%attr(0755,root,root) %{_libdir}/php/extensions/xmlrpc.so + +%files xmlwriter +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/64_xmlwriter.ini +%attr(0755,root,root) %{_libdir}/php/extensions/xmlwriter.so + +%files xsl +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/63_xsl.ini +%attr(0755,root,root) %{_libdir}/php/extensions/xsl.so + +%files wddx +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/63_wddx.ini +%attr(0755,root,root) %{_libdir}/php/extensions/wddx.so + +%files zip +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php.d/83_zip.ini +%attr(0755,root,root) %{_libdir}/php/extensions/zip.so + +%files fpm +%doc sapi/fpm/CREDITS sapi/fpm/LICENSE +/lib/systemd/system/php-fpm.service +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php-fpm.conf +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/sysconfig/php-fpm +%attr(0644,root,root) %{_sysconfdir}/logrotate.d/php-fpm +%attr(0755,root,root) %dir %{_sysconfdir}/php-fpm.d +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/php-fpm.d/default.conf +%attr(0755,root,root) %{_sbindir}/php-fpm +%attr(0644,root,root) %{_mandir}/man8/php-fpm.8* +%attr(0711,apache,apache) %dir /var/lib/php-fpm +%attr(0711,apache,apache) %dir /var/log/php-fpm +%attr(0711,apache,apache) %dir /run/php-fpm +%{_tmpfilesdir}/php-fpm.conf + +%files -n apache-mod_php +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/httpd/modules.d/*.conf +%attr(0755,root,root) %{_libdir}/apache/*.so + +%files -n php-ini +%config(noreplace) %{_sysconfdir}/php.ini +%config(noreplace) %{_sysconfdir}/php-cgi-fcgi.ini +%dir %{_sysconfdir}/php.d +%dir %{_libdir}/php +%dir %{_libdir}/php/extensions +%dir %{_datadir}/php diff --git a/php5-apache2-filters.diff b/php5-apache2-filters.diff new file mode 100644 index 0000000..97d3346 --- /dev/null +++ b/php5-apache2-filters.diff @@ -0,0 +1,77 @@ +--- php-7.0.1/sapi/apache2handler/php_functions.c.apache2-filters.droplet 2015-12-16 11:41:55.000000000 +0100 ++++ php-7.0.1/sapi/apache2handler/php_functions.c 2015-12-29 00:12:07.202603653 +0100 +@@ -216,6 +216,65 @@ PHP_FUNCTION(apache_response_headers) + } + /* }}} */ + ++/* {{{ proto array apache_get_output_filters() ++ Get All Active Output filters */ ++PHP_FUNCTION(apache_get_output_filters) ++{ ++ ap_filter_t* ff; ++ php_struct *ctx; ++ ++ if (ZEND_NUM_ARGS() != 0) { ++ WRONG_PARAM_COUNT; ++ } ++ ++ if(array_init(return_value) != SUCCESS) ++ { ++ RETURN_NULL(); ++ } ++ ++ ctx = SG(server_context); ++ ++ ff = ctx->r->output_filters; ++ ++ do { ++ add_next_index_string(return_value, ff->frec->name); ++ ff = ff->next ; ++ } while (ff); ++ ++} ++/* }}} */ ++ ++/* {{{ proto bool apache_add_output_filter(string filter_name) ++ Add an output filter to this request */ ++PHP_FUNCTION(apache_add_output_filter) ++{ ++ php_struct *ctx; ++ int arg_count = ZEND_NUM_ARGS(); ++ zval **filter_name; ++ ap_filter_rec_t* ap_filter; ++ ++ if (arg_count != 1 || ++ zend_get_parameters_ex(arg_count, &filter_name) == FAILURE) { ++ WRONG_PARAM_COUNT; ++ } ++ ++ ctx = SG(server_context); ++ ++ convert_to_string_ex(filter_name); ++ ++ ap_filter = ap_get_output_filter_handle(Z_STRVAL_P(*filter_name)); ++ ++ /* requested output filter was not found */ ++ if(ap_filter == NULL) { ++ RETURN_FALSE; ++ } ++ else { ++ ap_add_output_filter_handle(ap_filter, NULL, ctx->r, ctx->r->connection); ++ RETURN_TRUE; ++ } ++} ++/* }}} */ ++ + /* {{{ proto string apache_note(string note_name [, string note_value]) + Get and set Apache request notes */ + PHP_FUNCTION(apache_note) +@@ -520,6 +579,8 @@ ZEND_END_ARG_INFO() + static const zend_function_entry apache_functions[] = { + PHP_FE(apache_lookup_uri, arginfo_apache2handler_lookup_uri) + PHP_FE(virtual, arginfo_apache2handler_virtual) ++ PHP_FE(apache_get_output_filters, NULL) ++ PHP_FE(apache_add_output_filter, NULL) + PHP_FE(apache_request_headers, arginfo_apache2handler_getallheaders) + PHP_FE(apache_response_headers, arginfo_apache2handler_response_headers) + PHP_FE(apache_setenv, arginfo_apache2handler_setenv)