--- /dev/null
+--- php4-4.0.4final.orig/Makefile.in
++++ php4-4.0.4final/Makefile.in
+@@ -1,4 +1,4 @@
+-
++DESTDIR =
+ ZEND_DIR = $(srcdir)/Zend
+ SUBDIRS = Zend main ext sapi $(TSRM_DIR) $(REGEX_DIR) . $(PEAR_DIR)
+
+@@ -32,7 +32,7 @@
+
+ install-sapi:
+ @$(LIBTOOL) --silent --mode=install cp libphp4.la $(phptempdir)/libphp4.la >/dev/null 2>&1
+- -@$(mkinstalldirs) $(bindir)
++ -@$(mkinstalldirs) $(DESTDIR)$(bindir)
+ -@if test ! -r $(phptempdir)/libphp4.$(SHLIB_SUFFIX_NAME); then \
+ for i in 0.0.0 0.0 0; do \
+ if test -r $(phptempdir)/libphp4.$(SHLIB_SUFFIX_NAME).$$i; then \
+@@ -45,10 +45,10 @@
+
+ install-modules:
+ @test -d modules && \
+- $(mkinstalldirs) $(moduledir) && \
++ $(mkinstalldirs) $(DESTDIR)$(moduledir) && \
+ echo "installing shared modules into $(moduledir)" && \
+ rm -f modules/*.la && \
+- cp modules/* $(moduledir) >/dev/null 2>&1 || true
++ cp modules/* $(DESTDIR)$(moduledir) >/dev/null 2>&1 || true
+
+ install-su: install-modules
+ (cd pear && $(MAKE) install)
+--- php4-4.0.4final.orig/pear/Makefile.in
++++ php4-4.0.4final/pear/Makefile.in
+@@ -17,6 +17,7 @@
+ File \
+ HTML \
+ Mail \
++ Math \
+ Net \
+ Payment \
+ PEAR \
+@@ -45,6 +46,8 @@
+ Mail.php \
+ Mail/sendmail.php \
+ Mail/smtp.php \
++ Math/Fraction.php \
++ Math/Util.php \
+ Net/SMTP.php \
+ Net/Socket.php \
+ PEAR/Installer.php \
+@@ -52,24 +55,24 @@
+ XML/Parser.php
+
+ install-data-local: PEAR.php
+- @if $(mkinstalldirs) $(peardir); then \
++ @if $(mkinstalldirs) $(DESTDIR)$(peardir); then \
+ for i in $(PEAR_SUBDIRS); do \
+- (set -x;$(mkinstalldirs) $(peardir)/$$i); \
++ (set -x;$(mkinstalldirs) $(DESTDIR)$(peardir)/$$i); \
+ done; \
+ for i in $(PEAR_FILES); do \
+ dir=`echo $$i|sed 's%[^/][^/]*$$%%'`; \
+- (set -x;$(INSTALL_DATA) $(srcdir)/$$i $(peardir)/$$dir); \
++ (set -x;$(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)$(peardir)/$$dir); \
+ done; \
+ for i in PEAR.php; do \
+- (set -x;$(INSTALL_DATA) $$i $(peardir)); \
++ (set -x;$(INSTALL_DATA) $$i $(DESTDIR)$(peardir)); \
+ done; \
+ else \
+ cat $(srcdir)/install-pear.txt; \
+ exit 5; \
+ fi
+
+-phpincludedir = $(includedir)/php
+-phpbuilddir = $(prefix)/lib/php/build
++phpincludedir = $(includedir)/php4
++phpbuilddir = $(prefix)/lib/php4/build
+
+ BUILD_FILES = \
+ pear/pear.m4 \
+@@ -89,13 +92,13 @@
+ bin_PROGRAMS = phpize php-config pear
+
+ install-build:
+- $(mkinstalldirs) $(phpbuilddir) $(bindir) && \
+- (cd $(top_srcdir) && cp $(BUILD_FILES) $(phpbuilddir))
++ $(mkinstalldirs) $(DESTDIR)$(phpbuilddir) $(DESTDIR)$(bindir) && \
++ (cd $(top_srcdir) && cp $(BUILD_FILES) $(DESTDIR)$(phpbuilddir))
+
+ install-programs:
+- $(INSTALL) -m 755 $(srcdir)/phpextdist $(bindir)/phpextdist
++ $(INSTALL) -m 755 $(srcdir)/phpextdist $(DESTDIR)$(bindir)/phpextdist
+ for prog in $(bin_PROGRAMS); do \
+- $(INSTALL) -m 755 $$prog $(bindir)/$$prog; \
++ $(INSTALL) -m 755 $$prog $(DESTDIR)$(bindir)/$$prog; \
+ done
+
+ HEADER_DIRS = \
+@@ -111,13 +114,13 @@
+
+ install-headers:
+ -@for i in $(HEADER_DIRS); do \
+- paths="$$paths $(phpincludedir)/$$i"; \
++ paths="$$paths $(DESTDIR)$(phpincludedir)/$$i"; \
+ done; \
+ $(mkinstalldirs) $$paths && \
+ echo "creating header file hierarchy" && \
+ for i in $(HEADER_DIRS); do \
+- (cd $(top_srcdir)/$$i && cp -p *.h $(phpincludedir)/$$i; \
+- cd $(top_builddir)/$$i && cp -p *.h $(phpincludedir)/$$i) 2>/dev/null || true; \
++ (cd $(top_srcdir)/$$i && cp -p *.h $(DESTDIR)$(phpincludedir)/$$i; \
++ cd $(top_builddir)/$$i && cp -p *.h $(DESTDIR)$(phpincludedir)/$$i) 2>/dev/null || true; \
+ done
+
+ Makefile: Makefile.in $(top_builddir)/config.status
+
--- /dev/null
+--- php-4.0.4pl1/sapi/apache/mod_php4.c.wiget Wed Jan 3 23:07:59 2001
++++ php-4.0.4pl1/sapi/apache/mod_php4.c Fri Jan 19 17:01:11 2001
+@@ -59,9 +59,6 @@
+ #include "util_script.h"
+
+ #include "mod_php4.h"
+-#if HAVE_MOD_DAV
+-# include "mod_dav.h"
+-#endif
+
+ #undef shutdown
+
+@@ -111,8 +108,6 @@
+ int type;
+ } php_per_dir_entry;
+
+-php_apache_info_struct php_apache_info; /* active config */
+-
+ /* some systems are missing these from their header files */
+
+ void php_save_umask(void)
+@@ -440,6 +435,7 @@
+ ELS_FETCH();
+ CLS_FETCH();
+ PLS_FETCH();
++ APLS_FETCH();
+
+ if (setjmp(EG(bailout))!=0) {
+ return OK;
+@@ -463,7 +459,7 @@
+ /* If PHP parser engine has been turned off with an "engine off"
+ * directive, then decline to handle this request
+ */
+- if (!php_apache_info.engine) {
++ if (!AP(engine)) {
+ r->content_type = php_apache_get_default_mimetype(r SLS_CC);
+ r->allowed |= (1 << METHODS) - 1;
+ if (setjmp(EG(bailout))==0) {
+@@ -485,7 +481,7 @@
+ }
+ #endif
+
+- if (php_apache_info.last_modified) {
++ if (AP(last_modified)) {
+ #if MODULE_MAGIC_NUMBER < 19970912
+ if ((retval = set_last_modified(r, r->finfo.st_mtime))) {
+ if (setjmp(EG(bailout))==0) {
+@@ -734,46 +730,6 @@
+ }
+
+
+-#if HAVE_MOD_DAV
+-
+-extern int phpdav_mkcol_test_handler(request_rec *r);
+-extern int phpdav_mkcol_create_handler(request_rec *r);
+-
+-/* conf is being read twice (both here and in send_php()) */
+-int send_parsed_php_dav_script(request_rec *r)
+-{
+- php_apache_info_struct *conf;
+-
+- conf = (php_apache_info_struct *) get_module_config(r->per_dir_config,
+- &php4_module);
+- return send_php(r, 0, 0, conf->dav_script);
+-}
+-
+-static int php_type_checker(request_rec *r)
+-{
+- php_apache_info_struct *conf;
+-
+- conf = (php_apache_info_struct *)get_module_config(r->per_dir_config,
+- &php4_module);
+-
+- /* If DAV support is enabled, use mod_dav's type checker. */
+- if (conf->dav_script) {
+- dav_api_set_request_handler(r, send_parsed_php_dav_script);
+- dav_api_set_mkcol_handlers(r, phpdav_mkcol_test_handler,
+- phpdav_mkcol_create_handler);
+- /* leave the rest of the request to mod_dav */
+- return dav_api_type_checker(r);
+- }
+-
+- return DECLINED;
+-}
+-
+-#else /* HAVE_MOD_DAV */
+-
+-# define php_type_checker NULL
+-
+-#endif /* HAVE_MOD_DAV */
+-
+
+ handler_rec php_handlers[] =
+ {
+@@ -809,7 +765,7 @@
+ NULL, /* check_user_id */
+ NULL, /* check auth */
+ NULL, /* check access */
+- php_type_checker, /* type_checker */
++ NULL, /* type_checker */
+ NULL, /* fixups */
+ NULL /* logger */
+ #if MODULE_MAGIC_NUMBER >= 19970103
+--- php-4.0.4pl1/sapi/apache/mod_php4.h.wiget Mon Jul 3 01:46:50 2000
++++ php-4.0.4pl1/sapi/apache/mod_php4.h Fri Jan 19 17:01:11 2001
+@@ -15,7 +15,7 @@
+ | Authors: Rasmus Lerdorf <rasmus@php.net> |
+ +----------------------------------------------------------------------+
+ */
+-/* $Id$ */
++/* $Id$ */
+
+ #ifndef MOD_PHP4_H
+ #define MOD_PHP4_H
+@@ -29,12 +29,24 @@
+ typedef struct {
+ long engine;
+ long last_modified;
+- char *dav_script;
+ long xbithack;
++ long terminate_child;
+ } php_apache_info_struct;
+
+ extern zend_module_entry apache_module_entry;
++
++#ifdef ZTS
++extern int php_apache_info_id;
++#define APLS_D php_apache_info_struct *apache_globals
++#define AP(v) (apache_globals->v)
++#define APLS_FETCH() APLS_D = ts_resource(php_apache_info_id)
++#else
+ extern php_apache_info_struct php_apache_info;
++#define APLS_D
++#define AP(v) (php_apache_info.v)
++#define APLS_FETCH()
++#endif
++
+
+ #ifdef WIN32
+ #define S_IXUSR _S_IEXEC
+--- php-4.0.4pl1/sapi/apache/php_apache.c.wiget Fri Oct 13 21:08:05 2000
++++ php-4.0.4pl1/sapi/apache/php_apache.c Fri Jan 19 17:01:11 2001
+@@ -17,7 +17,7 @@
+ | David Sklar <sklar@student.net> |
+ +----------------------------------------------------------------------+
+ */
+-/* $Id$ */
++/* $Id$ */
+
+ #define NO_REGEX_EXTRA_H
+
+@@ -45,6 +45,12 @@
+ #include "php_apache_http.h"
+ #include "http_request.h"
+
++#ifdef ZTS
++int php_apache_info_id;
++#else
++php_apache_info_struct php_apache_info;
++#endif
++
+ #ifdef PHP_WIN32
+ #include "zend.h"
+ #include "ap_compat.h"
+@@ -61,6 +67,7 @@
+ PHP_FUNCTION(apachelog);
+ PHP_FUNCTION(apache_note);
+ PHP_FUNCTION(apache_lookup_uri);
++PHP_FUNCTION(apache_child_terminate);
+
+ PHP_MINFO_FUNCTION(apache);
+
+@@ -69,51 +76,24 @@
+ PHP_FE(getallheaders, NULL)
+ PHP_FE(apache_note, NULL)
+ PHP_FE(apache_lookup_uri, NULL)
++ PHP_FE(apache_child_terminate, NULL)
+ {NULL, NULL, NULL}
+ };
+
+
+-static PHP_INI_MH(OnChangeApacheInt)
+-{
+- long *p;
+- char *base = (char *) &php_apache_info;
+-
+- p = (long *) (base+(size_t) mh_arg1);
+-
+- if (new_value) {
+- *p = atoi(new_value);
+- return SUCCESS;
+- } else {
+- return FAILURE;
+- }
+-}
+-
+-
+-static PHP_INI_MH(OnChangeApacheString)
+-{
+- char **p;
+- char *base = (char *) &php_apache_info;
+-
+- p = (char **) (base+(size_t) mh_arg1);
+-
+- if (new_value) {
+- *p = new_value;
+- return SUCCESS;
+- } else {
+- return FAILURE;
+- }
+-}
+-
+ PHP_INI_BEGIN()
+- PHP_INI_ENTRY1("xbithack", "0", PHP_INI_ALL, OnChangeApacheInt, (void *) XtOffsetOf(php_apache_info_struct, xbithack))
+- PHP_INI_ENTRY1("engine", "1", PHP_INI_ALL, OnChangeApacheInt, (void *) XtOffsetOf(php_apache_info_struct, engine))
+- PHP_INI_ENTRY1("last_modified", "0", PHP_INI_ALL, OnChangeApacheInt, (void *) XtOffsetOf(php_apache_info_struct, last_modified))
+- PHP_INI_ENTRY1("dav_script", NULL, PHP_INI_ALL, OnChangeApacheString, (void *) XtOffsetOf(php_apache_info_struct, dav_script))
++ STD_PHP_INI_ENTRY("xbithack", "0", PHP_INI_ALL, OnUpdateInt, xbithack, php_apache_info_struct, php_apache_info)
++ STD_PHP_INI_ENTRY("engine", "1", PHP_INI_ALL, OnUpdateInt, engine, php_apache_info_struct, php_apache_info)
++ STD_PHP_INI_ENTRY("last_modified", "0", PHP_INI_ALL, OnUpdateInt, last_modified, php_apache_info_struct, php_apache_info)
++ STD_PHP_INI_ENTRY("child_terminate", "0", PHP_INI_ALL, OnUpdateInt, terminate_child, php_apache_info_struct, php_apache_info)
+ PHP_INI_END()
+
+
+ static PHP_MINIT_FUNCTION(apache)
+ {
++#ifdef ZTS
++ php_apache_info_id = ts_allocate_id(sizeof(php_apache_info_struct), NULL, NULL);
++#endif
+ REGISTER_INI_ENTRIES();
+ return SUCCESS;
+ }
+@@ -129,6 +109,21 @@
+ zend_module_entry apache_module_entry = {
+ "apache", apache_functions, PHP_MINIT(apache), PHP_MSHUTDOWN(apache), NULL, NULL, PHP_MINFO(apache), STANDARD_MODULE_PROPERTIES
+ };
++
++/* {{{ proto string child_terminate()
++ Get and set Apache request notes */
++PHP_FUNCTION(apache_child_terminate)
++{
++ APLS_FETCH();
++ SLS_FETCH();
++
++ if (AP(terminate_child)) {
++ ap_child_terminate( ((request_rec *)SG(server_context)) );
++ } else { /* tell them to get lost! */
++ php_error(E_WARNING, "apache.child_terminate is disabled");
++ }
++}
++/* }}} */
+
+ /* {{{ proto string apache_note(string note_name [, string note_value])
+ Get and set Apache request notes */
--- /dev/null
+--- php4-4.0.4final.orig/ext/gd/config.m4
++++ php4-4.0.4final/ext/gd/config.m4
+@@ -16,7 +16,6 @@
+ else
+ AC_ADD_LIBRARY_WITH_PATH(jpeg, $withval/lib)
+ fi
+- LIBS="$LIBS -L$withval/lib -ljpeg"
+ ],[
+ AC_MSG_RESULT(no)
+ AC_MSG_WARN(If configure fails try --with-jpeg-dir=<DIR>)
+@@ -36,9 +35,13 @@
+ LIBS="$LIBS -L$withval/lib -lX11"
+ AC_CHECK_LIB(Xpm,XpmFreeXpmImage, [LIBS="$LIBS -L$withval/lib -lXpm"],[AC_MSG_RESULT(no)],)
+ LIBS=$old_LIBS
+- AC_ADD_LIBRARY_WITH_PATH(Xpm, $withval/lib)
+- AC_ADD_LIBRARY_WITH_PATH(X11, $withval/lib)
+- LIBS="$LIBS -L$withval/lib -lXpm -L$withval/lib -lX11"
++ if test "$shared" = "yes"; then
++ GD_LIBS="$GD_LIBS -lXpm -lX11"
++ GD_LFLAGS="$GD_LFLAGS -L$withval/lib"
++ else
++ AC_ADD_LIBRARY_WITH_PATH(Xpm, $withval/lib)
++ AC_ADD_LIBRARY_WITH_PATH(X11, $withval/lib)
++ fi
+ ],[
+ AC_MSG_RESULT(no)
+ AC_MSG_WARN(If configure fails try --with-xpm-dir=<DIR>)
+@@ -112,10 +115,11 @@
+ LIBS=$old_LIBS
+ LDFLAGS=$old_LDFLAGS
+ if test "$ac_cv_lib_gd_gdImageCreateFromPng" = "yes"; then
+- AC_ADD_LIBRARY(png)
+- AC_ADD_LIBRARY(z)
+ if test "$shared" = "yes"; then
+ GD_LIBS="$GD_LIBS -lpng -lz"
++ else
++ AC_ADD_LIBRARY(png)
++ AC_ADD_LIBRARY(z)
+ fi
+ fi
+
+@@ -165,10 +169,11 @@
+ LIBS=$old_LIBS
+ LDFLAGS=$old_LDFLAGS
+ if test "$ac_cv_lib_gd_gdImageCreateFromPng" = "yes"; then
+- AC_ADD_LIBRARY(z)
+- AC_ADD_LIBRARY(png)
+ if test "$shared" = "yes"; then
+ GD_LIBS="$GD_LIBS -lpng -lz"
++ else
++ AC_ADD_LIBRARY(z)
++ AC_ADD_LIBRARY(png)
+ fi
+ fi
+
+@@ -249,7 +254,7 @@
+ else
+ AC_ADD_LIBRARY_WITH_PATH(t1, "$T1_DIR/lib")
+ fi
+- LIBS="$LIBS -L$T1_DIR/lib -lt1"
++# LIBS="$LIBS -L$T1_DIR/lib -lt1"
+ fi
+
+ AC_MSG_RESULT(yes)
+