summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Walker <ka0ttic@gentoo.org>2005-08-27 12:36:13 +0000
committerAaron Walker <ka0ttic@gentoo.org>2005-08-27 12:36:13 +0000
commitd81aefa258ec2ef22dc988cc990e4832431e595c (patch)
tree9867efc4388d7ada0499808d3c85c2a8b6071aec /www-servers
parentUse econf instead of calling ./configure directly so config.{sub,guess} get u... (diff)
downloadgentoo-2-d81aefa258ec2ef22dc988cc990e4832431e595c.tar.gz
gentoo-2-d81aefa258ec2ef22dc988cc990e4832431e595c.tar.bz2
gentoo-2-d81aefa258ec2ef22dc988cc990e4832431e595c.zip
Revision bump; added a sleu of upstream patches to fix various bugs. Added a patch to make pcre support optional (although it's highly recommended). FAM support now falls back to fam if gamin is unavailable, so we're now able to use virtual/fam (fixes bug #103643). Also fixes several problems with the custom gentoo configuration.
(Portage version: 1.589-cvs)
Diffstat (limited to 'www-servers')
-rw-r--r--www-servers/lighttpd/ChangeLog23
-rw-r--r--www-servers/lighttpd/Manifest33
-rw-r--r--www-servers/lighttpd/files/1.4.1/01_all_any-fam.diff170
-rw-r--r--www-servers/lighttpd/files/1.4.1/02_all_optional_pcre.diff16
-rw-r--r--www-servers/lighttpd/files/1.4.1/03_all_mod_cgi-wait.diff16
-rw-r--r--www-servers/lighttpd/files/1.4.1/04_all_mod_cgi-create-env-once.diff11
-rw-r--r--www-servers/lighttpd/files/1.4.1/05_all_fix_array_merging.diff327
-rw-r--r--www-servers/lighttpd/files/1.4.1/06_all_check-for-waiting-write.diff67
-rw-r--r--www-servers/lighttpd/files/1.4.1/07_all_fix-dst_addr_buf-leak.diff34
-rw-r--r--www-servers/lighttpd/files/1.4.1/08_all_doc-updates.diff32
-rw-r--r--www-servers/lighttpd/files/1.4.1/09_all_lfs-range-requests.diff39
-rw-r--r--www-servers/lighttpd/files/1.4.1/10_all_stat_cache_init_after_setuid.diff53
-rw-r--r--www-servers/lighttpd/files/conf/lighttpd.conf63
-rw-r--r--www-servers/lighttpd/files/conf/mime-types.conf10
-rw-r--r--www-servers/lighttpd/files/conf/mod_cgi.conf33
-rw-r--r--www-servers/lighttpd/files/conf/mod_fastcgi.conf21
-rw-r--r--www-servers/lighttpd/files/digest-lighttpd-1.4.1-r1 (renamed from www-servers/lighttpd/files/digest-lighttpd-1.4.1)0
-rw-r--r--www-servers/lighttpd/lighttpd-1.4.1-r1.ebuild (renamed from www-servers/lighttpd/lighttpd-1.4.1.ebuild)88
18 files changed, 934 insertions, 102 deletions
diff --git a/www-servers/lighttpd/ChangeLog b/www-servers/lighttpd/ChangeLog
index cf51602a1648..f07354897922 100644
--- a/www-servers/lighttpd/ChangeLog
+++ b/www-servers/lighttpd/ChangeLog
@@ -1,6 +1,27 @@
# ChangeLog for www-servers/lighttpd
# Copyright 2000-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/www-servers/lighttpd/ChangeLog,v 1.36 2005/08/23 01:21:48 ka0ttic Exp $
+# $Header: /var/cvsroot/gentoo-x86/www-servers/lighttpd/ChangeLog,v 1.37 2005/08/27 12:36:13 ka0ttic Exp $
+
+*lighttpd-1.4.1-r1 (27 Aug 2005)
+
+ 27 Aug 2005; Aaron Walker <ka0ttic@gentoo.org>
+ +files/1.4.1/01_all_any-fam.diff, +files/1.4.1/03_all_mod_cgi-wait.diff,
+ +files/1.4.1/07_all_fix-dst_addr_buf-leak.diff,
+ +files/1.4.1/02_all_optional_pcre.diff,
+ +files/1.4.1/04_all_mod_cgi-create-env-once.diff,
+ +files/1.4.1/05_all_fix_array_merging.diff,
+ +files/1.4.1/06_all_check-for-waiting-write.diff,
+ +files/1.4.1/08_all_doc-updates.diff,
+ +files/1.4.1/09_all_lfs-range-requests.diff,
+ +files/1.4.1/10_all_stat_cache_init_after_setuid.diff,
+ files/conf/lighttpd.conf, files/conf/mime-types.conf,
+ +files/conf/mod_cgi.conf, files/conf/mod_fastcgi.conf,
+ -lighttpd-1.4.1.ebuild, +lighttpd-1.4.1-r1.ebuild:
+ Revision bump; added a sleu of upstream patches to fix various bugs. Added a
+ patch to make pcre support optional (although it's highly recommended). FAM
+ support now falls back to fam if gamin is unavailable, so we're now able to
+ use virtual/fam (fixes bug #103643). Also fixes several problems with the
+ custom gentoo configuration.
23 Aug 2005; Aaron Walker <ka0ttic@gentoo.org> lighttpd-1.4.1.ebuild:
Don't use check-kernel.eclass.
diff --git a/www-servers/lighttpd/Manifest b/www-servers/lighttpd/Manifest
index 24e87355d0ad..dc3ec5982fbf 100644
--- a/www-servers/lighttpd/Manifest
+++ b/www-servers/lighttpd/Manifest
@@ -1,10 +1,7 @@
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
-
+MD5 f27ce65757405fb169352ab20906ae4c lighttpd-1.4.1-r1.ebuild 4164
MD5 81af13d45943a9638f0d7de071256bf8 lighttpd-1.3.16.ebuild 2549
MD5 49ded22216ffc6092d1a1e04a6e420c1 lighttpd-1.3.13-r3.ebuild 2607
-MD5 9c3e9269d6b586681d2dac764a336288 lighttpd-1.4.1.ebuild 3989
-MD5 22a8d647c75b7b9fb2a22a9f6a45d996 ChangeLog 10606
+MD5 92e8cdc1768f3a8a5bc110bfc75c3ee5 ChangeLog 11659
MD5 6a9d4814404d8d51327e5b8306ee3d7e metadata.xml 726
MD5 1d925aed297ec4541fb230dd19e11bc1 files/spawn-fcgi.confd 1076
MD5 f984dc26b2bc491272d302ab453f6e6b files/lighttpd-1.3.13-ldap-binddn.diff 3863
@@ -17,17 +14,21 @@ MD5 77ba3937d1e8762f8d8b6b2ea9ee1aaa files/digest-lighttpd-1.3.13-r3 67
MD5 c54a6d92e91493bbb27e8f346f6ac342 files/digest-lighttpd-1.3.16 67
MD5 5eb378dcd8905a09175df3e48953100c files/lighttpd-1.3.13-zope-deserves-lovins-too.diff 5970
MD5 cd47f8973299bf15bed4677b430ffcc5 files/lighttpd.initd 1009
-MD5 505de9ff2c21c63f75afbc4b79deaa81 files/digest-lighttpd-1.4.1 66
MD5 0c57eeef1963af5add8b9608e0bc0d0f files/lighttpd-1.3.13-no-mysql-means-no-mysql.diff 1456
+MD5 505de9ff2c21c63f75afbc4b79deaa81 files/digest-lighttpd-1.4.1-r1 66
MD5 44374d14af9b69b8f60f8d73f14c848d files/lighttpd-1.3.13-pam-name.diff 564
MD5 210f81ad7867965b19993d0a4d8d54e7 files/lighttpd.logrotate 488
-MD5 2473934daf9c34575a40c287a3d6f597 files/conf/lighttpd.conf 8243
-MD5 20f159c94154005138a3c709fd476beb files/conf/mod_fastcgi.conf 566
-MD5 cac2b9328b62830cb4601f83695b541e files/conf/mime-types.conf 2965
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.2 (GNU/Linux)
-
-iD8DBQFDCnphEZCkKN40op4RAs2UAJ9K7fzj88QSPKYXtNlaOZH2QNzYYACfZzU6
-j1PaZEj8/Z71sDEMFplvVnE=
-=weLK
------END PGP SIGNATURE-----
+MD5 24e05d7c0f40f4bfa0914d5cf82741d6 files/conf/mod_cgi.conf 762
+MD5 a2d9a0c0e88842f203c7ab59791b8db2 files/conf/lighttpd.conf 8072
+MD5 09229bce9cb398004f2ccb3031b630ab files/conf/mod_fastcgi.conf 550
+MD5 db1a4fe1b9a160eab37b821e05064232 files/conf/mime-types.conf 3181
+MD5 82eabd1cddfa4f03ba1a396479cdfc07 files/1.4.1/03_all_mod_cgi-wait.diff 461
+MD5 995d8cad62f698bf4ff409e0fddd1e75 files/1.4.1/08_all_doc-updates.diff 1452
+MD5 5bfb3d4ddc7454842865fd843e2625d8 files/1.4.1/02_all_optional_pcre.diff 563
+MD5 6d70755e9e587be97a1a9e20f45da194 files/1.4.1/04_all_mod_cgi-create-env-once.diff 294
+MD5 88fde1bcdf7ccf4eb7fe69cdf3d0fa82 files/1.4.1/06_all_check-for-waiting-write.diff 2205
+MD5 64cef80341b3cdc7a5298c3f4c75066a files/1.4.1/01_all_any-fam.diff 4080
+MD5 ef2a8ad3ae2d26b163bfa379da101e61 files/1.4.1/07_all_fix-dst_addr_buf-leak.diff 890
+MD5 beb94165c83f50b8d2eddd9e8cc7dbe9 files/1.4.1/09_all_lfs-range-requests.diff 970
+MD5 4dd7328c713617f5b637853edd7ebcfc files/1.4.1/05_all_fix_array_merging.diff 10158
+MD5 8a15bebfc64b014d60f78768c94d7839 files/1.4.1/10_all_stat_cache_init_after_setuid.diff 1400
diff --git a/www-servers/lighttpd/files/1.4.1/01_all_any-fam.diff b/www-servers/lighttpd/files/1.4.1/01_all_any-fam.diff
new file mode 100644
index 000000000000..0eefc99d4d03
--- /dev/null
+++ b/www-servers/lighttpd/files/1.4.1/01_all_any-fam.diff
@@ -0,0 +1,170 @@
+--- branches/lighttpd-merge-1.4.x/configure.in (revision 621)
++++ branches/lighttpd-merge-1.4.x/configure.in (revision 622)
+@@ -260,16 +260,29 @@
+ fi
+
+ dnl Check for gamin
+-AC_MSG_CHECKING(for gamin)
+-AC_ARG_WITH(gamin, AC_HELP_STRING([--with-gamin],[gamin for reducing number of stat() calls]),
+-[WITH_GAMIN=$withval],[WITH_GAMIN=no])
+-AC_MSG_RESULT([$WITH_GAMIN])
+-
+-if test "$WITH_GAMIN" != "no"; then
+- PKG_CHECK_MODULES(FAM, gamin >= 0.1.0, [
++AC_MSG_CHECKING(for FAM)
++AC_ARG_WITH(fam, AC_HELP_STRING([--with-fam],[fam/gamin for reducing number of stat() calls]),
++[WITH_FAM=$withval],[WITH_FAM=no])
++AC_MSG_RESULT([$WITH_FAM])
++
++if test "$WITH_FAM" != "no"; then
++ AC_CHECK_LIB(fam, FAMOpen2, [
++ AC_CHECK_HEADERS([fam.h],[
++ FAM_LIBS=-lfam
+ AC_DEFINE([HAVE_LIBFAM], [1], [libfam])
+ AC_DEFINE([HAVE_FAM_H], [1], [fam.h])
+- ])
++ ])
++ ])
++ if test "x$FAM_LIBS" = x; then
++ PKG_CHECK_MODULES(FAM, gamin >= 0.1.0, [
++ AC_DEFINE([HAVE_LIBFAM], [1], [libfam])
++ AC_DEFINE([HAVE_FAM_H], [1], [fam.h])
++ ])
++ fi
++ OLD_LIBS=$LIBS
++ LIBS=$FAM_LIBS
++ AC_CHECK_FUNCS([FAMNoExists])
++ LIBS=$OLD_LIBS
+ fi
+
+ AC_MSG_CHECKING(for properties in mod_webdav)
+--- branches/lighttpd-merge-1.4.x/src/stat_cache.c (revision 621)
++++ branches/lighttpd-merge-1.4.x/src/stat_cache.c (revision 622)
+@@ -98,9 +98,10 @@
+ if (0 != FAMOpen2(fc->fam, "lighttpd")) {
+ return NULL;
+ }
+-
++#ifdef HAVE_FAMNOEXISTS
+ FAMNoExists(fc->fam);
+ #endif
++#endif
+
+ return fc;
+ }
+@@ -173,9 +174,11 @@
+
+ #ifdef HAVE_FAM_H
+ splaytree_delete_tree(fc->dirs, fam_dir_entry_free);
+-
+- FAMClose(fc->fam);
+- free(fc->fam);
++
++ if (fc->fam) {
++ FAMClose(fc->fam);
++ free(fc->fam);
++ }
+ #endif
+ free(fc);
+ }
+@@ -217,46 +220,63 @@
+ UNUSED(revent);
+ /* */
+
+- events = FAMPending(sc->fam);
++ if ((revent & FDEVENT_IN) &&
++ sc->fam) {
++
++ events = FAMPending(sc->fam);
+
+- for (i = 0; i < events; i++) {
+- FAMEvent fe;
+- fam_dir_entry *fam_dir;
+- splay_tree *node;
+- int ndx;
++ for (i = 0; i < events; i++) {
++ FAMEvent fe;
++ fam_dir_entry *fam_dir;
++ splay_tree *node;
++ int ndx;
+
+- FAMNextEvent(sc->fam, &fe);
++ FAMNextEvent(sc->fam, &fe);
+
+- /* handle event */
++ /* handle event */
+
+- switch(fe.code) {
+- case FAMChanged:
+- case FAMDeleted:
+- case FAMMoved:
+- /* if the filename is a directory remove the entry */
++ switch(fe.code) {
++ case FAMChanged:
++ case FAMDeleted:
++ case FAMMoved:
++ /* if the filename is a directory remove the entry */
+
+- fam_dir = fe.userdata;
+- fam_dir->version++;
++ fam_dir = fe.userdata;
++ fam_dir->version++;
+
+- /* file/dir is still here */
+- if (fe.code == FAMChanged) break;
++ /* file/dir is still here */
++ if (fe.code == FAMChanged) break;
+
+- buffer_copy_string(sc->dir_name, fe.filename);
++ buffer_copy_string(sc->dir_name, fe.filename);
+
+- ndx = hashme(sc->dir_name);
++ ndx = hashme(sc->dir_name);
+
+- sc->dirs = splaytree_splay(sc->dirs, ndx);
+- node = sc->dirs;
++ sc->dirs = splaytree_splay(sc->dirs, ndx);
++ node = sc->dirs;
+
+- if (node && (node->key == ndx)) {
+- fam_dir_entry_free(node->data);
+- sc->dirs = splaytree_delete(sc->dirs, ndx);
++ if (node && (node->key == ndx)) {
++ fam_dir_entry_free(node->data);
++ sc->dirs = splaytree_delete(sc->dirs, ndx);
++ }
++ break;
++ default:
++ break;
+ }
+- break;
+- default:
+- break;
+ }
+ }
++
++ if (revent & FDEVENT_HUP) {
++ /* fam closed the connection */
++ srv->stat_cache->fam_fcce_ndx = -1;
++
++ fdevent_event_del(srv->ev, &(sc->fam_fcce_ndx), FAMCONNECTION_GETFD(sc->fam));
++ fdevent_unregister(srv->ev, FAMCONNECTION_GETFD(sc->fam));
++
++ FAMClose(sc->fam);
++ free(sc->fam);
++
++ sc->fam = NULL;
++ }
+
+ return HANDLER_GO_ON;
+ }
+@@ -397,7 +417,8 @@
+ }
+
+ #ifdef HAVE_FAM_H
+- if (srv->srvconf.stat_cache_engine == STAT_CACHE_ENGINE_FAM) {
++ if (sc->fam &&
++ (srv->srvconf.stat_cache_engine == STAT_CACHE_ENGINE_FAM)) {
+ /* is this directory already registered ? */
+ if (!dir_node) {
+ fam_dir = fam_dir_entry_init();
diff --git a/www-servers/lighttpd/files/1.4.1/02_all_optional_pcre.diff b/www-servers/lighttpd/files/1.4.1/02_all_optional_pcre.diff
new file mode 100644
index 000000000000..ed569147cb8c
--- /dev/null
+++ b/www-servers/lighttpd/files/1.4.1/02_all_optional_pcre.diff
@@ -0,0 +1,16 @@
+--- configure.in.orig 2005-08-24 02:40:58.000000000 -0400
++++ configure.in 2005-08-24 02:51:01.000000000 -0400
+@@ -217,7 +217,12 @@
+ AC_SUBST(SSL_LIB)
+ fi
+
+-if test "x$cross_compiling" = xno; then
++AC_MSG_CHECKING(for perl regular expressions support)
++AC_ARG_WITH(pcre, AC_HELP_STRING([--with-pcre],[Enable pcre support (default yes)]),
++ [WITH_PCRE=$withval],[WITH_PCRE=yes])
++AC_MSG_RESULT([$WITH_PCRE])
++
++if test "x$cross_compiling" = xno -a "$WITH_PCRE" != "no"; then
+ AC_PATH_PROG(PCRECONFIG, pcre-config)
+
+ if test x"$PCRECONFIG" != x; then
diff --git a/www-servers/lighttpd/files/1.4.1/03_all_mod_cgi-wait.diff b/www-servers/lighttpd/files/1.4.1/03_all_mod_cgi-wait.diff
new file mode 100644
index 000000000000..128acab88285
--- /dev/null
+++ b/www-servers/lighttpd/files/1.4.1/03_all_mod_cgi-wait.diff
@@ -0,0 +1,16 @@
+--- branches/lighttpd-merge-1.4.x/src/mod_cgi.c (revision 612)
++++ branches/lighttpd-merge-1.4.x/src/mod_cgi.c (revision 613)
+@@ -1127,12 +1127,7 @@
+ #ifndef __WIN32
+ switch(waitpid(hctx->pid, &status, WNOHANG)) {
+ case 0:
+- /* not finished yet */
+- if (con->file_started) {
+- return HANDLER_GO_ON;
+- } else {
+- return HANDLER_WAIT_FOR_EVENT;
+- }
++ return HANDLER_WAIT_FOR_EVENT;
+ case -1:
+ if (errno == EINTR) return HANDLER_WAIT_FOR_EVENT;
+
diff --git a/www-servers/lighttpd/files/1.4.1/04_all_mod_cgi-create-env-once.diff b/www-servers/lighttpd/files/1.4.1/04_all_mod_cgi-create-env-once.diff
new file mode 100644
index 000000000000..b44230fac338
--- /dev/null
+++ b/www-servers/lighttpd/files/1.4.1/04_all_mod_cgi-create-env-once.diff
@@ -0,0 +1,11 @@
+--- branches/lighttpd-merge-1.4.x/src/mod_cgi.c (revision 618)
++++ branches/lighttpd-merge-1.4.x/src/mod_cgi.c (revision 619)
+@@ -1064,6 +1064,8 @@
+ buffer_reset(con->physical.path);
+ return HANDLER_FINISHED;
+ }
++ /* one handler is enough for the request */
++ break;
+ }
+ }
+
diff --git a/www-servers/lighttpd/files/1.4.1/05_all_fix_array_merging.diff b/www-servers/lighttpd/files/1.4.1/05_all_fix_array_merging.diff
new file mode 100644
index 000000000000..668c93475e23
--- /dev/null
+++ b/www-servers/lighttpd/files/1.4.1/05_all_fix_array_merging.diff
@@ -0,0 +1,327 @@
+--- branches/lighttpd-merge-1.4.x/src/configfile-glue.c (revision 615)
++++ branches/lighttpd-merge-1.4.x/src/configfile-glue.c (revision 616)
+@@ -42,7 +42,7 @@
+ data_string *ds = data_string_init();
+
+ buffer_copy_string_buffer(ds->value, ((data_string *)(da->value->data[j]))->value);
+- if (!da->value->is_array) {
++ if (!da->is_index_key) {
+ /* the id's were generated automaticly, as we copy now we might have to renumber them
+ * this is used to prepend server.modules by mod_indexfiles as it has to be loaded
+ * before mod_fastcgi and friends */
+--- branches/lighttpd-merge-1.4.x/src/configparser.y (revision 615)
++++ branches/lighttpd-merge-1.4.x/src/configparser.y (revision 616)
+@@ -70,7 +70,7 @@
+ /* op1 is to be eat/return by this function, op1->key is not cared
+ op2 is left untouch, unreferenced
+ */
+-data_unset *configparser_merge_data(config_t *ctx, data_unset *op1, const data_unset *op2) {
++data_unset *configparser_merge_data(data_unset *op1, const data_unset *op2) {
+ /* type mismatch */
+ if (op1->type != op2->type) {
+ if (op1->type == TYPE_STRING && op2->type == TYPE_INTEGER) {
+@@ -85,7 +85,6 @@
+ return (data_unset *)ds;
+ } else {
+ fprintf(stderr, "data type mismatch, cannot be merge\n");
+- ctx->ok = 0;
+ op1->free(op1);
+ return NULL;
+ }
+@@ -179,13 +178,23 @@
+
+ if (NULL != (du = array_get_element(vars, A->ptr))) {
+ /* exists in current block */
+- du = configparser_merge_data(ctx, du, B);
+- buffer_copy_string_buffer(du->key, A);
+- array_replace(vars, du);
++ du = configparser_merge_data(du, B);
++ if (NULL == du) {
++ ctx->ok = 0;
++ }
++ else {
++ buffer_copy_string_buffer(du->key, A);
++ array_replace(vars, du);
++ }
+ } else if (NULL != (du = configparser_get_variable(ctx, A))) {
+- du = configparser_merge_data(ctx, du, B);
+- buffer_copy_string_buffer(du->key, A);
+- array_insert_unique(ctx->current->value, du);
++ du = configparser_merge_data(du, B);
++ if (NULL == du) {
++ ctx->ok = 0;
++ }
++ else {
++ buffer_copy_string_buffer(du->key, A);
++ array_insert_unique(ctx->current->value, du);
++ }
+ } else {
+ fprintf(stderr, "Undefined config variable in conditional 1 %s: %s\n",
+ ctx->current->key->ptr, A->ptr);
+@@ -210,7 +219,10 @@
+ }
+
+ expression(A) ::= expression(B) PLUS value(C). {
+- A = configparser_merge_data(ctx, B, C);
++ A = configparser_merge_data(B, C);
++ if (NULL == A) {
++ ctx->ok = 0;
++ }
+ B = NULL;
+ C->free(C);
+ C = NULL;
+--- branches/lighttpd-merge-1.4.x/src/array.c (revision 615)
++++ branches/lighttpd-merge-1.4.x/src/array.c (revision 616)
+@@ -28,7 +28,6 @@
+ a->size = src->size;
+ a->next_power_of_2 = src->next_power_of_2;
+ a->unique_ndx = src->unique_ndx;
+- a->is_array = src->is_array;
+
+ a->data = malloc(sizeof(*src->data) * src->size);
+ for (i = 0; i < src->size; i++) {
+@@ -167,9 +166,9 @@
+ size_t j;
+
+ /* generate unique index if neccesary */
+- if (str->key->used == 0) {
++ if (str->key->used == 0 || str->is_index_key) {
+ buffer_copy_long(str->key, a->unique_ndx++);
+- a->is_array = 1;
++ str->is_index_key = 1;
+ }
+
+ /* try to find the string */
+@@ -251,12 +250,6 @@
+ return maxlen;
+ }
+
+-static inline int str_int_equal(const char *str, int i) {
+- char buf[16];
+- snprintf(buf, sizeof(buf), "%d", i);
+- return strcmp(str, buf) == 0;
+-}
+-
+ int array_print(array *a, int depth) {
+ size_t i;
+ size_t maxlen;
+@@ -267,7 +260,7 @@
+ }
+ for (i = 0; i < a->used && oneline; i++) {
+ data_unset *du = a->data[i];
+- if (!str_int_equal(du->key->ptr, i)) {
++ if (!du->is_index_key) {
+ oneline = 0;
+ break;
+ }
+@@ -299,7 +292,7 @@
+ for (i = 0; i < a->used; i++) {
+ data_unset *du = a->data[i];
+ array_print_indent(depth + 1);
+- if (!str_int_equal(du->key->ptr, i)) {
++ if (!du->is_index_key) {
+ int j;
+
+ if (i && (i % 5) == 0) {
+--- branches/lighttpd-merge-1.4.x/src/array.h (revision 615)
++++ branches/lighttpd-merge-1.4.x/src/array.h (revision 616)
+@@ -14,6 +14,7 @@
+ #define DATA_UNSET \
+ data_type_t type; \
+ buffer *key; \
++ int is_index_key; /* 1 if key is a array index (autogenerated keys) */ \
+ struct data_unset *(*copy)(const struct data_unset *src); \
+ void (* free)(struct data_unset *p); \
+ void (* reset)(struct data_unset *p); \
+@@ -33,7 +34,6 @@
+ size_t size;
+
+ size_t unique_ndx;
+- int is_array; /* 0 if it is a hash, 1 for array (autogenerated keys) */
+
+ size_t next_power_of_2;
+ int is_weakref; /* data is weakref, don't bother the data */
+--- branches/lighttpd-merge-1.4.x/src/data_integer.c (revision 615)
++++ branches/lighttpd-merge-1.4.x/src/data_integer.c (revision 616)
+@@ -9,6 +9,7 @@
+ data_integer *ds = data_integer_init();
+
+ buffer_copy_string_buffer(ds->key, src->key);
++ ds->is_index_key = src->is_index_key;
+ ds->value = src->value;
+ return (data_unset *)ds;
+ }
+--- branches/lighttpd-merge-1.4.x/src/mod_staticfile.c (revision 615)
++++ branches/lighttpd-merge-1.4.x/src/mod_staticfile.c (revision 616)
+@@ -2,6 +2,8 @@
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <string.h>
++#define _XOPEN_SOURCE /* glibc 2.0 */
++#define __USE_XOPEN /* glibc 2.3 */
+ #include <time.h>
+
+ #include "base.h"
+--- branches/lighttpd-merge-1.4.x/src/configfile.c (revision 615)
++++ branches/lighttpd-merge-1.4.x/src/configfile.c (revision 616)
+@@ -26,7 +26,6 @@
+ size_t i;
+ int ret = 0;
+ buffer *stat_cache_string;
+- data_string *ds;
+
+ config_values_t cv[] = {
+ { "server.bind", NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_SERVER }, /* 0 */
+@@ -117,13 +116,6 @@
+
+ assert(srv->config_storage);
+
+- /* prepend default modules */
+- if (NULL == array_get_element(srv->srvconf.modules, "mod_indexfile")) {
+- ds = data_string_init();
+- buffer_copy_string(ds->value, "mod_indexfile");
+- array_insert_unique(srv->srvconf.modules, (data_unset *)ds);
+- }
+-
+ for (i = 0; i < srv->config_context->used; i++) {
+ specific_config *s;
+
+@@ -211,21 +203,6 @@
+
+ buffer_free(stat_cache_string);
+
+- srv->srvconf.modules->unique_ndx = srv->srvconf.modules->used;
+-
+- /* append default modules */
+- if (NULL == array_get_element(srv->srvconf.modules, "mod_dirlisting")) {
+- ds = data_string_init();
+- buffer_copy_string(ds->value, "mod_dirlisting");
+- array_insert_unique(srv->srvconf.modules, (data_unset *)ds);
+- }
+-
+- if (NULL == array_get_element(srv->srvconf.modules, "mod_staticfile")) {
+- ds = data_string_init();
+- buffer_copy_string(ds->value, "mod_staticfile");
+- array_insert_unique(srv->srvconf.modules, (data_unset *)ds);
+- }
+-
+ return ret;
+
+ }
+@@ -923,6 +900,7 @@
+ data_config *dc;
+ int ret;
+ char *pos;
++ data_array *modules;
+
+ context_init(srv, &context);
+ context.all_configs = srv->config_context;
+@@ -960,16 +938,55 @@
+ return ret;
+ }
+
+- if (0 != config_insert(srv)) {
+- return -1;
+- }
+-
+ if (NULL != (dc = (data_config *)array_get_element(srv->config_context, "global"))) {
+ srv->config = dc->value;
+ } else {
+ return -1;
+ }
+
++ if (NULL != (modules = (data_array *)array_get_element(srv->config, "server.modules"))) {
++ data_string *ds;
++ data_array *prepends;
++
++ if (modules->type != TYPE_ARRAY) {
++ fprintf(stderr, "server.modules must be an array");
++ return -1;
++ }
++
++ prepends = data_array_init();
++
++ /* prepend default modules */
++ if (NULL == array_get_element(modules->value, "mod_indexfile")) {
++ ds = data_string_init();
++ buffer_copy_string(ds->value, "mod_indexfile");
++ array_insert_unique(prepends->value, (data_unset *)ds);
++ }
++
++ prepends = (data_array *)configparser_merge_data((data_unset *)prepends, (data_unset *)modules);
++ buffer_copy_string_buffer(prepends->key, modules->key);
++ array_replace(srv->config, (data_unset *)prepends);
++ modules->free((data_unset *)modules);
++ modules = prepends;
++
++ /* append default modules */
++ if (NULL == array_get_element(modules->value, "mod_dirlisting")) {
++ ds = data_string_init();
++ buffer_copy_string(ds->value, "mod_dirlisting");
++ array_insert_unique(modules->value, (data_unset *)ds);
++ }
++
++ if (NULL == array_get_element(modules->value, "mod_staticfile")) {
++ ds = data_string_init();
++ buffer_copy_string(ds->value, "mod_staticfile");
++ array_insert_unique(modules->value, (data_unset *)ds);
++ }
++ }
++
++
++ if (0 != config_insert(srv)) {
++ return -1;
++ }
++
+ return 0;
+ }
+
+--- branches/lighttpd-merge-1.4.x/src/configfile.h (revision 615)
++++ branches/lighttpd-merge-1.4.x/src/configfile.h (revision 616)
+@@ -19,5 +19,6 @@
+ void configparser(void *yyp, int yymajor, buffer *yyminor, config_t *ctx);
+ int config_parse_file(server *srv, config_t *context, const char *fn);
+ int config_parse_cmd(server *srv, config_t *context, const char *cmd);
++data_unset *configparser_merge_data(data_unset *op1, const data_unset *op2);
+
+ #endif
+--- branches/lighttpd-merge-1.4.x/src/data_count.c (revision 615)
++++ branches/lighttpd-merge-1.4.x/src/data_count.c (revision 616)
+@@ -10,6 +10,7 @@
+
+ buffer_copy_string_buffer(ds->key, src->key);
+ ds->count = src->count;
++ ds->is_index_key = src->is_index_key;
+ return (data_unset *)ds;
+ }
+
+--- branches/lighttpd-merge-1.4.x/src/data_string.c (revision 615)
++++ branches/lighttpd-merge-1.4.x/src/data_string.c (revision 616)
+@@ -11,6 +11,7 @@
+
+ buffer_copy_string_buffer(ds->key, src->key);
+ buffer_copy_string_buffer(ds->value, src->value);
++ ds->is_index_key = src->is_index_key;
+ return (data_unset *)ds;
+ }
+
+--- branches/lighttpd-merge-1.4.x/src/data_fastcgi.c (revision 615)
++++ branches/lighttpd-merge-1.4.x/src/data_fastcgi.c (revision 616)
+@@ -11,6 +11,7 @@
+
+ buffer_copy_string_buffer(ds->key, src->key);
+ buffer_copy_string_buffer(ds->host, src->host);
++ ds->is_index_key = src->is_index_key;
+ return (data_unset *)ds;
+ }
+
+--- branches/lighttpd-merge-1.4.x/src/data_array.c (revision 615)
++++ branches/lighttpd-merge-1.4.x/src/data_array.c (revision 616)
+@@ -11,6 +11,7 @@
+ buffer_copy_string_buffer(ds->key, src->key);
+ array_free(ds->value);
+ ds->value = array_init_array(src->value);
++ ds->is_index_key = src->is_index_key;
+ return (data_unset *)ds;
+ }
+
diff --git a/www-servers/lighttpd/files/1.4.1/06_all_check-for-waiting-write.diff b/www-servers/lighttpd/files/1.4.1/06_all_check-for-waiting-write.diff
new file mode 100644
index 000000000000..6bd187a4d51a
--- /dev/null
+++ b/www-servers/lighttpd/files/1.4.1/06_all_check-for-waiting-write.diff
@@ -0,0 +1,67 @@
+--- branches/lighttpd-merge-1.4.x/src/connections.c (revision 620)
++++ branches/lighttpd-merge-1.4.x/src/connections.c (revision 621)
+@@ -213,7 +213,7 @@
+
+ #ifdef USE_OPENSSL
+ if (srv_sock->is_ssl) {
+- int r;
++ int r, ssl_err;
+
+ switch ((r = SSL_get_error(con->ssl, len))) {
+ case SSL_ERROR_WANT_READ:
+@@ -237,8 +237,15 @@
+
+ /* fall thourgh */
+ default:
+- log_error_write(srv, __FILE__, __LINE__, "sds", "SSL:",
+- r, ERR_error_string(ERR_get_error(), NULL));
++ ssl_err = ERR_get_error();
++ switch(ssl_err) {
++ case SSL_F_SSL23_GET_CLIENT_HELLO:
++ /* a unencrypted HTTP request on a HTTPS socket. Do a redirect to the right location */
++ default:
++ log_error_write(srv, __FILE__, __LINE__, "sds", "SSL:",
++ r, ERR_error_string(ERR_get_error(), NULL));
++ break;
++ }
+ break;
+ }
+ } else {
+--- branches/lighttpd-merge-1.4.x/src/mod_compress.c (revision 620)
++++ branches/lighttpd-merge-1.4.x/src/mod_compress.c (revision 621)
+@@ -357,7 +357,7 @@
+
+ if (-1 == mkdir(p->b->ptr, 0700)) {
+ if (errno != EEXIST) {
+- log_error_write(srv, __FILE__, __LINE__, "ssss", "creating cache-directory", p->b->ptr, "failed", strerror(errno));
++ log_error_write(srv, __FILE__, __LINE__, "sbss", "creating cache-directory", p->b, "failed", strerror(errno));
+
+ return -1;
+ }
+--- branches/lighttpd-merge-1.4.x/src/network_openssl.c (revision 620)
++++ branches/lighttpd-merge-1.4.x/src/network_openssl.c (revision 621)
+@@ -123,6 +123,7 @@
+ size_t toSend;
+ stat_cache_entry *sce = NULL;
+ int ifd;
++ int write_wait = 0;
+
+ if (HANDLER_ERROR == stat_cache_get_entry(srv, con, c->data.file.name, &sce)) {
+ log_error_write(srv, __FILE__, __LINE__, "sb",
+@@ -162,6 +163,7 @@
+ if ((r = SSL_write(con->ssl, s, toSend)) <= 0) {
+ switch ((ssl_r = SSL_get_error(con->ssl, r))) {
+ case SSL_ERROR_WANT_WRITE:
++ write_wait = 1;
+ break;
+ case SSL_ERROR_SYSCALL:
+ switch(errno) {
+@@ -196,7 +198,7 @@
+ if (c->offset == c->data.file.length) {
+ chunk_finished = 1;
+ }
+- } while(!chunk_finished);
++ } while(!chunk_finished && !write_wait);
+
+ break;
+ }
diff --git a/www-servers/lighttpd/files/1.4.1/07_all_fix-dst_addr_buf-leak.diff b/www-servers/lighttpd/files/1.4.1/07_all_fix-dst_addr_buf-leak.diff
new file mode 100644
index 000000000000..7559e88d2345
--- /dev/null
+++ b/www-servers/lighttpd/files/1.4.1/07_all_fix-dst_addr_buf-leak.diff
@@ -0,0 +1,34 @@
+--- branches/lighttpd-merge-1.4.x/src/connections.c (revision 623)
++++ branches/lighttpd-merge-1.4.x/src/connections.c (revision 624)
+@@ -554,6 +554,7 @@
+ CLEAN(authed_user);
+ CLEAN(server_name);
+ CLEAN(error_handler);
++ CLEAN(dst_addr_buf);
+
+ #undef CLEAN
+ con->write_queue = chunkqueue_init();
+@@ -567,7 +568,6 @@
+ con->plugin_ctx = calloc(srv->plugins.used + 1, sizeof(void *));
+
+ con->cond_cache = calloc(srv->config_context->used, sizeof(cond_cache_t));
+- con->dst_addr_buf = buffer_init();
+ config_setup_connection(srv, con);
+
+ return con;
+@@ -615,6 +615,7 @@
+ CLEAN(authed_user);
+ CLEAN(server_name);
+ CLEAN(error_handler);
++ CLEAN(dst_addr_buf);
+ #undef CLEAN
+ free(con->plugin_ctx);
+ free(con->cond_cache);
+@@ -686,6 +687,7 @@
+ CLEAN(authed_user);
+ CLEAN(server_name);
+ CLEAN(error_handler);
++ CLEAN(dst_addr_buf);
+ #undef CLEAN
+
+ #define CLEAN(x) \
diff --git a/www-servers/lighttpd/files/1.4.1/08_all_doc-updates.diff b/www-servers/lighttpd/files/1.4.1/08_all_doc-updates.diff
new file mode 100644
index 000000000000..f8450b63b16a
--- /dev/null
+++ b/www-servers/lighttpd/files/1.4.1/08_all_doc-updates.diff
@@ -0,0 +1,32 @@
+--- branches/lighttpd-merge-1.4.x/doc/redirect.txt (revision 619)
++++ branches/lighttpd-merge-1.4.x/doc/redirect.txt (revision 620)
+@@ -34,3 +34,6 @@
+ url.redirect = ( "^/show/([0-9]+)/([0-9]+)$" => "http://www.example.org/show.php?isdn=$1&page$2",
+ "^/get/([0-9]+)/([0-9]+)$" => "http://www.example.org/get.php?isdn=$1&page$2" )
+
++ $HTTP["host"] =~ "^www\.(.*)" {
++ url.redirect = ( "^/(.*)" => "http://%1/$1" )
++ }
+--- branches/lighttpd-merge-1.4.x/doc/rewrite.txt (revision 619)
++++ branches/lighttpd-merge-1.4.x/doc/rewrite.txt (revision 620)
+@@ -51,3 +51,7 @@
+
+ url.rewrite-once = ( "^/id/([0-9]+)$" => "/index.php?id=$1",
+ "^/link/([a-zA-Z]+)" => "/index.php?link=$1" )
++
++ $HTTP["host"] =~ "^([^.]+)\.(this-is-mass-vhost\.com)" {
++ url.rewrite-once = ( "^/(.*)" => "/%2/%1/$1" )
++ }
+--- branches/lighttpd-merge-1.4.x/doc/lighttpd.conf (revision 619)
++++ branches/lighttpd-merge-1.4.x/doc/lighttpd.conf (revision 620)
+@@ -254,6 +254,10 @@
+ #### url handling modules (rewrite, redirect, access)
+ #url.rewrite = ( "^/$" => "/server-status" )
+ #url.redirect = ( "^/wishlist/(.+)" => "http://www.123.org/$1" )
++#### both rewrite/redirect support back reference to regex conditional using %n
++#$HTTP["host"] =~ "^www\.(.*)" {
++# url.redirect = ( "^/(.*)" => "http://%1/$1" )
++#}
+
+ #
+ # define a pattern for the host url finding
diff --git a/www-servers/lighttpd/files/1.4.1/09_all_lfs-range-requests.diff b/www-servers/lighttpd/files/1.4.1/09_all_lfs-range-requests.diff
new file mode 100644
index 000000000000..070bf67e6f37
--- /dev/null
+++ b/www-servers/lighttpd/files/1.4.1/09_all_lfs-range-requests.diff
@@ -0,0 +1,39 @@
+--- branches/lighttpd-merge-1.4.x/src/mod_staticfile.c (revision 624)
++++ branches/lighttpd-merge-1.4.x/src/mod_staticfile.c (revision 625)
+@@ -166,12 +166,12 @@
+ for (s = con->request.http_range, error = 0;
+ !error && *s && NULL != (minus = strchr(s, '-')); ) {
+ char *err;
+- long la, le;
++ off_t la, le;
+
+ if (s == minus) {
+ /* -<stop> */
+
+- le = strtol(s, &err, 10);
++ le = strtoll(s, &err, 10);
+
+ if (le == 0) {
+ /* RFC 2616 - 14.35.1 */
+@@ -197,7 +197,7 @@
+ } else if (*(minus+1) == '\0' || *(minus+1) == ',') {
+ /* <start>- */
+
+- la = strtol(s, &err, 10);
++ la = strtoll(s, &err, 10);
+
+ if (err == minus) {
+ /* ok */
+@@ -224,10 +224,10 @@
+ } else {
+ /* <start>-<stop> */
+
+- la = strtol(s, &err, 10);
++ la = strtoll(s, &err, 10);
+
+ if (err == minus) {
+- le = strtol(minus+1, &err, 10);
++ le = strtoll(minus+1, &err, 10);
+
+ /* RFC 2616 - 14.35.1 */
+ if (la > le) {
diff --git a/www-servers/lighttpd/files/1.4.1/10_all_stat_cache_init_after_setuid.diff b/www-servers/lighttpd/files/1.4.1/10_all_stat_cache_init_after_setuid.diff
new file mode 100644
index 000000000000..222e367e5453
--- /dev/null
+++ b/www-servers/lighttpd/files/1.4.1/10_all_stat_cache_init_after_setuid.diff
@@ -0,0 +1,53 @@
+Index: src/server.c
+===================================================================
+--- src/server.c (revision 625)
++++ src/server.c (working copy)
+@@ -160,9 +160,6 @@
+ srv->fdwaitqueue = calloc(1, sizeof(*srv->fdwaitqueue));
+ assert(srv->fdwaitqueue);
+
+- srv->stat_cache = stat_cache_init();
+- assert(srv->stat_cache);
+-
+ srv->srvconf.modules = array_init();
+
+ /* use syslog */
+@@ -243,8 +240,10 @@
+ joblist_free(srv, srv->joblist);
+ fdwaitqueue_free(srv, srv->fdwaitqueue);
+
+- stat_cache_free(srv->stat_cache);
+-
++ if (srv->stat_cache) {
++ stat_cache_free(srv->stat_cache);
++ }
++
+ array_free(srv->srvconf.modules);
+ array_free(srv->split_vals);
+
+@@ -720,13 +719,24 @@
+
+ /* setup periodic timer (1 second) */
+ if (setitimer(ITIMER_REAL, &interval, NULL)) {
+- log_error_write(srv, __FILE__, __LINE__, "setting timer failed");
++ log_error_write(srv, __FILE__, __LINE__, "s", "setting timer failed");
+ return -1;
+ }
+
+ getitimer(ITIMER_REAL, &interval);
+ #endif
+
++ /* might fail if user is using fam (not gamin) and famd isn't running */
++ if (NULL == (srv->stat_cache = stat_cache_init())) {
++#if defined(HAVE_FAM_H) && !defined(HAVE_FAMNOEXISTS)
++ log_error_write(srv, __FILE__, __LINE__, "s",
++ "FAMOpen2() failed. Is famd running?");
++ return -1;
++#else
++ SEGFAULT();
++#endif
++ }
++
+ #ifdef HAVE_FAM_H
+ /* setup FAM */
+ srv->stat_cache->fam_fcce_ndx = -1;
diff --git a/www-servers/lighttpd/files/conf/lighttpd.conf b/www-servers/lighttpd/files/conf/lighttpd.conf
index 576e870228ad..af14bf1fe3fb 100644
--- a/www-servers/lighttpd/files/conf/lighttpd.conf
+++ b/www-servers/lighttpd/files/conf/lighttpd.conf
@@ -1,15 +1,18 @@
###############################################################################
# Default lighttpd.conf for Gentoo.
-# $Header: /var/cvsroot/gentoo-x86/www-servers/lighttpd/files/conf/lighttpd.conf,v 1.1 2005/08/22 16:01:18 ka0ttic Exp $
+# $Header: /var/cvsroot/gentoo-x86/www-servers/lighttpd/files/conf/lighttpd.conf,v 1.2 2005/08/27 12:36:13 ka0ttic Exp $
###############################################################################
-include "mime-types.conf"
-# uncomment for php/fastcgi support
-# include "mod_fastcgi.conf"
+# {{{ variables
+var.basedir = "/var/www/localhost"
+var.logdir = "/var/log/lighttpd"
+var.statedir = "/var/lib/lighttpd"
+# }}}
# {{{ modules
# At the very least, mod_access and mod_accesslog should be enabled.
# All other modules should only be loaded if necessary.
+# NOTE: the order of modules is important.
server.modules = (
# "mod_rewrite",
# "mod_redirect",
@@ -24,7 +27,6 @@ server.modules = (
# "mod_simple_vhost",
# "mod_evhost",
# "mod_userdir",
-# "mod_cgi",
# "mod_compress",
# "mod_ssi",
# "mod_usertrack",
@@ -32,17 +34,29 @@ server.modules = (
# "mod_secdownload",
# "mod_rrdtool",
# "mod_webdav",
- "mod_accesslog" )
+ "mod_accesslog"
+)
+# }}}
+
+# {{{ includes
+include "mime-types.conf"
+# uncomment for cgi support
+# include "mod_cgi.conf"
+# uncomment for php/fastcgi support
+# include "mod_fastcgi.conf"
# }}}
# {{{ server settings
server.username = "lighttpd"
server.groupname = "lighttpd"
-server.document-root = "/var/www/localhost/htdocs"
-server.errorlog = "/var/log/lighttpd/error.log"
+server.document-root = var.basedir + "/htdocs"
server.pid-file = "/var/run/lighttpd.pid"
+server.errorlog = var.logdir + "/error.log"
+# log errors to syslog instead
+# server.errorlog-use-syslog = "enable"
+
server.indexfiles = ("index.php", "index.html",
"index.htm", "default.htm")
@@ -75,15 +89,14 @@ server.follow-symlink = "enable"
# Format: <errorfile-prefix><status-code>.html
# -> ..../status-404.html for 'File not found'
-# server.errorfile-prefix = "/home/weigon/projects/lighttpd/doc/status-"
+# server.errorfile-prefix = var.basedir + "/error/status-"
# FAM support for caching stat() calls
# requires that lighttpd be built with USE=fam
# server.stat-cache-engine = "fam"
-
# }}}
-# {{{ misc
+# {{{ mod_staticfile
# which extensions should not be handled via static-file transfer
# (extensions that are usually handled by mod_cgi, mod_fastcgi, etc).
@@ -91,7 +104,7 @@ static-file.exclude-extensions = (".php", ".pl", ".cgi", ".fcgi")
# }}}
# {{{ mod_accesslog
-accesslog.filename = "/var/log/lighttpd/access.log"
+accesslog.filename = var.logdir + "/access.log"
# }}}
# {{{ mod_dirlisting
@@ -116,14 +129,6 @@ accesslog.filename = "/var/log/lighttpd/access.log"
url.access-deny = ("~", ".inc")
# }}}
-# {{{ mod_alias
-# see alias.txt
-#
-# alias.url = (
-# "/cgi-bin/" => "/var/www/localhost/cgi-bin/"
-# )
-# }}}
-
# {{{ mod_userdir
# see userdir.txt
#
@@ -131,15 +136,6 @@ url.access-deny = ("~", ".inc")
# userdir.exclude-user = ("root")
# }}}
-# {{{ mod_cgi
-# see cgi.txt
-#
-# cgi.assign = (
-# ".pl" => "/usr/bin/perl",
-# ".cgi" => "/usr/bin/perl"
-# )
-# }}}
-
# {{{ mod_ssi
# see ssi.txt
#
@@ -179,7 +175,7 @@ url.access-deny = ("~", ".inc")
# {{{ mod_compress
# see compress.txt
#
-# compress.cache-dir = "/var/lib/lighttpd/cache/compress"
+# compress.cache-dir = var.statedir + "/cache/compress"
# compress.filetype = ("text/plain", "text/html")
# }}}
@@ -261,7 +257,7 @@ url.access-deny = ("~", ".inc")
# see rrdtool.txt
#
# rrdtool.binary = "/usr/bin/rrdtool"
-# rrdtool.db-name = "/var/www/lighttpd.rrd"
+# rrdtool.db-name = var.statedir + "/lighttpd.rrd"
# }}}
# {{{ mod_setenv
@@ -301,11 +297,6 @@ url.access-deny = ("~", ".inc")
# {{{ extra rules
#
-# disable directory listings for /cgi-bin
-# $HTTP["url"] =~ "/cgi-bin/" {
-# dir-listing.activate = "disable"
-# }
-
# set Content-Encoding and reset Content-Type for browsers that
# support decompressing on-thy-fly (requires mod_setenv)
# $HTTP["url"] =~ "\.gz$" {
diff --git a/www-servers/lighttpd/files/conf/mime-types.conf b/www-servers/lighttpd/files/conf/mime-types.conf
index c25670501f99..3c3657773952 100644
--- a/www-servers/lighttpd/files/conf/mime-types.conf
+++ b/www-servers/lighttpd/files/conf/mime-types.conf
@@ -1,7 +1,7 @@
###############################################################################
# Default mime-types.conf for Gentoo.
# include'd from lighttpd.conf.
-# $Header: /var/cvsroot/gentoo-x86/www-servers/lighttpd/files/conf/mime-types.conf,v 1.1 2005/08/22 16:01:18 ka0ttic Exp $
+# $Header: /var/cvsroot/gentoo-x86/www-servers/lighttpd/files/conf/mime-types.conf,v 1.2 2005/08/27 12:36:13 ka0ttic Exp $
###############################################################################
# {{{ mime types
@@ -45,10 +45,18 @@ mimetype.assign = (
".hh" => "text/plain",
".hpp" => "text/plain",
".conf" => "text/plain",
+ ".log" => "text/plain",
".text" => "text/plain",
".txt" => "text/plain",
".diff" => "text/plain",
".patch" => "text/plain",
+ ".ebuild" => "text/plain",
+ ".eclass" => "text/plain",
+ ".rtf" => "application/rtf",
+ ".bmp" => "image/bmp",
+ ".tif" => "image/tiff",
+ ".tiff" => "image/tiff",
+ ".ico" => "image/x-icon",
".dtd" => "text/xml",
".xml" => "text/xml",
".mpeg" => "video/mpeg",
diff --git a/www-servers/lighttpd/files/conf/mod_cgi.conf b/www-servers/lighttpd/files/conf/mod_cgi.conf
new file mode 100644
index 000000000000..1cb3770f9b27
--- /dev/null
+++ b/www-servers/lighttpd/files/conf/mod_cgi.conf
@@ -0,0 +1,33 @@
+###############################################################################
+# mod_cgi.conf
+# include'd by lighttpd.conf.
+# $Header: /var/cvsroot/gentoo-x86/www-servers/lighttpd/files/conf/mod_cgi.conf,v 1.1 2005/08/27 12:36:13 ka0ttic Exp $
+###############################################################################
+
+#
+# see cgi.txt for more information on using mod_cgi
+#
+
+server.modules += ("mod_cgi")
+
+# NOTE: this requires mod_alias
+alias.url = (
+ "/cgi-bin/" => var.basedir + "/cgi-bin/"
+)
+
+#
+# Note that you'll also want to enable the
+# cgi-bin alias via mod_alias (above).
+#
+
+$HTTP["url"] =~ "^/cgi-bin/" {
+ # disable directory listings
+ dir-listing.activate = "disable"
+ # only allow cgi's in this directory
+ cgi.assign = (
+ ".pl" => "/usr/bin/perl",
+ ".cgi" => "/usr/bin/perl"
+ )
+}
+
+# vim: set ft=conf foldmethod=marker et :
diff --git a/www-servers/lighttpd/files/conf/mod_fastcgi.conf b/www-servers/lighttpd/files/conf/mod_fastcgi.conf
index 0da57b518440..452e1749e1f7 100644
--- a/www-servers/lighttpd/files/conf/mod_fastcgi.conf
+++ b/www-servers/lighttpd/files/conf/mod_fastcgi.conf
@@ -1,19 +1,18 @@
###############################################################################
# mod_fastcgi.conf
# include'd by lighttpd.conf.
-# $Header: /var/cvsroot/gentoo-x86/www-servers/lighttpd/files/conf/mod_fastcgi.conf,v 1.1 2005/08/22 16:01:18 ka0ttic Exp $
+# $Header: /var/cvsroot/gentoo-x86/www-servers/lighttpd/files/conf/mod_fastcgi.conf,v 1.2 2005/08/27 12:36:13 ka0ttic Exp $
###############################################################################
server.modules += ("mod_fastcgi")
-fastcgi.server =
- ( ".php" =>
- ( "localhost" =>
- (
- "host" => "127.0.0.1",
- "port" => 1026,
- "bin-path" => "/usr/bin/php-cgi"
- )
- )
- )
+fastcgi.server = ( ".php" =>
+ ( "localhost" =>
+ (
+ "host" => "127.0.0.1",
+ "port" => 1026,
+ "bin-path" => "/usr/bin/php-cgi"
+ )
+ )
+ )
# vim: set ft=conf foldmethod=marker et :
diff --git a/www-servers/lighttpd/files/digest-lighttpd-1.4.1 b/www-servers/lighttpd/files/digest-lighttpd-1.4.1-r1
index 954f48b6c0b4..954f48b6c0b4 100644
--- a/www-servers/lighttpd/files/digest-lighttpd-1.4.1
+++ b/www-servers/lighttpd/files/digest-lighttpd-1.4.1-r1
diff --git a/www-servers/lighttpd/lighttpd-1.4.1.ebuild b/www-servers/lighttpd/lighttpd-1.4.1-r1.ebuild
index 584dbc175021..7344121321b8 100644
--- a/www-servers/lighttpd/lighttpd-1.4.1.ebuild
+++ b/www-servers/lighttpd/lighttpd-1.4.1-r1.ebuild
@@ -1,13 +1,9 @@
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/www-servers/lighttpd/lighttpd-1.4.1.ebuild,v 1.2 2005/08/23 01:21:48 ka0ttic Exp $
+# $Header: /var/cvsroot/gentoo-x86/www-servers/lighttpd/lighttpd-1.4.1-r1.ebuild,v 1.1 2005/08/27 12:36:13 ka0ttic Exp $
-inherit eutils toolchain-funcs
+inherit eutils
-# bug #97661 - tests try to load modules from /usr/lib/lighttpd.
-# Needless to say, this will fail because either
-# a) they don't exist since this is a first install, or
-# b) they do exist, but they are from the previously installed version
RESTRICT="test"
DESCRIPTION="Lightweight high-performance web server"
@@ -17,29 +13,33 @@ SRC_URI="http://www.lighttpd.net/download/${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64 ~mips ~ppc ~x86"
-IUSE="doc fam gdbm ipv6 ldap lua mysql php ssl webdav xattr"
+IUSE="doc fam gdbm ipv6 ldap lua mysql pcre php ssl test webdav xattr"
RDEPEND="app-arch/bzip2
- >=sys-libs/zlib-1.1
- >=dev-libs/libpcre-3.1
- fam? ( app-admin/gamin )
- gdbm? ( sys-libs/gdbm )
- ldap? ( >=net-nds/openldap-2.1.26 )
- lua? ( dev-lang/lua )
- mysql? ( >=dev-db/mysql-4.0.0 )
- php? (
- >=dev-php/php-cgi-4.3.0
- !net-www/spawn-fcgi
- )
- ssl? ( >=dev-libs/openssl-0.9.7 )
- webdav? (
- dev-libs/libxml2
- >=dev-db/sqlite-3
- )
- xattr? ( sys-apps/attr )"
+ >=sys-libs/zlib-1.1
+ fam? ( virtual/fam )
+ gdbm? ( sys-libs/gdbm )
+ ldap? ( >=net-nds/openldap-2.1.26 )
+ lua? ( dev-lang/lua )
+ mysql? ( >=dev-db/mysql-4.0.0 )
+ pcre? ( >=dev-libs/libpcre-3.1 )
+ php? (
+ >=dev-php/php-cgi-4.3.0
+ !net-www/spawn-fcgi
+ )
+ ssl? ( >=dev-libs/openssl-0.9.7 )
+ webdav? (
+ dev-libs/libxml2
+ >=dev-db/sqlite-3
+ )
+ xattr? ( sys-apps/attr )"
DEPEND="${RDEPEND}
- doc? ( dev-python/docutils )"
+ doc? ( dev-python/docutils )
+ test? (
+ perl-core/Test-Harness
+ dev-libs/fcgi
+ )"
# update certain parts of lighttpd.conf based on conditionals
update_config() {
@@ -54,33 +54,47 @@ update_config() {
dosed 's|#\(.*stat-cache.*$\)|\1|' ${config}
}
+pkg_setup() {
+ if ! use pcre ; then
+ ewarn "It is highly recommended that you build ${PN}"
+ ewarn "with perl regular expressions support via USE=pcre."
+ ewarn "Otherwise you lose support for some core options and"
+ ewarn "features such as conditionals."
+ epause 5
+ fi
+}
+
src_unpack() {
unpack ${A}
cd ${S}
-# EPATCH_SUFFIX="diff" epatch ${FILESDIR}/${PV}
+ EPATCH_SUFFIX="diff" epatch ${FILESDIR}/${PV}
+
+ einfo "Regenerating autoconf/automake files"
+ libtoolize --copy --force || die "libtoolize failed"
+ aclocal || die "aclocal failed"
+ autoheader || die "autoheader failed"
+ automake --add-missing --copy || die "automake failed"
+ autoconf || die "autoconf failed"
# dev-python/docutils installs rst2html.py not rst2html
sed -i -e 's|\(rst2html\)|\1.py|g' doc/Makefile.in || \
die "sed doc/Makefile.in failed"
+
+ sed -i -e 's|^\(.*UNUSED(regex).*\)$||' src/mod_dirlisting.c || \
+ die "sed src/mod_dirlisting.c failed"
}
src_compile() {
-# einfo "Regenerating autoconf/automake files"
-# libtoolize --copy --force || die "libtoolize failed"
-# aclocal || die "aclocal failed"
-# autoheader || die "autoheader failed"
-# automake --add-missing --copy || die "automake failed"
-# autoconf || die "autoconf failed"
-
econf --libdir=/usr/$(get_libdir)/${PN} \
--enable-lfs \
$(use_enable ipv6) \
- $(use_with fam gamin) \
+ $(use_with fam) \
$(use_with gdbm) \
$(use_with lua) \
$(use_with ldap) \
$(use_with mysql) \
+ $(use_with pcre) \
$(use_with ssl openssl) \
$(use_with webdav webdav-props) \
$(use_with xattr attr) \
@@ -126,13 +140,13 @@ src_install() {
insinto /etc/logrotate.d
newins ${FILESDIR}/lighttpd.logrotate lighttpd || die
- keepdir /var/log/lighttpd /var/www/localhost/htdocs
+ keepdir /var/l{ib,og}/lighttpd /var/www/localhost/htdocs
}
pkg_preinst() {
enewgroup lighttpd
enewuser lighttpd -1 -1 /var/www/localhost/htdocs lighttpd
- fowners lighttpd:lighttpd /var/log/lighttpd
+ fowners lighttpd:lighttpd /var/l{ib,og}/lighttpd
}
pkg_postinst () {
@@ -145,7 +159,7 @@ pkg_postinst () {
fi
if [[ -f ${ROOT}etc/lighttpd.conf ]] ; then
- ewarn "As of lighttpd-1.4.0-r1, Gentoo has a customized configuration,"
+ ewarn "As of lighttpd-1.4.1, Gentoo has a customized configuration,"
ewarn "which is now located in /etc/lighttpd. Please migrate your"
ewarn "existing configuration."
ebeep 3