network/monkey: Added (web server).

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
Sergey Fedosoff 2014-04-12 00:39:58 +07:00 committed by Willy Sudiarto Raharjo
parent bb3ef6edd9
commit 403f86a1a5
6 changed files with 234 additions and 0 deletions

7
network/monkey/README Normal file
View file

@ -0,0 +1,7 @@
Monkey is a lightweight and powerful web server and development ostack for
GNU/Linux.
It has been designed to be very scalable with low memory and CPU consumption,
the perfect solution for embedded devices. Made for ARM, x86 and x64.
By default, monkey will use the "apache" user and group accounts.

39
network/monkey/doinst.sh Normal file
View file

@ -0,0 +1,39 @@
config() {
NEW="$1"
OLD="$(dirname $NEW)/$(basename $NEW .new)"
# If there's no config file by that name, mv it over:
if [ ! -r $OLD ]; then
mv $NEW $OLD
elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then
# toss the redundant copy
rm $NEW
fi
# Otherwise, we leave the .new copy for the admin to consider...
}
preserve_perms() {
NEW="$1"
OLD="$(dirname ${NEW})/$(basename ${NEW} .new)"
if [ -e ${OLD} ]; then
cp -a ${OLD} ${NEW}.incoming
cat ${NEW} > ${NEW}.incoming
mv ${NEW}.incoming ${NEW}
fi
config ${NEW}
}
preserve_perms etc/rc.d/rc.monkey.new
config etc/logrotate.d/monkey.new
config etc/monkey/monkey.conf.new
config etc/monkey/plugins.load.new
config etc/monkey/sites/default.new
config etc/monkey/plugins/auth/monkey.users.new
config etc/monkey/plugins/cgi/cgi.conf.new
config etc/monkey/plugins/cheetah/cheetah.conf.new
config etc/monkey/plugins/dirlisting/dirhtml.conf.new
config etc/monkey/plugins/fastcgi/fastcgi.conf.new
config etc/monkey/plugins/logger/logger.conf.new
config etc/monkey/plugins/mandril/mandril.conf.new
config var/www/monkey/404.html.new
config var/www/monkey/favicon.ico.new
config var/www/monkey/index.html.new

View file

@ -0,0 +1,146 @@
#!/bin/sh
# Slackware build script for monkey http server.
# Copyright (c) 2014, Sergey Fedosov <eleksir@gmail.com>
# All rights reserved.
#
# Redistribution with or without modification, is permitted provided
# that the following conditions are met:
#
# 1. Redistributions of script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
# DAMAGE.
# This script partially based on nginx slackbuild by
# Francisco Ambrozio <sbo@franciscoambrozio.com>
# and libev script by Šime Ramov <s@ramov.com>
PRGNAM=monkey
VERSION=${VERSION:-1.4.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i486 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
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 \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--mandir=/usr/man \
--sysconfdir=/etc/monkey \
--datadir=/var/www/monkey \
--logdir=/var/log/monkey \
--bindir=/usr/sbin \
--plugdir=/usr/lib${LIBDIRSUFFIX}/monkey \
--default-port=80 \
--default-user=apache
make
make install DESTDIR=$PKG
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
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
# fix PID-file path and make empty dir under /var/run
sed -i 's/\/var\/log\/monkey\/monkey.pid/\/var\/run\/monkey\/monkey.pid/g' $PKG/etc/monkey/monkey.conf
mkdir -p $PKG/var/run/monkey
# out of the box logging is disabled, enable it to audit http server's life
sed -i 's/# Load \/usr\/lib\/monkey\/monkey\-logger\.so/Load \/usr\/lib\/monkey\/monkey\-logger\.so/g' $PKG/etc/monkey/plugins.load
# make log dir
mkdir -p $PKG/var/log/monkey
# move init script to it's dir
mkdir -p $PKG/etc/rc.d
mv $PKG/usr/sbin/banana $PKG/etc/rc.d/rc.monkey.new
# and fix it a bit
sed -i 's/Use: \.\/banana OPTION/Use: \.\/rc.monkey OPTION/g' $PKG/etc/rc.d/rc.monkey.new
sed -i 's/Options available to banana:/Options available to rc.monkey:/g' $PKG/etc/rc.d/rc.monkey.new
sed -i 's/echo \"Use : banana/echo \"Use : \$0/g' $PKG/etc/rc.d/rc.monkey.new
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a README LICENSE ChangeLog $PKG/usr/doc/$PRGNAM-$VERSION
install -m 644 $CWD/$PRGNAM.SlackBuild $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/etc/logrotate.d
install -m 644 $CWD/monkey.logrotate $PKG/etc/logrotate.d/monkey.new
mv $PKG/etc/monkey/monkey.conf $PKG/etc/monkey/monkey.conf.new
mv $PKG/etc/monkey/plugins.load $PKG/etc/monkey/plugins.load.new
mv $PKG/etc/monkey/sites/default $PKG/etc/monkey/sites/default.new
mv $PKG/etc/monkey/plugins/auth/monkey.users $PKG/etc/monkey/plugins/auth/monkey.users.new
mv $PKG/etc/monkey/plugins/cgi/cgi.conf $PKG/etc/monkey/plugins/cgi/cgi.conf.new
mv $PKG/etc/monkey/plugins/cheetah/cheetah.conf $PKG/etc/monkey/plugins/cheetah/cheetah.conf.new
mv $PKG/etc/monkey/plugins/dirlisting/dirhtml.conf $PKG/etc/monkey/plugins/dirlisting/dirhtml.conf.new
mv $PKG/etc/monkey/plugins/fastcgi/fastcgi.conf $PKG/etc/monkey/plugins/fastcgi/fastcgi.conf.new
mv $PKG/etc/monkey/plugins/logger/logger.conf $PKG/etc/monkey/plugins/logger/logger.conf.new
mv $PKG/etc/monkey/plugins/mandril/mandril.conf $PKG/etc/monkey/plugins/mandril/mandril.conf.new
mv $PKG/var/www/monkey/404.html $PKG/var/www/monkey/404.html.new
mv $PKG/var/www/monkey/favicon.ico $PKG/var/www/monkey/favicon.ico.new
mv $PKG/var/www/monkey/index.html $PKG/var/www/monkey/index.html.new
mkdir -p $PKG/install
install -m 644 $CWD/slack-desc $PKG/install/slack-desc
install -m 644 $CWD/doinst.sh $PKG/install/doinst.sh
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}

View file

@ -0,0 +1,10 @@
PRGNAM="monkey"
VERSION="1.4.0"
HOMEPAGE="http://monkey-project.com/"
DOWNLOAD="http://monkey-project.com/releases/1.4/monkey-1.4.0.tar.gz"
MD5SUM="c17e394b985ead873fc7e7cb2a05cef7"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
MAINTAINER="Sergey Fedosoff"
EMAIL="eleksir@gmail.com"

View file

@ -0,0 +1,13 @@
/var/log/monkey/*.log {
su apache apache
rotate 10
notifempty
compress
delaycompress
sharedscripts
postrotate
# kill -HUP `cat /var/run/monkey/monkey.pid.*`
# Handling of SIGHUP is not implemented yet, but they promise make it like apache httpd
/etc/rc.d/rc.monkey restart
endscript
}

19
network/monkey/slack-desc Normal file
View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
monkey: monkey (web server)
monkey:
monkey: Monkey is a lightweight and powerful web server and development
monkey: ostack for GNU/Linux.
monkey:
monkey: It has been designed to be very scalable with low memory and CPU
monkey: consumption, the perfect solution for embedded devices.
monkey: Made for ARM, x86 and x64.
monkey:
monkey: Website: <http://monkey-project.com/>
monkey: