debian/0000755000000000000000000000000012164361461007172 5ustar debian/patches/0000755000000000000000000000000012164355763010631 5ustar debian/patches/escape-errorlog.diff0000644000000000000000000000414012164352020014532 0ustar Description: Fix nonprintable character escaping in error.log Debian-Bug: 578035 CVE: CVE-2009-4496 diff -aruN boa-0.94.14rc21.orig/src/log.c boa-0.94.14rc21.fixed/src/log.c --- boa-0.94.14rc21.orig/src/log.c 2005-02-22 06:11:29.000000000 -0800 +++ boa-0.94.14rc21.fixed/src/log.c 2009-12-31 01:27:01.000000000 -0800 @@ -156,6 +156,29 @@ (req->header_user_agent ? req->header_user_agent : "-")); } +static char *escape_pathname(const char *inp) +{ + char *escaped, *c; + + if (!inp) { + return NULL; + } + escaped = (char *)malloc(1 + strlen(inp) * 4); + if (escaped == NULL) { + perror("malloc"); + return NULL; + } + for (c = escaped; *inp; inp++) { + if (needs_escape((unsigned int)*inp)) { + c += sprintf(c, "\\x%02x", (unsigned int)*inp); + } else { + *(c++) = *inp; + } + } + *(c++) = '\0'; + return escaped; +} + /* * Name: log_error_doc * @@ -173,26 +196,29 @@ void log_error_doc(request * req) { int errno_save = errno; + char *escaped_pathname; if (virtualhost) { fprintf(stderr, "%s ", req->local_ip_addr); } else if (vhost_root) { fprintf(stderr, "%s ", (req->host ? req->host : "(null)")); } + escaped_pathname = escape_pathname(req->pathname); if (vhost_root) { fprintf(stderr, "%s - - %srequest [%s] \"%s\" (\"%s\"): ", req->remote_ip_addr, get_commonlog_time(), (req->header_host ? req->header_host : "(null)"), (req->logline ? req->logline : "(null)"), - (req->pathname ? req->pathname : "(null)")); + (escaped_pathname ? escaped_pathname : "(null)")); } else { fprintf(stderr, "%s - - %srequest \"%s\" (\"%s\"): ", req->remote_ip_addr, get_commonlog_time(), (req->logline ? req->logline : "(null)"), - (req->pathname ? req->pathname : "(null)")); + (escaped_pathname ? escaped_pathname : "(null)")); } + free(escaped_pathname); errno = errno_save; } debian/patches/series0000644000000000000000000000017312164355763012047 0ustar config.diff sendfile_ENOSYS.diff Makefile.in.diff allow_8bit.diff lfs_support.diff buffer_escape.diff escape-errorlog.diff debian/patches/buffer_escape.diff0000644000000000000000000000165612164352020014243 0ustar diff --git a/src/buffer.c b/src/buffer.c index 99f3e7c..6720e21 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -77,6 +77,7 @@ int req_write_escape_http(request * req, const char *msg) char c, *dest; const char *inp; + int skip = 0; int left; inp = msg; dest = req->buffer + req->buffer_end; @@ -84,7 +85,12 @@ int req_write_escape_http(request * req, const char *msg) * in the middle of a transfer of up to 3 bytes */ left = BUFFER_SIZE - req->buffer_end; while ((c = *inp++) && left >= 3) { - if (needs_escape((unsigned int) c)) { + /* Lower the skip character count. */ + if (skip) skip--; + /* If we have a '%', we skip the two follow characters. */ + if (c == '%') skip = 2; + + if (!skip && needs_escape((unsigned int) c)) { *dest++ = '%'; *dest++ = INT_TO_HEX((c >> 4) & 0xf); *dest++ = INT_TO_HEX(c & 0xf); debian/patches/config.diff0000644000000000000000000000102212164352020012702 0ustar Index: boa-0.94.14rc21/examples/boa.conf =================================================================== --- boa-0.94.14rc21.orig/examples/boa.conf 2007-08-08 20:00:58.000000000 -0400 +++ boa-0.94.14rc21/examples/boa.conf 2007-08-08 20:01:15.000000000 -0400 @@ -232,7 +232,7 @@ # Aliases: Aliases one path to another. # Example: Alias /path1/bar /path2/foo -Alias /doc /usr/doc +Alias /doc /usr/share/doc # ScriptAlias: Maps a virtual path to a directory for serving scripts # Example: ScriptAlias /htbin/ /www/htbin/ debian/patches/Makefile.in.diff0000644000000000000000000000074212164352020013567 0ustar Index: boa-0.94.14rc21/Makefile.in =================================================================== --- boa-0.94.14rc21.orig/Makefile.in 2007-08-08 20:04:19.000000000 -0400 +++ boa-0.94.14rc21/Makefile.in 2007-08-08 20:04:35.000000000 -0400 @@ -20,7 +20,7 @@ mrclean: clean -(cd src && $(MAKE) $(MFLAGS) mrclean) - -(cd docs && $(MAKE)$(MFLAGS) mrclean) + -(cd docs && $(MAKE) $(MFLAGS) mrclean) rm -f config.status config.cache config.h config.log rm -f Makefile *~ debian/patches/allow_8bit.diff0000644000000000000000000000121012164352020013500 0ustar Index: boa-0.94.14rc21/src/util.c =================================================================== --- boa-0.94.14rc21.orig/src/util.c 2007-08-08 20:05:06.000000000 -0400 +++ boa-0.94.14rc21/src/util.c 2007-08-08 20:05:14.000000000 -0400 @@ -410,11 +410,6 @@ uri_old++; if ((c = *uri_old++) && (d = *uri_old++)) { *uri = HEX_TO_DECIMAL(c, d); - if (*uri < 32 || *uri > 126) { - /* control chars in URI */ - *uri = '\0'; - return 0; - } } else { *uri = '\0'; return 0; debian/patches/lfs_support.diff0000644000000000000000000004063612164352020014033 0ustar Index: boa-0.94.14rc21/src/boa.h =================================================================== --- boa-0.94.14rc21.orig/src/boa.h 2007-11-03 00:51:46.000000000 -0400 +++ boa-0.94.14rc21/src/boa.h 2007-11-03 01:05:20.000000000 -0400 @@ -25,7 +25,9 @@ #ifndef _BOA_H #define _BOA_H +/* Important, include before anything else */ #include "config.h" + #include #include /* malloc, free, etc. */ #include /* stdin, stdout, stderr */ @@ -165,7 +167,7 @@ void clean_pathname(char *pathname); char *get_commonlog_time(void); void rfc822_time_buf(char *buf, time_t s); -char *simple_itoa(unsigned int i); +char *simple_itoa(uint64_t i); int boa_atoi(const char *s); int month2int(const char *month); int modified_since(time_t * mtime, const char *if_modified_since); Index: boa-0.94.14rc21/src/buffer.c =================================================================== --- boa-0.94.14rc21.orig/src/buffer.c 2007-11-03 00:51:46.000000000 -0400 +++ boa-0.94.14rc21/src/buffer.c 2007-11-03 01:05:20.000000000 -0400 @@ -212,7 +212,7 @@ return -2; if (bytes_to_write) { - int bytes_written; + off_t bytes_written; bytes_written = write(req->fd, req->buffer + req->buffer_start, bytes_to_write); Index: boa-0.94.14rc21/src/config.h.in =================================================================== --- boa-0.94.14rc21.orig/src/config.h.in 2007-11-03 00:51:46.000000000 -0400 +++ boa-0.94.14rc21/src/config.h.in 2007-11-03 01:08:36.000000000 -0400 @@ -205,3 +205,16 @@ /* Define to `int' if doesn't define. */ #undef uid_t + +/* Those enable the LFS ready structures in the system headers */ +#define _FILE_OFFSET_BITS 64 /* glibc style */ +#define _LARGEFILE_SOURCE 1 /* To make ftello() visible (HP-UX 10.20). */ +#define _LARGE_FILES 1 /* Large file defined on AIX-style hosts. */ + +#define _LARGEFILE64_SOURCE /* tell kernel headers to provide the O_LARGEFILE value */ + +#if __WORDSIZE == 64 +#define PRINTF_OFF_T_ARG "%ld" +#elif __WORDSIZE == 32 +#define PRINTF_OFF_T_ARG "%lld" +#endif Index: boa-0.94.14rc21/src/get.c =================================================================== --- boa-0.94.14rc21.orig/src/get.c 2007-11-03 00:51:46.000000000 -0400 +++ boa-0.94.14rc21/src/get.c 2007-11-03 01:08:20.000000000 -0400 @@ -25,6 +25,10 @@ #include "boa.h" #include "access.h" +#include +#include +#include + #define STR(s) __STR(s) #define __STR(s) #s @@ -52,9 +56,9 @@ { int data_fd, saved_errno; struct stat statbuf; - volatile unsigned int bytes_free; + volatile off_t bytes_free; - data_fd = open(req->pathname, O_RDONLY); + data_fd = open(req->pathname, O_RDONLY|O_LARGEFILE); saved_errno = errno; /* might not get used */ #ifdef GUNZIP @@ -76,7 +80,7 @@ memcpy(gzip_pathname, req->pathname, len); memcpy(gzip_pathname + len, ".gz", 3); gzip_pathname[len + 3] = '\0'; - data_fd = open(gzip_pathname, O_RDONLY); + data_fd = open(gzip_pathname, O_RDONLY|O_LARGEFILE); if (data_fd != -1) { close(data_fd); @@ -430,8 +434,8 @@ int process_get(request * req) { - int bytes_written; - volatile unsigned int bytes_to_write; + off_t bytes_written; + volatile off_t bytes_to_write; if (req->method == M_HEAD) { return complete_response(req); @@ -531,7 +535,7 @@ memcpy(pathname_with_index, req->pathname, l1); /* doesn't copy NUL */ memcpy(pathname_with_index + l1, directory_index, l2 + 1); /* does */ - data_fd = open(pathname_with_index, O_RDONLY); + data_fd = open(pathname_with_index, O_RDONLY|O_LARGEFILE); if (data_fd != -1) { /* user's index file */ /* We have to assume that directory_index will fit, because @@ -555,7 +559,7 @@ * try index.html.gz */ strcat(pathname_with_index, ".gz"); - data_fd = open(pathname_with_index, O_RDONLY); + data_fd = open(pathname_with_index, O_RDONLY|O_LARGEFILE); if (data_fd != -1) { /* user's index file */ close(data_fd); @@ -624,9 +628,9 @@ * include the NUL when calculating if the size is enough */ snprintf(pathname_with_index, sizeof(pathname_with_index), - "%s/dir.%d.%ld", cachedir, + "%s/dir.%d." PRINTF_OFF_T_ARG, cachedir, (int) statbuf->st_dev, statbuf->st_ino); - data_fd = open(pathname_with_index, O_RDONLY); + data_fd = open(pathname_with_index, O_RDONLY|O_LARGEFILE); if (data_fd != -1) { /* index cache */ @@ -642,7 +646,7 @@ if (index_directory(req, pathname_with_index) == -1) return -1; - data_fd = open(pathname_with_index, O_RDONLY); /* Last chance */ + data_fd = open(pathname_with_index, O_RDONLY|O_LARGEFILE); /* Last chance */ if (data_fd != -1) { strcpy(req->request_uri, directory_index); /* for mimetype */ fstat(data_fd, statbuf); @@ -671,7 +675,7 @@ DIR *request_dir; FILE *fdstream; struct dirent *dirbuf; - int bytes = 0; + off_t bytes = 0; char *escname = NULL; if (chdir(req->pathname) == -1) { Index: boa-0.94.14rc21/src/globals.h =================================================================== --- boa-0.94.14rc21.orig/src/globals.h 2007-11-03 00:51:46.000000000 -0400 +++ boa-0.94.14rc21/src/globals.h 2007-11-03 01:05:20.000000000 -0400 @@ -130,9 +130,9 @@ int numranges; int data_fd; /* fd of data */ - unsigned long filesize; /* filesize */ - unsigned long filepos; /* position in file */ - unsigned long bytes_written; /* total bytes written (sans header) */ + off_t filesize; /* filesize */ + off_t filepos; /* position in file */ + size_t bytes_written; /* total bytes written (sans header) */ char *data_mem; /* mmapped/malloced char array */ char *logline; /* line to log file */ Index: boa-0.94.14rc21/src/index_dir.c =================================================================== --- boa-0.94.14rc21.orig/src/index_dir.c 2007-11-03 00:51:46.000000000 -0400 +++ boa-0.94.14rc21/src/index_dir.c 2007-11-03 01:08:11.000000000 -0400 @@ -19,6 +19,7 @@ /* $Id: index_dir.c,v 1.32.2.7 2005/02/22 03:00:24 jnelson Exp $*/ +#include "config.h" #include #include #include /* for PATH_MAX */ @@ -266,10 +267,12 @@ printf("" "%s/" "%s" - "%ld bytes" + "" + PRINTF_OFF_T_ARG + " bytes" "\n", escaped_filename, html_filename, - ctime(&statbuf.st_mtime), (long) statbuf.st_size); + ctime(&statbuf.st_mtime), (off_t) statbuf.st_size); } printf @@ -312,10 +315,12 @@ "%s " "(.gz)" "%s" - "%ld bytes" + "" + PRINTF_OFF_T_ARG + "bytes" "\n", escaped_filename, html_filename, http_filename, - ctime(&statbuf.st_mtime), (long) statbuf.st_size); + ctime(&statbuf.st_mtime), (off_t) statbuf.st_size); } else { #endif if (html_escape_string(http_filename, escaped_filename, @@ -326,10 +331,12 @@ printf("" "%s" "%s" - "%ld bytes" + "" + PRINTF_OFF_T_ARG + "bytes" "\n", escaped_filename, html_filename, - ctime(&statbuf.st_mtime), (long) statbuf.st_size); + ctime(&statbuf.st_mtime), (off_t) statbuf.st_size); #ifdef GUNZIP } #endif Index: boa-0.94.14rc21/src/log.c =================================================================== --- boa-0.94.14rc21.orig/src/log.c 2007-11-03 00:51:46.000000000 -0400 +++ boa-0.94.14rc21/src/log.c 2007-11-03 01:05:20.000000000 -0400 @@ -146,7 +146,7 @@ } else if (vhost_root) { printf("%s ", (req->host ? req->host : "(null)")); } - printf("%s - - %s\"%s\" %d %ld \"%s\" \"%s\"\n", + printf("%s - - %s\"%s\" %d %zu \"%s\" \"%s\"\n", req->remote_ip_addr, get_commonlog_time(), req->logline ? req->logline : "-", Index: boa-0.94.14rc21/src/mmap_cache.c =================================================================== --- boa-0.94.14rc21.orig/src/mmap_cache.c 2007-11-03 00:51:46.000000000 -0400 +++ boa-0.94.14rc21/src/mmap_cache.c 2007-11-03 01:05:20.000000000 -0400 @@ -140,7 +140,7 @@ int data_fd; struct stat statbuf; struct mmap_entry *e; - data_fd = open(fname, O_RDONLY); + data_fd = open(fname, O_RDONLY|O_LARGEFILE); if (data_fd == -1) { perror(fname); return NULL; Index: boa-0.94.14rc21/src/pipe.c =================================================================== --- boa-0.94.14rc21.orig/src/pipe.c 2007-11-03 01:05:20.000000000 -0400 +++ boa-0.94.14rc21/src/pipe.c 2007-11-03 01:05:20.000000000 -0400 @@ -37,8 +37,8 @@ int read_from_pipe(request * req) { - int bytes_read; /* signed */ - unsigned int bytes_to_read; /* unsigned */ + off_t bytes_read; /* signed */ + off_t bytes_to_read; /* unsigned */ /* XXX really? */ bytes_to_read = BUFFER_SIZE - (req->header_end - req->buffer - 1); @@ -128,8 +128,8 @@ int write_from_pipe(request * req) { - int bytes_written; - size_t bytes_to_write = req->header_end - req->header_line; + off_t bytes_written; + off_t bytes_to_write = req->header_end - req->header_line; if (bytes_to_write == 0) { if (req->cgi_status == CGI_DONE) @@ -170,9 +170,9 @@ #ifdef HAVE_SENDFILE int io_shuffle_sendfile(request * req) { - int bytes_written; - size_t bytes_to_write; off_t sendfile_offset; + off_t bytes_written; + off_t bytes_to_write; if (req->method == M_HEAD) { return complete_response(req); @@ -266,8 +266,8 @@ int io_shuffle(request * req) { - int bytes_to_read; - int bytes_written, bytes_to_write; + off_t bytes_to_read; + off_t bytes_written, bytes_to_write; if (req->method == M_HEAD) { return complete_response(req); @@ -287,7 +287,7 @@ bytes_to_read = bytes_to_write; if (bytes_to_read > 0 && req->data_fd) { - int bytes_read; + off_t bytes_read; off_t temp; temp = lseek(req->data_fd, req->ranges->start, SEEK_SET); Index: boa-0.94.14rc21/src/range.c =================================================================== --- boa-0.94.14rc21.orig/src/range.c 2007-11-03 00:51:46.000000000 -0400 +++ boa-0.94.14rc21/src/range.c 2007-11-03 01:05:20.000000000 -0400 @@ -147,7 +147,7 @@ * 5) start > stop && start != -1 :: invalid */ DEBUG(DEBUG_RANGE) { - fprintf(stderr, "range.c: ranges_fixup: %lu-%lu\n", r->start, r->stop); + fprintf(stderr, "range.c: ranges_fixup: %lu - %lu\n", r->start, r->stop); } /* no stop range specified or stop is too big. Index: boa-0.94.14rc21/src/read.c =================================================================== --- boa-0.94.14rc21.orig/src/read.c 2007-11-03 00:51:46.000000000 -0400 +++ boa-0.94.14rc21/src/read.c 2007-11-03 01:05:20.000000000 -0400 @@ -38,7 +38,7 @@ int read_header(request * req) { - int bytes; + off_t bytes; char *check, *buffer; unsigned char uc; @@ -179,7 +179,7 @@ */ if (req->content_length) { - int content_length; + off_t content_length; content_length = boa_atoi(req->content_length); /* Is a content-length of 0 legal? */ @@ -195,7 +195,7 @@ && content_length > single_post_limit) { log_error_doc(req); fprintf(stderr, - "Content-Length [%d] > SinglePostLimit [%d] on POST!\n", + "Content-Length [" PRINTF_OFF_T_ARG "] > SinglePostLimit [%d] on POST!\n", content_length, single_post_limit); send_r_bad_request(req); return 0; @@ -224,7 +224,7 @@ if (req->status < BODY_READ) { /* only reached if request is split across more than one packet */ - unsigned int buf_bytes_left; + off_t buf_bytes_left; buf_bytes_left = CLIENT_STREAM_SIZE - req->client_stream_pos; if (buf_bytes_left < 1 || buf_bytes_left > CLIENT_STREAM_SIZE) { @@ -273,7 +273,7 @@ DEBUG(DEBUG_HEADER_READ) { log_error_time(); req->client_stream[req->client_stream_pos] = '\0'; - fprintf(stderr, "%s:%d -- We read %d bytes: \"%s\"\n", + fprintf(stderr, "%s:%d -- We read " PRINTF_OFF_T_ARG " bytes: \"%s\"\n", __FILE__, __LINE__, bytes, #ifdef VERY_FASCIST_LOGGING2 req->client_stream + req->client_stream_pos - bytes @@ -309,8 +309,8 @@ int read_body(request * req) { - int bytes_read; - unsigned int bytes_to_read, bytes_free; + off_t bytes_read; + off_t bytes_to_read, bytes_free; bytes_free = BUFFER_SIZE - (req->header_end - req->header_line); bytes_to_read = req->filesize - req->filepos; @@ -367,8 +367,8 @@ int write_body(request * req) { - int bytes_written; - unsigned int bytes_to_write = req->header_end - req->header_line; + off_t bytes_written; + off_t bytes_to_write = req->header_end - req->header_line; if (req->filepos + bytes_to_write > req->filesize) bytes_to_write = req->filesize - req->filepos; @@ -402,7 +402,7 @@ } DEBUG(DEBUG_HEADER_READ) { log_error_time(); - fprintf(stderr, "%s:%d - wrote %d bytes of CGI body. %ld of %ld\n", + fprintf(stderr, "%s:%d - wrote " PRINTF_OFF_T_ARG " bytes of CGI body. " PRINTF_OFF_T_ARG " of " PRINTF_OFF_T_ARG "\n", __FILE__, __LINE__, bytes_written, req->filepos, req->filesize); } @@ -417,7 +417,7 @@ req->header_line[bytes_written] = '\0'; fprintf(stderr, - "%s:%d - wrote %d bytes (%s). %lu of %lu\n", + "%s:%d - wrote " PRINTF_OFF_T_ARG " bytes (%s). " PRINTF_OFF_T_ARG " of " PRINTF_OFF_T_ARG "\n", __FILE__, __LINE__, bytes_written, req->header_line, req->filepos, req->filesize); req->header_line[bytes_written] = c; Index: boa-0.94.14rc21/src/request.c =================================================================== --- boa-0.94.14rc21.orig/src/request.c 2007-11-03 00:51:46.000000000 -0400 +++ boa-0.94.14rc21/src/request.c 2007-11-03 01:05:20.000000000 -0400 @@ -259,14 +259,14 @@ static void sanitize_request(request * req, int new_req) { - static unsigned int bytes_to_zero = offsetof(request, fd); + static off_t bytes_to_zero = offsetof(request, fd); if (new_req) { req->kacount = ka_max; req->time_last = current_time; req->client_stream_pos = 0; } else { - unsigned int bytes_to_move = + off_t bytes_to_move = req->client_stream_pos - req->parse_pos; if (bytes_to_move) { @@ -282,7 +282,7 @@ DEBUG(DEBUG_REQUEST) { log_error_time(); - fprintf(stderr, "req: %p, offset: %u\n", (void *) req, + fprintf(stderr, "req: %p, offset: " PRINTF_OFF_T_ARG "\n", (void *) req, bytes_to_zero); } Index: boa-0.94.14rc21/src/util.c =================================================================== --- boa-0.94.14rc21.orig/src/util.c 2007-11-03 01:05:20.000000000 -0400 +++ boa-0.94.14rc21/src/util.c 2007-11-03 01:05:20.000000000 -0400 @@ -497,7 +497,7 @@ memcpy(p, day_tab + t->tm_wday * 4, 4); } -char *simple_itoa(unsigned int i) +char *simple_itoa(uint64_t i) { /* 21 digits plus null terminator, good for 64-bit or smaller ints * for bigger ints, use a bigger buffer! debian/patches/sendfile_ENOSYS.diff0000644000000000000000000000125712164352020014340 0ustar Index: boa-0.94.14rc21/src/pipe.c =================================================================== --- boa-0.94.14rc21.orig/src/pipe.c 2007-08-08 20:03:29.000000000 -0400 +++ boa-0.94.14rc21/src/pipe.c 2007-08-08 20:03:45.000000000 -0400 @@ -215,7 +215,9 @@ } req->ranges->start = sendfile_offset; if (bytes_written < 0) { - if (errno == EWOULDBLOCK || errno == EAGAIN) { + if (errno == ENOSYS) { + return io_shuffle(req); + } else if (errno == EWOULDBLOCK || errno == EAGAIN) { return -1; /* request blocked at the pipe level, but keep going */ } else if (errno == EINTR) { goto retrysendfile; debian/clean0000644000000000000000000000006712164352020010171 0ustar docs/boa.info docs/boa.html docs/index.html config.log debian/preinst0000644000000000000000000000035112164352020010567 0ustar #! /bin/sh set -e if [ -x "/etc/init.d/boa" ]; then if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then invoke-rc.d boa stop || exit $? else /etc/init.d/boa stop || exit $? fi fi #DEBHELPER# debian/postrm0000644000000000000000000000167112164352020010435 0ustar #! /bin/sh # postrm script for #PACKAGE# # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `remove' # * `purge' # * `upgrade' # * `failed-upgrade' # * `abort-install' # * `abort-install' # * `abort-upgrade' # * `disappear' overwrit>r> # for details, see /usr/share/doc/packaging-manual/ case "$1" in purge) rm -rf /var/log/boa rm -rf /etc/boa ;; remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) ;; *) echo "postrm called with unknown argument \`$1'" >&2 exit 0 esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# debian/compat0000644000000000000000000000000212164352020010357 0ustar 9 debian/watch0000644000000000000000000000005712164352020010214 0ustar version=3 http://www.boa.org/ boa-(.*).tar.gz debian/changelog0000644000000000000000000006542412164361303011052 0ustar boa (0.94.14rc21-5) unstable; urgency=low * QA upload * Revamp init.d script (Likely closes: #315443) + SIGHUP and signal 1 are actually same + Do stop and start on restart and force-reload (LP: #46908) + Fix help text + Remove init.d template script help text + Support status option (fixes lintian warning init.d-script-does-not-implement-optional-option) * Rename debian/boa.{examples,init,logrotate} to debian/{examples,init,logrotate} for consistency * Remove build-dependencies on texi2html and texlive-base-bin (not necessary, fixes lintian warning build-depends-on-obsolete-package) -- Axel Beckert Mon, 01 Jul 2013 21:16:36 +0200 boa (0.94.14rc21-4) unstable; urgency=low * QA upload * Set maintainer to Debian QA Group (c.f. #711481) * Switch to source format "3.0 (quilt)" + Drop quilt traces from debian/rules and build-dependency on quilt * Fix CVE-2009-4496 (Closes: #578035; missing sanitization of non-printable characters in boa's error log) Thanks to Devin Carraway for the patch. * Bump debhelper compatibility to 9 + Update versioned debhelper build-dependency * Use dh_autotools-dev_{update,restore}config (Closes: #537754) + Build-depend on autotools-dev * Revamp debian/rules: + Use dh_auto_{configure,build,clean} + Use dh_prep instead of dh_clean -k + No more manually clean stamp files, done by dh_clean now + Use debian/{docs,manpages,info} instead of dh_install{docs,man,info} parameters + Remove redundant dh_installchangelogs parameter + Use dh_install and debian/install instead of calling install + Use debian/clean instead of calling rm + Don't ignore "make clean" failures + Finally switch to a dh7 style debian/rules file * Fix the following lintian warnings: + maintainer-script-ignores-errors + no-homepage-field + readme-debian-mentions-usr-doc + copyright-refers-to-versionless-license-file + debian-watch-file-is-missing + copyright-without-copyright-notice + init.d-script-does-not-implement-required-option + init.d-script-missing-lsb-description + package-contains-empty-directory (2x) * Change section to httpd * Bump Standards-Version to 3.9.4 (no further changes) * Add Vcs-* headers * Enable --enable-access-control (Closes: #509121) * Apply wrap-and-sort * Remove trailing blank line in debian/boa.conf * Remove config.log in clean target -- Axel Beckert Sun, 16 Jun 2013 04:13:51 +0200 boa (0.94.14rc21-3.1) unstable; urgency=low * Non-maintainer upload. * debian/control - Replace non-existing build dependency (Closes: #562362) -- Ricardo Mones Sun, 24 Jan 2010 13:22:38 +0100 boa (0.94.14rc21-3) unstable; urgency=low * Access log garbled (Closes: #449074) * Fixed the lfs-support patch, which produced incorrect logfiles on 32 bits machines, and in the same blow removed all build-time warnings which were probably not as harmless as I initially thought. * Removed port detection routines. (Closes: #458855) * dpkg-www: Invalid characters in input. (Closes: #438707) * Removed debconf template and its translations. This package no longer needs debconf. -- Francois-Denis Gonthier Thu, 07 Feb 2008 23:15:51 -0500 boa (0.94.14rc21-2) unstable; urgency=low * New maintainer (Closes: #406354) * The patch for correct LFS support by Eduard Bloch has been applied. (Closes: #313020) * Switched to quilt for patch management. -- Francois-Denis Gonthier Fri, 10 Aug 2007 21:43:54 -0400 boa (0.94.14rc21-1) unstable; urgency=low * QA upload. * Set maintainer to QA Group; Orphaned: #406354 * Conforms with latest Standards Version 3.7.2 -- Michael Ablassmeier Tue, 03 Apr 2007 09:41:41 +0200 boa (0.94.14rc21-0.2) unstable; urgency=low * Non-maintainer upload * Debconf translation updates: - Italian updated; thanks to Luca Monducci. Closes: #400818. - German updated; thanks to Holger Wansing. Closes: #401181. - Dutch updated; thanks to Frans Pop. Closes: #405654. - Swedish updated; thanks to Daniel Nylander. Closes: #405687. - Czech updated; thanks to Miroslav Kure. Closes: #405817. - Spanish updated; thanks to Javier Fernández-Sanguino Peña. Closes: #403422. - Portuguese updated; thanks to Rui Branco. Closes: #406014. -- Frans Pop Wed, 10 Jan 2007 14:09:44 +0100 boa (0.94.14rc21-0.1) unstable; urgency=low * Non-maintainer upload. * New upstream clean-up release. This release fix: - set valid SERVER_NAME & SERVER_PORT (closes: #365763) * Make package non-native (closes: #365760). * Manage debian/patches with dpatch: - 1_config: move /usr/doc to /usr/share/doc - 2_sendfile_ENOSYS by Anthony Towns: (closes:#330871) revert to standard I/O if sendfile returns ENOSYS. This allows boa to work on kernels that do not support sendfile64. - 4_Makefile.in: fix missing space typo in Makefile.in. - 5_allow_8bit by Sakari Ailus: (closes: #315445) allow %xx in URIs to encode 8bit chars. * debian/rules: - adjust for dpatch in _preapplied_ mode. - switch to dh_installman - remove duplicate call to dh_installdebconf. * debian/config: - Hide dpkg message when installing (closes: #357470, #328997). NMUer opinion: the real fix is to not use dpkg in the first place. -- Bill Allombert Sun, 26 Nov 2006 23:15:32 +0100 boa (0.94.14rc20-1.4) unstable; urgency=low * Non-maintainer upload to fix longstanding l10n issues * Debconf translation update: - Portuguese added. Closes: #381352 - Italian added. Sent durign the call for updates of the NMU campaign. - Basque added. Sent durign the call for updates of the NMU campaign. - Russian added. Sent durign the call for updates of the NMU campaign. - Vietnamese updated. Sent durign the call for updates of the NMU campaign. - German updated. Sent durign the call for updates of the NMU campaign. - Brazilian Portuguese added. Sent durign the call for updates of the NMU campaign. * Lintian fixes: - use invoke-rc.d to call the init script in debian/config debian/preinst and debian/postinst. Closes: #351192, #357470 - Make debconf templates follow the Developer's Reference recommendations - Turn note templates into error type which they are - Add basic LSB headers to the init script * Correct the abuse of capitals in the package description * Correct one typography error in the package description * Replace the debconf dependency by ${misc:Depends} * Use default values for the init script start order. Closes: #312719 -- Christian Perrier Sat, 18 Nov 2006 12:13:55 +0100 boa (0.94.14rc20-1.3) unstable; urgency=low * Non Maintainer Upload * Add alternative depends for debconf-2.0 (closes: #331764). * Provide httpd-cgi (closes: #304306). * Update debhelper compatibility to level 5. * Fix minor maintainer script errors. * Add new translations: - French by Yves Rutschle (closes: #297021) - Czech by Miroslav Kure (closes: #300365) - Dutch by Frans Pop (closes: #309107) - Vietnamese by Clytie Siddall (closes: #313168) - Swedish by Daniel Nylander (closes: #336677) - Spanish by César Gómez Martín (closes: #333892) -- Frans Pop Sat, 24 Dec 2005 23:23:52 +0100 boa (0.94.14rc20-1.2) unstable; urgency=low * Applied patch from Frans Pop that fix large file issue, closes: #296370. -- Ola Lundqvist Sat, 16 Apr 2005 20:57:57 +0200 boa (0.94.14rc20-1.1) unstable; urgency=low * NMU: Apply patch from Frans Pop to fix doc target, closes: #296440. -- Ola Lundqvist Fri, 15 Apr 2005 18:29:51 +0200 boa (0.94.14rc20-1) unstable; urgency=high * 0.94.14 version into unstable for reaching sarge before release. * This upload also fix a lot of bugs. -- Teófilo Ruiz Suárez Sun, 13 Feb 2005 11:12:36 +0100 boa (0.94.13+0.94.14rc20-2) experimental; urgency=low * Fix rules so Makefiles are not used unless they exist (Closes: #271927) + Thanks to Javier Fernández-Sanguino Peña (jfs@computer.org) for the patch -- Teófilo Ruiz Suárez Sat, 6 Nov 2004 17:07:39 +0100 boa (0.94.13+0.94.14rc20-1) experimental; urgency=low * Development version upload * Added po-debconf support (closes: #208445) -- Teófilo Ruiz Suárez Mon, 9 Aug 2004 15:55:05 +0100 boa (0.94.13-8) unstable; urgency=low * Added debconf as a Dependency and not as a build-dep (closes: #263355) -- Teófilo Ruiz Suárez Wed, 4 Aug 2004 10:53:05 +0200 boa (0.94.13-7) unstable; urgency=low * The 'Sorry for the buggy upload' upload * Just fixed IPv4 support unapplying fabbione's patch (closes: #261956) * Added debconf templates taken from thttpd. They ask for an alternate port if port 80 is in use (closes: #208445) -- Teófilo Ruiz Suárez Fri, 30 Jul 2004 18:00:25 +0200 boa (0.94.13-6) unstable; urgency=low * The 'Sorry for the delay' upload * IPv6 enabled, thanks to Fabio M. Di Nitto (closes: #175165) * Large file support enabled, thanks to Eduard Bloch (closes: #154939) * init script is now policy compliant (closes: #220285) * Postinst didn't check if boa was running before, now it stop itself in preinst (closes: #213918) -- Teófilo Ruiz Suárez Mon, 26 Jul 2004 16:25:00 +0200 boa (0.94.13-5) unstable; urgency=low * src/compat.h:120 fixed some bugs with GCC 3.2 (closes: #195800) -- Teófilo Ruiz Suárez Sun, 8 Jun 2003 15:29:44 +0200 boa (0.94.13-4) unstable; urgency=low * New maintainer. * src/boa.c: Don't die if getpwuid fails (closes: #175151). * debian/rules: Don't dh_testroot in clean (closes: #175152). -- Teófilo Ruiz Suárez Thu, 17 Apr 2003 01:07:33 +0200 boa (0.94.13-3) unstable; urgency=low * New maintainer (closes: #151847) -- Steve Kemp Mon, 3 Feb 2003 09:57:30 +0000 boa (0.94.13-2) unstable; urgency=low * Debian QA upload, during Sarge's BSP #2. * debian/boa.init: install a new init file based on one by Bill Allombert which makes "restart" not fail if boa wasn't previously running (closes: #160517). * debian/rules: + use dh_installlogrotate to install the logrotate stuff. + remove arguments to dh_installexamples. + disable DH_VERBOSE. + remove docs/boa.info and docs/boa.html on clean (bashisms in Makefile). * debian/dirs: add usr/lib/cgi-lib. * debian/boa.examples: added. * debian/boa.conf: add "ScriptAlias /cgi-lib/ /usr/lib/cgi-bin/" for the upcoming "cgi-bin" policy (closes: #167511). * src/boa_grammar.y: patch from H. S. Teoh; adds a space after "$Id: $" so m4 doesn't try to expand "$*". -- Jordi Mallach Sun, 24 Nov 2002 19:23:35 +0100 boa (0.94.13-1) unstable; urgency=low * Debian QA upload. * New upstream version. -- Peter Palfrader Sun, 11 Aug 2002 06:02:04 +0200 boa (0.94.12-1) unstable; urgency=low * Debian QA upload. * Boa has been orphaned (Debian Bug #151847). Thanks to Jonathon D Nelson for all the hard work he put into Boa and its Debian package. * Maintainer changed to Debian QA Group . * New upstream release: All changes from the privious Debian diff to code seems to have propagated into the upstream tarball. * Removed emacs stuff from debian/changelog. * Upstream changelog was moved from src/ to . -> Adapted in debian/rules. -- Peter Palfrader Thu, 4 Jul 2002 00:42:27 +0200 boa (0.94.11-3) unstable; urgency=medium * Fix bug in hash routines (Closes: #134012) -- Jonathon D Nelson Fri, 15 Feb 2002 21:03:23 -0600 boa (0.94.11-2) unstable; urgency=low * Fix bug in src/Makefile.in - (Closes: #118934) -- Jonathon D Nelson Thu, 22 Nov 2001 10:22:19 -0600 boa (0.94.11-1) unstable; urgency=low * New upstream version -- Jonathon D Nelson Thu, 1 Nov 2001 22:37:50 -0600 boa (0.94.10.1-1) unstable; urgency=low * New upsteam release * Forgot to update version in source -- Jonathon D Nelson Tue, 25 Sep 2001 23:05:25 -0500 boa (0.94.10-1) unstable testing; urgency=medium * New upstream version * Fixes escaping rules * Fixes segfault when directory_index is undefined and directory needs to be generated * adds dummy signal handlers for SIGUSR1 and SIGUSR2 * Update documentation regarding mime.types (Closes: #69991) * Make sure documentation builds (Closes: #110818) -- Jonathon D Nelson Mon, 24 Sep 2001 22:21:37 -0500 boa (0.94.9-2) unstable testing; urgency=low * upload to testing as well -- Jonathon D Nelson Mon, 13 Aug 2001 12:31:32 -0500 boa (0.94.9-1) unstable; urgency=low * support subdirectories in ScriptAlias directories (Closes: #90601) * make sure to memcpy local_ip_addr in keepalive for virtualhost (Closes: #100102) * add some more missing build deps (Closes: #100803) * Don't accept fd over FD_SETSIZE in request.c:get_request * use backported documentation from 0.95 * make sure POST fd gets closed even on client cancel * use backported index_dir.c from 0.95 * support subdirectories in ScriptAlias directories * add SinglePostLimit (int, in Kilobytes) to config system * check for ENOSPC on body write * use environment variable TMP (or "/tmp" if not available), and chdir there when boa exits. * add 1-time-only hack to make a 32kB read at the end of a request on POST or PUT * close unused file descriptors (/dev/null in boa.c, and the unused part of the pipes call in cgi.c) * made Makefile.in VPATH happy * Fixed problem in HTTP version parsing -- HTTP/{0.9,1.0,1.1} are all that are acceptable. -- Jonathon D Nelson Mon, 25 Jun 2001 22:32:49 -0500 boa (0.94.8.3-6) unstable; urgency=low * Add missing boa.info file -- Jonathon D Nelson Tue, 20 Mar 2001 19:37:33 -0600 boa (0.94.8.3-5) unstable; urgency=low * Backport docs from 0.95 (Closes: #90493) -- Jonathon D Nelson Tue, 20 Mar 2001 19:04:10 -0600 boa (0.94.8.3-4) unstable; urgency=low * Backport of index_dir.c from 0.95 -- Jonathon D Nelson Sat, 10 Mar 2001 16:36:36 -0600 boa (0.94.8.3-3) unstable; urgency=low * Make /etc/logrotate.d/boa a conffile, and edit README.debian (Closes: #84092) -- Jonathon D Nelson Wed, 31 Jan 2001 18:21:11 -0600 boa (0.94.8.3-2) unstable; urgency=low * Forcibly removes /var/log/boa and /etc/boa on purges (Closes: #69908) * Add Build-Depends to control file. (Closes: #70204) * Boa continues to require logrotate in the standard configuration (Closes: #76190) * Boa creates /usr/lib/cgi-bin upon installation if it doesn't exist. (Closes: #69127) * Add 'notifempty' keyword to logrotate configuration to avoid rotating empty logfiles. (Closes: #74997) * Default boa.conf now uses /usr/share/doc as /doc alias (Closes: #66490) -- Jonathon D Nelson Sat, 27 Jan 2001 15:12:25 -0600 boa (0.94.8.3-1) unstable stable; urgency=medium * Move unescape_uri *before* clean_pathname to prevent encoding of / and .. in pathname * wrap execution of GUNZIP in cgi.c with #ifdef GUNZIP * stop parsing when fragment found in URL ('#') -- Jonathon D Nelson Mon, 2 Oct 2000 20:53:59 -0500 boa (0.94.8.2-2) unstable frozen; urgency=low * Add '/usr/lib/cgi-bin' to debian/dirs. Closes #69127. * Change /doc Alias from /usr/doc to /usr/share/doc -- Jonathon D Nelson Sat, 19 Aug 2000 19:52:55 -0500 boa (0.94.8.2-1) unstable frozen; urgency=low * Move 'old' /etc/cron.daily/boa to /etc/cron.daily/boa.obsolete if modified, otherwise remove (closes #64813) * 1-line fix to close bug #64812 -- Jonathon D Nelson Fri, 4 Aug 2000 18:35:33 -0500 boa (0.94.8.1-1) unstable frozen; urgency=low * Include 1-line upstream fix for bad umask call (security issue) -- Jonathon D Nelson Sun, 28 May 2000 10:28:22 -0500 boa (0.94.8-1) unstable frozen; urgency=low * Fix major thinko in temp file permissions * unlink temporary file immediately following creation * implement maximum # of active connections at 10 less than RLIMIT_NOFILE to avoid or eliminate crashes resulting from running out of file descriptors * Fix thinko in POST * Change /doc alias *back* to /usr/doc as requested -- Jonathon D Nelson Thu, 25 May 2000 21:25:24 -0500 boa (0.94.7-2) unstable frozen; urgency=low * /etc/logrotate.d/boa no longer a conffile * /etc/logrotate.d/boa now also contains 'missingok' (closes #63905) -- Jonathon D Nelson Wed, 10 May 2000 21:13:54 -0500 boa (0.94.7-1) unstable frozen; urgency=low * Upstream bugfixes. No new functionality. Now uses logrotate. * /usr/doc -> /usr/share/doc alias change * STDIN and STDOUT are now tied to /dev/null (closes #61093 and #62660) * some minor (non-function related) changes to /etc/init.d/boa * now uses logrotate for log file rotation * some very minor upstream bug fixes, none of which are Linux related * core dumps now located in /tmp * upon purge also removes log files (closes #24130) * sets PATH_MAX to 2048 if not defined (closes #45508) -- Jonathon D Nelson Mon, 1 May 2000 15:33:47 -0500 boa (0.94.6-1) unstable frozen; urgency=low * Removed doc++ formatting * Removed extraneous debugging statements * Fixed bug in automatic gunzip * /etc/init.d/boa changes ala Joy (Josip Rodin) * boa.sgml documentation changes, also ala Joy * Addes stubs for chroot. (*not* working yet) -- Jonathon D Nelson Sat, 19 Feb 2000 06:50:14 -0600 boa (0.94.5-1) unstable frozen; urgency=low * Fixed a buffer overflow * Fixed a buffer underflow * Formatted code for doc++ -- Jonathon D Nelson Wed, 9 Feb 2000 20:23:03 -0600 boa (0.94.4-1) unstable frozen; urgency=low * Updated Boa with respect to CERT advisory CA-2000-02 -- Jonathon D Nelson Sat, 5 Feb 2000 23:38:10 -0600 boa (0.94.3-1) unstable frozen; urgency=low * Fixed keepalive(pipeline)/error message interaction -- Jonathon D Nelson Mon, 31 Jan 2000 22:58:23 -0600 boa (0.94.2-2) unstable frozen; urgency=medium * Fixed boa cron job file * changed user.group to www-data.www-data * use customized boa.conf file -- Jonathon D Nelson Sun, 30 Jan 2000 11:27:05 -0600 boa (0.94.2-1) unstable frozen; urgency=medium * Fixed bug in 0.94.0 -- required for use with apt! -- Jonathon D Nelson Fri, 28 Jan 2000 22:42:57 -0600 boa (0.94.0-1) unstable; urgency=low * New upstream version -- Jonathon D Nelson Mon, 17 Jan 2000 14:09:16 -0600 boa (0.93.19.2-1) unstable; urgency=low * New upstream source -- Jonathon D Nelson Tue, 11 Jan 2000 20:45:21 -0600 boa (0.93.19.1-1) unstable; urgency=low * New upstream source -- Jonathon D Nelson Sat, 1 Jan 2000 11:47:24 -0600 boa (0.93.18.2-1) unstable; urgency=low * New upstream source. -- Jonathon D. Nelson Thu, 2 Dec 1999 22:04:17 -0600 boa (0.93.17.3-1) unstable; urgency=low * New upstream source * Also closes (#30603, #35594, #32419, #33521, #36307, #40879, #40953, #29664) -- Jonathon D. Nelson Sun, 12 Sep 1999 22:36:23 -0500 boa (0.93.16.1-1) unstable; urgency=low * New upstream source * Reporting that IMS bug fixed (#30603) -- Jonathon D. Nelson Fri, 25 Dec 1998 22:37:49 -0600 boa (0.93.16-5) unstable; urgency=low * Fixes CGI HEAD and fixes some problems with -4 -- Jonathon D. Nelson Thu, 24 Dec 1998 02:25:46 -0600 boa (0.93.16-4) frozen unstable; urgency=low * Yet more fixes for the upstream version. This should fix nasty logic. -- Jonathon D. Nelson Wed, 16 Dec 1998 01:28:06 -0600 boa (0.93.16-3) frozen unstable; urgency=low * Even more fixes for the upstream version. This fixes CGIs. -- Jonathon D. Nelson Tue, 15 Dec 1998 15:13:22 -0600 boa (0.93.16-2) frozen unstable; urgency=low * Minor fixes for the upstream version. -- Jonathon D. Nelson Tue, 15 Dec 1998 12:49:31 -0600 boa (0.93.16-1) unstable; urgency=low * New upstream version should fix minor bugs in internal logic -- Jonathon D. Nelson Tue, 15 Dec 1998 00:52:54 -0600 boa (0.93.15-2) frozen unstable; urgency=low * Fixes IMS bug (thanks Culus, o-o) -- Jonathon D. Nelson Sat, 12 Dec 1998 23:26:01 -0600 boa (0.93.15-1) unstable frozen; urgency=low * New upstream version * Also fixes (#22134), (#25279) -- Jonathon D. Nelson Sun, 13 Sep 1998 14:20:16 -0500 boa (0.93.14.2-2) unstable; urgency=low * Changed to debhelper -- Jonathon D. Nelson Sun, 19 Jul 1998 23:06:23 -0500 boa (0.93.14.2-1) unstable; urgency=low * Upon cgi execution the server socket is closed * Should behave better (no more zombies from cron.daily/run-parts) (#20161) -- Jonathon D. Nelson Sun, 5 Apr 1998 22:14:56 -0500 boa (0.93.14.1-1) unstable; urgency=medium * Fixed IP-based virtualhost and keepalive incompatability * Log format for IP-Based virtualhost uses combined log format now. -- Jonathon D. Nelson Fri, 20 Mar 1998 13:30:52 -0600 boa (0.93.14-3) unstable; urgency=low * Fixed /etc/init.d/boa so that force-reload tries to execute /usr/sbin/boa even if an executable of that name already exists. * Fixed /etc/cron.daily/boa to use force-reload -- Jonathon D. Nelson Mon, 9 Mar 1998 09:54:14 -0600 boa (0.93.14-2) unstable; urgency=medium * Fixed /etc/cron.daily/boa -- Jonathon D. Nelson Sun, 8 Mar 1998 01:19:47 -0600 boa (0.93.14-1) unstable; urgency=medium * New upstream version * Incorporates below fix (commonlog) * /etc/init.d/boa now supports restart and force-reload * Behaves better upon SIGTERM * /etc/init.d/boa marked as conffile (thanks, Lintian!) -- Jonathon D. Nelson Mon, 2 Mar 1998 20:02:34 -0600 boa (0.93.13-2) unstable; urgency=medium * Emergency update : commonlog time function broke -- authors notified -- Jonathon D. Nelson Mon, 2 Mar 1998 15:13:13 -0600 boa (0.93.13-1) unstable; urgency=low * New upstream version -- Jonathon D. Nelson Fri, 27 Feb 1998 18:07:02 -0600 boa (0.93.12-1) unstable; urgency=low * New upstream version * Buffers header output -- Jonathon D. Nelson Fri, 13 Feb 1998 22:34:49 -0600 boa (0.93.11-1) unstable; urgency=low * New upstream version * Adds pipelining support to existing keepalive * Ran through indent -- Jonathon D. Nelson Thu, 12 Feb 1998 02:13:11 -0600 boa (0.93.10.8-1) unstable; urgency=low * New upstream version * Fixes HTTP/1.1 browser problem * Fixes modified since problem * Fixes commonlog file format problem -- Jonathon D. Nelson Wed, 11 Feb 1998 14:37:01 -0600 boa (0.93.10.7-1) unstable; urgency=low * New upstream version -- Jonathon D. Nelson Mon, 9 Feb 1998 10:55:35 -0600 boa (0.93.10.6-2) unstable; urgency=low * Built for libc6 -- Jonathon D. Nelson Sat, 7 Feb 1998 12:23:03 -0600 boa (0.93.10.6-1) unstable; urgency=low * New version -- Jonathon D. Nelson Wed, 4 Feb 1998 10:39:42 -0600 boa (0.93.10-5) unstable; urgency=low * New upstream version -- Jonathon D. Nelson Sun, 1 Feb 1998 19:58:16 -0600 boa (0.93.10-3) unstable; urgency=low * New upstream version -- Jon Nelson Sun, 25 Jan 1998 22:59:44 -0600 boa (0.93.10-1) unstable; urgency=low * New upstream version -- Jon Nelson Sun, 25 Jan 1998 22:59:44 -0600 boa (0.93.9-1) unstable; urgency=low * New upstream version -- Jon Nelson Fri, 16 Jan 1998 14:00:01 -0600 boa (0.93.8.4-1) unstable; urgency=low * New upstream version -- Jon Nelson Thu, 11 Dec 1997 13:43:50 -0600 boa (0.93.8.3-1) unstable; urgency=low * New upstream version -- Jon Nelson Wed, 19 Nov 1997 11:39:10 -0600 boa (0.93.8.2-1) unstable; urgency=low * New upstream version -- Jon Nelson Tue, 18 Nov 1997 22:39:10 -0600 boa (0.93.8.1-2) unstable; urgency=low * Fix non cgi-bin cgi * Fix Makefile.in * Fix boa.1 -- Jon Nelson Tue, 18 Nov 1997 13:39:10 -0600 boa (0.93.8.1-1) unstable; urgency=low * Fix pid printing upon startup -- Jon Nelson Fri, 24 Oct 1997 01:19:22 -0600 boa (0.93.7-2) unstable; urgency=low * Fix to POST code and version scheme change * Fix errno problem as per Christopher Lamenter -- Jon Nelson Sat, 27 Sep 1997 00:36:07 -0600 boa (0.93.7-1) unstable; urgency=low * Upstream version change to 0.93.7 -- Jon Nelson Sat, 27 Sep 1997 00:36:07 -0600 boa (0.93-1) unstable; urgency=low * Upstream version change to 0.93 -- Jon Nelson Mon, 30 Jun 1997 09:55:01 -0600 boa (0.92-5) unstable; urgency=low * Handover from Christopher Lameter to Jon Nelson -- Jon Nelson Fri, 6 Jun 1997 01:17:23 -0600 boa (0.92-4) unstable; urgency=low * Improve gunzip.cgi script so that it correctly distinguishes between ascii file and html file. * Provide menu item for web menus -- Christoph Lameter Sat, 1 Feb 1997 10:39:59 -0800 boa (0.92-3) unstable; urgency=low * Misspelling: cgi-directory created was named /usr/lib/cgi-lib instead of /usr/lib/cgi-bin. conf file already listed it as /usr/lib/cgi-bin * Transparently process .gz files without the need for changing any filenames (patch by the author). I.e. a reference to index.html will fetch and decompress index.html.gz if index.html is not present. -- Christoph Lameter Sat, 1 Feb 1997 09:56:52 -0800 boa (0.92-2) unstable; urgency=low * Implement proposed webstandard 3.0 for evaluation * Remove conflicts with httpd and the replaces for other webservers. -- Christoph Lameter Sat, 28 Dec 1996 15:58:37 -0800 boa (0.92-1) unstable; urgency=low * Initial Release. -- Christoph Lameter Mon, 23 Dec 1996 20:27:43 -0800 debian/postinst0000644000000000000000000000106712164352020010773 0ustar #! /bin/sh PATH=/bin:/sbin:/usr/bin:/usr/sbin set -e if [ -e /etc/cron.daily/boa ]; then echo 'conffile /etc/cron.daily/boa exists. New functionality is in /etc/logrotate.d/boa.' if test `md5sum /etc/cron.daily/boa | awk '{print $1}'` = '5e05937798a45a32ed7bf03e596d1427'; then echo '/etc/cron.daily/boa not modified -- Removing /etc/cron.daily/boa' rm -f /etc/cron.daily/boa else echo '/etc/cron.daily/boa modified -- Moving to /etc/cron.daily/boa.obsolete' mv -f /etc/cron.daily/boa /etc/cron.daily/boa.obsolete fi fi #DEBHELPER# exit 0debian/init0000644000000000000000000000245312164352020010053 0ustar #! /bin/sh # # Written by Miquel van Smoorenburg . # Modified for Debian GNU/Linux # by Ian Murdock . # Modified for boa by Bill Allombert . ### BEGIN INIT INFO # Provides: boa # Description: Boa HTTPd # Required-Start: $local_fs $remote_fs $network # Required-Stop: $local_fs $remote_fs $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Boa: lightweight and high performance web server ### END INIT INFO PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/sbin/boa NAME=boa DESC="HTTP server" test -x $DAEMON || exit 0 set -e case "$1" in start) echo -n "Starting $DESC: $NAME" start-stop-daemon --start --quiet --exec $DAEMON echo "." ;; stop) echo -n "Stopping $DESC: $NAME" start-stop-daemon --stop --quiet --oknodo --exec $DAEMON echo "." ;; status) start-stop-daemon --status --exec $DAEMON exit $? ;; restart|force-reload) $0 stop $0 start ;; reload) echo -n "Reloading $DESC configuration... " start-stop-daemon --stop --signal HUP --quiet --oknodo --exec $DAEMON echo "done." ;; *) N=/etc/init.d/$NAME echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2 exit 1 ;; esac exit 0 debian/copyright0000644000000000000000000000110212164352020011106 0ustar This package was initially debianized by Christoph Lameter clameter@debian.org on Mon, 23 Dec 1996 20:27:43 -0800. It has since been taken over by Jonathon Nelson It was originally downloaded from sunsite.unc.edu:/pub/Linux/Incoming Boa can now be found at http://www.boa.org/ Copyright 1991- Paul Phillips Copyright 2000- Larry Doolittle Copyright 2000- Jon Nelson . Boa is distributed under the terms of GNU General Public License, version 2 or higher, as found in /usr/share/common-licenses/GPL-2 debian/info0000644000000000000000000000001612164352020010034 0ustar docs/boa.info debian/examples0000644000000000000000000000010112164352020010712 0ustar examples/cgi-test.cgi examples/nph-test.cgi examples/resolver.pl debian/docs0000644000000000000000000000006712164352020010037 0ustar README docs/boa.html docs/boa_banner.png docs/boa.texi debian/boa.conf0000644000000000000000000002223112164352020010571 0ustar # Boa v0.94 configuration file # File format has not changed from 0.93 # File format has changed little from 0.92 # version changes are noted in the comments # # The Boa configuration file is parsed with a custom parser. If it # reports an error, the line number will be provided; it should be easy # to spot. The syntax of each of these rules is very simple, and they # can occur in any order. Where possible these directives mimic those # of NCSA httpd 1.3; I saw no reason to introduce gratuitous # differences. # $Id: boa.conf,v 1.3.2.6 2003/02/02 05:02:22 jnelson Exp $ # The "ServerRoot" is not in this configuration file. It can be # compiled into the server (see defines.h) or specified on the command # line with the -c option, for example: # # boa -c /usr/local/boa # Port: The port Boa runs on. The default port for http servers is 80. # If it is less than 1024, the server must be started as root. Port 80 # Listen: the Internet address to bind(2) to. If you leave it out, # it takes the behavior before 0.93.17.2, which is to bind to all # addresses (INADDR_ANY). You only get one "Listen" directive, # if you want service on multiple IP addresses, you have three choices: # 1. Run boa without a "Listen" directive # a. All addresses are treated the same; makes sense if the addresses # are localhost, ppp, and eth0. # b. Use the VirtualHost directive below to point requests to different # files. Should be good for a very large number of addresses (web # hosting clients). # 2. Run one copy of boa per IP address, each has its own configuration # with a "Listen" directive. No big deal up to a few tens of addresses. # Nice separation between clients. # The name you provide gets run through inet_aton(3), so you have to use dotted # quad notation. This configuration is too important to trust some DNS. #Listen 192.68.0.5 # User: The name or UID the server should run as. # Group: The group name or GID the server should run as. User www-data Group www-data # ServerAdmin: The email address where server problems should be sent. # Note: this is not currently used, except as an environment variable # for CGIs. #ServerAdmin root@localhost # PidFile: where to put the pid of the process. # Comment out to write no pid file. # Note: Because Boa drops privileges at startup, and the # pid file is written by the UID/GID before doing so, Boa # does not attempt removal of the pid file. # PidFile /var/run/boa.pid # ErrorLog: The location of the error log file. If this does not start # with /, it is considered relative to the server root. # Set to /dev/null if you don't want errors logged. # If unset, defaults to /dev/stderr # Please NOTE: Sending the logs to a pipe ('|'), as shown below, # is somewhat experimental and might fail under heavy load. # "Usual libc implementations of printf will stall the whole # process if the receiving end of a pipe stops reading." #ErrorLog "|/usr/sbin/cronolog --symlink=/var/log/boa/error_log /var/log/boa/error-%Y%m%d.log" ErrorLog /var/log/boa/error_log # AccessLog: The location of the access log file. If this does not # start with /, it is considered relative to the server root. # Comment out or set to /dev/null (less effective) to disable. # Useful to set to /dev/stdout for use with daemontools. # Access logging. # Please NOTE: Sending the logs to a pipe ('|'), as shown below, # is somewhat experimental and might fail under heavy load. # "Usual libc implementations of printf will stall the whole # process if the receiving end of a pipe stops reading." #AccessLog "|/usr/sbin/cronolog --symlink=/var/log/boa/access_log /var/log/boa/access-%Y%m%d.log" AccessLog /var/log/boa/access_log # CGILog /var/log/boa/cgi_log # CGILog: The location of the CGI stderr log file. If this does not # start with /, it is considered relative to the server root. # The log file would contain any contents send to /dev/stderr # by the CGI. If this is commented out, it defaults to whatever # ErrorLog points. Set to /dev/null to disable CGI stderr logging. # Please NOTE: Sending the logs to a pipe ('|'), as shown below, # is somewhat experimental and might fail under heavy load. # "Usual libc implementations of printf will stall the whole # process if the receiving end of a pipe stops reading." #CGILog "|/usr/sbin/cronolog --symlink=/var/log/boa/cgi_log /var/log/boa/cgi-%Y%m%d.log" # CGIumask 027 (no mask for user, read-only for group, and nothing for user) # CGIumask 027 # The CGIumask is set immediately before execution of the CGI. # UseLocaltime: Logical switch. Uncomment to use localtime # instead of UTC time #UseLocaltime # VerboseCGILogs: this is just a logical switch. # It simply notes the start and stop times of cgis in the error log # Comment out to disable. #VerboseCGILogs # ServerName: the name of this server that should be sent back to # clients if different than that returned by gethostname + gethostbyname #ServerName www.your.org.here # VirtualHost: a logical switch. # Comment out to disable. # Given DocumentRoot /var/www, requests on interface 'A' or IP 'IP-A' # become /var/www/IP-A. # Example: http://localhost/ becomes /var/www/127.0.0.1 # # Not used until version 0.93.17.2. This "feature" also breaks commonlog # output rules, it prepends the interface number to each access_log line. # You are expected to fix that problem with a postprocessing script. #VirtualHost # VHostRoot: the root location for all virtually hosted data # Comment out to disable. # Incompatible with 'Virtualhost' and 'DocumentRoot'!! # Given VHostRoot /var/www, requests to host foo.bar.com, # where foo.bar.com is ip a.b.c.d, # become /var/www/a.b.c.d/foo.bar.com # Hostnames are "cleaned", and must conform to the rules # specified in rfc1034, which are be summarized here: # # Hostnames must start with a letter, end with a letter or digit, # and have as interior characters only letters, digits, and hyphen. # Hostnames must not exceed 63 characters in length. #VHostRoot /var/www # DefaultVHost # Define this in order to have a default hostname when the client does not # specify one, if using VirtualHostName. If not specified, the word # "default" will be used for compatibility with older clients. #DefaultVHost foo.bar.com # DocumentRoot: The root directory of the HTML documents. # Comment out to disable server non user files. DocumentRoot /var/www # UserDir: The name of the directory which is appended onto a user's home # directory if a ~user request is received. UserDir public_html # DirectoryIndex: Name of the file to use as a pre-written HTML # directory index. Please MAKE AND USE THESE FILES. On the # fly creation of directory indexes can be _slow_. # Comment out to always use DirectoryMaker DirectoryIndex index.html # DirectoryMaker: Name of program used to create a directory listing. # Comment out to disable directory listings. If both this and # DirectoryIndex are commented out, accessing a directory will give # an error (though accessing files in the directory are still ok). DirectoryMaker /usr/lib/boa/boa_indexer # DirectoryCache: If DirectoryIndex doesn't exist, and DirectoryMaker # has been commented out, the the on-the-fly indexing of Boa can be used # to generate indexes of directories. Be warned that the output is # extremely minimal and can cause delays when slow disks are used. # Note: The DirectoryCache must be writable by the same user/group that # Boa runs as. # DirectoryCache /var/spool/boa/dircache # KeepAliveMax: Number of KeepAlive requests to allow per connection # Comment out, or set to 0 to disable keepalive processing KeepAliveMax 1000 # KeepAliveTimeout: seconds to wait before keepalive connection times out KeepAliveTimeout 10 # MimeTypes: This is the file that is used to generate mime type pairs # and Content-Type fields for boa. # Set to /dev/null if you do not want to load a mime types file. # Do *not* comment out (better use AddType!) MimeTypes /etc/mime.types # DefaultType: MIME type used if the file extension is unknown, or there # is no file extension. DefaultType text/plain # CGIPath: The value of the $PATH environment variable given to CGI progs. CGIPath /bin:/usr/bin:/usr/local/bin # SinglePostLimit: The maximum allowable number of bytes in # a single POST. Default is normally 1MB. # AddType: adds types without editing mime.types # Example: AddType type extension [extension ...] # Uncomment the next line if you want .cgi files to execute from anywhere #AddType application/x-httpd-cgi cgi # Redirect, Alias, and ScriptAlias all have the same semantics -- they # match the beginning of a request and take appropriate action. Use # Redirect for other servers, Alias for the same server, and ScriptAlias # to enable directories for script execution. # Redirect allows you to tell clients about documents which used to exist in # your server's namespace, but do not anymore. This allows you to tell the # clients where to look for the relocated document. # Example: Redirect /bar http://elsewhere/feh/bar # Aliases: Aliases one path to another. # Example: Alias /path1/bar /path2/foo Alias /doc /usr/share/doc # ScriptAlias: Maps a virtual path to a directory for serving scripts # Example: ScriptAlias /htbin/ /www/htbin/ ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ debian/control0000644000000000000000000000211712164361174010577 0ustar Source: boa Section: httpd Priority: optional Maintainer: Debian QA Group Standards-Version: 3.9.4 Build-Depends: autotools-dev, bison, debhelper (>= 9~), flex, po-debconf, texinfo Homepage: http://www.boa.org/ Vcs-Git: git://anonscm.debian.org/collab-maint/boa.git Vcs-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/boa.git Package: boa Architecture: any Provides: httpd, httpd-cgi Depends: logrotate, mime-support, ${misc:Depends}, ${shlibs:Depends} Description: Lightweight and high performance web server Boa is a single-tasking HTTP server. That means that unlike traditional web servers, it does not fork for each incoming connection, nor does it fork many copies of itself to handle multiple connections. It internally multiplexes all of the ongoing HTTP connections, and forks only for CGI programs (which must be separate processes). Preliminary tests show boa is capable of handling several hundred hits per second on a 100 MHz Pentium. debian/README.Debian0000644000000000000000000000117012164352020011221 0ustar boa for DEBIAN -------------- To read the docs try file:///usr/share/doc/boa/boa.html or http://localhost/doc/boa/boa.html Specific thanks go out to Joy (Josip Rodin) for help with some various Debianisms. To use the cronolog logging facilities, the following changes must be made: 1) install cronolog 2) edit /etc/boa/boa.conf to use the cronolog logging 3) comment out everything in /etc/logrotate.d/boa pre-pending a '#' character to each line. This is very important! 4) move the old log files out of the way before restarting Boa NOTE: Cronolog does *not* rotate files in the traditional way. debian/dirs0000644000000000000000000000010112164352020010035 0ustar usr/sbin etc/boa var/www var/log/boa usr/lib/boa etc/logrotate.d debian/source/0000755000000000000000000000000012164352020010461 5ustar debian/source/format0000644000000000000000000000001412164352020011667 0ustar 3.0 (quilt) debian/manpages0000644000000000000000000000001312164352020010671 0ustar docs/boa.8 debian/logrotate0000644000000000000000000000013512164352020011103 0ustar /var/log/boa/*_log { rotate 7 daily compress copytruncate missingok notifempty } debian/install0000644000000000000000000000010512164352020010546 0ustar src/boa usr/sbin src/boa_indexer usr/lib/boa debian/boa.conf etc/boa debian/prerm0000644000000000000000000000024512164352020010232 0ustar #!/bin/sh set -e if [ -x "/etc/init.d/boa" ]; then if [ -x /usr/sbin/invoke-rc.d ] ; then invoke-rc.d boa stop else /etc/init.d/boa stop fi fi #DEBHELPER# debian/rules0000755000000000000000000000040512164352020010240 0ustar #!/usr/bin/make -f %: dh $@ --with autotools-dev override_dh_auto_configure: dh_auto_configure -- --enable-access-control override_dh_auto_build: dh_auto_build cd docs;make boa.html boa.info override_dh_installinit: dh_installinit --error-handler=true