From 0a05643b928d724c048e4306955642d91f24d33c Mon Sep 17 00:00:00 2001 From: root Date: Tue, 20 Nov 2012 02:04:03 -0800 Subject: Tue Nov 20 02:04:03 PST 2012 --- community/squid/PKGBUILD | 98 +++++++++++++++++++++++++++++++++++++++++++ community/squid/squid | 48 +++++++++++++++++++++ community/squid/squid.conf.d | 4 ++ community/squid/squid.cron | 9 ++++ community/squid/squid.install | 26 ++++++++++++ community/squid/squid.pam | 4 ++ community/squid/squid.service | 13 ++++++ 7 files changed, 202 insertions(+) create mode 100644 community/squid/PKGBUILD create mode 100644 community/squid/squid create mode 100644 community/squid/squid.conf.d create mode 100644 community/squid/squid.cron create mode 100644 community/squid/squid.install create mode 100644 community/squid/squid.pam create mode 100644 community/squid/squid.service (limited to 'community/squid') 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 +# Contributor: Kevin Piche +# Contributor: Tom Newsom +# Maintainer: Mark Coolen + +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 /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 /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 -- cgit v1.2.3-54-g00ecf