From b3e0ade88ce863b452efc83d003485b64399e89a Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Sun, 10 Jun 2012 07:12:19 +0200 Subject: repo reorg --- Makefile | 4 + macros.php | 8 + php-4.3.11-shutdown.patch | 38 ++ php-5.0.4-dlopen.patch | 17 + php-5.0.4-tests-wddx.patch | 26 + php-5.2.0-includedir.patch | 11 + php-5.2.13-gnusrc.patch | 117 ++++ php-5.2.15-oci8conf.patch | 48 ++ php-5.2.3-macropen.patch | 36 ++ php-5.2.4-easter.patch | 482 +++++++++++++++ php-5.2.4-embed.patch | 12 + php-5.2.4-norpath.patch | 18 + php-5.2.5-systzdata.patch | 263 ++++++++ php-5.2.7-tests-dashn.patch | 11 + php-5.2.8-install.patch | 11 + php-5.2.8-phpize64.patch | 22 + php-5.2.8-recode.patch | 19 + php-remi.ini | 1280 ++++++++++++++++++++++++++++++++++++++ php.conf | 28 + php52.spec | 1420 +++++++++++++++++++++++++++++++++++++++++++ 20 files changed, 3871 insertions(+) create mode 100644 Makefile create mode 100644 macros.php create mode 100644 php-4.3.11-shutdown.patch create mode 100644 php-5.0.4-dlopen.patch create mode 100644 php-5.0.4-tests-wddx.patch create mode 100644 php-5.2.0-includedir.patch create mode 100644 php-5.2.13-gnusrc.patch create mode 100644 php-5.2.15-oci8conf.patch create mode 100644 php-5.2.3-macropen.patch create mode 100644 php-5.2.4-easter.patch create mode 100644 php-5.2.4-embed.patch create mode 100644 php-5.2.4-norpath.patch create mode 100644 php-5.2.5-systzdata.patch create mode 100644 php-5.2.7-tests-dashn.patch create mode 100644 php-5.2.8-install.patch create mode 100644 php-5.2.8-phpize64.patch create mode 100644 php-5.2.8-recode.patch create mode 100644 php-remi.ini create mode 100644 php.conf create mode 100644 php52.spec diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..1e65467 --- /dev/null +++ b/Makefile @@ -0,0 +1,4 @@ +SRCDIR := $(shell pwd) +NAME := $(shell basename $(SRCDIR)) +include ../common/Makefile + diff --git a/macros.php b/macros.php new file mode 100644 index 0000000..9f5e849 --- /dev/null +++ b/macros.php @@ -0,0 +1,8 @@ +# +# Interface versions exposed by PHP: +# +%php_core_api @PHP_APIVER@ +%php_zend_api @PHP_ZENDVER@ +%php_pdo_api @PHP_PDOVER@ + +%php_extdir %{_libdir}/php/modules diff --git a/php-4.3.11-shutdown.patch b/php-4.3.11-shutdown.patch new file mode 100644 index 0000000..a9980ce --- /dev/null +++ b/php-4.3.11-shutdown.patch @@ -0,0 +1,38 @@ +--- php-4.3.11/ext/snmp/php_snmp.h.shutdown ++++ php-4.3.11/ext/snmp/php_snmp.h +@@ -39,7 +39,6 @@ + #endif + + PHP_MINIT_FUNCTION(snmp); +-PHP_MSHUTDOWN_FUNCTION(snmp); + PHP_MINFO_FUNCTION(snmp); + + PHP_FUNCTION(snmpget); +--- php-4.3.11/ext/snmp/snmp.c.shutdown ++++ php-4.3.11/ext/snmp/snmp.c +@@ -156,7 +156,7 @@ + "snmp", + snmp_functions, + PHP_MINIT(snmp), +- PHP_MSHUTDOWN(snmp), ++ NULL, + NULL, + NULL, + PHP_MINFO(snmp), +@@ -208,16 +208,6 @@ + } + /* }}} */ + +-/* {{{ PHP_MSHUTDOWN_FUNCTION +- */ +-PHP_MSHUTDOWN_FUNCTION(snmp) +-{ +- snmp_shutdown("snmpapp"); +- +- return SUCCESS; +-} +-/* }}} */ +- + /* {{{ PHP_MINFO_FUNCTION + */ + PHP_MINFO_FUNCTION(snmp) diff --git a/php-5.0.4-dlopen.patch b/php-5.0.4-dlopen.patch new file mode 100644 index 0000000..f1809da --- /dev/null +++ b/php-5.0.4-dlopen.patch @@ -0,0 +1,17 @@ +--- php-5.0.4/Zend/zend.h.dlopen ++++ php-5.0.4/Zend/zend.h +@@ -102,11 +102,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) +-# 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-5.0.4-tests-wddx.patch b/php-5.0.4-tests-wddx.patch new file mode 100644 index 0000000..56d6863 --- /dev/null +++ b/php-5.0.4-tests-wddx.patch @@ -0,0 +1,26 @@ + +The wddx tests presume that "2040-06-12T04:32:12" cannot be parsed; +that's only true on platforms with a 32-bit time_t. + +--- php-5.0.5/ext/wddx/tests/001.phpt.tests-wddx ++++ php-5.0.5/ext/wddx/tests/001.phpt +@@ -18,7 +18,7 @@ + ["aDateTime2"]=> + int(329632332) + ["aDateTime3"]=> +- string(22) "2040-06-12T04:32:12+00" ++ string(12) "NotADateTime" + ["aBoolean"]=> + bool(true) + ["anArray"]=> +--- php-5.0.5/ext/wddx/tests/wddx.xml.tests-wddx ++++ php-5.0.5/ext/wddx/tests/wddx.xml +@@ -20,7 +20,7 @@ + 1980-06-12T04:32:12+00 + + +- 2040-06-12T04:32:12+00 ++ NotADateTime + + + diff --git a/php-5.2.0-includedir.patch b/php-5.2.0-includedir.patch new file mode 100644 index 0000000..a1c3afe --- /dev/null +++ b/php-5.2.0-includedir.patch @@ -0,0 +1,11 @@ +--- php-5.2.0/configure.in.includedir ++++ php-5.2.0/configure.in +@@ -1101,7 +1101,7 @@ + EXPANDED_DATADIR=$datadir + EXPANDED_PHP_CONFIG_FILE_PATH=`eval echo "$PHP_CONFIG_FILE_PATH"` + EXPANDED_PHP_CONFIG_FILE_SCAN_DIR=`eval echo "$PHP_CONFIG_FILE_SCAN_DIR"` +-INCLUDE_PATH=.:$EXPANDED_PEAR_INSTALLDIR ++INCLUDE_PATH=.:$EXPANDED_PEAR_INSTALLDIR:${EXPANDED_DATADIR}/php + + exec_prefix=$old_exec_prefix + libdir=$old_libdir diff --git a/php-5.2.13-gnusrc.patch b/php-5.2.13-gnusrc.patch new file mode 100644 index 0000000..39ddd70 --- /dev/null +++ b/php-5.2.13-gnusrc.patch @@ -0,0 +1,117 @@ +diff -ur php-5.2.13.orig/configure.in php-5.2.13/configure.in +--- php-5.2.13.orig/configure.in 2010-02-24 12:23:46.000000000 +0000 ++++ php-5.2.13/configure.in 2010-03-06 11:05:46.215767110 +0000 +@@ -58,6 +58,8 @@ + AC_DEFUN([PHP_EXT_SRCDIR],[$abs_srcdir/ext/$1])dnl + AC_DEFUN([PHP_ALWAYS_SHARED],[])dnl + ++AC_DEFINE([_GNU_SOURCE], 1, [Define to enable GNU C Library extensions]) ++ + dnl Setting up the PHP version based on the information above. + dnl ------------------------------------------------------------------------- + +diff -ur php-5.2.13.orig/ext/interbase/interbase.c php-5.2.13/ext/interbase/interbase.c +--- php-5.2.13.orig/ext/interbase/interbase.c 2010-01-03 09:23:27.000000000 +0000 ++++ php-5.2.13/ext/interbase/interbase.c 2010-03-06 11:05:46.216766888 +0000 +@@ -24,7 +24,6 @@ + #include "config.h" + #endif + +-#define _GNU_SOURCE + + #include "php.h" + +diff -ur php-5.2.13.orig/ext/pdo_firebird/firebird_driver.c php-5.2.13/ext/pdo_firebird/firebird_driver.c +--- php-5.2.13.orig/ext/pdo_firebird/firebird_driver.c 2010-01-03 09:23:27.000000000 +0000 ++++ php-5.2.13/ext/pdo_firebird/firebird_driver.c 2010-03-06 11:05:46.217766704 +0000 +@@ -22,7 +22,6 @@ + #include "config.h" + #endif + +-#define _GNU_SOURCE + + #include "php.h" + #ifdef ZEND_ENGINE_2 +diff -ur php-5.2.13.orig/ext/standard/file.c php-5.2.13/ext/standard/file.c +--- php-5.2.13.orig/ext/standard/file.c 2010-02-11 12:32:21.000000000 +0000 ++++ php-5.2.13/ext/standard/file.c 2010-03-06 11:05:46.218766723 +0000 +@@ -108,7 +108,6 @@ + + #ifdef HAVE_FNMATCH + #ifndef _GNU_SOURCE +-#define _GNU_SOURCE + #endif + #include + #endif +diff -ur php-5.2.13.orig/ext/zlib/zlib_fopen_wrapper.c php-5.2.13/ext/zlib/zlib_fopen_wrapper.c +--- php-5.2.13.orig/ext/zlib/zlib_fopen_wrapper.c 2010-01-03 09:23:27.000000000 +0000 ++++ php-5.2.13/ext/zlib/zlib_fopen_wrapper.c 2010-03-06 11:05:46.219766587 +0000 +@@ -19,8 +19,6 @@ + + /* $Id: zlib_fopen_wrapper.c 293036 2010-01-03 09:23:27Z sebastian $ */ + +-#define _GNU_SOURCE +- + #include "php.h" + #include "php_zlib.h" + #include "fopen_wrappers.h" +Only in php-5.2.13/ext/zlib: zlib_fopen_wrapper.c.orig +diff -ur php-5.2.13.orig/main/php.h php-5.2.13/main/php.h +--- php-5.2.13.orig/main/php.h 2010-01-03 09:23:27.000000000 +0000 ++++ php-5.2.13/main/php.h 2010-03-06 11:05:46.220766898 +0000 +@@ -30,6 +30,7 @@ + #define PHP_HAVE_STREAMS + #define YYDEBUG 0 + ++#include "php_config.h" + #include "php_version.h" + #include "zend.h" + #include "zend_qsort.h" +diff -ur php-5.2.13.orig/main/streams/cast.c php-5.2.13/main/streams/cast.c +--- php-5.2.13.orig/main/streams/cast.c 2010-01-19 13:44:08.000000000 +0000 ++++ php-5.2.13/main/streams/cast.c 2010-03-06 11:05:46.222766339 +0000 +@@ -18,7 +18,6 @@ + + /* $Id: cast.c 293732 2010-01-19 13:44:08Z jani $ */ + +-#define _GNU_SOURCE + #include "php.h" + #include "php_globals.h" + #include "php_network.h" +Only in php-5.2.13/main/streams: cast.c.orig +diff -ur php-5.2.13.orig/main/streams/memory.c php-5.2.13/main/streams/memory.c +--- php-5.2.13.orig/main/streams/memory.c 2010-01-03 09:23:27.000000000 +0000 ++++ php-5.2.13/main/streams/memory.c 2010-03-06 11:05:46.224766290 +0000 +@@ -18,7 +18,6 @@ + + /* $Id: memory.c 293036 2010-01-03 09:23:27Z sebastian $ */ + +-#define _GNU_SOURCE + #include "php.h" + + PHPAPI int php_url_decode(char *str, int len); +Only in php-5.2.13/main/streams: memory.c.orig +diff -ur php-5.2.13.orig/main/streams/streams.c php-5.2.13/main/streams/streams.c +--- php-5.2.13.orig/main/streams/streams.c 2010-01-06 12:54:53.000000000 +0000 ++++ php-5.2.13/main/streams/streams.c 2010-03-06 11:05:46.226766057 +0000 +@@ -21,7 +21,6 @@ + + /* $Id: streams.c 293175 2010-01-06 12:54:53Z iliaa $ */ + +-#define _GNU_SOURCE + #include "php.h" + #include "php_globals.h" + #include "php_network.h" +Only in php-5.2.13/main/streams: streams.c.orig +diff -ur php-5.2.13.orig/Zend/zend_language_parser.c php-5.2.13/Zend/zend_language_parser.c +--- php-5.2.13.orig/Zend/zend_language_parser.c 2010-02-24 12:27:31.000000000 +0000 ++++ php-5.2.13/Zend/zend_language_parser.c 2010-03-06 11:05:46.229766071 +0000 +@@ -356,6 +356,8 @@ + #include "zend_API.h" + #include "zend_constants.h" + ++#include ++ + + #define YYERROR_VERBOSE + #define YYSTYPE znode diff --git a/php-5.2.15-oci8conf.patch b/php-5.2.15-oci8conf.patch new file mode 100644 index 0000000..ff56a59 --- /dev/null +++ b/php-5.2.15-oci8conf.patch @@ -0,0 +1,48 @@ +--- ext/oci8/config.m4.remi-oci8 2008-12-05 17:29:15.000000000 +0100 ++++ ext/oci8/config.m4 2008-12-05 17:30:26.000000000 +0100 +@@ -371,7 +371,7 @@ + AC_MSG_CHECKING([Oracle Instant Client SDK header directory]) + + dnl Header directory for Instant Client SDK RPM install +- OCISDKRPMINC=`echo "$PHP_OCI8_INSTANT_CLIENT" | $PHP_OCI8_SED -e 's!^/usr/lib/oracle/\(.*\)/client\('${LIBDIR_SUFFIX}'\)*/lib[/]*$!/usr/include/oracle/\1/client\2!'` ++ OCISDKRPMINC=`echo "$PHP_OCI8_INSTANT_CLIENT" | $PHP_OCI8_SED -e 's!^/usr/\(lib64\|lib\)/oracle/\(.*\)/\(client64\|client\)/lib[/]*$!/usr/include/oracle/\2/\3!'` + + dnl Header directory for Instant Client SDK zip file install + OCISDKZIPINC=$PHP_OCI8_INSTANT_CLIENT/sdk/include +diff -up ext/pdo_oci/config.m4.orig ext/pdo_oci/config.m4 +--- ext/pdo_oci/config.m4.orig 2008-12-05 17:33:05.000000000 +0100 ++++ ext/pdo_oci/config.m4 2008-12-05 17:35:21.000000000 +0100 +@@ -82,7 +82,10 @@ You need to tell me where to find your O + PDO_OCI_IC_PREFIX="`echo $PDO_OCI_DIR | cut -d, -f2`" + PDO_OCI_IC_VERS="`echo $PDO_OCI_DIR | cut -d, -f3`" + AC_MSG_CHECKING([for oci.h]) +- if test -f $PDO_OCI_IC_PREFIX/include/oracle/$PDO_OCI_IC_VERS/client/oci.h ; then ++ if test -f $PDO_OCI_IC_PREFIX/include/oracle/$PDO_OCI_IC_VERS/client64/oci.h ; then ++ PHP_ADD_INCLUDE($PDO_OCI_IC_PREFIX/include/oracle/$PDO_OCI_IC_VERS/client64) ++ AC_MSG_RESULT($PDO_OCI_IC_PREFIX/include/oracle/$PDO_OCI_IC_VERS/client64) ++ elif test -f $PDO_OCI_IC_PREFIX/include/oracle/$PDO_OCI_IC_VERS/client/oci.h ; then + PHP_ADD_INCLUDE($PDO_OCI_IC_PREFIX/include/oracle/$PDO_OCI_IC_VERS/client) + AC_MSG_RESULT($PDO_OCI_IC_PREFIX/include/oracle/$PDO_OCI_IC_VERS/client) + elif test -f $PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/client/include/oci.h ; then +@@ -99,6 +102,10 @@ You need to tell me where to find your O + fi + if test -f "$PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/client/lib/libclntsh.so" ; then + PDO_OCI_LIB_DIR="$PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/client/lib" ++ elif test -f "$PDO_OCI_IC_PREFIX/lib64/oracle/$PDO_OCI_IC_VERS/client64/lib/libclntsh.so" ; then ++ PDO_OCI_LIB_DIR="$PDO_OCI_IC_PREFIX/lib64/oracle/$PDO_OCI_IC_VERS/client64/lib" ++ elif test -f "$PDO_OCI_IC_PREFIX/lib64/oracle/$PDO_OCI_IC_VERS/client/lib/libclntsh.so" ; then ++ PDO_OCI_LIB_DIR="$PDO_OCI_IC_PREFIX/lib64/oracle/$PDO_OCI_IC_VERS/client/lib" + elif test -f "$PDO_OCI_IC_PREFIX/client/lib/libclntsh.so" ; then + PDO_OCI_LIB_DIR="$PDO_OCI_IC_PREFIX/client/lib" + elif test -f "$PDO_OCI_IC_PREFIX/libclntsh.so" ; then +--- ext/ldap/php_ldap.h.remi-oci8 2010-01-03 10:23:27.000000000 +0100 ++++ ext/ldap/php_ldap.h 2010-12-11 08:53:26.065832296 +0100 +@@ -26,7 +26,7 @@ + #ifndef HAVE_ORALDAP + #include + #endif +-#include ++#include "/usr/include/ldap.h" + + extern zend_module_entry ldap_module_entry; + #define ldap_module_ptr &ldap_module_entry diff --git a/php-5.2.3-macropen.patch b/php-5.2.3-macropen.patch new file mode 100644 index 0000000..f3dcaa4 --- /dev/null +++ b/php-5.2.3-macropen.patch @@ -0,0 +1,36 @@ +--- php-5.2.3/ext/dba/dba.c.macropen ++++ php-5.2.3/ext/dba/dba.c +@@ -930,7 +930,7 @@ + } + } + +- if (error || hptr->open(info, &error TSRMLS_CC) != SUCCESS) { ++ if (error || (hptr->open)(info, &error TSRMLS_CC) != SUCCESS) { + dba_close(info TSRMLS_CC); + php_error_docref2(NULL TSRMLS_CC, Z_STRVAL_PP(args[0]), Z_STRVAL_PP(args[1]), E_WARNING, "Driver initialization failed for handler: %s%s%s", hptr->name, error?": ":"", error?error:""); + FREENOW; +--- php-5.2.3/ext/dba/dba_db3.c.macropen ++++ php-5.2.3/ext/dba/dba_db3.c +@@ -91,7 +91,7 @@ + + if ((err=db_create(&dbp, NULL, 0)) == 0) { + dbp->set_errcall(dbp, php_dba_db3_errcall_fcn); +- if ((err=dbp->open(dbp, info->path, NULL, type, gmode, filemode)) == 0) { ++ if ((err=(dbp->open)(dbp, info->path, NULL, type, gmode, filemode)) == 0) { + dba_db3_data *data; + + data = pemalloc(sizeof(*data), info->flags&DBA_PERSISTENT); +--- php-5.2.3/ext/dba/dba_db4.c.macropen ++++ php-5.2.3/ext/dba/dba_db4.c +@@ -99,9 +99,9 @@ + dbp->set_errcall(dbp, php_dba_db4_errcall_fcn); + if ( + #if (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1) +- (err=dbp->open(dbp, 0, info->path, NULL, type, gmode, filemode)) == 0) { ++ (err=(dbp->open)(dbp, 0, info->path, NULL, type, gmode, filemode)) == 0) { + #else +- (err=dbp->open(dbp, info->path, NULL, type, gmode, filemode)) == 0) { ++ (err=(dbp->open)(dbp, info->path, NULL, type, gmode, filemode)) == 0) { + #endif + dba_db4_data *data; + diff --git a/php-5.2.4-easter.patch b/php-5.2.4-easter.patch new file mode 100644 index 0000000..a540d04 --- /dev/null +++ b/php-5.2.4-easter.patch @@ -0,0 +1,482 @@ +--- php-5.2.4/main/logos.h.easter ++++ php-5.2.4/main/logos.h +@@ -491,386 +491,3 @@ static const unsigned char php_logo[] = + 102, 63, 251, 220, 139, 16, 65, 26, 16, 112, + 21, 116, 187, 251, 221, 240, 142, 119, 188, 3, + 1, 0, 59, 0 }; +- +-static const unsigned char php_egg_logo[] = { +- 71, 73, 70, 56, 57, 97, 120, 0, 67, 0, +- 247, 0, 0, 0, 255, 0, 107, 114, 178, 0, +- 0, 0, 31, 31, 31, 255, 255, 255, 106, 113, +- 176, 63, 63, 63, 127, 127, 127, 106, 112, 174, +- 191, 191, 191, 105, 111, 171, 223, 223, 223, 239, +- 239, 239, 144, 149, 197, 106, 111, 173, 245, 246, +- 250, 105, 110, 170, 218, 219, 235, 47, 47, 47, +- 162, 166, 206, 35, 36, 40, 153, 158, 202, 95, +- 95, 95, 175, 175, 175, 88, 93, 141, 159, 159, +- 159, 116, 122, 182, 125, 131, 187, 143, 143, 143, +- 38, 38, 41, 104, 108, 167, 171, 175, 211, 105, +- 109, 168, 102, 102, 153, 104, 108, 165, 45, 46, +- 58, 181, 184, 216, 111, 111, 111, 134, 140, 192, +- 102, 108, 168, 79, 79, 79, 199, 202, 226, 40, +- 41, 49, 92, 98, 150, 53, 53, 63, 236, 237, +- 245, 130, 130, 171, 122, 122, 160, 104, 107, 163, +- 50, 51, 67, 45, 45, 52, 207, 207, 207, 69, +- 72, 104, 15, 15, 15, 61, 61, 74, 227, 228, +- 240, 59, 62, 86, 103, 106, 162, 107, 107, 139, +- 73, 77, 113, 102, 103, 156, 54, 56, 76, 97, +- 103, 159, 137, 137, 182, 35, 35, 38, 190, 193, +- 221, 145, 145, 193, 103, 105, 159, 78, 82, 122, +- 76, 76, 95, 147, 148, 200, 92, 92, 117, 105, +- 105, 156, 103, 105, 160, 150, 150, 202, 64, 67, +- 95, 114, 114, 149, 108, 108, 159, 143, 143, 194, +- 84, 84, 106, 140, 140, 191, 102, 104, 157, 48, +- 48, 61, 27, 29, 42, 114, 114, 165, 83, 88, +- 132, 153, 153, 204, 121, 126, 186, 127, 127, 178, +- 208, 210, 230, 149, 149, 200, 146, 146, 197, 141, +- 143, 197, 55, 55, 67, 144, 145, 199, 133, 133, +- 184, 124, 124, 175, 110, 115, 171, 130, 133, 191, +- 88, 91, 137, 86, 92, 144, 154, 156, 172, 87, +- 92, 139, 85, 86, 125, 118, 123, 184, 121, 122, +- 172, 124, 128, 187, 82, 86, 130, 39, 39, 46, +- 99, 99, 128, 69, 69, 85, 97, 101, 153, 75, +- 75, 107, 115, 121, 182, 135, 138, 194, 101, 107, +- 165, 82, 84, 101, 102, 102, 140, 53, 57, 89, +- 69, 71, 101, 137, 137, 188, 109, 116, 179, 130, +- 130, 182, 57, 57, 76, 93, 99, 155, 117, 117, +- 168, 62, 63, 86, 84, 84, 122, 79, 79, 114, +- 112, 117, 177, 58, 58, 71, 127, 131, 189, 106, +- 106, 150, 76, 76, 101, 134, 135, 187, 20, 20, +- 31, 66, 71, 111, 125, 129, 182, 172, 173, 180, +- 86, 88, 131, 229, 230, 234, 108, 112, 171, 100, +- 105, 161, 161, 165, 203, 53, 53, 70, 95, 97, +- 146, 58, 60, 81, 217, 219, 234, 195, 196, 208, +- 82, 85, 125, 112, 118, 181, 82, 82, 106, 114, +- 117, 175, 154, 157, 195, 134, 134, 179, 111, 111, +- 162, 6, 7, 11, 110, 111, 146, 93, 93, 138, +- 77, 79, 116, 115, 119, 179, 103, 108, 161, 60, +- 64, 100, 98, 98, 145, 40, 40, 47, 51, 51, +- 63, 69, 69, 95, 73, 78, 122, 197, 198, 202, +- 54, 54, 58, 13, 14, 22, 108, 114, 174, 149, +- 152, 184, 101, 108, 167, 88, 88, 130, 106, 108, +- 162, 86, 91, 141, 84, 84, 116, 86, 86, 90, +- 129, 131, 186, 132, 135, 181, 160, 163, 183, 211, +- 212, 224, 91, 91, 123, 109, 109, 117, 104, 104, +- 135, 86, 86, 115, 90, 92, 108, 81, 83, 122, +- 103, 106, 130, 70, 70, 99, 121, 126, 170, 139, +- 139, 186, 73, 74, 94, 109, 109, 148, 139, 140, +- 189, 135, 138, 162, 176, 179, 199, 115, 115, 115, +- 106, 106, 144, 59, 63, 98, 67, 69, 96, 241, +- 241, 241, 102, 105, 149, 120, 120, 162, 68, 68, +- 90, 89, 89, 115, 51, 52, 79, 113, 113, 152, +- 33, 35, 55, 189, 190, 215, 79, 79, 104, 213, +- 214, 218, 94, 95, 142, 163, 164, 176, 86, 89, +- 133, 112, 112, 156, 80, 81, 118, 63, 65, 90, +- 102, 103, 124, 126, 129, 157, 72, 72, 98, 150, +- 150, 154, 72, 74, 100, 112, 112, 151, 138, 139, +- 192, 122, 125, 180, 49, 50, 64, 78, 78, 110, +- 119, 119, 157, 125, 126, 174, 77, 81, 119, 125, +- 126, 180, 56, 56, 72, 118, 120, 173, 46, 49, +- 77, 92, 96, 132, 188, 189, 197, 65, 65, 81, +- 165, 168, 200, 49, 51, 66, 143, 147, 194, 80, +- 82, 111, 192, 195, 215, 235, 235, 242, 105, 111, +- 170, 74, 77, 107, 183, 186, 210, 109, 111, 165, +- 117, 120, 152, 65, 66, 90, 182, 182, 186, 104, +- 104, 137, 123, 127, 163, 170, 171, 187, 110, 113, +- 163, 33, 249, 4, 1, 0, 0, 0, 0, 44, +- 0, 0, 0, 0, 120, 0, 67, 0, 0, 8, +- 255, 0, 1, 8, 28, 72, 176, 160, 193, 131, +- 8, 19, 42, 92, 200, 176, 161, 195, 135, 16, +- 35, 74, 156, 72, 177, 162, 197, 139, 24, 51, +- 106, 220, 200, 209, 162, 145, 43, 104, 188, 116, +- 28, 73, 210, 160, 23, 145, 8, 141, 24, 84, +- 50, 40, 128, 75, 17, 122, 228, 112, 65, 200, +- 69, 140, 146, 146, 56, 83, 170, 9, 144, 6, +- 192, 11, 38, 69, 190, 209, 88, 82, 196, 134, +- 141, 1, 44, 6, 40, 29, 64, 65, 30, 19, +- 29, 71, 138, 250, 137, 129, 163, 202, 157, 107, +- 99, 48, 96, 128, 246, 67, 200, 139, 23, 66, +- 62, 186, 212, 224, 36, 103, 206, 31, 58, 92, +- 56, 75, 214, 35, 198, 210, 183, 112, 153, 142, +- 88, 58, 231, 207, 11, 67, 113, 86, 172, 56, +- 65, 68, 91, 219, 185, 61, 226, 142, 160, 65, +- 163, 199, 167, 81, 102, 71, 2, 69, 26, 119, +- 169, 10, 28, 59, 180, 210, 216, 17, 137, 138, +- 152, 60, 1, 180, 250, 72, 194, 3, 148, 75, +- 151, 5, 16, 124, 254, 188, 98, 7, 156, 127, +- 24, 118, 196, 24, 209, 67, 138, 10, 32, 54, +- 92, 0, 224, 162, 50, 241, 68, 175, 79, 58, +- 188, 165, 16, 99, 201, 142, 49, 145, 68, 143, +- 254, 12, 1, 134, 112, 151, 30, 120, 136, 24, +- 206, 252, 115, 1, 15, 10, 70, 43, 200, 17, +- 125, 133, 190, 14, 29, 112, 84, 194, 99, 251, +- 161, 144, 35, 50, 88, 232, 255, 30, 32, 136, +- 70, 21, 31, 159, 65, 68, 111, 94, 64, 196, +- 122, 151, 8, 134, 228, 56, 222, 124, 180, 3, +- 8, 163, 219, 131, 24, 45, 26, 3, 133, 1, +- 108, 0, 211, 29, 67, 58, 188, 213, 193, 17, +- 226, 96, 246, 25, 2, 248, 213, 167, 64, 131, +- 38, 144, 16, 128, 7, 73, 68, 247, 203, 61, +- 100, 212, 7, 154, 2, 5, 72, 231, 65, 135, +- 205, 33, 176, 199, 0, 50, 44, 51, 224, 65, +- 46, 28, 17, 204, 82, 29, 20, 1, 134, 37, +- 195, 21, 0, 34, 115, 5, 56, 0, 98, 5, +- 4, 16, 176, 205, 51, 235, 76, 33, 64, 2, +- 11, 112, 163, 161, 141, 252, 121, 64, 223, 112, +- 34, 240, 160, 128, 15, 49, 168, 224, 206, 15, +- 39, 10, 132, 214, 120, 20, 220, 81, 135, 17, +- 104, 104, 200, 222, 140, 1, 68, 144, 163, 4, +- 40, 24, 80, 2, 7, 12, 92, 96, 71, 125, +- 92, 6, 160, 128, 3, 67, 14, 225, 193, 104, +- 107, 12, 208, 129, 14, 39, 230, 166, 20, 5, +- 75, 180, 194, 67, 35, 90, 246, 233, 146, 3, +- 4, 160, 34, 64, 6, 18, 28, 48, 64, 13, +- 7, 28, 128, 136, 159, 8, 176, 137, 38, 12, +- 57, 164, 169, 192, 24, 50, 12, 96, 195, 11, +- 98, 92, 129, 210, 72, 66, 60, 241, 22, 14, +- 39, 40, 32, 66, 154, 126, 50, 7, 65, 38, +- 4, 36, 32, 192, 170, 172, 94, 96, 64, 134, +- 26, 202, 255, 72, 234, 103, 211, 57, 202, 220, +- 42, 216, 28, 161, 212, 8, 24, 4, 242, 197, +- 108, 55, 105, 228, 66, 82, 187, 98, 160, 230, +- 145, 165, 14, 135, 64, 116, 94, 30, 192, 42, +- 171, 51, 164, 146, 44, 123, 48, 52, 88, 159, +- 8, 81, 160, 225, 131, 106, 20, 0, 81, 138, +- 61, 43, 88, 178, 5, 70, 46, 216, 57, 0, +- 17, 206, 185, 52, 65, 5, 13, 76, 240, 129, +- 75, 13, 108, 80, 170, 140, 1, 108, 240, 229, +- 179, 171, 18, 48, 197, 180, 46, 201, 27, 64, +- 60, 31, 126, 166, 193, 6, 241, 194, 151, 196, +- 126, 11, 230, 64, 68, 96, 3, 224, 64, 142, +- 38, 22, 233, 48, 94, 195, 39, 12, 23, 68, +- 142, 24, 63, 144, 241, 3, 17, 100, 65, 194, +- 186, 239, 54, 215, 64, 170, 248, 10, 32, 193, +- 12, 103, 38, 107, 130, 151, 26, 19, 112, 67, +- 203, 45, 231, 248, 64, 11, 244, 68, 160, 193, +- 103, 30, 32, 28, 128, 15, 107, 248, 81, 41, +- 11, 109, 12, 163, 6, 26, 181, 49, 36, 68, +- 17, 75, 45, 81, 49, 115, 24, 99, 60, 131, +- 53, 138, 36, 144, 128, 151, 77, 19, 208, 194, +- 4, 19, 220, 252, 153, 151, 18, 148, 92, 194, +- 12, 167, 36, 187, 65, 204, 78, 75, 157, 192, +- 62, 101, 164, 173, 8, 3, 26, 183, 240, 64, +- 10, 180, 164, 25, 5, 18, 122, 180, 161, 27, +- 5, 59, 4, 16, 70, 89, 11, 13, 255, 187, +- 20, 186, 245, 229, 24, 230, 0, 37, 11, 112, +- 200, 20, 116, 224, 114, 0, 153, 24, 167, 208, +- 64, 0, 56, 102, 80, 248, 0, 12, 80, 18, +- 1, 49, 249, 188, 67, 66, 10, 17, 180, 144, +- 227, 13, 89, 76, 0, 57, 1, 12, 36, 144, +- 193, 1, 6, 212, 80, 248, 179, 6, 44, 128, +- 113, 11, 143, 127, 38, 2, 22, 86, 200, 81, +- 15, 13, 74, 173, 17, 69, 31, 125, 143, 183, +- 3, 224, 34, 19, 176, 192, 234, 171, 215, 144, +- 193, 2, 174, 63, 80, 193, 4, 4, 200, 178, +- 186, 1, 82, 51, 48, 67, 244, 57, 74, 125, +- 64, 2, 86, 147, 64, 128, 179, 196, 175, 110, +- 193, 1, 12, 48, 208, 130, 115, 81, 224, 19, +- 199, 103, 59, 12, 160, 130, 35, 220, 37, 36, +- 68, 165, 20, 24, 171, 37, 243, 220, 119, 63, +- 57, 10, 4, 4, 113, 177, 5, 246, 219, 127, +- 64, 142, 11, 80, 93, 255, 188, 71, 0, 151, +- 64, 32, 10, 58, 251, 12, 96, 54, 161, 16, +- 55, 168, 111, 105, 90, 202, 130, 170, 6, 184, +- 186, 11, 20, 227, 3, 4, 48, 0, 5, 137, +- 231, 58, 13, 110, 176, 100, 23, 56, 0, 44, +- 146, 48, 170, 230, 156, 64, 5, 3, 0, 68, +- 66, 152, 160, 148, 188, 245, 201, 94, 245, 251, +- 224, 170, 36, 80, 2, 1, 148, 129, 0, 116, +- 144, 33, 190, 106, 224, 58, 29, 226, 235, 0, +- 22, 56, 4, 178, 255, 136, 195, 11, 10, 140, +- 32, 33, 149, 194, 65, 169, 82, 176, 189, 146, +- 89, 32, 71, 28, 176, 31, 13, 19, 69, 128, +- 93, 248, 144, 85, 6, 200, 209, 234, 74, 144, +- 168, 68, 89, 64, 2, 252, 43, 220, 12, 4, +- 176, 40, 230, 32, 0, 58, 39, 8, 204, 49, +- 14, 210, 137, 7, 150, 170, 2, 15, 136, 161, +- 0, 6, 208, 180, 4, 132, 201, 2, 9, 224, +- 64, 6, 8, 199, 42, 227, 93, 0, 135, 221, +- 59, 64, 6, 164, 70, 168, 194, 145, 169, 112, +- 25, 168, 26, 198, 22, 144, 0, 62, 178, 202, +- 2, 6, 80, 133, 169, 172, 181, 130, 1, 72, +- 161, 32, 74, 80, 131, 91, 98, 0, 154, 62, +- 153, 32, 142, 37, 91, 64, 4, 194, 64, 53, +- 140, 205, 131, 17, 12, 112, 164, 0, 178, 168, +- 175, 213, 161, 192, 117, 110, 187, 1, 1, 46, +- 80, 50, 202, 209, 50, 148, 4, 200, 68, 5, +- 150, 87, 129, 15, 76, 128, 21, 11, 136, 226, +- 179, 6, 160, 42, 62, 56, 135, 67, 206, 201, +- 193, 0, 186, 64, 16, 35, 196, 161, 10, 74, +- 89, 129, 3, 134, 56, 28, 38, 170, 50, 95, +- 65, 8, 128, 6, 76, 128, 181, 130, 137, 130, +- 3, 194, 100, 85, 15, 87, 103, 181, 10, 184, +- 4, 71, 97, 124, 22, 7, 8, 208, 181, 80, +- 222, 160, 57, 124, 64, 193, 45, 159, 149, 1, +- 3, 172, 225, 79, 244, 81, 64, 8, 66, 208, +- 255, 133, 1, 64, 73, 32, 87, 8, 64, 96, +- 128, 0, 130, 89, 13, 7, 71, 99, 220, 33, +- 1, 98, 215, 28, 78, 44, 64, 149, 210, 91, +- 157, 4, 8, 16, 178, 0, 92, 236, 154, 2, +- 32, 29, 57, 179, 201, 28, 100, 160, 32, 156, +- 172, 170, 167, 29, 232, 21, 163, 38, 64, 193, +- 5, 3, 160, 147, 64, 90, 178, 201, 100, 121, +- 169, 134, 248, 202, 162, 9, 234, 195, 135, 31, +- 61, 11, 127, 146, 43, 92, 9, 22, 250, 153, +- 27, 48, 160, 112, 36, 171, 37, 1, 180, 198, +- 31, 81, 212, 96, 158, 226, 148, 0, 172, 154, +- 19, 130, 45, 164, 161, 20, 69, 32, 136, 58, +- 148, 178, 4, 246, 12, 199, 94, 236, 44, 89, +- 13, 120, 122, 213, 6, 244, 194, 0, 72, 237, +- 96, 5, 9, 48, 83, 151, 4, 149, 117, 194, +- 43, 92, 22, 253, 37, 176, 10, 212, 194, 2, +- 72, 21, 128, 5, 102, 16, 141, 250, 196, 103, +- 8, 129, 56, 129, 250, 248, 6, 0, 77, 40, +- 165, 10, 195, 153, 38, 115, 48, 56, 188, 146, +- 101, 81, 66, 7, 157, 101, 9, 60, 40, 0, +- 252, 77, 176, 112, 12, 40, 224, 103, 64, 25, +- 83, 45, 150, 108, 162, 12, 29, 139, 240, 12, +- 208, 206, 86, 149, 96, 169, 163, 241, 0, 2, +- 93, 162, 215, 1, 80, 97, 32, 47, 80, 138, +- 25, 62, 115, 159, 52, 117, 72, 150, 32, 197, +- 34, 1, 204, 57, 154, 13, 255, 120, 41, 174, +- 255, 235, 172, 66, 37, 235, 146, 7, 164, 83, +- 182, 4, 80, 235, 108, 135, 35, 203, 194, 226, +- 139, 1, 251, 82, 22, 9, 103, 84, 0, 165, +- 212, 1, 181, 74, 169, 134, 140, 220, 147, 31, +- 71, 105, 224, 94, 134, 165, 104, 53, 9, 224, +- 141, 146, 97, 143, 120, 89, 140, 192, 104, 50, +- 232, 53, 203, 86, 150, 182, 218, 212, 94, 59, +- 10, 247, 63, 118, 12, 199, 3, 243, 25, 13, +- 4, 66, 160, 20, 38, 64, 119, 0, 80, 248, +- 2, 12, 152, 171, 128, 227, 140, 236, 167, 133, +- 123, 98, 10, 76, 240, 1, 13, 84, 64, 150, +- 182, 224, 4, 190, 240, 23, 220, 45, 18, 64, +- 188, 240, 106, 48, 190, 254, 104, 220, 103, 253, +- 239, 3, 38, 104, 64, 3, 60, 247, 0, 31, +- 225, 139, 114, 148, 200, 15, 117, 237, 51, 132, +- 38, 116, 129, 5, 4, 73, 237, 0, 172, 32, +- 6, 249, 38, 48, 0, 218, 203, 169, 119, 101, +- 214, 52, 70, 232, 118, 85, 137, 148, 240, 140, +- 57, 26, 128, 145, 1, 117, 150, 144, 205, 145, +- 231, 114, 196, 0, 198, 222, 148, 1, 161, 160, +- 149, 181, 98, 244, 5, 22, 216, 128, 32, 186, +- 90, 113, 64, 213, 100, 28, 230, 104, 79, 142, +- 143, 44, 93, 6, 46, 144, 72, 6, 220, 120, +- 85, 216, 211, 49, 190, 114, 84, 81, 31, 87, +- 182, 137, 184, 4, 18, 7, 92, 247, 91, 122, +- 166, 0, 255, 52, 68, 178, 171, 47, 6, 240, +- 4, 40, 15, 192, 13, 86, 80, 66, 24, 96, +- 240, 166, 230, 104, 175, 205, 196, 147, 128, 0, +- 241, 181, 211, 28, 97, 116, 149, 57, 42, 107, +- 0, 152, 87, 178, 117, 146, 183, 150, 95, 22, +- 174, 232, 72, 234, 32, 30, 176, 97, 0, 71, +- 32, 72, 27, 148, 226, 2, 43, 204, 194, 160, +- 48, 126, 244, 21, 89, 41, 56, 246, 90, 109, +- 52, 102, 126, 150, 235, 196, 172, 67, 215, 17, +- 245, 81, 33, 128, 131, 82, 84, 42, 16, 21, +- 243, 99, 202, 26, 194, 145, 145, 101, 72, 185, +- 252, 229, 8, 203, 63, 34, 0, 98, 63, 35, +- 102, 58, 158, 213, 135, 59, 125, 179, 150, 20, +- 192, 131, 16, 128, 33, 23, 36, 42, 200, 15, +- 148, 2, 60, 13, 141, 108, 215, 3, 52, 192, +- 245, 8, 240, 128, 172, 253, 250, 199, 108, 53, +- 235, 153, 129, 77, 193, 137, 62, 32, 220, 102, +- 228, 1, 18, 78, 90, 41, 55, 96, 82, 41, +- 52, 232, 100, 125, 236, 133, 109, 11, 112, 160, +- 139, 248, 30, 228, 235, 10, 108, 86, 2, 0, +- 58, 139, 239, 28, 141, 9, 26, 60, 0, 49, +- 133, 25, 5, 37, 67, 193, 1, 34, 221, 199, +- 255, 221, 224, 213, 14, 130, 130, 21, 142, 50, +- 0, 217, 16, 36, 20, 74, 193, 1, 2, 168, +- 169, 174, 172, 170, 83, 145, 85, 123, 155, 162, +- 251, 205, 129, 107, 174, 179, 162, 17, 255, 6, +- 185, 199, 89, 85, 104, 225, 113, 96, 112, 171, +- 50, 128, 5, 50, 16, 89, 101, 251, 9, 2, +- 77, 120, 129, 110, 80, 92, 144, 60, 40, 133, +- 20, 160, 118, 137, 151, 74, 150, 163, 126, 132, +- 97, 166, 19, 120, 68, 34, 208, 61, 156, 166, +- 205, 224, 229, 6, 104, 29, 111, 71, 67, 130, +- 8, 164, 128, 4, 13, 208, 192, 134, 1, 252, +- 172, 200, 222, 192, 31, 212, 80, 57, 183, 179, +- 86, 42, 16, 132, 160, 9, 72, 43, 130, 16, +- 12, 194, 5, 72, 68, 179, 79, 17, 120, 236, +- 170, 182, 202, 85, 6, 5, 221, 37, 4, 214, +- 192, 7, 200, 38, 236, 100, 61, 64, 238, 249, +- 226, 170, 134, 179, 16, 129, 32, 124, 128, 4, +- 31, 168, 0, 196, 53, 4, 131, 16, 108, 2, +- 28, 74, 249, 167, 65, 152, 145, 241, 252, 28, +- 105, 18, 128, 103, 165, 9, 10, 160, 30, 126, +- 225, 253, 6, 17, 32, 48, 122, 251, 52, 50, +- 152, 62, 43, 71, 139, 247, 188, 75, 134, 224, +- 108, 38, 36, 229, 201, 9, 241, 212, 185, 2, +- 80, 35, 46, 41, 0, 6, 152, 175, 108, 11, +- 64, 208, 103, 213, 251, 62, 0, 214, 36, 122, +- 22, 126, 207, 28, 71, 196, 130, 88, 44, 88, +- 123, 66, 92, 80, 169, 1, 220, 97, 14, 252, +- 201, 1, 126, 254, 94, 89, 105, 216, 138, 248, +- 252, 178, 151, 140, 79, 111, 115, 236, 175, 96, +- 46, 74, 177, 129, 255, 242, 21, 242, 131, 241, +- 196, 96, 7, 39, 40, 0, 12, 246, 171, 77, +- 32, 163, 85, 116, 67, 194, 126, 125, 152, 136, +- 237, 140, 14, 219, 247, 39, 160, 1, 5, 254, +- 35, 167, 54, 60, 228, 12, 252, 199, 20, 158, +- 176, 28, 17, 102, 122, 49, 71, 0, 76, 247, +- 39, 215, 39, 127, 163, 17, 1, 92, 119, 83, +- 4, 0, 127, 190, 167, 127, 75, 193, 2, 76, +- 32, 121, 12, 225, 5, 59, 3, 126, 74, 161, +- 2, 61, 96, 44, 21, 144, 74, 171, 50, 0, +- 112, 21, 89, 35, 7, 31, 16, 192, 37, 148, +- 38, 127, 204, 179, 0, 23, 176, 0, 211, 115, +- 58, 216, 147, 128, 125, 178, 2, 40, 180, 20, +- 50, 64, 107, 16, 161, 6, 10, 240, 6, 128, +- 32, 5, 112, 161, 2, 15, 48, 3, 139, 51, +- 3, 220, 22, 1, 133, 23, 35, 157, 231, 28, +- 113, 22, 34, 170, 215, 46, 136, 87, 1, 143, +- 192, 57, 17, 32, 129, 201, 98, 131, 75, 1, +- 4, 133, 208, 9, 22, 65, 5, 72, 128, 5, +- 90, 240, 2, 196, 162, 20, 198, 160, 12, 4, +- 16, 58, 52, 232, 1, 189, 231, 18, 107, 162, +- 33, 141, 130, 125, 10, 240, 30, 158, 151, 127, +- 55, 8, 4, 166, 96, 14, 35, 225, 2, 151, +- 64, 10, 111, 49, 24, 85, 96, 6, 24, 176, +- 2, 180, 82, 101, 74, 230, 134, 200, 244, 123, +- 8, 32, 2, 11, 56, 45, 62, 0, 126, 64, +- 255, 0, 8, 96, 160, 5, 56, 145, 6, 127, +- 80, 8, 19, 3, 23, 49, 240, 9, 139, 160, +- 21, 198, 114, 70, 139, 8, 26, 75, 104, 87, +- 28, 215, 30, 107, 56, 47, 13, 178, 2, 252, +- 183, 7, 132, 48, 46, 182, 225, 2, 20, 215, +- 24, 187, 225, 7, 130, 216, 28, 188, 167, 37, +- 111, 168, 33, 32, 144, 4, 159, 168, 37, 32, +- 192, 3, 67, 112, 2, 56, 192, 127, 205, 0, +- 5, 81, 2, 0, 104, 81, 4, 93, 32, 5, +- 50, 176, 7, 240, 0, 139, 31, 40, 29, 57, +- 176, 139, 180, 215, 134, 14, 50, 4, 4, 56, +- 45, 10, 192, 122, 174, 0, 9, 252, 151, 14, +- 194, 80, 140, 5, 177, 5, 84, 208, 7, 80, +- 32, 7, 1, 240, 6, 103, 144, 13, 56, 192, +- 129, 3, 48, 2, 68, 48, 7, 124, 166, 37, +- 16, 240, 98, 249, 145, 3, 81, 112, 125, 43, +- 48, 6, 39, 128, 30, 39, 96, 6, 128, 40, +- 63, 5, 144, 3, 163, 0, 7, 151, 166, 20, +- 82, 64, 8, 146, 8, 142, 9, 129, 5, 33, +- 128, 4, 232, 64, 90, 68, 192, 129, 64, 32, +- 9, 26, 114, 123, 28, 39, 2, 33, 144, 4, +- 46, 65, 4, 85, 16, 140, 76, 225, 22, 176, +- 40, 3, 64, 240, 22, 130, 112, 9, 124, 165, +- 144, 9, 193, 138, 225, 160, 51, 139, 80, 144, +- 187, 178, 4, 242, 227, 3, 8, 80, 45, 204, +- 33, 63, 16, 208, 108, 103, 190, 48, 14, 20, +- 160, 2, 32, 9, 139, 62, 249, 4, 24, 136, +- 146, 14, 97, 8, 129, 0, 1, 67, 192, 3, +- 5, 128, 59, 65, 200, 20, 75, 176, 4, 52, +- 192, 142, 112, 1, 4, 205, 23, 132, 43, 80, +- 9, 158, 16, 2, 124, 114, 142, 103, 240, 7, +- 221, 160, 3, 58, 192, 4, 47, 32, 148, 21, +- 225, 4, 72, 128, 4, 152, 224, 18, 62, 32, +- 9, 1, 232, 147, 62, 217, 1, 70, 49, 13, +- 186, 80, 14, 137, 160, 0, 73, 112, 118, 95, +- 160, 4, 152, 144, 3, 13, 137, 5, 98, 201, +- 17, 70, 0, 10, 55, 25, 2, 8, 224, 3, +- 231, 32, 5, 82, 208, 5, 50, 208, 1, 196, +- 2, 4, 130, 96, 3, 71, 224, 6, 183, 80, +- 7, 47, 96, 113, 7, 1, 6, 84, 0, 134, +- 2, 225, 4, 125, 144, 6, 9, 217, 151, 27, +- 225, 4, 77, 208, 4, 119, 249, 10, 13, 169, +- 7, 4, 129, 5, 84, 208, 62, 158, 185, 154, +- 8, 177, 5, 80, 208, 153, 172, 25, 155, 178, +- 57, 155, 180, 41, 148, 1, 1, 0, 59, 0 }; +--- php-5.2.4/main/php_logos.c.easter ++++ php-5.2.4/main/php_logos.c +@@ -56,7 +56,6 @@ int php_init_info_logos(void) + return FAILURE; + + php_register_info_logo(PHP_LOGO_GUID , "image/gif", php_logo , sizeof(php_logo)); +- php_register_info_logo(PHP_EGG_LOGO_GUID, "image/gif", php_egg_logo, sizeof(php_egg_logo)); + php_register_info_logo(ZEND_LOGO_GUID , "image/gif", zend_logo , sizeof(zend_logo)); + + return SUCCESS; +--- php-5.2.4/ext/standard/info.c.easter ++++ php-5.2.4/ext/standard/info.c +@@ -1058,21 +1058,7 @@ PHP_FUNCTION(phpcredits) + */ + PHPAPI char *php_logo_guid(void) + { +- char *logo_guid; +- +- time_t the_time; +- struct tm *ta, tmbuf; +- +- the_time = time(NULL); +- ta = php_localtime_r(&the_time, &tmbuf); +- +- if (ta && (ta->tm_mon==3) && (ta->tm_mday==1)) { +- logo_guid = PHP_EGG_LOGO_GUID; +- } else { +- logo_guid = PHP_LOGO_GUID; +- } +- +- return estrdup(logo_guid); ++ return estrdup(PHP_LOGO_GUID); + + } + /* }}} */ +@@ -1103,18 +1089,6 @@ PHP_FUNCTION(php_real_logo_guid) + } + /* }}} */ + +-/* {{{ proto string php_egg_logo_guid(void) +- Return the special ID used to request the PHP logo in phpinfo screens*/ +-PHP_FUNCTION(php_egg_logo_guid) +-{ +- if (ZEND_NUM_ARGS() != 0) { +- WRONG_PARAM_COUNT; +- } +- +- RETURN_STRINGL(PHP_EGG_LOGO_GUID, sizeof(PHP_EGG_LOGO_GUID)-1, 1); +-} +-/* }}} */ +- + /* {{{ proto string zend_logo_guid(void) + Return the special ID used to request the Zend logo in phpinfo screens*/ + PHP_FUNCTION(zend_logo_guid) +--- php-5.2.4/ext/standard/info.h.easter ++++ php-5.2.4/ext/standard/info.h +@@ -51,7 +51,6 @@ + #endif /* HAVE_CREDITS_DEFS */ + + #define PHP_LOGO_GUID "PHPE9568F34-D428-11d2-A769-00AA001ACF42" +-#define PHP_EGG_LOGO_GUID "PHPE9568F36-D428-11d2-A769-00AA001ACF42" + #define ZEND_LOGO_GUID "PHPE9568F35-D428-11d2-A769-00AA001ACF42" + #define PHP_CREDITS_GUID "PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000" + +@@ -62,7 +61,6 @@ PHP_FUNCTION(phpcredits); + PHP_FUNCTION(php_logo_guid); + PHP_FUNCTION(php_real_logo_guid); + PHP_FUNCTION(zend_logo_guid); +-PHP_FUNCTION(php_egg_logo_guid); + PHP_FUNCTION(php_sapi_name); + PHP_FUNCTION(php_uname); + PHP_FUNCTION(php_ini_scanned_files); +--- php-5.2.4/ext/standard/basic_functions.c.easter ++++ php-5.2.4/ext/standard/basic_functions.c +@@ -1753,10 +1753,6 @@ ZEND_BEGIN_ARG_INFO(arginfo_php_real_log + ZEND_END_ARG_INFO() + + static +-ZEND_BEGIN_ARG_INFO(arginfo_php_egg_logo_guid, 0) +-ZEND_END_ARG_INFO() +- +-static + ZEND_BEGIN_ARG_INFO(arginfo_zend_logo_guid, 0) + ZEND_END_ARG_INFO() + +@@ -3135,7 +3131,6 @@ zend_function_entry basic_functions[] = + PHP_FE(phpcredits, arginfo_phpcredits) + PHP_FE(php_logo_guid, arginfo_php_logo_guid) + PHP_FE(php_real_logo_guid, arginfo_php_real_logo_guid) +- PHP_FE(php_egg_logo_guid, arginfo_php_egg_logo_guid) + PHP_FE(zend_logo_guid, arginfo_zend_logo_guid) + PHP_FE(php_sapi_name, arginfo_php_sapi_name) + PHP_FE(php_uname, arginfo_php_uname) diff --git a/php-5.2.4-embed.patch b/php-5.2.4-embed.patch new file mode 100644 index 0000000..44276de --- /dev/null +++ b/php-5.2.4-embed.patch @@ -0,0 +1,12 @@ +--- php-5.2.4/sapi/embed/config.m4.embed ++++ php-5.2.4/sapi/embed/config.m4 +@@ -12,7 +12,8 @@ if test "$PHP_EMBED" != "no"; then + case "$PHP_EMBED" in + yes|shared) + PHP_EMBED_TYPE=shared +- INSTALL_IT="\$(mkinstalldirs) \$(INSTALL_ROOT)\$(prefix)/lib; \$(INSTALL) -m 0755 $SAPI_SHARED \$(INSTALL_ROOT)\$(prefix)/lib" ++ EXTRA_LDFLAGS="$EXTRA_LDFLAGS -release \$(PHP_VERSION)" ++ INSTALL_IT="\$(mkinstalldirs) \$(INSTALL_ROOT)\$(libdir); \$(LIBTOOL) --mode=install \$(INSTALL) -m 0755 \$(OVERALL_TARGET) \$(INSTALL_ROOT)\$(libdir)" + ;; + static) + PHP_EMBED_TYPE=static diff --git a/php-5.2.4-norpath.patch b/php-5.2.4-norpath.patch new file mode 100644 index 0000000..4603ccf --- /dev/null +++ b/php-5.2.4-norpath.patch @@ -0,0 +1,18 @@ +--- php-5.2.4/acinclude.m4.norpath ++++ php-5.2.4/acinclude.m4 +@@ -432,6 +432,7 @@ AC_DEFUN([PHP_EVAL_INCLINE],[ + dnl internal, don't use + AC_DEFUN([_PHP_ADD_LIBPATH_GLOBAL],[ + PHP_RUN_ONCE(LIBPATH, $1, [ ++ test "x$PHP_RPATH" != "xno" && + test -n "$ld_runpath_switch" && LDFLAGS="$LDFLAGS $ld_runpath_switch$1" + LDFLAGS="$LDFLAGS -L$1" + PHP_RPATHS="$PHP_RPATHS $1" +@@ -451,6 +452,7 @@ AC_DEFUN([PHP_ADD_LIBPATH],[ + ],[ + if test "$ext_shared" = "yes"; then + $2="-L$ai_p [$]$2" ++ test "x$PHP_RPATH" != "xno" && \ + test -n "$ld_runpath_switch" && $2="$ld_runpath_switch$ai_p [$]$2" + else + _PHP_ADD_LIBPATH_GLOBAL([$ai_p]) diff --git a/php-5.2.5-systzdata.patch b/php-5.2.5-systzdata.patch new file mode 100644 index 0000000..abeac33 --- /dev/null +++ b/php-5.2.5-systzdata.patch @@ -0,0 +1,263 @@ + +Add support for use of the system timezone database, rather +than embedding a copy. Discussed upstream but was not desired. + +History: +r3: fix a crash if /usr/share/zoneinfo doesn't exist (Raphael Geissert) +r2: add filesystem trawl to set up name alias index +r1: initial revision + +--- php-5.2.5/ext/date/lib/timelib.m4.systzdata ++++ php-5.2.5/ext/date/lib/timelib.m4 +@@ -78,3 +78,17 @@ stdlib.h + + dnl Check for strtoll, atoll + AC_CHECK_FUNCS(strtoll atoll strftime) ++ ++PHP_ARG_WITH(system-tzdata, for use of system timezone data, ++[ --with-system-tzdata[=DIR] to specify use of system timezone data], ++no, no) ++ ++if test "$PHP_SYSTEM_TZDATA" != "no"; then ++ AC_DEFINE(HAVE_SYSTEM_TZDATA, 1, [Define if system timezone data is used]) ++ ++ if test "$PHP_SYSTEM_TZDATA" != "yes"; then ++ AC_DEFINE_UNQUOTED(HAVE_SYSTEM_TZDATA_PREFIX, "$PHP_SYSTEM_TZDATA", ++ [Define for location of system timezone data]) ++ fi ++fi ++ +--- php-5.2.5/ext/date/lib/parse_tz.c.systzdata ++++ php-5.2.5/ext/date/lib/parse_tz.c +@@ -20,6 +20,16 @@ + + #include "timelib.h" + ++#ifdef HAVE_SYSTEM_TZDATA ++#include ++#include ++#include ++#include ++#include ++ ++#include "php_scandir.h" ++#endif ++ + #include + + #ifdef HAVE_LOCALE_H +@@ -31,7 +41,10 @@ + #else + #include + #endif ++ ++#ifndef HAVE_SYSTEM_TZDATA + #include "timezonedb.h" ++#endif + + #if (defined(__APPLE__) || defined(__APPLE_CC__)) && (defined(__BIG_ENDIAN__) || defined(__LITTLE_ENDIAN__)) + # if defined(__LITTLE_ENDIAN__) +@@ -206,6 +219,195 @@ void timelib_dump_tzinfo(timelib_tzinfo + } + } + ++#ifdef HAVE_SYSTEM_TZDATA ++ ++#ifdef HAVE_SYSTEM_TZDATA_PREFIX ++#define ZONEINFO_PREFIX HAVE_SYSTEM_TZDATA_PREFIX ++#else ++#define ZONEINFO_PREFIX "/usr/share/zoneinfo" ++#endif ++ ++static const timelib_tzdb *timezonedb_system = NULL; ++ ++/* Filter out some non-tzdata files and the posix/right databases, if ++ * present. */ ++static int index_filter(const struct dirent *ent) ++{ ++ return strcmp(ent->d_name, ".") != 0 ++ && strcmp(ent->d_name, "..") != 0 ++ && strcmp(ent->d_name, "posix") != 0 ++ && strcmp(ent->d_name, "posixrules") != 0 ++ && strcmp(ent->d_name, "right") != 0 ++ && strstr(ent->d_name, ".tab") == NULL; ++} ++ ++/* Create the zone identifier index by trawling the filesystem. */ ++static void create_zone_index(timelib_tzdb *db) ++{ ++ size_t dirstack_size, dirstack_top; ++ size_t index_size, index_next; ++ timelib_tzdb_index_entry *db_index; ++ char **dirstack; ++ ++ /* LIFO stack to hold directory entries to scan; each slot is a ++ * directory name relative to the zoneinfo prefix. */ ++ dirstack_size = 32; ++ dirstack = malloc(dirstack_size * sizeof *dirstack); ++ dirstack_top = 1; ++ dirstack[0] = strdup(""); ++ ++ /* Index array. */ ++ index_size = 64; ++ db_index = malloc(index_size * sizeof *db_index); ++ index_next = 0; ++ ++ do { ++ struct dirent **ents; ++ char name[PATH_MAX], *top; ++ int count; ++ ++ /* Pop the top stack entry, and iterate through its contents. */ ++ top = dirstack[--dirstack_top]; ++ snprintf(name, sizeof name, ZONEINFO_PREFIX "/%s", top); ++ ++ count = php_scandir(name, &ents, index_filter, php_alphasort); ++ ++ while (count > 0) { ++ struct stat st; ++ const char *leaf = ents[count - 1]->d_name; ++ ++ snprintf(name, sizeof name, ZONEINFO_PREFIX "/%s/%s", ++ top, leaf); ++ ++ if (strlen(name) && stat(name, &st) == 0) { ++ /* Name, relative to the zoneinfo prefix. */ ++ const char *root = top; ++ ++ if (root[0] == '/') root++; ++ ++ snprintf(name, sizeof name, "%s%s%s", root, ++ *root ? "/": "", leaf); ++ ++ if (S_ISDIR(st.st_mode)) { ++ if (dirstack_top == dirstack_size) { ++ dirstack_size *= 2; ++ dirstack = realloc(dirstack, ++ dirstack_size * sizeof *dirstack); ++ } ++ dirstack[dirstack_top++] = strdup(name); ++ } ++ else { ++ if (index_next == index_size) { ++ index_size *= 2; ++ db_index = realloc(db_index, ++ index_size * sizeof *db_index); ++ } ++ ++ db_index[index_next].id = strdup(name); ++ db_index[index_next++].pos = 0; ++ } ++ } ++ ++ free(ents[--count]); ++ } ++ ++ if (count != -1) free(ents); ++ free(top); ++ } while (dirstack_top); ++ ++ db->index = db_index; ++ db->index_size = index_next; ++ ++ free(dirstack); ++} ++ ++/* Return the mmap()ed tzfile if found, else NULL. On success, the ++ * length of the mapped data is placed in *length. */ ++static char *map_tzfile(const char *timezone, size_t *length) ++{ ++ char fname[PATH_MAX]; ++ struct stat st; ++ char *p; ++ int fd; ++ ++ if (strstr(timezone, "..") != NULL) { ++ return NULL; ++ } ++ ++ snprintf(fname, sizeof fname, ZONEINFO_PREFIX "/%s", timezone); ++ ++ fd = open(fname, O_RDONLY); ++ if (fd == -1) { ++ return NULL; ++ } else if (fstat(fd, &st) != 0 || st.st_size < 21) { ++ close(fd); ++ return NULL; ++ } ++ ++ *length = st.st_size; ++ p = mmap(NULL, st.st_size, PROT_READ, MAP_SHARED, fd, 0); ++ close(fd); ++ ++ return p != MAP_FAILED ? p : NULL; ++} ++ ++const timelib_tzdb *timelib_builtin_db(void) ++{ ++ if (timezonedb_system == NULL) { ++ timelib_tzdb *tmp = malloc(sizeof *tmp); ++ ++ tmp->version = "0.system"; ++ tmp->data = NULL; ++ create_zone_index(tmp); ++ timezonedb_system = tmp; ++ } ++ ++ return timezonedb_system; ++} ++ ++const timelib_tzdb_index_entry *timelib_timezone_builtin_identifiers_list(int *count) ++{ ++ *count = timezonedb_system->index_size; ++ return timezonedb_system->index; ++} ++ ++int timelib_timezone_id_is_valid(char *timezone, const timelib_tzdb *tzdb) ++{ ++ char fname[PATH_MAX]; ++ ++ if (strstr(timezone, "..") != NULL) { ++ return 0; ++ } ++ ++ snprintf(fname, sizeof fname, ZONEINFO_PREFIX "/%s", timezone); ++ ++ return access(fname, R_OK) == 0 ? 1 : 0; ++} ++ ++timelib_tzinfo *timelib_parse_tzfile(char *timezone, const timelib_tzdb *tzdb) ++{ ++ char *tzf, *orig; ++ timelib_tzinfo *tmp; ++ size_t len; ++ ++ orig = map_tzfile(timezone, &len); ++ if (orig == NULL) { ++ return NULL; ++ } ++ ++ tmp = timelib_tzinfo_ctor(timezone); ++ ++ tzf = orig + 20; ++ read_header(&tzf, tmp); ++ read_transistions(&tzf, tmp); ++ read_types(&tzf, tmp); ++ ++ munmap(orig, len); ++ ++ return tmp; ++} ++#else /* !HAVE_SYSTEM_TZDATA */ ++ + static int seek_to_tz_position(const unsigned char **tzf, char *timezone, const timelib_tzdb *tzdb) + { + int left = 0, right = tzdb->index_size - 1; +@@ -279,6 +481,7 @@ timelib_tzinfo *timelib_parse_tzfile(cha + + return tmp; + } ++#endif + + static ttinfo* fetch_timezone_offset(timelib_tzinfo *tz, timelib_sll ts, timelib_sll *transition_time) + { diff --git a/php-5.2.7-tests-dashn.patch b/php-5.2.7-tests-dashn.patch new file mode 100644 index 0000000..8d70d03 --- /dev/null +++ b/php-5.2.7-tests-dashn.patch @@ -0,0 +1,11 @@ +--- php-5.2.7/Makefile.global.orig 2008-12-05 07:37:27.000000000 +0100 ++++ php-5.2.7/Makefile.global 2008-12-05 07:37:55.000000000 +0100 +@@ -67,7 +67,7 @@ + done; \ + fi + +-PHP_TEST_SETTINGS = -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' ++PHP_TEST_SETTINGS = -n -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' + PHP_TEST_SHARED_EXTENSIONS = ` \ + if test "x$(PHP_MODULES)" != "x"; then \ + for i in $(PHP_MODULES)""; do \ diff --git a/php-5.2.8-install.patch b/php-5.2.8-install.patch new file mode 100644 index 0000000..ad615c4 --- /dev/null +++ b/php-5.2.8-install.patch @@ -0,0 +1,11 @@ +--- php-5.2.8/sapi/apache2handler/config.m4.install ++++ php-5.2.8/sapi/apache2handler/config.m4 +@@ -68,7 +68,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 php5" diff --git a/php-5.2.8-phpize64.patch b/php-5.2.8-phpize64.patch new file mode 100644 index 0000000..7a14eb5 --- /dev/null +++ b/php-5.2.8-phpize64.patch @@ -0,0 +1,22 @@ +--- php-5.2.8/scripts/Makefile.frag.phpize64 ++++ php-5.2.8/scripts/Makefile.frag +@@ -4,7 +4,7 @@ + # + + phpincludedir = $(includedir)/php +-phpbuilddir = $(libdir)/build ++phpbuilddir = $(libdir)/php/build + + BUILD_FILES = \ + scripts/phpize.m4 \ +--- php-5.2.8/scripts/phpize.in.phpize64 ++++ php-5.2.8/scripts/phpize.in +@@ -3,7 +3,7 @@ + # Variable declaration + prefix='@prefix@' + exec_prefix="`eval echo @exec_prefix@`" +-phpdir="`eval echo @libdir@`/build" ++phpdir="@libdir@/php/build" + includedir="`eval echo @includedir@`/php" + builddir="`pwd`" + SED="@SED@" diff --git a/php-5.2.8-recode.patch b/php-5.2.8-recode.patch new file mode 100644 index 0000000..024c54b --- /dev/null +++ b/php-5.2.8-recode.patch @@ -0,0 +1,19 @@ + +Allow recode to be built with imap and mysql. The conflict is due +to symbol conflicts between the recode libraries and anything else, +but these should not matter (right? right! everything is fine, really) +if the extensions are loaded as DSOs *and* the libraries are loaded +using the magic RTLD_DEEPBIND. + +--- php-5.2.8/ext/recode/config9.m4.recode ++++ php-5.2.8/ext/recode/config9.m4 +@@ -4,9 +4,6 @@ dnl + + dnl Check for extensions with which Recode can not work + if test "$PHP_RECODE" != "no"; then +- test "$PHP_IMAP" != "no" && recode_conflict="$recode_conflict imap" +- test "$PHP_MYSQL" != "no" && recode_conflict="$recode_conflict mysql" +- + if test -n "$recode_conflict"; then + AC_MSG_ERROR([recode extension can not be configured together with:$recode_conflict]) + fi diff --git a/php-remi.ini b/php-remi.ini new file mode 100644 index 0000000..86031a0 --- /dev/null +++ b/php-remi.ini @@ -0,0 +1,1280 @@ +[PHP] + +;;;;;;;;;;;;;;;;;;; +; About php.ini ; +;;;;;;;;;;;;;;;;;;; +; This file controls many aspects of PHP's behavior. In order for PHP to +; read it, it must be named 'php.ini'. PHP looks for it in the current +; working directory, in the path designated by the environment variable +; PHPRC, and in the path that was defined in compile time (in that order). +; Under Windows, the compile-time path is the Windows directory. The +; path in which the php.ini file is looked for can be overridden using +; the -c argument in command line mode. +; +; 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 are specified using the following syntax: +; directive = value +; Directive names are *case sensitive* - foo=bar is different from FOO=bar. +; +; 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), or a quoted string ("foo"). +; +; Expressions in the INI file are limited to bitwise operators and parentheses: +; | bitwise OR +; & 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 ; +;;;;;;;;;;;;;;;;;;; +; This is the recommended, PHP 5-style version of the php.ini-dist file. It +; sets some non standard settings, that make PHP more efficient, more secure, +; and encourage cleaner coding. +; +; The price is that with these settings, PHP may be incompatible with some +; applications, and sometimes, more difficult to develop with. Using this +; file is warmly recommended for production sites. As all of the changes from +; the standard settings are thoroughly documented, you can go over each one, +; and decide whether you want to use it or not. +; +; For general information about the php.ini file, please consult the php.ini-dist +; file, included in your PHP distribution. +; +; This file is different from the php.ini-dist file in the fact that it features +; different values for several directives, in order to improve performance, while +; possibly breaking compatibility with the standard out-of-the-box behavior of +; PHP. Please make sure you read what's different, and modify your scripts +; accordingly, if you decide to use this file instead. +; +; - register_long_arrays = Off [Performance] +; Disables registration of the older (and deprecated) long predefined array +; variables ($HTTP_*_VARS). Instead, use the superglobals that were +; introduced in PHP 4.1.0 +; - display_errors = Off [Security] +; With this directive set to off, errors that occur during the execution of +; scripts will no longer be displayed as a part of the script output, and thus, +; will no longer be exposed to remote users. With some errors, the error message +; content may expose information about your script, web server, or database +; server that may be exploitable for hacking. Production sites should have this +; directive set to off. +; - log_errors = On [Security] +; This directive complements the above one. Any errors that occur during the +; execution of your script will be logged (typically, to your server's error log, +; but can be configured in several ways). Along with setting display_errors to off, +; this setup gives you the ability to fully understand what may have gone wrong, +; without exposing any sensitive information to remote users. +; - output_buffering = 4096 [Performance] +; Set a 4KB output buffer. Enabling output buffering typically results in less +; writes, and sometimes less packets sent on the wire, which can often lead to +; better performance. The gain this directive actually yields greatly depends +; on which Web server you're working with, and what kind of scripts you're using. +; - register_argc_argv = Off [Performance] +; Disables registration of the somewhat redundant $argv and $argc global +; variables. +; - magic_quotes_gpc = Off [Performance] +; Input data is no longer escaped with slashes so that it can be sent into +; SQL databases without further manipulation. Instead, you should use the +; function addslashes() on each input element you wish to send to a database. +; - variables_order = "GPCS" [Performance] +; The environment variables are not hashed into the $_ENV. To access +; environment variables, you can use getenv() instead. +; - error_reporting = E_ALL [Code Cleanliness, Security(?)] +; By default, PHP suppresses errors of type E_NOTICE. These error messages +; are emitted for non-critical errors, but that could be a symptom of a bigger +; problem. Most notably, this will cause error messages about the use +; of uninitialized variables to be displayed. +; - allow_call_time_pass_reference = Off [Code cleanliness] +; It's not possible to decide to force a variable to be passed by reference +; when calling a function. The PHP 4 style to do this is by making the +; function require the relevant argument by reference. + +;;;;;;;;;;;;;;;;;;;; +; Language Options ; +;;;;;;;;;;;;;;;;;;;; + +; Enable the PHP scripting language engine under Apache. +engine = On + +; Enable compatibility mode with Zend Engine 1 (PHP 4.x) +zend.ze1_compatibility_mode = Off + +; Allow the tags are recognized. +; NOTE: Using short tags should be avoided when developing applications or +; libraries that are meant for redistribution, or deployment on PHP +; servers which are not under your control, because short tags may not +; be supported on the target server. For portable, redistributable code, +; be sure not to use short tags. +short_open_tag = On + +; Allow ASP-style <% %> tags. +asp_tags = Off + +; The number of significant digits displayed in floating point numbers. +precision = 14 + +; Enforce year 2000 compliance (will cause problems with non-compliant browsers) +y2k_compliance = On + +; Output buffering allows you to send header lines (including cookies) even +; after you send body content, at the price of slowing PHP's output layer a +; bit. You can enable output buffering during runtime by calling the output +; buffering functions. You can also enable output buffering for all files by +; setting this directive to On. If you wish to limit the size of the buffer +; to a certain size - you can use a maximum number of bytes instead of 'On', as +; a value for this directive (e.g., output_buffering=4096). +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. +;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. +zlib.output_compression = Off +;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. +;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. +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 = 100 + +; Whether to enable the ability to force arguments to be passed by reference +; at function call time. This method is deprecated and is likely to be +; unsupported in future versions of PHP/Zend. The encouraged method of +; specifying which arguments should be passed by reference is in the function +; declaration. You're encouraged to try and turn this option Off and make +; sure your scripts work properly with it in order to ensure they will work +; with future versions of the language (you will receive a warning each time +; you use this feature, and the argument will be passed by value instead of by +; reference). +allow_call_time_pass_reference = Off + +; +; Safe Mode +; +safe_mode = Off + +; By default, Safe Mode does a UID compare check when +; opening files. If you want to relax this to a GID compare, +; then turn on safe_mode_gid. +safe_mode_gid = Off + +; When safe_mode is on, UID/GID checks are bypassed when +; including files from this directory and its subdirectories. +; (directory must also be in include_path or full path must +; be used when including) +safe_mode_include_dir = + +; When safe_mode is on, only executables located in the safe_mode_exec_dir +; will be allowed to be executed via the exec family of functions. +safe_mode_exec_dir = + +; Setting certain environment variables may be a potential security breach. +; This directive contains a comma-delimited list of prefixes. In Safe Mode, +; the user may only alter environment variables whose names begin with the +; prefixes supplied here. By default, users will only be able to set +; environment variables that begin with PHP_ (e.g. PHP_FOO=BAR). +; +; Note: If this directive is empty, PHP will let the user modify ANY +; environment variable! +safe_mode_allowed_env_vars = PHP_ + +; This directive contains a comma-delimited list of environment variables that +; the end user won't be able to change using putenv(). These variables will be +; protected even if safe_mode_allowed_env_vars is set to allow to change them. +safe_mode_protected_env_vars = LD_LIBRARY_PATH + +; 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. +;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. +disable_functions = + +; 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. +disable_classes = + +; Colors for Syntax Highlighting mode. Anything that's acceptable in +; would work. +;highlight.string = #DD0000 +;highlight.comment = #FF9900 +;highlight.keyword = #007700 +;highlight.bg = #FFFFFF +;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 request, which may end up +; being interrupted by the user or a browser timing out. +; 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. +; 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. +; realpath_cache_ttl=120 + +; +; Misc +; +; 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. +expose_php = On + + +;;;;;;;;;;;;;;;;;;; +; Resource Limits ; +;;;;;;;;;;;;;;;;;;; + +max_execution_time = 30 ; Maximum execution time of each script, in seconds +max_input_time = 60 ; Maximum amount of time each script may spend parsing request data +;max_input_nesting_level = 64 ; Maximum input variable nesting level +memory_limit = 128M ; Maximum amount of memory a script may consume (128MB) + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Error handling and logging ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +; error_reporting is a bit-field. Or each number up to get desired error +; reporting level +; E_ALL - All errors and warnings (doesn't include E_STRICT) +; 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 +; +; Examples: +; +; - Show all errors, except for notices and coding standards warnings +; +;error_reporting = E_ALL & ~E_NOTICE +; +; - Show all errors, except for notices +; +;error_reporting = E_ALL & ~E_NOTICE | E_STRICT +; +; - Show only errors +; +;error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR +; +; - Show all errors, except coding standards warnings +; +error_reporting = E_ALL + +; Print out errors (as a part of the output). For production web sites, +; you're strongly encouraged to turn this feature off, and use error logging +; instead (see below). Keeping display_errors enabled on a production web site +; may reveal security information to end users, such as file paths on your Web +; server, your database schema or other information. +; +; possible values for display_errors: +; +; Off - Do not display any errors +; stderr - Display errors to STDERR (affects only CGI/CLI binaries!) +; On or stdout - Display errors to STDOUT (default) +; +; To output errors to STDERR with CGI/CLI: +;display_errors = "stderr" +; +; Default +; +display_errors = Off + +; Even when display_errors is on, errors that occur during PHP's startup +; sequence are not displayed. It's strongly recommended to keep +; display_startup_errors off, except for when debugging. +display_startup_errors = Off + +; Log errors into a log file (server-specific log, stderr, or error_log (below)) +; As stated above, you're strongly advised to use error logging in place of +; error displaying on production web sites. +log_errors = On + +; 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. +log_errors_max_len = 1024 + +; Do not log repeated messages. Repeated errors must occur in same file on same +; line until ignore_repeated_source is set true. +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. +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 +report_memleaks = On + +;report_zend_debug = 0 + +; Store the last error/warning message in $php_errormsg (boolean). +track_errors = Off + +; Disable the inclusion of HTML tags in error messages. +; Note: Never use this feature for production boxes. +;html_errors = Off + +; If html_errors is set On 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://www.php.net/docs.php +; 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. +; Note: Never use this feature for production boxes. +;docref_root = "/phpmanual/" +;docref_ext = .html + +; String to output before an error message. +;error_prepend_string = "" + +; String to output after an error message. +;error_append_string = "" + +; Log errors to specified file. +;error_log = filename + +; Log errors to syslog (Event Log on NT, not valid in Windows 95). +;error_log = syslog + + +;;;;;;;;;;;;;;;;; +; Data Handling ; +;;;;;;;;;;;;;;;;; +; +; Note - track_vars is ALWAYS enabled as of PHP 4.0.3 + +; The separator used in PHP generated URLs to separate arguments. +; Default is "&". +;arg_separator.output = "&" + +; List of separator(s) used by PHP to parse input URLs into variables. +; Default is "&". +; NOTE: Every character in this directive is considered as separator! +;arg_separator.input = ";&" + +; This directive describes the order in which PHP registers GET, POST, Cookie, +; Environment and Built-in variables (G, P, C, E & S respectively, often +; referred to as EGPCS or GPC). Registration is done from left to right, newer +; values override older values. +variables_order = "EGPCS" + +; Whether or not to register the EGPCS variables as global variables. You may +; want to turn this off if you don't want to clutter your scripts' global scope +; with user data. This makes most sense when coupled with track_vars - in which +; case you can access all of the GPC variables through the $HTTP_*_VARS[], +; variables. +; +; You should do your best to write your scripts so that they do not require +; register_globals to be on; Using form variables as globals can easily lead +; to possible security problems, if the code is not very well thought of. +register_globals = Off + +; Whether or not to register the old-style input arrays, HTTP_GET_VARS +; and friends. If you're not using them, it's recommended to turn them off, +; for performance reasons. +register_long_arrays = Off + +; This directive tells PHP whether to declare the argv&argc variables (that +; would contain the GET information). If you don't use these variables, you +; should turn it off for increased performance. +register_argc_argv = Off + +; When enabled, the SERVER and ENV 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 directives register_globals, register_long_arrays, +; and register_argc_argv must be disabled for this directive to have any affect. +auto_globals_jit = On + +; Maximum size of POST data that PHP will accept. +post_max_size = 8M + +; Magic quotes +; + +; Magic quotes for incoming GET/POST/Cookie data. +magic_quotes_gpc = Off + +; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc. +magic_quotes_runtime = Off + +; Use Sybase-style magic quotes (escape ' with '' instead of \'). +magic_quotes_sybase = Off + +; Automatically add files before or after any PHP document. +auto_prepend_file = +auto_append_file = + +; As of 4.0b4, PHP always outputs a character encoding by default in +; the Content-type: header. To disable sending of the charset, simply +; set it to be empty. +; +; PHP's built-in default is text/html +default_mimetype = "text/html" +;default_charset = "iso-8859-1" + +; Always populate the $HTTP_RAW_POST_DATA variable. +;always_populate_raw_post_data = On + + +;;;;;;;;;;;;;;;;;;;;;;;;; +; Paths and Directories ; +;;;;;;;;;;;;;;;;;;;;;;;;; + +; UNIX: "/path1:/path2" +;include_path = ".:/php/includes" +; +; Windows: "\path1;\path2" +;include_path = ".;c:\php\includes" + +; 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 +doc_root = + +; The directory under which PHP opens the script using /~username used only +; if nonempty. +user_dir = + +; 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. +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.** +; cgi.force_redirect = 1 + +; if cgi.nph is enabled it will force cgi to always sent Status: 200 with +; every request. +; 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. +; 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 it's 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. +; 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. +; fastcgi.impersonate = 1; + +; Disable logging through FastCGI connection +; 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. +;cgi.rfc2616_headers = 0 + + +;;;;;;;;;;;;;;;; +; File Uploads ; +;;;;;;;;;;;;;;;; + +; Whether to allow HTTP file uploads. +file_uploads = On + +; Temporary directory for HTTP uploaded files (will use system default if not +; specified). +;upload_tmp_dir = + +; Maximum allowed size for uploaded files. +upload_max_filesize = 2M + + +;;;;;;;;;;;;;;;;;; +; Fopen wrappers ; +;;;;;;;;;;;;;;;;;; + +; Whether to allow the treatment of URLs (like http:// or ftp://) as files. +allow_url_fopen = On + +; Whether to allow include/require to open URLs (like http:// or ftp://) as files. +allow_url_include = Off + +; Define the anonymous ftp password (your email address) +;from="john@doe.com" + +; Define the User-Agent string +; user_agent="PHP" + +; Default timeout for socket based streams (seconds) +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. +; auto_detect_line_endings = Off + + +;;;;;;;;;;;;;;;;;;;;;; +; Dynamic Extensions ; +;;;;;;;;;;;;;;;;;;;;;; +; +; If you wish to have an extension loaded automatically, use the following +; syntax: +; +; extension=modulename.extension +; +; For example: +; +; extension=msql.so +; +; Note that it should be the name of the module only; no directory information +; needs to go here. Specify the location of the extension with the +; extension_dir directive above. + + +;;;; +; Note: packaged extension modules are now loaded via the .ini files +; found in the directory /etc/php.d; these are loaded by default. +;;;; + + +;;;;;;;;;;;;;;;;;;; +; Module Settings ; +;;;;;;;;;;;;;;;;;;; + +[Date] +; Defines the default timezone used by the date functions +;date.timezone = + +;date.default_latitude = 31.7667 +;date.default_longitude = 35.2333 + +;date.sunrise_zenith = 90.583333 +;date.sunset_zenith = 90.583333 + +[filter] +;filter.default = unsafe_raw +;filter.default_flags = + +[iconv] +;iconv.input_encoding = ISO-8859-1 +;iconv.internal_encoding = ISO-8859-1 +;iconv.output_encoding = ISO-8859-1 + +[sqlite] +;sqlite.assoc_case = 0 + +[xmlrpc] +;xmlrpc_error_number = 0 +;xmlrpc_errors = 0 + +[Pcre] +;PCRE library backtracking 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). +;pcre.recursion_limit=100000 + +[Syslog] +; Whether or not to define the various syslog variables (e.g. $LOG_PID, +; $LOG_CRON, etc.). Turning it off is a good idea performance-wise. In +; runtime, you can define these variables by calling define_syslog_variables(). +define_syslog_variables = Off + +[mail function] +; For Win32 only. +SMTP = localhost +smtp_port = 25 + +; For Win32 only. +;sendmail_from = me@example.com + +; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). +sendmail_path = /usr/sbin/sendmail -t -i + +; 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 = + +[SQL] +sql.safe_mode = Off + +[ODBC] +;odbc.default_db = Not yet implemented +;odbc.default_user = Not yet implemented +;odbc.default_pw = Not yet implemented + +; Allow or prevent persistent links. +odbc.allow_persistent = On + +; Check that a connection is still valid before reuse. +odbc.check_persistent = On + +; Maximum number of persistent links. -1 means no limit. +odbc.max_persistent = -1 + +; Maximum number of links (persistent + non-persistent). -1 means no limit. +odbc.max_links = -1 + +; Handling of LONG fields. Returns number of bytes to variables. 0 means +; passthru. +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 uodbc.defaultlrl and uodbc.defaultbinmode +odbc.defaultbinmode = 1 + +[MySQL] +; Allow or prevent persistent links. +mysql.allow_persistent = On + +; Maximum number of persistent links. -1 means no limit. +mysql.max_persistent = -1 + +; Maximum number of links (persistent + non-persistent). -1 means no limit. +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. +mysql.default_port = + +; Default socket name for local MySQL connects. If empty, uses the built-in +; MySQL defaults. +mysql.default_socket = + +; Default host for mysql_connect() (doesn't apply in safe mode). +mysql.default_host = + +; Default user for mysql_connect() (doesn't apply in safe mode). +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. +mysql.default_password = + +; Maximum time (in seconds) for connect timeout. -1 means no limit +mysql.connect_timeout = 60 + +; Trace mode. When trace_mode is active (=On), warnings for table/index scans and +; SQL-Errors will be displayed. +mysql.trace_mode = Off + +[MySQLi] + +; Maximum number of links. -1 means no limit. +mysqli.max_links = -1 + +; 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. +mysqli.default_port = 3306 + +; Default socket name for local MySQL connects. If empty, uses the built-in +; MySQL defaults. +mysqli.default_socket = + +; Default host for mysql_connect() (doesn't apply in safe mode). +mysqli.default_host = + +; Default user for mysql_connect() (doesn't apply in safe mode). +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. +mysqli.default_pw = + +; Allow or prevent reconnect +mysqli.reconnect = Off + +[mSQL] +; Allow or prevent persistent links. +msql.allow_persistent = On + +; Maximum number of persistent links. -1 means no limit. +msql.max_persistent = -1 + +; Maximum number of links (persistent+non persistent). -1 means no limit. +msql.max_links = -1 + +[PostgresSQL] +; Allow or prevent persistent links. +pgsql.allow_persistent = On + +; Detect broken persistent links always with pg_pconnect(). +; Auto reset feature requires a little overheads. +pgsql.auto_reset_persistent = Off + +; Maximum number of persistent links. -1 means no limit. +pgsql.max_persistent = -1 + +; Maximum number of links (persistent+non persistent). -1 means no limit. +pgsql.max_links = -1 + +; Ignore PostgreSQL backends Notice message or not. +; Notice message logging require a little overheads. +pgsql.ignore_notice = 0 + +; Log PostgreSQL backends Noitce message or not. +; Unless pgsql.ignore_notice=0, module cannot log notice message. +pgsql.log_notice = 0 + +[Sybase] +; Allow or prevent persistent links. +sybase.allow_persistent = On + +; Maximum number of persistent links. -1 means no limit. +sybase.max_persistent = -1 + +; Maximum number of links (persistent + non-persistent). -1 means no limit. +sybase.max_links = -1 + +;sybase.interface_file = "/usr/sybase/interfaces" + +; Minimum error severity to display. +sybase.min_error_severity = 10 + +; Minimum message severity to display. +sybase.min_message_severity = 10 + +; Compatibility mode with old versions of PHP 3.0. +; If on, this will cause PHP to automatically assign types to results according +; to their Sybase type, instead of treating them all as strings. This +; compatibility mode will probably not stay around forever, so try applying +; whatever necessary changes to your code, and turn it off. +sybase.compatability_mode = Off + +[Sybase-CT] +; Allow or prevent persistent links. +sybct.allow_persistent = On + +; Maximum number of persistent links. -1 means no limit. +sybct.max_persistent = -1 + +; Maximum number of links (persistent + non-persistent). -1 means no limit. +sybct.max_links = -1 + +; Minimum server message severity to display. +sybct.min_server_severity = 10 + +; Minimum client message severity to display. +sybct.min_client_severity = 10 + +[bcmath] +; Number of decimal digits for all bcmath functions. +bcmath.scale = 0 + +[browscap] +;browscap = extra/browscap.ini + +[Informix] +; Default host for ifx_connect() (doesn't apply in safe mode). +ifx.default_host = + +; Default user for ifx_connect() (doesn't apply in safe mode). +ifx.default_user = + +; Default password for ifx_connect() (doesn't apply in safe mode). +ifx.default_password = + +; Allow or prevent persistent links. +ifx.allow_persistent = On + +; Maximum number of persistent links. -1 means no limit. +ifx.max_persistent = -1 + +; Maximum number of links (persistent + non-persistent). -1 means no limit. +ifx.max_links = -1 + +; If on, select statements return the contents of a text blob instead of its id. +ifx.textasvarchar = 0 + +; If on, select statements return the contents of a byte blob instead of its id. +ifx.byteasvarchar = 0 + +; Trailing blanks are stripped from fixed-length char columns. May help the +; life of Informix SE users. +ifx.charasvarchar = 0 + +; If on, the contents of text and byte blobs are dumped to a file instead of +; keeping them in memory. +ifx.blobinfile = 0 + +; NULL's are returned as empty strings, unless this is set to 1. In that case, +; NULL's are returned as string 'NULL'. +ifx.nullformat = 0 + +[Session] +; Handler used to store/retrieve data. +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. +; +; As of PHP 4.0.1, you can define the path 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. +session.save_path = "/var/lib/php/session" + +; Whether to use cookies. +session.use_cookies = 1 + +;session.cookie_secure = + +; This option enables administrators to make their users invulnerable to +; attacks which involve passing session ids in URLs; defaults to 0. +; session.use_only_cookies = 1 + +; Name of the session (used as cookie name). +session.name = PHPSESSID + +; Initialize session on request startup. +session.auto_start = 0 + +; Lifetime in seconds of cookie or, if 0, until browser is restarted. +session.cookie_lifetime = 0 + +; The path for which the cookie is valid. +session.cookie_path = / + +; The domain for which the cookie is valid. +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. +session.cookie_httponly = + +; Handler used to serialize data. php is the standard serializer of PHP. +session.serialize_handler = php + +; Define the probability that the 'garbage collection' process is started +; on every session initialization. +; The probability is calculated by using gc_probability/gc_divisor, +; e.g. 1/100 means there is a 1% chance that the GC process starts +; on each request. + +session.gc_probability = 1 +session.gc_divisor = 1000 + +; After this number of seconds, stored data will be seen as 'garbage' and +; cleaned up by the garbage collection process. +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): +; cd /path/to/sessions; find -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, albeit register_globals +; is disabled. 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. + +session.bug_compat_42 = 0 +session.bug_compat_warn = 1 + +; 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. +session.referer_check = + +; How many bytes to read from the file. +session.entropy_length = 0 + +; Specified here to create the session id. +session.entropy_file = + +;session.entropy_length = 16 + +;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. +session.cache_limiter = nocache + +; Document expires after n minutes. +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. +session.use_trans_sid = 0 + +; Select a hash function +; 0: MD5 (128 bits) +; 1: SHA-1 (160 bits) +session.hash_function = 0 + +; Define how many bits are stored in each character when converting +; the binary hash data to something readable. +; +; 4 bits: 0-9, a-f +; 5 bits: 0-9, a-v +; 6 bits: 0-9, a-z, A-Z, "-", "," +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. +url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry" + +[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 +;mssql.datetimeconvert = On + +; 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.comf is used +; This is only used when compiled with FreeTDS +;mssql.charset = "ISO-8859-1" + +[Assertion] +; Assert(expr); active by default. +;assert.active = On + +; Issue a PHP warning for each failed assertion. +;assert.warning = On + +; Don't bail out by default. +;assert.bail = Off + +; User-function to be called if an assertion fails. +;assert.callback = 0 + +; Eval the expression with current error_reporting(). Set to true if you want +; error_reporting(0) around the eval(). +;assert.quiet_eval = 0 + +[COM] +; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs +;com.typelib_file = +; allow Distributed-COM calls +;com.allow_dcom = true +; autoregister constants of a components typlib on com_load() +;com.autoregister_typelib = true +; register constants casesensitive +;com.autoregister_casesensitive = false +; show warnings on duplicate constant registrations +;com.autoregister_verbose = true + +[mbstring] +; language for internal character representation. +;mbstring.language = Japanese + +; internal/script encoding. +; Some encoding cannot work as internal encoding. +; (e.g. SJIS, BIG5, ISO-2022-*) +;mbstring.internal_encoding = EUC-JP + +; http input encoding. +;mbstring.http_input = auto + +; http output encoding. mb_output_handler must be +; registered as output buffer to function +;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. +;mbstring.encoding_translation = Off + +; automatic encoding detection order. +; auto means +;mbstring.detect_order = auto + +; substitute_character used when character cannot be converted +; one from another +;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 +;mbstring.func_overload = 0 + +; enable strict encoding detection. +;mbstring.strict_encoding = Off + +[FrontBase] +;fbsql.allow_persistent = On +;fbsql.autocommit = On +;fbsql.show_timestamp_decimals = Off +;fbsql.default_database = +;fbsql.default_database_password = +;fbsql.default_host = +;fbsql.default_password = +;fbsql.default_user = "_SYSTEM" +;fbsql.generate_warnings = Off +;fbsql.max_connections = 128 +;fbsql.max_links = 128 +;fbsql.max_persistent = -1 +;fbsql.max_results = 128 + +[gd] +; Tell the jpeg decode to libjpeg warnings and try to create +; a gd image. The warning will then be displayed as notices +; disabled by default +;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. +;exif.encode_unicode = ISO-8859-15 +;exif.decode_unicode_motorola = UCS-2BE +;exif.decode_unicode_intel = UCS-2LE +;exif.encode_jis = +;exif.decode_jis_motorola = JIS +;exif.decode_jis_intel = JIS + +[Tidy] +; The path to a default tidy configuration file to use when using tidy +;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 +tidy.clean_output = Off + +[soap] +; Enables or disables WSDL caching feature. +soap.wsdl_cache_enabled=1 +; Sets the directory name where SOAP extension will put cache files. +soap.wsdl_cache_dir="/tmp" +; (time to live) Sets the number of second while cached file will be used +; instead of original one. +soap.wsdl_cache_ttl=86400 + +; Local Variables: +; tab-width: 4 +; End: + +[OCI8] +; enables privileged connections using external credentials (OCI_SYSOPER, OCI_SYSDBA) +;oci8.privileged_connect = Off + +; Connection: The maximum number of persistent OCI8 connections per +; process. Using -1 means no limit. +;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. +;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. +;oci8.ping_interval = 60 + +; Tuning: This option enables statement caching, and specifies how +; many statements to cache. Using 0 disables statement caching. +;oci8.statement_cache_size = 20 + +; Tuning: Enables statement prefetching and sets the default number of +; rows that will be fetched automatically after statement execution. +;oci8.default_prefetch = 10 + +; Compatibility. Using On means oci_close() will not close +; oci_connect() and oci_new_connect() connections. +;oci8.old_oci_close_semantics = Off + diff --git a/php.conf b/php.conf new file mode 100644 index 0000000..bb0f180 --- /dev/null +++ b/php.conf @@ -0,0 +1,28 @@ +# +# PHP is an HTML-embedded scripting language which attempts to make it +# easy for developers to write dynamically generated webpages. +# + + LoadModule php5_module modules/libphp5.so + + + LoadModule php5_module modules/libphp5-zts.so + + +# +# Cause the PHP interpreter to handle files with a .php extension. +# +AddHandler php5-script .php +AddType text/html .php + +# +# Add index.php to the list of files that will be served as directory +# indexes. +# +DirectoryIndex index.php + +# +# Uncomment the following line to allow PHP to pretty-print .phps +# files as PHP source code: +# +#AddType application/x-httpd-php-source .phps diff --git a/php52.spec b/php52.spec new file mode 100644 index 0000000..7477822 --- /dev/null +++ b/php52.spec @@ -0,0 +1,1420 @@ +%define contentdir /var/www +%define apiver 20041225 +%define zendver 20060613 +%define pdover 20060511 +%define httpd_mmn %(cat %{_includedir}/httpd/.mmn || echo missing-httpd-devel) + +%ifarch ppc ppc64 +%global oraclever 10.2.0.2 +%else +%global oraclever 11.2 +%endif + +# Optional components; pass "--with mssql" etc to rpmbuild. +%global with_oci8 %{?_with_oci8:1}%{!?_with_oci8:0} + +%global tidyver 0.99.0-16.20070615 + +Summary: PHP scripting language for creating dynamic web sites +Name: php +Version: 5.2.17 +Release: 1%{?dist} +License: PHP +Group: Development/Languages +URL: http://www.php.net/ + +Source0: http://www.php.net/distributions/php-%{version}.tar.bz2 +Source1: php.conf +Source2: php-remi.ini +Source3: macros.php + +# Build fixes +Patch1: php-5.2.13-gnusrc.patch +Patch2: php-5.2.8-install.patch +Patch3: php-5.2.4-norpath.patch +Patch4: php-5.2.8-phpize64.patch +Patch5: php-5.2.0-includedir.patch +Patch6: php-5.2.4-embed.patch +Patch7: php-5.2.8-recode.patch + +# Fixes for extension modules +Patch20: php-4.3.11-shutdown.patch +Patch21: php-5.2.3-macropen.patch + +# Functional changes +Patch40: php-5.0.4-dlopen.patch +Patch41: php-5.2.4-easter.patch +Patch42: php-5.2.5-systzdata.patch + +# Fixes for tests +Patch60: php-5.2.7-tests-dashn.patch +Patch61: php-5.0.4-tests-wddx.patch + +# RC Patch +Patch91: php-5.2.15-oci8conf.patch + +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +BuildRequires: bzip2-devel, curl-devel >= 7.9, db4-devel, gmp-devel +BuildRequires: httpd-devel >= 2.0.46-1, pam-devel +BuildRequires: libstdc++-devel, openssl-devel, sqlite-devel >= 3.0.0 +BuildRequires: sqlite2-devel >= 2.8.0 +BuildRequires: zlib-devel, smtpdaemon, libedit-devel +%if 0%{?fedora} >= 10 +BuildRequires: pcre-devel >= 7.8 +%endif +BuildRequires: bzip2, perl, libtool >= 1.4.3, gcc-c++ +Obsoletes: php-dbg, php3, phpfi, stronghold-php +Requires: httpd-mmn = %{httpd_mmn} +Provides: mod_php = %{version}-%{release} +Requires: php-common = %{version}-%{release} +# For backwards-compatibility, require php-cli for the time being: +Requires: php-cli = %{version}-%{release} +# To ensure correct /var/lib/php/session ownership: +Requires(pre): httpd + +%description +PHP is an HTML-embedded scripting language. PHP attempts to make it +easy for developers to write dynamically generated webpages. PHP also +offers built-in database integration for several commercial and +non-commercial database management systems, so writing a +database-enabled webpage with PHP is fairly simple. The most common +use of PHP coding is probably as a replacement for CGI scripts. + +The php package contains the module which adds support for the PHP +language to Apache HTTP Server. + +%package cli +Group: Development/Languages +Summary: Command-line interface for PHP +Requires: php-common = %{version}-%{release} +Provides: php-cgi = %{version}-%{release} +Provides: php-pcntl, php-readline + +%description cli +The php-cli package contains the command-line interface +executing PHP scripts, /usr/bin/php, and the CGI interface. + +%package zts +Group: Development/Languages +Summary: Thread-safe PHP interpreter for use with the Apache HTTP Server +Requires: php-common = %{version}-%{release} +Requires: httpd-mmn = %{httpd_mmn} + +%description zts +The php-zts package contains a module for use with the Apache HTTP +Server which can operate under a threaded server processing model. + +%package common +Group: Development/Languages +Summary: Common files for PHP +Provides: php-api = %{apiver}, php-zend-abi = %{zendver} +Provides: php(api) = %{apiver}, php(zend-abi) = %{zendver} +# Provides for all builtin modules: +Provides: php-bz2, php-calendar, php-ctype, php-curl, php-date, php-exif +Provides: php-ftp, php-gettext, php-gmp, php-hash, php-iconv, php-libxml +Provides: php-reflection, php-session, php-shmop, php-simplexml, php-sockets +Provides: php-spl, php-tokenizer, php-openssl, php-pcre +Provides: php-zlib, php-json, php-zip, php-dbase +Obsoletes: php-openssl, php-pecl-zip, php-pecl-json, php-json, php-dbase + +%description common +The php-common package contains files used by both the php +package and the php-cli package. + +%package devel +Group: Development/Libraries +Summary: Files needed for building PHP extensions +Requires: php = %{version}-%{release}, autoconf, automake +Obsoletes: php-pecl-pdo-devel + +%description devel +The php-devel package contains the files needed for building PHP +extensions. If you need to compile your own PHP extensions, you will +need to install this package. + +%package imap +Summary: A module for PHP applications that use IMAP +Group: Development/Languages +Requires: php-common = %{version}-%{release} +Obsoletes: mod_php3-imap, stronghold-php-imap +BuildRequires: krb5-devel, openssl-devel, libc-client-devel + +%description imap +The php-imap package contains a dynamic shared object (DSO) for the +Apache Web server. When compiled into Apache, the php-imap module will +add IMAP (Internet Message Access Protocol) support to PHP. IMAP is a +protocol for retrieving and uploading e-mail messages on mail +servers. PHP is an HTML-embedded scripting language. If you need IMAP +support for PHP applications, you will need to install this package +and the php package. + +%package ldap +Summary: A module for PHP applications that use LDAP +Group: Development/Languages +Requires: php-common = %{version}-%{release} +Obsoletes: mod_php3-ldap, stronghold-php-ldap +BuildRequires: cyrus-sasl-devel, openldap-devel, openssl-devel + +%description ldap +The php-ldap package is a dynamic shared object (DSO) for the Apache +Web server that adds Lightweight Directory Access Protocol (LDAP) +support to PHP. LDAP is a set of protocols for accessing directory +services over the Internet. PHP is an HTML-embedded scripting +language. If you need LDAP support for PHP applications, you will +need to install this package in addition to the php package. + +%package pdo +Summary: A database access abstraction module for PHP applications +Group: Development/Languages +Requires: php-common = %{version}-%{release} +Obsoletes: php-pecl-pdo-sqlite, php-pecl-pdo, php-sqlite2 +Provides: php-pdo-abi = %{pdover} +Provides: php-sqlite, php-sqlite2 + +%description pdo +The php-pdo package contains a dynamic shared object that will add +a database access abstraction layer to PHP. This module provides +a common interface for accessing MySQL, PostgreSQL or other +databases. + +%package mysql +Summary: A module for PHP applications that use MySQL databases +Group: Development/Languages +Requires: php-common = %{version}-%{release}, php-pdo +Provides: php_database, php-mysqli +Obsoletes: mod_php3-mysql, stronghold-php-mysql +BuildRequires: mysql-devel >= 4.1.0 + +%description mysql +The php-mysql package contains a dynamic shared object that will add +MySQL database support to PHP. MySQL is an object-relational database +management system. PHP is an HTML-embeddable scripting language. If +you need MySQL support for PHP applications, you will need to install +this package and the php package. + +%package pgsql +Summary: A PostgreSQL database module for PHP +Group: Development/Languages +Requires: php-common = %{version}-%{release}, php-pdo +Provides: php_database +Obsoletes: mod_php3-pgsql, stronghold-php-pgsql +BuildRequires: krb5-devel, openssl-devel, postgresql-devel + +%description pgsql +The php-pgsql package includes a dynamic shared object (DSO) that can +be compiled in to the Apache Web server to add PostgreSQL database +support to PHP. PostgreSQL is an object-relational database management +system that supports almost all SQL constructs. PHP is an +HTML-embedded scripting language. If you need back-end support for +PostgreSQL, you should install this package in addition to the main +php package. + +%package process +Summary: Modules for PHP script using system process interfaces +Group: Development/Languages +Requires: php-common = %{version}-%{release} +Provides: php-posix, php-sysvsem, php-sysvshm, php-sysvmsg + +%description process +The php-process package contains dynamic shared objects which add +support to PHP using system interfaces for inter-process +communication. + +%package odbc +Group: Development/Languages +Requires: php-common = %{version}-%{release}, php-pdo +Summary: A module for PHP applications that use ODBC databases +Provides: php_database +Obsoletes: stronghold-php-odbc +BuildRequires: unixODBC-devel + +%description odbc +The php-odbc package contains a dynamic shared object that will add +database support through ODBC to PHP. ODBC is an open specification +which provides a consistent API for developers to use for accessing +data sources (which are often, but not always, databases). PHP is an +HTML-embeddable scripting language. If you need ODBC support for PHP +applications, you will need to install this package and the php +package. + +%package soap +Group: Development/Languages +Requires: php-common = %{version}-%{release} +Summary: A module for PHP applications that use the SOAP protocol +BuildRequires: libxml2-devel + +%description soap +The php-soap package contains a dynamic shared object that will add +support to PHP for using the SOAP web services protocol. + +%package interbase +Summary: A module for PHP applications that use Interbase/Firebird databases +Group: Development/Languages +BuildRequires: firebird-devel +Requires: php-common = %{version}-%{release}, php-pdo +Provides: php_database, php-firebird, php-pdo_firebird + +%description interbase +The php-interbase package contains a dynamic shared object that will add +database support through Interbase/Firebird to PHP. + +InterBase is the name of the closed-source variant of this RDBMS that was +developed by Borland/Inprise. + +Firebird is a commercially independent project of C and C++ programmers, +technical advisors and supporters developing and enhancing a multi-platform +relational database management system based on the source code released by +Inprise Corp (now known as Borland Software Corp) under the InterBase Public +License. + +%if %{with_oci8} +%package oci8 +Summary: A module for PHP applications that use OCI8 databases +Group: Development/Languages +BuildRequires: oracle-instantclient-devel >= %{oraclever} +Requires: php-common = %{version}-%{release}, php-pdo +Provides: php_database +# Soulhd requires libclntsh.so.11.1, but it's not provided by Oracle RPM. +AutoReq: 0 + +%description oci8 +The php-oci8 package contains a dynamic shared object that will add +support for accessing OCI8 databases to PHP. +%endif + +%package snmp +Summary: A module for PHP applications that query SNMP-managed devices +Group: Development/Languages +Requires: php-common = %{version}-%{release}, net-snmp +BuildRequires: net-snmp-devel + +%description snmp +The php-snmp package contains a dynamic shared object that will add +support for querying SNMP devices to PHP. PHP is an HTML-embeddable +scripting language. If you need SNMP support for PHP applications, you +will need to install this package and the php package. + +%package xml +Summary: A module for PHP applications which use XML +Group: Development/Languages +Requires: php-common = %{version}-%{release} +Obsoletes: php-domxml, php-dom +Provides: php-dom, php-xsl, php-domxml, php-wddx +BuildRequires: libxslt-devel >= 1.0.18-1, libxml2-devel >= 2.4.14-1 + +%description xml +The php-xml package contains dynamic shared objects which add support +to PHP for manipulating XML documents using the DOM tree, +and performing XSL transformations on XML documents. + +%package xmlrpc +Summary: A module for PHP applications which use the XML-RPC protocol +Group: Development/Languages +Requires: php-common = %{version}-%{release} + +%description xmlrpc +The php-xmlrpc package contains a dynamic shared object that will add +support for the XML-RPC protocol to PHP. + +%package mbstring +Summary: A module for PHP applications which need multi-byte string handling +Group: Development/Languages +Requires: php-common = %{version}-%{release} + +%description mbstring +The php-mbstring package contains a dynamic shared object that will add +support for multi-byte string handling to PHP. + +%package ncurses +Summary: A module for PHP applications for using ncurses interfaces +Group: Development/Languages +Requires: php-common = %{version}-%{release} +BuildRequires: ncurses-devel + +%description ncurses +The php-ncurses package contains a dynamic shared object that will add +support for using the ncurses terminal output interfaces. + +%package gd +Summary: A module for PHP applications for using the gd graphics library +Group: Development/Languages +Requires: php-common = %{version}-%{release} +# Required to build the bundled GD library +BuildRequires: libjpeg-devel, libpng-devel, freetype-devel +%if 0%{?rhel}%{?fedora} > 4 +BuildRequires: t1lib-devel >= 5.0.0 +BuildRequires: libXpm-devel +%else +BuildRequires: xorg-x11-devel +%endif + +%description gd +The php-gd package contains a dynamic shared object that will add +support for using the gd graphics library to PHP. + +%package bcmath +Summary: A module for PHP applications for using the bcmath library +Group: Development/Languages +Requires: php-common = %{version}-%{release} + +%description bcmath +The php-bcmath package contains a dynamic shared object that will add +support for using the bcmath library to PHP. + +%package dba +Summary: A database abstraction layer module for PHP applications +Group: Development/Languages +Requires: php-common = %{version}-%{release} + +%description dba +The php-dba package contains a dynamic shared object that will add +support for using the DBA database abstraction layer to PHP. + +%package mcrypt +Summary: Standard PHP module provides mcrypt library support +Group: Development/Languages +Requires: php-common = %{version}-%{release} +BuildRequires: libmcrypt-devel + +%description mcrypt +The php-mcrypt package contains a dynamic shared object that will add +support for using the mcrypt library to PHP. + +%package mhash +Summary: Standard PHP module provides mhash support +Group: Development/Languages +Requires: php-common = %{version}-%{release} +BuildRequires: mhash-devel + +%description mhash +The php-mhash package contains a dynamic shared object that will add +support for using the mhash library to PHP. + +%package tidy +Summary: Standard PHP module provides tidy library support +Group: Development/Languages +Requires: php-common = %{version}-%{release} +BuildRequires: libtidy-devel + +%description tidy +The php-tidy package contains a dynamic shared object that will add +support for using the tidy library to PHP. + +%package mssql +Summary: MSSQL database module for PHP +Group: Development/Languages +Requires: php-common = %{version}-%{release}, php-pdo +BuildRequires: freetds-devel + +%description mssql +The php-mssql package contains a dynamic shared object that will +add MSSQL database support to PHP. It uses the TDS (Tabular +DataStream) protocol through the freetds library, hence any +database server which supports TDS can be accessed. + +%package embedded +Summary: PHP library for embedding in applications +Group: System Environment/Libraries +Requires: php-common = %{version}-%{release} +# doing a real -devel package for just the .so symlink is a bit overkill +Provides: php-embedded-devel = %{version}-%{release} + +%description embedded +The php-embedded package contains a library which can be embedded +into applications to provide PHP scripting language support. + +%package pspell +Summary: A module for PHP applications for using pspell interfaces +Group: System Environment/Libraries +Requires: php-common = %{version}-%{release} +BuildRequires: aspell-devel >= 0.50.0 + +%description pspell +The php-pspell package contains a dynamic shared object that will add +support for using the pspell library to PHP. + +%package recode +Summary: A module for PHP applications for using the recode library +Group: System Environment/Libraries +Requires: php-common = %{version}-%{release} +BuildRequires: recode-devel + +%description recode +The php-recode package contains a dynamic shared object that will add +support for using the recode library to PHP. + +%prep +%setup -q +%patch1 -p1 -b .gnusrc +%patch2 -p1 -b .install +%patch3 -p1 -b .norpath +%patch4 -p1 -b .phpize64 +%patch5 -p1 -b .includedir +%patch6 -p1 -b .embed +%patch7 -p1 -b .recode + +%patch20 -p1 -b .shutdown +%patch21 -p1 -b .macropen + +%patch40 -p1 -b .dlopen +%patch41 -p1 -b .easter +%patch42 -p1 -b .systzdata + +%patch60 -p1 -b .tests-dashn +%patch61 -p1 -b .tests-wddx + +%patch91 -p0 -b .remi-oci8 + +# Prevent %%doc confusion over LICENSE files +cp Zend/LICENSE Zend/ZEND_LICENSE +cp TSRM/LICENSE TSRM_LICENSE +cp regex/COPYRIGHT regex_COPYRIGHT +cp ext/gd/libgd/README gd_README + +# Multiple builds for multiple SAPIs +mkdir build-cgi build-apache build-embedded build-zts + +# Remove bogus test; position of read position after fopen(, "a+") +# is not defined by C standard, so don't presume anything. +rm -f ext/standard/tests/file/bug21131.phpt + +# Tests that fail. +rm -f ext/standard/tests/file/bug22414.phpt \ + ext/iconv/tests/bug16069.phpt + +# Safety check for API version change. +vapi=`sed -n '/#define PHP_API_VERSION/{s/.* //;p}' main/php.h` +if test "x${vapi}" != "x%{apiver}"; then + : Error: Upstream API version is now ${vapi}, expecting %{apiver}. + : Update the apiver macro and rebuild. + exit 1 +fi + +vzend=`sed -n '/#define ZEND_MODULE_API_NO/{s/^[^0-9]*//;p;}' Zend/zend_modules.h` +if test "x${vzend}" != "x%{zendver}"; then + : Error: Upstream Zend ABI version is now ${vzend}, expecting %{zendver}. + : Update the zendver macro and rebuild. + exit 1 +fi + +# Safety check for PDO ABI version change +vpdo=`sed -n '/#define PDO_DRIVER_API/{s/.*[ ]//;p}' ext/pdo/php_pdo_driver.h` +if test "x${vpdo}" != "x%{pdover}"; then + : Error: Upstream PDO ABI version is now ${vpdo}, expecting %{pdover}. + : Update the pdover macro and rebuild. + exit 1 +fi + +: Build for oci8=%{with_oci8} + +%build +%if 0%{?fedora} >= 11 +# aclocal workaround - to be improved +cat `aclocal --print-ac-dir`/{libtool,ltoptions,ltsugar,ltversion,lt~obsolete}.m4 >>aclocal.m4 +%endif + +# Force use of system libtool: +libtoolize --force --copy +%if 0%{?fedora} >= 11 +cat `aclocal --print-ac-dir`/{libtool,ltoptions,ltsugar,ltversion,lt~obsolete}.m4 >build/libtool.m4 +%else +cat `aclocal --print-ac-dir`/libtool.m4 > build/libtool.m4 +%endif + +# Regenerate configure scripts (patches change config.m4's) +./buildconf --force + +CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -Wno-pointer-sign" +%if 0%{?fedora} < 4 + CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" +%endif +%if 0%{?rhel} < 5 + CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" +%endif +export CFLAGS + +# Install extension modules in %{_libdir}/php/modules. +EXTENSION_DIR=%{_libdir}/php/modules; export EXTENSION_DIR + +# Set PEAR_INSTALLDIR to ensure that the hard-coded include_path +# includes the PEAR directory even though pear is packaged +# separately. +PEAR_INSTALLDIR=%{_datadir}/pear; export PEAR_INSTALLDIR + +# Shell function to configure and build a PHP tree. +build() { +# bison-1.875-2 seems to produce a broken parser; workaround. +mkdir Zend && cp ../Zend/zend_{language,ini}_{parser,scanner}.[ch] Zend +ln -sf ../configure +%configure \ + --cache-file=../config.cache \ + --with-libdir=%{_lib} \ + --with-config-file-path=%{_sysconfdir} \ + --with-config-file-scan-dir=%{_sysconfdir}/php.d \ + --disable-debug \ + --with-pic \ + --disable-rpath \ + --without-pear \ + --with-bz2 \ + --with-exec-dir=%{_bindir} \ + --with-freetype-dir=%{_prefix} \ + --with-png-dir=%{_prefix} \ + --with-xpm-dir=%{_prefix} \ + --enable-gd-native-ttf \ +%if 0%{?rhel}%{?fedora} > 4 + --with-t1lib=%{_prefix} \ +%endif + --without-gdbm \ + --with-gettext \ + --with-gmp \ + --with-iconv \ + --with-jpeg-dir=%{_prefix} \ + --with-openssl \ +%if 0%{?fedora} >= 10 + --with-pcre-regex=%{_prefix} \ +%endif + --with-zlib \ + --with-layout=GNU \ + --enable-exif \ + --enable-ftp \ + --enable-magic-quotes \ + --enable-sockets \ + --enable-sysvsem --enable-sysvshm --enable-sysvmsg \ + --with-kerberos \ + --enable-ucd-snmp-hack \ + --enable-shmop \ + --enable-calendar \ + --with-libxml-dir=%{_prefix} \ + --enable-xml \ + --with-system-tzdata \ + --with-mime-magic=%{_datadir}/file/magic \ + $* +if test $? != 0; then + tail -500 config.log + : configure failed + exit 1 +fi + +make %{?_smp_mflags} +} + +# Build /usr/bin/php-cgi with the CGI SAPI, and all the shared extensions +pushd build-cgi + +# RC patch ??? +mkdir -p ext/sqlite/libsqlite/src +cp ../ext/sqlite/libsqlite/src/encode.c ext/sqlite/libsqlite/src/ + +build --enable-force-cgi-redirect \ + --enable-pcntl \ + --with-imap=shared --with-imap-ssl \ + --enable-mbstring=shared \ + --enable-mbregex \ + --with-ncurses=shared \ + --with-gd=shared \ + --enable-bcmath=shared \ + --enable-dba=shared --with-db4=%{_prefix} \ + --with-xmlrpc=shared \ + --with-ldap=shared --with-ldap-sasl \ + --with-mysql=shared,%{_prefix} \ + --with-mysqli=shared,%{_bindir}/mysql_config \ +%ifarch x86_64 + %{?_with_oci8:--with-oci8=shared,instantclient,%{_libdir}/oracle/%{oraclever}/client64/lib,%{oraclever}} \ +%else + %{?_with_oci8:--with-oci8=shared,instantclient,%{_libdir}/oracle/%{oraclever}/client/lib,%{oraclever}} \ +%endif + %{?_with_oci8:--with-pdo-oci=shared,instantclient,/usr,%{oraclever}} \ + --with-interbase=shared,%{_libdir}/firebird \ + --with-pdo-firebird=shared,%{_libdir}/firebird \ + --enable-dom=shared \ + --with-pgsql=shared \ + --enable-wddx=shared \ + --with-snmp=shared,%{_prefix} \ + --enable-soap=shared \ + --with-xsl=shared,%{_prefix} \ + --enable-xmlreader=shared --enable-xmlwriter=shared \ + --with-curl=shared,%{_prefix} \ + --enable-fastcgi \ + --enable-pdo=shared \ + --with-pdo-odbc=shared,unixODBC,%{_prefix} \ + --with-pdo-mysql=shared,%{_prefix} \ + --with-pdo-pgsql=shared,%{_prefix} \ + --with-pdo-sqlite=shared,%{_prefix} \ + --with-pdo-dblib=shared,%{_prefix} \ + --with-sqlite=shared,%{_prefix} \ + --enable-json=shared \ + --enable-zip=shared \ + --without-readline \ + --with-libedit \ + --enable-dbase=shared \ + --with-pspell=shared \ + --with-mcrypt=shared,%{_prefix} \ + --with-mhash=shared,%{_prefix} \ + --with-tidy=shared,%{_prefix} \ + --with-mssql=shared,%{_prefix} \ + --enable-sysvmsg=shared --enable-sysvshm=shared --enable-sysvsem=shared \ + --enable-posix=shared \ + --with-unixODBC=shared,%{_prefix} \ + --with-recode=shared,%{_prefix} +popd + +without_shared="--without-mysql --without-gd \ + --without-unixODBC --disable-dom \ + --disable-dba --without-unixODBC \ + --disable-pdo --disable-xmlreader --disable-xmlwriter \ + --without-sqlite \ + --disable-json --without-pspell --disable-wddx \ + --without-curl --disable-posix \ + --disable-sysvmsg --disable-sysvshm --disable-sysvsem" + +# Build Apache module, and the CLI SAPI, /usr/bin/php +pushd build-apache +build --with-apxs2=%{_sbindir}/apxs ${without_shared} +popd + +# Build for inclusion as embedded script language into applications, +# /usr/lib[64]/libphp5.so +pushd build-embedded +build --enable-embed ${without_shared} +popd + +# Build a special thread-safe Apache SAPI +pushd build-zts +EXTENSION_DIR=%{_libdir}/php/modules-zts +build --with-apxs2=%{_sbindir}/apxs ${without_shared} \ + --enable-maintainer-zts \ + --with-config-file-scan-dir=%{_sysconfdir}/php-zts.d +popd + +### NOTE!!! EXTENSION_DIR was changed for the -zts build, so it must remain +### the last SAPI to be built. + +%check +cd build-apache +# Run tests, using the CLI SAPI +export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2 +unset TZ LANG LC_ALL +if ! make test; then + set +x + for f in `find .. -name \*.diff -type f -print`; do + echo "TEST FAILURE: $f --" + cat "$f" + echo "-- $f result ends." + done + set -x + #exit 1 +fi +unset NO_INTERACTION REPORT_EXIT_STATUS MALLOC_CHECK_ + +%install +[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT + +# Install the version for embedded script language in applications + php_embed.h +make -C build-embedded install-sapi install-headers INSTALL_ROOT=$RPM_BUILD_ROOT + +# Install everything from the CGI SAPI build +make -C build-cgi install INSTALL_ROOT=$RPM_BUILD_ROOT + +# Install the default configuration file and icons +install -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/ +install -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/php.ini +install -m 755 -d $RPM_BUILD_ROOT%{contentdir}/icons +install -m 644 *.gif $RPM_BUILD_ROOT%{contentdir}/icons/ + +# For third-party packaging: +install -m 755 -d $RPM_BUILD_ROOT%{_libdir}/php/pear \ + $RPM_BUILD_ROOT%{_datadir}/php + +# install the DSO +install -m 755 -d $RPM_BUILD_ROOT%{_libdir}/httpd/modules +install -m 755 build-apache/libs/libphp5.so $RPM_BUILD_ROOT%{_libdir}/httpd/modules + +# install the ZTS DSO +install -m 755 build-zts/libs/libphp5.so $RPM_BUILD_ROOT%{_libdir}/httpd/modules/libphp5-zts.so + +# Apache config fragment +install -m 755 -d $RPM_BUILD_ROOT/etc/httpd/conf.d +install -m 644 $RPM_SOURCE_DIR/php.conf $RPM_BUILD_ROOT/etc/httpd/conf.d + +install -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/php.d +install -m 755 -d $RPM_BUILD_ROOT%{_localstatedir}/lib/php +install -m 700 -d $RPM_BUILD_ROOT%{_localstatedir}/lib/php/session + +# Generate files lists and stub .ini files for each subpackage +for mod in pgsql mysql mysqli odbc ldap snmp xmlrpc imap \ + mbstring ncurses gd dom xsl soap bcmath dba xmlreader xmlwriter \ + %{?_with_oci8:oci8} %{?_with_oci8:pdo_oci} sqlite \ + pdo pdo_mysql pdo_pgsql pdo_odbc pdo_sqlite json zip \ + dbase mcrypt mhash tidy pdo_dblib mssql pspell curl wddx \ + posix sysvshm sysvsem sysvmsg recode interbase pdo_firebird; do + cat > $RPM_BUILD_ROOT%{_sysconfdir}/php.d/${mod}.ini < files.${mod} < files.xml + +# The mysql and mysqli modules are both packaged in php-mysql +cat files.mysqli >> files.mysql + +# Split out the PDO modules +cat files.pdo_dblib >> files.mssql +cat files.pdo_mysql >> files.mysql +cat files.pdo_pgsql >> files.pgsql +cat files.pdo_odbc >> files.odbc +%if %{with_oci8} +cat files.pdo_oci >> files.oci8 +%endif +cat files.pdo_firebird >> files.interbase + +# sysv* and posix in packaged in php-process +cat files.sysv* files.posix > files.process + +# Package sqlite and pdo_sqlite with pdo; isolating the sqlite dependency +# isn't useful at this time since rpm itself requires sqlite. +cat files.sqlite >> files.pdo +cat files.pdo_sqlite >> files.pdo + +# Package json, dbase and zip in -common. +cat files.json files.dbase files.zip files.curl > files.common + +# Install the macros file: +install -d $RPM_BUILD_ROOT%{_sysconfdir}/rpm +sed -e "s/@PHP_APIVER@/%{apiver}/;s/@PHP_ZENDVER@/%{zendver}/;s/@PHP_PDOVER@/%{pdover}/" \ + < $RPM_SOURCE_DIR/macros.php > macros.php +install -m 644 -c macros.php \ + $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros.php + +# Remove unpackaged files +rm -rf $RPM_BUILD_ROOT%{_libdir}/php/modules/*.a \ + $RPM_BUILD_ROOT%{_bindir}/{phptar} \ + $RPM_BUILD_ROOT%{_datadir}/pear \ + $RPM_BUILD_ROOT%{_libdir}/libphp5.la + +# Remove irrelevant docs +rm -f README.{Zeus,QNX,CVS-RULES} + +# Fix encoding of docs +iconv -f iso-8859-1 -t utf-8 < EXTENSIONS > EXTENSIONS.utf8 +mv EXTENSIONS.utf8 EXTENSIONS + +%clean +[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT +rm files.* macros.php + + +%pre common +echo -e "\nWARNING : This %{name}-* RPM are not official Fedora build and" +echo -e "overrides the official ones. Don't file bugs on Fedora Project.\n" +echo -e "Use dedicated forums http://forums.famillecollet.com/\n" + +%if %{?fedora}%{!?fedora:99} <= 10 +echo -e "WARNING : Fedora %{fedora} is now EOL :" +echo -e "You should consider upgrading to a supported release.\n" +%endif + + +%post embedded -p /sbin/ldconfig +%postun embedded -p /sbin/ldconfig + +%files +%defattr(-,root,root) +%{_libdir}/httpd/modules/libphp5.so +%attr(0770,root,apache) %dir %{_localstatedir}/lib/php/session +%config(noreplace) %{_sysconfdir}/httpd/conf.d/php.conf +%{contentdir}/icons/php.gif + +%files common -f files.common +%defattr(-,root,root) +%doc CODING_STANDARDS CREDITS EXTENSIONS INSTALL LICENSE NEWS README* +%doc Zend/ZEND_* TSRM_LICENSE regex_COPYRIGHT +%config(noreplace) %{_sysconfdir}/php.ini +%dir %{_sysconfdir}/php.d +%dir %{_libdir}/php +%dir %{_libdir}/php/modules +%dir %{_localstatedir}/lib/php +%dir %{_libdir}/php/pear +%dir %{_datadir}/php + +%files cli +%defattr(-,root,root) +%{_bindir}/php +%{_bindir}/php-cgi +%{_mandir}/man1/php.1* +%doc sapi/cgi/README* sapi/cli/README + +%files zts +%defattr(-,root,root) +%{_libdir}/httpd/modules/libphp5-zts.so + +%files devel +%defattr(-,root,root) +%{_bindir}/php-config +%{_bindir}/phpize +%{_includedir}/php +%{_libdir}/php/build +%{_mandir}/man1/php-config.1* +%{_mandir}/man1/phpize.1* +%config %{_sysconfdir}/rpm/macros.php + +%files embedded +%defattr(-,root,root,-) +%{_libdir}/libphp5.so +%{_libdir}/libphp5-%{version}.so + +%files pgsql -f files.pgsql +%files mysql -f files.mysql +%files odbc -f files.odbc +%files imap -f files.imap +%files ldap -f files.ldap +%files snmp -f files.snmp +%files xml -f files.xml +%files xmlrpc -f files.xmlrpc +%files mbstring -f files.mbstring +%files ncurses -f files.ncurses +%files gd -f files.gd +%doc gd_README +%files soap -f files.soap +%files bcmath -f files.bcmath +%files dba -f files.dba +%files pdo -f files.pdo +%files mcrypt -f files.mcrypt +%files mhash -f files.mhash +%files tidy -f files.tidy +%files mssql -f files.mssql +%files pspell -f files.pspell +%files process -f files.process +%files recode -f files.recode + +%if %{with_oci8} +%files oci8 -f files.oci8 +%endif + +%files interbase -f files.interbase + +%changelog +* Sun Jan 09 2011 Remi Collet 5.2.17-1 +- update to 5.2.17 + +* Thu Dec 16 2010 Remi Collet 5.2.16-1 +- update to 5.2.16 + +* Sat Dec 11 2010 Remi Collet 5.2.15-1 +- update to 5.2.15 +- build against Oracle InstantClient 11.2.0.2.0-1 + +* Sun Jul 25 2010 Remi Collet 5.2.14-1 +- update to 5.2.14 + +* Sun Mar 07 2010 Remi Collet 5.2.13-1 +- sync with F-11 and rebuild 5.2.13 for EL5 + +* Sat Mar 06 2010 Tim Jackson 5.2.13-1 +- update to 5.2.13 + +* Sat Jun 21 2009 Remi Collet 5.2.10-1.###.remi +- update to 5.2.10 +- add interbase sub-package + +* Wed Apr 15 2009 Joe Orton 5.2.9-2 +- revert to r3 of tzdata patch + +* Fri Feb 27 2009 Remi Collet 5.2.9-1.###.remi +- sync spec with rawhide +- update to 5.2.9 + +* Thu Feb 5 2009 Joe Orton 5.2.8-9 +- add recode support, -recode subpackage (#106755) +- add -zts subpackage with ZTS-enabled build of httpd SAPI +- adjust php.conf to use -zts SAPI build for worker MPM + +* Wed Feb 4 2009 Joe Orton 5.2.8-8 +- fix patch fuzz, renumber patches + +* Wed Feb 4 2009 Joe Orton 5.2.8-7 +- drop obsolete configure args +- drop -odbc patch (#483690) + +* Mon Jan 26 2009 Joe Orton 5.2.8-5 +- split out sysvshm, sysvsem, sysvmsg, posix into php-process + +* Sun Jan 25 2009 Joe Orton 5.2.8-4 +- move wddx to php-xml, build curl shared in -common +- remove BR for expat-devel, bogus configure option + +* Fri Jan 23 2009 Joe Orton 5.2.8-3 +- rebuild for new MySQL + +* Sat Dec 13 2008 Remi Collet 5.2.8-2 +- libtool 2 workaround for phpize (#476004) +- add missing php_embed.h (#457777) + +* Tue Dec 09 2008 Remi Collet 5.2.8-1.###.remi +- update to 5.2.8 + +* Fri Dec 05 2008 Remi Collet 5.2.7-1.###.remi +- update to 5.2.7 + +* Sat Nov 29 2008 Remi Collet 5.2.6-6.###.remi +- F-10 rebuild (against mysql 5.1.30) +- enable PDO_dblib driver + +* Tue Nov 4 2008 Joe Orton 5.2.6-6 +- move gd_README to php-gd +- update to r4 of systzdata patch; introduces a default timezone + name of "System/Localtime", which uses /etc/localtime (#469532) + +* Sat Sep 13 2008 Remi Collet 5.2.6-5 +- enable XPM support in php-gd +- Fix BR for php-gd + +* Tue Aug 20 2008 Remi Collet 5.2.6-3.###.remi +- use system GD instead of bundled GD when >= 2.0.35 (Fedora >= 6) + +* Sat May 11 2008 Remi Collet 5.2.6-2.###.remi +- sync with rawhide (add php-pspell) + +* Thu May 8 2008 Joe Orton 5.2.6-2 +- update to 5.2.6 + +* Tue May 6 2008 Remi Collet 5.2.6-1.###.remi +- update to 5.2.6 + +* Thu Apr 24 2008 Joe Orton 5.2.5-7 +- split pspell extension out into php-pspell (#443857) + +* Sat Apr 12 2008 Remi Collet 5.2.6-0.1.RC.fc8.remi +- update to 5.2.6RC5 for testing + +* Wed Apr 09 2008 Remi Collet 5.2.5-2.###.remi +- resync with rawhide +- use bundled pcre if system one too old +- enable t1lib in GD (Fedora >= 5 and EL >= 5) + +* Fri Jan 11 2008 Joe Orton 5.2.5-5 +- ext/date: use system timezone database + +* Sat Nov 10 2007 Remi Collet 5.2.5-1.fc8.remi +- update to 5.2.5 + +* Fri Nov 09 2007 Remi Collet 5.2.4-3.fc8.remi +- resync with rawhide, F-8 rebuild + +* Mon Oct 15 2007 Joe Orton 5.2.4-3 +- correct pcre BR version (#333021) +- restore metaphone fix (#205714) +- add READMEs to php-cli + +* Sat Sep 1 2007 Remi Collet 5.2.4-1.fc7.remi.1 +- F-7 rebuild to add missing oci8 + +* Fri Aug 31 2007 Remi Collet 5.2.4-1.###.remi +- update to 5.2.4 + +* Wed Aug 15 2007 Remi Collet 5.2.3-5.###.remi +- rebuild from lastest rawhide spec +- rebuild against MySQL 5.1.20 + +* Fri Aug 10 2007 Hans de Goede 5.2.3-7 +- add php-embedded sub-package + +* Fri Aug 10 2007 Joe Orton 5.2.3-6 +- fix build with new glibc +- fix License + +* Mon Jul 16 2007 Joe Orton 5.2.3-5 +- define php_extdir in macros.php + +* Sun Jul 15 2007 Remi Collet 5.2.3-4.###.remi +- rebuild from lastest rawhide spec + +* Mon Jul 2 2007 Joe Orton 5.2.3-4 +- obsolete php-dbase + +* Tue Jun 19 2007 Joe Orton 5.2.3-3 +- add mcrypt, mhash, tidy, mssql subpackages (Dmitry Butskoy) +- enable dbase extension and package in -common + +* Fri Jun 8 2007 Remi Collet 5.2.3-2.###.remi +- rebuild from lastest rawhide spec + +* Fri Jun 8 2007 Joe Orton 5.2.3-2 +- update to 5.2.3 (thanks to Jeff Sheltren) + +* Thu Jun 07 2007 Remi Collet 5.2.3-1.fc#.remi.2 +- see https://www.redhat.com/archives/fedora-php-devel-list/2007-June/msg00000.html + +* Tue Jun 05 2007 Remi Collet 5.2.3-1.fc#.remi.1 +- rebuild against libtidy-0.99.0-12-20070228 + +* Sat Jun 02 2007 Remi Collet 5.2.3-1.fc#.remi +- update to 5.2.3 + +* Tue May 22 2007 Remi Collet 5.2.2-3.fc7.remi +- F7 rebuild with all extensions + +* Tue May 8 2007 Joe Orton 5.2.2-3 +- rebuild against uw-imap-devel + +* Fri May 4 2007 Remi Collet 5.2.2-1.###.remi +- update to 5.2.2 (from rawhide) + +* Fri May 4 2007 Joe Orton 5.2.2-2 +- update to 5.2.2 +- synch changes from upstream recommended php.ini + +* Sun Apr 01 2007 Remi Collet 5.2.1-4.fc{3-6}.remi +- use system sqlite2 (not bundled copy) + +* Sat Mar 31 2007 Remi Collet 5.2.1-3.fc{3-6}.remi +- build --with-sqlite (in php-pdo) + +* Thu Mar 29 2007 Joe Orton 5.2.1-5 +- enable SASL support in LDAP extension (#205772) + +* Wed Mar 21 2007 Joe Orton 5.2.1-4 +- drop mime_magic extension (deprecated by php-pecl-Fileinfo) + +* Sat Feb 17 2007 Remi Collet 5.2.1-2.fc{3-6}.remi +- latest patches from rawhide +- fix regression in str_{i,}replace (from upstream) +- keep memory_limit to 128M (defaut php-5.2.1 value) + +* Thu Feb 15 2007 Joe Orton 5.2.1-2 +- update to 5.2.1 +- add Requires(pre) for httpd +- trim %%changelog to versions >= 5.0.0 + +* Fri Feb 09 2007 Remi Collet 5.2.1-1.fc{3-6}.remi +- update to 5.2.1 +- remove php-5.1.6-curl716.patch and php-5.2.0-filterm4.patch (included upstream) + +* Thu Feb 8 2007 Joe Orton 5.2.0-10 +- bump default memory_limit to 32M (#220821) +- mark config files noreplace again (#174251) +- drop trailing dots from Summary fields +- use standard BuildRoot +- drop libtool15 patch (#226294) + +* Sat Feb 03 2007 Remi Collet 5.2.0-5.fc{3-6}.remi +- rebuild from rawhide +- del Requires libclntsh.so.10.1 (not provided by Oracle RPM) +- build with oracle-instantclient 10.2.0.3 + +* Tue Jan 30 2007 Joe Orton 5.2.0-9 +- add php(api), php(zend-abi) provides (#221302) +- package /usr/share/php and append to default include_path (#225434) + +* Wed Dec 20 2006 Remi Collet 5.2.0-4.fc{3-6}.remi +- rebuild from rawhide + +* Tue Dec 5 2006 Joe Orton 5.2.0-8 +- fix filter.h installation path +- fix php-zend-abi version (Remi Collet, #212804) + +* Fri Dec 01 2006 Remi Collet 5.2.0-3.fc{3-6}.remi +- rebuild from rawhide + +* Mon Nov 27 2006 Joe Orton 5.2.0-5 +- build json and zip shared, in -common (Remi Collet, #215966) +- obsolete php-json and php-pecl-zip +- build readline extension into /usr/bin/php* (#210585) +- change module subpackages to require php-common not php (#177821) + +* Thu Nov 16 2006 Remi Collet 5.2.0-2.fc6.remi +- rebuild with rawhide patches + +* Wed Nov 15 2006 Joe Orton 5.2.0-4 +- provide php-zend-abi (#212804) +- add /etc/rpm/macros.php exporting interface versions +- synch with upstream recommended php.ini + +* Wed Nov 15 2006 Joe Orton 5.2.0-3 +- update to 5.2.0 (#213837) +- php-xml provides php-domxml (#215656) +- fix php-pdo-abi provide (#214281) + +* Sat Nov 4 2006 Remi Collet 5.2.0-1.1.fc6.remi +- split php-json + +* Thu Nov 2 2006 Remi Collet 5.2.0-1.fc{3-6}.remi +- update to 5.2.0 final +- add disclaimer + +* Sat Oct 14 2006 Remi Collet 5.2.0-0.200610140830.fc5.remi +- latest snapshot + +* Sun Oct 8 2006 Remi Collet 5.2.0-0.200610081430.fc5.remi +- latest snapshot + +* Sun Oct 1 2006 Remi Collet 5.2.0-0.200610011230.fc5.remi +- latest snapshot for http://bugs.php.net/bug.php?id=37103 + +* Sun Sep 17 2006 Remi Collet 5.2.0-0.200609171630.fc5.remi +- first try for php 5.2 from snaps.php.net +- add Requires pcre >= 6.6 + +* Thu Aug 31 2006 Remi Collet 5.1.6-2.fc{3,4,5}.remi +- rebuild from FC3, FC4 & FC5 (from rawhide) + +* Tue Aug 29 2006 Joe Orton 5.1.6-2 +- update to 5.1.6 (security fixes) +- bump default memory_limit to 16M (#196802) + +* Sun Aug 20 2006 Remi Collet 5.1.5-1.fc{3,4,5}.remi +- update to 5.1.5 + +* Sat Jul 24 2006 Remi Collet 5.1.4-3.fc{3,4,5}.remi +- path to install libmbfl headers : http://bugs.php.net/bug.php?id=37103 + +* Sat Jun 24 2006 Remi Collet 5.1.4-2.fc{3,4,5}.remi +- rebuild fromFC3, FC4 & FC5 (from rawhide) +- build with oracle-instantclient 10.2.0.2 +- requires libclntsh.so.10.1 (not oracle-instantclient-basic) + +* Fri Jun 9 2006 Joe Orton 5.1.4-8 +- Provide php-posix (#194583) +- only provide php-pcntl from -cli subpackage +- add missing defattr's (thanks to Matthias Saou) + +* Fri Jun 9 2006 Joe Orton 5.1.4-7 +- move Obsoletes for php-openssl to -common (#194501) +- Provide: php-cgi from -cli subpackage + +* Fri Jun 2 2006 Joe Orton 5.1.4-6 +- split out php-cli, php-common subpackages (#177821) +- add php-pdo-abi version export (#193202) + +* Wed May 24 2006 Radek Vokal 5.1.4-5.1 +- rebuilt for new libnetsnmp + +* Thu May 18 2006 Joe Orton 5.1.4-5 +- provide mod_php (#187891) +- provide php-cli (#192196) +- use correct LDAP fix (#181518) +- define _GNU_SOURCE in php_config.h and leave it defined +- drop (circular) dependency on php-pear + +* Sat May 06 2006 Remi Collet 5.1.4-1.fc{3,4,5}.remi +- update to 5.1.4 + +* Fri May 05 2006 Remi Collet 5.1.3-1.fc{3,4,5}.remi +- rebuild with additional packages + +* Wed May 3 2006 Joe Orton 5.1.3-3 +- update to 5.1.3 + +* Mon Apr 17 2006 Remi Collet 5.1.2-5.2.fc5.remi +- path to install libmbfl headers : http://bugs.php.net/bug.php?id=37103 + +* Fri Apr 7 2006 Joe Orton 5.1.2-5.1 +- fix use of LDAP on 64-bit platforms (#181518) + +* Sun Apr 02 2006 Remi Collet 5.1.2-5.fc5.remi +- add dbase, readline & tidy from php-extras +- build for FC5 (for mssql & oci8 only) + +* Tue Feb 28 2006 Joe Orton 5.1.2-5 +- provide php-api (#183227) +- add provides for all builtin modules (Tim Jackson, #173804) +- own %%{_libdir}/php/pear for PEAR packages (per #176733) +- add obsoletes to allow upgrade from FE4 PDO packages (#181863) + +* Fri Feb 10 2006 Jesse Keating - 5.1.2-4.3 +- bump again for double-long bug on ppc(64) + +* Tue Feb 07 2006 Jesse Keating - 5.1.2-4.1 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Tue Jan 31 2006 Joe Orton 5.1.2-4 +- rebuild for new libc-client soname + +* Mon Jan 16 2006 Joe Orton 5.1.2-3 +- only build xmlreader and xmlwriter shared (#177810) + +* Sat Jan 14 2006 Remi Collet 5.1.2-2.fc{3,4}.remi +- update to 5.1.2 (see #177810) + +* Fri Jan 13 2006 Joe Orton 5.1.2-2 +- update to 5.1.2 + +* Sat Jan 7 2006 Remi Collet 5.1.1-2.fc{3,4}.remi +- rebuild with mhash and mcrypt + +* Thu Jan 5 2006 Joe Orton 5.1.1-8 +- rebuild again + +* Mon Jan 2 2006 Joe Orton 5.1.1-7 +- rebuild for new net-snmp + +* Mon Dec 12 2005 Joe Orton 5.1.1-6 +- enable short_open_tag in default php.ini again (#175381) + +* Fri Dec 09 2005 Jesse Keating +- rebuilt + +* Thu Dec 8 2005 Joe Orton 5.1.1-5 +- require net-snmp for php-snmp (#174800) + +* Sun Dec 4 2005 Joe Orton 5.1.1-4 +- add /usr/share/pear back to hard-coded include_path (#174885) + +* Sat Dec 3 2005 Remi Collet 5.1.1-2.fc#.remi +- rebuild for FC3 et FC4 (with oci8 and mssql) + +* Mon Nov 28 2005 Joe Orton 5.1.1-2 +- update to 5.1.1 +- remove pear subpackage +- enable pdo extensions (php-pdo subpackage) +- remove non-standard conditional module builds +- enable xmlreader extension + +* Sat Oct 29 2005 Remi Collet 5.1.0-0.200510291230.fc#.remi +- php5-200510291230 for FC4 & FC3 +- pear from php-5.0.5 (yes i know...) +- using mysql-5.0.15, oracle-instantclient-10.2.0.1, freetds-0.63 +- DB-1.7.6, HTTP-1.3.6, Mail-1.1.9, XML_Parser-1.2.7 +- Net_Socket-1.0.6, Net_SMTP-1.2.7.tgz, XML_RPC-1.4.3 + +* Sat Sep 3 2005 Remi Collet 5.1.0-0.200509030830.FC4.remi +- php5-200509030830 for FC3 & FC4 + +* Mon Aug 15 2005 Joe Orton 5.0.4-10.4 +- pear: update to XML_RPC 1.4.0 (CAN-2005-2498, #165847) +- use /etc/httpd/conf/magic for mime_magic (#163116) + +* Sat Jul 9 2005 Remi Collet 5.0.4-10.3.FC3 +- rebuilt for FC3 + +* Mon Jul 4 2005 Joe Orton 5.0.4-10.3 +- pear: update to XML_RPC 1.3.1 (CAN-2005-1921, #162045) +- update bundled shtool to 2.0.2 (CAN-2005-1751, #158998) + +* Tue Jun 21 2005 Joe Orton 5.0.4-10.2 +- fix imports from dom module (Rob Richards, #161447) +- fix detection and support for ldap_start_tls (#160527) +- fix imagettftext et al (upstream, #161001) +- mark php.ini and php.conf as noreplace again for updates + +* Fri May 6 2005 Joe Orton 5.0.4-10 +- disable RPATHs in shared extensions (#156974) + +* Tue May 3 2005 Joe Orton 5.0.4-9 +- build simplexml_import_dom even with shared dom (#156434) +- prevent truncation of copied files to ~2Mb (#155916) +- install /usr/bin/php from CLI build alongside CGI +- enable sysvmsg extension (#142988) + +* Mon Apr 25 2005 Joe Orton 5.0.4-8 +- prevent build of builtin dba as well as shared extension + +* Wed Apr 13 2005 Joe Orton 5.0.4-7 +- split out dba and bcmath extensions into subpackages +- BuildRequire gcc-c++ to avoid AC_PROG_CXX{,CPP} failure (#155221) +- pear: update to DB-1.7.6 +- enable FastCGI support in /usr/bin/php-cgi (#149596) + +* Wed Apr 13 2005 Joe Orton 5.0.4-6 +- build /usr/bin/php with the CLI SAPI, and add /usr/bin/php-cgi, + built with the CGI SAPI (thanks to Edward Rudd, #137704) +- add php(1) man page for CLI +- fix more test cases to use -n when invoking php + +* Wed Apr 13 2005 Joe Orton 5.0.4-5 +- rebuild for new libpq soname + +* Tue Apr 12 2005 Joe Orton 5.0.4-4 +- bundle from PEAR: HTTP, Mail, XML_Parser, Net_Socket, Net_SMTP +- snmp: disable MSHUTDOWN function to prevent error_log noise (#153988) +- mysqli: add fix for crash on x86_64 (Georg Richter, upstream #32282) + +* Mon Apr 11 2005 Joe Orton 5.0.4-3 +- build shared objects as PIC (#154195) + +* Mon Apr 4 2005 Joe Orton 5.0.4-2 +- fix PEAR installation and bundle PEAR DB-1.7.5 package + +* Fri Apr 1 2005 Joe Orton 5.0.4-1 +- update to 5.0.4 (#153068) +- add .phps AddType to php.conf (#152973) +- better gcc4 fix for libxmlrpc + +* Wed Mar 30 2005 Joe Orton 5.0.3-5 +- BuildRequire mysql-devel >= 4.1 +- don't mark php.ini as noreplace to make upgrades work (#152171) +- fix subpackage descriptions (#152628) +- fix memset(,,0) in Zend (thanks to Dave Jones) +- fix various compiler warnings in Zend + +* Thu Mar 24 2005 Joe Orton 5.0.3-4 +- package mysqli extension in php-mysql +- really enable pcntl (#142903) +- don't build with --enable-safe-mode (#148969) +- use "Instant Client" libraries for oci8 module (Kai Bolay, #149873) + +* Fri Feb 18 2005 Joe Orton 5.0.3-3 +- fix build with GCC 4 + +* Wed Feb 9 2005 Joe Orton 5.0.3-2 +- install the ext/gd headers (#145891) +- enable pcntl extension in /usr/bin/php (#142903) +- add libmbfl array arithmetic fix (dcb314@hotmail.com, #143795) +- add BuildRequire for recent pcre-devel (#147448) + +* Wed Jan 12 2005 Joe Orton 5.0.3-1 +- update to 5.0.3 (thanks to Robert Scheck et al, #143101) +- enable xsl extension (#142174) +- package both the xsl and dom extensions in php-xml +- enable soap extension, shared (php-soap package) (#142901) +- add patches from upstream 5.0 branch: + * Zend_strtod.c compile fixes + * correct php_sprintf return value usage + +* Mon Nov 22 2004 Joe Orton 5.0.2-8 +- update for db4-4.3 (Robert Scheck, #140167) +- build against mysql-devel +- run tests in %%check + +* Wed Nov 10 2004 Joe Orton 5.0.2-7 +- truncate changelog at 4.3.1-1 +- merge from 4.3.x package: + - enable mime_magic extension and Require: file (#130276) + +* Mon Nov 8 2004 Joe Orton 5.0.2-6 +- fix dom/sqlite enable/without confusion + +* Mon Nov 8 2004 Joe Orton 5.0.2-5 +- fix phpize installation for lib64 platforms +- add fix for segfault in variable parsing introduced in 5.0.2 + +* Mon Nov 8 2004 Joe Orton 5.0.2-4 +- update to 5.0.2 (#127980) +- build against mysqlclient10-devel +- use new RTLD_DEEPBIND to load extension modules +- drop explicit requirement for elfutils-devel +- use AddHandler in default conf.d/php.conf (#135664) +- "fix" round() fudging for recent gcc on x86 +- disable sqlite pending audit of warnings and subpackage split + +* Fri Sep 17 2004 Joe Orton 5.0.1-4 +- don't build dom extension into 2.0 SAPI + +* Fri Sep 17 2004 Joe Orton 5.0.1-3 +- ExclusiveArch: x86 ppc x86_64 for the moment + +* Fri Sep 17 2004 Joe Orton 5.0.1-2 +- fix default extension_dir and conf.d/php.conf + +* Thu Sep 9 2004 Joe Orton 5.0.1-1 +- update to 5.0.1 +- only build shared modules once +- put dom extension in php-dom subpackage again +- move extension modules into %%{_libdir}/php/modules +- don't use --with-regex=system, it's ignored for the apache* SAPIs -- cgit