diff options
Diffstat (limited to 'recipes/lighttpd')
-rw-r--r-- | recipes/lighttpd/lighttpd/configure.in.patch | 34 | ||||
-rw-r--r-- | recipes/lighttpd/lighttpd/index.html | 1 | ||||
-rw-r--r-- | recipes/lighttpd/lighttpd/lighttpd | 34 | ||||
-rw-r--r-- | recipes/lighttpd/lighttpd/lighttpd.conf | 328 | ||||
-rw-r--r-- | recipes/lighttpd/lighttpd/mod_redirect.c.patch | 56 | ||||
-rw-r--r-- | recipes/lighttpd/lighttpd/src-server.c.patch | 25 | ||||
-rw-r--r-- | recipes/lighttpd/lighttpd_1.4.18.bb | 49 |
7 files changed, 527 insertions, 0 deletions
diff --git a/recipes/lighttpd/lighttpd/configure.in.patch b/recipes/lighttpd/lighttpd/configure.in.patch new file mode 100644 index 0000000000..772103cf76 --- /dev/null +++ b/recipes/lighttpd/lighttpd/configure.in.patch @@ -0,0 +1,34 @@ +Index: lighttpd-1.4.13/configure.in +=================================================================== +--- lighttpd-1.4.13.orig/configure.in 2006-10-09 18:19:34.000000000 +0200 ++++ lighttpd-1.4.13/configure.in 2007-02-13 18:42:34.000000000 +0100 +@@ -250,23 +250,23 @@ + [WITH_PCRE=$withval],[WITH_PCRE=yes]) + AC_MSG_RESULT([$WITH_PCRE]) + +-if test "x$cross_compiling" = xno -a "$WITH_PCRE" != "no"; then ++if test "$WITH_PCRE" != "no"; then + AC_PATH_PROG(PCRECONFIG, pcre-config) + +- if test x"$PCRECONFIG" != x; then ++# if test x"$PCRECONFIG" != x; then + PCRE_LIB=`$PCRECONFIG --libs` + CPPFLAGS="$CPPFLAGS `$PCRECONFIG --cflags`" + OLDLIBS="$LIBS" + LIBS="$LIBS $PCRE_LIB" +- AC_CHECK_LIB(pcre, pcre_compile, [ ++# AC_CHECK_LIB(pcre, pcre_compile, [ + AC_CHECK_HEADERS([pcre.h], [ + AC_DEFINE([HAVE_LIBPCRE], [1], [libpcre]) + AC_DEFINE([HAVE_PCRE_H], [1]) + ]) +- ]) ++# ]) + LIBS="$OLDLIBS" +- fi +-fi ++# fi ++fi + + AC_SUBST(PCRE_LIB) + diff --git a/recipes/lighttpd/lighttpd/index.html b/recipes/lighttpd/lighttpd/index.html new file mode 100644 index 0000000000..cd25bf17b3 --- /dev/null +++ b/recipes/lighttpd/lighttpd/index.html @@ -0,0 +1 @@ +<html><body><h1>It works!</h1></body></html>
\ No newline at end of file diff --git a/recipes/lighttpd/lighttpd/lighttpd b/recipes/lighttpd/lighttpd/lighttpd new file mode 100644 index 0000000000..bf89a60b7d --- /dev/null +++ b/recipes/lighttpd/lighttpd/lighttpd @@ -0,0 +1,34 @@ +#!/bin/sh + +PATH=/sbin:/bin:/usr/sbin:/usr/bin +DAEMON=/usr/sbin/lighttpd +NAME=lighttpd +DESC="Lighttpd Web Server" +OPTS="-f /etc/lighttpd.conf" + +case "$1" in + start) + echo -n "Starting $DESC: " + start-stop-daemon --start -x "$DAEMON" -- $OPTS + echo "$NAME." + ;; + stop) + echo -n "Stopping $DESC: " + start-stop-daemon --stop -x "$DAEMON" + echo "$NAME." + ;; + restart|force-reload) + echo -n "Restarting $DESC: " + start-stop-daemon --stop -x "$DAEMON" + sleep 1 + start-stop-daemon --start -x "$DAEMON" -- $OPTS + echo "$NAME." + ;; + *) + N=/etc/init.d/$NAME + echo "Usage: $N {start|stop|restart|force-reload}" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/recipes/lighttpd/lighttpd/lighttpd.conf b/recipes/lighttpd/lighttpd/lighttpd.conf new file mode 100644 index 0000000000..5642e3175f --- /dev/null +++ b/recipes/lighttpd/lighttpd/lighttpd.conf @@ -0,0 +1,328 @@ +# lighttpd configuration file +# +# use it as a base for lighttpd 1.0.0 and above +# +# $Id: lighttpd.conf,v 1.7 2004/11/03 22:26:05 weigon Exp $ + +############ Options you really have to take care of #################### + +## modules to load +# at least mod_access and mod_accesslog should be loaded +# all other module should only be loaded if really neccesary +# - saves some time +# - saves memory +server.modules = ( +# "mod_rewrite", +# "mod_redirect", +# "mod_alias", + "mod_access", +# "mod_cml", +# "mod_trigger_b4_dl", +# "mod_auth", +# "mod_status", +# "mod_setenv", +# "mod_fastcgi", +# "mod_proxy", +# "mod_simple_vhost", +# "mod_evhost", +# "mod_userdir", +# "mod_cgi", +# "mod_compress", +# "mod_ssi", +# "mod_usertrack", +# "mod_expire", +# "mod_secdownload", +# "mod_rrdtool", +# "mod_webdav", + "mod_accesslog" ) + +## a static document-root, for virtual-hosting take look at the +## server.virtual-* options +server.document-root = "/www/pages/" + +## where to send error-messages to +server.errorlog = "/www/logs/lighttpd.error.log" + +# files to check for if .../ is requested +index-file.names = ( "index.php", "index.html", + "index.htm", "default.htm" ) + +## set the event-handler (read the performance section in the manual) +# server.event-handler = "freebsd-kqueue" # needed on OS X + +# mimetype mapping +mimetype.assign = ( + ".pdf" => "application/pdf", + ".sig" => "application/pgp-signature", + ".spl" => "application/futuresplash", + ".class" => "application/octet-stream", + ".ps" => "application/postscript", + ".torrent" => "application/x-bittorrent", + ".dvi" => "application/x-dvi", + ".gz" => "application/x-gzip", + ".pac" => "application/x-ns-proxy-autoconfig", + ".swf" => "application/x-shockwave-flash", + ".tar.gz" => "application/x-tgz", + ".tgz" => "application/x-tgz", + ".tar" => "application/x-tar", + ".zip" => "application/zip", + ".mp3" => "audio/mpeg", + ".m3u" => "audio/x-mpegurl", + ".wma" => "audio/x-ms-wma", + ".wax" => "audio/x-ms-wax", + ".ogg" => "application/ogg", + ".wav" => "audio/x-wav", + ".gif" => "image/gif", + ".jpg" => "image/jpeg", + ".jpeg" => "image/jpeg", + ".png" => "image/png", + ".xbm" => "image/x-xbitmap", + ".xpm" => "image/x-xpixmap", + ".xwd" => "image/x-xwindowdump", + ".css" => "text/css", + ".html" => "text/html", + ".htm" => "text/html", + ".js" => "text/javascript", + ".asc" => "text/plain", + ".c" => "text/plain", + ".cpp" => "text/plain", + ".log" => "text/plain", + ".conf" => "text/plain", + ".text" => "text/plain", + ".txt" => "text/plain", + ".dtd" => "text/xml", + ".xml" => "text/xml", + ".mpeg" => "video/mpeg", + ".mpg" => "video/mpeg", + ".mov" => "video/quicktime", + ".qt" => "video/quicktime", + ".avi" => "video/x-msvideo", + ".asf" => "video/x-ms-asf", + ".asx" => "video/x-ms-asf", + ".wmv" => "video/x-ms-wmv", + ".bz2" => "application/x-bzip", + ".tbz" => "application/x-bzip-compressed-tar", + ".tar.bz2" => "application/x-bzip-compressed-tar" + ) + +# Use the "Content-Type" extended attribute to obtain mime type if possible +#mimetype.use-xattr = "enable" + + +## send a different Server: header +## be nice and keep it at lighttpd +# server.tag = "lighttpd" + +#### accesslog module +accesslog.filename = "/www/logs/access.log" +debug.log-request-handling = "enable" + + + + +## deny access the file-extensions +# +# ~ is for backupfiles from vi, emacs, joe, ... +# .inc is often used for code includes which should in general not be part +# of the document-root +url.access-deny = ( "~", ".inc" ) + +$HTTP["url"] =~ "\.pdf$" { + server.range-requests = "disable" +} + +## +# which extensions should not be handle via static-file transfer +# +# .php, .pl, .fcgi are most often handled by mod_fastcgi or mod_cgi +static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" ) + +######### Options that are good to be but not neccesary to be changed ####### + +## bind to port (default: 80) +#server.port = 81 + +## bind to localhost (default: all interfaces) +#server.bind = "grisu.home.kneschke.de" + +## error-handler for status 404 +#server.error-handler-404 = "/error-handler.html" +#server.error-handler-404 = "/error-handler.php" + +## to help the rc.scripts +#server.pid-file = "/var/run/lighttpd.pid" + + +###### virtual hosts +## +## If you want name-based virtual hosting add the next three settings and load +## mod_simple_vhost +## +## document-root = +## virtual-server-root + virtual-server-default-host + virtual-server-docroot +## or +## virtual-server-root + http-host + virtual-server-docroot +## +#simple-vhost.server-root = "/home/weigon/wwwroot/servers/" +#simple-vhost.default-host = "grisu.home.kneschke.de" +#simple-vhost.document-root = "/pages/" + + +## +## Format: <errorfile-prefix><status-code>.html +## -> ..../status-404.html for 'File not found' +#server.errorfile-prefix = "/home/weigon/projects/lighttpd/doc/status-" + +## virtual directory listings +#dir-listing.activate = "enable" + +## enable debugging +#debug.log-request-header = "enable" +#debug.log-response-header = "enable" +#debug.log-request-handling = "enable" +#debug.log-file-not-found = "enable" + +### only root can use these options +# +# chroot() to directory (default: no chroot() ) +#server.chroot = "/" + +## change uid to <uid> (default: don't care) +#server.username = "wwwrun" + +## change uid to <uid> (default: don't care) +#server.groupname = "wwwrun" + +#### compress module +#compress.cache-dir = "/tmp/lighttpd/cache/compress/" +#compress.filetype = ("text/plain", "text/html") + +#### proxy module +## read proxy.txt for more info +#proxy.server = ( ".php" => +# ( "localhost" => +# ( +# "host" => "192.168.0.101", +# "port" => 80 +# ) +# ) +# ) + +#### fastcgi module +## read fastcgi.txt for more info +## for PHP don't forget to set cgi.fix_pathinfo = 1 in the php.ini +#fastcgi.server = ( ".php" => +# ( "localhost" => +# ( +# "socket" => "/tmp/php-fastcgi.socket", +# "bin-path" => "/usr/local/bin/php" +# ) +# ) +# ) + +#### CGI module +#cgi.assign = ( ".pl" => "/usr/bin/perl", +# ".cgi" => "/usr/bin/perl" ) +# + +#### SSL engine +#ssl.engine = "enable" +#ssl.pemfile = "server.pem" + +#### status module +#status.status-url = "/server-status" +#status.config-url = "/server-config" + +#### auth module +## read authentication.txt for more info +#auth.backend = "plain" +#auth.backend.plain.userfile = "lighttpd.user" +#auth.backend.plain.groupfile = "lighttpd.group" + +#auth.backend.ldap.hostname = "localhost" +#auth.backend.ldap.base-dn = "dc=my-domain,dc=com" +#auth.backend.ldap.filter = "(uid=$)" + +#auth.require = ( "/server-status" => +# ( +# "method" => "digest", +# "realm" => "download archiv", +# "require" => "user=jan" +# ), +# "/server-config" => +# ( +# "method" => "digest", +# "realm" => "download archiv", +# "require" => "valid-user" +# ) +# ) + +#### 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 +# %% => % sign +# %0 => domain name + tld +# %1 => tld +# %2 => domain name without tld +# %3 => subdomain 1 name +# %4 => subdomain 2 name +# +#evhost.path-pattern = "/home/storage/dev/www/%3/htdocs/" + +#### expire module +#expire.url = ( "/buggy/" => "access 2 hours", "/asdhas/" => "access plus 1 seconds 2 minutes") + +#### ssi +#ssi.extension = ( ".shtml" ) + +#### rrdtool +#rrdtool.binary = "/usr/bin/rrdtool" +#rrdtool.db-name = "/var/www/lighttpd.rrd" + +#### setenv +#setenv.add-request-header = ( "TRAV_ENV" => "mysql://user@host/db" ) +#setenv.add-response-header = ( "X-Secret-Message" => "42" ) + +## for mod_trigger_b4_dl +# trigger-before-download.gdbm-filename = "/home/weigon/testbase/trigger.db" +# trigger-before-download.memcache-hosts = ( "127.0.0.1:11211" ) +# trigger-before-download.trigger-url = "^/trigger/" +# trigger-before-download.download-url = "^/download/" +# trigger-before-download.deny-url = "http://127.0.0.1/index.html" +# trigger-before-download.trigger-timeout = 10 + +## for mod_cml +## don't forget to add index.cml to server.indexfiles +# cml.extension = ".cml" +# cml.memcache-hosts = ( "127.0.0.1:11211" ) + +#### variable usage: +## variable name without "." is auto prefixed by "var." and becomes "var.bar" +#bar = 1 +#var.mystring = "foo" + +## integer add +#bar += 1 +## string concat, with integer cast as string, result: "www.foo1.com" +#server.name = "www." + mystring + var.bar + ".com" +## array merge +#index-file.names = (foo + ".php") + index-file.names +#index-file.names += (foo + ".php") + +#### include +#include /etc/lighttpd/lighttpd-inc.conf +## same as above if you run: "lighttpd -f /etc/lighttpd/lighttpd.conf" +#include "lighttpd-inc.conf" + +#### include_shell +#include_shell "echo var.a=1" +## the above is same as: +#var.a=1 diff --git a/recipes/lighttpd/lighttpd/mod_redirect.c.patch b/recipes/lighttpd/lighttpd/mod_redirect.c.patch new file mode 100644 index 0000000000..7bbdf32082 --- /dev/null +++ b/recipes/lighttpd/lighttpd/mod_redirect.c.patch @@ -0,0 +1,56 @@ +Backport support for url.redirect-code directive from 1.5 branch. + +diff -urN lighttpd-1.4.18.orig/src/mod_redirect.c lighttpd-1.4.18/src/mod_redirect.c +--- lighttpd-1.4.18.orig/src/mod_redirect.c 2007-04-10 09:52:58.000000000 +0200 ++++ lighttpd-1.4.18/src/mod_redirect.c 2008-06-11 17:38:50.000000000 +0200 +@@ -16,6 +16,8 @@ + typedef struct { + pcre_keyvalue_buffer *redirect; + data_config *context; /* to which apply me */ ++ ++ unsigned short redirect_code; + } plugin_config; + + typedef struct { +@@ -72,6 +74,7 @@ + + config_values_t cv[] = { + { "url.redirect", NULL, T_CONFIG_LOCAL, T_CONFIG_SCOPE_CONNECTION }, /* 0 */ ++ { "url.redirect-code", NULL, T_CONFIG_SHORT, T_CONFIG_SCOPE_CONNECTION }, /* 1 */ + { NULL, NULL, T_CONFIG_UNSET, T_CONFIG_SCOPE_UNSET } + }; + +@@ -90,6 +93,7 @@ + s->redirect = pcre_keyvalue_buffer_init(); + + cv[0].destination = s->redirect; ++ cv[1].destination = &(s->redirect_code); + + p->config_storage[i] = s; + ca = ((data_config *)srv->config_context->data[i])->value; +@@ -140,6 +144,7 @@ + plugin_config *s = p->config_storage[0]; + + p->conf.redirect = s->redirect; ++ p->conf.redirect_code = s->redirect_code; + p->conf.context = NULL; + + /* skip the first, the global context */ +@@ -157,6 +162,8 @@ + if (0 == strcmp(du->key->ptr, "url.redirect")) { + p->conf.redirect = s->redirect; + p->conf.context = dc; ++ } else if (0 == strcmp(du->key->ptr, "url.redirect-code")) { ++ p->conf.redirect_code = s->redirect_code; + } + } + } +@@ -250,7 +257,7 @@ + + response_header_insert(srv, con, CONST_STR_LEN("Location"), CONST_BUF_LEN(p->location)); + +- con->http_status = 301; ++ con->http_status = p->conf.redirect_code > 99 && p->conf.redirect_code < 1000 ? p->conf.redirect_code : 301; + con->file_finished = 1; + + return HANDLER_FINISHED; diff --git a/recipes/lighttpd/lighttpd/src-server.c.patch b/recipes/lighttpd/lighttpd/src-server.c.patch new file mode 100644 index 0000000000..dbf614b2bd --- /dev/null +++ b/recipes/lighttpd/lighttpd/src-server.c.patch @@ -0,0 +1,25 @@ +upstream: http://trac.lighttpd.net/trac/ticket/1402 +status: pending + +--- lighttpd/src/server.c.orig 2006-03-04 09:12:17.000000000 -0800 ++++ lighttpd/src/server.c 2006-07-11 09:16:28.000000000 -0700 +@@ -1174,8 +1174,8 @@ + if (srv->sockets_disabled) { + /* our server sockets are disabled, why ? */ + +- if ((srv->cur_fds + srv->want_fds < srv->max_fds * 0.8) && /* we have enough unused fds */ +- (srv->conns->used < srv->max_conns * 0.9) && ++ if ((srv->cur_fds + srv->want_fds < srv->max_fds * 8 / 10) && /* we have enough unused fds */ ++ (srv->conns->used < srv->max_conns * 9 / 10) && + (0 == graceful_shutdown)) { + for (i = 0; i < srv->srv_sockets.used; i++) { + server_socket *srv_socket = srv->srv_sockets.ptr[i]; +@@ -1187,7 +1187,7 @@ + srv->sockets_disabled = 0; + } + } else { +- if ((srv->cur_fds + srv->want_fds > srv->max_fds * 0.9) || /* out of fds */ ++ if ((srv->cur_fds + srv->want_fds > srv->max_fds * 9 / 10) || /* out of fds */ + (srv->conns->used > srv->max_conns) || /* out of connections */ + (graceful_shutdown)) { /* graceful_shutdown */ + diff --git a/recipes/lighttpd/lighttpd_1.4.18.bb b/recipes/lighttpd/lighttpd_1.4.18.bb new file mode 100644 index 0000000000..d5870ba5af --- /dev/null +++ b/recipes/lighttpd/lighttpd_1.4.18.bb @@ -0,0 +1,49 @@ +DESCRIPTION = "Web server" +SECTION = "net" +LICENSE = "BSD" +DEPENDS = "libpcre" +PR = "r3" + +SRC_URI = "http://www.lighttpd.net/download/lighttpd-${PV}.tar.gz \ + file://configure.in.patch;patch=1 \ + file://mod_redirect.c.patch;patch=1 \ + file://src-server.c.patch;patch=1 \ + file://index.html \ + file://lighttpd.conf \ + file://lighttpd" + +EXTRA_OECONF="--without-bzip2 \ + --without-ldap \ + --without-lua \ + --without-memcache \ + --with-pcre \ + --without-webdav-props \ + --without-webdav-locks \ + --without-openssl \ + --disable-nls \ + --disable-static" + +inherit autotools pkgconfig update-rc.d + +INITSCRIPT_NAME = "lighttpd" +INITSCRIPT_PARAMS = "defaults 70" + +do_install_append() { + install -d ${D}${sysconfdir}/init.d ${D}/www/logs ${D}/www/pages/dav ${D}/www/var + install -m 0755 ${WORKDIR}/lighttpd ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/lighttpd.conf ${D}${sysconfdir} + install -m 0644 ${WORKDIR}/index.html ${D}/www/pages/ +} + +do_stage() { + autotools_stage_all +} + +FILES_${PN} += "${sysconfdir} /www" + +PACKAGES_DYNAMIC = "lighttpd-module-*" + +python populate_packages_prepend () { + lighttpd_libdir = bb.data.expand('${libdir}', d) + do_split_packages(d, lighttpd_libdir, '^mod_(.*)\.so$', 'lighttpd-module-%s', 'Lighttpd module for %s', extra_depends='') +} |