summaryrefslogtreecommitdiff
path: root/www/ap-fastcgi
diff options
context:
space:
mode:
authorcube <cube@pkgsrc.org>2004-10-28 21:01:50 +0000
committercube <cube@pkgsrc.org>2004-10-28 21:01:50 +0000
commitbb6e3d9d01565b2471fb079848a75ceab896fab2 (patch)
tree8967ca528b2fd27c8be03d699349bc502dd01aaf /www/ap-fastcgi
parent4ded5418d04b058ef71455cb5a3b33ef4adf2a5e (diff)
downloadpkgsrc-bb6e3d9d01565b2471fb079848a75ceab896fab2.tar.gz
Update to version 2.4.2. Split Apache version-dependent parts from the
rest through a Makefile.common entity. It will help with incoming ap2-fastcgi addition. Changes: lots of! 2.4.2 *) [WIN] Fix handle leaks in the process manager. Sascha Schumann [sascha@schumann.cx] *) [WIN] Use a permanent pool for allocating the SystemRoot environment variable. Sakamoto [ringring@zb4.so-net.ne.jp] *) [WIN] Fix starting of scripts under AP2. *) Do the connect() to the application *after* collecting a chunk of client data. This reinstates the pre-2.4.0 behaviour. James Jurach [muaddib@erf.net]. *) Remove an assert that was triggering on WIN when spawn() failed. *) Provide the NO_SUEXEC_FOR_AP_USER_N_GROUP macro for building mod_fastcgi with the AP13 suexec behaviour (don't use suexec if httpd's user and group match that needed for the application). *) Prevent the use of all but the "auth" directives from being used anywhere but in global scope. Prevent more than one instance of the FastCgiWrapper directive. *) Return NOT_FOUND (404) or FORBIDDEN (403) instead of INTERNAL_SERVER_ERROR (500) when there are configuration issues or the script does't exist. Suggested by Jeff Lawson [bovine@ud.com]. 2.4.0 *) [*nix Security] - When FastCgiWrapper (FastCgiSuexec) was in use and a vhost configured to use the same uid/gid as the main server, mod_fastcgi would not bother using the wrapper (suexec) because its effective uid/gid was already appropriate. This is consistent with Apache's v1.3 mod_cgi behaviour. There are two problems with this approach: 1) when FastCgWrapper is in use mod_fastcgi's process manager keeps its root privileges (as its real uid/gid) so it can terminate the applications its starts - this privilege was being passed to applications when the use of the wrapper was bypassed 2) wrappers are often employed to perform functionality beyond setting the uid/gid - by not calling the wrapper under certain circumstances, application invocation environments were inconsistent. With this change, the wrapper is always used (when enabled) under both Apache 1.3 and 2. Reported by Michael Richards [michael@fastmail.ca]. *) [*nix/AP2] Use the vhost uid/gid instead of the server uid/gid for dynamic application invocation when the FastCgiWrapper is in use. Reported by Michael Richards [michael@fastmail.ca] *) [*nix] Fix handling of FastCgiWrapper when passed a real path, i.e. other than "on" or "off". Michael Richards [michael@fastmail.ca] *) Eliminate the logging of "incomplete headers (0 bytes) received from server" when a client aborts. *) [WIN32] Fix a delay in handling large POSTs to named pipe based servers. Philip Gladstone [philip@okena.com] *) [*nix/AP2] Prevent the module from being initalized twice at startup (resulting in confusing error messages to the log). *) Eliminate the need for SetHandler or AddHandler with static or external applications. *) Limit PM requests to start a dynamic application to 5sec to prevent endless spinning (this is a drop-dead limit that should only occur if the socket/named_pipe directory is removed out from under a running server). *) [*nix] Change the default socket directory from /tmp/fcgi to: Apache - logs/fastcgi Apache2 - RUNTIMEDIR/fastcgi *) Add -user & -group args to FastCgiServer and FastCgiExternalServer for use with wrappers (in lieu of finding the user/group associated with a virtual host - under Apache2 this isn't accomodated). *) [WIN32] Under Apache2, require v2.0.41 or later in order to pickup my apr_proc_create() changes. *) Log when invoking and restoring the restart backoff policy. *) [WIN32] Prevent intermittent ReadFile() failures (properly initialize the OVERLAPPED structure). *) Eliminate need for dummy files for external servers under Apache2 *) Fix auth compatibility mode handling for access checker and authorizer *) Fix HEAD request handling. Based on a patch by Chris Lightfoot [chris@ex-parrot.com] *) [*nix] When autoupdate is enabled touch the socket when restarting the processes to prevent further requests. Eckebrecht von Pappenheim [evp@heise.de] *) Apache 2.0 support. *) [WIN32] Don't read from a potentially closed named pipe. Philip Gladstone [philip@okena.com] *) Require the Apache version 1.3.6 or later to eliminate some signal handling funk. *) [WIN32] Use asyncronous io with named pipes instead of polled nonblocking io. This should eliminate the last of the npipe issues. *) Handle an application returning a complete and valid response without having consumed all of the data sent to it. *) Consume remaining client data (RESPONDERs only) if any. *) Add support for backing off attempts to start applications that continuously fail to start. Three new macros defined in mod_fastcgi.h control this behaviour: MAX_FAILED_STARTS, RUNTIME_SUCCESS_INTERVAL, FAILED_STARTS_DELAY *) [WIN32] Add (back) support for use of TerminateProcess() to accomodate applications that do not (properly) support the shutdown event (this feature was introduced in fcgi2 2.2.2 and improved in 2.2.4). The new macro WIN32_SHUTDOWN_GRACEFUL_WAIT in mod_fastcgi.h conrols the interval between signaling a proper shutdown and wacking the process(s) with a TerminateProcess(). *) [WIN32] Don't set the OVERLAPPED_IO flag on NamedPipe listen HANDLEs - setting it was just plain broken. *) [WIN32] Fix the accept mutex - all applications were sharing one!? *) Fix 'FastCgiConfig -autoUpdate'. *) Fix 'FastCgiConfig -flush'. *) Prevent silly maxProcesses and processSlack combinations. Dmitry Dorofeev [dima@yasp.com] *) Properly handle the killing of idle processes when one takes a long time to exit once signaled down (or the config is funky). Dmitry Dorofeev [dima@yasp.com] 2.2.12 *) Delay the logging of write errors to the pm to account for shutdown/restart. *) (Win32) An assortment of fixes. *) Fix some broken casts that were likely the cause of an assert. *) Win32. Eliminate forward slashes from the named pipe path name. Gerald Richter [richter@ecos.de] *) SIGUSR2 is no longer blocked in the process manager and the fastcgi applications it spawns. [ryans@amazon.com] *) Added support for the -flush argument to FastCgiConfig. Eric Sit [esit@alum.mit.edu] *) Change the "which call to module_init() is this" check to a more reliable approach. Doru Petrescu [pdoru@kappa.ro] *) Close the old pipe file descriptor in apache main on USR1/HUP (elimnates a small leak). James E. Jurach Jr. jjurach@fundsxpress.com *) Fix a bug in fcgi_config_set_authoritative_slot(). Tetsuya Furukawa [tetsuya@secom-sis.co.jp] *) Eliminate the use of locks to assist in the clean shutdown of applications. Instead, it is assumed that applications handle termination signals properly (this is now embedded in the C application lib). *) Fix Win32 process termination. Proper operation requires the use of an updated application lib (termination is now signalled with an Event and handled by specialized thread). *) Docs cleanup. Andrew Benham [adsb@bigfoot.com] *) Added code so if the last instance of a dynamic application died without provocation, then don't restart it if singleThreshold > 0 (i.e. if the configuration allows the last instance to be killed, then allow it to die). Andrew Benham [adsb@bigfoot.com] *) Fix the loadFactor calculation used to determine when dyanmic applications could be killed off due to low demand [adsb@bigfoot.com]. *) Fix a deadlock condition that could occur with Win32 named pipes (dynamic). *) Fix a potential deadlock condition when FastCGI application sent responses while still reading the client request (POST data).
Diffstat (limited to 'www/ap-fastcgi')
-rw-r--r--www/ap-fastcgi/DESCR3
-rw-r--r--www/ap-fastcgi/Makefile19
-rw-r--r--www/ap-fastcgi/Makefile.common21
-rw-r--r--www/ap-fastcgi/PLIST4
-rw-r--r--www/ap-fastcgi/distinfo11
-rw-r--r--www/ap-fastcgi/patches/patch-aa58
-rw-r--r--www/ap-fastcgi/patches/patch-ab20
-rw-r--r--www/ap-fastcgi/patches/patch-ac24
-rw-r--r--www/ap-fastcgi/patches/patch-ad13
-rw-r--r--www/ap-fastcgi/patches/patch-ae13
10 files changed, 167 insertions, 19 deletions
diff --git a/www/ap-fastcgi/DESCR b/www/ap-fastcgi/DESCR
index a5236bf1454..9d5d4ad4c94 100644
--- a/www/ap-fastcgi/DESCR
+++ b/www/ap-fastcgi/DESCR
@@ -4,3 +4,6 @@ Java, and Python. FastCGI gets its speed by having keeping application
processes running between requests. So, unlike CGI, you do not have the
overhead of starting up a new process and doing application initialization
(e.g. connecting to a database) each time somebody requests a document.
+
+This package works with Apache version 1.3 series. In order to use FastCGI
+with the version 2 series, use www/ap2-fastcgi instead.
diff --git a/www/ap-fastcgi/Makefile b/www/ap-fastcgi/Makefile
index 0be04d8b964..6d0f991db87 100644
--- a/www/ap-fastcgi/Makefile
+++ b/www/ap-fastcgi/Makefile
@@ -1,22 +1,13 @@
-# $NetBSD: Makefile,v 1.26 2004/05/08 15:19:18 grant Exp $
+# $NetBSD: Makefile,v 1.27 2004/10/28 21:01:50 cube Exp $
#
-DISTNAME= mod_fastcgi_2.2.10
-PKGNAME= ap-fastcgi-2.2.10
-CATEGORIES= www
-MASTER_SITES= http://www.fastcgi.com/dist/
+.include "Makefile.common"
-MAINTAINER= tech-pkg@NetBSD.org
-HOMEPAGE= http://www.fastcgi.com/
-COMMENT= New, improved CGI-like interface module for Apache
-
-USE_BUILDLINK3= yes
+PKGNAME= ${DISTNAME:S/mod_/ap-/}
+APACHE_MODULE= yes
APACHE_MODULE_NAME= mod_fastcgi.so
-
-post-install:
- ${INSTALL_DATA} ${WRKSRC}/docs/mod_fastcgi.html \
- ${PREFIX}/share/httpd/htdocs/manual/mod/
+APACHE_MANUAL= htdocs/manual
.include "../../www/apache/module.mk"
.include "../../mk/bsd.pkg.mk"
diff --git a/www/ap-fastcgi/Makefile.common b/www/ap-fastcgi/Makefile.common
new file mode 100644
index 00000000000..c0eebcc6e85
--- /dev/null
+++ b/www/ap-fastcgi/Makefile.common
@@ -0,0 +1,21 @@
+# $NetBSD: Makefile.common,v 1.1 2004/10/28 21:01:50 cube Exp $
+#
+DISTNAME= mod_fastcgi-2.4.2
+CATEGORIES= www
+MASTER_SITES= http://www.fastcgi.com/dist/
+
+MAINTAINER= tech-pkg@NetBSD.org
+HOMEPAGE= http://www.fastcgi.com/
+COMMENT= New, improved CGI-like interface module for Apache
+
+DISTINFO_FILE= ${.CURDIR}/../../www/ap-fastcgi/distinfo
+PATCHDIR= ${.CURDIR}/../../www/ap-fastcgi/patches
+PLIST_SRC= ${.CURDIR}/../../www/ap-fastcgi/PLIST
+MESSAGE_SRC= ${.CURDIR}/../../www/ap-fastcgi/MESSAGE
+
+USE_BUILDLINK3= yes
+PLIST_SUBST+= APACHE_MANUAL=${APACHE_MANUAL}
+
+post-install:
+ ${INSTALL_DATA} ${WRKSRC}/docs/mod_fastcgi.html \
+ ${PREFIX}/share/httpd/${APACHE_MANUAL}/mod/
diff --git a/www/ap-fastcgi/PLIST b/www/ap-fastcgi/PLIST
index 61c355c65f0..b407bc8c9bb 100644
--- a/www/ap-fastcgi/PLIST
+++ b/www/ap-fastcgi/PLIST
@@ -1,3 +1,3 @@
-@comment $NetBSD: PLIST,v 1.1 2001/11/01 02:15:44 zuntum Exp $
+@comment $NetBSD: PLIST,v 1.2 2004/10/28 21:01:50 cube Exp $
lib/httpd/mod_fastcgi.so
-share/httpd/htdocs/manual/mod/mod_fastcgi.html
+share/httpd/${APACHE_MANUAL}/mod/mod_fastcgi.html
diff --git a/www/ap-fastcgi/distinfo b/www/ap-fastcgi/distinfo
index 3d4abb94c41..f461ee80d04 100644
--- a/www/ap-fastcgi/distinfo
+++ b/www/ap-fastcgi/distinfo
@@ -1,4 +1,9 @@
-$NetBSD: distinfo,v 1.2 2001/04/20 12:02:31 skrll Exp $
+$NetBSD: distinfo,v 1.3 2004/10/28 21:01:50 cube Exp $
-SHA1 (mod_fastcgi_2.2.10.tar.gz) = 1c80be5f65f7bc1d05dc8e29830967979446aae4
-Size (mod_fastcgi_2.2.10.tar.gz) = 83474 bytes
+SHA1 (mod_fastcgi-2.4.2.tar.gz) = a56be62a3f08262ae187989f5dacb3464a030e2e
+Size (mod_fastcgi-2.4.2.tar.gz) = 98295 bytes
+SHA1 (patch-aa) = a0f9456c2a0fe2791125f376a998940f4e4655a6
+SHA1 (patch-ab) = 257d7e2b65fedd630e85acfb77bb9b6ddd21c6bf
+SHA1 (patch-ac) = 2cc983a1f3d63a650fb648e60b3529c677857695
+SHA1 (patch-ad) = c020c369f3075c28d30087e1b72ae6b0a3105373
+SHA1 (patch-ae) = b934b3bc5b40dd62d70a06458849ca1049a3c9ae
diff --git a/www/ap-fastcgi/patches/patch-aa b/www/ap-fastcgi/patches/patch-aa
new file mode 100644
index 00000000000..b1b9ef83203
--- /dev/null
+++ b/www/ap-fastcgi/patches/patch-aa
@@ -0,0 +1,58 @@
+$NetBSD: patch-aa,v 1.1 2004/10/28 21:01:50 cube Exp $
+
+--- fcgi.h.orig 2003-02-04 00:07:37.000000000 +0100
++++ fcgi.h
+@@ -19,15 +19,15 @@
+ #endif
+
+ /* Apache header files */
+-#include "httpd.h"
+-#include "http_config.h"
+-#include "http_request.h"
+-#include "http_core.h"
+-#include "http_protocol.h"
+-#include "http_main.h"
+-#include "http_log.h"
+-#include "util_script.h"
+-#include "util_md5.h"
++#include <httpd/httpd.h>
++#include <httpd/http_config.h>
++#include <httpd/http_request.h>
++#include <httpd/http_core.h>
++#include <httpd/http_protocol.h>
++#include <httpd/http_main.h>
++#include <httpd/http_log.h>
++#include <httpd/util_script.h>
++#include <httpd/util_md5.h>
+
+ /* AP2TODO there's probably a better way */
+ #ifdef STANDARD20_MODULE_STUFF
+@@ -37,8 +37,8 @@
+ #ifdef APACHE2
+
+ #include <sys/stat.h>
+-#include "ap_compat.h"
+-#include "apr_strings.h"
++#include <httpd/ap_compat.h>
++#include <apr_strings.h>
+
+ #ifdef WIN32
+ #if MODULE_MAGIC_NUMBER < 20020903
+@@ -79,7 +79,7 @@ typedef apr_status_t apcb_t;
+
+ #else /* !APACHE2 */
+
+-#include "http_conf_globals.h"
++#include <httpd/http_conf_globals.h>
+ typedef void apcb_t;
+ #define APCB_OK
+
+@@ -95,7 +95,7 @@ typedef void apcb_t;
+
+ #ifdef WIN32
+ #ifndef APACHE2
+-#include "multithread.h"
++#include <multithread.h>
+ #endif
+ #pragma warning(default : 4115)
+ #else
diff --git a/www/ap-fastcgi/patches/patch-ab b/www/ap-fastcgi/patches/patch-ab
new file mode 100644
index 00000000000..fa7c65d35fc
--- /dev/null
+++ b/www/ap-fastcgi/patches/patch-ab
@@ -0,0 +1,20 @@
+$NetBSD: patch-ab,v 1.1 2004/10/28 21:01:50 cube Exp $
+
+--- fcgi_config.c.orig 2003-10-30 02:08:34.000000000 +0100
++++ fcgi_config.c
+@@ -8,13 +8,13 @@
+ #ifdef APACHE2
+
+ #include <limits.h>
+-#include "mpm_common.h" /* ap_uname2id, ap_gname2id */
++#include <httpd/mpm_common.h> /* ap_uname2id, ap_gname2id */
+
+ #ifdef WIN32
+ #include <direct.h>
+ #else
+ #include <unistd.h>
+-#include "unixd.h"
++#include <httpd/unixd.h>
+ #endif
+
+ #endif
diff --git a/www/ap-fastcgi/patches/patch-ac b/www/ap-fastcgi/patches/patch-ac
new file mode 100644
index 00000000000..35eb374dc27
--- /dev/null
+++ b/www/ap-fastcgi/patches/patch-ac
@@ -0,0 +1,24 @@
+$NetBSD: patch-ac,v 1.1 2004/10/28 21:01:50 cube Exp $
+
+--- fcgi_pm.c.orig 2003-10-30 02:08:34.000000000 +0100
++++ fcgi_pm.c
+@@ -8,8 +8,8 @@
+ #if defined(APACHE2) && !defined(WIN32)
+ #include <pwd.h>
+ #include <unistd.h>
+-#include "unixd.h"
+-#include "apr_signal.h"
++#include <httpd/unixd.h>
++#include <apr_signal.h>
+ #endif
+
+ #ifndef WIN32
+@@ -31,7 +31,7 @@ static time_t now = 0;
+
+ #ifdef WIN32
+ #ifdef APACHE2
+-#include "mod_cgi.h"
++#include <httpd/mod_cgi.h>
+ #endif
+ #pragma warning ( disable : 4100 4102 )
+ static BOOL bTimeToDie = FALSE; /* process termination flag */
diff --git a/www/ap-fastcgi/patches/patch-ad b/www/ap-fastcgi/patches/patch-ad
new file mode 100644
index 00000000000..570c9faf691
--- /dev/null
+++ b/www/ap-fastcgi/patches/patch-ad
@@ -0,0 +1,13 @@
+$NetBSD: patch-ad,v 1.1 2004/10/28 21:01:50 cube Exp $
+
+--- fcgi_util.c.orig 2003-10-30 02:08:34.000000000 +0100
++++ fcgi_util.c
+@@ -16,7 +16,7 @@
+ #include <arpa/inet.h>
+ #endif
+
+-#include "unixd.h"
++#include <httpd/unixd.h>
+ #endif
+
+ uid_t
diff --git a/www/ap-fastcgi/patches/patch-ae b/www/ap-fastcgi/patches/patch-ae
new file mode 100644
index 00000000000..c428ec9c233
--- /dev/null
+++ b/www/ap-fastcgi/patches/patch-ae
@@ -0,0 +1,13 @@
+$NetBSD: patch-ae,v 1.1 2004/10/28 21:01:50 cube Exp $
+
+--- mod_fastcgi.c.orig 2003-10-30 02:08:34.000000000 +0100
++++ mod_fastcgi.c
+@@ -80,7 +80,7 @@
+ #include <ctype.h>
+ #endif
+
+-#include "unixd.h"
++#include <httpd/unixd.h>
+
+ #endif
+ #endif