diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2019-03-19 11:37:34 +0000 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2019-03-19 11:37:34 +0000 |
commit | b7b97785ebbb2f11d24d14dab8b81ed274f4ce6a (patch) | |
tree | 9fd110f9fc996e8a4213eeda994a8c112491b86d /net-proxy/squid | |
parent | 066d27181e9a797ad9f8fc43b49fc9a10ff2f707 (diff) |
gentoo resync : 19.03.2019
Diffstat (limited to 'net-proxy/squid')
-rw-r--r-- | net-proxy/squid/Manifest | 5 | ||||
-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 | 125 | ||||
-rw-r--r-- | net-proxy/squid/squid-4.6.ebuild | 276 |
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 +} |