From 4c87a2194276a51024de7a1aa15bada9798687cf Mon Sep 17 00:00:00 2001 From: Jeremy Laine Date: Wed, 26 Mar 2008 14:18:00 +0000 Subject: squid: improve configuration defaults and provide init script * provide sane defaults for configuration file (based on Debian package) * provide an init script for squid which creates log/cache directories as needed --- MAINTAINERS | 2 +- packages/squid/squid/.mtn2git_empty | 0 packages/squid/squid/fix_epoll_check.patch | 11 +++++ packages/squid/squid/squid.init | 70 ++++++++++++++++++++++++++++++ packages/squid/squid_2.6.STABLE14.bb | 24 ++++++++-- 5 files changed, 103 insertions(+), 4 deletions(-) create mode 100644 packages/squid/squid/.mtn2git_empty create mode 100644 packages/squid/squid/fix_epoll_check.patch create mode 100644 packages/squid/squid/squid.init diff --git a/MAINTAINERS b/MAINTAINERS index 4b74dc2778..de93d236e3 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -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 index 0000000000..e69de29bb2 diff --git a/packages/squid/squid/fix_epoll_check.patch b/packages/squid/squid/fix_epoll_check.patch new file mode 100644 index 0000000000..8f195277fd --- /dev/null +++ b/packages/squid/squid/fix_epoll_check.patch @@ -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 index 0000000000..80573bf6fa --- /dev/null +++ b/packages/squid/squid/squid.init @@ -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 diff --git a/packages/squid/squid_2.6.STABLE14.bb b/packages/squid/squid_2.6.STABLE14.bb index beef3ba2b0..10c20c505e 100644 --- a/packages/squid/squid_2.6.STABLE14.bb +++ b/packages/squid/squid_2.6.STABLE14.bb @@ -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 -- cgit 1.2.3-korg