diff --git a/.cvsignore b/.cvsignore index 52c90b8..51eaf62 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -php-5.2.10.tar.bz2 +php-5.3.0.tar.bz2 diff --git a/php-5.2.10-gnusrc.patch b/php-5.2.10-gnusrc.patch deleted file mode 100644 index c397d22..0000000 --- a/php-5.2.10-gnusrc.patch +++ /dev/null @@ -1,113 +0,0 @@ -diff -up php-5.2.10/configure.in.gnusrc php-5.2.10/configure.in ---- php-5.2.10/configure.in.gnusrc 2009-06-17 14:22:41.000000000 +0200 -+++ php-5.2.10/configure.in 2009-06-21 09:59:48.000000000 +0200 -@@ -58,6 +58,8 @@ AC_DEFUN([PHP_EXT_DIR],[ext/$1])dnl - 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 -up php-5.2.10/ext/interbase/interbase.c.gnusrc php-5.2.10/ext/interbase/interbase.c ---- php-5.2.10/ext/interbase/interbase.c.gnusrc 2008-12-31 12:17:38.000000000 +0100 -+++ php-5.2.10/ext/interbase/interbase.c 2009-06-21 09:59:48.000000000 +0200 -@@ -24,7 +24,6 @@ - #include "config.h" - #endif - --#define _GNU_SOURCE - - #include "php.h" - -diff -up php-5.2.10/ext/pdo_firebird/firebird_driver.c.gnusrc php-5.2.10/ext/pdo_firebird/firebird_driver.c ---- php-5.2.10/ext/pdo_firebird/firebird_driver.c.gnusrc 2009-04-18 20:56:58.000000000 +0200 -+++ php-5.2.10/ext/pdo_firebird/firebird_driver.c 2009-06-21 10:01:52.000000000 +0200 -@@ -22,7 +22,6 @@ - #include "config.h" - #endif - --#define _GNU_SOURCE - - #include "php.h" - #ifdef ZEND_ENGINE_2 -diff -up php-5.2.10/ext/standard/file.c.gnusrc php-5.2.10/ext/standard/file.c ---- php-5.2.10/ext/standard/file.c.gnusrc 2009-05-24 18:02:22.000000000 +0200 -+++ php-5.2.10/ext/standard/file.c 2009-06-21 09:59:48.000000000 +0200 -@@ -118,7 +118,6 @@ php_file_globals file_globals; - - #ifdef HAVE_FNMATCH - #ifndef _GNU_SOURCE --#define _GNU_SOURCE - #endif - #include - #endif -diff -up php-5.2.10/ext/zlib/zlib_fopen_wrapper.c.gnusrc php-5.2.10/ext/zlib/zlib_fopen_wrapper.c ---- php-5.2.10/ext/zlib/zlib_fopen_wrapper.c.gnusrc 2009-01-20 16:43:05.000000000 +0100 -+++ php-5.2.10/ext/zlib/zlib_fopen_wrapper.c 2009-06-21 09:59:48.000000000 +0200 -@@ -19,8 +19,6 @@ - - /* $Id: zlib_fopen_wrapper.c,v 1.46.2.1.2.7 2009/01/20 15:43:05 felipe Exp $ */ - --#define _GNU_SOURCE -- - #include "php.h" - #include "php_zlib.h" - #include "fopen_wrappers.h" -diff -up php-5.2.10/main/php.h.gnusrc php-5.2.10/main/php.h ---- php-5.2.10/main/php.h.gnusrc 2008-12-31 12:17:47.000000000 +0100 -+++ php-5.2.10/main/php.h 2009-06-21 09:59:48.000000000 +0200 -@@ -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 -up php-5.2.10/main/streams/cast.c.gnusrc php-5.2.10/main/streams/cast.c ---- php-5.2.10/main/streams/cast.c.gnusrc 2009-06-03 10:59:19.000000000 +0200 -+++ php-5.2.10/main/streams/cast.c 2009-06-21 10:02:10.000000000 +0200 -@@ -18,7 +18,6 @@ - - /* $Id: cast.c,v 1.12.2.1.2.6 2009/06/03 08:59:19 kalle Exp $ */ - --#define _GNU_SOURCE - #include "php.h" - #include "php_globals.h" - #include "php_network.h" -diff -up php-5.2.10/main/streams/memory.c.gnusrc php-5.2.10/main/streams/memory.c ---- php-5.2.10/main/streams/memory.c.gnusrc 2009-05-16 22:28:02.000000000 +0200 -+++ php-5.2.10/main/streams/memory.c 2009-06-21 10:02:25.000000000 +0200 -@@ -18,7 +18,6 @@ - - /* $Id: memory.c,v 1.8.2.6.2.21 2009/05/16 20:28:02 lbarnaud Exp $ */ - --#define _GNU_SOURCE - #include "php.h" - - PHPAPI int php_url_decode(char *str, int len); -diff -up php-5.2.10/main/streams/streams.c.gnusrc php-5.2.10/main/streams/streams.c ---- php-5.2.10/main/streams/streams.c.gnusrc 2009-05-17 16:59:24.000000000 +0200 -+++ php-5.2.10/main/streams/streams.c 2009-06-21 10:02:42.000000000 +0200 -@@ -21,7 +21,6 @@ - - /* $Id: streams.c,v 1.82.2.6.2.38 2009/05/17 14:59:24 lbarnaud Exp $ */ - --#define _GNU_SOURCE - #include "php.h" - #include "php_globals.h" - #include "php_network.h" -diff -up php-5.2.10/Zend/zend_language_parser.c.gnusrc php-5.2.10/Zend/zend_language_parser.c ---- php-5.2.10/Zend/zend_language_parser.c.gnusrc 2009-06-17 14:35:33.000000000 +0200 -+++ php-5.2.10/Zend/zend_language_parser.c 2009-06-21 09:59:48.000000000 +0200 -@@ -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.4-easter.patch b/php-5.2.4-easter.patch deleted file mode 100644 index a540d04..0000000 --- a/php-5.2.4-easter.patch +++ /dev/null @@ -1,482 +0,0 @@ ---- 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.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.8-install.patch b/php-5.2.8-install.patch deleted file mode 100644 index ad615c4..0000000 --- a/php-5.2.8-install.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- 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 deleted file mode 100644 index 7a14eb5..0000000 --- a/php-5.2.8-phpize64.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- 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 deleted file mode 100644 index 024c54b..0000000 --- a/php-5.2.8-recode.patch +++ /dev/null @@ -1,19 +0,0 @@ - -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-5.3.0-easter.patch b/php-5.3.0-easter.patch new file mode 100644 index 0000000..9a2ca72 --- /dev/null +++ b/php-5.3.0-easter.patch @@ -0,0 +1,689 @@ +diff -up php-5.3.0/ext/standard/basic_functions.c.easter php-5.3.0/ext/standard/basic_functions.c +--- php-5.3.0/ext/standard/basic_functions.c.easter 2009-06-20 08:07:35.000000000 +0200 ++++ php-5.3.0/ext/standard/basic_functions.c 2009-07-12 13:46:08.000000000 +0200 +@@ -1547,9 +1547,6 @@ ZEND_END_ARG_INFO() + ZEND_BEGIN_ARG_INFO(arginfo_php_real_logo_guid, 0) + ZEND_END_ARG_INFO() + +-ZEND_BEGIN_ARG_INFO(arginfo_php_egg_logo_guid, 0) +-ZEND_END_ARG_INFO() +- + ZEND_BEGIN_ARG_INFO(arginfo_zend_logo_guid, 0) + ZEND_END_ARG_INFO() + +@@ -2695,7 +2692,6 @@ const zend_function_entry basic_function + 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 -up php-5.3.0/ext/standard/info.c.easter php-5.3.0/ext/standard/info.c +--- php-5.3.0/ext/standard/info.c.easter 2009-01-17 03:05:13.000000000 +0100 ++++ php-5.3.0/ext/standard/info.c 2009-07-12 13:46:11.000000000 +0200 +@@ -1268,21 +1268,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); + + } + /* }}} */ +@@ -1313,18 +1299,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_parse_parameters_none() == FAILURE) { +- return; +- } +- +- 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) +diff -up php-5.3.0/ext/standard/info.h.easter php-5.3.0/ext/standard/info.h +--- php-5.3.0/ext/standard/info.h.easter 2008-12-31 12:15:45.000000000 +0100 ++++ php-5.3.0/ext/standard/info.h 2009-07-12 13:45:34.000000000 +0200 +@@ -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); +diff -up php-5.3.0/main/logos.h.easter php-5.3.0/main/logos.h +--- php-5.3.0/main/logos.h.easter 2008-12-31 12:15:47.000000000 +0100 ++++ php-5.3.0/main/logos.h 2009-07-12 13:46:15.000000000 +0200 +@@ -492,589 +492,3 @@ static const unsigned char php_logo[] = + 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, +- 231, 255, 0, 18, 25, 33, 32, 30, 34, 28, +- 33, 44, 15, 35, 71, 6, 37, 85, 37, 40, +- 47, 34, 41, 53, 41, 40, 43, 9, 47, 109, +- 30, 45, 68, 21, 48, 84, 51, 46, 55, 43, +- 49, 59, 31, 59, 98, 15, 61, 128, 58, 55, +- 69, 50, 57, 74, 0, 66, 144, 56, 58, 60, +- 54, 59, 71, 32, 66, 113, 60, 65, 67, 63, +- 65, 84, 63, 68, 79, 28, 79, 145, 15, 82, +- 162, 75, 72, 98, 68, 78, 86, 74, 77, 88, +- 50, 82, 122, 41, 85, 134, 76, 78, 108, 70, +- 83, 101, 5, 94, 190, 0, 95, 197, 86, 80, +- 101, 28, 92, 159, 80, 84, 96, 83, 83, 115, +- 81, 87, 89, 22, 97, 183, 86, 88, 85, 0, +- 102, 210, 8, 101, 204, 24, 100, 177, 85, 90, +- 127, 35, 101, 169, 42, 100, 159, 88, 92, 103, +- 0, 107, 216, 69, 95, 132, 0, 108, 210, 84, +- 93, 112, 94, 90, 117, 18, 105, 201, 96, 92, +- 105, 89, 96, 98, 94, 93, 135, 94, 94, 126, +- 30, 106, 210, 7, 112, 222, 33, 108, 198, 16, +- 114, 217, 27, 113, 198, 24, 113, 209, 59, 108, +- 159, 96, 100, 138, 0, 120, 229, 44, 112, 180, +- 49, 112, 171, 71, 108, 148, 99, 104, 115, 90, +- 106, 125, 27, 115, 232, 100, 102, 147, 42, 115, +- 192, 86, 110, 137, 9, 123, 239, 106, 108, 105, +- 105, 105, 138, 33, 118, 228, 12, 125, 227, 48, +- 117, 208, 16, 126, 222, 37, 120, 224, 20, 125, +- 235, 35, 123, 213, 50, 121, 190, 43, 123, 206, +- 40, 123, 220, 105, 110, 160, 59, 122, 182, 78, +- 119, 158, 44, 122, 233, 3, 134, 250, 112, 112, +- 151, 73, 123, 175, 113, 118, 114, 51, 128, 205, +- 34, 129, 246, 11, 136, 245, 34, 130, 240, 113, +- 117, 149, 111, 116, 166, 111, 119, 141, 48, 130, +- 221, 38, 132, 235, 53, 130, 215, 97, 124, 146, +- 116, 122, 124, 117, 121, 131, 54, 130, 229, 41, +- 135, 232, 68, 130, 223, 46, 135, 246, 65, 134, +- 202, 42, 137, 241, 75, 131, 205, 124, 121, 161, +- 101, 125, 191, 86, 128, 210, 121, 122, 169, 105, +- 128, 157, 121, 122, 180, 114, 124, 181, 94, 128, +- 201, 81, 134, 185, 46, 138, 252, 76, 135, 195, +- 34, 142, 252, 62, 137, 229, 63, 138, 217, 33, +- 144, 247, 58, 139, 223, 56, 141, 246, 54, 143, +- 234, 57, 143, 241, 102, 135, 193, 129, 130, 176, +- 122, 136, 144, 46, 148, 252, 45, 149, 246, 118, +- 133, 191, 65, 146, 231, 73, 146, 216, 129, 133, +- 185, 135, 135, 156, 69, 148, 226, 44, 153, 255, +- 94, 143, 216, 132, 136, 175, 88, 146, 207, 137, +- 139, 136, 93, 146, 197, 95, 147, 188, 137, 139, +- 150, 104, 146, 178, 122, 143, 172, 135, 139, 191, +- 57, 156, 254, 67, 154, 245, 70, 154, 239, 134, +- 141, 180, 117, 145, 201, 120, 146, 190, 79, 154, +- 233, 140, 141, 188, 129, 144, 194, 142, 142, 176, +- 137, 147, 156, 88, 155, 222, 82, 157, 230, 93, +- 157, 218, 66, 162, 253, 100, 157, 210, 77, 161, +- 247, 55, 168, 255, 81, 162, 241, 148, 148, 195, +- 145, 149, 202, 127, 156, 204, 77, 166, 255, 142, +- 155, 177, 141, 153, 200, 123, 160, 193, 73, 171, +- 255, 93, 167, 240, 96, 167, 234, 152, 158, 160, +- 101, 167, 228, 119, 164, 206, 155, 158, 171, 110, +- 167, 219, 156, 155, 203, 89, 172, 252, 128, 164, +- 219, 151, 163, 174, 81, 178, 255, 158, 162, 202, +- 102, 175, 249, 93, 178, 251, 108, 175, 237, 103, +- 177, 244, 166, 168, 165, 97, 182, 255, 87, 185, +- 255, 149, 174, 216, 125, 181, 235, 110, 185, 252, +- 117, 183, 254, 171, 172, 209, 166, 175, 197, 103, +- 190, 255, 174, 176, 189, 140, 183, 221, 128, 184, +- 248, 120, 187, 249, 179, 180, 184, 115, 193, 253, +- 170, 183, 193, 174, 181, 215, 107, 197, 255, 135, +- 191, 246, 151, 192, 219, 187, 183, 213, 128, 197, +- 253, 121, 202, 255, 147, 198, 239, 188, 191, 219, +- 148, 200, 252, 192, 193, 197, 134, 205, 254, 171, +- 199, 236, 183, 199, 218, 163, 207, 251, 142, 213, +- 255, 158, 211, 253, 195, 205, 217, 166, 211, 245, +- 205, 204, 228, 153, 218, 255, 190, 210, 236, 186, +- 212, 231, 177, 213, 248, 162, 224, 255, 188, 221, +- 250, 214, 219, 221, 214, 219, 233, 174, 229, 254, +- 198, 225, 247, 209, 226, 248, 186, 233, 251, 227, +- 230, 239, 225, 241, 252, 253, 255, 252, 255, 255, +- 255, 33, 249, 4, 1, 10, 0, 255, 0, 44, +- 0, 0, 0, 0, 120, 0, 67, 0, 0, 8, +- 254, 0, 255, 9, 28, 72, 176, 160, 193, 131, +- 8, 19, 42, 92, 200, 176, 161, 195, 135, 16, +- 35, 74, 156, 72, 177, 162, 197, 139, 22, 131, +- 105, 12, 134, 177, 163, 199, 143, 193, 164, 73, +- 227, 38, 141, 28, 56, 112, 228, 76, 146, 20, +- 41, 205, 152, 75, 99, 183, 100, 201, 50, 101, +- 202, 147, 77, 79, 166, 102, 205, 250, 200, 19, +- 100, 73, 114, 239, 238, 221, 123, 71, 148, 104, +- 202, 163, 224, 86, 138, 124, 25, 115, 166, 205, +- 72, 145, 246, 72, 221, 195, 39, 207, 30, 69, +- 158, 118, 246, 220, 202, 208, 24, 184, 160, 252, +- 248, 9, 29, 59, 212, 100, 75, 99, 53, 159, +- 66, 93, 203, 182, 109, 84, 169, 124, 248, 156, +- 57, 163, 165, 174, 150, 60, 138, 76, 113, 221, +- 251, 207, 24, 183, 119, 97, 3, 135, 125, 71, +- 78, 90, 76, 62, 142, 70, 141, 18, 53, 109, +- 170, 227, 199, 144, 35, 75, 157, 91, 87, 137, +- 229, 28, 74, 190, 228, 229, 139, 209, 43, 96, +- 193, 247, 10, 203, 114, 212, 167, 82, 47, 93, +- 197, 138, 81, 163, 166, 173, 19, 47, 201, 176, +- 99, 59, 166, 171, 36, 135, 237, 22, 45, 114, +- 216, 209, 203, 25, 98, 176, 191, 66, 195, 134, +- 54, 230, 233, 150, 179, 100, 197, 106, 181, 90, +- 158, 171, 57, 179, 110, 231, 124, 185, 145, 77, +- 157, 186, 150, 218, 45, 76, 104, 111, 145, 71, +- 86, 239, 133, 198, 200, 254, 145, 189, 199, 205, +- 212, 212, 115, 244, 232, 157, 107, 86, 172, 185, +- 234, 92, 197, 154, 137, 11, 231, 11, 77, 245, +- 251, 178, 207, 40, 201, 254, 225, 131, 134, 39, +- 138, 124, 103, 80, 73, 68, 13, 37, 141, 39, +- 144, 213, 115, 14, 60, 235, 116, 211, 12, 123, +- 197, 136, 67, 141, 106, 226, 156, 51, 78, 16, +- 92, 208, 194, 7, 126, 28, 70, 166, 159, 9, +- 26, 132, 104, 130, 29, 2, 254, 67, 32, 81, +- 224, 200, 18, 91, 56, 240, 208, 35, 78, 51, +- 238, 49, 40, 223, 58, 240, 88, 99, 132, 31, +- 207, 168, 131, 14, 55, 206, 56, 115, 203, 41, +- 167, 172, 229, 73, 36, 158, 196, 133, 216, 83, +- 29, 58, 166, 69, 11, 26, 88, 96, 129, 6, +- 95, 112, 230, 213, 81, 210, 188, 21, 27, 59, +- 208, 208, 179, 14, 123, 205, 81, 227, 96, 55, +- 235, 208, 227, 14, 23, 126, 244, 162, 204, 49, +- 200, 64, 3, 13, 51, 194, 232, 162, 139, 50, +- 105, 106, 131, 13, 54, 225, 132, 227, 205, 157, +- 207, 96, 243, 204, 48, 195, 244, 72, 28, 126, +- 103, 48, 233, 164, 6, 36, 246, 20, 210, 81, +- 198, 224, 87, 143, 48, 12, 78, 8, 75, 43, +- 242, 21, 3, 38, 60, 227, 116, 224, 2, 22, +- 135, 32, 162, 41, 33, 112, 208, 129, 72, 35, +- 135, 8, 242, 72, 40, 163, 150, 82, 202, 42, +- 186, 172, 178, 203, 46, 169, 170, 154, 76, 50, +- 254, 123, 158, 194, 97, 14, 22, 60, 240, 192, +- 7, 188, 117, 228, 23, 74, 198, 88, 41, 219, +- 56, 189, 36, 19, 203, 57, 235, 80, 147, 11, +- 44, 176, 20, 211, 96, 51, 240, 192, 195, 14, +- 5, 36, 88, 129, 8, 33, 116, 200, 81, 198, +- 181, 101, 208, 1, 199, 27, 220, 110, 59, 69, +- 22, 130, 20, 82, 200, 35, 165, 76, 34, 110, +- 33, 147, 64, 162, 174, 42, 192, 200, 122, 223, +- 25, 38, 216, 186, 192, 19, 24, 133, 52, 82, +- 149, 247, 161, 179, 203, 35, 136, 8, 243, 72, +- 57, 244, 80, 179, 220, 39, 185, 192, 163, 77, +- 55, 244, 236, 227, 14, 5, 17, 0, 65, 7, +- 25, 101, 120, 81, 197, 196, 216, 82, 97, 49, +- 21, 81, 68, 145, 69, 22, 105, 116, 236, 113, +- 26, 161, 148, 59, 136, 24, 98, 64, 210, 203, +- 40, 28, 106, 161, 193, 2, 11, 88, 144, 171, +- 68, 246, 74, 163, 226, 125, 207, 156, 105, 8, +- 25, 212, 54, 218, 202, 39, 4, 227, 115, 142, +- 54, 233, 177, 211, 65, 4, 51, 84, 113, 109, +- 21, 77, 52, 1, 69, 23, 19, 15, 1, 197, +- 16, 84, 12, 17, 197, 182, 112, 8, 146, 198, +- 20, 86, 147, 139, 204, 49, 169, 78, 50, 200, +- 32, 144, 56, 210, 97, 14, 15, 176, 28, 37, +- 204, 198, 180, 228, 107, 108, 158, 60, 19, 202, +- 43, 159, 200, 225, 133, 28, 175, 224, 3, 15, +- 50, 176, 80, 2, 75, 254, 51, 94, 34, 140, +- 143, 208, 68, 119, 129, 45, 210, 93, 48, 13, +- 197, 210, 60, 240, 0, 133, 15, 111, 104, 138, +- 8, 28, 27, 79, 1, 199, 35, 163, 234, 18, +- 139, 155, 233, 206, 177, 97, 202, 22, 28, 112, +- 128, 14, 17, 5, 227, 210, 204, 213, 69, 178, +- 11, 40, 160, 16, 194, 8, 33, 134, 52, 17, +- 142, 122, 197, 236, 156, 11, 51, 185, 52, 3, +- 244, 62, 128, 207, 16, 49, 182, 93, 36, 125, +- 120, 23, 135, 67, 193, 131, 15, 112, 148, 147, +- 143, 58, 216, 8, 3, 249, 198, 89, 192, 1, +- 199, 33, 143, 196, 18, 203, 42, 144, 104, 222, +- 33, 31, 26, 120, 62, 194, 67, 162, 255, 121, +- 159, 35, 149, 104, 58, 135, 21, 100, 64, 92, +- 69, 139, 198, 238, 156, 236, 222, 226, 208, 131, +- 207, 56, 13, 56, 80, 116, 19, 215, 54, 81, +- 197, 24, 73, 23, 126, 248, 16, 62, 248, 144, +- 133, 62, 110, 112, 194, 50, 202, 113, 8, 231, +- 101, 193, 7, 64, 152, 220, 184, 30, 129, 42, +- 93, 168, 66, 108, 29, 50, 129, 231, 52, 208, +- 16, 89, 220, 162, 87, 248, 137, 68, 29, 178, +- 160, 6, 53, 188, 225, 5, 85, 176, 86, 21, +- 232, 1, 15, 113, 228, 98, 57, 173, 104, 143, +- 151, 224, 241, 190, 248, 249, 160, 126, 114, 136, +- 161, 181, 202, 16, 53, 167, 13, 97, 120, 105, +- 184, 7, 7, 12, 224, 4, 111, 192, 65, 114, +- 254, 144, 3, 66, 26, 14, 145, 6, 43, 88, +- 1, 11, 107, 128, 196, 42, 86, 1, 65, 14, +- 181, 224, 0, 1, 160, 160, 66, 100, 114, 139, +- 181, 197, 230, 22, 117, 152, 194, 20, 162, 160, +- 134, 42, 144, 64, 10, 248, 163, 67, 122, 214, +- 17, 187, 79, 232, 45, 23, 226, 16, 7, 62, +- 240, 97, 13, 5, 16, 109, 12, 215, 98, 4, +- 207, 64, 193, 51, 77, 53, 66, 83, 84, 240, +- 65, 26, 218, 113, 1, 3, 180, 1, 27, 144, +- 19, 196, 183, 128, 128, 196, 66, 132, 98, 13, +- 63, 72, 228, 15, 176, 32, 134, 68, 52, 241, +- 62, 45, 8, 64, 0, 106, 144, 144, 89, 152, +- 66, 22, 8, 186, 207, 40, 214, 32, 8, 107, +- 216, 194, 5, 67, 144, 218, 15, 134, 208, 5, +- 68, 184, 15, 30, 205, 120, 148, 25, 97, 1, +- 157, 125, 208, 227, 25, 3, 136, 64, 12, 232, +- 215, 136, 121, 200, 35, 31, 249, 168, 71, 61, +- 242, 33, 143, 118, 108, 67, 30, 208, 128, 195, +- 32, 218, 49, 1, 1, 180, 1, 121, 199, 120, +- 197, 35, 136, 184, 134, 102, 146, 11, 137, 88, +- 80, 228, 37, 104, 145, 36, 13, 72, 178, 80, +- 5, 153, 5, 78, 50, 73, 157, 72, 92, 98, +- 13, 135, 208, 135, 63, 252, 129, 132, 40, 116, +- 193, 105, 192, 11, 5, 62, 92, 217, 140, 157, +- 49, 162, 21, 104, 60, 199, 62, 224, 225, 10, +- 2, 68, 128, 10, 114, 254, 32, 196, 49, 178, +- 113, 129, 11, 112, 224, 159, 37, 224, 192, 6, +- 46, 176, 129, 108, 148, 99, 21, 213, 40, 230, +- 1, 78, 128, 3, 55, 240, 34, 29, 216, 8, +- 197, 36, 122, 81, 10, 114, 61, 2, 93, 107, +- 136, 230, 28, 230, 96, 13, 43, 202, 230, 1, +- 1, 56, 128, 119, 10, 146, 150, 251, 240, 65, +- 21, 88, 200, 194, 60, 198, 233, 143, 84, 164, +- 193, 104, 72, 43, 195, 49, 214, 8, 143, 216, +- 49, 226, 157, 197, 208, 70, 251, 216, 193, 5, +- 2, 100, 160, 10, 129, 64, 4, 54, 54, 81, +- 2, 24, 148, 128, 6, 48, 160, 193, 81, 3, +- 202, 0, 115, 120, 99, 19, 19, 40, 128, 1, +- 74, 208, 79, 6, 20, 32, 12, 222, 8, 133, +- 45, 136, 241, 141, 103, 232, 194, 84, 143, 72, +- 195, 15, 196, 112, 9, 87, 248, 226, 22, 28, +- 58, 3, 20, 183, 71, 144, 89, 16, 201, 163, +- 145, 185, 68, 74, 7, 145, 130, 106, 140, 83, +- 15, 136, 40, 131, 181, 154, 48, 6, 111, 140, +- 145, 61, 173, 72, 214, 131, 210, 83, 41, 2, +- 160, 128, 12, 140, 104, 68, 57, 220, 80, 212, +- 106, 224, 50, 151, 250, 248, 69, 9, 24, 208, +- 6, 126, 28, 225, 2, 1, 32, 70, 53, 126, +- 193, 88, 1, 0, 96, 17, 165, 96, 2, 65, +- 113, 16, 6, 76, 96, 98, 27, 202, 16, 43, +- 89, 51, 193, 10, 82, 108, 174, 58, 38, 144, +- 254, 228, 203, 134, 4, 87, 200, 220, 1, 11, +- 64, 160, 66, 16, 12, 80, 128, 118, 216, 195, +- 5, 141, 40, 31, 182, 216, 145, 30, 23, 181, +- 135, 149, 212, 8, 19, 60, 188, 145, 0, 4, +- 100, 225, 19, 59, 155, 7, 13, 78, 80, 130, +- 109, 60, 67, 24, 141, 128, 67, 33, 204, 81, +- 130, 2, 84, 224, 30, 37, 152, 128, 4, 242, +- 113, 167, 121, 216, 162, 152, 39, 120, 6, 8, +- 4, 192, 128, 13, 112, 160, 159, 6, 192, 68, +- 41, 122, 240, 131, 65, 0, 2, 16, 115, 48, +- 171, 51, 238, 3, 69, 41, 254, 195, 173, 181, +- 125, 12, 31, 122, 0, 132, 25, 248, 192, 3, +- 211, 56, 0, 13, 54, 145, 5, 50, 236, 149, +- 126, 236, 104, 17, 60, 186, 113, 44, 73, 73, +- 120, 29, 174, 136, 37, 28, 102, 215, 10, 121, +- 208, 192, 13, 71, 72, 135, 50, 38, 22, 133, +- 66, 164, 163, 187, 12, 216, 6, 7, 24, 112, +- 132, 114, 192, 33, 13, 144, 248, 69, 1, 0, +- 112, 2, 98, 126, 54, 30, 211, 32, 6, 26, +- 120, 11, 12, 32, 244, 64, 12, 115, 240, 195, +- 18, 174, 0, 8, 87, 144, 226, 20, 164, 147, +- 76, 36, 3, 48, 82, 243, 4, 120, 42, 3, +- 182, 193, 10, 86, 48, 3, 18, 20, 32, 0, +- 2, 32, 129, 26, 200, 80, 133, 194, 53, 129, +- 12, 236, 160, 17, 60, 210, 7, 11, 113, 172, +- 227, 204, 225, 144, 129, 254, 97, 65, 33, 12, +- 129, 165, 131, 3, 55, 112, 131, 45, 142, 81, +- 5, 42, 188, 225, 17, 237, 88, 241, 2, 36, +- 107, 128, 69, 196, 66, 13, 130, 120, 6, 26, +- 60, 187, 136, 106, 120, 22, 23, 186, 224, 90, +- 60, 12, 0, 0, 78, 76, 161, 7, 88, 152, +- 67, 16, 92, 176, 4, 34, 92, 97, 11, 91, +- 200, 132, 53, 204, 35, 153, 51, 72, 146, 94, +- 255, 120, 242, 84, 60, 177, 4, 41, 171, 64, +- 5, 59, 0, 2, 5, 18, 128, 1, 56, 220, +- 236, 90, 189, 83, 3, 59, 206, 97, 230, 102, +- 64, 55, 23, 201, 61, 179, 55, 26, 128, 128, +- 52, 188, 162, 24, 204, 128, 196, 52, 56, 0, +- 131, 77, 88, 67, 24, 132, 64, 196, 33, 212, +- 241, 139, 11, 20, 224, 8, 104, 184, 128, 0, +- 170, 129, 8, 53, 100, 193, 25, 16, 0, 0, +- 0, 182, 49, 104, 6, 36, 67, 153, 143, 184, +- 68, 2, 0, 192, 133, 52, 160, 0, 11, 87, +- 120, 129, 11, 88, 192, 110, 18, 144, 128, 8, +- 153, 118, 70, 162, 34, 99, 129, 40, 10, 196, +- 164, 128, 232, 193, 10, 98, 16, 131, 29, 248, +- 27, 8, 133, 224, 32, 33, 132, 123, 173, 70, +- 172, 35, 141, 235, 64, 6, 116, 97, 65, 172, +- 51, 103, 98, 0, 25, 120, 133, 48, 218, 163, +- 138, 84, 252, 51, 27, 232, 160, 6, 51, 160, +- 193, 142, 108, 28, 97, 2, 12, 176, 7, 18, +- 254, 250, 136, 142, 14, 102, 161, 19, 140, 102, +- 64, 59, 178, 189, 1, 109, 188, 34, 20, 133, +- 240, 131, 103, 57, 113, 136, 31, 44, 97, 14, +- 91, 32, 1, 187, 89, 224, 110, 23, 144, 160, +- 8, 96, 240, 3, 46, 146, 44, 149, 15, 4, +- 96, 1, 247, 174, 206, 41, 176, 96, 131, 29, +- 240, 32, 6, 42, 224, 247, 14, 124, 16, 5, +- 58, 88, 221, 193, 85, 240, 2, 51, 194, 113, +- 142, 110, 72, 40, 23, 202, 233, 70, 179, 202, +- 209, 1, 2, 212, 129, 25, 108, 202, 133, 55, +- 208, 192, 129, 18, 152, 227, 30, 230, 216, 6, +- 49, 156, 64, 108, 8, 164, 226, 30, 48, 152, +- 192, 6, 158, 65, 7, 53, 88, 1, 9, 158, +- 61, 194, 52, 102, 76, 12, 109, 8, 35, 22, +- 144, 232, 196, 161, 225, 32, 134, 43, 92, 161, +- 8, 47, 120, 1, 17, 212, 237, 110, 12, 252, +- 28, 211, 156, 128, 140, 18, 36, 41, 144, 215, +- 194, 198, 19, 115, 0, 194, 10, 84, 192, 131, +- 33, 240, 187, 223, 62, 160, 66, 178, 7, 14, +- 49, 50, 208, 233, 96, 231, 152, 16, 123, 230, +- 83, 142, 12, 59, 32, 22, 26, 103, 70, 43, +- 230, 1, 130, 182, 95, 128, 6, 19, 184, 64, +- 240, 139, 234, 134, 120, 84, 99, 197, 109, 240, +- 134, 26, 232, 80, 7, 11, 104, 123, 27, 72, +- 0, 192, 6, 228, 49, 14, 61, 165, 131, 6, +- 0, 144, 0, 43, 4, 254, 49, 136, 43, 16, +- 33, 8, 30, 136, 60, 188, 225, 237, 238, 23, +- 20, 97, 11, 153, 127, 204, 230, 3, 240, 223, +- 234, 140, 2, 11, 83, 142, 58, 15, 202, 80, +- 133, 167, 199, 96, 8, 141, 128, 155, 33, 62, +- 65, 6, 67, 112, 29, 26, 21, 114, 14, 204, +- 144, 83, 212, 112, 14, 222, 80, 118, 98, 128, +- 12, 180, 35, 12, 185, 32, 15, 16, 0, 103, +- 71, 0, 98, 71, 0, 3, 48, 224, 6, 219, +- 48, 15, 143, 32, 9, 28, 48, 1, 188, 80, +- 14, 84, 160, 6, 137, 192, 104, 23, 144, 14, +- 217, 38, 1, 188, 112, 130, 188, 0, 3, 152, +- 149, 10, 230, 50, 8, 150, 22, 4, 50, 0, +- 6, 91, 64, 4, 46, 224, 2, 145, 7, 126, +- 65, 16, 4, 91, 128, 11, 234, 199, 121, 255, +- 16, 23, 178, 81, 7, 82, 32, 2, 168, 22, +- 3, 62, 48, 4, 100, 160, 6, 79, 23, 5, +- 135, 240, 10, 173, 48, 45, 251, 7, 13, 231, +- 160, 38, 102, 118, 14, 117, 82, 39, 126, 0, +- 113, 186, 128, 12, 12, 88, 11, 185, 176, 13, +- 19, 112, 3, 37, 192, 15, 185, 84, 15, 243, +- 16, 15, 234, 112, 12, 136, 80, 10, 237, 64, +- 12, 196, 112, 15, 215, 64, 5, 112, 128, 11, +- 22, 208, 103, 182, 32, 1, 0, 192, 0, 239, +- 5, 80, 23, 208, 6, 207, 80, 8, 96, 3, +- 111, 70, 128, 6, 118, 192, 4, 96, 0, 121, +- 254, 36, 240, 2, 96, 176, 33, 150, 192, 5, +- 92, 224, 43, 235, 39, 16, 103, 224, 121, 144, +- 49, 10, 63, 48, 3, 163, 23, 3, 195, 243, +- 129, 101, 160, 6, 169, 247, 10, 200, 0, 10, +- 204, 209, 10, 194, 16, 14, 201, 195, 34, 7, +- 151, 12, 225, 0, 12, 10, 224, 0, 147, 160, +- 13, 180, 227, 133, 208, 240, 11, 196, 230, 6, +- 253, 112, 12, 159, 208, 119, 86, 103, 8, 214, +- 246, 10, 209, 80, 14, 209, 0, 10, 67, 0, +- 7, 227, 16, 15, 247, 192, 15, 72, 192, 91, +- 246, 176, 13, 169, 176, 8, 110, 144, 10, 214, +- 5, 61, 35, 227, 2, 91, 32, 3, 86, 33, +- 21, 92, 0, 6, 47, 224, 1, 50, 32, 10, +- 176, 17, 137, 63, 72, 137, 142, 113, 10, 98, +- 208, 116, 81, 199, 111, 60, 64, 5, 143, 83, +- 6, 67, 160, 6, 177, 16, 14, 208, 160, 13, +- 106, 194, 12, 200, 160, 12, 218, 112, 12, 82, +- 152, 12, 187, 160, 10, 151, 64, 1, 8, 240, +- 3, 10, 184, 51, 148, 208, 10, 139, 85, 2, +- 37, 176, 9, 253, 32, 12, 134, 80, 6, 251, +- 83, 62, 84, 144, 45, 141, 64, 8, 84, 192, +- 3, 158, 8, 4, 86, 64, 10, 28, 32, 0, +- 56, 224, 13, 194, 176, 11, 222, 80, 14, 202, +- 16, 10, 135, 32, 46, 141, 7, 111, 45, 224, +- 24, 145, 144, 9, 91, 0, 6, 70, 0, 6, +- 112, 101, 116, 72, 247, 254, 15, 123, 112, 6, +- 176, 65, 11, 63, 176, 111, 59, 208, 111, 154, +- 216, 142, 135, 0, 10, 136, 16, 10, 194, 160, +- 13, 201, 160, 13, 117, 34, 14, 208, 128, 12, +- 186, 208, 11, 187, 112, 9, 128, 224, 1, 20, +- 64, 0, 8, 96, 3, 203, 1, 11, 159, 112, +- 83, 175, 80, 15, 52, 208, 118, 196, 144, 15, +- 185, 32, 66, 67, 80, 5, 100, 64, 7, 81, +- 83, 56, 85, 48, 3, 20, 233, 3, 54, 208, +- 3, 157, 192, 0, 0, 64, 12, 208, 0, 10, +- 63, 4, 7, 202, 54, 146, 133, 48, 7, 151, +- 64, 4, 96, 112, 146, 144, 225, 7, 96, 192, +- 5, 226, 40, 21, 245, 38, 69, 158, 48, 23, +- 145, 97, 10, 115, 96, 3, 34, 48, 122, 231, +- 88, 122, 112, 160, 6, 165, 16, 11, 161, 112, +- 12, 202, 112, 9, 151, 16, 14, 226, 32, 143, +- 244, 40, 6, 24, 224, 0, 8, 128, 0, 17, +- 128, 2, 135, 128, 66, 173, 64, 9, 140, 64, +- 9, 185, 208, 15, 196, 144, 10, 191, 192, 15, +- 236, 0, 10, 114, 96, 56, 93, 32, 7, 73, +- 120, 67, 80, 64, 5, 59, 128, 132, 84, 0, +- 4, 107, 48, 104, 5, 240, 13, 194, 0, 10, +- 111, 0, 4, 64, 32, 57, 105, 128, 46, 171, +- 48, 7, 223, 39, 4, 145, 1, 132, 157, 246, +- 105, 2, 49, 11, 115, 33, 142, 167, 240, 3, +- 54, 224, 3, 153, 152, 56, 80, 243, 6, 112, +- 254, 0, 138, 177, 32, 12, 208, 160, 10, 106, +- 130, 13, 0, 24, 14, 197, 128, 148, 107, 208, +- 3, 86, 32, 138, 202, 193, 51, 85, 121, 83, +- 173, 112, 14, 229, 192, 14, 234, 80, 14, 173, +- 160, 87, 101, 0, 60, 33, 148, 132, 112, 32, +- 60, 60, 48, 3, 184, 233, 3, 170, 224, 75, +- 237, 128, 13, 79, 72, 5, 84, 246, 45, 83, +- 0, 136, 221, 71, 4, 50, 64, 147, 29, 178, +- 100, 35, 37, 147, 132, 249, 24, 137, 128, 152, +- 43, 224, 111, 57, 121, 132, 92, 4, 7, 161, +- 160, 12, 111, 162, 11, 115, 32, 153, 199, 176, +- 117, 63, 83, 158, 244, 8, 10, 148, 48, 144, +- 237, 25, 8, 44, 26, 8, 114, 16, 8, 169, +- 193, 8, 11, 41, 56, 133, 195, 3, 244, 99, +- 117, 84, 80, 5, 80, 192, 111, 244, 195, 63, +- 64, 16, 10, 186, 32, 12, 5, 234, 3, 49, +- 48, 3, 195, 153, 6, 88, 48, 50, 240, 246, +- 1, 73, 178, 7, 253, 213, 86, 90, 224, 160, +- 142, 33, 6, 33, 48, 101, 254, 118, 67, 169, +- 39, 8, 175, 208, 132, 210, 179, 11, 189, 176, +- 5, 202, 160, 12, 107, 194, 117, 83, 216, 10, +- 180, 83, 149, 44, 234, 5, 99, 224, 5, 127, +- 224, 5, 110, 58, 6, 178, 89, 6, 74, 51, +- 49, 80, 192, 144, 246, 83, 6, 159, 210, 119, +- 166, 55, 75, 12, 57, 3, 213, 201, 132, 160, +- 160, 6, 81, 48, 4, 254, 51, 48, 3, 89, +- 96, 68, 73, 234, 125, 65, 96, 2, 73, 18, +- 91, 1, 240, 50, 255, 160, 8, 81, 234, 24, +- 142, 176, 4, 33, 32, 2, 137, 57, 3, 84, +- 0, 5, 29, 84, 53, 64, 154, 42, 170, 144, +- 9, 92, 112, 9, 165, 16, 143, 196, 98, 133, +- 12, 184, 51, 104, 170, 166, 99, 176, 166, 115, +- 227, 162, 173, 154, 52, 247, 217, 101, 89, 87, +- 6, 132, 208, 8, 62, 89, 5, 67, 144, 147, +- 19, 195, 3, 43, 96, 3, 81, 240, 10, 141, +- 160, 6, 95, 217, 159, 126, 106, 3, 71, 36, +- 6, 68, 80, 4, 50, 144, 36, 106, 21, 0, +- 108, 5, 165, 147, 42, 21, 166, 96, 169, 83, +- 214, 111, 137, 83, 5, 206, 3, 10, 161, 48, +- 61, 170, 224, 7, 32, 0, 1, 50, 0, 9, +- 186, 64, 39, 86, 104, 120, 202, 161, 170, 140, +- 224, 166, 106, 250, 7, 109, 234, 166, 49, 228, +- 5, 134, 224, 5, 73, 67, 63, 114, 80, 5, +- 183, 154, 58, 55, 164, 2, 177, 73, 6, 80, +- 96, 164, 108, 214, 10, 92, 198, 63, 51, 16, +- 2, 6, 75, 95, 138, 42, 165, 248, 1, 82, +- 34, 117, 16, 166, 80, 23, 155, 115, 11, 87, +- 96, 161, 51, 192, 111, 156, 170, 108, 160, 32, +- 61, 171, 192, 10, 32, 16, 124, 48, 208, 9, +- 189, 128, 148, 208, 16, 14, 176, 72, 59, 55, +- 69, 154, 129, 192, 166, 127, 176, 166, 114, 163, +- 254, 166, 94, 0, 49, 77, 192, 3, 73, 208, +- 4, 115, 67, 6, 160, 128, 171, 132, 160, 6, +- 60, 10, 49, 60, 96, 3, 112, 112, 179, 100, +- 16, 8, 236, 8, 4, 54, 96, 176, 33, 128, +- 2, 40, 192, 2, 68, 160, 4, 213, 116, 77, +- 9, 33, 169, 90, 48, 21, 115, 160, 111, 153, +- 184, 3, 114, 136, 58, 135, 208, 173, 171, 224, +- 10, 253, 132, 6, 81, 113, 10, 172, 240, 38, +- 216, 160, 13, 242, 40, 164, 104, 250, 7, 129, +- 224, 174, 129, 192, 8, 114, 208, 166, 134, 128, +- 63, 17, 147, 56, 77, 32, 155, 132, 32, 138, +- 136, 80, 5, 58, 11, 5, 47, 219, 5, 253, +- 9, 7, 46, 74, 8, 236, 232, 3, 244, 133, +- 2, 71, 139, 180, 44, 16, 4, 73, 178, 100, +- 148, 164, 16, 121, 80, 23, 82, 225, 10, 55, +- 153, 137, 70, 168, 6, 136, 32, 8, 47, 86, +- 8, 165, 160, 9, 19, 96, 6, 142, 193, 7, +- 163, 176, 11, 202, 192, 117, 242, 232, 78, 108, +- 235, 174, 238, 58, 6, 104, 203, 170, 73, 227, +- 5, 73, 48, 179, 65, 139, 171, 175, 80, 109, +- 84, 80, 52, 178, 217, 4, 187, 58, 4, 217, +- 82, 5, 83, 99, 5, 61, 128, 180, 190, 203, +- 2, 46, 192, 180, 78, 36, 73, 254, 197, 184, +- 117, 145, 7, 180, 192, 116, 138, 201, 111, 133, +- 74, 117, 89, 112, 8, 186, 160, 9, 23, 16, +- 25, 159, 171, 83, 240, 254, 120, 66, 104, 58, +- 6, 129, 176, 166, 174, 10, 167, 100, 80, 175, +- 245, 138, 51, 160, 144, 11, 112, 153, 71, 47, +- 84, 62, 49, 91, 122, 116, 0, 60, 81, 0, +- 4, 152, 122, 180, 75, 144, 1, 25, 112, 184, +- 17, 68, 188, 15, 209, 184, 90, 80, 173, 54, +- 80, 168, 167, 39, 60, 22, 243, 6, 208, 43, +- 189, 146, 49, 10, 218, 112, 174, 19, 119, 44, +- 60, 67, 186, 45, 234, 162, 114, 80, 175, 93, +- 86, 6, 159, 0, 10, 177, 11, 7, 81, 112, +- 132, 47, 75, 175, 78, 99, 52, 60, 160, 2, +- 86, 90, 168, 54, 176, 4, 46, 144, 1, 87, +- 112, 141, 213, 113, 6, 245, 102, 111, 16, 33, +- 169, 138, 48, 177, 152, 184, 147, 19, 153, 122, +- 28, 154, 12, 156, 48, 189, 146, 241, 12, 87, +- 8, 13, 26, 215, 30, 237, 89, 11, 200, 128, +- 12, 178, 3, 93, 235, 234, 5, 101, 144, 132, +- 208, 149, 41, 21, 252, 144, 220, 27, 60, 117, +- 250, 116, 161, 228, 163, 132, 116, 5, 46, 144, +- 8, 248, 161, 4, 11, 32, 73, 139, 27, 17, +- 166, 240, 5, 144, 208, 3, 251, 187, 111, 165, +- 39, 135, 136, 240, 10, 146, 41, 192, 146, 113, +- 10, 231, 96, 133, 212, 32, 12, 112, 195, 162, +- 104, 27, 8, 173, 0, 55, 183, 214, 10, 55, +- 85, 149, 79, 200, 173, 144, 99, 96, 170, 35, +- 92, 192, 51, 4, 116, 64, 127, 161, 244, 129, +- 254, 83, 80, 156, 147, 16, 100, 222, 8, 91, +- 80, 116, 0, 103, 51, 17, 193, 192, 10, 145, +- 123, 161, 6, 118, 181, 175, 240, 38, 153, 64, +- 195, 53, 76, 178, 218, 128, 12, 185, 80, 149, +- 109, 251, 7, 132, 32, 7, 134, 240, 7, 49, +- 180, 182, 107, 11, 187, 91, 122, 8, 82, 96, +- 3, 89, 128, 8, 173, 208, 8, 154, 92, 6, +- 141, 208, 8, 129, 96, 8, 3, 103, 117, 207, +- 35, 81, 27, 203, 131, 212, 161, 4, 32, 21, +- 0, 18, 0, 169, 18, 49, 14, 107, 128, 137, +- 251, 150, 122, 87, 43, 12, 245, 8, 12, 27, +- 240, 151, 82, 241, 12, 218, 64, 13, 56, 44, +- 12, 181, 192, 8, 105, 123, 83, 210, 44, 55, +- 160, 204, 162, 148, 64, 48, 185, 16, 10, 161, +- 80, 68, 105, 48, 190, 114, 76, 205, 55, 149, +- 79, 172, 71, 45, 112, 208, 8, 163, 178, 10, +- 201, 128, 203, 176, 161, 5, 39, 60, 73, 30, +- 49, 8, 82, 230, 197, 95, 169, 202, 109, 162, +- 12, 192, 64, 3, 150, 0, 27, 201, 35, 12, +- 108, 34, 12, 210, 220, 162, 55, 229, 162, 110, +- 26, 203, 238, 249, 198, 177, 160, 12, 144, 48, +- 8, 177, 112, 12, 194, 0, 148, 205, 1, 55, +- 210, 44, 205, 229, 67, 7, 201, 6, 42, 12, +- 148, 12, 190, 0, 27, 124, 240, 1, 80, 20, +- 0, 46, 243, 17, 170, 96, 5, 133, 122, 155, +- 31, 168, 202, 14, 141, 254, 12, 189, 128, 4, +- 146, 32, 25, 124, 160, 13, 171, 44, 144, 45, +- 106, 8, 134, 240, 162, 11, 188, 182, 208, 149, +- 66, 229, 169, 13, 151, 160, 10, 247, 88, 10, +- 68, 89, 182, 85, 233, 96, 194, 101, 209, 81, +- 160, 108, 151, 211, 11, 192, 240, 24, 168, 192, +- 7, 42, 243, 209, 11, 144, 200, 30, 145, 12, +- 105, 80, 168, 205, 171, 6, 231, 252, 10, 151, +- 179, 11, 156, 112, 4, 252, 188, 198, 100, 112, +- 205, 46, 26, 208, 114, 243, 162, 238, 233, 133, +- 104, 87, 143, 47, 192, 10, 202, 80, 10, 200, +- 64, 148, 225, 160, 198, 104, 26, 8, 179, 137, +- 183, 114, 120, 8, 166, 162, 212, 190, 66, 43, +- 158, 115, 0, 243, 194, 21, 127, 232, 167, 51, +- 224, 111, 84, 87, 203, 165, 176, 11, 154, 0, +- 3, 220, 244, 24, 189, 16, 206, 14, 214, 182, +- 11, 108, 8, 105, 107, 211, 239, 36, 12, 150, +- 29, 39, 30, 176, 5, 172, 208, 11, 14, 205, +- 12, 218, 80, 11, 235, 73, 9, 44, 42, 155, +- 134, 128, 49, 181, 60, 9, 170, 48, 10, 230, +- 161, 5, 31, 240, 0, 125, 253, 0, 160, 182, +- 23, 147, 64, 180, 23, 58, 117, 84, 23, 5, +- 130, 112, 42, 174, 0, 3, 150, 240, 151, 171, +- 144, 58, 1, 205, 174, 114, 80, 205, 160, 108, +- 214, 3, 25, 209, 185, 160, 13, 202, 208, 0, +- 3, 224, 1, 151, 32, 166, 152, 57, 48, 134, +- 254, 112, 83, 16, 115, 45, 114, 184, 6, 125, +- 112, 7, 123, 160, 5, 241, 178, 0, 125, 61, +- 2, 216, 196, 23, 144, 80, 96, 21, 91, 177, +- 253, 19, 5, 83, 112, 216, 192, 80, 2, 95, +- 96, 23, 82, 234, 9, 165, 128, 8, 65, 27, +- 180, 110, 74, 8, 163, 221, 182, 54, 157, 205, +- 181, 192, 128, 185, 240, 10, 208, 160, 11, 13, +- 160, 0, 24, 0, 6, 208, 32, 158, 208, 208, +- 30, 234, 42, 223, 85, 144, 5, 216, 45, 23, +- 57, 208, 218, 44, 227, 221, 22, 240, 4, 90, +- 241, 29, 170, 64, 157, 215, 170, 147, 196, 147, +- 208, 201, 128, 4, 102, 96, 25, 32, 94, 23, +- 147, 120, 7, 125, 176, 6, 113, 160, 6, 214, +- 60, 55, 106, 122, 223, 114, 4, 79, 39, 148, +- 11, 255, 77, 1, 20, 112, 5, 170, 48, 182, +- 205, 12, 205, 159, 64, 57, 120, 144, 221, 219, +- 157, 3, 38, 80, 43, 101, 195, 50, 19, 238, +- 203, 189, 1, 185, 243, 188, 188, 62, 48, 5, +- 202, 128, 13, 201, 192, 6, 110, 224, 86, 121, +- 0, 226, 82, 174, 4, 34, 126, 6, 36, 222, +- 7, 120, 96, 226, 220, 226, 56, 17, 44, 154, +- 151, 227, 148, 118, 201, 10, 124, 50, 10, 142, +- 176, 33, 215, 225, 227, 77, 2, 228, 182, 242, +- 0, 53, 240, 5, 68, 94, 34, 229, 120, 169, +- 137, 169, 2, 6, 150, 5, 229, 186, 206, 48, +- 64, 16, 166, 160, 8, 192, 81, 62, 229, 32, +- 142, 25, 84, 238, 222, 115, 49, 232, 132, 110, +- 23, 215, 113, 25, 218, 17, 34, 78, 178, 232, +- 181, 98, 1, 109, 30, 32, 37, 162, 16, 151, +- 64, 184, 152, 26, 127, 73, 94, 10, 73, 9, +- 12, 56, 128, 16, 218, 148, 7, 121, 240, 5, +- 182, 17, 234, 162, 158, 3, 184, 129, 27, 218, +- 113, 234, 218, 209, 31, 253, 17, 34, 172, 206, +- 232, 38, 160, 3, 0, 82, 225, 145, 206, 16, +- 148, 142, 169, 116, 126, 164, 186, 144, 12, 187, +- 237, 16, 150, 20, 9, 118, 96, 7, 95, 240, +- 5, 216, 145, 29, 168, 158, 234, 170, 174, 1, +- 31, 160, 3, 184, 17, 236, 120, 33, 235, 179, +- 254, 16, 144, 75, 184, 136, 153, 106, 22, 185, +- 6, 147, 192, 10, 174, 176, 1, 60, 65, 19, +- 145, 240, 230, 207, 222, 17, 128, 64, 184, 33, +- 96, 164, 86, 144, 6, 225, 226, 165, 154, 32, +- 1, 223, 190, 238, 21, 225, 10, 75, 128, 2, +- 54, 240, 3, 66, 148, 6, 228, 178, 11, 192, +- 192, 4, 236, 158, 239, 2, 17, 16, 0, 59}; +- +diff -up php-5.3.0/main/php_logos.c.easter php-5.3.0/main/php_logos.c +--- php-5.3.0/main/php_logos.c.easter 2008-12-31 12:15:47.000000000 +0100 ++++ php-5.3.0/main/php_logos.c 2009-07-12 13:45:50.000000000 +0200 +@@ -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; diff --git a/php-5.3.0-gnusrc.patch b/php-5.3.0-gnusrc.patch new file mode 100644 index 0000000..6221d46 --- /dev/null +++ b/php-5.3.0-gnusrc.patch @@ -0,0 +1,115 @@ +diff -up php-5.3.0RC3/configure.in.gnusrc php-5.3.0RC3/configure.in +--- php-5.3.0RC3/configure.in.gnusrc 2009-06-10 20:18:43.000000000 +0200 ++++ php-5.3.0RC3/configure.in 2009-06-12 07:38:08.000000000 +0200 +@@ -58,6 +58,8 @@ AC_DEFUN([PHP_EXT_DIR],[ext/$1])dnl + 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 -up php-5.3.0RC3/ext/interbase/interbase.c.gnusrc php-5.3.0RC3/ext/interbase/interbase.c +--- php-5.3.0RC3/ext/interbase/interbase.c.gnusrc 2008-12-31 12:15:38.000000000 +0100 ++++ php-5.3.0RC3/ext/interbase/interbase.c 2009-06-12 07:38:08.000000000 +0200 +@@ -24,7 +24,6 @@ + #include "config.h" + #endif + +-#define _GNU_SOURCE + + #include "php.h" + +diff -up php-5.3.0RC3/ext/pdo_firebird/firebird_driver.c.gnusrc php-5.3.0RC3/ext/pdo_firebird/firebird_driver.c +--- php-5.3.0RC3/ext/pdo_firebird/firebird_driver.c.gnusrc 2009-04-18 20:56:11.000000000 +0200 ++++ php-5.3.0RC3/ext/pdo_firebird/firebird_driver.c 2009-06-12 07:38:08.000000000 +0200 +@@ -22,7 +22,6 @@ + #include "config.h" + #endif + +-#define _GNU_SOURCE + + #include "php.h" + #ifdef ZEND_ENGINE_2 +diff -up php-5.3.0RC3/ext/standard/file.c.gnusrc php-5.3.0RC3/ext/standard/file.c +--- php-5.3.0RC3/ext/standard/file.c.gnusrc 2009-05-24 18:01:47.000000000 +0200 ++++ php-5.3.0RC3/ext/standard/file.c 2009-06-12 07:40:44.000000000 +0200 +@@ -123,9 +123,6 @@ php_file_globals file_globals; + #endif + + #if defined(HAVE_FNMATCH) && !defined(PHP_WIN32) +-# ifndef _GNU_SOURCE +-# define _GNU_SOURCE +-# endif + # include + #endif + +diff -up php-5.3.0RC3/ext/zlib/zlib_fopen_wrapper.c.gnusrc php-5.3.0RC3/ext/zlib/zlib_fopen_wrapper.c +--- php-5.3.0RC3/ext/zlib/zlib_fopen_wrapper.c.gnusrc 2009-01-20 16:41:23.000000000 +0100 ++++ php-5.3.0RC3/ext/zlib/zlib_fopen_wrapper.c 2009-06-12 07:38:08.000000000 +0200 +@@ -19,8 +19,6 @@ + + /* $Id: zlib_fopen_wrapper.c,v 1.46.2.1.2.4.2.3 2009/01/20 15:41:23 felipe Exp $ */ + +-#define _GNU_SOURCE +- + #include "php.h" + #include "php_zlib.h" + #include "fopen_wrappers.h" +diff -up php-5.3.0RC3/main/php.h.gnusrc php-5.3.0RC3/main/php.h +--- php-5.3.0RC3/main/php.h.gnusrc 2008-12-31 12:15:47.000000000 +0100 ++++ php-5.3.0RC3/main/php.h 2009-06-12 07:38:08.000000000 +0200 +@@ -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 -up php-5.3.0RC3/main/streams/cast.c.gnusrc php-5.3.0RC3/main/streams/cast.c +--- php-5.3.0RC3/main/streams/cast.c.gnusrc 2009-04-20 10:28:44.000000000 +0200 ++++ php-5.3.0RC3/main/streams/cast.c 2009-06-12 07:38:08.000000000 +0200 +@@ -18,7 +18,6 @@ + + /* $Id: cast.c,v 1.12.2.1.2.1.2.6 2009/04/20 08:28:44 pajoye Exp $ */ + +-#define _GNU_SOURCE + #include "php.h" + #include "php_globals.h" + #include "php_network.h" +diff -up php-5.3.0RC3/main/streams/memory.c.gnusrc php-5.3.0RC3/main/streams/memory.c +--- php-5.3.0RC3/main/streams/memory.c.gnusrc 2009-05-16 22:27:36.000000000 +0200 ++++ php-5.3.0RC3/main/streams/memory.c 2009-06-12 07:41:07.000000000 +0200 +@@ -18,7 +18,6 @@ + + /* $Id: memory.c,v 1.8.2.6.2.17.2.4 2009/05/16 20:27:36 lbarnaud Exp $ */ + +-#define _GNU_SOURCE + #include "php.h" + + PHPAPI int php_url_decode(char *str, int len); +diff -up php-5.3.0RC3/main/streams/streams.c.gnusrc php-5.3.0RC3/main/streams/streams.c +--- php-5.3.0RC3/main/streams/streams.c.gnusrc 2009-05-17 16:58:10.000000000 +0200 ++++ php-5.3.0RC3/main/streams/streams.c 2009-06-12 07:40:53.000000000 +0200 +@@ -21,7 +21,6 @@ + + /* $Id: streams.c,v 1.82.2.6.2.18.2.28 2009/05/17 14:58:10 lbarnaud Exp $ */ + +-#define _GNU_SOURCE + #include "php.h" + #include "php_globals.h" + #include "php_network.h" +diff -up php-5.3.0RC3/Zend/zend_language_parser.c.gnusrc php-5.3.0RC3/Zend/zend_language_parser.c +--- php-5.3.0RC3/Zend/zend_language_parser.c.gnusrc 2009-06-10 20:23:36.000000000 +0200 ++++ php-5.3.0RC3/Zend/zend_language_parser.c 2009-06-12 07:38:08.000000000 +0200 +@@ -366,6 +366,8 @@ + #include "zend_API.h" + #include "zend_constants.h" + ++#include ++ + + #define YYERROR_VERBOSE + #define YYSTYPE znode diff --git a/php-5.3.0-install.patch b/php-5.3.0-install.patch new file mode 100644 index 0000000..1100ace --- /dev/null +++ b/php-5.3.0-install.patch @@ -0,0 +1,12 @@ +diff -up php5.3-200812131330/sapi/apache2handler/config.m4.install php5.3-200812131330/sapi/apache2handler/config.m4 +--- php5.3-200812131330/sapi/apache2handler/config.m4.install 2008-03-12 00:31:53.000000000 +0100 ++++ php5.3-200812131330/sapi/apache2handler/config.m4 2008-12-13 16:20:06.000000000 +0100 +@@ -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.3.0-oci8conf.patch b/php-5.3.0-oci8conf.patch new file mode 100644 index 0000000..be79ef0 --- /dev/null +++ b/php-5.3.0-oci8conf.patch @@ -0,0 +1,36 @@ +diff -up ext/pdo_oci/config.m4.remi-oci8 ext/pdo_oci/config.m4 +--- ext/pdo_oci/config.m4.remi-oci8 2008-10-22 22:35:52.000000000 +0200 ++++ ext/pdo_oci/config.m4 2008-12-13 16:25:25.000000000 +0100 +@@ -74,7 +74,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 +@@ -91,6 +94,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/oci8/config.m4.remi-oci8 2009-03-13 00:52:37.000000000 +0100 ++++ ext/oci8/config.m4 2009-03-24 20:42:39.000000000 +0100 +@@ -306,6 +306,7 @@ + + dnl Header directory for Instant Client SDK RPM install + OCISDKRPMINC=`echo "$PHP_OCI8_INSTANT_CLIENT" | $PHP_OCI8_SED -e 's!^/usr/lib/oracle/\(.*\)/client\('${PHP_OCI8_IC_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 --git a/php-5.3.0-phpize64.patch b/php-5.3.0-phpize64.patch new file mode 100644 index 0000000..c4dd1b9 --- /dev/null +++ b/php-5.3.0-phpize64.patch @@ -0,0 +1,24 @@ +diff -up php5.3-200812131330/scripts/Makefile.frag.phpize64 php5.3-200812131330/scripts/Makefile.frag +--- php5.3-200812131330/scripts/Makefile.frag.phpize64 2005-11-22 00:08:02.000000000 +0100 ++++ php5.3-200812131330/scripts/Makefile.frag 2008-12-13 16:21:42.000000000 +0100 +@@ -4,7 +4,7 @@ + # + + phpincludedir = $(includedir)/php +-phpbuilddir = $(libdir)/build ++phpbuilddir = $(libdir)/php/build + + BUILD_FILES = \ + scripts/phpize.m4 \ +diff -up php5.3-200812131330/scripts/phpize.in.phpize64 php5.3-200812131330/scripts/phpize.in +--- php5.3-200812131330/scripts/phpize.in.phpize64 2007-06-29 03:10:35.000000000 +0200 ++++ php5.3-200812131330/scripts/phpize.in 2008-12-13 16:24:27.000000000 +0100 +@@ -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.3.0-recode.patch b/php-5.3.0-recode.patch new file mode 100644 index 0000000..86f75a5 --- /dev/null +++ b/php-5.3.0-recode.patch @@ -0,0 +1,17 @@ +diff -up php-5.3.0beta1/ext/recode/config9.m4.recode php-5.3.0beta1/ext/recode/config9.m4 +--- php-5.3.0beta1/ext/recode/config9.m4.recode 2008-12-02 00:30:21.000000000 +0100 ++++ php-5.3.0beta1/ext/recode/config9.m4 2009-02-28 09:46:50.000000000 +0100 +@@ -4,13 +4,6 @@ dnl + + dnl Check for extensions with which Recode can not work + if test "$PHP_RECODE" != "no"; then +- test "$PHP_IMAP" != "no" && recode_conflict="$recode_conflict imap" +- +- if test -n "$MYSQL_LIBNAME"; then +- PHP_CHECK_LIBRARY($MYSQL_LIBNAME, hash_insert, [ +- recode_conflict="$recode_conflict mysql" +- ]) +- fi + + if test -n "$recode_conflict"; then + AC_MSG_ERROR([recode extension can not be configured together with:$recode_conflict]) diff --git a/php-5.3.0-systzdata.patch b/php-5.3.0-systzdata.patch new file mode 100644 index 0000000..7a1eadb --- /dev/null +++ b/php-5.3.0-systzdata.patch @@ -0,0 +1,301 @@ +diff -up ext/date/lib/parse_tz.c.systzdata ext/date/lib/parse_tz.c +--- ext/date/lib/parse_tz.c.systzdata 2008-12-31 12:15:35.000000000 +0100 ++++ ext/date/lib/parse_tz.c 2009-02-28 09:51:07.000000000 +0100 +@@ -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__) +@@ -253,6 +266,211 @@ 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 ++ ++#define SYSTEM_TZFILE "/etc/localtime" ++ ++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]; ++ const char *fn; ++ struct stat st; ++ char *p; ++ int fd; ++ ++ if (strcmp(timezone, TIMELIB_SYSTEM_TZID) == 0) { ++ fn = SYSTEM_TZFILE; ++ } ++ else { ++ if (strstr(timezone, "..") != NULL) { ++ return NULL; ++ } ++ ++ snprintf(fname, sizeof fname, ZONEINFO_PREFIX "/%s", timezone); ++ fn = fname; ++ } ++ ++ fd = open(fn, 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]; ++ const char *fn; ++ ++ if (strcmp(timezone, TIMELIB_SYSTEM_TZID) == 0) { ++ fn = SYSTEM_TZFILE; ++ } ++ else { ++ if (strstr(timezone, "..") != NULL) { ++ return 0; ++ } ++ ++ snprintf(fname, sizeof fname, ZONEINFO_PREFIX "/%s", timezone); ++ fn = fname; ++ } ++ ++ return access(fn, 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; +@@ -328,6 +546,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 -up ext/date/lib/timelib.h.systzdata ext/date/lib/timelib.h +--- ext/date/lib/timelib.h.systzdata 2008-12-31 12:15:35.000000000 +0100 ++++ ext/date/lib/timelib.h 2009-02-28 09:51:07.000000000 +0100 +@@ -34,6 +34,10 @@ + #define TIMELIB_SPECIAL_DAY_OF_WEEK_IN_MONTH 0x02 + #define TIMELIB_SPECIAL_LAST_DAY_OF_WEEK_IN_MONTH 0x03 + ++#ifdef HAVE_SYSTEM_TZDATA ++#define TIMELIB_SYSTEM_TZID "System/Localtime" ++#endif ++ + #ifndef LONG_MAX + #define LONG_MAX 2147483647L + #endif +diff -up ext/date/lib/timelib.m4.systzdata ext/date/lib/timelib.m4 +--- ext/date/lib/timelib.m4.systzdata 2005-07-04 01:30:52.000000000 +0200 ++++ ext/date/lib/timelib.m4 2009-02-28 09:51:07.000000000 +0100 +@@ -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 ++ +diff -up ext/date/php_date.c.systzdata ext/date/php_date.c +--- ext/date/php_date.c.systzdata 2009-01-27 14:48:10.000000000 +0100 ++++ ext/date/php_date.c 2009-02-28 09:51:07.000000000 +0100 +@@ -829,6 +829,11 @@ static char* guess_timezone(const timeli + if (DATEG(default_timezone) && (strlen(DATEG(default_timezone)) > 0) && timelib_timezone_id_is_valid(DATEG(default_timezone), tzdb)) { + return DATEG(default_timezone); + } ++#ifdef TIMELIB_SYSTEM_TZID ++ if (timelib_timezone_id_is_valid(TIMELIB_SYSTEM_TZID, tzdb)) { ++ return TIMELIB_SYSTEM_TZID; ++ } ++#endif + #if HAVE_TM_ZONE + /* Try to guess timezone from system information */ + { diff --git a/php.ini b/php.ini index e4c4c1e..929adf2 100644 --- a/php.ini +++ b/php.ini @@ -3,146 +3,264 @@ ;;;;;;;;;;;;;;;;;;; ; 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. -; +; PHP's initialization file, generally called php.ini, is responsible for +; configuring many of the aspects of PHP's behavior. + +; PHP attempts to find and load this configuration from a number of locations. +; The following is a summary of its search order: +; 1. SAPI module specific location. +; 2. The PHPRC environment variable. (As of PHP 5.2.0) +; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) +; 4. Current working directory (except CLI) +; 5. The web server's directory (for SAPI modules), or directory of PHP +; (otherwise in Windows) +; 6. The directory from the --with-config-file-path compile time option, or the +; Windows directory (C:\windows or C:\winnt) +; See the PHP docs for more specific information. +; http://www.php.net/manual/en/configuration.file.php + ; 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. -; +; they might mean something in the future. + +; Directives following the section heading [PATH=/www/mysite] only +; apply to PHP files in the /www/mysite directory. Directives +; following the section heading [HOST=www.example.com] only apply to +; PHP files served from www.example.com. Directives set in these +; special sections cannot be overridden by user-defined INI files or +; at runtime. Currently, [PATH=] and [HOST=] sections only work under +; CGI/FastCGI. +; http://www.php.net/manual/en/ini.sections.php + ; Directives are specified using the following syntax: ; directive = value ; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; +; Directives are variables used to configure PHP or PHP extensions. +; There is no name validation. If PHP can't find an expected +; directive because it is not set or is mistyped, a default value will be used. + ; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one ; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), or a quoted string ("foo"). -; +; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a +; previously set variable or directive (e.g. ${foo}) + ; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT -; +; | bitwise OR +; ^ bitwise XOR +; & bitwise AND +; ~ bitwise NOT +; ! boolean NOT + ; Boolean flags can be turned on using the values 1, On, True or Yes. ; They can be turned off using the values 0, Off, False or No. -; + ; An empty string can be denoted by simply not writing anything after the equal ; sign, or by using the None keyword: -; + ; foo = ; sets foo to an empty string -; foo = none ; sets foo to an empty string -; foo = "none" ; sets foo to the string 'none' -; +; 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. +; PHP comes packaged with two INI files. One that is recommended to be used +; in production environments and one that is recommended to be used in +; development environments. + +; php.ini-production contains settings which hold security, performance and +; best practices at its core. But please be aware, these settings may break +; compatibility with older or less security conscience applications. We +; recommending using the production ini in production and testing environments. + +; php.ini-development is very similar to its production variant, except it's +; much more verbose when it comes to errors. We recommending using the +; development version only in development environments as errors shown to +; application users can inadvertently leak otherwise secure information. + +; This 2 files are provided, by RPM, in /usr/share/doc/php-common-*/ +; File used by RPM (the /etc/php.ini) is mainly the php.ini-production + +;;;;;;;;;;;;;;;;;;; +; Quick Reference ; +;;;;;;;;;;;;;;;;;;; +; The following are all the settings which are different in either the production +; or development versions of the INIs with respect to PHP's default behavior. +; Please see the actual settings later in the document for more details as to why +; we recommend these changes in PHP's behavior. + +; allow_call_time_pass_reference +; Default Value: On +; Development Value: Off +; Production Value: Off + +; display_errors +; Default Value: On +; Development Value: On +; Production Value: Off + +; display_startup_errors +; Default Value: Off +; Development Value: On +; Production Value: Off + +; error_reporting +; Default Value: E_ALL & ~E_NOTICE +; Development Value: E_ALL | E_STRICT +; Production Value: E_ALL & ~E_DEPRECATED + +; html_errors +; Default Value: On +; Development Value: On +; Production value: Off + +; log_errors +; Default Value: Off +; Development Value: On +; Production Value: On + +; magic_quotes_gpc +; Default Value: On +; Development Value: Off +; Production Value: Off + +; max_input_time +; Default Value: -1 (Unlimited) +; Development Value: 60 (60 seconds) +; Production Value: 60 (60 seconds) + +; output_buffering +; Default Value: Off +; Development Value: 4096 +; Production Value: 4096 + +; register_argc_argv +; Default Value: On +; Development Value: Off +; Production Value: Off + +; register_long_arrays +; Default Value: On +; Development Value: Off +; Production Value: Off + +; request_order +; Default Value: None +; Development Value: "GP" +; Production Value: "GP" + +; session.bug_compat_42 +; Default Value: On +; Development Value: On +; Production Value: Off + +; session.bug_compat_warn +; Default Value: On +; Development Value: On +; Production Value: Off + +; session.gc_divisor +; Default Value: 100 +; Development Value: 1000 +; Production Value: 1000 + +; session.hash_bits_per_character +; Default Value: 4 +; Development Value: 5 +; Production Value: 5 + +; short_open_tag +; Default Value: On +; Development Value: Off +; Production Value: Off + +; track_errors +; Default Value: Off +; Development Value: On +; Production Value: Off + +; url_rewriter.tags +; Default Value: "a=href,area=href,frame=src,form=,fieldset=" +; Development Value: "a=href,area=href,frame=src,input=src,form=fakeentry" +; Production Value: "a=href,area=href,frame=src,input=src,form=fakeentry" + +; variables_order +; Default Value: "EGPCS" +; Development Value: "GPCS" +; Production Value: "GPCS" + +;;;;;;;;;;;;;;;;;;;; +; php.ini Options ; +;;;;;;;;;;;;;;;;;;;; +; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" +;user_ini.filename = ".user.ini" + +; To disable this feature set this option to empty value +;user_ini.filename = + +; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) +;user_ini.cache_ttl = 300 ;;;;;;;;;;;;;;;;;;;; ; Language Options ; ;;;;;;;;;;;;;;;;;;;; ; Enable the PHP scripting language engine under Apache. +; http://www.php.net/manual/en/apache.configuration.php#ini.engine 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 +; This directive determines whether or not PHP will recognize code between +; tags as PHP source which should be processed as such. It's been +; recommended for several years that you not use the short tag "short cut" and +; instead to use the full tag combination. With the wide spread use +; of XML and use of these tags by other languages, the server can become easily +; confused and end up parsing the wrong code in the wrong context. But because +; this short cut has been a feature for such a long time, it's currently still +; supported for backwards compatibility, but we recommend you don't use them. +; Default Value: On +; Development Value: Off +; Production Value: Off +; http://www.php.net/manual/en/ini.core.php#ini.short-open-tag +short_open_tag = Off ; Allow ASP-style <% %> tags. +; http://www.php.net/manual/en/ini.core.php#ini.asp-tags asp_tags = Off ; The number of significant digits displayed in floating point numbers. -precision = 14 +; http://www.php.net/manual/en/ini.core.php#ini.precision +precision = 14 ; Enforce year 2000 compliance (will cause problems with non-compliant browsers) +; http://www.php.net/manual/en/ini.core.php#ini.y2k-compliance 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 is a mechanism for controlling how much output data +; (excluding headers and cookies) PHP should keep internally before pushing that +; data to the client. If your application's output exceeds this setting, PHP +; will send that data in chunks of roughly the size you specify. +; Turning on this setting and managing its maximum buffer size can yield some +; interesting side-effects depending on your application and web server. +; You may be able to send headers and cookies after you've already sent output +; through print or echo. You also may see performance benefits if your server is +; emitting less packets due to buffered output versus PHP streaming the output +; as it gets it. On production servers, 4096 bytes is a good setting for performance +; reasons. +; Note: Output buffering can also be controlled via Output Buffering Control +; functions. +; Possible Values: +; On = Enabled and buffer is unlimited. (Use with caution) +; Off = Disabled +; Integer = Enables the buffer and sets its maximum size in bytes. +; Default Value: Off +; Development Value: 4096 +; Production Value: 4096 +; http://www.php.net/manual/en/outcontrol.configuration.php#ini.output-buffering output_buffering = 4096 ; You can redirect all of the output of your scripts to a function. For @@ -150,30 +268,35 @@ output_buffering = 4096 ; 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. +; 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". +; 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. +; Instead you must use zlib.output_handler. +; http://www.php.net/manual/en/outcontrol.configuration.php#ini.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. +; 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. +; output_handler, or otherwise the output will be corrupted. +; http://www.php.net/manual/en/zlib.configuration.php#ini.zlib.output-compression zlib.output_compression = Off + +; http://www.php.net/manual/en/zlib.configuration.php#ini.zlib.output-compression-level ;zlib.output_compression_level = -1 ; You cannot specify additional output handlers if zlib.output_compression ; is activated here. This setting does the same as output_handler but in ; a different order. +; http://www.php.net/manual/en/zlib.configuration.php#ini.zlib.output-handler ;zlib.output_handler = ; Implicit flush tells PHP to tell the output layer to flush itself @@ -181,51 +304,56 @@ zlib.output_compression = Off ; PHP function flush() after each and every call to print() or echo() and each ; and every HTML block. Turning this option on has serious performance ; implications and is generally recommended for debugging purposes only. +; http://www.php.net/manual/en/outcontrol.configuration.php#ini.implicit-flush 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. +; 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= +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). +; This directive allows you to enable and disable warnings which PHP will issue +; if you pass a value by reference at function call time. Passing values by +; reference at function call time is a deprecated feature which will be removed +; from PHP at some point in the near future. The acceptable method for passing a +; value by reference to a function is by declaring the reference in the functions +; definition, not at call time. This directive does not disable this feature, it +; only determines whether PHP will warn you about it or not. These warnings +; should enabled in development environments only. +; Default Value: On (Suppress warnings) +; Development Value: Off (Issue warnings) +; Production Value: Off (Issue warnings) +; http://www.php.net/manual/en/ini.core.php#ini.allow-call-time-pass-reference allow_call_time_pass_reference = Off -; ; Safe Mode -; +; http://www.php.net/manual/en/ini.sect.safe-mode.php#ini.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. +; http://www.php.net/manual/en/ini.sect.safe-mode.php#ini.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) +; http://www.php.net/manual/en/ini.sect.safe-mode.php#ini.safe-mode-include-dir 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. +; http://www.php.net/manual/en/ini.sect.safe-mode.php#ini.safe-mode-exec-dir safe_mode_exec_dir = ; Setting certain environment variables may be a potential security breach. @@ -233,34 +361,39 @@ safe_mode_exec_dir = ; 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! +; environment variable! +; http://www.php.net/manual/en/ini.sect.safe-mode.php#ini.safe-mode-allowed-env-vars 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. +; http://www.php.net/manual/en/ini.sect.safe-mode.php#ini.safe-mode-protected-env-vars 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. +; http://www.php.net/manual/en/ini.sect.safe-mode.php#ini.open-basedir ;open_basedir = ; This directive allows you to disable certain functions for security reasons. ; It receives a comma-delimited list of function names. This directive is ; *NOT* affected by whether Safe Mode is turned On or Off. +; http://www.php.net/manual/en/ini.sect.safe-mode.php#ini.disable-functions 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. +; http://www.php.net/manual/en/ini.sect.safe-mode.php#ini.disable-classes disable_classes = ; Colors for Syntax Highlighting mode. Anything that's acceptable in ; would work. +; http://www.php.net/manual/en/misc.configuration.php#ini.syntax-highlighting ;highlight.string = #DD0000 ;highlight.comment = #FF9900 ;highlight.keyword = #007700 @@ -269,47 +402,81 @@ disable_classes = ;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 +; the request. Consider enabling it if executing long requests, which may end up +; being interrupted by the user or a browser timing out. PHP's default behavior +; is to disable this feature. +; http://www.php.net/manual/en/misc.configuration.php#ini.ignore-user-abort +;ignore_user_abort = On ; Determines the size of the realpath cache to be used by PHP. This value should ; be increased on systems where PHP opens many files to reflect the quantity of ; the file operations performed. -; realpath_cache_size=16k +; http://www.php.net/manual/en/ini.core.php#ini.realpath-cache-size +;realpath_cache_size = 16k ; Duration of time, in seconds for which to cache realpath information for a given ; file or directory. For systems with rarely changing files, consider increasing this ; value. -; realpath_cache_ttl=120 +; http://www.php.net/manual/en/ini.core.php#ini.realpath-cache-ttl +;realpath_cache_ttl = 120 + +;;;;;;;;;;;;;;;;; +; Miscellaneous ; +;;;;;;;;;;;;;;;;; -; -; 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. +; http://www.php.net/manual/en/ini.core.php#ini.expose-php 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 = 32M ; Maximum amount of memory a script may consume (16MB) +; Maximum execution time of each script, in seconds +; http://www.php.net/manual/en/info.configuration.php#ini.max-execution-time +max_execution_time = 30 +; Maximum amount of time each script may spend parsing request data. It's a good +; idea to limit this time on productions servers in order to eliminate unexpectedly +; long running scripts. +; Default Value: -1 (Unlimited) +; Development Value: 60 (60 seconds) +; Production Value: 60 (60 seconds) +; http://www.php.net/manual/en/info.configuration.php#ini.max-input-time +max_input_time = 60 + +; Maximum input variable nesting level +; http://www.php.net/manual/en/info.configuration.php#ini.max-input-nesting-level +;max_input_nesting_level = 64 + +; Maximum amount of memory a script may consume (128MB) +; http://www.php.net/manual/en/ini.core.php#ini.memory-limit +memory_limit = 128M ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 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) +; This directive informs PHP of which errors, warnings and notices you would like +; it to take action for. The recommended way of setting values for this +; directive is through the use of the error level constants and bitwise +; operators. The error level constants are below here for convenience as well as +; some common settings and their meanings. +; By default, PHP is set to take action on all errors, notices and warnings EXCEPT +; those related to E_NOTICE and E_STRICT, which together cover best practices and +; recommended coding standards in PHP. For performance reasons, this is the +; recommend error reporting setting. Your production server shouldn't be wasting +; resources complaining about best practices and coding standards. That's what +; development servers and development settings are for. +; Note: The php.ini-development file has this setting as E_ALL | E_STRICT. This +; means it pretty much reports everything which is exactly what you want during +; development and early testing. +; +; Error Level Constants: +; E_ALL - All errors and warnings (includes E_STRICT as of PHP 6.0.0) ; E_ERROR - fatal run-time errors ; E_RECOVERABLE_ERROR - almost fatal run-time errors ; E_WARNING - run-time warnings (non-fatal errors) @@ -330,144 +497,223 @@ memory_limit = 32M ; Maximum amount of memory a script may consume (16MB) ; E_USER_ERROR - user-generated error message ; E_USER_WARNING - user-generated warning message ; E_USER_NOTICE - user-generated notice message +; E_DEPRECATED - warn about code that will not work in future versions +; of PHP +; E_USER_DEPRECATED - user-generated deprecation warnings ; -; 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 -; +; Common Values: +; E_ALL & ~E_NOTICE (Show all errors, except for notices and coding standards warnings.) +; E_ALL & ~E_NOTICE | E_STRICT (Show all errors, except for notices) +; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) +; E_ALL | E_STRICT (Show all errors, warnings and notices including coding standards.) +; Default Value: E_ALL & ~E_NOTICE +; Development Value: E_ALL | E_STRICT +; Production Value: E_ALL & ~E_DEPRECATED +; http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting +error_reporting = E_ALL & ~E_DEPRECATED + +; This directive controls whether or not and where PHP will output errors, +; notices and warnings too. Error output is very useful during development, but +; it could be very dangerous in production environments. Depending on the code +; which is triggering the error, sensitive information could potentially leak +; out of your application such as database usernames and passwords or worse. +; It's recommended that errors be logged on production servers rather than +; having the errors sent to STDOUT. +; Possible Values: +; Off = Do not display any errors +; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) +; On or stdout = Display errors to STDOUT +; Default Value: On +; Development Value: On +; Production Value: Off +; http://www.php.net/manual/en/errorfunc.configuration.php#ini.display-errors 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. +; The display of errors which occur during PHP's startup sequence are handled +; separately from display_errors. PHP's default behavior is to suppress those +; errors from clients. Turning the display of startup errors on can be useful in +; debugging configuration problems. But, it's strongly recommended that you +; leave this setting off on production servers. +; Default Value: Off +; Development Value: On +; Production Value: Off +; http://www.php.net/manual/en/errorfunc.configuration.php#ini.display-startup-errors 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. +; Besides displaying errors, PHP can also log errors to locations such as a +; server-specific log, STDERR, or a location specified by the error_log +; directive found below. While errors should not be displayed on productions +; servers they should still be monitored and logging is a great way to do that. +; Default Value: Off +; Development Value: On +; Production Value: On +; http://www.php.net/manual/en/errorfunc.configuration.php#ini.log-errors 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. +; http://www.php.net/manual/en/errorfunc.configuration.php#ini.log-errors-max-len 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. +; line unless ignore_repeated_source is set true. +; http://www.php.net/manual/en/errorfunc.configuration.php#ini.ignore-repeated-errors ignore_repeated_errors = Off ; Ignore source of message when ignoring repeated messages. When this setting ; is On you will not log errors with repeated messages from different files or ; source lines. +; http://www.php.net/manual/en/errorfunc.configuration.php#ini.ignore-repeated-source ignore_repeated_source = Off ; If this parameter is set to Off, then memory leaks will not be shown (on ; stdout or in the log). This has only effect in a debug compile, and if ; error reporting includes E_WARNING in the allowed list +; http://www.php.net/manual/en/errorfunc.configuration.php#ini.report-memleaks report_memleaks = On +; This setting is on by default. ;report_zend_debug = 0 -; Store the last error/warning message in $php_errormsg (boolean). +; Store the last error/warning message in $php_errormsg (boolean). Setting this value +; to On can assist in debugging and is appropriate for development servers. It should +; however be disabled on production servers. +; Default Value: Off +; Development Value: On +; Production Value: Off +; http://www.php.net/manual/en/errorfunc.configuration.php#ini.track-errors track_errors = Off -; Disable the inclusion of HTML tags in error messages. -; Note: Never use this feature for production boxes. -;html_errors = Off +; Turn off normal error reporting and emit XML-RPC error XML +; http://www.php.net/manual/en/errorfunc.configuration.php#ini.xmlrpc-errors +;xmlrpc_errors = 0 + +; An XML-RPC faultCode +;xmlrpc_error_number = 0 + +; When PHP displays or logs an error, it has the capability of inserting html +; links to documentation related to that error. This directive controls whether +; those HTML links appear in error messages or not. For performance and security +; reasons, it's recommended you disable this on production servers. +; Default Value: On +; Development Value: On +; Production value: Off +; http://www.php.net/manual/en/errorfunc.configuration.php#ini.html-errors +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. +; the dot. PHP's default behavior is to leave these settings empty. ; Note: Never use this feature for production boxes. +; http://www.php.net/manual/en/errorfunc.configuration.php#ini.docref-root +; Examples ;docref_root = "/phpmanual/" + +; http://www.php.net/manual/en/errorfunc.configuration.php#ini.docref-ext ;docref_ext = .html -; String to output before an error message. -;error_prepend_string = "" +; String to output before an error message. PHP's default behavior is to leave +; this setting blank. +; http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-prepend-string +; Example: +;error_prepend_string = "" -; String to output after an error message. +; String to output after an error message. PHP's default behavior is to leave +; this setting blank. +; http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-append-string +; Example: ;error_append_string = "" -; Log errors to specified file. -;error_log = filename - +; Log errors to specified file. PHP's default behavior is to leave this value +; empty. +; http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-log +; Example: +;error_log = php_errors.log ; 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 "&". +; PHP's default setting is "&". +; http://www.php.net/manual/en/ini.core.php#ini.arg-separator.output +; Example: ;arg_separator.output = "&" ; List of separator(s) used by PHP to parse input URLs into variables. -; Default is "&". +; PHP's default setting is "&". ; NOTE: Every character in this directive is considered as separator! +; http://www.php.net/manual/en/ini.core.php#ini.arg-separator.input +; Example: ;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" +; This directive determines which super global arrays are registered when PHP +; starts up. If the register_globals directive is enabled, it also determines +; what order variables are populated into the global space. G,P,C,E & S are +; abbreviations for the following respective super globals: GET, POST, COOKIE, +; ENV and SERVER. There is a performance penalty paid for the registration of +; these arrays and because ENV is not as commonly used as the others, ENV is +; is not recommended on productions servers. You can still get access to +; the environment variables through getenv() should you need to. +; Default Value: "EGPCS" +; Development Value: "GPCS" +; Production Value: "GPCS"; +; http://www.php.net/manual/en/ini.core.php#ini.variables-order +variables_order = "GPCS" + +; This directive determines which super global data (G,P,C,E & S) should +; be registered into the super global array REQUEST. If so, it also determines +; the order in which that data is registered. The values for this directive are +; specified in the same manner as the variables_order directive, EXCEPT one. +; Leaving this value empty will cause PHP to use the value set in the +; variables_order directive. It does not mean it will leave the super globals +; array REQUEST empty. +; Default Value: None +; Development Value: "GP" +; Production Value: "GP" +; http://www.php.net/manual/en/ini.core.php#ini.request-order +request_order = "GP" ; 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. +; http://www.php.net/manual/en/ini.core.php#ini.register-globals 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. +; Determines whether the deprecated long $HTTP_*_VARS type predefined variables +; are registered by PHP or not. As they are deprecated, we obviously don't +; recommend you use them. They are on by default for compatibility reasons but +; they are not recommended on production servers. +; Default Value: On +; Development Value: Off +; Production Value: Off +; http://www.php.net/manual/en/ini.core.php#ini.register-long-arrays 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. +; This directive determines whether PHP registers $argv & $argc each time it +; runs. $argv contains an array of all the arguments passed to PHP when a script +; is invoked. $argc contains an integer representing the number of arguments +; that were passed when the script was invoked. These arrays are extremely +; useful when running scripts from the command line. When this directive is +; enabled, registering these variables consumes CPU cycles and memory each time +; a script is executed. For performance reasons, this feature should be disabled +; on production servers. +; Default Value: On +; Development Value: Off +; Production Value: Off +; http://www.php.net/manual/en/ini.core.php#ini.register-argc-argv register_argc_argv = Off ; When enabled, the SERVER and ENV variables are created when they're first @@ -475,25 +721,43 @@ register_argc_argv = Off ; 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. +; http://www.php.net/manual/en/ini.core.php#ini.auto-globals-jit auto_globals_jit = On ; Maximum size of POST data that PHP will accept. +; http://www.php.net/manual/en/ini.core.php#ini.post-max-size post_max_size = 8M -; Magic quotes -; - -; Magic quotes for incoming GET/POST/Cookie data. +; Magic quotes are a preprocessing feature of PHP where PHP will attempt to +; escape any character sequences in GET, POST, COOKIE and ENV data which might +; otherwise corrupt data being placed in resources such as databases before +; making that data available to you. Because of character encoding issues and +; non-standard SQL implementations across many databases, it's not currently +; possible for this feature to be 100% accurate. PHP's default behavior is to +; enable the feature. We strongly recommend you use the escaping mechanisms +; designed specifically for the database your using instead of relying on this +; feature. Also note, this feature has been deprecated as of PHP 5.3.0 and is +; scheduled for removal in PHP 6. +; Default Value: On +; Development Value: Off +; Production Value: Off +; http://www.php.net/manual/en/info.configuration.php#ini.magic-quotes-gpc magic_quotes_gpc = Off ; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc. +; http://www.php.net/manual/en/info.configuration.php#ini.magic-quotes-runtime magic_quotes_runtime = Off ; Use Sybase-style magic quotes (escape ' with '' instead of \'). +; http://www.php.net/manual/en/sybase.configuration.php#ini.magic-quotes-sybase magic_quotes_sybase = Off -; Automatically add files before or after any PHP document. +; Automatically add files before PHP document. +; http://www.php.net/manual/en/ini.core.php#ini.auto-prepend-file auto_prepend_file = + +; Automatically add files after PHP document. +; http://www.php.net/manual/en/ini.core.php#ini.auto-append-file auto_append_file = ; As of 4.0b4, PHP always outputs a character encoding by default in @@ -501,13 +765,18 @@ auto_append_file = ; set it to be empty. ; ; PHP's built-in default is text/html +; http://www.php.net/manual/en/ini.core.php#ini.default-mimetype default_mimetype = "text/html" + +; PHP's default character set is set to empty. +; http://www.php.net/manual/en/ini.core.php#ini.default-charset ;default_charset = "iso-8859-1" -; Always populate the $HTTP_RAW_POST_DATA variable. +; Always populate the $HTTP_RAW_POST_DATA variable. PHP's default behavior is +; to disable this feature. +; http://www.php.net/manual/en/ini.core.php#ini.always-populate-raw-post-data ;always_populate_raw_post_data = On - ;;;;;;;;;;;;;;;;;;;;;;;;; ; Paths and Directories ; ;;;;;;;;;;;;;;;;;;;;;;;;; @@ -517,97 +786,120 @@ default_mimetype = "text/html" ; ; Windows: "\path1;\path2" ;include_path = ".;c:\php\includes" +; +; PHP's default setting for include_path is ".;/path/to/php/pear" +; http://www.php.net/manual/en/ini.core.php#ini.include-path ; The root of the PHP pages, used only if nonempty. ; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root ; if you are running php as a CGI under any web server (other than IIS) ; see documentation for security issues. The alternate is to use the ; cgi.force_redirect configuration below +; http://www.php.net/manual/en/ini.core.php#ini.doc-root doc_root = ; The directory under which PHP opens the script using /~username used only ; if nonempty. +; http://www.php.net/manual/en/ini.core.php#ini.user-dir user_dir = +; Directory in which the loadable extensions (modules) reside. +; http://www.php.net/manual/en/ini.core.php#ini.extension-dir +; extension_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 +; http://www.php.net/manual/en/info.configuration.php#ini.enable-dl +enable_dl = Off ; 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 +; http://www.php.net/manual/en/ini.core.php#ini.cgi.force-redirect +;cgi.force_redirect = 1 ; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. -; cgi.nph = 1 +; every request. PHP's default behavior is to disable this feature. +;cgi.nph = 1 ; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape ; (iPlanet) web servers, you MAY need to set an environment variable name that PHP ; will look for to know it is OK to continue execution. Setting this variable MAY ; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; cgi.redirect_status_env = ; +; http://www.php.net/manual/en/ini.core.php#ini.cgi.redirect-status-env +;cgi.redirect_status_env = ; ; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok ; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix it's paths to conform to the spec. A setting +; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting ; of zero causes PHP to behave as before. Default is 1. You should fix your scripts ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; cgi.fix_pathinfo=1 +; http://www.php.net/manual/en/ini.core.php#ini.cgi.fix-pathinfo +;cgi.fix_pathinfo=1 ; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate ; security tokens of the calling client. This allows IIS to define the ; security context that the request runs under. mod_fastcgi under Apache ; does not currently support this feature (03/17/2002) ; Set to 1 if running under IIS. Default is zero. -; fastcgi.impersonate = 1; +; http://www.php.net/manual/en/ini.core.php#ini.fastcgi.impersonate +;fastcgi.impersonate = 1; -; Disable logging through FastCGI connection -; fastcgi.logging = 0 +; Disable logging through FastCGI connection. PHP's default behavior is to enable +; this feature. +;fastcgi.logging = 0 ; cgi.rfc2616_headers configuration option tells PHP what type of headers to ; use when sending HTTP response code. If it's set 0 PHP sends Status: header that ; is supported by Apache. When this option is set to 1 PHP will send ; RFC2616 compliant header. ; Default is zero. +; http://www.php.net/manual/en/ini.core.php#ini.cgi.rfc2616-headers ;cgi.rfc2616_headers = 0 - ;;;;;;;;;;;;;;;; ; File Uploads ; ;;;;;;;;;;;;;;;; ; Whether to allow HTTP file uploads. +; http://www.php.net/manual/en/ini.core.php#ini.file-uploads file_uploads = On ; Temporary directory for HTTP uploaded files (will use system default if not ; specified). +; http://www.php.net/manual/en/ini.core.php#ini.upload-tmp-dir ;upload_tmp_dir = ; Maximum allowed size for uploaded files. +; http://www.php.net/manual/en/ini.core.php#ini.upload-max-filesize upload_max_filesize = 2M - ;;;;;;;;;;;;;;;;;; ; Fopen wrappers ; ;;;;;;;;;;;;;;;;;; ; Whether to allow the treatment of URLs (like http:// or ftp://) as files. +; http://www.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen allow_url_fopen = On ; Whether to allow include/require to open URLs (like http:// or ftp://) as files. +; http://www.php.net/manual/en/filesystem.configuration.php#ini.allow-url-include allow_url_include = Off -; Define the anonymous ftp password (your email address) +; Define the anonymous ftp password (your email address). PHP's default setting +; for this is empty. +; http://www.php.net/manual/en/filesystem.configuration.php#ini.from ;from="john@doe.com" -; Define the User-Agent string -; user_agent="PHP" +; Define the User-Agent string. PHP's default setting for this is empty. +; http://www.php.net/manual/en/filesystem.configuration.php#ini.user-agent +;user_agent="PHP" ; Default timeout for socket based streams (seconds) +; http://www.php.net/manual/en/filesystem.configuration.php#ini.default-socket-timeout default_socket_timeout = 60 ; If your scripts have to deal with files from Macintosh systems, @@ -615,27 +907,29 @@ default_socket_timeout = 60 ; 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 - +; http://www.php.net/manual/en/filesystem.configuration.php#ini.auto-detect-line-endings +;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: +; 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. +; ... or with a path: +; +; extension=/path/to/extension/msql.so +; +; If you only provide the name of the extension, PHP will look for it in its +; default extension directory. - ;;;; ; Note: packaged extension modules are now loaded via the .ini files ; found in the directory /etc/php.d; these are loaded by default. @@ -648,16 +942,26 @@ default_socket_timeout = 60 [Date] ; Defines the default timezone used by the date functions +; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone ;date.timezone = +; http://www.php.net/manual/en/datetime.configuration.php#ini.date.default-latitude ;date.default_latitude = 31.7667 + +; http://www.php.net/manual/en/datetime.configuration.php#ini.date.default-longitude ;date.default_longitude = 35.2333 +; http://www.php.net/manual/en/datetime.configuration.php#ini.date.sunrise-zenith ;date.sunrise_zenith = 90.583333 + +; http://www.php.net/manual/en/datetime.configuration.php#ini.date.sunset-zenith ;date.sunset_zenith = 90.583333 [filter] +; http://www.php.net/manual/en/filter.configuration.php#ini.filter.default ;filter.default = unsafe_raw + +; http://www.php.net/manual/en/filter.configuration.php#ini.filter.default-flags ;filter.default_flags = [iconv] @@ -665,38 +969,62 @@ default_socket_timeout = 60 ;iconv.internal_encoding = ISO-8859-1 ;iconv.output_encoding = ISO-8859-1 +[intl] +;intl.default_locale = + [sqlite] +; http://www.php.net/manual/en/sqlite.configuration.php#ini.sqlite.assoc-case ;sqlite.assoc_case = 0 -[xmlrpc] -;xmlrpc_error_number = 0 -;xmlrpc_errors = 0 +[sqlite3] +;sqlite3.extension_dir = [Pcre] ;PCRE library backtracking limit. +; http://www.php.net/manual/en/pcre.configuration.php#ini.pcre.backtrack-limit ;pcre.backtrack_limit=100000 ;PCRE library recursion limit. ;Please note that if you set this value to a high number you may consume all ;the available process stack and eventually crash PHP (due to reaching the ;stack size limit imposed by the Operating System). +; http://www.php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit ;pcre.recursion_limit=100000 +[Pdo] +; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" +; http://www.php.net/manual/en/ref.pdo-odbc.php#ini.pdo-odbc.connection-pooling +;pdo_odbc.connection_pooling=strict + +[Phar] +; http://www.php.net/manual/en/phar.configuration.php#ini.phar.readonly +;phar.readonly = On + +; http://www.php.net/manual/en/phar.configuration.php#ini.phar.require-hash +;phar.require_hash = On + +;phar.cache_list = + [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(). +; http://www.php.net/manual/en/network.configuration.php#ini.define-syslog-variables define_syslog_variables = Off [mail function] ; For Win32 only. +; http://www.php.net/manual/en/mail.configuration.php#ini.smtp SMTP = localhost +; http://www.php.net/manual/en/mail.configuration.php#ini.smtp-port smtp_port = 25 ; For Win32 only. +; http://www.php.net/manual/en/mail.configuration.php#ini.sendmail-from ;sendmail_from = me@example.com ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). +; http://www.php.net/manual/en/mail.configuration.php#ini.sendmail-path sendmail_path = /usr/sbin/sendmail -t -i ; Force the addition of the specified parameters to be passed as extra parameters @@ -704,59 +1032,86 @@ sendmail_path = /usr/sbin/sendmail -t -i ; the 5th parameter to mail(), even in safe mode. ;mail.force_extra_parameters = +; Add X-PHP-Originaiting-Script: that will include uid of the script followed by the filename +mail.add_x_header = On + +; Log all mail() calls including the full path of the script, line #, to address and headers +;mail.log = + [SQL] +; http://www.php.net/manual/en/ini.core.php#ini.sql.safe-mode sql.safe_mode = Off [ODBC] +; http://www.php.net/manual/en/odbc.configuration.php#ini.uodbc.default-db ;odbc.default_db = Not yet implemented + +; http://www.php.net/manual/en/odbc.configuration.php#ini.uodbc.default-user ;odbc.default_user = Not yet implemented + +; http://www.php.net/manual/en/odbc.configuration.php#ini.uodbc.default-pw ;odbc.default_pw = Not yet implemented ; Allow or prevent persistent links. +; http://www.php.net/manual/en/odbc.configuration.php#ini.uodbc.allow-persistent odbc.allow_persistent = On ; Check that a connection is still valid before reuse. +; http://www.php.net/manual/en/odbc.configuration.php#ini.uodbc.check-persistent odbc.check_persistent = On ; Maximum number of persistent links. -1 means no limit. +; http://www.php.net/manual/en/odbc.configuration.php#ini.uodbc.max-persistent odbc.max_persistent = -1 ; Maximum number of links (persistent + non-persistent). -1 means no limit. +; http://www.php.net/manual/en/odbc.configuration.php#ini.uodbc.max-links odbc.max_links = -1 ; Handling of LONG fields. Returns number of bytes to variables. 0 means ; passthru. +; http://www.php.net/manual/en/odbc.configuration.php#ini.uodbc.defaultlrl odbc.defaultlrl = 4096 ; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. ; See the documentation on odbc_binmode and odbc_longreadlen for an explanation ; of uodbc.defaultlrl and uodbc.defaultbinmode +; http://www.php.net/manual/en/odbc.configuration.php#ini.uodbc.defaultbinmode odbc.defaultbinmode = 1 +;birdstep.max_links = -1 + [MySQL] ; Allow or prevent persistent links. +; http://www.php.net/manual/en/mysql.configuration.php#ini.mysql.allow-persistent mysql.allow_persistent = On ; Maximum number of persistent links. -1 means no limit. +; http://www.php.net/manual/en/mysql.configuration.php#ini.mysql.max-persistent mysql.max_persistent = -1 ; Maximum number of links (persistent + non-persistent). -1 means no limit. +; http://www.php.net/manual/en/mysql.configuration.php#ini.mysql.max-links mysql.max_links = -1 ; Default port number for mysql_connect(). If unset, mysql_connect() will use ; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the ; compile-time value defined MYSQL_PORT (in that order). Win32 will only look ; at MYSQL_PORT. +; http://www.php.net/manual/en/mysql.configuration.php#ini.mysql.default-port mysql.default_port = ; Default socket name for local MySQL connects. If empty, uses the built-in ; MySQL defaults. +; http://www.php.net/manual/en/mysql.configuration.php#ini.mysql.default-socket mysql.default_socket = ; Default host for mysql_connect() (doesn't apply in safe mode). +; http://www.php.net/manual/en/mysql.configuration.php#ini.mysql.default-host mysql.default_host = ; Default user for mysql_connect() (doesn't apply in safe mode). +; http://www.php.net/manual/en/mysql.configuration.php#ini.mysql.default-user mysql.default_user = ; Default password for mysql_connect() (doesn't apply in safe mode). @@ -764,34 +1119,42 @@ mysql.default_user = ; *Any* user with PHP access can run 'echo get_cfg_var("mysql.default_password") ; and reveal this password! And of course, any users with read access to this ; file will be able to reveal the password as well. +; http://www.php.net/manual/en/mysql.configuration.php#ini.mysql.default-password mysql.default_password = ; Maximum time (in seconds) for connect timeout. -1 means no limit +; http://www.php.net/manual/en/mysql.configuration.php#ini.mysql.connect-timeout mysql.connect_timeout = 60 ; Trace mode. When trace_mode is active (=On), warnings for table/index scans and ; SQL-Errors will be displayed. +; http://www.php.net/manual/en/mysql.configuration.php#ini.mysql.trace-mode mysql.trace_mode = Off [MySQLi] ; Maximum number of links. -1 means no limit. +; http://www.php.net/manual/en/mysqli.configuration.php#ini.mysqli.max-links 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. +; http://www.php.net/manual/en/mysqli.configuration.php#ini.mysqli.default-port mysqli.default_port = 3306 ; Default socket name for local MySQL connects. If empty, uses the built-in ; MySQL defaults. +; http://www.php.net/manual/en/mysqli.configuration.php#ini.mysqli.default-socket mysqli.default_socket = ; Default host for mysql_connect() (doesn't apply in safe mode). +; http://www.php.net/manual/en/mysqli.configuration.php#ini.mysqli.default-host mysqli.default_host = ; Default user for mysql_connect() (doesn't apply in safe mode). +; http://www.php.net/manual/en/mysqli.configuration.php#ini.mysqli.default-user mysqli.default_user = ; Default password for mysqli_connect() (doesn't apply in safe mode). @@ -799,130 +1162,79 @@ mysqli.default_user = ; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") ; and reveal this password! And of course, any users with read access to this ; file will be able to reveal the password as well. +; http://www.php.net/manual/en/mysqli.configuration.php#ini.mysqli.default-pw 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. +; http://www.php.net/manual/en/pgsql.configuration.php#ini.pgsql.allow-persistent pgsql.allow_persistent = On ; Detect broken persistent links always with pg_pconnect(). ; Auto reset feature requires a little overheads. +; http://www.php.net/manual/en/pgsql.configuration.php#ini.pgsql.auto-reset-persistent pgsql.auto_reset_persistent = Off ; Maximum number of persistent links. -1 means no limit. +; http://www.php.net/manual/en/pgsql.configuration.php#ini.pgsql.max-persistent pgsql.max_persistent = -1 ; Maximum number of links (persistent+non persistent). -1 means no limit. +; http://www.php.net/manual/en/pgsql.configuration.php#ini.pgsql.max-links pgsql.max_links = -1 ; Ignore PostgreSQL backends Notice message or not. ; Notice message logging require a little overheads. +; http://www.php.net/manual/en/pgsql.configuration.php#ini.pgsql.ignore-notice pgsql.ignore_notice = 0 ; Log PostgreSQL backends Noitce message or not. ; Unless pgsql.ignore_notice=0, module cannot log notice message. +; http://www.php.net/manual/en/pgsql.configuration.php#ini.pgsql.log-notice 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. +; http://www.php.net/manual/en/sybase.configuration.php#ini.sybct.allow-persistent sybct.allow_persistent = On ; Maximum number of persistent links. -1 means no limit. +; http://www.php.net/manual/en/sybase.configuration.php#ini.sybct.max-persistent sybct.max_persistent = -1 ; Maximum number of links (persistent + non-persistent). -1 means no limit. +; http://www.php.net/manual/en/sybase.configuration.php#ini.sybct.max-links sybct.max_links = -1 ; Minimum server message severity to display. +; http://www.php.net/manual/en/sybase.configuration.php#ini.sybct.min-server-severity sybct.min_server_severity = 10 ; Minimum client message severity to display. +; http://www.php.net/manual/en/sybase.configuration.php#ini.sybct.min-client-severity sybct.min_client_severity = 10 +; Set per-context timeout +; http://www.php.net/manual/en/sybase.configuration.php#ini.sybct.timeout +;sybct.timeout= + +;sybct.packet_size + [bcmath] ; Number of decimal digits for all bcmath functions. +; http://www.php.net/manual/en/bc.configuration.php#ini.bcmath.scale bcmath.scale = 0 [browscap] +; http://www.php.net/manual/en/misc.configuration.php#ini.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. +; http://www.php.net/manual/en/session.configuration.php#ini.session.save-handler session.save_handler = files ; Argument passed to save_handler. In the case of files, this is the path @@ -951,49 +1263,80 @@ session.save_handler = files ; ; where MODE is the octal representation of the mode. Note that this ; does not overwrite the process's umask. +; http://www.php.net/manual/en/session.configuration.php#ini.session.save-path session.save_path = "/var/lib/php/session" ; Whether to use cookies. +; http://www.php.net/manual/en/session.configuration.php#ini.session.use-cookies session.use_cookies = 1 +; http://www.php.net/manual/en/session.configuration.php#ini.session.cookie-secure ;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 +; This option forces PHP to fetch and use a cookie for storing and maintaining +; the session id. We encourage this operation as it's very helpful in combatting +; session hijacking when not specifying and managing your own session id. It is +; not the end all be all of session hijacking defense, but it's a good start. +; http://www.php.net/manual/en/session.configuration.php#ini.session.use-only-cookies +session.use_only_cookies = 1 ; Name of the session (used as cookie name). +; http://www.php.net/manual/en/session.configuration.php#ini.session.name session.name = PHPSESSID ; Initialize session on request startup. +; http://www.php.net/manual/en/session.configuration.php#ini.session.auto-start session.auto_start = 0 ; Lifetime in seconds of cookie or, if 0, until browser is restarted. +; http://www.php.net/manual/en/session.configuration.php#ini.session.cookie-lifetime session.cookie_lifetime = 0 ; The path for which the cookie is valid. +; http://www.php.net/manual/en/session.configuration.php#ini.session.cookie-path session.cookie_path = / ; The domain for which the cookie is valid. +; http://www.php.net/manual/en/session.configuration.php#ini.session.cookie-domain session.cookie_domain = ; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. +; http://www.php.net/manual/en/session.configuration.php#ini.session.cookie-httponly session.cookie_httponly = ; Handler used to serialize data. php is the standard serializer of PHP. +; http://www.php.net/manual/en/session.configuration.php#ini.session.serialize-handler 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. - +; Defines the probability that the 'garbage collection' process is started +; on every session initialization. The probability is calculated by using +; gc_probability/gc_divisor. Where session.gc_probability is the numerator +; and gc_divisor is the denominator in the equation. Setting this value to 1 +; when the session.gc_divisor value is 100 will give you approximately a 1% chance +; the gc will run on any give request. +; Default Value: 1 +; Development Value: 1 +; Production Value: 1 +; http://www.php.net/manual/en/session.configuration.php#ini.session.gc-probability session.gc_probability = 1 -session.gc_divisor = 1000 + +; Defines the probability that the 'garbage collection' process is started on every +; session initialization. The probability is calculated by using the following equation: +; gc_probability/gc_divisor. Where session.gc_probability is the numerator and +; session.gc_divisor is the denominator in the equation. Setting this value to 1 +; when the session.gc_divisor value is 100 will give you approximately a 1% chance +; the gc will run on any give request. Increasing this value to 1000 will give you +; a 0.1% chance the gc will run on any give request. For high volume production servers, +; this is a more efficient approach. +; Default Value: 100 +; Development Value: 1000 +; Production Value: 1000 +; http://www.php.net/manual/en/session.configuration.php#ini.session.gc-divisor +session.gc_divisor = 1000 ; After this number of seconds, stored data will be seen as 'garbage' and ; cleaned up by the garbage collection process. +; http://www.php.net/manual/en/session.configuration.php#ini.session.gc-maxlifetime session.gc_maxlifetime = 1440 ; NOTE: If you are using the subdirectory option for storing session files @@ -1005,34 +1348,55 @@ session.gc_maxlifetime = 1440 ; 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 +; to initialize a session variable in the global scope, even when 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 +; the warning is only displayed, if bug_compat_42 is enabled. This feature +; introduces some serious security problems if not handled correctly. It's +; recommended that you do not use this feature on production servers. But you +; should enable this on development servers and enable the warning as well. If you +; do not enable the feature on development servers, you won't be warned when it's +; used and debugging errors caused by this can be difficult to track down. +; Default Value: On +; Development Value: On +; Production Value: Off +; http://www.php.net/manual/en/session.configuration.php#ini.session.bug-compat-42 +session.bug_compat_42 = Off + +; This setting controls whether or not you are warned by PHP when initializing a +; session value into the global space. session.bug_compat_42 must be enabled before +; these warnings can be issued by PHP. See the directive above for more information. +; Default Value: On +; Development Value: On +; Production Value: Off +; http://www.php.net/manual/en/session.configuration.php#ini.session.bug-compat-warn +session.bug_compat_warn = Off ; Check HTTP Referer to invalidate externally stored URLs containing ids. ; HTTP_REFERER has to contain this substring for the session to be ; considered as valid. +; http://www.php.net/manual/en/session.configuration.php#ini.session.referer-check session.referer_check = ; How many bytes to read from the file. +; http://www.php.net/manual/en/session.configuration.php#ini.session.entropy-length session.entropy_length = 0 ; Specified here to create the session id. +; http://www.php.net/manual/en/session.configuration.php#ini.session.entropy-file +;session.entropy_file = /dev/urandom session.entropy_file = +; http://www.php.net/manual/en/session.configuration.php#ini.session.entropy-length ;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. +; http://www.php.net/manual/en/session.configuration.php#ini.session.cache-limiter session.cache_limiter = nocache ; Document expires after n minutes. +; http://www.php.net/manual/en/session.configuration.php#ini.session.cache-expire session.cache_expire = 180 ; trans sid support is disabled by default. @@ -1044,19 +1408,26 @@ session.cache_expire = 180 ; in publically accessible computer. ; - User may access your site with the same session ID ; always using URL stored in browser's history or bookmarks. +; http://www.php.net/manual/en/session.configuration.php#ini.session.use-trans-sid session.use_trans_sid = 0 -; Select a hash function -; 0: MD5 (128 bits) -; 1: SHA-1 (160 bits) +; Select a hash function for use in generating session ids. +; Possible Values +; 0 (MD5 128 bits) +; 1 (SHA-1 160 bits) +; http://www.php.net/manual/en/session.configuration.php#ini.session.hash-function session.hash_function = 0 ; Define how many bits are stored in each character when converting ; the binary hash data to something readable. -; -; 4 bits: 0-9, a-f -; 5 bits: 0-9, a-v -; 6 bits: 0-9, a-z, A-Z, "-", "," +; Possible values: +; 4 (4 bits: 0-9, a-f) +; 5 (5 bits: 0-9, a-v) +; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") +; Default Value: 4 +; Development Value: 5 +; Production Value: 5 +; http://www.php.net/manual/en/session.configuration.php#ini.session.hash-bits-per-character session.hash_bits_per_character = 5 ; The URL rewriter will look for URLs in a defined set of HTML tags. @@ -1064,6 +1435,10 @@ session.hash_bits_per_character = 5 ; add a hidden field with the info which is otherwise appended ; to URLs. If you want XHTML conformity, remove the form entry. ; Note that all valid entries require a "=", even if no value follows. +; Default Value: "a=href,area=href,frame=src,form=,fieldset=" +; Development Value: "a=href,area=href,frame=src,input=src,form=fakeentry" +; Production Value: "a=href,area=href,frame=src,input=src,form=fakeentry" +; http://www.php.net/manual/en/session.configuration.php#ini.url-rewriter.tags url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry" [MSSQL] @@ -1120,47 +1495,65 @@ mssql.secure_connection = Off [Assertion] ; Assert(expr); active by default. +; http://www.php.net/manual/en/info.configuration.php#ini.assert.active ;assert.active = On ; Issue a PHP warning for each failed assertion. +; http://www.php.net/manual/en/info.configuration.php#ini.assert.warning ;assert.warning = On ; Don't bail out by default. +; http://www.php.net/manual/en/info.configuration.php#ini.assert.bail ;assert.bail = Off ; User-function to be called if an assertion fails. +; http://www.php.net/manual/en/info.configuration.php#ini.assert.callback ;assert.callback = 0 ; Eval the expression with current error_reporting(). Set to true if you want ; error_reporting(0) around the eval(). +; http://www.php.net/manual/en/info.configuration.php#ini.assert.quiet-eval ;assert.quiet_eval = 0 [COM] ; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs +; http://www.php.net/manual/en/com.configuration.php#ini.com.typelib-file ;com.typelib_file = + ; allow Distributed-COM calls +; http://www.php.net/manual/en/com.configuration.php#ini.com.allow-dcom ;com.allow_dcom = true + ; autoregister constants of a components typlib on com_load() +; http://www.php.net/manual/en/com.configuration.php#ini.com.autoregister-typelib ;com.autoregister_typelib = true + ; register constants casesensitive +; http://www.php.net/manual/en/com.configuration.php#ini.com.autoregister-casesensitive ;com.autoregister_casesensitive = false + ; show warnings on duplicate constant registrations +; http://www.php.net/manual/en/com.configuration.php#ini.com.autoregister-verbose ;com.autoregister_verbose = true [mbstring] ; language for internal character representation. +; http://www.php.net/manual/en/mbstring.configuration.php#ini.mbstring.language ;mbstring.language = Japanese ; internal/script encoding. ; Some encoding cannot work as internal encoding. ; (e.g. SJIS, BIG5, ISO-2022-*) +; http://www.php.net/manual/en/mbstring.configuration.php#ini.mbstring.internal-encoding ;mbstring.internal_encoding = EUC-JP ; http input encoding. +; http://www.php.net/manual/en/mbstring.configuration.php#ini.mbstring.http-input ;mbstring.http_input = auto ; http output encoding. mb_output_handler must be ; registered as output buffer to function +; http://www.php.net/manual/en/mbstring.configuration.php#ini.mbstring.http-output ;mbstring.http_output = SJIS ; enable automatic encoding translation according to @@ -1168,14 +1561,17 @@ mssql.secure_connection = Off ; converted to internal encoding by setting this to On. ; Note: Do _not_ use automatic encoding translation for ; portable libs/applications. +; http://www.php.net/manual/en/mbstring.configuration.php#ini.mbstring.encoding-translation ;mbstring.encoding_translation = Off ; automatic encoding detection order. ; auto means +; http://www.php.net/manual/en/mbstring.configuration.php#ini.mbstring.detect-order ;mbstring.detect_order = auto ; substitute_character used when character cannot be converted ; one from another +; http://www.php.net/manual/en/mbstring.configuration.php#ini.mbstring.substitute-character ;mbstring.substitute_character = none; ; overload(replace) single byte functions by mbstring functions. @@ -1186,30 +1582,22 @@ mssql.secure_connection = Off ; 1: Overload mail() function ; 2: Overload str*() functions ; 4: Overload ereg*() functions +; http://www.php.net/manual/en/mbstring.configuration.php#ini.mbstring.func-overload ;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 +;mbstring.strict_detection = Off + +; This directive specifies the regex pattern of content types for which mb_output_handler() +; is activated. +; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) +;mbstring.http_output_conv_mimetype= [gd] -; Tell the jpeg decode to libjpeg warnings and try to create +; Tell the jpeg decode to ignore warnings and try to create ; a gd image. The warning will then be displayed as notices ; disabled by default +; http://www.php.net/manual/en/image.configuration.php#ini.image.jpeg-ignore-warning ;gd.jpeg_ignore_warning = 0 [exif] @@ -1218,31 +1606,54 @@ mssql.secure_connection = Off ; given by corresponding encode setting. When empty mbstring.internal_encoding ; is used. For the decode settings you can distinguish between motorola and ; intel byte order. A decode setting cannot be empty. +; http://www.php.net/manual/en/exif.configuration.php#ini.exif.encode-unicode ;exif.encode_unicode = ISO-8859-15 + +; http://www.php.net/manual/en/exif.configuration.php#ini.exif.decode-unicode-motorola ;exif.decode_unicode_motorola = UCS-2BE + +; http://www.php.net/manual/en/exif.configuration.php#ini.exif.decode-unicode-intel ;exif.decode_unicode_intel = UCS-2LE + +; http://www.php.net/manual/en/exif.configuration.php#ini.exif.encode-jis ;exif.encode_jis = + +; http://www.php.net/manual/en/exif.configuration.php#ini.exif.decode-jis-motorola ;exif.decode_jis_motorola = JIS + +; http://www.php.net/manual/en/exif.configuration.php#ini.exif.decode-jis-intel ;exif.decode_jis_intel = JIS [Tidy] ; The path to a default tidy configuration file to use when using tidy +; http://www.php.net/manual/en/tidy.configuration.php#ini.tidy.default-config ;tidy.default_config = /usr/local/lib/php/default.tcfg ; Should tidy clean and repair output automatically? ; WARNING: Do not use this option if you are generating non-html content ; such as dynamic images +; http://www.php.net/manual/en/tidy.configuration.php#ini.tidy.clean-output tidy.clean_output = Off [soap] ; Enables or disables WSDL caching feature. +; http://www.php.net/manual/en/soap.configuration.php#ini.soap.wsdl-cache-enabled soap.wsdl_cache_enabled=1 + ; Sets the directory name where SOAP extension will put cache files. +; http://www.php.net/manual/en/soap.configuration.php#ini.soap.wsdl-cache-dir soap.wsdl_cache_dir="/tmp" + ; (time to live) Sets the number of second while cached file will be used ; instead of original one. +; http://www.php.net/manual/en/soap.configuration.php#ini.soap.wsdl-cache-ttl soap.wsdl_cache_ttl=86400 +[sysvshm] +; A default size of the shared memory segment +;sysvshm.init_mem = 10000 + + ; Local Variables: ; tab-width: 4 ; End: diff --git a/php.spec b/php.spec index d39649a..117fcc2 100644 --- a/php.spec +++ b/php.spec @@ -1,12 +1,18 @@ -%define contentdir /var/www -%define apiver 20041225 -%define zendver 20060613 -%define pdover 20060511 +%global contentdir /var/www +# API/ABI check +%global apiver 20090626 +%global zendver 20090626 +%global pdover 20080721 +# Extension version +%global fileinfover 1.0.5-dev +%global pharver 2.0.0-dev +%global zipver 1.9.1 + %define httpd_mmn %(cat %{_includedir}/httpd/.mmn || echo missing-httpd-devel) Summary: PHP scripting language for creating dynamic web sites Name: php -Version: 5.2.10 +Version: 5.3.0 Release: 1%{?dist} License: PHP Group: Development/Languages @@ -18,13 +24,13 @@ Source2: php.ini Source3: macros.php # Build fixes -Patch1: php-5.2.10-gnusrc.patch -Patch2: php-5.2.8-install.patch +Patch1: php-5.3.0-gnusrc.patch +Patch2: php-5.3.0-install.patch Patch3: php-5.2.4-norpath.patch -Patch4: php-5.2.8-phpize64.patch +Patch4: php-5.3.0-phpize64.patch Patch5: php-5.2.0-includedir.patch Patch6: php-5.2.4-embed.patch -Patch7: php-5.2.8-recode.patch +Patch7: php-5.3.0-recode.patch # Fixes for extension modules Patch20: php-4.3.11-shutdown.patch @@ -32,18 +38,17 @@ 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.6-systzdata.patch +Patch41: php-5.3.0-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 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: libstdc++-devel, openssl-devel, sqlite-devel >= 3.6.0 BuildRequires: zlib-devel, pcre-devel >= 6.6, smtpdaemon, readline-devel BuildRequires: bzip2, perl, libtool >= 1.4.3, gcc-c++ Obsoletes: php-dbg, php3, phpfi, stronghold-php @@ -97,8 +102,12 @@ 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 +Provides: php-zlib, php-json, php-zip, php-fileinfo +Obsoletes: php-openssl, php-pecl-zip, php-pecl-json, php-json, php-pecl-phar, php-pecl-Fileinfo +# For obsoleted pecl extension +Provides: php-pecl-zip = %{zipver}, php-pecl(zip) = %{zipver} +Provides: php-pecl-phar = %{pharver}, php-pecl(phar) = %{pharver} +Provides: php-pecl-Fileinfo = %{fileinfover}, php-pecl(Fileinfo) = %{fileinfover} %description common The php-common package contains files used by both the php @@ -152,6 +161,7 @@ Group: Development/Languages Requires: php-common = %{version}-%{release} Obsoletes: php-pecl-pdo-sqlite, php-pecl-pdo Provides: php-pdo-abi = %{pdover} +Provides: php-sqlite3, php-pdo_sqlite %description pdo The php-pdo package contains a dynamic shared object that will add @@ -163,7 +173,7 @@ databases. 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 +Provides: php_database, php-mysqli, php-pdo_mysql Obsoletes: mod_php3-mysql, stronghold-php-mysql BuildRequires: mysql-devel >= 4.1.0 @@ -178,7 +188,7 @@ this package and the php package. Summary: A PostgreSQL database module for PHP Group: Development/Languages Requires: php-common = %{version}-%{release}, php-pdo -Provides: php_database +Provides: php_database, php-pdo_pgsql Obsoletes: mod_php3-pgsql, stronghold-php-pgsql BuildRequires: krb5-devel, openssl-devel, postgresql-devel @@ -206,7 +216,7 @@ communication. Group: Development/Languages Requires: php-common = %{version}-%{release}, php-pdo Summary: A module for PHP applications that use ODBC databases -Provides: php_database +Provides: php_database, php-pdo_odbc Obsoletes: stronghold-php-odbc BuildRequires: unixODBC-devel @@ -292,16 +302,6 @@ Requires: php-common = %{version}-%{release} 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 @@ -341,16 +341,6 @@ BuildRequires: libmcrypt-devel 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 @@ -366,6 +356,7 @@ Summary: MSSQL database module for PHP Group: Development/Languages Requires: php-common = %{version}-%{release}, php-pdo BuildRequires: freetds-devel +Provides: php-pdo_dblib %description mssql The php-mssql package contains a dynamic shared object that will @@ -404,6 +395,27 @@ BuildRequires: recode-devel The php-recode package contains a dynamic shared object that will add support for using the recode library to PHP. +%package intl +Summary: Internationalization extension for PHP applications +Group: System Environment/Libraries +Requires: php-common = %{version}-%{release} +BuildRequires: libicu-devel >= 3.6 + +%description intl +The php-intl package contains a dynamic shared object that will add +support for using the ICU library to PHP. + +%package enchant +Summary: Human Language and Character Encoding Support +Group: System Environment/Libraries +Requires: php-common = %{version}-%{release} +BuildRequires: enchant-devel >= 1.2.4 + +%description enchant +The php-intl package contains a dynamic shared object that will add +support for using the enchant library to PHP. + + %prep %setup -q %patch1 -p1 -b .gnusrc @@ -421,13 +433,12 @@ support for using the recode library to PHP. %patch41 -p1 -b .easter %patch42 -p1 -b .systzdata -%patch60 -p1 -b .tests-dashn %patch61 -p1 -b .tests-wddx # Prevent %%doc confusion over LICENSE files cp Zend/LICENSE Zend/ZEND_LICENSE cp TSRM/LICENSE TSRM_LICENSE -cp regex/COPYRIGHT regex_COPYRIGHT +cp ext/ereg/regex/COPYRIGHT regex_COPYRIGHT cp ext/gd/libgd/README gd_README # Multiple builds for multiple SAPIs @@ -464,6 +475,27 @@ if test "x${vpdo}" != "x%{pdover}"; then exit 1 fi +# Check for some extension version +ver=$(sed -n '/#define PHP_FILEINFO_VERSION /{s/.* "//;s/".*$//;p}' ext/fileinfo/php_fileinfo.h) +if test "$ver" != "%{fileinfover}"; then + : Error: Upstream FILEINFO version is now ${ver}, expecting %{fileinfover}. + : Update the fileinfover macro and rebuild. + exit 1 +fi +ver=$(sed -n '/#define PHP_PHAR_VERSION /{s/.* "//;s/".*$//;p}' ext/phar/php_phar.h) +if test "$ver" != "%{pharver}"; then + : Error: Upstream PHAR version is now ${ver}, expecting %{pharver}. + : Update the pharver macro and rebuild. + exit 1 +fi +ver=$(sed -n '/#define PHP_ZIP_VERSION_STRING /{s/.* "//;s/".*$//;p}' ext/zip/php_zip.h) +if test "$ver" != "%{zipver}"; then + : Error: Upstream ZIP version is now ${ver}, expecting %{zipver}. + : Update the zipver macro and rebuild. + exit 1 +fi + + %build # aclocal workaround - to be improved cat `aclocal --print-ac-dir`/{libtool,ltoptions,ltsugar,ltversion,lt~obsolete}.m4 >>aclocal.m4 @@ -547,7 +579,6 @@ build --enable-force-cgi-redirect \ --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} \ @@ -572,25 +603,29 @@ build --enable-force-cgi-redirect \ --with-pdo-pgsql=shared,%{_prefix} \ --with-pdo-sqlite=shared,%{_prefix} \ --with-pdo-dblib=shared,%{_prefix} \ + --with-sqlite3=shared,%{_prefix} \ --enable-json=shared \ --enable-zip=shared \ --with-readline \ - --enable-dbase=shared \ --with-pspell=shared \ + --enable-phar=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} \ + --enable-fileinfo=shared \ + --enable-intl=shared \ + --with-icu-dir=%{_prefix} \ + --with-enchant=shared,%{_prefix} \ --with-recode=shared,%{_prefix} popd without_shared="--without-mysql --without-gd \ - --without-unixODBC --disable-dom \ - --disable-dba --without-unixODBC \ + --disable-dom --disable-dba --without-unixODBC \ --disable-pdo --disable-xmlreader --disable-xmlwriter \ + --without-sqlite3 --disable-phar --disable-fileinfo \ --disable-json --without-pspell --disable-wddx \ --without-curl --disable-posix \ --disable-sysvmsg --disable-sysvshm --disable-sysvsem" @@ -668,11 +703,15 @@ 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 +# Fix the link +(cd $RPM_BUILD_ROOT%{_bindir}; ln -sfn phar.phar phar) + # 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 \ + mbstring gd dom xsl soap bcmath dba xmlreader xmlwriter \ pdo pdo_mysql pdo_pgsql pdo_odbc pdo_sqlite json zip \ - dbase mcrypt mhash tidy pdo_dblib mssql pspell curl wddx \ + sqlite3 enchant phar fileinfo intl \ + mcrypt 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.interbase # sysv* and posix in packaged in php-process cat files.sysv* files.posix > files.process -# Package pdo_sqlite with pdo; isolating the sqlite dependency +# Package sqlite3 and pdo_sqlite with pdo; isolating the sqlite dependency # isn't useful at this time since rpm itself requires sqlite. cat files.pdo_sqlite >> files.pdo +cat files.sqlite3 >> files.pdo -# Package json, dbase and zip in -common. -cat files.json files.dbase files.zip files.curl > files.common +# Package json, zip, curl, phar and fileinfo in -common. +cat files.json files.zip files.curl files.phar files.fileinfo > files.common # Install the macros file: install -d $RPM_BUILD_ROOT%{_sysconfdir}/rpm @@ -753,6 +793,8 @@ rm files.* macros.php %defattr(-,root,root) %{_bindir}/php %{_bindir}/php-cgi +%{_bindir}/phar.phar +%{_bindir}/phar %{_mandir}/man1/php.1* %doc sapi/cgi/README* sapi/cli/README @@ -784,7 +826,6 @@ rm files.* macros.php %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 @@ -792,15 +833,23 @@ rm files.* macros.php %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 intl -f files.intl %files process -f files.process %files recode -f files.recode %files interbase -f files.interbase +%files enchant -f files.enchant %changelog +* Sun Jul 12 2009 Remi Collet 5.3.0-1 +- update to 5.3.0 +- remove ncurses, dbase, mhash extensions +- add enchant, sqlite3, intl, phar, fileinfo extensions +- raise sqlite version to 3.6.0 (for sqlite3, build with --enable-load-extension) +- sync with upstream "production" php.ini + * Sat Jun 21 2009 Remi Collet 5.2.10-1 - update to 5.2.10 - add interbase sub-package diff --git a/sources b/sources index 32d6490..1a02211 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -15c7b5a87f57332d6fc683528e28247b php-5.2.10.tar.bz2 +846760cd655c98dfd86d6d97c3d964b0 php-5.3.0.tar.bz2