squid: improve configuration defaults and provide init script
authorJeremy Laine <jeremy.laine@m4x.org>
Wed, 26 Mar 2008 14:18:00 +0000 (14:18 +0000)
committerJeremy Laine <jeremy.laine@m4x.org>
Wed, 26 Mar 2008 14:18:00 +0000 (14:18 +0000)
* provide sane defaults for configuration file (based on Debian package)
* provide an init script for squid which creates log/cache directories
  as needed

MAINTAINERS
packages/squid/squid/.mtn2git_empty [new file with mode: 0644]
packages/squid/squid/fix_epoll_check.patch [new file with mode: 0644]
packages/squid/squid/squid.init [new file with mode: 0644]
packages/squid/squid_2.6.STABLE14.bb

index 4b74dc2..de93d23 100644 (file)
@@ -97,7 +97,7 @@ Mail:       jeremy.laine@bolloretelecom.eu
 Website:    http://www.jerryweb.org/
 Machines:   mpc8313e-rdb
 Recipes:    libexosip2, python-cheetah, python-django, python-pyopenssl,
-Recipes:    pump, squidview
+Recipes:    pump, squid, squidview
 
 Person:     Joaquim Duran
 Mail:       joaquinduran@adtelecom.es
diff --git a/packages/squid/squid/.mtn2git_empty b/packages/squid/squid/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/squid/squid/fix_epoll_check.patch b/packages/squid/squid/fix_epoll_check.patch
new file mode 100644 (file)
index 0000000..8f19527
--- /dev/null
@@ -0,0 +1,11 @@
+--- squid-2.6.STABLE14.orig/configure.in       2007-07-15 16:21:59.000000000 +0200
++++ squid-2.6.STABLE14/configure.in    2008-03-25 17:15:53.000000000 +0100
+@@ -2416,7 +2416,7 @@
+ if test -n "$SELECT_TYPE"; then
+       : # Nothing to do
+-elif test "$ac_cv_epoll_works" = "yes" ; then
++elif test "$ac_cv_func_epoll_ctl" = "yes" && "$ac_cv_epoll_works" = "yes" ; then
+       SELECT_TYPE="epoll"
+ elif test "$ac_cv_func_kqueue" = "yes" ; then
+       SELECT_TYPE="kqueue"
diff --git a/packages/squid/squid/squid.init b/packages/squid/squid/squid.init
new file mode 100644 (file)
index 0000000..80573bf
--- /dev/null
@@ -0,0 +1,70 @@
+#!/bin/sh
+DAEMON=/usr/sbin/squid
+NAME=squid
+DESC="Squid HTTP proxy"
+PIDFILE=/var/run/squid.pid
+SQUID_ARGS="-D -sYC"
+
+test -f $DAEMON || exit 0
+
+grepconf() {
+    w="     " # space tab
+    sq=/etc/$NAME.conf
+    # sed is cool.
+    res=`sed -ne '
+            s/^'$1'['"$w"']\+[^'"$w"']\+['"$w"']\+\([^'"$w"']\+\).*$/\1/p;
+            t end;
+            d;
+            :end q' < $sq`
+    [ -n "$res" ] || res=$2
+    echo "$res"
+}
+
+start() {
+    owner=nobody
+
+    cdr=`grepconf cache_dir /var/spool/$NAME`
+    if [ ! -d "$cdr/00" ]; then
+        mkdir -p $cdr
+       chown $owner $cdr
+       $DAEMON -z
+    fi
+    
+    ldr="/var/log/$NAME"
+    if [ ! -d "$ldr" ]; then
+        mkdir -p $ldr
+       chown $owner $cdr
+    fi
+
+    start-stop-daemon -S -p $PIDFILE -x $DAEMON
+}
+
+stop() {
+        start-stop-daemon -K -p $PIDFILE -x $DAEMON
+}
+
+case "$1" in
+    start)
+        echo -n "Starting $DESC: $NAME... "
+        start
+        echo "done."
+       ;;
+    stop)
+        echo -n "Stopping $DESC: $NAME... "
+        stop
+        echo "done."
+        ;;
+    restart)
+        echo "Restarting $DESC: $NAME... "
+        stop
+        sleep 1
+        start
+        echo "done."
+        ;;
+    *)
+        echo "Usage: $0 {start|stop|restart}"
+        exit 1
+        ;;
+esac
+
+exit 0
index beef3ba..10c20c5 100644 (file)
@@ -1,18 +1,36 @@
 DESCRIPTION = "Squid is a caching proxy for the Web supporting HTTP, HTTPS, FTP, and more"
 LICENSE = "GPLv2"
-
+PR = "r1"
 DEPENDS = "squid-native-${PV}"
 
-SRC_URI = "http://www.squid-cache.org/Versions/v2/2.6/squid-${PV}.tar.bz2"
+SRC_URI = "http://www.squid-cache.org/Versions/v2/2.6/squid-${PV}.tar.bz2 \
+           file://fix_epoll_check.patch;patch=1 \
+           file://squid.init"
 
-inherit autotools
+inherit autotools update-rc.d
 
 EXTRA_OECONF = "--disable-epoll --disable-nls"
 
+logdir = ${localstatedir}/log/squid
+EXTRA_OEMAKE = "\
+  DEFAULT_CACHE_LOG=${logdir}/cache.log \
+  DEFAULT_ACCESS_LOG=${logdir}/access.log \
+  DEFAULT_STORE_LOG=${logdir}/store.log \
+  DEFAULT_PID_FILE=${localstatedir}/run/squid.pid \
+  DEFAULT_SWAP_DIR=${localstatedir}/spool/squid \
+  "
+
+INITSCRIPT_NAME = "squid"
+
 do_configure_append() {
    sed -i -e 's|./cf_gen |${STAGING_BINDIR_NATIVE}/cf_gen |g' src/Makefile
 }
 
+do_install_append() {
+       install -d ${D}${sysconfdir}/init.d
+       install -m 755 ${WORKDIR}/squid.init ${D}${sysconfdir}/init.d/squid
+}
+
 # this packages the languages better and saves some space, installs
 # English as errors default and the others in locale package