From 5b54caac764dd2e608ad111f819871dd2818a277 Mon Sep 17 00:00:00 2001 From: Noel Darlow Date: Mon, 2 Jul 2012 01:26:30 +0100 Subject: still trying.. --- dev-lang/php/files/5.0.5/CVS/Entries | 14 + dev-lang/php/files/5.0.5/CVS/Repository | 1 + dev-lang/php/files/5.0.5/CVS/Root | 1 + dev-lang/php/files/5.0.5/CVS/Tag | 1 + .../php/files/5.0.5/php5.0.5-apache2sapi.patch | 139 ++ .../files/5.0.5/php5.0.5-curl-open_basedir.patch | 48 + .../php/files/5.0.5/php5.0.5-curl_safemode.patch | 46 + .../php/files/5.0.5/php5.0.5-fopen_wrappers.patch | 22 + .../php/files/5.0.5/php5.0.5-gd-safe_mode.patch | 95 ++ .../php/files/5.0.5/php5.0.5-gd_safe_mode.patch | 20 + .../files/5.0.5/php5.0.5-globals_overwrite.patch | 203 +++ .../files/5.0.5/php5.0.5-mbstring-header_inj.patch | 133 ++ .../5.0.5/php5.0.5-multilib-search-path.patch | 1372 ++++++++++++++++++++ .../php/files/5.0.5/php5.0.5-obj-serialize.patch | 42 + .../php/files/5.0.5/php5.0.5-pspell-ext-segf.patch | 320 +++++ .../5.0.5/php5.0.5-session_save_path-segf.patch | 123 ++ dev-lang/php/files/5.0.5/php5.0.5-tsrm-gcc4.patch | 11 + 17 files changed, 2591 insertions(+) create mode 100644 dev-lang/php/files/5.0.5/CVS/Entries create mode 100644 dev-lang/php/files/5.0.5/CVS/Repository create mode 100644 dev-lang/php/files/5.0.5/CVS/Root create mode 100644 dev-lang/php/files/5.0.5/CVS/Tag create mode 100644 dev-lang/php/files/5.0.5/php5.0.5-apache2sapi.patch create mode 100644 dev-lang/php/files/5.0.5/php5.0.5-curl-open_basedir.patch create mode 100644 dev-lang/php/files/5.0.5/php5.0.5-curl_safemode.patch create mode 100644 dev-lang/php/files/5.0.5/php5.0.5-fopen_wrappers.patch create mode 100644 dev-lang/php/files/5.0.5/php5.0.5-gd-safe_mode.patch create mode 100644 dev-lang/php/files/5.0.5/php5.0.5-gd_safe_mode.patch create mode 100644 dev-lang/php/files/5.0.5/php5.0.5-globals_overwrite.patch create mode 100644 dev-lang/php/files/5.0.5/php5.0.5-mbstring-header_inj.patch create mode 100644 dev-lang/php/files/5.0.5/php5.0.5-multilib-search-path.patch create mode 100644 dev-lang/php/files/5.0.5/php5.0.5-obj-serialize.patch create mode 100644 dev-lang/php/files/5.0.5/php5.0.5-pspell-ext-segf.patch create mode 100644 dev-lang/php/files/5.0.5/php5.0.5-session_save_path-segf.patch create mode 100644 dev-lang/php/files/5.0.5/php5.0.5-tsrm-gcc4.patch (limited to 'dev-lang/php/files/5.0.5') 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 + #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=]) +@@ -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=) +@@ -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 -- cgit v1.2.3-65-gdbad