aboutsummaryrefslogtreecommitdiff
path: root/network/varnish
diff options
context:
space:
mode:
authorCherife Li <cherife@dotimes.com>2010-05-11 20:01:45 +0200
committerRobby Workman <rworkman@slackbuilds.org>2010-05-11 20:01:45 +0200
commit31ed2c363fc98bc200244b4cf2356ccacf7e6771 (patch)
tree52bc564dc3764633df860c5398684c25bab51396 /network/varnish
parentcd508c90a7ad0c94466224d6d1c3c18912fcdfe9 (diff)
network/varnish: Added to 12.0 repository
Diffstat (limited to 'network/varnish')
-rw-r--r--network/varnish/README5
-rw-r--r--network/varnish/doinst.sh24
-rw-r--r--network/varnish/rc.varnishd87
-rw-r--r--network/varnish/slack-desc19
-rw-r--r--network/varnish/varnish.SlackBuild73
-rw-r--r--network/varnish/varnish.info8
6 files changed, 216 insertions, 0 deletions
diff --git a/network/varnish/README b/network/varnish/README
new file mode 100644
index 000000000000..f41f7b157190
--- /dev/null
+++ b/network/varnish/README
@@ -0,0 +1,5 @@
+VARNISH - a state-of-the-art, high-performance HTTP accelerator.
+
+Varnish is targeted primarily at the FreeBSD 6 and Linux 2.6 platforms,
+and will take full advantage of the virtual memory system and advanced
+I/O features offered by these operating systems.
diff --git a/network/varnish/doinst.sh b/network/varnish/doinst.sh
new file mode 100644
index 000000000000..eacbac22fdaa
--- /dev/null
+++ b/network/varnish/doinst.sh
@@ -0,0 +1,24 @@
+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...
+}
+
+# Keep same perms on rc.varnishd.new:
+if [ -e etc/rc.d/rc.varnishd ]; then
+ cp -a etc/rc.d/rc.varnishd etc/rc.d/rc.varnishd.new.incoming
+ cat etc/rc.d/rc.varnishd.new > etc/rc.d/rc.varnishd.new.incoming
+ mv etc/rc.d/rc.varnishd.new.incoming etc/rc.d/rc.varnishd.new
+fi
+
+config etc/rc.d/rc.varnishd.new
+config etc/varnish/default.vcl.new
+config etc/varnish/zope-plone.vcl.new
+
diff --git a/network/varnish/rc.varnishd b/network/varnish/rc.varnishd
new file mode 100644
index 000000000000..5d8ba968331e
--- /dev/null
+++ b/network/varnish/rc.varnishd
@@ -0,0 +1,87 @@
+#!/bin/sh
+# Written to start/stop/restart varnishd.
+# by Cherife Li <cherife@dotimes.com>
+#
+
+VARNISH_VCL_CONF=/etc/default.vcl
+VARNISH_PIDFILE=/var/run/varnish.pid
+VARNISH_LOCKFILE=/var/lock/subsys/varnish
+VARNISH_DAEMON=/usr/sbin/varnishd
+VARNISH_PARAM="-p thread_pool_max=1500 -p thread_pools=5 -p listen_depth=512 -p client_http11=off"
+
+VARNISH_LOG_PIDFILE=/var/run/varnishlog.pid
+VARNISH_LOG_LOCKFILE=/var/lock/subsys/varnishlog
+VARNISH_LOG_DAEMON=/usr/bin/varnishlog
+LOGFILE=/var/log/varnish.log
+VARNISH_LOG_OPTS="-a -w ${LOGFILE} -D -P ${VARNISH_LOG_PIDFILE}"
+
+# Default address and port to bind to
+# Blank address means all IPv4 and IPv6 interfaces, otherwise specify
+# a host name, an IPv4 dotted quad, or an IPv6 address in brackets.
+VARNISH_LISTEN_ADDRESS=
+VARNISH_LISTEN_PORT=80
+
+# Telnet admin interface listen address and port
+VARNISH_ADMIN_LISTEN_ADDRESS=127.0.0.1
+VARNISH_ADMIN_LISTEN_PORT=81
+
+# The minimum number of worker threads to start
+VARNISH_MIN_THREADS=1
+
+# The Maximum number of worker threads to start
+VARNISH_MAX_THREADS=100
+
+# Idle timeout for worker threads
+VARNISH_THREAD_TIMEOUT=120
+
+# Cache file location
+VARNISH_STORAGE_FILE=/var/lib/varnish_storage.bin
+
+# Cache file size: in bytes, optionally using k / M / G / T suffix,
+# or in percentage of available disk space using the % suffix.
+VARNISH_STORAGE_SIZE=1G
+
+# Backend storage specification
+VARNISH_STORAGE="file,${VARNISH_STORAGE_FILE},${VARNISH_STORAGE_SIZE}"
+
+# Default TTL used when the backend does not specify one
+VARNISH_TTL=120
+
+# VARNISH_DAEMON_OPTS is used by the init script. If you add or remove options, make
+# sure you update this section, too.
+VARNISH_DAEMON_OPTS="-a ${VARNISH_LISTEN_ADDRESS}:${VARNISH_LISTEN_PORT} \
+ -f ${VARNISH_VCL_CONF} \
+ -T ${VARNISH_ADMIN_LISTEN_ADDRESS}:${VARNISH_ADMIN_LISTEN_PORT} \
+ -t ${VARNISH_TTL} \
+ -w ${VARNISH_MIN_THREADS},${VARNISH_MAX_THREADS},${VARNISH_THREAD_TIMEOUT} \
+ -u nobody -g nobody \
+ -P ${VARNISH_PIDFILE} \
+ -s ${VARNISH_STORAGE}"
+
+case "$1" in
+'start')
+ echo -n "Starting varnish daemon..."
+ $VARNISH_DAEMON $VARNISH_DAEMON_OPTS $VARNISH_PARAM > /dev/null 2>&1
+ $VARNISH_LOG_DAEMON $VARNISH_LOG_OPTS
+ touch $VARNISH_LOCKFILE $VARNISH_LOG_LOCKFILE
+ echo
+ ;;
+'stop')
+ echo -n "Stopping varnish daemon..."
+ kill -9 $(cat $VARNISH_PIDFILE)
+ kill -9 $(cat $VARNISH_LOG_PIDFILE)
+ rm -f $VARNISH_PIDFILE $VARNISH_LOG_PIDFILE $VARNISH_LOCKFILE $VARNISH_LOG_LOCKFILE
+ killall varnishd 2> /dev/null
+ echo
+ ;;
+'restart')
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+*)
+ echo "usage $0 start|stop|restart"
+ exit 1
+esac
+
+exit 0
diff --git a/network/varnish/slack-desc b/network/varnish/slack-desc
new file mode 100644
index 000000000000..4934984ec55c
--- /dev/null
+++ b/network/varnish/slack-desc
@@ -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 ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+varnish: VARNISH (high-performance HTTP accelerator)
+varnish:
+varnish: Varnish is targeted primarily at the FreeBSD 6 and
+varnish: Linux 2.6 platforms, and will take full advantage
+varnish: of the virtual memory system and advanced I/O
+varnish: features offered by these operating systems.
+varnish:
+varnish: Homepage: http://varnish.projects.linpro.no/
+varnish:
+varnish:
+varnish:
diff --git a/network/varnish/varnish.SlackBuild b/network/varnish/varnish.SlackBuild
new file mode 100644
index 000000000000..d15a775208bf
--- /dev/null
+++ b/network/varnish/varnish.SlackBuild
@@ -0,0 +1,73 @@
+#!/bin/sh
+# Build/install varnish the way Slackware's binary package is made:
+# Written by Cherife Li <cherife@dotimes.com>
+# Modified by Robby Workman <rworkman@slackbuilds.org>
+
+PRGNAM=varnish
+VERSION=1.1.2
+ARCH=${ARCH:-i486}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+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 . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc/varnish \
+ --localstatedir=/var \
+ --mandir=/usr/man
+
+make -j6
+make install DESTDIR=$PKG
+
+mkdir -p $PKG/etc/{varnish,rc.d}
+cat etc/default.vcl > $PKG/etc/varnish/default.vcl.new
+cat etc/zope-plone.vcl > $PKG/etc/varnish/zope-plone.vcl.new
+cat $CWD/rc.varnishd > $PKG/etc/rc.d/rc.varnishd.new
+
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a ChangeLog LICENSE INSTALL README $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+( cd $PKG/usr/man
+ find . -type f -exec gzip -9 {} \;
+ for i in $( find . -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+)
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz
diff --git a/network/varnish/varnish.info b/network/varnish/varnish.info
new file mode 100644
index 000000000000..49c7285bf2a5
--- /dev/null
+++ b/network/varnish/varnish.info
@@ -0,0 +1,8 @@
+PRGNAM="varnish"
+VERSION="1.1.2"
+HOMEPAGE="http://varnish.projects.linpro.no/"
+DOWNLOAD="http://downloads.sourceforge.net/varnish/varnish-1.1.2.tar.gz"
+MD5SUM="d9f74dae59a2158cdc31f446b6d92397"
+MAINTAINER="Cherife Li"
+EMAIL="cherife@dotimes.com"
+APPROVED="rworkman"