summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang/php/files/5.0.5')
-rw-r--r--dev-lang/php/files/5.0.5/CVS/Entries14
-rw-r--r--dev-lang/php/files/5.0.5/CVS/Repository1
-rw-r--r--dev-lang/php/files/5.0.5/CVS/Root1
-rw-r--r--dev-lang/php/files/5.0.5/CVS/Tag1
-rw-r--r--dev-lang/php/files/5.0.5/php5.0.5-apache2sapi.patch139
-rw-r--r--dev-lang/php/files/5.0.5/php5.0.5-curl-open_basedir.patch48
-rw-r--r--dev-lang/php/files/5.0.5/php5.0.5-curl_safemode.patch46
-rw-r--r--dev-lang/php/files/5.0.5/php5.0.5-fopen_wrappers.patch22
-rw-r--r--dev-lang/php/files/5.0.5/php5.0.5-gd-safe_mode.patch95
-rw-r--r--dev-lang/php/files/5.0.5/php5.0.5-gd_safe_mode.patch20
-rw-r--r--dev-lang/php/files/5.0.5/php5.0.5-globals_overwrite.patch203
-rw-r--r--dev-lang/php/files/5.0.5/php5.0.5-mbstring-header_inj.patch133
-rw-r--r--dev-lang/php/files/5.0.5/php5.0.5-multilib-search-path.patch1372
-rw-r--r--dev-lang/php/files/5.0.5/php5.0.5-obj-serialize.patch42
-rw-r--r--dev-lang/php/files/5.0.5/php5.0.5-pspell-ext-segf.patch320
-rw-r--r--dev-lang/php/files/5.0.5/php5.0.5-session_save_path-segf.patch123
-rw-r--r--dev-lang/php/files/5.0.5/php5.0.5-tsrm-gcc4.patch11
17 files changed, 2591 insertions, 0 deletions
diff --git a/dev-lang/php/files/5.0.5/CVS/Entries b/dev-lang/php/files/5.0.5/CVS/Entries
new file mode 100644
index 0000000..fcb858a
--- /dev/null
+++ b/dev-lang/php/files/5.0.5/CVS/Entries
@@ -0,0 +1,14 @@
+/php5.0.5-apache2sapi.patch/1.1/Wed Jan 4 09:24:48 2006/-ko/T1.1
+/php5.0.5-curl-open_basedir.patch/1.1/Wed Jan 4 09:24:48 2006/-ko/T1.1
+/php5.0.5-curl_safemode.patch/1.1/Thu Nov 3 14:09:24 2005/-ko/T1.1
+/php5.0.5-fopen_wrappers.patch/1.1/Mon Oct 31 14:10:39 2005/-ko/T1.1
+/php5.0.5-gd-safe_mode.patch/1.1/Wed Jan 4 09:24:48 2006/-ko/T1.1
+/php5.0.5-gd_safe_mode.patch/1.1/Mon Oct 31 14:10:39 2005/-ko/T1.1
+/php5.0.5-globals_overwrite.patch/1.1/Thu Nov 3 14:09:24 2005/-ko/T1.1
+/php5.0.5-mbstring-header_inj.patch/1.1/Wed Jan 4 09:24:48 2006/-ko/T1.1
+/php5.0.5-multilib-search-path.patch/1.1/Wed Jan 4 09:24:48 2006/-ko/T1.1
+/php5.0.5-obj-serialize.patch/1.1/Mon Oct 31 14:10:39 2005/-ko/T1.1
+/php5.0.5-pspell-ext-segf.patch/1.1/Mon Oct 31 14:10:39 2005/-ko/T1.1
+/php5.0.5-session_save_path-segf.patch/1.1/Mon Oct 31 14:10:39 2005/-ko/T1.1
+/php5.0.5-tsrm-gcc4.patch/1.1/Wed Jan 4 09:24:48 2006/-ko/T1.1
+D
diff --git a/dev-lang/php/files/5.0.5/CVS/Repository b/dev-lang/php/files/5.0.5/CVS/Repository
new file mode 100644
index 0000000..5ae0be2
--- /dev/null
+++ b/dev-lang/php/files/5.0.5/CVS/Repository
@@ -0,0 +1 @@
+gentoo-x86/dev-lang/php/files/5.0.5
diff --git a/dev-lang/php/files/5.0.5/CVS/Root b/dev-lang/php/files/5.0.5/CVS/Root
new file mode 100644
index 0000000..854a2c8
--- /dev/null
+++ b/dev-lang/php/files/5.0.5/CVS/Root
@@ -0,0 +1 @@
+:pserver:anonymous@anoncvs.gentoo.org:/var/cvsroot
diff --git a/dev-lang/php/files/5.0.5/CVS/Tag b/dev-lang/php/files/5.0.5/CVS/Tag
new file mode 100644
index 0000000..5062263
--- /dev/null
+++ b/dev-lang/php/files/5.0.5/CVS/Tag
@@ -0,0 +1 @@
+N1.1
diff --git a/dev-lang/php/files/5.0.5/php5.0.5-apache2sapi.patch b/dev-lang/php/files/5.0.5/php5.0.5-apache2sapi.patch
new file mode 100644
index 0000000..2fa5fb3
--- /dev/null
+++ b/dev-lang/php/files/5.0.5/php5.0.5-apache2sapi.patch
@@ -0,0 +1,139 @@
+--- sapi/apache2handler/sapi_apache2.c 2005-09-02 15:51:26.000000000 +0200
++++ sapi/apache2handler/sapi_apache2.c 2005-12-08 18:43:54.000000000 +0100
+@@ -18,7 +18,7 @@
+ +----------------------------------------------------------------------+
+ */
+
+-/* $Id: sapi_apache2.c,v 1.40.2.11 2005/09/02 13:51:26 sniper Exp $ */
++/* $Id: sapi_apache2.c,v 1.40.2.15 2005/11/29 13:30:11 dmitry Exp $ */
+
+ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS
+
+@@ -436,6 +436,18 @@
+ php_request_shutdown(NULL);
+ }
+
++static void php_apache_ini_dtor(request_rec *r, request_rec *p TSRMLS_DC)
++{
++ if (strcmp(r->protocol, "INCLUDED")) {
++ zend_try { zend_ini_deactivate(TSRMLS_C); } zend_end_try();
++ }
++ if (p) {
++ ((php_struct *)SG(server_context))->r = p;
++ } else {
++ apr_pool_cleanup_run(r->pool, (void *)&SG(server_context), php_server_context_cleanup);
++ }
++}
++
+ static int php_handler(request_rec *r)
+ {
+ php_struct *ctx;
+@@ -446,15 +458,32 @@
+ request_rec *parent_req = NULL;
+ TSRMLS_FETCH();
+
++#define PHPAP_INI_OFF php_apache_ini_dtor(r, parent_req TSRMLS_CC);
++
+ conf = ap_get_module_config(r->per_dir_config, &php5_module);
++
++ /* apply_config() needs r in some cases, so allocate server_context early */
++ ctx = SG(server_context);
++ if (ctx == NULL) {
++normal:
++ ctx = SG(server_context) = apr_pcalloc(r->pool, sizeof(*ctx));
++ /* register a cleanup so we clear out the SG(server_context)
++ * after each request. Note: We pass in the pointer to the
++ * server_context in case this is handled by a different thread.
++ */
++ apr_pool_cleanup_register(r->pool, (void *)&SG(server_context), php_server_context_cleanup, apr_pool_cleanup_null);
++ ctx->r = r;
++ ctx = NULL; /* May look weird to null it here, but it is to catch the right case in the first_try later on */
++ } else {
++ parent_req = ctx->r;
++ ctx->r = r;
++ }
+ apply_config(conf);
+
+ if (strcmp(r->handler, PHP_MAGIC_TYPE) && strcmp(r->handler, PHP_SOURCE_MAGIC_TYPE) && strcmp(r->handler, PHP_SCRIPT)) {
+ /* Check for xbithack in this case. */
+ if (!AP2(xbithack) || strcmp(r->handler, "text/html") || !(r->finfo.protection & APR_UEXECUTE)) {
+- zend_try {
+- zend_ini_deactivate(TSRMLS_C);
+- } zend_end_try();
++ PHPAP_INI_OFF;
+ return DECLINED;
+ }
+ }
+@@ -463,32 +492,24 @@
+ * the configuration; default behaviour is to accept. */
+ if (r->used_path_info == AP_REQ_REJECT_PATH_INFO
+ && r->path_info && r->path_info[0]) {
+- zend_try {
+- zend_ini_deactivate(TSRMLS_C);
+- } zend_end_try();
++ PHPAP_INI_OFF;
+ return HTTP_NOT_FOUND;
+ }
+
+ /* handle situations where user turns the engine off */
+ if (!AP2(engine)) {
+- zend_try {
+- zend_ini_deactivate(TSRMLS_C);
+- } zend_end_try();
++ PHPAP_INI_OFF;
+ return DECLINED;
+ }
+
+ if (r->finfo.filetype == 0) {
+ php_apache_sapi_log_message_ex("script '%s' not found or unable to stat", r);
+- zend_try {
+- zend_ini_deactivate(TSRMLS_C);
+- } zend_end_try();
++ PHPAP_INI_OFF;
+ return HTTP_NOT_FOUND;
+ }
+ if (r->finfo.filetype == APR_DIR) {
+ php_apache_sapi_log_message_ex("attempt to invoke directory '%s' as script", r);
+- zend_try {
+- zend_ini_deactivate(TSRMLS_C);
+- } zend_end_try();
++ PHPAP_INI_OFF;
+ return HTTP_FORBIDDEN;
+ }
+
+@@ -504,25 +525,24 @@
+
+ zend_first_try {
+
+- ctx = SG(server_context);
+ if (ctx == NULL) {
+-normal:
+- ctx = SG(server_context) = apr_pcalloc(r->pool, sizeof(*ctx));
+- /* register a cleanup so we clear out the SG(server_context)
+- * after each request. Note: We pass in the pointer to the
+- * server_context in case this is handled by a different thread.
+- */
+- apr_pool_cleanup_register(r->pool, (void *)&SG(server_context), php_server_context_cleanup, apr_pool_cleanup_null);
+-
+- ctx->r = r;
+ brigade = apr_brigade_create(r->pool, r->connection->bucket_alloc);
++ ctx = SG(server_context);
+ ctx->brigade = brigade;
+
+ if (php_apache_request_ctor(r, ctx TSRMLS_CC)!=SUCCESS) {
+ zend_bailout();
+ }
+ } else {
+- parent_req = ctx->r;
++ if (!parent_req) {
++ parent_req = ctx->r;
++ }
++ if (parent_req && parent_req->handler && strcmp(parent_req->handler, PHP_MAGIC_TYPE) && strcmp(parent_req->handler, PHP_SOURCE_MAGIC_TYPE) && strcmp(parent_req->handler, PHP_SCRIPT)) {
++ if (php_apache_request_ctor(r, ctx TSRMLS_CC)!=SUCCESS) {
++ zend_bailout();
++ }
++ }
++
+ /* check if comming due to ErrorDocument */
+ if (parent_req && parent_req->status != HTTP_OK) {
+ parent_req = NULL;
diff --git a/dev-lang/php/files/5.0.5/php5.0.5-curl-open_basedir.patch b/dev-lang/php/files/5.0.5/php5.0.5-curl-open_basedir.patch
new file mode 100644
index 0000000..4f16430
--- /dev/null
+++ b/dev-lang/php/files/5.0.5/php5.0.5-curl-open_basedir.patch
@@ -0,0 +1,48 @@
+--- ext/curl/interface.c 2005/06/02 21:04:43 1.46.2.8
++++ ext/curl/interface.c 2005/11/29 11:03:29 1.46.2.13
+@@ -16,7 +16,7 @@
+ +----------------------------------------------------------------------+
+ */
+
+-/* $Id: interface.c,v 1.46.2.8 2005/06/02 21:04:43 tony2001 Exp $ */
++/* $Id: interface.c,v 1.46.2.13 2005/11/29 11:03:29 dmitry Exp $ */
+
+ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS
+
+@@ -62,8 +62,8 @@ static void _php_curl_close(zend_rsrc_li
+ #define CAAZ(s, v) add_assoc_zval_ex(return_value, s, sizeof(s), (zval *) v);
+
+ #define PHP_CURL_CHECK_OPEN_BASEDIR(str, len) \
+- if (PG(open_basedir) && *PG(open_basedir) && \
+- strncasecmp(str, "file://", sizeof("file://") - 1) == 0) \
++ if (((PG(open_basedir) && *PG(open_basedir)) || PG(safe_mode)) && \
++ strncasecmp(str, "file:", sizeof("file:") - 1) == 0) \
+ { \
+ php_url *tmp_url; \
+ \
+@@ -72,7 +72,7 @@ static void _php_curl_close(zend_rsrc_li
+ RETURN_FALSE; \
+ } \
+ \
+- if (php_check_open_basedir(tmp_url->path TSRMLS_CC) || \
++ if (tmp_url->query || tmp_url->fragment || php_check_open_basedir(tmp_url->path TSRMLS_CC) || \
+ (PG(safe_mode) && !php_checkuid(tmp_url->path, "rb+", CHECKUID_CHECK_MODE_PARAM)) \
+ ) { \
+ php_url_free(tmp_url); \
+@@ -1128,10 +1128,15 @@ PHP_FUNCTION(curl_setopt)
+ * must be explicitly cast to long in curl_formadd
+ * use since curl needs a long not an int. */
+ if (*postval == '@') {
++ ++postval;
++ /* safe_mode / open_basedir check */
++ if (php_check_open_basedir(postval TSRMLS_CC) || (PG(safe_mode) && !php_checkuid(postval, "rb+", CHECKUID_CHECK_MODE_PARAM))) {
++ RETURN_FALSE;
++ }
+ error = curl_formadd(&first, &last,
+ CURLFORM_COPYNAME, string_key,
+ CURLFORM_NAMELENGTH, (long)string_key_len - 1,
+- CURLFORM_FILE, ++postval,
++ CURLFORM_FILE, postval,
+ CURLFORM_END);
+ } else {
+ error = curl_formadd(&first, &last,
diff --git a/dev-lang/php/files/5.0.5/php5.0.5-curl_safemode.patch b/dev-lang/php/files/5.0.5/php5.0.5-curl_safemode.patch
new file mode 100644
index 0000000..91424e4
--- /dev/null
+++ b/dev-lang/php/files/5.0.5/php5.0.5-curl_safemode.patch
@@ -0,0 +1,46 @@
+--- ext/curl/interface.c 2005-06-02 23:04:43.000000000 +0200
++++ ext/curl/interface.c.new 2005-10-31 23:18:13.000000000 +0100
+@@ -16,7 +16,7 @@
+ +----------------------------------------------------------------------+
+ */
+
+-/* $Id: interface.c,v 1.46.2.8 2005/06/02 21:04:43 tony2001 Exp $ */
++/* $Id: interface.c,v 1.46.2.11 2005/10/17 02:42:32 iliaa Exp $ */
+
+ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS
+
+@@ -62,7 +62,7 @@
+ #define CAAZ(s, v) add_assoc_zval_ex(return_value, s, sizeof(s), (zval *) v);
+
+ #define PHP_CURL_CHECK_OPEN_BASEDIR(str, len) \
+- if (PG(open_basedir) && *PG(open_basedir) && \
++ if (((PG(open_basedir) && *PG(open_basedir)) || PG(safe_mode)) && \
+ strncasecmp(str, "file://", sizeof("file://") - 1) == 0) \
+ { \
+ php_url *tmp_url; \
+@@ -72,7 +72,7 @@
+ RETURN_FALSE; \
+ } \
+ \
+- if (php_check_open_basedir(tmp_url->path TSRMLS_CC) || \
++ if (tmp_url->query || php_check_open_basedir(tmp_url->path TSRMLS_CC) || \
+ (PG(safe_mode) && !php_checkuid(tmp_url->path, "rb+", CHECKUID_CHECK_MODE_PARAM)) \
+ ) { \
+ php_url_free(tmp_url); \
+@@ -1128,10 +1128,15 @@
+ * must be explicitly cast to long in curl_formadd
+ * use since curl needs a long not an int. */
+ if (*postval == '@') {
++ ++postval;
++ /* safe_mode / open_basedir check */
++ if (php_check_open_basedir(postval TSRMLS_CC) || (PG(safe_mode) && !php_checkuid(postval, "rb+", CHECKUID_CHECK_MODE_PARAM))) {
++ RETURN_FALSE;
++ }
+ error = curl_formadd(&first, &last,
+ CURLFORM_COPYNAME, string_key,
+ CURLFORM_NAMELENGTH, (long)string_key_len - 1,
+- CURLFORM_FILE, ++postval,
++ CURLFORM_FILE, postval,
+ CURLFORM_END);
+ } else {
+ error = curl_formadd(&first, &last,
diff --git a/dev-lang/php/files/5.0.5/php5.0.5-fopen_wrappers.patch b/dev-lang/php/files/5.0.5/php5.0.5-fopen_wrappers.patch
new file mode 100644
index 0000000..b945c11
--- /dev/null
+++ b/dev-lang/php/files/5.0.5/php5.0.5-fopen_wrappers.patch
@@ -0,0 +1,22 @@
+--- main/fopen_wrappers.c 2005/07/16 12:14:44 1.170.2.4
++++ main/fopen_wrappers.c 2005/09/27 15:08:11 1.170.2.5
+@@ -17,7 +17,7 @@
+ +----------------------------------------------------------------------+
+ */
+
+-/* $Id: fopen_wrappers.c,v 1.170.2.4 2005/07/16 12:14:44 hyanantha Exp $ */
++/* $Id: fopen_wrappers.c,v 1.170.2.5 2005/09/27 15:08:11 iliaa Exp $ */
+
+ /* {{{ includes
+ */
+@@ -109,8 +109,8 @@ PHPAPI int php_check_specific_open_based
+ /* Handler for basedirs that end with a / */
+ resolved_basedir_len = strlen(resolved_basedir);
+ if (basedir[strlen(basedir) - 1] == PHP_DIR_SEPARATOR) {
+- if (resolved_basedir[resolved_basedir_len - 1] == '/') {
+- resolved_basedir[resolved_basedir_len - 1] = PHP_DIR_SEPARATOR;
++ if (resolved_basedir[resolved_basedir_len - 1] != PHP_DIR_SEPARATOR) {
++ resolved_basedir[resolved_basedir_len] = PHP_DIR_SEPARATOR;
+ resolved_basedir[++resolved_basedir_len] = '\0';
+ }
+ }
diff --git a/dev-lang/php/files/5.0.5/php5.0.5-gd-safe_mode.patch b/dev-lang/php/files/5.0.5/php5.0.5-gd-safe_mode.patch
new file mode 100644
index 0000000..8b09432
--- /dev/null
+++ b/dev-lang/php/files/5.0.5/php5.0.5-gd-safe_mode.patch
@@ -0,0 +1,95 @@
+--- ext/gd/gd.c 2005-12-08 15:44:36.000000000 +0100
++++ ext/gd/gd.c 2005-12-08 17:21:55.000000000 +0100
+@@ -705,7 +705,7 @@
+
+ convert_to_string_ex(file);
+
+- stream = php_stream_open_wrapper(Z_STRVAL_PP(file), "rb", IGNORE_PATH | IGNORE_URL_WIN | REPORT_ERRORS, NULL);
++ stream = php_stream_open_wrapper(Z_STRVAL_PP(file), "rb", ENFORCE_SAFE_MODE | IGNORE_PATH | IGNORE_URL_WIN | REPORT_ERRORS, NULL);
+ if (stream == NULL) {
+ RETURN_FALSE;
+ }
+@@ -889,6 +889,10 @@
+ convert_to_boolean_ex(dither);
+ convert_to_long_ex(ncolors);
+
++ if (Z_LVAL_PP(ncolors) <= 0) {
++ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Number of colors has to be greater than zero");
++ RETURN_FALSE;
++ }
+ gdImageTrueColorToPalette(im, Z_LVAL_PP(dither), Z_LVAL_PP(ncolors));
+
+ RETURN_TRUE;
+@@ -1518,7 +1522,7 @@
+
+ fn = Z_STRVAL_PP(file);
+
+- stream = php_stream_open_wrapper(fn, "rb", REPORT_ERRORS|IGNORE_PATH|IGNORE_URL_WIN, NULL);
++ stream = php_stream_open_wrapper(fn, "rb", ENFORCE_SAFE_MODE|REPORT_ERRORS|IGNORE_PATH|IGNORE_URL_WIN, NULL);
+ if (stream == NULL) {
+ RETURN_FALSE;
+ }
+@@ -1726,10 +1730,7 @@
+ }
+
+ if ((argc == 2) || (argc > 2 && Z_STRLEN_PP(file))) {
+- if (!fn || fn == empty_string || php_check_open_basedir(fn TSRMLS_CC)) {
+- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid filename '%s'", fn);
+- RETURN_FALSE;
+- }
++ PHP_GD_CHECK_OPEN_BASEDIR(fn, "Invalid filename");
+
+ fp = VCWD_FOPEN(fn, "wb");
+ if (!fp) {
+@@ -3824,16 +3825,10 @@
+ }
+
+ /* Check origin file */
+- if (!fn_org || fn_org == empty_string || php_check_open_basedir(fn_org TSRMLS_CC)) {
+- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid origin filename '%s'", fn_org);
+- RETURN_FALSE;
+- }
++ PHP_GD_CHECK_OPEN_BASEDIR(fn_org, "Invalid origin filename");
+
+ /* Check destination file */
+- if (!fn_dest || fn_dest == empty_string || php_check_open_basedir(fn_dest TSRMLS_CC)) {
+- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid destination filename '%s'", fn_dest);
+- RETURN_FALSE;
+- }
++ PHP_GD_CHECK_OPEN_BASEDIR(fn_dest, "Invalid destination filename");
+
+ /* Open origin file */
+ org = VCWD_FOPEN(fn_org, "rb");
+--- ext/gd/gd_ctx.c 2005-12-08 15:44:42.000000000 +0100
++++ ext/gd/gd_ctx.c 2005-12-08 17:25:24.000000000 +0100
+@@ -82,10 +82,8 @@
+ }
+
+ if ((argc == 2) || (argc > 2 && Z_STRLEN_PP(file))) {
+- if (!fn || fn == empty_string || php_check_open_basedir(fn TSRMLS_CC)) {
+- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid filename '%s'", fn);
+- RETURN_FALSE;
+- }
++
++ PHP_GD_CHECK_OPEN_BASEDIR(fn, "Invalid filename");
+
+ fp = VCWD_FOPEN(fn, "wb");
+ if (!fp) {
+--- ext/gd/php_gd.h 2005-12-08 15:44:49.000000000 +0100
++++ ext/gd/php_gd.h 2005-12-08 17:29:53.000000000 +0100
+@@ -30,6 +30,15 @@
+
+ #if HAVE_LIBGD
+
++/* open_basedir and safe_mode checks */
++#define PHP_GD_CHECK_OPEN_BASEDIR(filename, errormsg) \
++ if (!filename || php_check_open_basedir(filename TSRMLS_CC) || \
++ (PG(safe_mode) && !php_checkuid(filename, NULL, CHECKUID_CHECK_FILE_AND_DIR)) \
++ ) { \
++ php_error_docref(NULL TSRMLS_CC, E_WARNING, errormsg); \
++ RETURN_FALSE; \
++ }
++
+ #define PHP_GDIMG_TYPE_GIF 1
+ #define PHP_GDIMG_TYPE_PNG 2
+ #define PHP_GDIMG_TYPE_JPG 3
diff --git a/dev-lang/php/files/5.0.5/php5.0.5-gd_safe_mode.patch b/dev-lang/php/files/5.0.5/php5.0.5-gd_safe_mode.patch
new file mode 100644
index 0000000..05bb354
--- /dev/null
+++ b/dev-lang/php/files/5.0.5/php5.0.5-gd_safe_mode.patch
@@ -0,0 +1,20 @@
+--- ext/gd/gd.c 2005/05/06 16:49:04 1.294.2.12
++++ ext/gd/gd.c 2005/10/06 20:42:56 1.294.2.13
+@@ -18,7 +18,7 @@
+ +----------------------------------------------------------------------+
+ */
+
+-/* $Id: gd.c,v 1.294.2.12 2005/05/06 16:49:04 tony2001 Exp $ */
++/* $Id: gd.c,v 1.294.2.13 2005/10/06 20:42:56 iliaa Exp $ */
+
+ /* gd 1.2 is copyright 1994, 1995, Quest Protein Database Center,
+ Cold Spring Harbor Labs. */
+@@ -1726,7 +1726,7 @@ static void _php_image_output(INTERNAL_F
+ }
+
+ if ((argc == 2) || (argc > 2 && Z_STRLEN_PP(file))) {
+- if (!fn || fn == empty_string || php_check_open_basedir(fn TSRMLS_CC)) {
++ if (!fn || fn == empty_string || php_check_open_basedir(fn TSRMLS_CC) || (PG(safe_mode) && !php_checkuid(fn, "rb+", CHECKUID_CHECK_FILE_AND_DIR))) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid filename '%s'", fn);
+ RETURN_FALSE;
+ }
diff --git a/dev-lang/php/files/5.0.5/php5.0.5-globals_overwrite.patch b/dev-lang/php/files/5.0.5/php5.0.5-globals_overwrite.patch
new file mode 100644
index 0000000..cdae541
--- /dev/null
+++ b/dev-lang/php/files/5.0.5/php5.0.5-globals_overwrite.patch
@@ -0,0 +1,203 @@
+--- ext/standard/array.c 2005-09-01 14:01:01.000000000 +0200
++++ ext/standard/array.c 2005-11-01 01:15:13.000000000 +0100
+@@ -21,7 +21,7 @@
+ +----------------------------------------------------------------------+
+ */
+
+-/* $Id: array.c,v 1.266.2.25 2005/09/01 12:01:01 dmitry Exp $ */
++/* $Id: array.c,v 1.266.2.29 2005/10/28 09:57:15 dmitry Exp $ */
+
+ #include "php.h"
+ #include "php_ini.h"
+@@ -1050,6 +1050,7 @@
+ if (recursive && Z_TYPE_PP(args[0]) == IS_ARRAY) {
+ HashTable *thash;
+
++ SEPARATE_ZVAL_TO_MAKE_IS_REF(args[0]);
+ thash = HASH_OF(*(args[0]));
+ if (thash == target_hash) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "recursion detected");
+@@ -1373,6 +1374,10 @@
+ /* break omitted intentionally */
+
+ case EXTR_OVERWRITE:
++ /* GLOBALS protection */
++ if (var_exists && !strcmp(var_name, "GLOBALS")) {
++ break;
++ }
+ smart_str_appendl(&final_name, var_name, var_name_len);
+ break;
+
+@@ -2487,8 +2492,9 @@
+ Z_LVAL_PP(tmp)++;
+ }
+ } else if (Z_TYPE_PP(entry) == IS_STRING) {
+- /* make sure our array does not end up with numeric string keys */
+- if (is_numeric_string(Z_STRVAL_PP(entry), Z_STRLEN_PP(entry), NULL, NULL, 0) == IS_LONG) {
++ /* make sure our array does not end up with numeric string keys
++ * but don't touch those strings that start with 0 */
++ if (!(Z_STRLEN_PP(entry) > 1 && Z_STRVAL_PP(entry)[0] == '0') && is_numeric_string(Z_STRVAL_PP(entry), Z_STRLEN_PP(entry), NULL, NULL, 0) == IS_LONG) {
+ zval tmp_entry;
+
+ tmp_entry = **entry;
+@@ -3975,7 +3981,7 @@
+ PHP_FUNCTION(array_filter)
+ {
+ zval **input, **callback = NULL;
+- zval *array;
++ zval *array, *func = NULL;
+ zval **operand;
+ zval **args[1];
+ zval *retval = NULL;
+@@ -3995,10 +4001,13 @@
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "The first argument should be an array");
+ return;
+ }
++ if (callback) {
++ func = *callback;
++ }
+ array = *input;
+
+ if (ZEND_NUM_ARGS() > 1) {
+- if (!zend_is_callable(*callback, 0, &callback_name)) {
++ if (!zend_is_callable(func, 0, &callback_name)) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "The second argument, '%s', should be a valid callback", callback_name);
+ efree(callback_name);
+ return;
+@@ -4015,14 +4024,14 @@
+ zend_hash_get_current_data_ex(Z_ARRVAL_P(array), (void **)&operand, &pos) == SUCCESS;
+ zend_hash_move_forward_ex(Z_ARRVAL_P(array), &pos)) {
+
+- if (callback) {
++ if (func) {
+ zend_fcall_info fci;
+
+ args[0] = operand;
+
+ fci.size = sizeof(fci);
+ fci.function_table = EG(function_table);
+- fci.function_name = *callback;
++ fci.function_name = func;
+ fci.symbol_table = NULL;
+ fci.object_pp = NULL;
+ fci.retval_ptr_ptr = &retval;
+--- ext/standard/basic_functions.c 2005-08-21 20:36:33.000000000 +0200
++++ ext/standard/basic_functions.c 2005-11-01 01:15:20.000000000 +0100
+@@ -17,7 +17,7 @@
+ +----------------------------------------------------------------------+
+ */
+
+-/* $Id: basic_functions.c,v 1.673.2.18 2005/08/21 18:36:33 zeev Exp $ */
++/* $Id: basic_functions.c,v 1.673.2.21 2005/09/29 16:31:20 iliaa Exp $ */
+
+ #include "php.h"
+ #include "php_streams.h"
+@@ -742,8 +743,8 @@
+ PHP_FE(prev, first_arg_force_ref)
+ PHP_FE(next, first_arg_force_ref)
+ PHP_FE(reset, first_arg_force_ref)
+- PHP_FE(current, first_arg_force_ref)
+- PHP_FE(key, first_arg_force_ref)
++ PHP_FE(current, NULL)
++ PHP_FE(key, NULL)
+ PHP_FE(min, NULL)
+ PHP_FE(max, NULL)
+ PHP_FE(in_array, NULL)
+@@ -3076,11 +3077,25 @@
+ prefix = va_arg(args, char *);
+ prefix_len = va_arg(args, uint);
+
+- new_key_len = prefix_len + hash_key->nKeyLength;
+- new_key = (char *) emalloc(new_key_len);
++ if (!prefix_len) {
++ if (!hash_key->nKeyLength) {
++ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Numeric key detected - possible security hazard.");
++ return 0;
++ } else if (!strcmp(hash_key->arKey, "GLOBALS")) {
++ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Attempted GLOBALS variable overwrite.");
++ return 0;
++ }
++ }
++
++ if (hash_key->nKeyLength) {
++ new_key_len = prefix_len + hash_key->nKeyLength;
++ new_key = (char *) emalloc(new_key_len);
+
+- memcpy(new_key, prefix, prefix_len);
+- memcpy(new_key+prefix_len, hash_key->arKey, hash_key->nKeyLength);
++ memcpy(new_key, prefix, prefix_len);
++ memcpy(new_key+prefix_len, hash_key->arKey, hash_key->nKeyLength);
++ } else {
++ new_key_len = spprintf(&new_key, 0, "%s%ld", prefix, hash_key->h);
++ }
+
+ zend_hash_del(&EG(symbol_table), new_key, new_key_len);
+ ZEND_SET_SYMBOL_WITH_LENGTH(&EG(symbol_table), new_key, new_key_len, *var, (*var)->refcount+1, 0);
+--- ext/standard/string.c 2005-07-16 13:18:35.000000000 +0200
++++ ext/standard/string.c 2005-11-01 01:15:27.000000000 +0100
+@@ -18,7 +18,7 @@
+ +----------------------------------------------------------------------+
+ */
+
+-/* $Id: string.c,v 1.420.2.12 2005/07/16 11:18:35 hyanantha Exp $ */
++/* $Id: string.c,v 1.420.2.13 2005/09/28 22:35:43 iliaa Exp $ */
+
+ /* Synced with php 3.0 revision 1.193 1999-06-16 [ssb] */
+
+@@ -3809,7 +3809,6 @@
+ zval *sarg;
+ char *res = NULL;
+ int argCount;
+- int old_rg;
+
+ argCount = ZEND_NUM_ARGS();
+ if (argCount < 1 || argCount > 2 || zend_get_parameters_ex(argCount, &arg, &arrayArg) == FAILURE) {
+@@ -3822,19 +3821,18 @@
+ res = estrndup(Z_STRVAL_P(sarg), Z_STRLEN_P(sarg));
+ }
+
+- old_rg = PG(register_globals);
+ if (argCount == 1) {
+- PG(register_globals) = 1;
+- sapi_module.treat_data(PARSE_STRING, res, NULL TSRMLS_CC);
++ zval tmp;
++ Z_ARRVAL(tmp) = EG(active_symbol_table);
++
++ sapi_module.treat_data(PARSE_STRING, res, &tmp TSRMLS_CC);
+ } else {
+- PG(register_globals) = 0;
+ /* Clear out the array that was passed in. */
+ zval_dtor(*arrayArg);
+ array_init(*arrayArg);
+
+ sapi_module.treat_data(PARSE_STRING, res, *arrayArg TSRMLS_CC);
+ }
+- PG(register_globals) = old_rg;
+ }
+ /* }}} */
+
+--- main/php_variables.c 2005-09-01 21:15:51.000000000 +0200
++++ main/php_variables.c 2005-11-01 01:16:22.000000000 +0100
+@@ -17,7 +17,7 @@
+ +----------------------------------------------------------------------+
+ */
+
+-/* $Id: php_variables.c,v 1.81.2.12 2005/09/01 19:15:51 iliaa Exp $ */
++/* $Id: php_variables.c,v 1.81.2.13 2005/09/28 22:35:42 iliaa Exp $ */
+
+ #include <stdio.h>
+ #include "php.h"
+@@ -103,6 +103,13 @@
+ zval_dtor(val);
+ return;
+ }
++
++ /* GLOBALS hijack attempt, reject parameter */
++ if (symtable1 == EG(active_symbol_table) && !strcmp("GLOBALS", var)) {
++ zval_dtor(val);
++ return;
++ }
++
+ /* ensure that we don't have spaces or dots in the variable name (not binary safe) */
+ for (p=var; *p; p++) {
+ switch(*p) {
diff --git a/dev-lang/php/files/5.0.5/php5.0.5-mbstring-header_inj.patch b/dev-lang/php/files/5.0.5/php5.0.5-mbstring-header_inj.patch
new file mode 100644
index 0000000..93701e9
--- /dev/null
+++ b/dev-lang/php/files/5.0.5/php5.0.5-mbstring-header_inj.patch
@@ -0,0 +1,133 @@
+--- ext/mbstring/mbstring.c 2005/02/21 15:15:08 1.214.2.4
++++ ext/mbstring/mbstring.c 2005/11/25 22:18:45 1.214.2.7
+@@ -17,7 +17,7 @@
+ +----------------------------------------------------------------------+
+ */
+
+-/* $Id: mbstring.c,v 1.214.2.4 2005/02/21 15:15:08 moriyoshi Exp $ */
++/* $Id: mbstring.c,v 1.214.2.7 2005/11/25 22:18:45 hirokawa Exp $ */
+
+ /*
+ * PHP 4 Multibyte String module "mbstring"
+@@ -2267,7 +2267,7 @@ PHP_FUNCTION(mb_list_encodings)
+ }
+ /* }}} */
+
+-/* {{{ proto string mb_encode_mimeheader(string str [, string charset [, string transfer-encoding [, string linefeed]]])
++/* {{{ proto string mb_encode_mimeheader(string str [, string charset [, string transfer-encoding [, string linefeed [, int indent]]]])
+ Converts the string to MIME "encoded-word" in the format of =?charset?(B|Q)?encoded_string?= */
+ PHP_FUNCTION(mb_encode_mimeheader)
+ {
+@@ -2279,12 +2279,13 @@ PHP_FUNCTION(mb_encode_mimeheader)
+ int trans_enc_name_len;
+ char *linefeed = "\r\n";
+ int linefeed_len;
++ int indent = 0;
+
+ mbfl_string_init(&string);
+ string.no_language = MBSTRG(current_language);
+ string.no_encoding = MBSTRG(current_internal_encoding);
+
+- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|sss", (char **)&string.val, &string.len, &charset_name, &charset_name_len, &trans_enc_name, &trans_enc_name_len, &linefeed, &linefeed_len) == FAILURE) {
++ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|sssl", (char **)&string.val, &string.len, &charset_name, &charset_name_len, &trans_enc_name, &trans_enc_name_len, &linefeed, &linefeed_len, &indent) == FAILURE) {
+ return;
+ }
+
+@@ -2314,7 +2315,7 @@ PHP_FUNCTION(mb_encode_mimeheader)
+ }
+
+ mbfl_string_init(&result);
+- ret = mbfl_mime_header_encode(&string, &result, charset, transenc, linefeed, 0);
++ ret = mbfl_mime_header_encode(&string, &result, charset, transenc, linefeed, indent);
+ if (ret != NULL) {
+ RETVAL_STRINGL((char *)ret->val, ret->len, 0) /* the string is already strdup()'ed */
+ } else {
+@@ -2770,6 +2771,15 @@ PHP_FUNCTION(mb_decode_numericentity)
+ */
+ #if HAVE_SENDMAIL
+
++#define SKIP_LONG_HEADER_SEP_MBSTRING(str, pos) \
++ if (str[pos] == '\r' && str[pos + 1] == '\n' && (str[pos + 2] == ' ' || str[pos + 2] == '\t')) { \
++ pos += 3; \
++ while (str[pos] == ' ' || str[pos] == '\t') { \
++ pos++; \
++ } \
++ continue; \
++ }
++
+ #define APPEND_ONE_CHAR(ch) do { \
+ if (token.a > 0) { \
+ smart_str_appendc(&token, ch); \
+@@ -2981,6 +2991,9 @@ PHP_FUNCTION(mb_send_mail)
+ int subject_len;
+ char *extra_cmd=NULL;
+ int extra_cmd_len;
++ int i;
++ char *to_r;
++ char *force_extra_parameters = INI_STR("mail.force_extra_parameters");
+ struct {
+ int cnt_type:1;
+ int cnt_trans_enc:1;
+@@ -3086,7 +3099,30 @@ PHP_FUNCTION(mb_send_mail)
+ }
+
+ /* To: */
+- if (to == NULL || to_len <= 0) {
++ if (to != NULL) {
++ if (to_len > 0) {
++ to_r = estrndup(to, to_len);
++ for (; to_len; to_len--) {
++ if (!isspace((unsigned char) to_r[to_len - 1])) {
++ break;
++ }
++ to_r[to_len - 1] = '\0';
++ }
++ for (i = 0; to_r[i]; i++) {
++ if (iscntrl((unsigned char) to_r[i])) {
++ /* According to RFC 822, section 3.1.1 long headers may be separated into
++ * parts using CRLF followed at least one linear-white-space character ('\t' or ' ').
++ * To prevent these separators from being replaced with a space, we use the
++ * SKIP_LONG_HEADER_SEP_MBSTRING to skip over them.
++ */
++ SKIP_LONG_HEADER_SEP_MBSTRING(to_r, i);
++ to_r[i] = ' ';
++ }
++ }
++ } else {
++ to_r = to;
++ }
++ } else {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Missing To: field");
+ err = 1;
+ }
+@@ -3182,12 +3218,20 @@ PHP_FUNCTION(mb_send_mail)
+ mbfl_memory_device_output('\0', &device);
+ headers = (char *)device.buffer;
+
+- if (!err && php_mail(to, subject, message, headers, extra_cmd TSRMLS_CC)) {
++ if (force_extra_parameters) {
++ extra_cmd = estrdup(force_extra_parameters);
++ } else if (extra_cmd) {
++ extra_cmd = php_escape_shell_cmd(extra_cmd);
++ }
++
++ if (!err && php_mail(to_r, subject, message, headers, extra_cmd TSRMLS_CC)) {
+ RETVAL_TRUE;
+ } else {
+ RETVAL_FALSE;
+ }
+-
++ if (to_r != to) {
++ efree(to_r);
++ }
+ if (subject_buf) {
+ efree((void *)subject_buf);
+ }
+@@ -3198,6 +3242,7 @@ PHP_FUNCTION(mb_send_mail)
+ zend_hash_destroy(&ht_headers);
+ }
+
++#undef SKIP_LONG_HEADER_SEP_MBSTRING
+ #undef APPEND_ONE_CHAR
+ #undef SEPARATE_SMART_STR
+ #undef PHP_MBSTR_MAIL_MIME_HEADER1
diff --git a/dev-lang/php/files/5.0.5/php5.0.5-multilib-search-path.patch b/dev-lang/php/files/5.0.5/php5.0.5-multilib-search-path.patch
new file mode 100644
index 0000000..6580e1b
--- /dev/null
+++ b/dev-lang/php/files/5.0.5/php5.0.5-multilib-search-path.patch
@@ -0,0 +1,1372 @@
+diff -Nru php-5.0.5.orig/acinclude.m4 php-5.0.5/acinclude.m4
+--- php-5.0.5.orig/acinclude.m4 2005-07-26 00:31:07.000000000 +0200
++++ php-5.0.5/acinclude.m4 2005-12-04 16:12:45.000000000 +0100
+@@ -190,7 +190,7 @@
+ unset ac_new_flags
+ for i in [$]$1; do
+ case [$]i in
+- -L/usr/lib|-L/usr/lib/[)] ;;
++ -L/usr/lib|-L/usr/lib/|-L/usr/lib64|-L/usr/lib64/[)] ;;
+ *[)] ac_new_flags="[$]ac_new_flags [$]i" ;;
+ esac
+ done
+@@ -641,7 +641,7 @@
+ ])
+
+ AC_DEFUN([PHP_PROG_SENDMAIL],[
+-PHP_ALT_PATH=/usr/bin:/usr/sbin:/usr/etc:/etc:/usr/ucblib:/usr/lib
++PHP_ALT_PATH=/usr/bin:/usr/sbin:/usr/etc:/etc:/usr/ucblib:/usr/lib:/usr/lib64
+ AC_PATH_PROG(PROG_SENDMAIL, sendmail,[], $PATH:$PHP_ALT_PATH)
+ if test -n "$PROG_SENDMAIL"; then
+ AC_DEFINE(HAVE_SENDMAIL,1,[whether you have sendmail])
+@@ -852,7 +852,9 @@
+ dnl add a library to linkpath/runpath
+ dnl
+ AC_DEFUN([PHP_ADD_LIBPATH],[
+- if test "$1" != "/usr/lib"; then
++ case x$1 in
++ x/usr/lib|x/usr/lib64) ;;
++ *)
+ PHP_EXPAND_PATH($1, ai_p)
+ ifelse([$2],,[
+ _PHP_ADD_LIBPATH_GLOBAL([$ai_p])
+@@ -862,8 +864,8 @@
+ else
+ _PHP_ADD_LIBPATH_GLOBAL([$ai_p])
+ fi
+- ])
+- fi
++ ]) ;;
++ esac
+ ])
+
+ dnl
+@@ -1669,15 +1671,20 @@
+ fi
+
+ for i in $PHP_KERBEROS; do
+- if test -f $i/lib/libkrb5.a || test -f $i/lib/libkrb5.$SHLIB_SUFFIX_NAME; then
++ if test -f $i/lib/libkrb5.a -o -f $i/lib/libkrb5.$SHLIB_SUFFIX_NAME; then
+ PHP_KERBEROS_DIR=$i
++ PHP_KERBEROS_LIBDIR=$i/lib
++ break
++ elif test -f $i/lib64/libkrb5.a -o -f $i/lib64/libkrb5.$SHLIB_SUFFIX_NAME; then
++ PHP_KERBEROS_DIR=$i
++ PHP_KERBEROS_LIBDIR=$i/lib64
+ break
+ fi
+ done
+
+ if test "$PHP_KERBEROS_DIR"; then
+ found_kerberos=yes
+- PHP_ADD_LIBPATH($PHP_KERBEROS_DIR/lib, $1)
++ PHP_ADD_LIBPATH($PHP_KERBEROS_LIBDIR, $1)
+ PHP_ADD_LIBRARY(gssapi_krb5, 1, $1)
+ PHP_ADD_LIBRARY(krb5, 1, $1)
+ PHP_ADD_LIBRARY(k5crypto, 1, $1)
+@@ -1749,6 +1756,9 @@
+ if test -r $i/lib/libssl.a -o -r $i/lib/libssl.$SHLIB_SUFFIX_NAME; then
+ OPENSSL_LIBDIR=$i/lib
+ fi
++ if test -r $i/lib64/libssl.a -o -r $i/lib64/libssl.$SHLIB_SUFFIX_NAME; then
++ OPENSSL_LIBDIR=$i/lib64
++ fi
+ test -n "$OPENSSL_INCDIR" && test -n "$OPENSSL_LIBDIR" && break
+ done
+
+@@ -1869,7 +1879,9 @@
+ fi
+
+ if test -f $ICONV_DIR/lib/lib$iconv_lib_name.a ||
+- test -f $ICONV_DIR/lib/lib$iconv_lib_name.$SHLIB_SUFFIX_NAME
++ test -f $ICONV_DIR/lib/lib$iconv_lib_name.$SHLIB_SUFFIX_NAME ||
++ test -f $ICONV_DIR/lib64/lib$iconv_lib_name.a ||
++ test -f $ICONV_DIR/lib64/lib$iconv_lib_name.$SHLIB_SUFFIX_NAME
+ then
+ PHP_CHECK_LIBRARY($iconv_lib_name, libiconv, [
+ found_iconv=yes
+diff -Nru php-5.0.5.orig/ext/bz2/config.m4 php-5.0.5/ext/bz2/config.m4
+--- php-5.0.5.orig/ext/bz2/config.m4 2004-01-21 06:04:30.000000000 +0100
++++ php-5.0.5/ext/bz2/config.m4 2005-12-04 16:41:58.000000000 +0100
+@@ -19,6 +19,12 @@
+ done
+ fi
+
++ for j in lib64 lib; do
++ if test -d $BZIP_DIR/$j; then
++ BZIP_LIBDIR=$BZIP_DIR/$j
++ fi
++ done
++
+ if test -z "$BZIP_DIR"; then
+ AC_MSG_RESULT(not found)
+ AC_MSG_ERROR(Please reinstall the BZip2 distribution)
+@@ -27,12 +33,12 @@
+ PHP_CHECK_LIBRARY(bz2, BZ2_bzerror,
+ [
+ PHP_ADD_INCLUDE($BZIP_DIR/include)
+- PHP_ADD_LIBRARY_WITH_PATH(bz2, $BZIP_DIR/lib, BZ2_SHARED_LIBADD)
++ PHP_ADD_LIBRARY_WITH_PATH(bz2, $BZIP_LIBDIR, BZ2_SHARED_LIBADD)
+ AC_DEFINE(HAVE_BZ2,1,[ ])
+ ], [
+ AC_MSG_ERROR(bz2 module requires libbz2 >= 1.0.0)
+ ], [
+- -L$BZIP_DIR/lib
++ -L$BZIP_LIBDIR
+ ])
+
+ PHP_NEW_EXTENSION(bz2, bz2.c, $ext_shared)
+diff -Nru php-5.0.5.orig/ext/curl/config.m4 php-5.0.5/ext/curl/config.m4
+--- php-5.0.5.orig/ext/curl/config.m4 2005-02-09 17:23:31.000000000 +0100
++++ php-5.0.5/ext/curl/config.m4 2005-12-04 16:43:25.000000000 +0100
+@@ -49,9 +49,15 @@
+ AC_MSG_ERROR(cURL version 7.10.5 or later is required to compile php with cURL support)
+ fi
+
++ for j in lib64 lib; do
++ if test -d $CURL_DIR/$j; then
++ CURL_LIBDIR=$CURL_DIR/$j
++ fi
++ done
++
+ PHP_ADD_INCLUDE($CURL_DIR/include)
+ PHP_EVAL_LIBLINE($CURL_LIBS, CURL_SHARED_LIBADD)
+- PHP_ADD_LIBRARY_WITH_PATH(curl, $CURL_DIR/lib, CURL_SHARED_LIBADD)
++ PHP_ADD_LIBRARY_WITH_PATH(curl, $CURL_LIBDIR, CURL_SHARED_LIBADD)
+
+ PHP_CHECK_LIBRARY(curl,curl_easy_perform,
+ [
+@@ -59,14 +65,14 @@
+ ],[
+ AC_MSG_ERROR(There is something wrong. Please check config.log for more information.)
+ ],[
+- $CURL_LIBS -L$CURL_DIR/lib
++ $CURL_LIBS -L$CURL_LIBDIR
+ ])
+
+ PHP_CHECK_LIBRARY(curl,curl_version_info,
+ [
+ AC_DEFINE(HAVE_CURL_VERSION_INFO,1,[ ])
+ ],[],[
+- $CURL_LIBS -L$CURL_DIR/lib
++ $CURL_LIBS -L$CURL_LIBDIR
+ ])
+
+ if test "$PHP_CURLWRAPPERS" != "no" ; then
+diff -Nru php-5.0.5.orig/ext/dba/config.m4 php-5.0.5/ext/dba/config.m4
+--- php-5.0.5.orig/ext/dba/config.m4 2005-08-22 21:59:36.000000000 +0200
++++ php-5.0.5/ext/dba/config.m4 2005-12-04 16:58:22.000000000 +0100
+@@ -80,13 +80,19 @@
+ fi
+ done
+
++ for j in lib64 lib; do
++ if test -d $THIS_PREFIX/$j; then
++ THIS_PREFIX_LIBDIR=$THIS_PREFIX/$j
++ fi
++ done
++
+ if test -n "$THIS_INCLUDE"; then
+ for LIB in qdbm; do
+ PHP_CHECK_LIBRARY($LIB, dpopen, [
+ AC_DEFINE_UNQUOTED(QDBM_INCLUDE_FILE, "$THIS_INCLUDE", [ ])
+ AC_DEFINE(DBA_QDBM, 1, [ ])
+ THIS_LIBS=$LIB
+- ], [], [-L$THIS_PREFIX/lib])
++ ], [], [-L$THIS_PREFIX_LIBDIR])
+ if test -n "$THIS_LIBS"; then
+ break
+ fi
+@@ -115,12 +121,18 @@
+ fi
+ done
+
++ for j in lib64 lib; do
++ if test -d $THIS_PREFIX/$j; then
++ THIS_PREFIX_LIBDIR=$THIS_PREFIX/$j
++ fi
++ done
++
+ if test -n "$THIS_INCLUDE"; then
+ PHP_CHECK_LIBRARY(gdbm, gdbm_open, [
+ AC_DEFINE_UNQUOTED(GDBM_INCLUDE_FILE, "$THIS_INCLUDE", [ ])
+ AC_DEFINE(DBA_GDBM, 1, [ ])
+ THIS_LIBS=gdbm
+- ], [], [-L$THIS_PREFIX/lib])
++ ], [], [-L$THIS_PREFIX_LIBDIR])
+ fi
+
+ PHP_DBA_STD_ASSIGN
+@@ -145,14 +157,20 @@
+ break
+ fi
+ done
+-
++
++ for j in lib64 lib; do
++ if test -d $THIS_PREFIX/$j; then
++ THIS_PREFIX_LIBDIR=$THIS_PREFIX/$j
++ fi
++ done
++
+ if test -n "$THIS_INCLUDE"; then
+ for LIB in ndbm db1 c; do
+ PHP_CHECK_LIBRARY($LIB, dbm_open, [
+ AC_DEFINE_UNQUOTED(NDBM_INCLUDE_FILE, "$THIS_INCLUDE", [ ])
+ AC_DEFINE(DBA_NDBM, 1, [ ])
+ THIS_LIBS=$LIB
+- ], [], [-L$THIS_PREFIX/lib])
++ ], [], [-L$THIS_PREFIX_LIBDIR])
+ if test -n "$THIS_LIBS"; then
+ break
+ fi
+@@ -170,25 +188,28 @@
+ dnl parameters(version, library list, function)
+ AC_DEFUN([PHP_DBA_DB_CHECK],[
+ for LIB in $2; do
+- if test -f $THIS_PREFIX/lib/lib$LIB.a -o -f $THIS_PREFIX/lib/lib$LIB.$SHLIB_SUFFIX_NAME; then
+- PHP_TEMP_LDFLAGS(-L$THIS_PREFIX/lib, -l$LIB,[
+- AC_TRY_LINK([
++ for LIBDIR in lib64 lib; do
++ if test -f $THIS_PREFIX/$LIBDIR/lib$LIB.a -o -f $THIS_PREFIX/$LIBDIR/lib$LIB.$SHLIB_SUFFIX_NAME; then
++ PHP_TEMP_LDFLAGS(-L$THIS_PREFIX/$LIBDIR, -l$LIB,[
++ AC_TRY_LINK([
+ #include "$THIS_INCLUDE"
+- ],[
+- $3;
+- ],[
+- AC_EGREP_CPP(yes,[
++ ],[
++ $3;
++ ],[
++ AC_EGREP_CPP(yes,[
+ #include "$THIS_INCLUDE"
+ #if DB_VERSION_MAJOR == $1
+- yes
++ yes
+ #endif
+- ],[
+- THIS_LIBS=$LIB
+- break
++ ],[
++ THIS_LIBS=$LIB
++ break
++ ])
+ ])
+ ])
+- ])
+- fi
++ fi
++ done
++ test -n "$THIS_LIBS" && break
+ done
+ if test -z "$THIS_LIBS"; then
+ AC_MSG_CHECKING(for db$1 major version)
+@@ -352,6 +373,12 @@
+ fi
+ done
+
++ for j in lib64 lib; do
++ if test -d $THIS_PREFIX/$j; then
++ THIS_PREFIX_LIBDIR=$THIS_PREFIX/$j
++ fi
++ done
++
+ if test -n "$THIS_INCLUDE"; then
+ for LIB in dbm c gdbm; do
+ PHP_CHECK_LIBRARY($LIB, dbminit, [
+@@ -366,7 +393,7 @@
+ fi
+ AC_DEFINE(DBA_DBM, 1, [ ])
+ THIS_LIBS=$LIB
+- ], [], [-L$THIS_PREFIX/lib])
++ ], [], [-L$THIS_PREFIX_LIBDIR])
+ if test -n "$THIS_LIBS"; then
+ break
+ fi
+@@ -402,13 +429,19 @@
+ fi
+ done
+
++ for j in lib64 lib; do
++ if test -d $THIS_PREFIX/$j; then
++ THIS_PREFIX_LIBDIR=$THIS_PREFIX/$j
++ fi
++ done
++
+ if test -n "$THIS_INCLUDE"; then
+ for LIB in cdb c; do
+ PHP_CHECK_LIBRARY($LIB, cdb_read, [
+ AC_DEFINE_UNQUOTED(CDB_INCLUDE_FILE, "$THIS_INCLUDE", [ ])
+ AC_DEFINE(DBA_CDB, 1, [ ])
+ THIS_LIBS=$LIB
+- ], [], [-L$THIS_PREFIX/lib])
++ ], [], [-L$THIS_PREFIX_LIBDIR])
+ if test -n "$THIS_LIBS"; then
+ break
+ fi
+diff -Nru php-5.0.5.orig/ext/gd/config.m4 php-5.0.5/ext/gd/config.m4
+--- php-5.0.5.orig/ext/gd/config.m4 2005-05-17 14:23:02.000000000 +0200
++++ php-5.0.5/ext/gd/config.m4 2005-12-04 17:20:08.000000000 +0100
+@@ -50,8 +50,15 @@
+ AC_DEFUN([PHP_GD_JPEG],[
+ if test "$PHP_JPEG_DIR" != "no"; then
+
+- for i in $PHP_JPEG_DIR /usr/local /usr; do
+- test -f $i/lib/libjpeg.$SHLIB_SUFFIX_NAME -o -f $i/lib/libjpeg.a && GD_JPEG_DIR=$i && break
++ for j in lib64 lib; do
++ for i in $PHP_JPEG_DIR /usr/local /usr; do
++ if test -f "$i/$j/libjpeg.$SHLIB_SUFFIX_NAME" -o -f "$i/$j/libjpeg.a"; then
++ GD_JPEG_DIR=$i
++ GD_JPEG_LIB_DIR=$i/$j
++ break
++ fi
++ done
++ test -n "$GD_JPEG_DIR" && break
+ done
+
+ if test -z "$GD_JPEG_DIR"; then
+@@ -61,11 +68,11 @@
+ PHP_CHECK_LIBRARY(jpeg,jpeg_read_header,
+ [
+ PHP_ADD_INCLUDE($GD_JPEG_DIR/include)
+- PHP_ADD_LIBRARY_WITH_PATH(jpeg, $GD_JPEG_DIR/lib, GD_SHARED_LIBADD)
++ PHP_ADD_LIBRARY_WITH_PATH(jpeg, $GD_JPEG_LIB_DIR, GD_SHARED_LIBADD)
+ ],[
+ AC_MSG_ERROR([Problem with libjpeg.(a|so). Please check config.log for more information.])
+ ],[
+- -L$GD_JPEG_DIR/lib
++ -L$GD_JPEG_LIB_DIR
+ ])
+ else
+ AC_MSG_RESULT([If configure fails try --with-jpeg-dir=<DIR>])
+@@ -75,8 +82,15 @@
+ AC_DEFUN([PHP_GD_PNG],[
+ if test "$PHP_PNG_DIR" != "no"; then
+
+- for i in $PHP_PNG_DIR /usr/local /usr; do
+- test -f $i/lib/libpng.$SHLIB_SUFFIX_NAME -o -f $i/lib/libpng.a && GD_PNG_DIR=$i && break
++ for j in lib64 lib; do
++ for i in $PHP_PNG_DIR /usr/local /usr; do
++ if test -f "$i/$j/libpng.$SHLIB_SUFFIX_NAME" -o -f "$i/$j/libpng.a"; then
++ GD_PNG_DIR=$i
++ GD_PNG_LIB_DIR=$i/$j
++ break
++ fi
++ done
++ test -n "$GD_PNG_DIR" && break
+ done
+
+ if test -z "$GD_PNG_DIR"; then
+@@ -91,15 +105,21 @@
+ AC_MSG_ERROR([png.h not found.])
+ fi
+
++ for j in lib64 lib; do
++ if test -d $PHP_ZLIB_DIR/$j; then
++ PHP_ZLIB_LIB_DIR=$PHP_ZLIB_DIR/$j
++ fi
++ done
++
+ PHP_CHECK_LIBRARY(png,png_write_image,
+ [
+ PHP_ADD_INCLUDE($GD_PNG_DIR/include)
+- PHP_ADD_LIBRARY_WITH_PATH(z, $PHP_ZLIB_DIR/lib, GD_SHARED_LIBADD)
+- PHP_ADD_LIBRARY_WITH_PATH(png, $GD_PNG_DIR/lib, GD_SHARED_LIBADD)
++ PHP_ADD_LIBRARY_WITH_PATH(z, $PHP_ZLIB_LIB_DIR, GD_SHARED_LIBADD)
++ PHP_ADD_LIBRARY_WITH_PATH(png, $GD_PNG_LIB_DIR, GD_SHARED_LIBADD)
+ ],[
+ AC_MSG_ERROR([Problem with libpng.(a|so) or libz.(a|so). Please check config.log for more information.])
+ ],[
+- -L$PHP_ZLIB_DIR/lib -lz -L$GD_PNG_DIR/lib
++ -L$PHP_ZLIB_LIB_DIR -lz -L$GD_PNG_LIB_DIR
+ ])
+
+ else
+@@ -110,8 +130,15 @@
+ AC_DEFUN([PHP_GD_XPM],[
+ if test "$PHP_XPM_DIR" != "no"; then
+
+- for i in $PHP_XPM_DIR /usr/local /usr/X11R6 /usr; do
+- test -f $i/lib/libXpm.$SHLIB_SUFFIX_NAME -o -f $i/lib/libXpm.a && GD_XPM_DIR=$i && break
++ for j in lib64 lib; do
++ for i in $PHP_XPM_DIR /usr/local /usr/X11R6 /usr; do
++ if test -f "$i/$j/libXpm.$SHLIB_SUFFIX_NAME" -o -f "$i/$j/libXpm.a"; then
++ GD_XPM_DIR=$i
++ GD_XPM_LIB_DIR=$i/$j
++ break
++ fi
++ done
++ test -n "$GD_XPM_DIR" && break
+ done
+
+ if test -z "$GD_XPM_DIR"; then
+@@ -129,12 +156,12 @@
+ PHP_CHECK_LIBRARY(Xpm,XpmFreeXpmImage,
+ [
+ PHP_ADD_INCLUDE($GD_XPM_INC)
+- PHP_ADD_LIBRARY_WITH_PATH(Xpm, $GD_XPM_DIR/lib, GD_SHARED_LIBADD)
+- PHP_ADD_LIBRARY_WITH_PATH(X11, $GD_XPM_DIR/lib, GD_SHARED_LIBADD)
++ PHP_ADD_LIBRARY_WITH_PATH(Xpm, $GD_XPM_LIB_DIR, GD_SHARED_LIBADD)
++ PHP_ADD_LIBRARY_WITH_PATH(X11, $GD_XPM_LIB_DIR, GD_SHARED_LIBADD)
+ ],[
+ AC_MSG_ERROR([Problem with libXpm.(a|so) or libX11.(a|so). Please check config.log for more information.])
+ ],[
+- -L$GD_XPM_DIR/lib -lX11
++ -L$GD_XPM_LIB_DIR -lX11
+ ])
+ else
+ AC_MSG_RESULT(If configure fails try --with-xpm-dir=<DIR>)
+@@ -145,25 +172,29 @@
+ if test "$PHP_TTF" != "no"; then
+ if test "$PHP_FREETYPE_DIR" = "no" -o "$PHP_FREETYPE_DIR" = ""; then
+ if test -n "$PHP_TTF"; then
+- for i in $PHP_TTF /usr/local /usr; do
+- if test -f "$i/include/freetype.h"; then
+- TTF_DIR=$i
+- unset TTF_INC_DIR
+- fi
+- if test -f "$i/include/freetype/freetype.h"; then
+- TTF_DIR=$i
+- TTF_INC_DIR=$i/include/freetype
+- fi
+- if test -f "$i/include/freetype1/freetype/freetype.h"; then
+- TTF_DIR=$i
+- TTF_INC_DIR=$i/include/freetype1/freetype
+- fi
++ for j in lib64 lib; do
++ for i in $PHP_TTF /usr/local /usr; do
++ if test -f "$i/$j/libttf.a" -o -f "$i/$j/libttf.$SHLIB_SUFFIX_NAME"; then
++ TTF_DIR=$i
++ TTF_LIB_DIR=$i/$j
++ if test -f "$i/include/freetype.h"; then
++ unset TTF_INC_DIR
++ elif test -f "$i/include/freetype/freetype.h"; then
++ TTF_INC_DIR=$i/include/freetype
++ elif test -f "$i/include/freetype1/freetype/freetype.h"; then
++ TTF_INC_DIR=$i/include/freetype1/freetype
++ else
++ unset TTF_DIR
++ fi
++ fi
++ test -n "$TTF_DIR" && break
++ done
+ test -n "$TTF_DIR" && break
+ done
+ fi
+ if test -n "$TTF_DIR" ; then
+ AC_DEFINE(HAVE_LIBTTF,1,[ ])
+- PHP_ADD_LIBRARY_WITH_PATH(ttf, $TTF_DIR/lib, GD_SHARED_LIBADD)
++ PHP_ADD_LIBRARY_WITH_PATH(ttf, $TTF_LIB_DIR, GD_SHARED_LIBADD)
+ fi
+ if test -z "$TTF_INC_DIR"; then
+ TTF_INC_DIR=$TTF_DIR/include
+@@ -179,16 +210,21 @@
+ AC_DEFUN([PHP_GD_FREETYPE2],[
+ if test "$PHP_FREETYPE_DIR" != "no"; then
+
+- for i in $PHP_FREETYPE_DIR /usr/local /usr; do
+- if test -f "$i/include/freetype2/freetype/freetype.h"; then
+- FREETYPE2_DIR=$i
+- FREETYPE2_INC_DIR=$i/include/freetype2
+- break
+- fi
++ for j in lib64 lib; do
++ for i in $PHP_FREETYPE_DIR /usr/local /usr; do
++ if test -f "$i/include/freetype2/freetype/freetype.h" && \
++ test -f "$i/$j/libfreetype.a" -o -f "$i/$j/libfreetype.$SHLIB_SUFFIX_NAME"; then
++ FREETYPE2_DIR=$i
++ FREETYPE2_LIB_DIR=$i/$j
++ FREETYPE2_INC_DIR=$i/include/freetype2
++ break
++ fi
++ done
++ test -n "$FREETYPE2_DIR" && break
+ done
+
+ if test -n "$FREETYPE2_DIR" ; then
+- PHP_ADD_LIBRARY_WITH_PATH(freetype, $FREETYPE2_DIR/lib, GD_SHARED_LIBADD)
++ PHP_ADD_LIBRARY_WITH_PATH(freetype, $FREETYPE2_LIB_DIR, GD_SHARED_LIBADD)
+ PHP_ADD_INCLUDE($FREETYPE2_DIR/include)
+ PHP_ADD_INCLUDE($FREETYPE2_INC_DIR)
+ AC_DEFINE(USE_GD_IMGSTRTTF, 1, [ ])
+@@ -204,8 +240,16 @@
+ AC_DEFUN([PHP_GD_T1LIB],[
+ if test "$PHP_T1LIB" != "no"; then
+
+- for i in $PHP_T1LIB /usr/local /usr; do
+- test -f "$i/include/t1lib.h" && GD_T1_DIR=$i && break
++ for j in lib64 lib; do
++ for i in $PHP_T1LIB /usr/local /usr; do
++ if test -f "$i/include/t1lib.h" && \
++ test -f "$i/$j/libt1.a" -o -f "$i/$j/libt1.$SHLIB_SUFFIX_NAME"; then
++ GD_T1_DIR=$i
++ GD_T1_LIB_DIR=$i/$j
++ break
++ fi
++ done
++ test -n "$GD_T1_DIR" && break
+ done
+
+ if test -z "$GD_T1_DIR"; then
+@@ -216,11 +260,11 @@
+ [
+ AC_DEFINE(HAVE_LIBT1,1,[ ])
+ PHP_ADD_INCLUDE($GD_T1_DIR/include)
+- PHP_ADD_LIBRARY_WITH_PATH(t1, $GD_T1_DIR/lib, GD_SHARED_LIBADD)
++ PHP_ADD_LIBRARY_WITH_PATH(t1, $GD_T1_LIB_DIR, GD_SHARED_LIBADD)
+ ],[
+ AC_MSG_ERROR([Problem with libt1.(a|so). Please check config.log for more information.])
+ ],[
+- -L$GD_T1_DIR/lib
++ -L$GD_T1_LIB_DIR
+ ])
+ fi
+ ])
+@@ -366,7 +410,7 @@
+ done
+
+ dnl Library path
+- for i in lib/gd1.3 lib/gd lib gd1.3 gd ""; do
++ for i in lib/gd1.3 lib64/gd1.3 lib/gd lib64/gd lib lib64 gd1.3 gd ""; do
+ test -f "$PHP_GD/$i/libgd.$SHLIB_SUFFIX_NAME" -o -f "$PHP_GD/$i/libgd.a" && GD_LIB="$PHP_GD/$i"
+ done
+
+diff -Nru php-5.0.5.orig/ext/gettext/config.m4 php-5.0.5/ext/gettext/config.m4
+--- php-5.0.5.orig/ext/gettext/config.m4 2003-10-01 04:53:07.000000000 +0200
++++ php-5.0.5/ext/gettext/config.m4 2005-12-04 17:04:33.000000000 +0100
+@@ -14,11 +14,15 @@
+ AC_MSG_ERROR(Cannot locate header file libintl.h)
+ fi
+
+- GETTEXT_LIBDIR=$GETTEXT_DIR/lib
++ for j in lib64 lib; do
++ if test -d $GETTEXT_DIR/$j; then
++ GETTEXT_LIBDIR=$GETTEXT_DIR/$j
++ fi
++ done
++
+ GETTEXT_INCDIR=$GETTEXT_DIR/include
+
+ O_LDFLAGS=$LDFLAGS
+- LDFLAGS="$LDFLAGS -L$GETTEXT_LIBDIR"
+ AC_CHECK_LIB(intl, bindtextdomain, [
+ GETTEXT_LIBS=intl
+ GETTEXT_CHECK_IN_LIB=intl
+diff -Nru php-5.0.5.orig/ext/gmp/config.m4 php-5.0.5/ext/gmp/config.m4
+--- php-5.0.5.orig/ext/gmp/config.m4 2003-11-19 05:44:06.000000000 +0100
++++ php-5.0.5/ext/gmp/config.m4 2005-12-04 17:05:51.000000000 +0100
+@@ -14,20 +14,26 @@
+ if test -z "$GMP_DIR"; then
+ AC_MSG_ERROR(Unable to locate gmp.h)
+ fi
+-
++
++ for j in lib64 lib; do
++ if test -d $GMP_DIR/$j; then
++ GMP_LIBDIR=$GMP_DIR/$j
++ fi
++ done
++
+ PHP_CHECK_LIBRARY(gmp, __gmp_randinit_lc_2exp_size,
+ [],[
+ PHP_CHECK_LIBRARY(gmp, gmp_randinit_lc_2exp_size,
+ [],[
+ AC_MSG_ERROR([GNU MP Library version 4.1.2 or greater required.])
+ ],[
+- -L$GMP_DIR/lib
++ -L$GMP_LIBDIR
+ ])
+ ],[
+- -L$GMP_DIR/lib
++ -L$GMP_LIBDIR
+ ])
+
+- PHP_ADD_LIBRARY_WITH_PATH(gmp, $GMP_DIR/lib, GMP_SHARED_LIBADD)
++ PHP_ADD_LIBRARY_WITH_PATH(gmp, $GMP_LIBDIR, GMP_SHARED_LIBADD)
+ PHP_ADD_INCLUDE($GMP_DIR/include)
+
+ PHP_NEW_EXTENSION(gmp, gmp.c, $ext_shared)
+diff -Nru php-5.0.5.orig/ext/iconv/config.m4 php-5.0.5/ext/iconv/config.m4
+--- php-5.0.5.orig/ext/iconv/config.m4 2005-01-10 22:37:59.000000000 +0100
++++ php-5.0.5/ext/iconv/config.m4 2005-12-04 17:13:26.000000000 +0100
+@@ -23,8 +23,14 @@
+ PHP_ICONV_PREFIX="$ICONV_DIR"
+ fi
+
++ for j in lib64 lib; do
++ if test -d $PHP_ICONV_PREFIX/$j; then
++ PHP_ICONV_PREFIX_LIBDIR=$PHP_ICONV_PREFIX/$j
++ fi
++ done
++
+ CFLAGS="-I$PHP_ICONV_PREFIX/include $CFLAGS"
+- LDFLAGS="-L$PHP_ICONV_PREFIX/lib $LDFLAGS"
++ LDFLAGS="-L$PHP_ICONV_PREFIX_LIBDIR $LDFLAGS"
+
+ if test -r $PHP_ICONV_PREFIX/include/giconv.h; then
+ PHP_ICONV_H_PATH="$PHP_ICONV_PREFIX/include/giconv.h"
+diff -Nru php-5.0.5.orig/ext/imap/config.m4 php-5.0.5/ext/imap/config.m4
+--- php-5.0.5.orig/ext/imap/config.m4 2005-01-11 05:56:44.000000000 +0100
++++ php-5.0.5/ext/imap/config.m4 2005-12-04 16:10:26.000000000 +0100
+@@ -155,6 +155,7 @@
+ for lib in c-client4 c-client imap; do
+ IMAP_LIB=$lib
+ IMAP_LIB_CHK(lib)
++ IMAP_LIB_CHK(lib64)
+ IMAP_LIB_CHK(c-client)
+ done
+
+diff -Nru php-5.0.5.orig/ext/interbase/config.m4 php-5.0.5/ext/interbase/config.m4
+--- php-5.0.5.orig/ext/interbase/config.m4 2004-05-12 16:29:42.000000000 +0200
++++ php-5.0.5/ext/interbase/config.m4 2005-12-04 19:10:10.000000000 +0100
+@@ -9,10 +9,18 @@
+ if test "$PHP_INTERBASE" != "no"; then
+ if test "$PHP_INTERBASE" = "yes"; then
+ IBASE_INCDIR=/usr/interbase/include
+- IBASE_LIBDIR=/usr/interbase/lib
++ for j in lib64 lib; do
++ if test -d /usr/interbase/$j; then
++ IBASE_LIBDIR=/usr/interbase/$j
++ fi
++ done
+ else
+ IBASE_INCDIR=$PHP_INTERBASE/include
+- IBASE_LIBDIR=$PHP_INTERBASE/lib
++ for j in lib64 lib; do
++ if test -d $PHP_INTERBASE/$j; then
++ IBASE_LIBDIR=$PHP_INTERBASE/$j
++ fi
++ done
+ fi
+
+ PHP_CHECK_LIBRARY(fbclient, isc_detach_database,
+diff -Nru php-5.0.5.orig/ext/ldap/config.m4 php-5.0.5/ext/ldap/config.m4
+--- php-5.0.5.orig/ext/ldap/config.m4 2005-05-08 17:59:18.000000000 +0200
++++ php-5.0.5/ext/ldap/config.m4 2005-12-04 19:15:50.000000000 +0100
+@@ -6,7 +6,8 @@
+ if test -f $1/include/ldap.h; then
+ LDAP_DIR=$1
+ LDAP_INCDIR=$1/include
+- LDAP_LIBDIR=$1/lib
++ test -f $1/lib/libldap.so && LDAP_LIBDIR=$1/lib
++ test -f $1/lib64/libldap.so && LDAP_LIBDIR=$1/lib64
+ elif test -f $1/include/umich-ldap/ldap.h; then
+ LDAP_DIR=$1
+ LDAP_INCDIR=$1/include/umich-ldap
+@@ -39,7 +40,11 @@
+
+ if test "$LDAP_SASL_DIR"; then
+ LDAP_SASL_INCDIR=$LDAP_SASL_DIR/include
+- LDAP_SASL_LIBDIR=$LDAP_SASL_DIR/lib
++ for j in lib64 lib; do
++ if test -d $LDAP_SASL_DIR/$j; then
++ LDAP_SASL_LIBDIR=$LDAP_SASL_DIR/$j
++ fi
++ done
+ else
+ AC_MSG_ERROR([sasl.h not found!])
+ fi
+diff -Nru php-5.0.5.orig/ext/mbstring/config.m4 php-5.0.5/ext/mbstring/config.m4
+--- php-5.0.5.orig/ext/mbstring/config.m4 2005-02-21 00:02:48.000000000 +0100
++++ php-5.0.5/ext/mbstring/config.m4 2005-12-04 19:18:03.000000000 +0100
+@@ -235,12 +235,18 @@
+ PHP_ADD_INCLUDE([$PHP_LIBMBFL_INCLUDE])
+ fi
+
++ for j in lib64 lib; do
++ if test -d $PHP_LIBMBFL/$j; then
++ PHP_LIBMBFL_LIBDIR=$PHP_LIBMBFL/$j
++ fi
++ done
++
+ PHP_CHECK_LIBRARY(mbfl, mbfl_buffer_converter_new, [
+- PHP_ADD_LIBRARY_WITH_PATH(mbfl, $PHP_LIBMBFL/lib, MBSTRING_SHARED_LIBADD)
++ PHP_ADD_LIBRARY_WITH_PATH(mbfl, $PHP_LIBMBFL_LIBDIR, MBSTRING_SHARED_LIBADD)
+ ],[
+ AC_MSG_ERROR([Problem with libmbfl. Please check config.log for more information.])
+ ], [
+- -LPHP_LIBMBFL/lib
++ -L$PHP_LIBMBFL_LIBDIR
+ ])
+ fi
+ ])
+diff -Nru php-5.0.5.orig/ext/mcrypt/config.m4 php-5.0.5/ext/mcrypt/config.m4
+--- php-5.0.5.orig/ext/mcrypt/config.m4 2005-01-22 02:36:56.000000000 +0100
++++ php-5.0.5/ext/mcrypt/config.m4 2005-12-04 19:33:28.000000000 +0100
+@@ -34,6 +34,12 @@
+
+ PHP_MCRYPT_CHECK_VERSION
+
++ for j in lib64 lib; do
++ if test -d $MCRYPT_DIR/$j; then
++ MCRYPT_LIBDIR=MCRYPT_DIR/$j
++ fi
++ done
++
+ PHP_CHECK_LIBRARY(mcrypt, mcrypt_module_open,
+ [
+ PHP_ADD_LIBRARY(ltdl,, MCRYPT_SHARED_LIBADD)
+@@ -45,13 +51,13 @@
+ ],[
+ AC_MSG_ERROR([Sorry, I was not able to diagnose which libmcrypt version you have installed.])
+ ],[
+- -L$MCRYPT_DIR/lib
++ -L$MCRYPT_LIBDIR
+ ])
+ ],[
+- -L$MCRYPT_DIR/lib -lltdl
++ -L$MCRYPT_LIBDIR -lltdl
+ ])
+
+- PHP_ADD_LIBRARY_WITH_PATH(mcrypt, $MCRYPT_DIR/lib, MCRYPT_SHARED_LIBADD)
++ PHP_ADD_LIBRARY_WITH_PATH(mcrypt, $MCRYPT_LIBDIR, MCRYPT_SHARED_LIBADD)
+ PHP_ADD_INCLUDE($MCRYPT_DIR/include)
+
+ PHP_SUBST(MCRYPT_SHARED_LIBADD)
+diff -Nru php-5.0.5.orig/ext/mcve/config.m4 php-5.0.5/ext/mcve/config.m4
+--- php-5.0.5.orig/ext/mcve/config.m4 2004-12-08 07:47:07.000000000 +0100
++++ php-5.0.5/ext/mcve/config.m4 2005-12-04 19:35:35.000000000 +0100
+@@ -67,8 +67,14 @@
+
+ CPPFLAGS=$saved_CPPFLAGS
+
++ for j in lib64 lib; do
++ if test -d $MCVE_DIR/$j; then
++ MCVE_LIBDIR=MCVE_DIR/$j
++ fi
++ done
++
+ PHP_ADD_INCLUDE($MCVE_DIR/include)
+- PHP_ADD_LIBRARY_WITH_PATH(mcve, $MCVE_DIR/lib, MCVE_SHARED_LIBADD)
++ PHP_ADD_LIBRARY_WITH_PATH(mcve, $MCVE_LIBDIR, MCVE_SHARED_LIBADD)
+
+ dnl Build test. Check for libmcve or libmonetra
+ dnl libmonetra_compat.h handle's MCVE_ -> M_ conversion
+diff -Nru php-5.0.5.orig/ext/mhash/config.m4 php-5.0.5/ext/mhash/config.m4
+--- php-5.0.5.orig/ext/mhash/config.m4 2003-10-01 04:53:11.000000000 +0200
++++ php-5.0.5/ext/mhash/config.m4 2005-12-04 20:18:36.000000000 +0100
+@@ -14,8 +14,14 @@
+ AC_MSG_ERROR(Please reinstall libmhash - I cannot find mhash.h)
+ fi
+
++ for j in lib64 lib; do
++ if test -d $MHASH_DIR/$j; then
++ MHASH_LIBDIR=$MHASH_DIR/$j
++ fi
++ done
++
+ PHP_ADD_INCLUDE($MHASH_DIR/include)
+- PHP_ADD_LIBRARY_WITH_PATH(mhash, $MHASH_DIR/lib, MHASH_SHARED_LIBADD)
++ PHP_ADD_LIBRARY_WITH_PATH(mhash, $MHASH_LIBDIR, MHASH_SHARED_LIBADD)
+
+ PHP_NEW_EXTENSION(mhash, mhash.c, $ext_shared)
+ PHP_SUBST(MHASH_SHARED_LIBADD)
+diff -Nru php-5.0.5.orig/ext/ming/config.m4 php-5.0.5/ext/ming/config.m4
+--- php-5.0.5.orig/ext/ming/config.m4 2005-07-25 23:03:27.000000000 +0200
++++ php-5.0.5/ext/ming/config.m4 2005-12-04 20:22:21.000000000 +0100
+@@ -8,11 +8,13 @@
+ if test "$PHP_MING" != "no"; then
+ AC_CHECK_LIB(m, sin)
+
+- for i in $PHP_MING /usr/local /usr; do
+- if test -f $i/lib/libming.$SHLIB_SUFFIX_NAME -o -f $i/lib/libming.a; then
+- MING_DIR=$i
+- break
+- fi
++ for j in lib64 lib; do
++ for i in $PHP_MING /usr/local /usr; do
++ if test -f $i/$j/libming.$SHLIB_SUFFIX_NAME -o -f $i/$j/libming.a; then
++ MING_DIR=$i
++ break
++ fi
++ done
+ done
+
+ if test -z "$MING_DIR"; then
+@@ -29,16 +31,22 @@
+ AC_MSG_ERROR(Please reinstall ming distribution. ming.h not found.)
+ fi
+
++ for j in lib64 lib; do
++ if test -d $MING_DIR/$j; then
++ MING_LIBDIR=$MING_DIR/$j
++ fi
++ done
++
+ PHP_CHECK_LIBRARY(ming, Ming_useSWFVersion, [
+ AC_DEFINE(HAVE_MING,1,[ ])
+ ],[
+ AC_MSG_ERROR([Ming library 0.2a or greater required.])
+ ],[
+- -L$MING_DIR/lib
++ -L$MING_LIBDIR
+ ])
+
+ PHP_ADD_INCLUDE($MING_INC_DIR)
+- PHP_ADD_LIBRARY_WITH_PATH(ming, $MING_DIR/lib, MING_SHARED_LIBADD)
++ PHP_ADD_LIBRARY_WITH_PATH(ming, $MING_LIBDIR, MING_SHARED_LIBADD)
+
+ AC_MSG_CHECKING([for destroySWFBlock])
+ AC_TRY_RUN([
+diff -Nru php-5.0.5.orig/ext/msession/config.m4 php-5.0.5/ext/msession/config.m4
+--- php-5.0.5.orig/ext/msession/config.m4 2003-02-12 19:34:20.000000000 +0100
++++ php-5.0.5/ext/msession/config.m4 2005-12-04 20:26:49.000000000 +0100
+@@ -8,13 +8,17 @@
+ if test "$PHP_MSESSION" != "no"; then
+ if test -r $PHP_MSESSION/lib/libphoenix.a; then
+ PHOENIX_DIR=$PHP_MSESSION
++ PHOENIX_LIBDIR=$PHP_MSESSION/lib
+ else
+ AC_MSG_CHECKING(for msession in default path)
+- for i in /usr/local/phoenix /usr/local /usr; do
+- if test -r $i/lib/libphoenix.a; then
+- PHOENIX_DIR=$i
+- AC_MSG_RESULT(found in $i)
+- fi
++ for j in lib64 lib; do
++ for i in /usr/local/phoenix /usr/local /usr; do
++ if test -r $i/$j/libphoenix.a; then
++ PHOENIX_DIR=$i
++ PHOENIX_LIBDIR=$i/$j
++ AC_MSG_RESULT(found in $i)
++ fi
++ done
+ done
+ fi
+
+@@ -25,7 +29,7 @@
+
+
+ AC_DEFINE(HAVE_MSESSION, 1, [ ])
+- PHP_ADD_LIBRARY_WITH_PATH(phoenix, "$PHOENIX_DIR/lib", PHOENIX_LIB)
++ PHP_ADD_LIBRARY_WITH_PATH(phoenix, "$PHOENIX_LIBDIR", PHOENIX_LIB)
+ PHOENIX_INCLUDE="-I$PHOENIX_DIR"
+ PHP_SUBST(PHOENIX_LIB)
+
+diff -Nru php-5.0.5.orig/ext/mssql/config.m4 php-5.0.5/ext/mssql/config.m4
+--- php-5.0.5.orig/ext/mssql/config.m4 2004-12-08 19:58:25.000000000 +0100
++++ php-5.0.5/ext/mssql/config.m4 2005-12-04 22:12:15.000000000 +0100
+@@ -30,14 +30,20 @@
+ else
+ AC_MSG_ERROR(Directory $PHP_MSSQL is not a FreeTDS installation directory)
+ fi
+- fi
++ fi
++
++ for j in lib64 lib; do
++ if test -d $FREETDS_INSTALLATION_DIR/$j; then
++ FREETDS_INSTALLATION_DIR_LIBDIR=$FREETDS_INSTALLATION_DIR/$j
++ fi
++ done
+
+- if test ! -r "$FREETDS_INSTALLATION_DIR/lib/libtds.a" && test ! -r "$FREETDS_INSTALLATION_DIR/lib/libtds.so"; then
+- AC_MSG_ERROR(Could not find $FREETDS_INSTALLATION_DIR/lib/libtds.[a|so])
++ if test ! -r "$FREETDS_INSTALLATION_DIR_LIBDIR/libtds.a" && test ! -r "$FREETDS_INSTALLATION_DIR_LIBDIR/libtds.so"; then
++ AC_MSG_ERROR(Could not find $FREETDS_INSTALLATION_DIR_LIBDIR/libtds.[a|so])
+ fi
+
+ MSSQL_INCDIR=$FREETDS_INSTALLATION_DIR/include
+- MSSQL_LIBDIR=$FREETDS_INSTALLATION_DIR/lib
++ MSSQL_LIBDIR=$FREETDS_INSTALLATION_DIR_LIBDIR
+
+ PHP_ADD_INCLUDE($MSSQL_INCDIR)
+ PHP_ADD_LIBRARY_WITH_PATH(sybdb, $MSSQL_LIBDIR, MSSQL_SHARED_LIBADD)
+diff -Nru php-5.0.5.orig/ext/mysql/config.m4 php-5.0.5/ext/mysql/config.m4
+--- php-5.0.5.orig/ext/mysql/config.m4 2005-06-20 15:46:02.000000000 +0200
++++ php-5.0.5/ext/mysql/config.m4 2005-12-04 22:43:27.000000000 +0100
+@@ -90,7 +90,7 @@
+ ;;
+ esac
+
+- for i in lib lib/mysql lib64 lib64/mysql; do
++ for i in lib64 lib64/mysql lib lib/mysql; do
+ MYSQL_LIB_CHK($i)
+ done
+
+@@ -102,13 +102,18 @@
+ PHP_CHECK_LIBRARY($MY_LIBNAME, mysql_close, [ ],
+ [
+ if test "$PHP_ZLIB_DIR" != "no"; then
++ for j in lib64 lib; do
++ if test -d $PHP_ZLIB_DIR/$j; then
++ PHP_ZLIB_LIBDIR=$PHP_ZLIB_DIR/$j
++ fi
++ done
+ PHP_ADD_LIBRARY_WITH_PATH(z, $PHP_ZLIB_DIR, MYSQL_SHARED_LIBADD)
+ PHP_CHECK_LIBRARY($MY_LIBNAME, mysql_error, [], [
+ AC_MSG_ERROR([mysql configure failed. Please check config.log for more information.])
+ ], [
+- -L$PHP_ZLIB_DIR/lib -L$MYSQL_LIB_DIR
++ -L$PHP_ZLIB_LIBDIR -L$MYSQL_LIB_DIR
+ ])
+- MYSQL_LIBS="-L$PHP_ZLIB_DIR/lib -lz"
++ MYSQL_LIBS="-L$PHP_ZLIB_LIBDIR -lz"
+ else
+ PHP_ADD_LIBRARY(z,, MYSQL_SHARED_LIBADD)
+ PHP_CHECK_LIBRARY($MY_LIBNAME, mysql_errno, [], [
+diff -Nru php-5.0.5.orig/ext/ncurses/config.m4 php-5.0.5/ext/ncurses/config.m4
+--- php-5.0.5.orig/ext/ncurses/config.m4 2003-12-09 21:33:08.000000000 +0100
++++ php-5.0.5/ext/ncurses/config.m4 2005-12-04 22:47:05.000000000 +0100
+@@ -38,20 +38,26 @@
+ LIBNAME=ncurses
+ LIBSYMBOL=initscr
+
++ for j in lib64 lib; do
++ if test -d $NCURSES_DIR/$j; then
++ NCURSES_LIBDIR=$NCURSES_DIR/$j
++ fi
++ done
++
+ PHP_CHECK_LIBRARY($LIBNAME, $LIBSYMBOL, [
+ AC_DEFINE(HAVE_NCURSESLIB,1,[ ])
+- PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $NCURSES_DIR/lib, NCURSES_SHARED_LIBADD)
++ PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $NCURSES_LIBDIR, NCURSES_SHARED_LIBADD)
+
+ PHP_CHECK_LIBRARY(panel, new_panel, [
+ AC_DEFINE(HAVE_NCURSES_PANEL,1,[ ])
+- PHP_ADD_LIBRARY_WITH_PATH(panel, $NCURSES_DIR/lib, NCURSES_SHARED_LIBADD)
++ PHP_ADD_LIBRARY_WITH_PATH(panel, $NCURSES_LIBDIR, NCURSES_SHARED_LIBADD)
+ ], [], [
+- -L$NCURSES_DIR/lib -l$LIBNAME -lm
++ -L$NCURSES_LIBDIR -l$LIBNAME -lm
+ ])
+ ], [
+ AC_MSG_ERROR(Wrong ncurses lib version or lib not found)
+ ], [
+- -L$NCURSES_DIR/lib -lm
++ -L$NCURSES_LIBDIR -lm
+ ])
+
+ AC_CHECK_LIB($LIBNAME, color_set, [AC_DEFINE(HAVE_NCURSES_COLOR_SET, 1, [ ])])
+diff -Nru php-5.0.5.orig/ext/odbc/config.m4 php-5.0.5/ext/odbc/config.m4
+--- php-5.0.5.orig/ext/odbc/config.m4 2005-04-22 01:02:15.000000000 +0200
++++ php-5.0.5/ext/odbc/config.m4 2005-12-05 18:19:09.000000000 +0100
+@@ -47,19 +47,8 @@
+ #
+ # Check for the library files, and setup the ODBC_LIBS path...
+ #
+-if test ! -f $1/lib${ac_solid_prefix}${ac_solid_os}${ac_solid_version}.so -a \
+- ! -f $1/lib${ac_solid_prefix}${ac_solid_os}${ac_solid_version}.a; then
+- #
+- # we have an error and should bail out, as we can't find the libs!
+- #
+- echo ""
+- echo "*********************************************************************"
+- echo "* Unable to locate $1/lib${ac_solid_prefix}${ac_solid_os}${ac_solid_version}.so or $1/lib${ac_solid_prefix}${ac_solid_os}${ac_solid_version}.a"
+- echo "* Please correct this by creating the following links and reconfiguring:"
+- echo "* $1/lib${ac_solid_prefix}${ac_solid_os}${ac_solid_version}.a -> $1/lib${ac_solid_prefix}${ac_solid_os}${ac_solid_version}.a"
+- echo "* $1/${ac_solid_prefix}${ac_solid_os}${ac_solid_version}.so -> $1/lib${ac_solid_prefix}${ac_solid_os}${ac_solid_version}.so"
+- echo "*********************************************************************"
+-else
++if test -f $1/lib${ac_solid_prefix}${ac_solid_os}${ac_solid_version}.so -a \
++ -f $1/lib${ac_solid_prefix}${ac_solid_os}${ac_solid_version}.a; then
+ ODBC_LFLAGS=-L$1
+ ODBC_LIBS=-l${ac_solid_prefix}${ac_solid_os}${ac_solid_version}
+ fi
+@@ -100,8 +89,12 @@
+ withval=/usr/local
+ fi
+ if test "$withval" != "no"; then
++ for i in lib64 lib; do
++ ADABAS_LIBDIR=$withval/$i
++ test -f "$ADABAS_LIBDIR/odbclib.a" && break
++ done
+ PHP_ADD_INCLUDE($withval/incl)
+- PHP_ADD_LIBPATH($withval/lib)
++ PHP_ADD_LIBPATH($ADABAS_LIBDIR)
+ ODBC_OBJS="$withval/lib/odbclib.a"
+ ODBC_LIB="$abs_builddir/ext/odbc/libodbc_adabas.a"
+ $srcdir/build/shtool mkdir -f -p ext/odbc
+@@ -132,8 +125,12 @@
+ withval=/usr/local
+ fi
+ if test "$withval" != "no"; then
++ for i in lib64 lib; do
++ SAPDB_LIBDIR=$withval/$i
++ test -f "$SAPDB_LIBDIR/libsqlod.a" -o -f "$SAPDB_LIBDIR/libsqlod.$SHLIB_SUFFIX_NAME" && break
++ done
+ PHP_ADD_INCLUDE($withval/incl)
+- PHP_ADD_LIBPATH($withval/lib)
++ PHP_ADD_LIBPATH($SAPDB_LIBDIR)
+ PHP_ADD_LIBRARY(sqlod)
+ ODBC_TYPE=sapdb
+ AC_DEFINE(HAVE_SAPDB,1,[ ])
+@@ -158,19 +155,36 @@
+ withval=/usr/local/solid
+ fi
+ if test "$withval" != "no"; then
+- ODBC_INCDIR=$withval/include
+- ODBC_LIBDIR=$withval/lib
+- ODBC_INCLUDE=-I$ODBC_INCDIR
+- ODBC_TYPE=solid
+- if test -f $ODBC_LIBDIR/soc*35.a; then
+- AC_DEFINE(HAVE_SOLID_35,1,[ ])
+- elif test -f $ODBC_LIBDIR/scl*30.a; then
+- AC_DEFINE(HAVE_SOLID_30,1,[ ])
+- elif test -f $ODBC_LIBDIR/scl*23.a; then
+- AC_DEFINE(HAVE_SOLID,1,[ ])
++ for i in lib64 lib; do
++ SOLID_LIBDIR=$withval/$i
++ ODBC_INCDIR=$withval/include
++ ODBC_LIBDIR=$withval/$j
++ ODBC_INCLUDE=-I$ODBC_INCDIR
++ ODBC_TYPE=solid
++ if test -f $ODBC_LIBDIR/soc*35.a; then
++ AC_DEFINE(HAVE_SOLID_35,1,[ ])
++ elif test -f $ODBC_LIBDIR/scl*30.a; then
++ AC_DEFINE(HAVE_SOLID_30,1,[ ])
++ elif test -f $ODBC_LIBDIR/scl*23.a; then
++ AC_DEFINE(HAVE_SOLID,1,[ ])
++ fi
++ AC_MSG_RESULT(yes)
++ ODBC_LIBS=
++ AC_FIND_SOLID_LIBS($ODBC_LIBDIR)
++ test -n "$ODBC_LIBS" && break
++ done
++ if test -z "$ODBC_LIBS"; then
++ #
++ # we have an error and should bail out, as we can't find the libs!
++ #
++ echo ""
++ echo "*********************************************************************"
++ echo "* Unable to locate ODBC_LIBDIR/lib${ac_solid_prefix}${ac_solid_os}${ac_solid_version}.so or ODBC_LIBDIR/lib${ac_solid_prefix}${ac_solid_os}${ac_solid_version}.a"
++ echo "* Please correct this by creating the following links and reconfiguring:"
++ echo "* ODBC_LIBDIR/lib${ac_solid_prefix}${ac_solid_os}${ac_solid_version}.a -> ODBC_LIBDIR/lib${ac_solid_prefix}${ac_solid_os}${ac_solid_version}.a"
++ echo "* ODBC_LIBDIR/${ac_solid_prefix}${ac_solid_os}${ac_solid_version}.so -> ODBC_LIBDIR/lib${ac_solid_prefix}${ac_solid_os}${ac_solid_version}.so"
++ echo "*********************************************************************"
+ fi
+- AC_MSG_RESULT(yes)
+- AC_FIND_SOLID_LIBS($ODBC_LIBDIR)
+ else
+ AC_MSG_RESULT(no)
+ fi
+@@ -407,11 +421,15 @@
+ withval=/usr/local
+ fi
+ if test "$withval" != "no"; then
+- PHP_ADD_LIBRARY_WITH_PATH(iodbc, $withval/lib)
++ for i in lib64 lib; do
++ IODBC_LIBDIR=$withval/$i
++ test -f "$IODBC_LIBDIR/libiodbc.a" -o -f "$IODBC_LIBDIR/libiodbc.$SHLIB_SUFFIX_NAME" && break
++ done
++ PHP_ADD_LIBRARY_WITH_PATH(iodbc, $IODBC_LIBDIR)
+ PHP_ADD_INCLUDE($withval/include, 1)
+ ODBC_TYPE=iodbc
+ ODBC_INCLUDE=-I$withval/include
+- ODBC_LFLAGS=-L$withval/lib
++ ODBC_LFLAGS=-L$IODBC_LIBDIR
+ ODBC_LIBS=-liodbc
+ AC_DEFINE(HAVE_IODBC,1,[ ])
+ AC_DEFINE(HAVE_ODBC2,1,[ ])
+@@ -436,8 +454,11 @@
+ withval=/usr/local/easysoft/oob/client
+ fi
+ if test "$withval" != "no"; then
++ for i in lib64 lib; do
++ ODBC_LIBDIR=$withval/$i
++ test -f "$ODBC_LIBDIR/libesoobclient.a" -o -f "$ODBC_LIBDIR/libesoobclient.$SHLIB_SUFFIX_NAME" && break
++ done
+ ODBC_INCDIR=$withval/include
+- ODBC_LIBDIR=$withval/lib
+ ODBC_LFLAGS=-L$ODBC_LIBDIR
+ ODBC_INCLUDE=-I$ODBC_INCDIR
+ ODBC_LIBS=-lesoobclient
+@@ -463,8 +484,11 @@
+ withval=/usr/local
+ fi
+ if test "$withval" != "no"; then
++ for i in lib64 lib; do
++ ODBC_LIBDIR=$withval/$i
++ test -f "$ODBC_LIBDIR/libodbc.a" -o -f "$ODBC_LIBDIR/libodbc.$SHLIB_SUFFIX_NAME" && break
++ done
+ ODBC_INCDIR=$withval/include
+- ODBC_LIBDIR=$withval/lib
+ ODBC_LFLAGS=-L$ODBC_LIBDIR
+ ODBC_INCLUDE=-I$ODBC_INCDIR
+ ODBC_LIBS=-lodbc
+diff -Nru php-5.0.5.orig/ext/pcre/config.m4 php-5.0.5/ext/pcre/config.m4
+--- php-5.0.5.orig/ext/pcre/config.m4 2005-08-22 18:55:56.000000000 +0200
++++ php-5.0.5/ext/pcre/config.m4 2005-12-04 16:10:26.000000000 +0100
+@@ -25,7 +25,7 @@
+ AC_MSG_ERROR([Could not find pcre.h in $PHP_PCRE_REGEX])
+ fi
+
+- for j in $PHP_PCRE_REGEX $PHP_PCRE_REGEX/lib; do
++ for j in $PHP_PCRE_REGEX $PHP_PCRE_REGEX/lib64 $PHP_PCRE_REGEX/lib; do
+ test -f $j/libpcre.a -o -f $j/libpcre.$SHLIB_SUFFIX_NAME && PCRE_LIBDIR=$j
+ done
+
+diff -Nru php-5.0.5.orig/ext/pgsql/config.m4 php-5.0.5/ext/pgsql/config.m4
+--- php-5.0.5.orig/ext/pgsql/config.m4 2005-04-03 15:06:33.000000000 +0200
++++ php-5.0.5/ext/pgsql/config.m4 2005-12-05 18:22:38.000000000 +0100
+@@ -44,7 +44,7 @@
+ fi
+ done
+
+- for j in lib lib/pgsql lib/postgres lib/postgresql ""; do
++ for j in lib64 lib lib64/pgsql lib/pgsql lib64/postgres lib/postgres lib64/postgresql lib/postgresql ""; do
+ if test -f "$i/$j/libpq.so" || test -f "$i/$j/libpq.a"; then
+ PGSQL_LIBDIR=$i/$j
+ fi
+diff -Nru php-5.0.5.orig/ext/pspell/config.m4 php-5.0.5/ext/pspell/config.m4
+--- php-5.0.5.orig/ext/pspell/config.m4 2005-02-17 04:51:35.000000000 +0100
++++ php-5.0.5/ext/pspell/config.m4 2005-12-05 18:23:49.000000000 +0100
+@@ -27,7 +27,11 @@
+ AC_MSG_ERROR(Cannot find pspell)
+ fi
+
+- PSPELL_LIBDIR=$PSPELL_DIR/lib
++ for j in lib64 lib; do
++ if test -d $PSPELL_DIR/$j; then
++ PSPELL_LIBDIR=$PSPELL_DIR/$j
++ fi
++ done
+
+ PHP_ADD_LIBRARY_WITH_PATH(pspell, $PSPELL_LIBDIR, PSPELL_SHARED_LIBADD)
+
+diff -Nru php-5.0.5.orig/ext/readline/config.m4 php-5.0.5/ext/readline/config.m4
+--- php-5.0.5.orig/ext/readline/config.m4 2003-10-01 04:53:13.000000000 +0200
++++ php-5.0.5/ext/readline/config.m4 2005-12-05 18:27:29.000000000 +0100
+@@ -29,22 +29,28 @@
+ ])
+ ])
+
++ for j in lib64 lib; do
++ if test -d $READLINE_DIR/$j; then
++ READLINE_LIBDIR=$READLINE_DIR/$j
++ fi
++ done
++
+ PHP_CHECK_LIBRARY(readline, readline,
+ [
+- PHP_ADD_LIBRARY_WITH_PATH(readline, $READLINE_DIR/lib, READLINE_SHARED_LIBADD)
++ PHP_ADD_LIBRARY_WITH_PATH(readline, $READLINE_LIBDIR, READLINE_SHARED_LIBADD)
+ ], [
+ AC_MSG_ERROR(readline library not found)
+ ], [
+- -L$READLINE_DIR/lib
++ -L$READLINE_LIBDIR
+ ])
+
+ PHP_CHECK_LIBRARY(history, add_history,
+ [
+- PHP_ADD_LIBRARY_WITH_PATH(history, $READLINE_DIR/lib, READLINE_SHARED_LIBADD)
++ PHP_ADD_LIBRARY_WITH_PATH(history, $READLINE_LIBDIR, READLINE_SHARED_LIBADD)
+ ], [
+ AC_MSG_ERROR(history library required by readline not found)
+ ], [
+- -L$READLINE_DIR/lib
++ -L$READLINE_LIBDIR
+ ])
+
+ PHP_NEW_EXTENSION(readline, readline.c, $ext_shared, cli)
+@@ -73,13 +79,19 @@
+ ])
+ ])
+
++ for j in lib64 lib; do
++ if test -d $LIBEDIT_DIR/$j; then
++ LIBEDIT_LIBDIR=$LIBEDIT_DIR/$j
++ fi
++ done
++
+ PHP_CHECK_LIBRARY(edit, readline,
+ [
+- PHP_ADD_LIBRARY_WITH_PATH(edit, $LIBEDIT_DIR/lib, READLINE_SHARED_LIBADD)
++ PHP_ADD_LIBRARY_WITH_PATH(edit, $LIBEDIT_LIBDIR, READLINE_SHARED_LIBADD)
+ ], [
+ AC_MSG_ERROR(edit library required by readline not found)
+ ], [
+- -L$READLINE_DIR/lib
++ -L$READLINE_LIBDIR
+ ])
+
+ PHP_NEW_EXTENSION(readline, readline.c, $ext_shared, cli)
+diff -Nru php-5.0.5.orig/ext/session/config.m4 php-5.0.5/ext/session/config.m4
+--- php-5.0.5.orig/ext/session/config.m4 2003-10-01 04:53:15.000000000 +0200
++++ php-5.0.5/ext/session/config.m4 2005-12-05 18:28:36.000000000 +0100
+@@ -24,8 +24,14 @@
+ if test -z "$MM_DIR" ; then
+ AC_MSG_ERROR(cannot find mm library)
+ fi
+-
+- PHP_ADD_LIBRARY_WITH_PATH(mm, $MM_DIR/lib, SESSION_SHARED_LIBADD)
++
++ for j in lib64 lib; do
++ if test -d $MM_DIR/$j; then
++ MM_LIBDIR=$MM_DIR/$j
++ fi
++ done
++
++ PHP_ADD_LIBRARY_WITH_PATH(mm, $MM_LIBDIR, SESSION_SHARED_LIBADD)
+ PHP_ADD_INCLUDE($MM_DIR/include)
+ AC_DEFINE(HAVE_LIBMM, 1, [Whether you have libmm])
+ fi
+diff -Nru php-5.0.5.orig/ext/snmp/config.m4 php-5.0.5/ext/snmp/config.m4
+--- php-5.0.5.orig/ext/snmp/config.m4 2003-09-23 10:15:49.000000000 +0200
++++ php-5.0.5/ext/snmp/config.m4 2005-12-04 16:10:26.000000000 +0100
+@@ -45,8 +45,8 @@
+ test -f $i/snmp/snmp.h && SNMP_INCDIR=$i/snmp
+ test -f $i/snmp/include/ucd-snmp/snmp.h && SNMP_INCDIR=$i/snmp/include/ucd-snmp
+ done
+- for i in /usr /usr/snmp /usr/local /usr/local/snmp; do
+- test -f $i/lib/libsnmp.a -o -f $i/lib/libsnmp.$SHLIB_SUFFIX_NAME && SNMP_LIBDIR=$i/lib
++ for i in /usr/lib /usr/lib64 /usr/snmp/lib /usr/local/lib /usr/local/snmp/lib; do
++ test -f $i/libsnmp.a -o -f $i/libsnmp.$SHLIB_SUFFIX_NAME && SNMP_LIBDIR=$i
+ done
+ else
+ SNMP_INCDIR=$PHP_SNMP/include
+diff -Nru php-5.0.5.orig/ext/sqlite/config.m4 php-5.0.5/ext/sqlite/config.m4
+--- php-5.0.5.orig/ext/sqlite/config.m4 2005-08-29 01:20:20.000000000 +0200
++++ php-5.0.5/ext/sqlite/config.m4 2005-12-05 18:31:39.000000000 +0100
+@@ -38,14 +38,20 @@
+ LIBNAME=sqlite
+ LIBSYMBOL=sqlite_open
+
++ for j in lib64 lib; do
++ if test -d $SQLITE_DIR/$j; then
++ SQLITE_LIBDIR=$SQLITE_DIR/$j
++ fi
++ done
++
+ PHP_CHECK_LIBRARY($LIBNAME,$LIBSYMBOL,
+ [
+- PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $SQLITE_DIR/lib, SQLITE_SHARED_LIBADD)
++ PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $SQLITE_LIBDIR, SQLITE_SHARED_LIBADD)
+ AC_DEFINE(HAVE_SQLITELIB,1,[ ])
+ ],[
+ AC_MSG_ERROR([wrong sqlite lib version or lib not found])
+ ],[
+- -L$SQLITE_DIR/lib -lm
++ -L$SQLITE_LIBDIR -lm
+ ])
+
+ PHP_SUBST(SQLITE_SHARED_LIBADD)
+diff -Nru php-5.0.5.orig/ext/tidy/config.m4 php-5.0.5/ext/tidy/config.m4
+--- php-5.0.5.orig/ext/tidy/config.m4 2003-12-18 20:59:58.000000000 +0100
++++ php-5.0.5/ext/tidy/config.m4 2005-12-05 18:32:54.000000000 +0100
+@@ -27,7 +27,11 @@
+ AC_MSG_ERROR(Cannot find libtidy)
+ fi
+
+- TIDY_LIBDIR=$TIDY_DIR/lib
++ for j in lib64 lib; do
++ if test -d $TIDY_DIR/$j; then
++ TIDY_LIBDIR=$TIDY_DIR/$j
++ fi
++ done
+
+ PHP_ADD_LIBRARY_WITH_PATH(tidy, $TIDY_LIBDIR, TIDY_SHARED_LIBADD)
+ PHP_ADD_INCLUDE($TIDY_INCDIR)
+diff -Nru php-5.0.5.orig/ext/xml/config.m4 php-5.0.5/ext/xml/config.m4
+--- php-5.0.5.orig/ext/xml/config.m4 2005-04-27 15:13:38.000000000 +0200
++++ php-5.0.5/ext/xml/config.m4 2005-12-04 16:10:26.000000000 +0100
+@@ -35,11 +35,15 @@
+ dnl Check for expat only if --with-libexpat-dir is used.
+ dnl
+ if test "$PHP_LIBEXPAT_DIR" != "no"; then
+- for i in $PHP_XML $PHP_LIBEXPAT_DIR; do
+- if test -f "$i/lib/libexpat.a" || test -f "$i/lib/libexpat.$SHLIB_SUFFIX_NAME"; then
+- EXPAT_DIR=$i
+- break
+- fi
++ for j in lib64 lib; do
++ for i in $PHP_XML $PHP_LIBEXPAT_DIR; do
++ if test -f "$i/$j/libexpat.a" || test -f "$i/$j/libexpat.$SHLIB_SUFFIX_NAME"; then
++ EXPAT_DIR=$i
++ EXPAT_LIBDIR=$i/$j
++ break
++ fi
++ done
++ test -n "$EXPAT_DIR" && break
+ done
+
+ if test -z "$EXPAT_DIR"; then
+@@ -47,7 +51,7 @@
+ fi
+
+ PHP_ADD_INCLUDE($EXPAT_DIR/include)
+- PHP_ADD_LIBRARY_WITH_PATH(expat, $EXPAT_DIR/lib, XML_SHARED_LIBADD)
++ PHP_ADD_LIBRARY_WITH_PATH(expat, $EXPAT_LIBDIR, XML_SHARED_LIBADD)
+ AC_DEFINE(HAVE_LIBEXPAT, 1, [ ])
+ fi
+
+diff -Nru php-5.0.5.orig/ext/xmlrpc/config.m4 php-5.0.5/ext/xmlrpc/config.m4
+--- php-5.0.5.orig/ext/xmlrpc/config.m4 2003-10-01 04:53:15.000000000 +0200
++++ php-5.0.5/ext/xmlrpc/config.m4 2005-12-05 18:40:33.000000000 +0100
+@@ -30,6 +30,13 @@
+ testval=yes
+ break
+ fi
++ if test -f $i/lib64/libexpat.a -o -f $i/lib64/libexpat.$SHLIB_SUFFIX_NAME; then
++ AC_DEFINE(HAVE_LIBEXPAT2,1,[ ])
++ PHP_ADD_LIBRARY_WITH_PATH(expat, $i/lib64, XMLRPC_SHARED_LIBADD)
++ PHP_ADD_INCLUDE($i/include)
++ testval=yes
++ break
++ fi
+ done
+
+ if test "$testval" = "no"; then
+@@ -87,7 +94,13 @@
+ AC_MSG_ERROR(Please reinstall the XMLRPC-EPI distribution)
+ fi
+
++ for j in lib64 lib; do
++ if test -d $XMLRPC_DIR/$j; then
++ XMLRPC_LIBDIR=$XMLRCP_DIR/$j
++ fi
++ done
++
+ PHP_ADD_INCLUDE($XMLRPC_DIR)
+- PHP_ADD_LIBRARY_WITH_PATH(xmlrpc, $XMLRPC_DIR/lib, XMLRPC_SHARED_LIBADD)
++ PHP_ADD_LIBRARY_WITH_PATH(xmlrpc, $XMLRPC_LIBDIR, XMLRPC_SHARED_LIBADD)
+ fi
+
+diff -Nru php-5.0.5.orig/ext/xsl/config.m4 php-5.0.5/ext/xsl/config.m4
+--- php-5.0.5.orig/ext/xsl/config.m4 2005-04-27 15:13:38.000000000 +0200
++++ php-5.0.5/ext/xsl/config.m4 2005-12-05 18:42:56.000000000 +0100
+@@ -48,8 +48,13 @@
+ if test -z "$PHP_XSL_EXSL_DIR"; then
+ AC_MSG_RESULT(not found)
+ else
++ for j in lib64 lib; do
++ if test -d $PHP_XSL_EXSL_DIR/$j; then
++ PHP_XSL_EXSL_LIBDIR=$PHP_XSL_EXSL_DIR/$j
++ fi
++ done
+ AC_MSG_RESULT(found)
+- PHP_ADD_LIBRARY_WITH_PATH(exslt, $PHP_XSL_EXSL_DIR/lib, XSL_SHARED_LIBADD)
++ PHP_ADD_LIBRARY_WITH_PATH(exslt, $PHP_XSL_EXSL_LIBDIR, XSL_SHARED_LIBADD)
+ PHP_ADD_INCLUDE($PHP_XSL_EXSL_DIR/include)
+ AC_DEFINE(HAVE_XSL_EXSLT,1,[ ])
+ fi
+diff -Nru php-5.0.5.orig/ext/zlib/config0.m4 php-5.0.5/ext/zlib/config0.m4
+--- php-5.0.5.orig/ext/zlib/config0.m4 2003-06-27 02:37:21.000000000 +0200
++++ php-5.0.5/ext/zlib/config0.m4 2005-12-05 18:35:49.000000000 +0100
+@@ -36,10 +36,11 @@
+ AC_MSG_ERROR(Cannot find libz)
+ fi
+
+- case $ZLIB_DIR in
+- /usr) ac_extra= ;;
+- *) ac_extra=-L$ZLIB_DIR/lib ;;
+- esac
++ for j in lib64 lib; do
++ if test -d $ZLIB_DIR/$j; then
++ ZLIB_LIBDIR=$ZLIB_DIR/$j
++ fi
++ done
+
+ PHP_CHECK_LIBRARY(z, gzgets, [
+ AC_DEFINE(HAVE_ZLIB,1,[ ])
+@@ -49,7 +50,7 @@
+ $ac_extra
+ ])
+
+- PHP_ADD_LIBPATH($ZLIB_DIR/lib, ZLIB_SHARED_LIBADD)
++ PHP_ADD_LIBPATH($ZLIB_LIBDIR, ZLIB_SHARED_LIBADD)
+
+ PHP_ZLIB_DIR=$ZLIB_DIR
+ PHP_ADD_LIBRARY(z,, ZLIB_SHARED_LIBADD)
diff --git a/dev-lang/php/files/5.0.5/php5.0.5-obj-serialize.patch b/dev-lang/php/files/5.0.5/php5.0.5-obj-serialize.patch
new file mode 100644
index 0000000..8dbae7b
--- /dev/null
+++ b/dev-lang/php/files/5.0.5/php5.0.5-obj-serialize.patch
@@ -0,0 +1,42 @@
+--- ext/standard/incomplete_class.c 2004-11-25 20:28:37.000000000 +0000
++++ ext/standard/incomplete_class.c 2005-09-09 13:00:39.000000000 +0100
+@@ -122,7 +122,7 @@
+
+ /* {{{ php_lookup_class_name
+ */
+-char *php_lookup_class_name(zval *object, size_t *nlen)
++char *php_lookup_class_name(zval *object, zend_uint *nlen)
+ {
+ zval **val;
+ char *retval = NULL;
+@@ -144,7 +144,7 @@
+
+ /* {{{ php_store_class_name
+ */
+-void php_store_class_name(zval *object, const char *name, size_t len)
++void php_store_class_name(zval *object, const char *name, zend_uint len)
+ {
+ zval *val;
+ TSRMLS_FETCH();
+--- ext/standard/php_incomplete_class.h 2005-06-29 10:29:08.000000000 +0100
++++ ext/standard/php_incomplete_class.h 2005-09-09 13:00:31.000000000 +0100
+@@ -42,7 +42,7 @@
+
+ #define PHP_CLASS_ATTRIBUTES \
+ char *class_name; \
+- size_t name_len; \
++ zend_uint name_len; \
+ zend_bool free_class_name = 0; \
+ zend_bool incomplete_class = 0
+
+@@ -55,8 +55,8 @@
+
+ zend_class_entry *php_create_incomplete_class(TSRMLS_D);
+
+-char *php_lookup_class_name(zval *object, size_t *nlen);
+-void php_store_class_name(zval *object, const char *name, size_t len);
++char *php_lookup_class_name(zval *object, zend_uint *nlen);
++void php_store_class_name(zval *object, const char *name, zend_uint len);
+
+ #ifdef __cplusplus
+ };
diff --git a/dev-lang/php/files/5.0.5/php5.0.5-pspell-ext-segf.patch b/dev-lang/php/files/5.0.5/php5.0.5-pspell-ext-segf.patch
new file mode 100644
index 0000000..5c32b14
--- /dev/null
+++ b/dev-lang/php/files/5.0.5/php5.0.5-pspell-ext-segf.patch
@@ -0,0 +1,320 @@
+--- ext/pspell/pspell.c 2004-05-18 14:32:05.000000000 +0200
++++ ext/pspell/pspell.c 2005-10-26 23:30:48.000000000 +0200
+@@ -2,7 +2,7 @@
+ +----------------------------------------------------------------------+
+ | PHP Version 5 |
+ +----------------------------------------------------------------------+
+- | Copyright (c) 1997-2004 The PHP Group |
++ | Copyright (c) 1997-2005 The PHP Group |
+ +----------------------------------------------------------------------+
+ | This source file is subject to version 3.0 of the PHP license, |
+ | that is bundled with this package in the file LICENSE, and is |
+@@ -16,7 +16,7 @@
+ +----------------------------------------------------------------------+
+ */
+
+-/* $Id: pspell.c,v 1.44 2004/05/18 12:32:05 edink Exp $ */
++/* $Id: pspell.c,v 1.47 2005/10/17 15:29:55 iliaa Exp $ */
+
+ #define IS_EXT_MODULE
+
+@@ -101,6 +101,22 @@
+ delete_pspell_config(config);
+ }
+
++#define PSPELL_FETCH_CONFIG \
++ convert_to_long_ex(conf); \
++ config = (PspellConfig *) zend_list_find(Z_LVAL_PP(conf), &type); \
++ if (config == NULL || type != le_pspell_config) { \
++ php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a PSPELL config index", Z_LVAL_PP(conf)); \
++ RETURN_FALSE; \
++ } \
++
++#define PSPELL_FETCH_MANAGER \
++ convert_to_long_ex(scin); \
++ manager = (PspellManager *) zend_list_find(Z_LVAL_PP(scin), &type); \
++ if (!manager || type != le_pspell) { \
++ php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a PSPELL result index", Z_LVAL_PP(scin)); \
++ RETURN_FALSE; \
++ } \
++
+ /* {{{ PHP_MINIT_FUNCTION
+ */
+ PHP_MINIT_FUNCTION(pspell)
+@@ -352,13 +368,7 @@
+ WRONG_PARAM_COUNT;
+ }
+
+- convert_to_long_ex(conf);
+- config = (PspellConfig *) zend_list_find(Z_LVAL_PP(conf), &type);
+-
+- if (config == NULL || type != le_pspell_config) {
+- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a PSPELL config index", Z_LVAL_PP(conf));
+- RETURN_FALSE;
+- }
++ PSPELL_FETCH_CONFIG;
+
+ ret = new_pspell_manager(config);
+
+@@ -387,13 +397,9 @@
+ WRONG_PARAM_COUNT;
+ }
+
+- convert_to_long_ex(scin);
+ convert_to_string_ex(word);
+- manager = (PspellManager *) zend_list_find(Z_LVAL_PP(scin), &type);
+- if(!manager){
+- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a PSPELL result index", Z_LVAL_PP(scin));
+- RETURN_FALSE;
+- }
++
++ PSPELL_FETCH_MANAGER;
+
+ if(pspell_manager_check(manager, Z_STRVAL_PP(word))){
+ RETURN_TRUE;
+@@ -419,13 +425,8 @@
+ WRONG_PARAM_COUNT;
+ }
+
+- convert_to_long_ex(scin);
+ convert_to_string_ex(word);
+- manager = (PspellManager *) zend_list_find(Z_LVAL_PP(scin), &type);
+- if(!manager){
+- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a PSPELL result index", Z_LVAL_PP(scin));
+- RETURN_FALSE;
+- }
++ PSPELL_FETCH_MANAGER;
+
+ array_init(return_value);
+
+@@ -457,14 +458,9 @@
+ WRONG_PARAM_COUNT;
+ }
+
+- convert_to_long_ex(scin);
+ convert_to_string_ex(miss);
+ convert_to_string_ex(corr);
+- manager = (PspellManager *) zend_list_find(Z_LVAL_PP(scin), &type);
+- if(!manager){
+- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a PSPELL result index", Z_LVAL_PP(scin));
+- RETURN_FALSE;
+- }
++ PSPELL_FETCH_MANAGER;
+
+ pspell_manager_store_replacement(manager, Z_STRVAL_PP(miss), Z_STRVAL_PP(corr));
+ if(pspell_manager_error_number(manager) == 0){
+@@ -490,13 +486,8 @@
+ WRONG_PARAM_COUNT;
+ }
+
+- convert_to_long_ex(scin);
+ convert_to_string_ex(word);
+- manager = (PspellManager *) zend_list_find(Z_LVAL_PP(scin), &type);
+- if(!manager){
+- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a PSPELL result index", Z_LVAL_PP(scin));
+- RETURN_FALSE;
+- }
++ PSPELL_FETCH_MANAGER;
+
+ /*If the word is empty, we have to return; otherwise we'll segfault! ouch!*/
+ if(Z_STRLEN_PP(word) == 0){
+@@ -527,13 +518,8 @@
+ WRONG_PARAM_COUNT;
+ }
+
+- convert_to_long_ex(scin);
+ convert_to_string_ex(word);
+- manager = (PspellManager *) zend_list_find(Z_LVAL_PP(scin), &type);
+- if(!manager){
+- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a PSPELL result index", Z_LVAL_PP(scin));
+- RETURN_FALSE;
+- }
++ PSPELL_FETCH_MANAGER;
+
+ /*If the word is empty, we have to return; otherwise we'll segfault! ouch!*/
+ if(Z_STRLEN_PP(word) == 0){
+@@ -564,12 +550,7 @@
+ WRONG_PARAM_COUNT;
+ }
+
+- convert_to_long_ex(scin);
+- manager = (PspellManager *) zend_list_find(Z_LVAL_PP(scin), &type);
+- if(!manager){
+- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a PSPELL result index", Z_LVAL_PP(scin));
+- RETURN_FALSE;
+- }
++ PSPELL_FETCH_MANAGER;
+
+ pspell_manager_clear_session(manager);
+ if(pspell_manager_error_number(manager) == 0){
+@@ -595,12 +576,7 @@
+ WRONG_PARAM_COUNT;
+ }
+
+- convert_to_long_ex(scin);
+- manager = (PspellManager *) zend_list_find(Z_LVAL_PP(scin), &type);
+- if(!manager){
+- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a PSPELL result index", Z_LVAL_PP(scin));
+- RETURN_FALSE;
+- }
++ PSPELL_FETCH_MANAGER;
+
+ pspell_manager_save_all_word_lists(manager);
+
+@@ -694,22 +670,17 @@
+ PHP_FUNCTION(pspell_config_runtogether)
+ {
+ int type;
+- zval **sccin, **runtogether;
++ zval **conf, **runtogether;
+ int argc;
+
+ PspellConfig *config;
+
+ argc = ZEND_NUM_ARGS();
+- if (argc != 2 || zend_get_parameters_ex(argc,&sccin,&runtogether) == FAILURE) {
++ if (argc != 2 || zend_get_parameters_ex(argc,&conf,&runtogether) == FAILURE) {
+ WRONG_PARAM_COUNT;
+ }
+
+- convert_to_long_ex(sccin);
+- config = (PspellConfig *) zend_list_find(Z_LVAL_PP(sccin), &type);
+- if(!config){
+- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a PSPELL config index", Z_LVAL_PP(sccin));
+- RETURN_FALSE;
+- }
++ PSPELL_FETCH_CONFIG;
+
+ convert_to_boolean_ex(runtogether);
+ pspell_config_replace(config, "run-together", Z_LVAL_PP(runtogether) ? "true" : "false");
+@@ -723,22 +694,17 @@
+ PHP_FUNCTION(pspell_config_mode)
+ {
+ int type;
+- zval **sccin, **mode;
++ zval **conf, **mode;
+ int argc;
+
+ PspellConfig *config;
+
+ argc = ZEND_NUM_ARGS();
+- if (argc != 2 || zend_get_parameters_ex(argc,&sccin,&mode) == FAILURE) {
++ if (argc != 2 || zend_get_parameters_ex(argc,&conf,&mode) == FAILURE) {
+ WRONG_PARAM_COUNT;
+ }
+
+- convert_to_long_ex(sccin);
+- config = (PspellConfig *) zend_list_find(Z_LVAL_PP(sccin), &type);
+- if(!config){
+- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a PSPELL config index", Z_LVAL_PP(sccin));
+- RETURN_FALSE;
+- }
++ PSPELL_FETCH_CONFIG;
+
+ convert_to_long_ex(mode);
+
+@@ -760,7 +726,7 @@
+ PHP_FUNCTION(pspell_config_ignore)
+ {
+ int type;
+- zval **sccin, **pignore;
++ zval **conf, **pignore;
+ int argc;
+
+ int loc = PSPELL_LARGEST_WORD;
+@@ -770,16 +736,11 @@
+ PspellConfig *config;
+
+ argc = ZEND_NUM_ARGS();
+- if (argc != 2 || zend_get_parameters_ex(argc,&sccin,&pignore) == FAILURE) {
++ if (argc != 2 || zend_get_parameters_ex(argc,&conf,&pignore) == FAILURE) {
+ WRONG_PARAM_COUNT;
+ }
+
+- convert_to_long_ex(sccin);
+- config = (PspellConfig *) zend_list_find(Z_LVAL_PP(sccin), &type);
+- if(!config){
+- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a PSPELL config index", Z_LVAL_PP(sccin));
+- RETURN_FALSE;
+- }
++ PSPELL_FETCH_CONFIG;
+
+ convert_to_long_ex(pignore);
+ ignore = Z_LVAL_PP(pignore);
+@@ -808,21 +769,16 @@
+ static void pspell_config_path(INTERNAL_FUNCTION_PARAMETERS, char *option)
+ {
+ int type;
+- zval **sccin, **value;
++ zval **conf, **value;
+ int argc;
+ PspellConfig *config;
+
+ argc = ZEND_NUM_ARGS();
+- if (argc != 2 || zend_get_parameters_ex(argc, &sccin, &value) == FAILURE) {
++ if (argc != 2 || zend_get_parameters_ex(argc, &conf, &value) == FAILURE) {
+ WRONG_PARAM_COUNT;
+ }
+
+- convert_to_long_ex(sccin);
+- config = (PspellConfig *) zend_list_find(Z_LVAL_PP(sccin), &type);
+- if (!config) {
+- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a PSPELL config index", Z_LVAL_PP(sccin));
+- RETURN_FALSE;
+- }
++ PSPELL_FETCH_CONFIG;
+
+ convert_to_string_ex(value);
+
+@@ -868,22 +824,17 @@
+ PHP_FUNCTION(pspell_config_repl)
+ {
+ int type;
+- zval **sccin, **repl;
++ zval **conf, **repl;
+ int argc;
+
+ PspellConfig *config;
+
+ argc = ZEND_NUM_ARGS();
+- if (argc != 2 || zend_get_parameters_ex(argc,&sccin,&repl) == FAILURE) {
++ if (argc != 2 || zend_get_parameters_ex(argc,&conf,&repl) == FAILURE) {
+ WRONG_PARAM_COUNT;
+ }
+
+- convert_to_long_ex(sccin);
+- config = (PspellConfig *) zend_list_find(Z_LVAL_PP(sccin), &type);
+- if(!config){
+- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a PSPELL config index", Z_LVAL_PP(sccin));
+- RETURN_FALSE;
+- }
++ PSPELL_FETCH_CONFIG;
+
+ pspell_config_replace(config, "save-repl", "true");
+
+@@ -908,22 +859,17 @@
+ PHP_FUNCTION(pspell_config_save_repl)
+ {
+ int type;
+- zval **sccin, **save;
++ zval **conf, **save;
+ int argc;
+
+ PspellConfig *config;
+
+ argc = ZEND_NUM_ARGS();
+- if (argc != 2 || zend_get_parameters_ex(argc,&sccin,&save) == FAILURE) {
++ if (argc != 2 || zend_get_parameters_ex(argc,&conf,&save) == FAILURE) {
+ WRONG_PARAM_COUNT;
+ }
+
+- convert_to_long_ex(sccin);
+- config = (PspellConfig *) zend_list_find(Z_LVAL_PP(sccin), &type);
+- if(!config){
+- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a PSPELL config index", Z_LVAL_PP(sccin));
+- RETURN_FALSE;
+- }
++ PSPELL_FETCH_CONFIG;
+
+ convert_to_boolean_ex(save);
+ pspell_config_replace(config, "save-repl", Z_LVAL_PP(save) ? "true" : "false");
diff --git a/dev-lang/php/files/5.0.5/php5.0.5-session_save_path-segf.patch b/dev-lang/php/files/5.0.5/php5.0.5-session_save_path-segf.patch
new file mode 100644
index 0000000..aee032f
--- /dev/null
+++ b/dev-lang/php/files/5.0.5/php5.0.5-session_save_path-segf.patch
@@ -0,0 +1,123 @@
+--- sapi/apache2handler/sapi_apache2.c 2005/09/02 13:51:26 1.40.2.11
++++ sapi/apache2handler/sapi_apache2.c 2005/10/17 19:35:39 1.40.2.13
+@@ -18,7 +18,7 @@
+ +----------------------------------------------------------------------+
+ */
+
+-/* $Id: sapi_apache2.c,v 1.40.2.11 2005/09/02 13:51:26 sniper Exp $ */
++/* $Id: sapi_apache2.c,v 1.40.2.13 2005/10/17 19:35:39 rasmus Exp $ */
+
+ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS
+
+@@ -446,15 +446,35 @@ static int php_handler(request_rec *r)
+ request_rec *parent_req = NULL;
+ TSRMLS_FETCH();
+
++#define PHPAP_INI_OFF \
++ if (strcmp(r->protocol, "INCLUDED")) { \
++ zend_try { zend_ini_deactivate(TSRMLS_C); } zend_end_try(); \
++ } \
++
+ conf = ap_get_module_config(r->per_dir_config, &php5_module);
++
++ /* apply_config() needs r in some cases, so allocate server_context early */
++ ctx = SG(server_context);
++ if (ctx == NULL) {
++normal:
++ ctx = SG(server_context) = apr_pcalloc(r->pool, sizeof(*ctx));
++ /* register a cleanup so we clear out the SG(server_context)
++ * after each request. Note: We pass in the pointer to the
++ * server_context in case this is handled by a different thread.
++ */
++ apr_pool_cleanup_register(r->pool, (void *)&SG(server_context), php_server_context_cleanup, apr_pool_cleanup_null);
++ ctx->r = r;
++ ctx = NULL; /* May look weird to null it here, but it is to catch the right case in the first_try later on */
++ } else {
++ parent_req = ctx->r;
++ ctx->r = r;
++ }
+ apply_config(conf);
+
+ if (strcmp(r->handler, PHP_MAGIC_TYPE) && strcmp(r->handler, PHP_SOURCE_MAGIC_TYPE) && strcmp(r->handler, PHP_SCRIPT)) {
+ /* Check for xbithack in this case. */
+ if (!AP2(xbithack) || strcmp(r->handler, "text/html") || !(r->finfo.protection & APR_UEXECUTE)) {
+- zend_try {
+- zend_ini_deactivate(TSRMLS_C);
+- } zend_end_try();
++ PHPAP_INI_OFF;
+ return DECLINED;
+ }
+ }
+@@ -463,32 +483,24 @@ static int php_handler(request_rec *r)
+ * the configuration; default behaviour is to accept. */
+ if (r->used_path_info == AP_REQ_REJECT_PATH_INFO
+ && r->path_info && r->path_info[0]) {
+- zend_try {
+- zend_ini_deactivate(TSRMLS_C);
+- } zend_end_try();
++ PHPAP_INI_OFF;
+ return HTTP_NOT_FOUND;
+ }
+
+ /* handle situations where user turns the engine off */
+ if (!AP2(engine)) {
+- zend_try {
+- zend_ini_deactivate(TSRMLS_C);
+- } zend_end_try();
++ PHPAP_INI_OFF;
+ return DECLINED;
+ }
+
+ if (r->finfo.filetype == 0) {
+ php_apache_sapi_log_message_ex("script '%s' not found or unable to stat", r);
+- zend_try {
+- zend_ini_deactivate(TSRMLS_C);
+- } zend_end_try();
++ PHPAP_INI_OFF;
+ return HTTP_NOT_FOUND;
+ }
+ if (r->finfo.filetype == APR_DIR) {
+ php_apache_sapi_log_message_ex("attempt to invoke directory '%s' as script", r);
+- zend_try {
+- zend_ini_deactivate(TSRMLS_C);
+- } zend_end_try();
++ PHPAP_INI_OFF;
+ return HTTP_FORBIDDEN;
+ }
+
+@@ -504,25 +516,24 @@ static int php_handler(request_rec *r)
+
+ zend_first_try {
+
+- ctx = SG(server_context);
+ if (ctx == NULL) {
+-normal:
+- ctx = SG(server_context) = apr_pcalloc(r->pool, sizeof(*ctx));
+- /* register a cleanup so we clear out the SG(server_context)
+- * after each request. Note: We pass in the pointer to the
+- * server_context in case this is handled by a different thread.
+- */
+- apr_pool_cleanup_register(r->pool, (void *)&SG(server_context), php_server_context_cleanup, apr_pool_cleanup_null);
+-
+- ctx->r = r;
+ brigade = apr_brigade_create(r->pool, r->connection->bucket_alloc);
++ ctx = SG(server_context);
+ ctx->brigade = brigade;
+
+ if (php_apache_request_ctor(r, ctx TSRMLS_CC)!=SUCCESS) {
+ zend_bailout();
+ }
+ } else {
+- parent_req = ctx->r;
++ if (!parent_req) {
++ parent_req = ctx->r;
++ }
++ if (parent_req && strcmp(parent_req->handler, PHP_MAGIC_TYPE) && strcmp(parent_req->handler, PHP_SOURCE_MAGIC_TYPE) && strcmp(parent_req->handler, PHP_SCRIPT)) {
++ if (php_apache_request_ctor(r, ctx TSRMLS_CC)!=SUCCESS) {
++ zend_bailout();
++ }
++ }
++
+ /* check if comming due to ErrorDocument */
+ if (parent_req && parent_req->status != HTTP_OK) {
+ parent_req = NULL;
diff --git a/dev-lang/php/files/5.0.5/php5.0.5-tsrm-gcc4.patch b/dev-lang/php/files/5.0.5/php5.0.5-tsrm-gcc4.patch
new file mode 100644
index 0000000..ee4fee5
--- /dev/null
+++ b/dev-lang/php/files/5.0.5/php5.0.5-tsrm-gcc4.patch
@@ -0,0 +1,11 @@
+--- TSRM/TSRM.h 2005-12-02 19:04:27.000000000 +0100
++++ TSRM/TSRM.h 2005-12-02 19:05:01.000000000 +0100
+@@ -137,7 +137,7 @@
+
+ #define TSRMLS_FETCH() void ***tsrm_ls = (void ***) ts_resource_ex(0, NULL)
+ #define TSRMLS_FETCH_FROM_CTX(ctx) void ***tsrm_ls = (void ***) ctx
+-#define TSRMLS_SET_CTX(ctx) (void ***) ctx = tsrm_ls
++#define TSRMLS_SET_CTX(ctx) ctx = (void ***) tsrm_ls
+ #define TSRMG(id, type, element) (((type) (*((void ***) tsrm_ls))[TSRM_UNSHUFFLE_RSRC_ID(id)])->element)
+ #define TSRMLS_D void ***tsrm_ls
+ #define TSRMLS_DC , TSRMLS_D