summaryrefslogtreecommitdiff
path: root/community/squid
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-11-20 02:04:03 -0800
committerroot <root@rshg054.dnsready.net>2012-11-20 02:04:03 -0800
commit0a05643b928d724c048e4306955642d91f24d33c (patch)
tree0a11cb4c40549d5a7359a86fccf6e05f65c52128 /community/squid
parent705d29694fd61c47a57ccec531e73d87a2960021 (diff)
Tue Nov 20 02:04:03 PST 2012
Diffstat (limited to 'community/squid')
-rw-r--r--community/squid/PKGBUILD98
-rw-r--r--community/squid/squid48
-rw-r--r--community/squid/squid.conf.d4
-rw-r--r--community/squid/squid.cron9
-rw-r--r--community/squid/squid.install26
-rw-r--r--community/squid/squid.pam4
-rw-r--r--community/squid/squid.service13
7 files changed, 202 insertions, 0 deletions
diff --git a/community/squid/PKGBUILD b/community/squid/PKGBUILD
new file mode 100644
index 000000000..8e4cee10d
--- /dev/null
+++ b/community/squid/PKGBUILD
@@ -0,0 +1,98 @@
+# $Id: PKGBUILD 80303 2012-11-19 15:56:56Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Kevin Piche <kevin@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Maintainer: Mark Coolen <mark.coolen@gmail.com>
+
+pkgname="squid"
+pkgver="3.2.3"
+pkgrel="1"
+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')
+install=squid.install
+source=("http://www.squid-cache.org/Versions/v3/3.2/$pkgname-$pkgver.tar.bz2"
+ 'squid'
+ 'squid.conf.d'
+ 'squid.pam'
+ 'squid.cron'
+ 'squid.service')
+md5sums=('b26171dfd397defd9ee113d555691b86'
+ '02f7b5bd793f778e40834fd6457d2199'
+ '2383772ef94efddc7b920628bc7ac5b0'
+ '270977cdd9b47ef44c0c427ab9034777'
+ 'b499c2b725aefd7bd60bec2f1a9de392'
+ '20e00e1aa1198786795f3da32db3c1d8')
+
+build() {
+ cd "$pkgname-$pkgver"
+
+ # gcc 4.6 doesn't support -fhuge-objects.
+ sed '/^ HUGE_OBJECT_FLAG=/ s/"-fhuge-objects"//' -i configure
+
+ # fix cache_dir, cache_dir size, and effective group.
+ sed '/^DEFAULT_SWAP_DIR/ s@/cache@/cache/squid@' -i src/Makefile.in
+ 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 \
+ --with-pidfile=/run/squid.pid \
+ --enable-auth \
+ --enable-auth-basic \
+ --enable-auth-ntlm \
+ --enable-auth-digest \
+ --enable-auth-negotiate \
+ --enable-removal-policies="lru,heap" \
+ --enable-storeio="aufs,ufs,diskd" \
+ --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
+
+
+
+ make
+}
+
+package() {
+ make -C "$pkgname-$pkgver" DESTDIR="$pkgdir" install
+
+ 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
+
+ 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/community/squid/squid b/community/squid/squid
new file mode 100644
index 000000000..da5534427
--- /dev/null
+++ b/community/squid/squid
@@ -0,0 +1,48 @@
+#!/bin/bash
+
+# source application-specific settings
+[[ -f /etc/conf.d/squid ]] && . /etc/conf.d/squid
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+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)
+ stat_busy "Starting squid"
+ if [[ $PID ]] || ! squid $SQUID_ARGS; then
+ stat_fail
+ else
+ add_daemon squid
+ stat_done
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping squid"
+ if [[ -z $PID ]] || ! squid -k shutdown &>/dev/null; then
+ stat_fail
+ else
+ # squid takes forever to shutdown all its listening FDs
+ while [[ /proc/$PID/exe -ef /usr/sbin/squid ]]; do
+ stat_append "."
+ sleep 3
+ done
+ rm_daemon squid
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/squid/squid.conf.d b/community/squid/squid.conf.d
new file mode 100644
index 000000000..ea248b76c
--- /dev/null
+++ b/community/squid/squid.conf.d
@@ -0,0 +1,4 @@
+#
+# Parameters to be passed to squid
+#
+SQUID_ARGS="-sYC"
diff --git a/community/squid/squid.cron b/community/squid/squid.cron
new file mode 100644
index 000000000..c78e51105
--- /dev/null
+++ b/community/squid/squid.cron
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+# 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/community/squid/squid.install b/community/squid/squid.install
new file mode 100644
index 000000000..e7aa5ff68
--- /dev/null
+++ b/community/squid/squid.install
@@ -0,0 +1,26 @@
+post_install() {
+ if [ -z "$(grep ^proxy: /etc/group)" ]; then
+ usr/sbin/groupadd -g 15 proxy &>/dev/null
+ fi
+
+ id proxy &>/dev/null || \
+ usr/sbin/useradd -u 15 -g proxy -d /var/empty proxy
+
+ chown proxy.proxy var/{cache,log}/squid
+
+# cat << EOF
+#Release notes: http://www.squid-cache.org/Versions/v3/3.1/RELEASENOTES.html
+#EOF
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/userdel proxy &> /dev/null
+ if [ ! -z "$(grep ^proxy: /etc/group)" ]; then
+ usr/sbin/groupdel proxy &>/dev/null
+ fi
+}
+
diff --git a/community/squid/squid.pam b/community/squid/squid.pam
new file mode 100644
index 000000000..df8a8104f
--- /dev/null
+++ b/community/squid/squid.pam
@@ -0,0 +1,4 @@
+#/etc/pam.d/squid
+#
+auth required pam_unix.so
+account required pam_unix.so
diff --git a/community/squid/squid.service b/community/squid/squid.service
new file mode 100644
index 000000000..9d41cc243
--- /dev/null
+++ b/community/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