diff options
Diffstat (limited to 'main/squid')
-rw-r--r-- | main/squid/APKBUILD | 278 | ||||
-rw-r--r-- | main/squid/squid-2.7-gentoo.patch | 298 | ||||
-rw-r--r-- | main/squid/squid.confd | 15 | ||||
-rw-r--r-- | main/squid/squid.initd | 97 | ||||
-rw-r--r-- | main/squid/squid.logrotate | 11 | ||||
-rw-r--r-- | main/squid/squid.post-install | 5 |
6 files changed, 704 insertions, 0 deletions
diff --git a/main/squid/APKBUILD b/main/squid/APKBUILD new file mode 100644 index 000000000..ac840cbbd --- /dev/null +++ b/main/squid/APKBUILD @@ -0,0 +1,278 @@ +# Contributor: Carlo Landmeter <clandmeter@gmail.com> +# Maintainer: Carlo Landmeter <clandmeter@gmail.com> +pkgname=squid +pkgver=2.7.6 +_ver=2.7.STABLE6 +pkgrel=5 +pkgdesc="A full-featured Web proxy cache server." +url="http://www.squid-cache.org" +install="squid.post-install" +license="GPL-2" +depends="$pkgname-errors-english logrotate" +makedepends="openssl-dev perl-dev autoconf automake" +subpackages="$pkgname-doc + $pkgname-errors-armenian:errors_armenian + $pkgname-errors-azerbaijani:errors_azerbaijani + $pkgname-errors-bulgarian:errors_bulgarian + $pkgname-errors-catalan:errors_catalan + $pkgname-errors-czech:errors_czech + $pkgname-errors-danish:errors_danish + $pkgname-errors-dutch:errors_dutch + $pkgname-errors-english:errors_english + $pkgname-errors-estonian:errors_estonian + $pkgname-errors-finnish:errors_finnish + $pkgname-errors-french:errors_french + $pkgname-errors-german:errors_german + $pkgname-errors-greek:errors_greek + $pkgname-errors-hebrew:errors_hebrew + $pkgname-errors-hungarian:errors_hungarian + $pkgname-errors-italian:errors_italian + $pkgname-errors-japanese:errors_japanese + $pkgname-errors-korean:errors_korean + $pkgname-errors-lithuanian:errors_lithuanian + $pkgname-errors-polish:errors_polish + $pkgname-errors-portuguese:errors_portuguese + $pkgname-errors-romanian:errors_romanian + $pkgname-errors-russian-1251:errors_russian_1251 + $pkgname-errors-russian-koi8-r:errors_russian_koi8_r + $pkgname-errors-serbian:errors_serbian + $pkgname-errors-simplify_chinese:errors_simplify_chinese + $pkgname-errors-slovak:errors_slovak + $pkgname-errors-spanish:errors_spanish + $pkgname-errors-swedish:errors_swedish + $pkgname-errors-traditional_chinese:errors_traditional_chinese + $pkgname-errors-turkish:errors_turkish + $pkgname-errors-ukrainian-1251:errors_ukrainian_1251 + $pkgname-errors-ukrainian-koi8-u:errors_ukrainian_koi8_u + $pkgname-errors-ukrainian-utf8:errors_ukrainian_utf8" + +source="http://www.squid-cache.org/Versions/v2/2.7/${pkgname}-${_ver}.tar.bz2 + squid.initd + squid.confd + squid.post-install + squid-2.7-gentoo.patch + $pkgname.logrotate + " + +build() { + cd "$srcdir/$pkgname-$_ver" + + patch -p1 -i "$srcdir"/squid-2.7-gentoo.patch || return 1 + touch NEWS AUTHORS + aclocal && autoconf && automake -a || return 1 + + ./configure --prefix=/usr --datadir=/usr/share/squid \ + --sysconfdir=/etc/squid --libexecdir=/usr/lib/squid \ + --localstatedir=/var --enable-auth="basic,digest,ntlm" \ + --enable-removal-policies="lru,heap" \ + --enable-digest-auth-helpers="password" \ + --enable-storeio="aufs,ufs,diskd,coss,null" \ + --enable-basic-auth-helpers="getpwnam,NCSA,SMB,MSNT,multi-domain-NTLM" \ + --enable-external-acl-helpers="ip_user,unix_group,wbinfo_group" \ + --enable-ntlm-auth-helpers="SMB,fakeauth,no_check" \ + --enable-delay-pools --enable-arp-acl --enable-ssl \ + --enable-linux-netfilter --enable-ident-lookups \ + --enable-useragent-log --enable-cache-digests --enable-referer-log \ + --enable-async-io --enable-truncate --enable-arp-acl \ + --enable-htcp --enable-carp --enable-poll --with-maxfd=4096 \ + --enable-follow-x-forwarded-for + + make || return 1 + make DESTDIR="$pkgdir" install + + install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname + install -m644 -D "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname + install -m644 -D "$srcdir"/$pkgname.logrotate \ + "$pkgdir"/etc/logrotate.d/squid + + mkdir -p "$pkgdir"/var/cache/squid "$pkgdir"/var/log/squid + chmod +x "$pkgdir"/usr/lib/squid/* +} + + +_mv_error() { + local d=usr/share/squid/errors + mkdir -p "$subpkgdir/$d" + mv "$pkgdir/$d/${1}" "$subpkgdir/$d/" || return 1 + # last one removed the dir + rmdir "$pkgdir/$d" 2>/dev/null + return 0 +} + +errors_armenian() { + depends="$pkgname" + _mv_error Armenian +} + +errors_azerbaijani() { + depends="$pkgname" + _mv_error Azerbaijani +} + +errors_bulgarian() { + depends="$pkgname" + _mv_error Bulgarian +} + +errors_catalan() { + depends="$pkgname" + _mv_error Catalan +} + +errors_czech() { + depends="$pkgname" + _mv_error Czech +} + +errors_danish() { + depends="$pkgname" + _mv_error Danish +} + +errors_dutch() { + depends="$pkgname" + _mv_error Dutch +} + +errors_english() { + depends="$pkgname" + _mv_error English +} + +errors_estonian() { + depends="$pkgname" + _mv_error Estonian +} + +errors_finnish() { + depends="$pkgname" + _mv_error Finnish +} + +errors_french() { + depends="$pkgname" + _mv_error French +} + +errors_german() { + depends="$pkgname" + _mv_error German +} + +errors_greek() { + depends="$pkgname" + _mv_error Greek +} + +errors_hebrew() { + depends="$pkgname" + _mv_error Hebrew +} + +errors_hungarian() { + depends="$pkgname" + _mv_error Hungarian +} + +errors_italian() { + depends="$pkgname" + _mv_error Italian +} + +errors_japanese() { + depends="$pkgname" + _mv_error Japanese +} + +errors_korean() { + depends="$pkgname" + _mv_error Korean +} + +errors_lithuanian() { + depends="$pkgname" + _mv_error Lithuanian +} + +errors_polish() { + depends="$pkgname" + _mv_error Polish +} + +errors_portuguese() { + depends="$pkgname" + _mv_error Portuguese +} + +errors_romanian() { + depends="$pkgname" + _mv_error Romanian +} + +errors_russian_1251() { + depends="$pkgname" + _mv_error Russian-1251 +} + +errors_russian_koi8_r() { + depends="$pkgname" + _mv_error Russian-koi8-r +} + +errors_serbian() { + depends="$pkgname" + _mv_error Serbian +} + +errors_simplify_chinese() { + depends="$pkgname" + _mv_error Simplify_Chinese +} + +errors_slovak() { + depends="$pkgname" + _mv_error Slovak +} + +errors_spanish() { + depends="$pkgname" + _mv_error Spanish +} + +errors_swedish() { + depends="$pkgname" + _mv_error Swedish +} + +errors_traditional_chinese() { + depends="$pkgname" + _mv_error Traditional_Chinese +} + +errors_turkish() { + depends="$pkgname" + _mv_error Turkish +} + +errors_ukrainian_1251() { + depends="$pkgname" + _mv_error Ukrainian-1251 +} + +errors_ukrainian_koi8_u() { + depends="$pkgname" + _mv_error Ukrainian-koi8-u +} + +errors_ukrainian_utf8() { + depends="$pkgname" + _mv_error Ukrainian-utf8 +} + + +md5sums="6de3a6a7a56a7ecae092f2d31a04f039 squid-2.7.STABLE6.tar.bz2 +d31f293cf10a90bc3d60aa6428889db5 squid.initd +44b052db7910f386ef88ddcf69c9ba4e squid.confd +9bf350646e321f7c38ffeb9af828ec98 squid.post-install +1d33108353d788b238d9a8877bf2e401 squid-2.7-gentoo.patch +58823e0b86bc2dc71d270208b7b284b4 squid.logrotate" diff --git a/main/squid/squid-2.7-gentoo.patch b/main/squid/squid-2.7-gentoo.patch new file mode 100644 index 000000000..5ac174dee --- /dev/null +++ b/main/squid/squid-2.7-gentoo.patch @@ -0,0 +1,298 @@ +Gentoo squid patch for 2.7.4 + +http://sources.gentoo.org/viewcvs.py/gentoo-x86/net-proxy/squid/files/squid-2.7.4-gentoo.patch?view=markup + +--- squid-2.7.STABLE6/configure.in Wed Feb 4 00:44:06 2009 ++++ squid-2.7.STABLE6-patched/configure.in Mon Feb 16 11:56:34 2009 +@@ -18,9 +18,9 @@ + PRESET_LDFLAGS="$LDFLAGS" + + dnl Set default LDFLAGS +-if test -z "$LDFLAGS"; then +- LDFLAGS="-g" +-fi ++dnl if test -z "$LDFLAGS"; then ++dnl LDFLAGS="-g" ++dnl fi + + dnl Check for GNU cc + AC_PROG_CC +--- squid-2.7.STABLE6/helpers/basic_auth/MSNT/confload.c Wed Jun 26 19:09:48 2002 ++++ squid-2.7.STABLE6-patched/helpers/basic_auth/MSNT/confload.c Mon Feb 16 11:56:34 2009 +@@ -24,7 +24,7 @@ + + /* Path to configuration file */ + #ifndef SYSCONFDIR +-#define SYSCONFDIR "/usr/local/squid/etc" ++#define SYSCONFDIR "/etc/squid" + #endif + #define CONFIGFILE SYSCONFDIR "/msntauth.conf" + +--- squid-2.7.STABLE6/helpers/basic_auth/MSNT/msntauth.conf.default Wed Jun 26 18:44:28 2002 ++++ squid-2.7.STABLE6-patched/helpers/basic_auth/MSNT/msntauth.conf.default Mon Feb 16 11:56:34 2009 +@@ -8,6 +8,6 @@ + server other_PDC other_BDC otherdomain + + # Denied and allowed users. Comment these if not needed. +-#denyusers /usr/local/squid/etc/msntauth.denyusers +-#allowusers /usr/local/squid/etc/msntauth.allowusers ++#denyusers /etc/squid/msntauth.denyusers ++#allowusers /etc/squid/msntauth.allowusers + +--- squid-2.7.STABLE6/helpers/basic_auth/SMB/Makefile.am Tue May 17 16:56:26 2005 ++++ squid-2.7.STABLE6-patched/helpers/basic_auth/SMB/Makefile.am Mon Feb 16 11:56:34 2009 +@@ -14,7 +14,7 @@ + ## FIXME: autoconf should test for the samba path. + + SMB_AUTH_HELPER = smb_auth.sh +-SAMBAPREFIX=/usr/local/samba ++SAMBAPREFIX=/usr + SMB_AUTH_HELPER_PATH = $(libexecdir)/$(SMB_AUTH_HELPER) + + libexec_SCRIPTS = $(SMB_AUTH_HELPER) +--- squid-2.7.STABLE6/helpers/basic_auth/SMB/smb_auth.sh Sun Jan 7 23:36:46 2001 ++++ squid-2.7.STABLE6-patched/helpers/basic_auth/SMB/smb_auth.sh Mon Feb 16 11:56:34 2009 +@@ -24,7 +24,7 @@ + read AUTHSHARE + read AUTHFILE + read SMBUSER +-read SMBPASS ++read -r SMBPASS + + # Find domain controller + echo "Domain name: $DOMAINNAME" +@@ -47,7 +47,7 @@ + addropt="" + fi + echo "Query address options: $addropt" +-dcip=`$SAMBAPREFIX/bin/nmblookup $addropt "$PASSTHROUGH#1c" | awk '/^[0-9.]+ / { print $1 ; exit }'` ++dcip=`$SAMBAPREFIX/bin/nmblookup $addropt "$PASSTHROUGH#1c" | awk '/^[0-9.]+\..+ / { print $1 ; exit }'` + echo "Domain controller IP address: $dcip" + [ -n "$dcip" ] || exit 1 + +--- squid-2.7.STABLE6/helpers/external_acl/session/squid_session.8 Sat Jan 6 17:28:35 2007 ++++ squid-2.7.STABLE6-patched/helpers/external_acl/session/squid_session.8 Mon Feb 16 11:56:34 2009 +@@ -35,7 +35,7 @@ + .P + Configuration example using the default automatic mode + .IP +-external_acl_type session ttl=300 negative_ttl=0 children=1 concurrency=200 %LOGIN /usr/local/squid/libexec/squid_session ++external_acl_type session ttl=300 negative_ttl=0 children=1 concurrency=200 %LOGIN /usr/libexec/squid/squid_session + .IP + acl session external session + .IP +--- squid-2.7.STABLE6/helpers/external_acl/unix_group/squid_unix_group.8 Sun May 14 15:07:24 2006 ++++ squid-2.7.STABLE6-patched/helpers/external_acl/unix_group/squid_unix_group.8 Mon Feb 16 11:56:34 2009 +@@ -27,7 +27,7 @@ + This squid.conf example defines two Squid acls. usergroup1 matches users in group1, and usergroup2 + matches users in group2 or group3 + .IP +-external_acl_type unix_group %LOGIN /usr/local/squid/libexec/squid_unix_group -p ++external_acl_type unix_group %LOGIN /usr/libexec/squid/squid_unix_group -p + .IP + acl usergroup1 external unix_group group1 + .IP +--- squid-2.7.STABLE6/src/Makefile.am Wed Jan 2 15:50:39 2008 ++++ squid-2.7.STABLE6-patched/src/Makefile.am Mon Feb 16 11:56:34 2009 +@@ -340,13 +340,13 @@ + DEFAULT_CONFIG_FILE = $(sysconfdir)/squid.conf + DEFAULT_MIME_TABLE = $(sysconfdir)/mime.conf + DEFAULT_DNSSERVER = $(libexecdir)/`echo dnsserver | sed '$(transform);s/$$/$(EXEEXT)/'` +-DEFAULT_LOG_PREFIX = $(localstatedir)/logs ++DEFAULT_LOG_PREFIX = $(localstatedir)/log/squid + DEFAULT_CACHE_LOG = $(DEFAULT_LOG_PREFIX)/cache.log + DEFAULT_ACCESS_LOG = $(DEFAULT_LOG_PREFIX)/access.log + DEFAULT_STORE_LOG = $(DEFAULT_LOG_PREFIX)/store.log +-DEFAULT_PID_FILE = $(DEFAULT_LOG_PREFIX)/squid.pid ++DEFAULT_PID_FILE = $(localstatedir)/run/squid.pid + DEFAULT_NETDB_FILE = $(DEFAULT_LOG_PREFIX)/netdb.state +-DEFAULT_SWAP_DIR = $(localstatedir)/cache ++DEFAULT_SWAP_DIR = $(localstatedir)/cache/squid + DEFAULT_PINGER = $(libexecdir)/`echo pinger | sed '$(transform);s/$$/$(EXEEXT)/'` + DEFAULT_UNLINKD = $(libexecdir)/`echo unlinkd | sed '$(transform);s/$$/$(EXEEXT)/'` + DEFAULT_DISKD = $(libexecdir)/`echo diskd-daemon | sed '$(transform);s/$$/$(EXEEXT)/'` +--- squid-2.7.STABLE6/src/access_log.c Tue Mar 18 02:48:43 2008 ++++ squid-2.7.STABLE6-patched/src/access_log.c Mon Feb 16 11:56:34 2009 +@@ -1261,7 +1261,7 @@ + LogfileStatus = LOG_ENABLE; + } + #if HEADERS_LOG +- headerslog = logfileOpen("/usr/local/squid/logs/headers.log", MAX_URL << 1, 0); ++ headerslog = logfileOpen("/var/log/squid/headers.log", MAX_URL << 1, 0); + assert(NULL != headerslog); + #endif + #if FORW_VIA_DB +--- squid-2.7.STABLE6/src/cf.data.pre Mon Feb 2 11:28:55 2009 ++++ squid-2.7.STABLE6-patched/src/cf.data.pre Mon Feb 16 11:56:34 2009 +@@ -678,6 +678,8 @@ + acl Safe_ports port 488 # gss-http + acl Safe_ports port 591 # filemaker + acl Safe_ports port 777 # multiling http ++acl Safe_ports port 901 # SWAT ++acl purge method PURGE + acl CONNECT method CONNECT + NOCOMMENT_END + DOC_END +@@ -711,6 +713,9 @@ + # Only allow cachemgr access from localhost + http_access allow manager localhost + http_access deny manager ++# Only allow purge requests from localhost ++http_access allow purge localhost ++http_access deny purge + # Deny requests to unknown ports + http_access deny !Safe_ports + # Deny CONNECT to other than SSL ports +@@ -728,6 +733,9 @@ + # from where browsing should be allowed + http_access allow localnet + ++# Allow the localhost to have access by default ++http_access allow localhost ++ + # And finally deny all other access to this proxy + http_access deny all + NOCOMMENT_END +@@ -3754,11 +3762,11 @@ + + NAME: cache_mgr + TYPE: string +-DEFAULT: webmaster ++DEFAULT: root + LOC: Config.adminEmail + DOC_START + Email-address of local cache manager who will receive +- mail if the cache dies. The default is "webmaster". ++ mail if the cache dies. The default is "root". + DOC_END + + NAME: mail_from +@@ -3787,12 +3795,12 @@ + + NAME: cache_effective_user + TYPE: string +-DEFAULT: nobody ++DEFAULT: squid + LOC: Config.effectiveUser + DOC_START + If you start Squid as root, it will change its effective/real + UID/GID to the user specified below. The default is to change +- to UID to nobody. If you define cache_effective_user, but not ++ to UID to squid. If you define cache_effective_user, but not + cache_effective_group, Squid sets the GID to the effective + user's default group ID (taken from the password file) and + supplementary group list from the from groups membership of +@@ -4429,12 +4437,12 @@ + NAME: snmp_port + TYPE: ushort + LOC: Config.Port.snmp +-DEFAULT: 3401 ++DEFAULT: 0 + IFDEF: SQUID_SNMP + DOC_START + Squid can now serve statistics and status information via SNMP. +- By default it listens to port 3401 on the machine. If you don't +- wish to use SNMP, set this to "0". ++ By default snmp_port is disabled. If you wish to use SNMP, ++ set this to "3401" (or any other number you like). + DOC_END + + NAME: snmp_access +@@ -4505,12 +4513,12 @@ + NAME: htcp_port + IFDEF: USE_HTCP + TYPE: ushort +-DEFAULT: 4827 ++DEFAULT: 0 + LOC: Config.Port.htcp + DOC_START + The port number where Squid sends and receives HTCP queries to +- and from neighbor caches. Default is 4827. To disable use +- "0". ++ and from neighbor caches. To turn it on you want to set it to ++ 4827. By default it is set to "0" (disabled). + DOC_END + + NAME: log_icp_queries +@@ -5407,6 +5415,9 @@ + If you disable this, it will appear as + + X-Forwarded-For: unknown ++NOCOMMENT_START ++forwarded_for off ++NOCOMMENT_END + DOC_END + + NAME: cachemgr_passwd +--- squid-2.7.STABLE6/src/client_side.c Mon Oct 6 21:27:44 2008 ++++ squid-2.7.STABLE6-patched/src/client_side.c Mon Feb 16 11:56:34 2009 +@@ -4706,14 +4706,7 @@ + debug(83, 2) ("clientNegotiateSSL: Session %p reused on FD %d (%s:%d)\n", SSL_get_session(ssl), fd, fd_table[fd].ipaddr, (int) fd_table[fd].remote_port); + } else { + if (do_debug(83, 4)) { +- /* Write out the SSL session details.. actually the call below, but +- * OpenSSL headers do strange typecasts confusing GCC.. */ +- /* PEM_write_SSL_SESSION(debug_log, SSL_get_session(ssl)); */ +-#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x00908000L +- PEM_ASN1_write((i2d_of_void *) i2d_SSL_SESSION, PEM_STRING_SSL_SESSION, debug_log, (char *) SSL_get_session(ssl), NULL, NULL, 0, NULL, NULL); +-#else + PEM_ASN1_write(i2d_SSL_SESSION, PEM_STRING_SSL_SESSION, debug_log, (char *) SSL_get_session(ssl), NULL, NULL, 0, NULL, NULL); +-#endif + /* Note: This does not automatically fflush the log file.. */ + } + debug(83, 2) ("clientNegotiateSSL: New session %p on FD %d (%s:%d)\n", SSL_get_session(ssl), fd, fd_table[fd].ipaddr, (int) fd_table[fd].remote_port); +--- squid-2.7.STABLE6/src/defines.h Mon Sep 24 13:31:19 2007 ++++ squid-2.7.STABLE6-patched/src/defines.h Mon Feb 16 11:56:34 2009 +@@ -259,7 +259,7 @@ + + /* were to look for errors if config path fails */ + #ifndef DEFAULT_SQUID_ERROR_DIR +-#define DEFAULT_SQUID_ERROR_DIR "/usr/local/squid/etc/errors" ++#define DEFAULT_SQUID_ERROR_DIR "/usr/share/squid/errors/English" + #endif + + /* gb_type operations */ +--- squid-2.7.STABLE6/src/main.c Thu Sep 25 02:21:52 2008 ++++ squid-2.7.STABLE6-patched/src/main.c Mon Feb 16 11:56:34 2009 +@@ -376,6 +376,22 @@ + asnFreeMemory(); + } + ++#if USE_UNLINKD ++static int ++needUnlinkd(void) ++{ ++ int i; ++ int r = 0; ++ for (i = 0; i < Config.cacheSwap.n_configured; i++) { ++ if (strcmp(Config.cacheSwap.swapDirs[i].type, "ufs") == 0 || ++ strcmp(Config.cacheSwap.swapDirs[i].type, "aufs") == 0 || ++ strcmp(Config.cacheSwap.swapDirs[i].type, "diskd") == 0) ++ r++; ++ } ++ return r; ++} ++#endif ++ + static void + mainReconfigure(void) + { +@@ -614,7 +630,7 @@ + + if (!configured_once) { + #if USE_UNLINKD +- unlinkdInit(); ++ if (needUnlinkd()) unlinkdInit(); + #endif + urlInitialize(); + cachemgrInit(); +@@ -636,6 +652,9 @@ + #endif + #if USE_WCCPv2 + wccp2Init(); ++#endif ++#if USE_UNLINKD ++ if (needUnlinkd()) unlinkdInit(); + #endif + serverConnectionsOpen(); + neighbors_init(); diff --git a/main/squid/squid.confd b/main/squid/squid.confd new file mode 100644 index 000000000..14a9ee84b --- /dev/null +++ b/main/squid/squid.confd @@ -0,0 +1,15 @@ +# Copyright 1999-2004 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/www/viewcvs.gentoo.org/raw_cvs/gentoo-x86/net-proxy/squid/files/squid.confd,v 1.2 2008/11/30 19:20:44 mrness Exp $ + +# Config file for /etc/init.d/squid + +SQUID_OPTS="-DYC" + +# Max. number of filedescriptors to use. You can increase this on a busy +# cache to a maximum of (currently) 8192 filedescriptors. Default is 1024. +SQUID_MAXFD=1024 + +# Kerberos keytab file to use. This is required if you enable kerberos authentication. +SQUID_KEYTAB="" + diff --git a/main/squid/squid.initd b/main/squid/squid.initd new file mode 100644 index 000000000..bbdc2bed2 --- /dev/null +++ b/main/squid/squid.initd @@ -0,0 +1,97 @@ +#!/sbin/runscript +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/www/viewcvs.gentoo.org/raw_cvs/gentoo-x86/net-proxy/squid/files/squid.initd,v 1.10 2008/11/30 19:20:44 mrness Exp $ + +opts="${opts} reload rotate" + +depend() { + need net +} + +# Try to increase the # of filedescriptors we can open. +maxfds() { + [ -n "$SQUID_MAXFD" ] || return + [ -f /proc/sys/fs/file-max ] || return 0 + [ $SQUID_MAXFD -le 8192 ] || SQUID_MAXFD=8192 + local global_file_max=`cat /proc/sys/fs/file-max` + local minimal_file_max=$(($SQUID_MAXFD + 4096)) + if [ "$global_file_max" -lt $minimal_file_max ]; then + echo $minimal_file_max > /proc/sys/fs/file-max + fi + ulimit -n $SQUID_MAXFD +} + +checkconfig() { + maxfds + + local CACHE_SWAP=$(awk '/^[ \t]*cache_dir[ \t]+/ { if ($2 == "coss" ) printf "%s/stripe ", $3 ; else printf "%s/00 ", $3; }' < /etc/squid/squid.conf) + [ -z "$CACHE_SWAP" ] && CACHE_SWAP="/var/cache/squid/00" + + local x + for x in $CACHE_SWAP ; do + if [ ! -e $x ] ; then + ebegin "Initializing cache directories" + local ORIG_UMASK=$(umask) + umask 027 + local INIT_CACHE_RESPONSE="$(/usr/sbin/squid -z -N -D 2>&1)" + if [ $? != 0 ] || echo "$INIT_CACHE_RESPONSE" | grep -q "erminated abnormally" ; then + umask $ORIG_UMASK + eend 1 + echo "$INIT_CACHE_RESPONSE" + return 1 + fi + umask $ORIG_UMASK + eend 0 + break + fi + done + + return 0 +} + +start() { + checkconfig || return 1 + ebegin "Starting squid" + KRB5_KTNAME="${SQUID_KEYTAB}" /usr/sbin/squid ${SQUID_OPTS} + eend $? && sleep 1 +} + +stop() { + ebegin "Stopping squid" + /usr/sbin/squid -k shutdown + # Now we have to wait until squid has _really_ stopped. + sleep 1 + if [ -f /var/run/squid.pid ] ; then + einfon "Waiting for squid to shutdown ." + cnt=0 + while [ -f /var/run/squid.pid ] ; do + cnt=$(expr $cnt + 1) + if [ $cnt -gt 60 ] ; then + # Waited 120 seconds now. Fail. + echo + eend 1 "Failed." + break + fi + sleep 2 + echo -n "." + done + echo + fi + eend 0 +} + +reload() { + checkconfig || return 1 + ebegin "Reloading squid" + /usr/sbin/squid -k reconfigure + eend $? +} + +rotate() { + service_started squid || return 1 + ebegin "Rotating logs" + /usr/sbin/squid -k rotate + eend $? +} + diff --git a/main/squid/squid.logrotate b/main/squid/squid.logrotate new file mode 100644 index 000000000..fb3279e01 --- /dev/null +++ b/main/squid/squid.logrotate @@ -0,0 +1,11 @@ +/var/log/squid/*.log { + daily + compress + rotate 5 + missingok + nocreate + sharedscripts + postrotate + /usr/sbin/squid -k rotate + endscript +} diff --git a/main/squid/squid.post-install b/main/squid/squid.post-install new file mode 100644 index 000000000..88df6d26f --- /dev/null +++ b/main/squid/squid.post-install @@ -0,0 +1,5 @@ +#!/bin/sh + +chown squid:squid /var/cache/squid /var/log/squid +exit 0 + |