summaryrefslogtreecommitdiff
path: root/extra/squid
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-06-24 00:04:12 +0000
committerroot <root@rshg054.dnsready.net>2012-06-24 00:04:12 +0000
commit4319f36e44d4e7c70bf010c3286bb1739c59d4de (patch)
tree570e5a756192067d69cbabeab8fcf6b81cec3c51 /extra/squid
parent11357a5ab02a7d536375fb8333b2fb67278b4a36 (diff)
Sun Jun 24 00:04:11 UTC 2012
Diffstat (limited to 'extra/squid')
-rw-r--r--extra/squid/PKGBUILD84
-rw-r--r--extra/squid/squid28
-rw-r--r--extra/squid/squid.cron11
-rw-r--r--extra/squid/squid.service13
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