diff options
author | root <root@rshg054.dnsready.net> | 2012-06-24 00:04:12 +0000 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2012-06-24 00:04:12 +0000 |
commit | 4319f36e44d4e7c70bf010c3286bb1739c59d4de (patch) | |
tree | 570e5a756192067d69cbabeab8fcf6b81cec3c51 /extra/squid | |
parent | 11357a5ab02a7d536375fb8333b2fb67278b4a36 (diff) |
Sun Jun 24 00:04:11 UTC 2012
Diffstat (limited to 'extra/squid')
-rw-r--r-- | extra/squid/PKGBUILD | 84 | ||||
-rw-r--r-- | extra/squid/squid | 28 | ||||
-rw-r--r-- | extra/squid/squid.cron | 11 | ||||
-rw-r--r-- | extra/squid/squid.service | 13 |
4 files changed, 88 insertions, 48 deletions
diff --git a/extra/squid/PKGBUILD b/extra/squid/PKGBUILD index 46b3c23cd..9bc98ab71 100644 --- a/extra/squid/PKGBUILD +++ b/extra/squid/PKGBUILD @@ -1,28 +1,35 @@ -# $Id: PKGBUILD 161289 2012-06-08 23:27:08Z dreisner $ +# $Id: PKGBUILD 162165 2012-06-22 13:00:02Z dreisner $ # Maintainer: Kevin Piche <kevin@archlinux.org> # Contributor: Tom Newsom <Jeepster@gmx.co.uk> pkgname=squid pkgver=3.1.20 -pkgrel=1 +pkgrel=2 pkgdesc="A full-featured Web proxy cache server." arch=('i686' 'x86_64') url="http://www.squid-cache.org" depends=('openssl' 'pam' 'cron' 'perl' 'libltdl') makedepends=('libcap') license=('GPL') -backup=('etc/squid/squid.conf' 'etc/squid/mime.conf' 'etc/conf.d/squid') +backup=('etc/squid/squid.conf' + 'etc/squid/mime.conf' + 'etc/conf.d/squid') install=squid.install -source=("http://www.squid-cache.org/Versions/v3/3.1/${pkgname}-${pkgver}.tar.bz2" - 'squid' 'squid.conf.d' 'squid.pam' 'squid.cron') +source=("http://www.squid-cache.org/Versions/v3/3.1/$pkgname-$pkgver.tar.bz2" + 'squid' + 'squid.conf.d' + 'squid.pam' + 'squid.cron' + 'squid.service') md5sums=('c4d733a383c0508fd0746d64a2d7278a' - 'd213b0cc1db72b749bb8c88716fdab39' + '02f7b5bd793f778e40834fd6457d2199' '2383772ef94efddc7b920628bc7ac5b0' '270977cdd9b47ef44c0c427ab9034777' - '5e17df989e2a74e869790c066f61225b') + 'b499c2b725aefd7bd60bec2f1a9de392' + '20e00e1aa1198786795f3da32db3c1d8') build() { - cd "${srcdir}"/${pkgname}-${pkgver} + cd "$pkgname-$pkgver" # gcc 4.6 doesn't support -fhuge-objects. sed '/^ HUGE_OBJECT_FLAG=/ s/"-fhuge-objects"//' -i configure @@ -32,37 +39,56 @@ build() { sed '/^#cache_dir/ s/100/256/ /^NAME: cache_effective_group/ {n;n;s/none/proxy/}' -i src/cf.data.pre - ./configure --prefix=/usr --datadir=/usr/share/squid \ - --sysconfdir=/etc/squid --libexecdir=/usr/lib/squid \ - --localstatedir=/var --with-logdir=/var/log/squid \ - --enable-auth="basic,digest,ntlm" --enable-removal-policies="lru,heap" \ - --enable-digest-auth-helpers="password" --enable-storeio="aufs,ufs,diskd" \ + ./configure \ + --prefix=/usr \ + --datadir=/usr/share/squid \ + --sysconfdir=/etc/squid \ + --libexecdir=/usr/lib/squid \ + --localstatedir=/var \ + --with-logdir=/var/log/squid \ + --with-pidfile=/run/squid.pid \ + --enable-auth="basic,digest,ntlm" \ + --enable-removal-policies="lru,heap" \ + --enable-digest-auth-helpers="password" \ + --enable-storeio="aufs,ufs,diskd" \ --enable-basic-auth-helpers="getpwnam,YP,NCSA,SMB,MSNT,PAM,multi-domain-NTLM" \ --enable-external-acl-helpers="ip_user,unix_group,wbinfo_group" \ --enable-ntlm-auth-helpers="smb_lm,fakeauth,no_check" \ - --enable-delay-pools --enable-arp-acl --enable-ssl --enable-snmp \ - --enable-linux-netfilter --enable-ident-lookups \ - --enable-useragent-log --enable-cache-digests --enable-referer-log \ - --enable-arp-acl --enable-htcp --enable-carp --enable-epoll \ - --with-filedescriptors=4096 --with-large-files --enable-arp-acl \ + --enable-delay-pools \ + --enable-arp-acl \ + --enable-ssl \ + --enable-snmp \ + --enable-linux-netfilter \ + --enable-ident-lookups \ + --enable-useragent-log \ + --enable-cache-digests \ + --enable-referer-log \ + --enable-arp-acl \ + --enable-htcp \ + --enable-carp \ + --enable-epoll \ + --with-filedescriptors=4096 \ + --with-large-files \ + --enable-arp-acl \ --with-default-user=proxy \ - --enable-async-io --enable-truncate -#some versions have build problems with both async and truncate enabled: -# --enable-async-io + --enable-async-io \ + --enable-truncate make } package() { - cd "${srcdir}"/${pkgname}-${pkgver} - make DESTDIR="${pkgdir}" install + make -C "$pkgname-$pkgver" DESTDIR="$pkgdir" install - install -D -m755 "${srcdir}"/squid "${pkgdir}"/etc/rc.d/squid - install -D -m755 "${srcdir}"/squid.cron "${pkgdir}"/etc/cron.weekly/squid - install -D -m644 "${srcdir}"/squid.conf.d "${pkgdir}"/etc/conf.d/squid - install -D -m644 "${srcdir}"/squid.pam "${pkgdir}"/etc/pam.d/squid + install -Dm755 "$srcdir"/squid "$pkgdir"/etc/rc.d/squid + install -Dm755 "$srcdir"/squid.cron "$pkgdir"/etc/cron.weekly/squid + install -Dm644 "$srcdir"/squid.conf.d "$pkgdir"/etc/conf.d/squid + install -Dm644 "$srcdir"/squid.pam "$pkgdir"/etc/pam.d/squid - # avoid conflict with filesystem>=2012.06 - rmdir "$pkgdir/var/run" + install -Dm644 "$srcdir/squid.service" "$pkgdir/usr/lib/systemd/system/squid.service" + + # random unneeded empty dir... + rmdir "$pkgdir/usr/include" } + # vim: ts=2 sw=2 et ft=sh diff --git a/extra/squid/squid b/extra/squid/squid index 2df1fc72d..da5534427 100644 --- a/extra/squid/squid +++ b/extra/squid/squid @@ -1,23 +1,21 @@ #!/bin/bash # source application-specific settings -SQUID_ARGS= -[ -f /etc/conf.d/squid ] && . /etc/conf.d/squid +[[ -f /etc/conf.d/squid ]] && . /etc/conf.d/squid . /etc/rc.conf . /etc/rc.d/functions -PID=`pidof -o %PPID /usr/sbin/squid` -case "$1" in +pidfile=/run/squid.pid +{ read -r PID </run/squid.pid; } 2>/dev/null +if [[ $pid && ! /proc/$pid/exe -ef /usr/sbin/squid ]]; then + rm /run/squid.pid +fi +case $1 in start) - if [ ! -f /var/cache/squid/swap.state ]; then - stat_busy "Creating squid's swap directories" - /usr/sbin/squid -z - fi stat_busy "Starting squid" - [ -z "$PID" ] && /usr/sbin/squid ${SQUID_ARGS} - if [ $? -gt 0 ]; then + if [[ $PID ]] || ! squid $SQUID_ARGS; then stat_fail else add_daemon squid @@ -27,12 +25,11 @@ case "$1" in stop) stat_busy "Stopping squid" - [ ! -z "$PID" ] && /usr/sbin/squid -k shutdown &> /dev/null - if [ $? -gt 0 ]; then + if [[ -z $PID ]] || ! squid -k shutdown &>/dev/null; then stat_fail else - # wait for squid to shutdown so we can safely do a restart - while [ ! -z "`pidof -o %PPID /usr/sbin/squid`" ]; do + # squid takes forever to shutdown all its listening FDs + while [[ /proc/$PID/exe -ef /usr/sbin/squid ]]; do stat_append "." sleep 3 done @@ -43,10 +40,9 @@ case "$1" in restart) $0 stop - sleep 5 $0 start ;; *) - echo "usage: $0 {start|stop|restart}" + echo "usage: $0 {start|stop|restart}" esac exit 0 diff --git a/extra/squid/squid.cron b/extra/squid/squid.cron index c2b5bc9ce..c78e51105 100644 --- a/extra/squid/squid.cron +++ b/extra/squid/squid.cron @@ -1,4 +1,9 @@ -#!/bin/bash +#!/bin/sh -PID=`pidof -o %PPID /usr/sbin/squid` -[ -n "$PID" ] && /usr/sbin/squid -k rotate +# exit without error if no pidfile exists +{ read pid </run/squid.pid; } 2>/dev/null || exit 0 + +# make sure found PID really is a squid process +if [ /proc/$pid/exec -ef /usr/sbin/squid ]; then + /usr/sbin/squid -k rotate +fi diff --git a/extra/squid/squid.service b/extra/squid/squid.service new file mode 100644 index 000000000..9d41cc243 --- /dev/null +++ b/extra/squid/squid.service @@ -0,0 +1,13 @@ +[Unit] +Description=Web Proxy Cache Server +After=network.target + +[Service] +Type=forking +PIDFile=/run/squid.pid +ExecStart=/usr/sbin/squid -sYC +ExecStop=/usr/sbin/squid -k shutdown +ExecReload=/usr/sbin/squid -k reconfigure + +[Install] +WantedBy=multi-user.target |