diff options
-rw-r--r-- | network/bozohttpd/README | 23 | ||||
-rw-r--r-- | network/bozohttpd/bozohttpd.SlackBuild | 88 | ||||
-rw-r--r-- | network/bozohttpd/bozohttpd.info | 4 | ||||
-rw-r--r-- | network/bozohttpd/fix_warnings.diff | 56 | ||||
-rw-r--r-- | network/bozohttpd/slack-desc | 2 |
5 files changed, 153 insertions, 20 deletions
diff --git a/network/bozohttpd/README b/network/bozohttpd/README index 601b51dc3d..751b8229bd 100644 --- a/network/bozohttpd/README +++ b/network/bozohttpd/README @@ -1,7 +1,28 @@ +bozohttpd (simple and lightweight HTTP server) + bozohttpd is a small and secure HTTP version 1.1 server. Its main feature is the lack of features, reducing the code size and improving verifiability. It supports CGI/1.1, HTTP/1.1, HTTP/1.0, HTTP/0.9, ~user translations, virtual hosting support, as well as multiple IP-based servers on a single machine. It is capable of serving pages via the IPv6 protocol. bozohttpd features SSL support. By design, there is no -configuration file. +configuration file: all options are provided as command-line arguments. + +bozohttpd is mainly intended to be run via inetd (see bozohttpd(8)), +but is capable of running as a standalone daemon (the -b option). There +is no startup script for daemon mode, but you can launch bozohttpd +from /etc/rc.d/rc.local. + +Optional dependency: lua + +bozohttpd can be built with support for dynamic content using Lua. This +isn't needed for running CGI scripts that happen to be written in Lua. +It's for embedding a Lua interpreter in bozohttpd, in the style of +Apache's mod_php or mod_perl. + +If lua is installed when the script is run, bozohttpd will be built with +Lua support automatically. If you have lua installed but don't want to +build bozohttpd with it, export LUA=no in the environment before running +the script. + +Without Lua support, the -L option to bozohttpd will not work. diff --git a/network/bozohttpd/bozohttpd.SlackBuild b/network/bozohttpd/bozohttpd.SlackBuild index c9e6fe12af..2d3ba76729 100644 --- a/network/bozohttpd/bozohttpd.SlackBuild +++ b/network/bozohttpd/bozohttpd.SlackBuild @@ -2,7 +2,7 @@ # Slackware build script for bozohttpd -# Copyright 2015-2017 Leonard Schmidt <lems@gmx.net> +# Copyright 2015-2017 Leonard Schmidt <email removed> # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -22,9 +22,23 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# Now maintained by B. Watson <yalhcru@gmail.com>. + +# 20180629 bkw: +# - Take over maintenance. +# - Move binary to /usr/sbin (to match the section 8 man page). But +# leave compatibility symlink in /usr/bin to avoid breaking everyone's +# rc.local or other scripts. BUILD=2. +# - Fix a couple of compiler warnings. +# - Add .htpasswd support. It's enabled by default in upstream's BSD-only +# Makefile. +# - Optional Lua support. +# - Tweak man page, de-NetBSDify the pathnames. +# - Simplify script a bit. + PRGNAM=bozohttpd VERSION=${VERSION:-20170201} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} TAG=${TAG:-_SBo} if [ -z "$ARCH" ]; then @@ -65,31 +79,73 @@ cd $PRGNAM-$VERSION chown -R root:root . find -L . \ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ - -o -perm 511 \) -exec chmod 755 {} \; -o \ + -o -perm 511 \) -exec chmod 755 {} \+ -o \ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ - -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \+ + +# 20180629 bkw: Note to self: Ignore Makefile. It's BSD-specific. +# In theory maybe it could be massaged into working with bmake or +# (*shudder*) pmake. Makefile.boot is a stripped-down generic Makefile +# that does work with GNU make... but it's a bit too stripped down, +# have to add a couple of features that were removed. + +sed -i '/^CRYPTOLIBS/s,$, -lcrypt,' Makefile.boot + +# 20180629 bkw: support lua (-L option) if lua is installed and user +# doesn't disable it. I've tested this with the printenv.lua script +# and it seems to work fine. +if [ "${LUA:-yes}" = "yes" ] && lua -v &>/dev/null; then + LUAOPT="" + WITHLUA="with" + EXTRADOC="printenv.lua" + sed -i '/^CRYPTOLIBS/s,$, -llua,' Makefile.boot + sed -i 's,/usr/libexec/httpd,bozohttpd,' printenv.lua +else + LUAOPT="-DNO_LUA_SUPPORT" + WITHLUA="without" + EXTRADOC="" +fi + +# 20180629 bkw: The man page was written for NetBSD, where I guess +# bozohttpd is installed as "httpd". On Slackware this is Apache. The +# man page shows example commands referring to "httpd", which will +# confuse everyone who tries to run them... also the paths are weird. + +# Note to the SBo admin who reviews this: if you really hate the mega-sed +# command below, I wouldn't mind making this a patch instead. Six of one, +# half a dozen of the other. + +sed -i \ + -e 's,\<httpd ,bozohttpd ,g' \ + -e 's,libexec,sbin,g' \ + -e 's,_httpd,nobody,g' \ + -e 's,/var/www,/var/www/htdocs,g' \ + -e 's, *-v */var/vroot,,g' \ + -e 's,/usr/pkg,/usr,g' \ + $PRGNAM.8 + +# 20180629 bkw: warning: implicit declaration of function vasprintf(). +# Probably doesn't hurt anything, but might cause problems later. +# More worrisome is missing crypt() prototype (causes implicit pointer +# to int casts, baaaaad, especially on 64-bit). +patch -p1 < $CWD/fix_warnings.diff -cp Makefile.boot Makefile # Fix build (from Arch Linux' AUR). sed -i 's/d_namlen/d_reclen/g' bozohttpd.c -make OPT="$SLKCFLAGS" - -mkdir -p $PKG/usr/{bin,man/man8} -install -m755 bozohttpd $PKG/usr/bin -install -m644 bozohttpd.8 $PKG/usr/man/man8 -find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ - | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true +make -f Makefile.boot OPT="$SLKCFLAGS -Wall" LOCAL_CFLAGS="-DDO_HTPASSWD $LUAOPT" -find $PKG/usr/man -type f -exec gzip -9 {} \; -for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +mkdir -p $PKG/usr/bin $PKG/usr/sbin $PKG/usr/man/man8 +install -s -m755 $PRGNAM $PKG/usr/sbin +ln -s ../sbin/$PRGNAM $PKG/usr/bin/$PRGNAM +gzip -9c < $PRGNAM.8 > $PKG/usr/man/man8/$PRGNAM.8.gz mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION -cp -a CHANGES $PKG/usr/doc/$PRGNAM-$VERSION +cp -a CHANGES $EXTRADOC $PKG/usr/doc/$PRGNAM-$VERSION cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild mkdir -p $PKG/install -cat $CWD/slack-desc > $PKG/install/slack-desc +sed "s,@WITHLUA@,$WITHLUA," $CWD/slack-desc > $PKG/install/slack-desc cd $PKG /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} diff --git a/network/bozohttpd/bozohttpd.info b/network/bozohttpd/bozohttpd.info index 1123aad756..0ebefe908c 100644 --- a/network/bozohttpd/bozohttpd.info +++ b/network/bozohttpd/bozohttpd.info @@ -6,5 +6,5 @@ MD5SUM="0c9548ed0bde00f6d350335224a17f2f" DOWNLOAD_x86_64="" MD5SUM_x86_64="" REQUIRES="" -MAINTAINER="Leonard Schmidt" -EMAIL="lems@gmx.net" +MAINTAINER="B. Watson" +EMAIL="yalhcru@gmail.com" diff --git a/network/bozohttpd/fix_warnings.diff b/network/bozohttpd/fix_warnings.diff new file mode 100644 index 0000000000..72b566edf1 --- /dev/null +++ b/network/bozohttpd/fix_warnings.diff @@ -0,0 +1,56 @@ +diff -Naur bozohttpd-20170201/auth-bozo.c bozohttpd-20170201.patched/auth-bozo.c +--- bozohttpd-20170201/auth-bozo.c 2017-01-31 23:21:23.000000000 -0500 ++++ bozohttpd-20170201.patched/auth-bozo.c 2018-06-29 15:42:59.076820050 -0400 +@@ -34,9 +34,12 @@ + + #ifdef DO_HTPASSWD + ++#define _XOPEN_SOURCE ++ + #include <sys/param.h> + + #include <string.h> ++#include <strings.h> + #include <stdlib.h> + #include <unistd.h> + +diff -Naur bozohttpd-20170201/bozohttpd.c bozohttpd-20170201.patched/bozohttpd.c +--- bozohttpd-20170201/bozohttpd.c 2017-01-31 23:21:23.000000000 -0500 ++++ bozohttpd-20170201.patched/bozohttpd.c 2018-06-29 15:08:08.066873176 -0400 +@@ -132,6 +132,10 @@ + * And so it begins .. + */ + ++/* need this for vasprintf(): */ ++#define _GNU_SOURCE ++#include <stdio.h> ++ + #include <sys/param.h> + #include <sys/socket.h> + #include <sys/time.h> +diff -Naur bozohttpd-20170201/lua-bozo.c bozohttpd-20170201.patched/lua-bozo.c +--- bozohttpd-20170201/lua-bozo.c 2017-01-31 23:21:23.000000000 -0500 ++++ bozohttpd-20170201.patched/lua-bozo.c 2018-06-29 15:43:38.424819051 -0400 +@@ -32,6 +32,9 @@ + + #ifndef NO_LUA_SUPPORT + ++#define _GNU_SOURCE ++#include <stdio.h> ++ + #include <sys/param.h> + + #include <lua.h> +diff -Naur bozohttpd-20170201/ssl-bozo.c bozohttpd-20170201.patched/ssl-bozo.c +--- bozohttpd-20170201/ssl-bozo.c 2017-01-31 23:21:23.000000000 -0500 ++++ bozohttpd-20170201.patched/ssl-bozo.c 2018-06-29 15:07:50.813873614 -0400 +@@ -32,6 +32,9 @@ + + /* this code implements SSL and backend IO for bozohttpd */ + ++/* need this for vasprintf(): */ ++#define _GNU_SOURCE ++ + #include <stdarg.h> + #include <stdio.h> + #include <syslog.h> diff --git a/network/bozohttpd/slack-desc b/network/bozohttpd/slack-desc index 84d5bb87dd..da3387bba0 100644 --- a/network/bozohttpd/slack-desc +++ b/network/bozohttpd/slack-desc @@ -16,4 +16,4 @@ bozohttpd: hosting support, as well as multiple IP-based servers on a bozohttpd: single machine. It is capable of serving pages via the IPv6 bozohttpd: protocol. bozohttpd features SSL support. bozohttpd: -bozohttpd: Homepage: http://www.eterna.com.au/bozohttpd/ +bozohttpd: This package built @WITHLUA@ Lua dynamic content support. |