comparison net-proxy/squid/squid-3.1.10.ebuild @ 268:871206936ec2

bump squid to 3.1.10
author holger
date Thu, 23 Dec 2010 21:30:14 +0100
parents net-proxy/squid/squid-3.1.9.ebuild@a62b22eecde5
children
comparison
equal deleted inserted replaced
267:654c39fb3ff8 268:871206936ec2
1 # Copyright 1999-2010 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Header: /var/cvsroot/gentoo-x86/net-proxy/squid/squid-3.1.8.ebuild,v 1.9 2010/10/09 16:31:59 armin76 Exp $
4
5 EAPI="2"
6
7 inherit eutils pam toolchain-funcs
8
9 DESCRIPTION="A full-featured web proxy cache"
10 HOMEPAGE="http://www.squid-cache.org/"
11 SRC_URI="http://www.squid-cache.org/Versions/v3/3.1/${P}.tar.gz"
12
13 LICENSE="GPL-2"
14 SLOT="0"
15 KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 sparc x86 ~x86-fbsd"
16 IUSE="caps ipv6 pam ldap samba sasl kerberos nis radius ssl snmp selinux logrotate test \
17 ecap icap-client \
18 mysql postgres sqlite \
19 zero-penalty-hit \
20 pf-transparent ipf-transparent kqueue \
21 elibc_uclibc kernel_linux +epoll tproxy"
22 RESTRICT=test
23
24 COMMON_DEPEND="caps? ( >=sys-libs/libcap-2.16 )
25 pam? ( virtual/pam )
26 ldap? ( net-nds/openldap )
27 kerberos? ( virtual/krb5 )
28 ssl? ( dev-libs/openssl )
29 sasl? ( dev-libs/cyrus-sasl )
30 ecap? ( net-libs/libecap )
31 selinux? ( sec-policy/selinux-squid )
32 !x86-fbsd? ( logrotate? ( app-admin/logrotate ) )
33 >=sys-libs/db-4
34 dev-lang/perl"
35 DEPEND="${COMMON_DEPEND}
36 sys-devel/automake
37 sys-devel/autoconf
38 sys-devel/libtool
39 sys-apps/ed
40 test? ( dev-util/cppunit )"
41 RDEPEND="${COMMON_DEPEND}
42 samba? ( net-fs/samba )
43 mysql? ( dev-perl/DBD-mysql )
44 postgres? ( dev-perl/DBD-Pg )
45 sqlite? ( dev-perl/DBD-SQLite )"
46
47 pkg_setup() {
48 if grep -qs '^[[:space:]]*cache_dir[[:space:]]\+coss' "${ROOT}"etc/squid/squid.conf; then
49 eerror "coss store IO has been disabled by upstream due to stability issues!"
50 eerror "If you want to install this version, switch the store type to something else"
51 eerror "before attempting to install this version again."
52
53 die "/etc/squid/squid.conf: cache_dir use a disabled store type"
54 fi
55
56 if use tproxy && ! use caps; then
57 eerror "libcap is required by Transparent Proxy support for Netfilter TPROXY!"
58 eerror "Please enable caps USE flag and try again."
59
60 die "invalid combination of USE flags"
61 fi
62
63 enewgroup squid 31
64 enewuser squid 31 -1 /var/cache/squid squid
65 }
66
67 src_prepare() {
68 epatch "${FILESDIR}"/${P}-gentoo.patch
69
70 # eautoreconf breaks lib/libLtdl/libtool script
71 ./bootstrap.sh || die "autoreconf failed"
72 }
73
74 src_configure() {
75 local myconf=""
76
77 local basic_modules="getpwnam,NCSA,MSNT"
78 use samba && basic_modules="SMB,multi-domain-NTLM,${basic_modules}"
79 use ldap && basic_modules="LDAP,${basic_modules}"
80 use pam && basic_modules="PAM,${basic_modules}"
81 use sasl && basic_modules="SASL,${basic_modules}"
82 use nis && ! use elibc_uclibc && basic_modules="YP,${basic_modules}"
83 use radius && basic_modules="squid_radius_auth,${basic_modules}"
84 if use mysql || use postgres || use sqlite ; then
85 basic_modules="DB,${basic_modules}"
86 fi
87
88 local digest_modules="password"
89 use ldap && digest_modules="ldap,${digest_modules}"
90
91 local ext_helpers="ip_user,session,unix_group"
92 use samba && ext_helpers="wbinfo_group,${ext_helpers}"
93 use ldap && ext_helpers="ldap_group,${ext_helpers}"
94
95 local ntlm_helpers="fakeauth"
96 use samba && ntlm_helpers="smb_lm,${ntlm_helpers}"
97
98 local negotiate_helpers=
99 if use kerberos; then
100 negotiate_helpers="squid_kerb_auth"
101 has_version app-crypt/mit-krb5 \
102 && myconf="--enable-mit --disable-heimdal" \
103 || myconf="--disable-mit --enable-heimdal"
104 fi
105
106 # coss support has been disabled
107 # If it is re-enabled again, make sure you don't enable it for elibc_uclibc (#61175)
108 myconf="${myconf} --enable-storeio=ufs,diskd,aufs"
109
110 if use kernel_linux; then
111 myconf="${myconf} --enable-linux-netfilter
112 $(use_enable tproxy linux-tproxy)
113 $(use_enable epoll)"
114 elif use kernel_FreeBSD || use kernel_OpenBSD || use kernel_NetBSD ; then
115 myconf="${myconf} $(use_enable kqueue)"
116 if use pf-transparent; then
117 myconf="${myconf} --enable-pf-transparent"
118 elif use ipf-transparent; then
119 myconf="${myconf} --enable-ipf-transparent"
120 fi
121 fi
122
123 export CC=$(tc-getCC)
124
125 econf \
126 --sysconfdir=/etc/squid \
127 --libexecdir=/usr/libexec/squid \
128 --localstatedir=/var \
129 --with-pidfile=/var/run/squid.pid \
130 --datadir=/usr/share/squid \
131 --with-logdir=/var/log/squid \
132 --with-default-user=squid \
133 --enable-auth="basic,digest,negotiate,ntlm" \
134 --enable-removal-policies="lru,heap" \
135 --enable-digest-auth-helpers="${digest_modules}" \
136 --enable-basic-auth-helpers="${basic_modules}" \
137 --enable-external-acl-helpers="${ext_helpers}" \
138 --enable-ntlm-auth-helpers="${ntlm_helpers}" \
139 --enable-negotiate-auth-helpers="${negotiate_helpers}" \
140 --enable-useragent-log \
141 --enable-cache-digests \
142 --enable-delay-pools \
143 --enable-referer-log \
144 --enable-arp-acl \
145 --with-large-files \
146 --with-filedescriptors=8192 \
147 --disable-strict-error-checking \
148 $(use_enable caps) \
149 $(use_enable ipv6) \
150 $(use_enable snmp) \
151 $(use_enable ssl) \
152 $(use_enable icap-client) \
153 $(use_enable ecap) \
154 $(use_enable zero-penalty-hit zph-qos) \
155 ${myconf} || die "econf failed"
156 }
157
158 src_install() {
159 emake DESTDIR="${D}" install || die "emake install failed"
160
161 # need suid root for looking into /etc/shadow
162 fowners root:squid /usr/libexec/squid/ncsa_auth
163 fowners root:squid /usr/libexec/squid/pam_auth
164 fperms 4750 /usr/libexec/squid/ncsa_auth
165 fperms 4750 /usr/libexec/squid/pam_auth
166
167 # some cleanups
168 rm -f "${D}"/usr/bin/Run*
169
170 dodoc CONTRIBUTORS CREDITS ChangeLog QUICKSTART SPONSORS doc/*.txt \
171 helpers/ntlm_auth/no_check/README.no_check_ntlm_auth
172 newdoc helpers/basic_auth/SMB/README README.auth_smb
173 dohtml helpers/basic_auth/MSNT/README.html RELEASENOTES.html
174 newdoc helpers/basic_auth/LDAP/README README.auth_ldap
175 doman helpers/basic_auth/LDAP/*.8
176 dodoc helpers/basic_auth/SASL/squid_sasl_auth*
177
178 newpamd "${FILESDIR}/squid.pam" squid
179 newconfd "${FILESDIR}/squid.confd" squid
180 if use logrotate; then
181 newinitd "${FILESDIR}/squid.initd-logrotate" squid
182 insinto /etc/logrotate.d
183 newins "${FILESDIR}/squid.logrotate" squid
184 else
185 newinitd "${FILESDIR}/squid.initd" squid
186 exeinto /etc/cron.weekly
187 newexe "${FILESDIR}/squid.cron" squid.cron
188 fi
189
190 rm -rf "${D}"/var
191 diropts -m0755 -o squid -g squid
192 keepdir /var/cache/squid /var/log/squid
193 }
194
195 pkg_postinst() {
196 echo
197 ewarn "Squid authentication helpers have been installed suid root."
198 ewarn "This allows shadow based authentication (see bug #52977 for more)."
199 echo
200 ewarn "Be careful what type of cache_dir you select!"
201 ewarn " 'diskd' is optimized for high levels of traffic, but it might seem slow"
202 ewarn "when there isn't sufficient traffic to keep squid reasonably busy."
203 ewarn " If your traffic level is low to moderate, use 'aufs' or 'ufs'."
204 echo
205 ewarn "Squid can be configured to run in transparent mode like this:"
206 ewarn " ${HILITE}http_port internal-addr:3128 transparent${NORMAL}"
207 if use zero-penalty-hit; then
208 echo
209 ewarn "In order for zph_preserve_miss_tos to work, you will have to alter your kernel"
210 ewarn "with the patch that can be found on http://zph.bratcheda.org site."
211 fi
212 }