diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2019-01-03 15:48:53 +0000 |
---|---|---|
committer | layman <layman@localhost> | 2019-01-03 16:29:30 +0000 |
commit | 779374ddc25a82b4c6a0320992eb227ef952650e (patch) | |
tree | a9c8509928f0e4f20df9466be8d8eaab45ba75e4 /net-proxy | |
parent | Add gitfs (diff) | |
download | portage-779374ddc25a82b4c6a0320992eb227ef952650e.tar.bz2 portage-779374ddc25a82b4c6a0320992eb227ef952650e.tar.xz portage-779374ddc25a82b4c6a0320992eb227ef952650e.zip |
Add Squid-4.4
Diffstat (limited to 'net-proxy')
-rw-r--r-- | net-proxy/squid/Manifest | 7 | ||||
-rw-r--r-- | net-proxy/squid/files/squid-4.3-gentoo.patch | 79 | ||||
-rw-r--r-- | net-proxy/squid/files/squid.confd-r2 | 19 | ||||
-rw-r--r-- | net-proxy/squid/files/squid.initd-r5 | 123 | ||||
-rw-r--r-- | net-proxy/squid/files/squid.logrotate | 8 | ||||
-rw-r--r-- | net-proxy/squid/files/squid.pam | 7 | ||||
-rw-r--r-- | net-proxy/squid/squid-4.4-r1.ebuild | 275 |
7 files changed, 518 insertions, 0 deletions
diff --git a/net-proxy/squid/Manifest b/net-proxy/squid/Manifest new file mode 100644 index 0000000..32a7ed6 --- /dev/null +++ b/net-proxy/squid/Manifest @@ -0,0 +1,7 @@ +AUX squid-4.3-gentoo.patch 2767 BLAKE2B fbf424bec42a8bd29f54431107e73db1d1acd7612c8acc4d38022419a72ccabc9d0287fb34cbd26e96df2b6e2aaceae929c1005ef2ad4f731cf28edf66ac569a SHA512 eaf076cef4b60c1f5e9985a69f5ae674082b04a6f70d5b484ad13e9e397a8c67cb1780960a11fd943dc2500ec9f0590192b276bf36451d3063537661200487bf +AUX squid.confd-r2 714 BLAKE2B 9bdefb898904c28e7b64ff864fc81c8ca5a87e62fee96d438b41faa8e75335b06291688f38448f3fa2adca6dc715041136e889badab7ae2003cf460683e2a60b SHA512 df45ad0260ac9a5edddafc7d90f245c4f05957916dcfa23f2e0d6a34f9c96cf22c756add9b63599e0d2a0cff49ad358f7f6fff3a2ef21402a9f65b7376b6b6a9 +AUX squid.initd-r5 4396 BLAKE2B df063df095165c6aa4b625648388b76b1e7d9c927ad0e0e482b34762ed701825397828d03ed6f573a366bf603797022b9cc6c93c8ad935af422cd926595530b0 SHA512 b831cc709995bacc59211271316126e42440cb1ea81e3208e2e948abcf346d2bc147d9e4596eeddeaeea0d472fa95b218e6539ea9da8cc301d4cbcb18ccd9e29 +AUX squid.logrotate 103 BLAKE2B f6d190d1914b76b08d90a2c3b3b07ff9cd332cdb2e595f4849537d1f1d32d8be1386fcdfffb40d073bcdd715a62c1c44727f1e10b75cfaff69c0d042c2a7e904 SHA512 d75a667c3ffa32fdd938ef40df8813a467d9f10b2363107bf915cb0c99834fbe8d0eb502a18a816875b67b0db1b27806ed3caf620c38516040cb644b225f5a55 +AUX squid.pam 209 BLAKE2B 113fa119ce4fd96ddf34b95c1a1ca958b34aea405564076f89abdbb8d4c6a0248ec9fa1a0f5f1d6136643c9abc4c5f67e8ef75305414b374763e2055272950d5 SHA512 5501e3d9319aea99f0deed98748366d4dfbeccdde96d842474fe144a4584394d8f5563372cd7b2437a389378c49b61b646403cca1be4362c888750d027b2f594 +DIST squid-4.4.tar.xz 2436468 BLAKE2B 057fe8d679d8563dcbe6987b895041610f356d811d8fadd24914b6817e7ec167bd37d1be9e3a1772faecd96561cad533a287f2b212cbbe099bfbba7574aa4294 SHA512 8ed45abc65febf2955db11bafd49e940914a58230a8945afab9ea4926c4bafd538474a0836665b4131e23a23d6389d512a40bbe53368b8206ba4765fd71fb21f +EBUILD squid-4.4-r1.ebuild 8376 BLAKE2B c9eb51b5a17ef54f956001eed55b21fb7ee38913eeea6d063d9f31f0b45001b633124caf0fc44df88d4dfb51718ad7cb0eb7d82077fea2879de7f43f060f14b9 SHA512 43131f6326ae7a4b536d6f7d4235b29094ab56356660e274018dd531dc1ac273ec656de9d752344bbe91caafbbd88e961052cb5d2b07027fbbc3cd916bc3d058 diff --git a/net-proxy/squid/files/squid-4.3-gentoo.patch b/net-proxy/squid/files/squid-4.3-gentoo.patch new file mode 100644 index 0000000..f5152b8 --- /dev/null +++ b/net-proxy/squid/files/squid-4.3-gentoo.patch @@ -0,0 +1,79 @@ +--- a/configure.ac 2018-10-14 17:22:35.000000000 +0300 ++++ b/configure.ac 2018-10-17 21:27:24.806986467 +0300 +@@ -32,9 +32,9 @@ PRESET_CXXFLAGS="$CXXFLAGS" + PRESET_LDFLAGS="$LDFLAGS" + + dnl Set default LDFLAGS +-if test "x$LDFLAGS" = "x" ; then +- LDFLAGS="-g" +-fi ++dnl if test "x$LDFLAGS" = "x" ; then ++dnl LDFLAGS="-g" ++dnl fi + + # Check for GNU cc + AC_PROG_CC +--- a/src/cf.data.pre 2018-10-14 08:25:34.000000000 +0300 ++++ b/src/cf.data.pre 2018-10-17 21:27:24.809986705 +0300 +@@ -1520,6 +1520,7 @@ acl Safe_ports port 280 # http-mgmt + 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 CONNECT method CONNECT + NOCOMMENT_END + DOC_END +@@ -6819,11 +6820,11 @@ COMMENT_END + + 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 +--- a/src/debug.cc 2018-10-14 08:25:34.000000000 +0300 ++++ b/src/debug.cc 2018-10-17 21:27:24.807986546 +0300 +@@ -490,7 +490,7 @@ _db_init(const char *logfile, const char + #if HAVE_SYSLOG && defined(LOG_LOCAL4) + + if (Debug::log_syslog) +- openlog(APP_SHORTNAME, LOG_PID | LOG_NDELAY | LOG_CONS, syslog_facility); ++ openlog(APP_SHORTNAME, LOG_PID | LOG_NDELAY, syslog_facility); + + #endif /* HAVE_SYSLOG */ + +--- a/src/main.cc 2018-10-14 08:25:34.000000000 +0300 ++++ b/src/main.cc 2018-10-17 21:28:28.632044541 +0300 +@@ -1912,7 +1912,7 @@ watch_child(const CommandLine &masterCom + + enter_suid(); + +- openlog(APP_SHORTNAME, LOG_PID | LOG_NDELAY | LOG_CONS, LOG_LOCAL4); ++ openlog(APP_SHORTNAME, LOG_PID | LOG_NDELAY, LOG_LOCAL4); + + if (!opt_foreground) + GoIntoBackground(); +@@ -2012,7 +2012,7 @@ watch_child(const CommandLine &masterCom + + if ((pid = fork()) == 0) { + /* child */ +- openlog(APP_SHORTNAME, LOG_PID | LOG_NDELAY | LOG_CONS, LOG_LOCAL4); ++ openlog(APP_SHORTNAME, LOG_PID | LOG_NDELAY, LOG_LOCAL4); + (void)execvp(masterCommand.arg0(), kidCommand.argv()); + int xerrno = errno; + syslog(LOG_ALERT, "execvp failed: %s", xstrerr(xerrno)); +@@ -2024,7 +2024,7 @@ watch_child(const CommandLine &masterCom + } + + /* parent */ +- openlog(APP_SHORTNAME, LOG_PID | LOG_NDELAY | LOG_CONS, LOG_LOCAL4); ++ openlog(APP_SHORTNAME, LOG_PID | LOG_NDELAY, LOG_LOCAL4); + + // If Squid received a signal while checking for dying kids (below) or + // starting new kids (above), then do a fast check for a new dying kid diff --git a/net-proxy/squid/files/squid.confd-r2 b/net-proxy/squid/files/squid.confd-r2 new file mode 100644 index 0000000..7088d7f --- /dev/null +++ b/net-proxy/squid/files/squid.confd-r2 @@ -0,0 +1,19 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +# Config file for /etc/init.d/squid + +SQUID_OPTS="-YC" + +# Kerberos keytab file to use. This is required if you enable kerberos authentication. +SQUID_KEYTAB="" + +# Use max_filedescriptors setting in squid.conf to determine the maximum number +# of filedescriptors squid can open. + +# Set whether Squid should receive two shutdown signals instead of one. If set to "yes", +# Squid will skip the graceful shutdown step, and will try to immediately close all open +# file descriptors and helpers. This is useful if you experience very long delays when +# shutting down the caching proxy. +SQUID_FAST_SHUTDOWN="no" diff --git a/net-proxy/squid/files/squid.initd-r5 b/net-proxy/squid/files/squid.initd-r5 new file mode 100644 index 0000000..2e5fe8d --- /dev/null +++ b/net-proxy/squid/files/squid.initd-r5 @@ -0,0 +1,123 @@ +#!/sbin/openrc-run +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +extra_started_commands="reload rotate" + +depend() { + use dns net +} + +checkconfig() { + local CONFFILES="/etc/squid/${RC_SVCNAME}.conf /etc/squid/${RC_SVCNAME}.include /etc/squid/${RC_SVCNAME}.include.*" + if [ ! -f /etc/squid/${RC_SVCNAME}.conf ]; then + eerror "You need to create /etc/squid/${RC_SVCNAME}.conf first." + eerror "The main configuration file and all included file names should have the following format:" + eerror "${CONFFILES}" + eerror "An example can be found in /etc/squid/squid.conf.default" + return 1 + fi + + local PIDFILE=$(cat ${CONFFILES} 2>/dev/null 3>/dev/null | awk '/^[ \t]*pid_filename[ \t]+/ { print $2 }') + [ -z ${PIDFILE} ] && PIDFILE=/run/squid.pid + if [ /run/${RC_SVCNAME}.pid != ${PIDFILE} ]; then + eerror "/etc/squid/${RC_SVCNAME}.conf must set pid_filename to" + eerror " /run/${RC_SVCNAME}.pid" + eerror "CAUTION: http_port, cache_dir and *_log parameters must be different than" + eerror " in any other instance of squid." + eerror "Make sure the main configuration file and all included file names have the following format:" + eerror "${CONFFILES}" + return 1 + fi + + # Maximum file descriptors squid can open is determined by: + # a basic default of N=1024 + # ... altered by ./configure --with-filedescriptors=N + # ... overridden on production by squid.conf max_filedescriptors (if, + # and only if, setrlimit() RLIMIT_NOFILE is able to be built+used). + # Since we do not configure hard coded # of filedescriptors anymore, + # there is no need for ulimit calls in the init script. + # Use max_filedescriptors in squid.conf instead. + + local CACHE_SWAP=$(cat ${CONFFILES} 2>/dev/null 3>/dev/null | awk '/^[ \t]*cache_dir[ \t]+/ { if ( $2 == "rock" ) printf "%s/rock ", $3; else if ( $2 == "coss" ) printf "%s/stripe ", $3; else printf "%s/00 ", $3; }') + [ -z "$CACHE_SWAP" ] && CACHE_SWAP="/var/cache/squid/00" + + local x + for x in $CACHE_SWAP ; do + if [ ! -e $x ] ; then + ebegin "Initializing cache directory ${x%/*}" + local ORIG_UMASK=$(umask) + umask 027 + + if ! (mkdir -p ${x%/*} && chown squid ${x%/*}) ; then + eend 1 + return 1 + fi + + local INIT_CACHE_RESPONSE="$(/usr/sbin/squid -z -N -f /etc/squid/${RC_SVCNAME}.conf -n ${RC_SVCNAME//[^[:alnum:]]/} 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 + checkpath -d -q -m 0750 -o squid:squid /run/${RC_SVCNAME} + + # see https://wiki.squid-cache.org/MultipleInstances + ebegin "Starting ${RC_SVCNAME} (service name ${RC_SVCNAME//[^[:alnum:]]/}) with KRB5_KTNAME=\"${SQUID_KEYTAB}\" /usr/sbin/squid ${SQUID_OPTS} -f /etc/squid/${RC_SVCNAME}.conf -n ${RC_SVCNAME//[^[:alnum:]]/}" + KRB5_KTNAME="${SQUID_KEYTAB}" /usr/sbin/squid ${SQUID_OPTS} -f /etc/squid/${RC_SVCNAME}.conf -n ${RC_SVCNAME//[^[:alnum:]]/} + eend $? && sleep 1 +} + +stop() { + ebegin "Stopping ${RC_SVCNAME} with /usr/sbin/squid -k shutdown -f /etc/squid/${RC_SVCNAME}.conf -n ${RC_SVCNAME//[^[:alnum:]]/}" + if /usr/sbin/squid -k shutdown -f /etc/squid/${RC_SVCNAME}.conf -n ${RC_SVCNAME//[^[:alnum:]]/} ; then + # Now we have to wait until squid has _really_ stopped. + sleep 1 + if [ -f /run/${RC_SVCNAME}.pid ] ; then + einfon "Waiting for squid to shutdown ." + cnt=0 + while [ -f /run/${RC_SVCNAME}.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 + else + eerror "Squid shutdown failed, probably service is already down." + fi + eend 0 +} + +reload() { + checkconfig || return 1 + ebegin "Reloading ${RC_SVCNAME} with /usr/sbin/squid -k reconfigure -f /etc/squid/${RC_SVCNAME}.conf -n ${RC_SVCNAME//[^[:alnum:]]/}" + /usr/sbin/squid -k reconfigure -f /etc/squid/${RC_SVCNAME}.conf -n ${RC_SVCNAME//[^[:alnum:]]/} + eend $? +} + +rotate() { + service_started ${RC_SVCNAME} || return 1 + ebegin "Rotating ${RC_SVCNAME} logs with /usr/sbin/squid -k rotate -f /etc/squid/${RC_SVCNAME}.conf -n ${RC_SVCNAME//[^[:alnum:]]/}" + /usr/sbin/squid -k rotate -f /etc/squid/${RC_SVCNAME}.conf -n ${RC_SVCNAME//[^[:alnum:]]/} + eend $? +} diff --git a/net-proxy/squid/files/squid.logrotate b/net-proxy/squid/files/squid.logrotate new file mode 100644 index 0000000..5bf2896 --- /dev/null +++ b/net-proxy/squid/files/squid.logrotate @@ -0,0 +1,8 @@ +/var/log/squid/*.log { + copytruncate + compress + notifempty + missingok + sharedscripts +} + diff --git a/net-proxy/squid/files/squid.pam b/net-proxy/squid/files/squid.pam new file mode 100644 index 0000000..75eeaa9 --- /dev/null +++ b/net-proxy/squid/files/squid.pam @@ -0,0 +1,7 @@ +#%PAM-1.0 +auth required pam_nologin.so +auth include system-auth +account include system-auth +password include system-auth +session optional pam_limits.so +session include system-auth diff --git a/net-proxy/squid/squid-4.4-r1.ebuild b/net-proxy/squid/squid-4.4-r1.ebuild new file mode 100644 index 0000000..6e564cd --- /dev/null +++ b/net-proxy/squid/squid-4.4-r1.ebuild @@ -0,0 +1,275 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +inherit autotools linux-info pam toolchain-funcs user + +DESCRIPTION="A full-featured web proxy cache" +HOMEPAGE="http://www.squid-cache.org/" + +# Upstream patch ID for the most recent bug-fixed update to the formal release. +r= +#r=-20181117-r0022167 +if [ -z "$r" ]; then + SRC_URI="http://www.squid-cache.org/Versions/v4/${P}.tar.xz" +else + SRC_URI="http://www.squid-cache.org/Versions/v4/${P}${r}.tar.bz2" + S="${S}${r}" +fi + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd" +IUSE="caps ipv6 pam ldap libressl samba sasl kerberos nis radius ssl snmp selinux logrotate test \ + ecap esi ssl-crtd \ + mysql postgres sqlite \ + perl qos tproxy \ + +htcp +wccp +wccpv2 \ + pf-transparent ipf-transparent kqueue \ + elibc_uclibc kernel_linux" + +COMMON_DEPEND="caps? ( >=sys-libs/libcap-2.16 ) + pam? ( virtual/pam ) + ldap? ( net-nds/openldap ) + kerberos? ( virtual/krb5 ) + qos? ( net-libs/libnetfilter_conntrack ) + ssl? ( + libressl? ( dev-libs/libressl:0 ) + !libressl? ( dev-libs/openssl:0 ) + dev-libs/nettle >=net-libs/gnutls-3.1.5 ) + sasl? ( dev-libs/cyrus-sasl ) + ecap? ( net-libs/libecap:1 ) + esi? ( dev-libs/expat dev-libs/libxml2 ) + !x86-fbsd? ( logrotate? ( app-admin/logrotate ) ) + >=sys-libs/db-4:* + dev-libs/libltdl:0" +DEPEND="${COMMON_DEPEND} + dev-lang/perl + ecap? ( virtual/pkgconfig ) + test? ( dev-util/cppunit )" +RDEPEND="${COMMON_DEPEND} + samba? ( net-fs/samba ) + perl? ( dev-lang/perl ) + mysql? ( dev-perl/DBD-mysql ) + postgres? ( dev-perl/DBD-Pg ) + selinux? ( sec-policy/selinux-squid ) + sqlite? ( dev-perl/DBD-SQLite ) + !<=sci-biology/meme-4.8.1-r1" + +REQUIRED_USE="tproxy? ( caps ) + qos? ( caps )" + +pkg_pretend() { + if use tproxy; then + local CONFIG_CHECK="~NF_CONNTRACK ~NETFILTER_XT_MATCH_SOCKET ~NETFILTER_XT_TARGET_TPROXY" + linux-info_pkg_setup + fi +} + +pkg_setup() { + enewgroup squid + enewuser squid -1 -1 /var/cache/squid squid +} + +src_prepare() { + eapply "${FILESDIR}/${PN}-4.3-gentoo.patch" + sed -i -e 's:/usr/local/squid/etc:/etc/squid:' \ + INSTALL QUICKSTART \ + scripts/fileno-to-pathname.pl \ + scripts/check_cache.pl \ + tools/cachemgr.cgi.8 \ + tools/purge/conffile.hh \ + tools/purge/purge.1 || die + sed -i -e 's:/usr/local/squid/sbin:/usr/sbin:' \ + INSTALL QUICKSTART || die + sed -i -e 's:/usr/local/squid/var/cache:/var/cache/squid:' \ + QUICKSTART || die + sed -i -e 's:/usr/local/squid/var/logs:/var/log/squid:' \ + QUICKSTART \ + src/log/access_log.cc || die + sed -i -e 's:/usr/local/squid/logs:/var/log/squid:' \ + src/log/access_log.cc || die + sed -i -e 's:/usr/local/squid/libexec:/usr/libexec/squid:' \ + src/acl/external/unix_group/ext_unix_group_acl.8 \ + src/acl/external/session/ext_session_acl.8 || die + sed -i -e 's:/usr/local/squid/cache:/var/cache/squid:' \ + scripts/check_cache.pl || die + # /var/run/squid to /run/squid + sed -i -e 's:$(localstatedir)::' \ + src/ipc/Makefile.am || die + sed -i -e 's:_LTDL_SETUP:LTDL_INIT([installable]):' \ + libltdl/configure.ac || die + + eapply_user + eautoreconf +} + +src_configure() { + local basic_modules="NCSA,POP3,getpwnam" + # use perl && basic_modules+=",MSNT-multi-domain" + use samba && basic_modules+=",SMB" + use ldap && basic_modules+=",SMB_LM,LDAP" + use pam && basic_modules+=",PAM" + use sasl && basic_modules+=",SASL" + use nis && ! use elibc_uclibc && basic_modules+=",NIS" + use radius && basic_modules+=",RADIUS" + if use mysql || use postgres || use sqlite ; then + basic_modules+=",DB" + fi + + local digest_modules="file" + use ldap && digest_modules+=",LDAP,eDirectory" + + local negotiate_modules="none" + local myconf="--without-mit-krb5 --without-heimdal-krb5" + if use kerberos ; then + negotiate_modules="kerberos,wrapper" + if has_version app-crypt/heimdal ; then + myconf="--without-mit-krb5 --with-heimdal-krb5" + else + myconf="--with-mit-krb5 --without-heimdal-krb5" + fi + fi + + local ntlm_modules="none" + use samba && ntlm_modules="SMB_LM" + + local ext_helpers="file_userip,session,unix_group,delayer,time_quota" + use samba && ext_helpers+=",wbinfo_group" + use ldap && ext_helpers+=",LDAP_group,eDirectory_userip" + use ldap && use kerberos && ext_helpers+=",kerberos_ldap_group" + if use mysql || use postgres || use sqlite ; then + ext_helpers+=",SQL_session" + fi + + local storeio_modules="aufs,diskd,rock,ufs" + + local transparent + if use kernel_linux ; then + transparent+=" --enable-linux-netfilter" + use qos && transparent+=" --enable-zph-qos --with-netfilter-conntrack" + fi + + if use kernel_FreeBSD || use kernel_OpenBSD || use kernel_NetBSD ; then + transparent+=" $(use_enable kqueue)" + if use pf-transparent; then + transparent+=" --enable-pf-transparent" + elif use ipf-transparent; then + transparent+=" --enable-ipf-transparent" + fi + fi + + tc-export_build_env BUILD_CXX + export BUILDCXX=${BUILD_CXX} + export BUILDCXXFLAGS=${BUILD_CXXFLAGS} + tc-export CC AR + + # Should be able to drop this workaround with newer versions. + # https://bugs.squid-cache.org/show_bug.cgi?id=4224 + tc-is-cross-compiler && export squid_cv_gnu_atomics=no + + econf \ + --sysconfdir=/etc/squid \ + --libexecdir=/usr/libexec/squid \ + --localstatedir=/var \ + --with-pidfile=/run/squid.pid \ + --datadir=/usr/share/squid \ + --with-logdir=/var/log/squid \ + --with-default-user=squid \ + --enable-removal-policies="lru,heap" \ + --enable-storeio="${storeio_modules}" \ + --enable-disk-io \ + --enable-auth-basic="${basic_modules}" \ + --enable-auth-digest="${digest_modules}" \ + --enable-auth-ntlm="${ntlm_modules}" \ + --enable-auth-negotiate="${negotiate_modules}" \ + --enable-external-acl-helpers="${ext_helpers}" \ + --enable-log-daemon-helpers \ + --enable-url-rewrite-helpers \ + --enable-cache-digests \ + --enable-delay-pools \ + --enable-eui \ + --enable-icmp \ + --enable-follow-x-forwarded-for \ + --with-large-files \ + --with-build-environment=default \ + --disable-strict-error-checking \ + --disable-arch-native \ + --with-included-ltdl=/usr/include \ + --with-ltdl-libdir=/usr/$(get_libdir) \ + $(use_with caps libcap) \ + $(use_enable ipv6) \ + $(use_enable snmp) \ + $(use_with ssl openssl) \ + $(use_with ssl nettle) \ + $(use_with ssl gnutls) \ + $(use_enable ssl-crtd) \ + $(use_enable ecap) \ + $(use_enable esi) \ + $(use_enable htcp) \ + $(use_enable wccp) \ + $(use_enable wccpv2) \ + ${transparent} \ + ${myconf} +} + +src_install() { + emake DESTDIR="${D}" install + + # need suid root for looking into /etc/shadow + fowners root:squid /usr/libexec/squid/basic_ncsa_auth + fperms 4750 /usr/libexec/squid/basic_ncsa_auth + if use pam; then + fowners root:squid /usr/libexec/squid/basic_pam_auth + fperms 4750 /usr/libexec/squid/basic_pam_auth + fi + # pinger needs suid as well + fowners root:squid /usr/libexec/squid/pinger + fperms 4750 /usr/libexec/squid/pinger + + # these scripts depend on perl + if ! use perl; then + local f + local PERL_SCRIPTS=( + "${D}"/usr/libexec/squid/basic_pop3_auth + "${D}"/usr/libexec/squid/log_db_daemon + "${D}"/usr/libexec/squid/basic_msnt_multi_domain_auth + "${D}"/usr/libexec/squid/storeid_file_rewrite + "${D}"/usr/libexec/squid/helper-mux.pl + ) + for f in "${PERL_SCRIPTS[@]}"; do + rm -v "${f}" || ewarn "Could not remove ${f}." + done + fi + + # cleanup + rm -f "${D}"/usr/bin/Run* + rm -rf "${D}"/run/squid "${D}"/var/cache/squid + + dodoc CONTRIBUTORS CREDITS ChangeLog INSTALL QUICKSTART README SPONSORS doc/*.txt + newdoc src/auth/negotiate/kerberos/README README.kerberos + newdoc src/auth/basic/RADIUS/README README.RADIUS + newdoc src/acl/external/kerberos_ldap_group/README README.kerberos_ldap_group + dodoc RELEASENOTES.html + + newpamd "${FILESDIR}/squid.pam" squid + newconfd "${FILESDIR}/squid.confd-r2" squid + newinitd "${FILESDIR}/squid.initd-r5" squid + if use logrotate; then + insinto /etc/logrotate.d + newins "${FILESDIR}/squid.logrotate" squid + else + exeinto /etc/cron.weekly + newexe "${FILESDIR}/squid.cron" squid.cron + fi + + diropts -m0750 -o squid -g squid + keepdir /var/log/squid /etc/ssl/squid /var/lib/squid +} + +pkg_postinst() { + elog "A good starting point to debug Squid issues is to use 'squidclient mgr:' commands such as 'squidclient mgr:info'." + if [ ${#r} -gt 0 ]; then + elog "You are using a release with the official ${r} patch! Make sure you mention that, or send the output of 'squidclient mgr:info' when asking for support." + fi +} |