summaryrefslogtreecommitdiff
path: root/net-proxy/squid
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2019-03-19 11:37:34 +0000
committerV3n3RiX <venerix@redcorelinux.org>2019-03-19 11:37:34 +0000
commitb7b97785ebbb2f11d24d14dab8b81ed274f4ce6a (patch)
tree9fd110f9fc996e8a4213eeda994a8c112491b86d /net-proxy/squid
parent066d27181e9a797ad9f8fc43b49fc9a10ff2f707 (diff)
gentoo resync : 19.03.2019
Diffstat (limited to 'net-proxy/squid')
-rw-r--r--net-proxy/squid/Manifest5
-rw-r--r--net-proxy/squid/files/squid-4.3-gentoo.patch79
-rw-r--r--net-proxy/squid/files/squid.confd-r219
-rw-r--r--net-proxy/squid/files/squid.initd-r5125
-rw-r--r--net-proxy/squid/squid-4.6.ebuild276
5 files changed, 504 insertions, 0 deletions
diff --git a/net-proxy/squid/Manifest b/net-proxy/squid/Manifest
index 9a6d45d82520..4161aad52f00 100644
--- a/net-proxy/squid/Manifest
+++ b/net-proxy/squid/Manifest
@@ -1,14 +1,19 @@
AUX squid-2018-1.patch 1092 BLAKE2B bc632c34876bfa5fd9378aca8e70e0a498bfbb02f8be89531e06e07e4445809edd2aa59cda2ea4b8c46365bf399f4f5a2df5549d4017a311dfbc0e70ee351308 SHA512 d08d87d4cf97e794735e29ed2a273e27757a9ef95059cf6a2e2855a0c56e92d9e665b85115c9f3b699974447a7b9cccadb0a8ce606beedb41d27df8361241f8b
AUX squid-2018-2.patch 1054 BLAKE2B c8988d03913a6c75509152e7422a8957814e50a80daf8d4e3acda73e56073f2dc038bcf8655a0c4dd57735e6ee72c0ee30516a3ed03a200ea5a87f408e8a8530 SHA512 392442527ead5cbb045f6eded522c9aff6ce395034ca028e7298394eccb6ed5b06c814f966ddc6cb264b9a37bf7ae2751e3ed87853566b1d7b757d99280fe60c
AUX squid-3.5.7-gentoo.patch 3414 BLAKE2B cf2ab263d7578736c4bb3954288375297aadc4c8fcefb690e6183684f75b5ba8281997b76a633459f917c121e96dae7edd0f465564ccbfc225d84c53ff273663 SHA512 403a053e64f0061901fedab7dc65a671cb22f534a21d9f066c6ec7bd8db03519b63d402702bea85929669e37925e9a0e9fd9e918ac1ea37d399d443b2dda9766
+AUX squid-4.3-gentoo.patch 2767 BLAKE2B fbf424bec42a8bd29f54431107e73db1d1acd7612c8acc4d38022419a72ccabc9d0287fb34cbd26e96df2b6e2aaceae929c1005ef2ad4f731cf28edf66ac569a SHA512 eaf076cef4b60c1f5e9985a69f5ae674082b04a6f70d5b484ad13e9e397a8c67cb1780960a11fd943dc2500ec9f0590192b276bf36451d3063537661200487bf
AUX squid-cppunit-1.14.patch 11414 BLAKE2B 58f583390f9d899e70e56e7109cb3b88bf23ba0bd8ec6d065eb5f28ef9762f4a6eb25807e24a102852538eb2709167284e529b14d43605bbe49f85eff4824169 SHA512 2fb02c8c92dc524c19cbbaad4dad03bddc8c18046e37f86562dcaa73a9cea0cb2af352ca0701438d2f77a55b448b34e68678961d721812135b9f7d4799cbe94a
AUX squid.confd-r1 384 BLAKE2B bbbf02d98ad4552acee224b67c41530fc63f7ee6d099cfa309b982563004f375dd881a079ec3d2ec161ed3a48dc58fb5a1d9e16438d9806d2e83a3af0a900611 SHA512 018418d0ef66c9ab5d67a8e68ed6f95c7a04ad2a8a073747f39d9db8e83cf72c685d388a727363788042e45d440a69651ec928ccdeed835915ebc8c676b43519
+AUX squid.confd-r2 714 BLAKE2B c60c6ece0654f5a350ef955787b003eb4920bdf68d0bfb394c02187d440b7c31785bcd638f62729d7a658ed43fc94eb5844af5ddc24c93a18f5b5be35552b48b SHA512 9d14c927535610f40ad0b3f1c851f6587afe7aee3186238c9351528b9ad0999d676e7ec2c4a2d6febedb7f14f71c10896d6f4eb6bf4de860ef59e4e4c31a240b
AUX squid.cron 143 BLAKE2B 17b1bccea20771a481a5b4745c9832a4b762132a500eaeb091349a59b870c14b680d8ea97e03bb7a0b2d67e1ca1d4ee1db31dc43b9dbf02be8953d15f214b033 SHA512 cec563c20799ffea8b4fb418d5015d6dc437bd38c35e7150ed01bc298dab5214132e10f4e7b8176da1966e16a7f53f423c36e8419642cb16716f5c346c30d749
AUX squid.initd-r4 3262 BLAKE2B d67a26ed4e3e7a1c8f97fb65368ad8a0b8e014d86e0f07c9a44ab87f2e48f3330ff669742fbeea56bf5554b09a8fe2f827ca3892dea4cc5f4a86fa4e228ebdc9 SHA512 d1edeeafef69730429c19e07b4b39ff388047042880c61907fb2e6d8a907011edb78a29faa265f8e07d2c3bb18d63d62dd384338729e2549995f7f2a0903783d
+AUX squid.initd-r5 4339 BLAKE2B 3529ddaab2e708215e6674514ce8e20e9d28d26e45860e19b59c7c3566550b298c71a20a9b62c2c89fd621f4ca67698d03af43586ac75cf16eee3b342c6a5a2c SHA512 e761500fb208954c92e0e83a6314688b29f1379855bf78195a72b12984c8fc7fdd09f5823729e90515bb7a382903fdcb42b79488d7f73474f8244311137b3e18
AUX squid.logrotate 103 BLAKE2B f6d190d1914b76b08d90a2c3b3b07ff9cd332cdb2e595f4849537d1f1d32d8be1386fcdfffb40d073bcdd715a62c1c44727f1e10b75cfaff69c0d042c2a7e904 SHA512 d75a667c3ffa32fdd938ef40df8813a467d9f10b2363107bf915cb0c99834fbe8d0eb502a18a816875b67b0db1b27806ed3caf620c38516040cb644b225f5a55
AUX squid.pam 209 BLAKE2B 113fa119ce4fd96ddf34b95c1a1ca958b34aea405564076f89abdbb8d4c6a0248ec9fa1a0f5f1d6136643c9abc4c5f67e8ef75305414b374763e2055272950d5 SHA512 5501e3d9319aea99f0deed98748366d4dfbeccdde96d842474fe144a4584394d8f5563372cd7b2437a389378c49b61b646403cca1be4362c888750d027b2f594
DIST squid-3.5.27.tar.xz 2303468 BLAKE2B 448dbb703469bdd38a0e88da8e473510e9652fc7c7ae2e48bf687a4c2e1698f3baa92c212631fd3734ee51bead89980d31af58d64654418a7c4c4a16e1be751e SHA512 4172a053c3b7ffe7a12dfb3febac96942d0fbbe7e98e3f797f22cd75b0a3a89cbbfe7260b5daad099e79d5e9303bb5dfbfee7499cb30a90590aa1bd242ff4817
DIST squid-3.5.28.tar.xz 2304680 BLAKE2B 9b41a191210ea441ebd2847e9dc2cfacf3ba9fa8ceb81513b4cb449b13f7e81d28e3f3c9c46003db6d3d8a936fbd2275e42e18c23bd9d7667b9bd6890a1627a8 SHA512 da8367d364725c7fd6330e7588b0ff70d32978a17ca0bc5fe58fa6d12c9d2adb42ade0a492c835761bc7fd67c1a55300b4b7402ad939cf2a2aa5104233bbb74b
+DIST squid-4.6.tar.xz 2439792 BLAKE2B 1344acfd4ba135d5ec6881612614f735c6e4791f9b15dcc2f572b93e7f7c9e39585aa0b30aef5b09e40a9599e7fe7d3a118f878adac8f272b014ac3d65a83fae SHA512 dbe2b02b83d53d67459e22a19e71cbf99b66d74a2ddc4bc69310f03a0a6092e5840766ad699fc43893516e97ef89799ef2147dd40f76b0bd688c1e271fd20d06
EBUILD squid-3.5.27-r1.ebuild 8191 BLAKE2B a4c97840af4cdf4260492f4d53d266a4a2b801820df70c9c9069f6a979d275560687a4bc860b8e7f99b07ab7f016df8a5aa96d79278052db587185490ee6e9bf SHA512 6443c33044685fa13686c52a1892fca8e920222e3051ed8899082545d84de8a32c836bd65d5747993f9c17c0e92628ca44c407db281aadcd0eac00d89c310c1d
EBUILD squid-3.5.28.ebuild 8201 BLAKE2B a4d1d87702fe8555e913dde8a006a59290522978b3c2e90da78f39dc6dfe86922c1fe4901d3eb6219896289a8f2680b55e4ef8297df4cfba66cef8a0dd761f8a SHA512 709e28fb06e8e1102a9e265536652919d19e830f85c589b9ddd4c85edbf0405909dbf908eba9bc9200f8942e235c97fb9d23a1347d98a6056764eeb4b6d1dc83
+EBUILD squid-4.6.ebuild 8165 BLAKE2B cab29914fbdb459303e5594bebb6380f2b81077de5f02ec80492efdfea95b5620de85e3c9c56cf84df96a0f4afc4c03b4329b1d8d5ac3e8795669280332f770f SHA512 082ed74fe0a23596610855fa02750bbcbd44c137f07f6346332ca608504236d3e00e3ac0bc59289350cd5e50e6484dac0e4234ac5328f00fa34212a576411dea
MISC metadata.xml 1541 BLAKE2B c04b0900be1711860ab53658c9ed7f3200da64fcd8f866a54d3a02c4576b5942afad4d8666eb950e19426beead7a40f5f03e04bca734cf9b5fedf4633f16087e SHA512 fb81b62b425f571f8f01f505f3b9d69186358180c1fcca80c61ad8e7b3d0397250292e9ea3bfa8bb1a93a9ade3293abdd7bb19ef6485df6244e016e21a3b56d5
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 000000000000..f5152b898852
--- /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 000000000000..a43a86e3bce9
--- /dev/null
+++ b/net-proxy/squid/files/squid.confd-r2
@@ -0,0 +1,19 @@
+# Copyright 1999-2019 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 000000000000..0572fbcefefb
--- /dev/null
+++ b/net-proxy/squid/files/squid.initd-r5
@@ -0,0 +1,125 @@
+#!/sbin/openrc-run
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+SQUID_SVCNAME=$( echo "${RC_SVCNAME}" | tr -cd '[a-zA-Z0-9]' )
+
+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 ${SQUID_SVCNAME} 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 ${SQUID_SVCNAME}) with KRB5_KTNAME=\"${SQUID_KEYTAB}\" /usr/sbin/squid ${SQUID_OPTS} -f /etc/squid/${RC_SVCNAME}.conf -n ${SQUID_SVCNAME}"
+ KRB5_KTNAME="${SQUID_KEYTAB}" /usr/sbin/squid ${SQUID_OPTS} -f /etc/squid/${RC_SVCNAME}.conf -n ${SQUID_SVCNAME}
+ eend $? && sleep 1
+}
+
+stop() {
+ ebegin "Stopping ${RC_SVCNAME} with /usr/sbin/squid -k shutdown -f /etc/squid/${RC_SVCNAME}.conf -n ${SQUID_SVCNAME}"
+ if /usr/sbin/squid -k shutdown -f /etc/squid/${RC_SVCNAME}.conf -n ${SQUID_SVCNAME} ; 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
+ printf "."
+ 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 ${SQUID_SVCNAME}"
+ /usr/sbin/squid -k reconfigure -f /etc/squid/${RC_SVCNAME}.conf -n ${SQUID_SVCNAME}
+ 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 ${SQUID_SVCNAME}"
+ /usr/sbin/squid -k rotate -f /etc/squid/${RC_SVCNAME}.conf -n ${SQUID_SVCNAME}
+ eend $?
+}
diff --git a/net-proxy/squid/squid-4.6.ebuild b/net-proxy/squid/squid-4.6.ebuild
new file mode 100644
index 000000000000..79d959a65dc8
--- /dev/null
+++ b/net-proxy/squid/squid-4.6.ebuild
@@ -0,0 +1,276 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+WANT_AUTOMAKE="1.15"
+
+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/v${PV%.*}/${P}.tar.xz"
+else
+ SRC_URI="http://www.squid-cache.org/Versions/v${PV%.*}/${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"
+
+BDEPEND="dev-lang/perl"
+
+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}
+ ${BDEPEND}
+ 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 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() {
+ default
+
+ # 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
+ for f in basic_pop3_auth \
+ ext_delayer_acl \
+ helper-mux \
+ log_db_daemon \
+ security_fake_certverify \
+ storeid_file_rewrite \
+ url_lfs_rewrite; do
+ rm "${D}"/usr/libexec/squid/${f} || die
+ done
+ fi
+
+ # cleanup
+ rm -r "${D}"/run "${D}"/var/cache || die
+
+ 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
+}