svn commit: r368307 - in head/www: squid squid/files squid33

John Marino marino at FreeBSD.org
Tue Sep 16 12:29:22 UTC 2014


Author: marino
Date: Tue Sep 16 12:29:19 2014
New Revision: 368307
URL: http://svnweb.freebsd.org/changeset/ports/368307
QAT: https://qat.redports.org/buildarchive/r368307/

Log:
  www/squid: Upgrade version 2.7.9 => 3.4.7
  
  From now on, there will only be one squid port, this one.  Squid33 has
  been deprecated and will expire on 31 JAN 2015.
  
  PR:		192828
  Submitted by:	timp87 (gmail)
  Contributions:	takefu (airport.fm), Dennis Glatting

Added:
  head/www/squid/files/patch-compat_Makefile.in   (contents, props changed)
  head/www/squid/files/patch-compat_strlen.c   (contents, props changed)
  head/www/squid/files/patch-src_tools.cc   (contents, props changed)
  head/www/squid/pkg-plist   (contents, props changed)
Deleted:
  head/www/squid/files/extra-patch-src-cf.data.pre.aufs
  head/www/squid/files/patch-helpers-basic_auth-SMB-Makefile.in
  head/www/squid/files/patch-helpers-basic_auth-SMB-smb_auth.sh
  head/www/squid/files/patch-include-squid_types.h
  head/www/squid/files/patch-squid_kerb_auth
  head/www/squid/files/patch-tools-Makefile.in
  head/www/squid/files/pkg-deinstall.in
Modified:
  head/www/squid/Makefile
  head/www/squid/distinfo
  head/www/squid/files/patch-configure
  head/www/squid/files/patch-src-cf.data.pre
  head/www/squid/files/pkg-install.in
  head/www/squid/files/pkg-message.in
  head/www/squid/files/squid.in
  head/www/squid/pkg-descr
  head/www/squid33/Makefile

Modified: head/www/squid/Makefile
==============================================================================
--- head/www/squid/Makefile	Tue Sep 16 12:04:06 2014	(r368306)
+++ head/www/squid/Makefile	Tue Sep 16 12:29:19 2014	(r368307)
@@ -1,450 +1,340 @@
-# Created by: Adrian Chadd <adrian at FreeBSD.org>
 # $FreeBSD$
 
-# Tunables not (yet) configurable via 'make config':
-# SQUID_{U,G}ID
-#   Which user/group Squid should run as (default: squid/squid).
-#   The user and group will be created if they do not already exist using
-#   a uid:gid of 100:100.
-#   NOTE: older versions of Squid defaulted to nobody/nogroup.
-#   If you wish to run Squid as "nobody" (which is not recommended), please
-#   define SQUID_UID=nobody and SQUID_GID=nogroup in your make environment
-#   before you start the update or installation of this port.
-#
-# SQUID_LANGUAGES
-#   A list of languages for which error page files should be installed
-#   (default: all)
-#
-#   E.g. use `make SQUID_LANGUAGES="English French"' if you want to
-#   install the files for these languages only.
-#   Use `make -VSQUID_LANGUAGES' or scroll down to this variable's
-#   definition to see which values are valid.
-#
-# SQUID_DEFAULT_LANG
-#   If you define SQUID_LANGUAGES, select which language should be the default
-#   one (this variable defaults to English). This setting can be overwritten
-#   with squid.conf's error_directory directive.
-#
-# SQUID_CONFIGURE_ARGS
-#   Additional configuration options.
-#
-#   To enable them, use e.g
-#   `make SQUID_CONFIGURE_ARGS="--enable-dlmalloc --enable-truncate" install'
-#
-#   The list below may be incomplete, please see the configure script
-#   in the Squid source distribution for the complete list of additional
-#   options.
-#   Note that you probably do not need to worry about these options in most
-#   cases, they are included in case you want to experiment with them.
-#
-#    --enable-dlmalloc
-#     Compile and use the malloc package from Doug Lea
-#    --enable-gnuregex
-#     Compile and use the supplied GNUregex routines instead of BSD regex
-#     (not recommended).
-#    --enable-xmalloc-statistics
-#     Show malloc statistics in status page
-#    --enable-cachemgr-hostname=some.hostname
-#     Set an explicit hostname in cachemgr.cgi
-#    --enable-truncate
-#     Use truncate() rather than unlink()
-#    --disable-unlinkd
-#     Do not use "unlinkd"
-#    --with-aufs-threads=N_THREADS
-#     Tune the number of worker threads for the aufs object
-#    --with-coss-membuf-size
-#     COSS membuf size (default: 1048576 bytes)
-#    --with-maxfd=N
-#     Override the maximum number of filedescriptors. Useful if you
-#     build as another user who is not privileged to use the amount
-#     of filedescriptors the resulting binary is expected to support.
-#    --enable-ntlm-fail-open
-#     Enable NTLM fail open, where a helper that fails one of the
-#     Authentication steps can allow Squid to still authenticate the user
-#    --enable-x-accelerator-vary
-#     Enable support for the X-Accelerator-Vary HTTP header. Can be used
-#     to indicate variance within an accelerator setup. Typically used
-#     together with other code that adds custom HTTP headers to the
-#     requests.
-#    --enable-forward-log
-#     Enable experimental forward_log directive.
-#    --enable-multicast-miss
-#     Enable experimental multicast notification of cachemisses.
-#
-
 PORTNAME=	squid
-PORTVERSION=	2.7.${SQUID_STABLE_VER}
-PORTREVISION=	5
-CATEGORIES=	www
-MASTER_SITES=	ftp://ftp.squid-cache.org/pub/%SUBDIR%/ \
-		http://mirrors.ccs.neu.edu/Squid/ \
-		ftp://ftp.fu-berlin.de/unix/www/squid/squid/ \
-		ftp://ftp.nl.uu.net/pub/unix/www/squid/ \
-		ftp://ftp.solnet.ch/mirror/squid/ \
-		ftp://ftp.ntua.gr/pub/www/Squid/squid/ \
-		http://mirror.aarnet.edu.au/pub/squid/squid/ \
-		${MASTER_SITE_RINGSERVER:S,%SUBDIR%,net/www/squid,} \
-		http://www.squid-cache.org/Versions/v2/2.7/ \
-		http://www2.us.squid-cache.org/Versions/v2/2.7/ \
-		http://www1.at.squid-cache.org/Versions/v2/2.7/ \
-		http://www2.de.squid-cache.org/Versions/v2/2.7/ \
-		http://www.eu.squid-cache.org/Versions/v2/2.7/ \
-		http://www1.ie.squid-cache.org/Versions/v2/2.7/ \
-		http://www1.jp.squid-cache.org/Versions/v2/2.7/ \
-		http://www2.tw.squid-cache.org/Versions/v2/2.7/
+PORTVERSION=	3.4.7
+CATEGORIES=	www ipv6
+MASTER_SITES=	http://www.squid-cache.org/Versions/v3/${PORTVERSION:R}/ \
+		http://www2.us.squid-cache.org/Versions/v3/${PORTVERSION:R}/ \
+		http://www1.at.squid-cache.org/Versions/v3/${PORTVERSION:R}/ \
+		http://www.eu.squid-cache.org/Versions/v3/${PORTVERSION:R}/ \
+		http://www1.jp.squid-cache.org/Versions/v3/${PORTVERSION:R}/
 MASTER_SITE_SUBDIR=	squid
-DISTNAME=	squid-2.7.STABLE${SQUID_STABLE_VER}
-DIST_SUBDIR=	squid2.7
+DIST_SUBDIR=	squid3.4
 
 PATCH_SITES=	http://www.squid-cache.org/%SUBDIR%/ \
 		http://www2.us.squid-cache.org/%SUBDIR%/ \
 		http://www1.at.squid-cache.org/%SUBDIR%/ \
-		http://www2.de.squid-cache.org/%SUBDIR%/ \
 		http://www.eu.squid-cache.org/%SUBDIR%/ \
-		http://www1.ie.squid-cache.org/%SUBDIR%/ \
 		http://www1.jp.squid-cache.org/%SUBDIR%/ \
-		http://www2.tw.squid-cache.org/%SUBDIR%/
-PATCH_SITE_SUBDIR=	Versions/v2/2.7/changesets
-#PATCH_DIST_STRIP=	-p1
-PATCHFILES=	SQUID-2012_1.patch
+		http://master.squid-cache.org/~amosjeffries/patches/:nosid
+PATCH_SITE_SUBDIR=	Versions/v3/${PORTVERSION:R}/changesets
+#PATCHFILES=	
 
 MAINTAINER=	ports at FreeBSD.org
 COMMENT=	HTTP Caching Proxy
 
-DEPRECATED=	Reach EOL on 14 Aug 2012
-EXPIRATION_DATE=2014-09-15
+LICENSE=	GPLv2
+LICENSE_FILE=	${WRKSRC}/COPYING
 
-SQUID_STABLE_VER=	9
+CONFLICTS_INSTALL=	squid33-*
 
-CONFLICTS_INSTALL=	squid-2.[^7]* squid3?-* cacheboy-[0-9]* lusca-head-[0-9]*
-USES=		perl5 shebangfix tar:bzip2
-SHEBANG_FILES=	scripts/*.pl \
-		src/mk-globals-c.pl \
-		src/mk-string-arrays.pl \
-		contrib/rredir.pl \
-		contrib/user-agents.pl \
-		contrib/url-normalizer.pl \
-		helpers/basic_auth/multi-domain-NTLM/smb_auth.pl \
-		helpers/basic_auth/POP3/pop3.pl \
-		helpers/ntlm_auth/no_check/no_check.pl \
-		helpers/external_acl/wbinfo_group/wbinfo_group.pl
+USES=		perl5 tar:xz shebangfix
+SHEBANG_FILES=	scripts/*.pl contrib/*.pl src/*.pl tools/*.pl \
+		helpers/external_acl/kerberos_ldap_group/cert_tool \
+		helpers/ssl/cert_valid.pl
 GNU_CONFIGURE=	yes
 USE_RC_SUBR=	squid
 
-SQUID_UID?=	squid
-SQUID_GID?=	squid
-
-MAN8=		cachemgr.cgi.8 squid.8
-docs=		QUICKSTART README RELEASENOTES.html doc/debug-sections.txt
-PORTDOCS=	${docs:T}
-PORTEXAMPLES=	passwd.sql
-SUB_FILES+=	pkg-deinstall pkg-install pkg-message
-SUB_LIST+=	SQUID_UID=${SQUID_UID} SQUID_GID=${SQUID_GID}
-
-OPTIONS_DEFINE=	KERB_AUTH LDAP_AUTH NIS_AUTH SASL_AUTH DELAY_POOLS SNMP CARP \
-		SSL PINGER DNS_HELPER HTCP VIA_DB CACHE_DIGESTS WCCP WCCPV2 \
-		STRICT_HTTP IDENT REFERER_LOG USERAGENT_LOG ARP_ACL PF IPFILTER \
-		FOLLOW_XFF AUFS COSS KQUEUE LARGEFILE STACKTRACES
-OPTIONS_DEFAULT=	KERB_AUTH NIS_AUTH CARP WCCP IDENT KQUEUE
-KERB_AUTH_DESC=		Install Kerberos authentication helpers
-LDAP_AUTH_DESC=		Install LDAP authentication helpers
-NIS_AUTH_DESC=		Install NIS/YP authentication helpers
-SASL_AUTH_DESC=		Install SASL authentication helpers
-DELAY_POOLS_DESC=	Enable delay pools
-SNMP_DESC=		Enable SNMP support
-CARP_DESC=		Enable CARP support
-SSL_DESC=		Enable SSL support for reverse proxies
-PINGER_DESC=		Install the icmp helper
-DNS_HELPER_DESC=	Use the old 'dnsserver' helper
-HTCP_DESC=		Enable HTCP support
-VIA_DB_DESC=		Enable forward/via database
-CACHE_DIGESTS_DESC=	Enable cache digests
-WCCP_DESC=		Enable Web Cache Coordination Prot. v1
-WCCPV2_DESC=		Enable Web Cache Coordination Prot. v2
-STRICT_HTTP_DESC=	Be strictly HTTP compliant
-IDENT_DESC=		Enable ident (RFC 931) lookups
-REFERER_LOG_DESC=	Enable Referer-header logging
-USERAGENT_LOG_DESC=	Enable User-Agent-header logging
-ARP_ACL_DESC=		Enable ACLs based on ethernet address
-PF_DESC=		Enable transparent proxying with PF
-IPFILTER_DESC=		Enable transp. proxying with IPFilter
-FOLLOW_XFF_DESC=	Follow X-Forwarded-For headers
-AUFS_DESC=		Enable the aufs storage scheme
-COSS_DESC=		Enable the COSS storage scheme
-KQUEUE_DESC=		Use kqueue(2) instead of poll(2)
-LARGEFILE_DESC=		Support log and cache files >2GB
-STACKTRACES_DESC=	Create backtraces on fatal errors
-
-etc_files=	squid/cachemgr.conf.default \
-		squid/mib.txt squid/mime.conf.default \
-		squid/msntauth.conf.default squid/squid.conf.default
-
-icon_files=	anthony-binhex.gif anthony-bomb.gif anthony-box.gif \
-		anthony-box2.gif anthony-c.gif anthony-compressed.gif \
-		anthony-dir.gif anthony-dirup.gif anthony-dvi.gif \
-		anthony-f.gif anthony-image.gif anthony-image2.gif \
-		anthony-layout.gif anthony-link.gif anthony-movie.gif \
-		anthony-pdf.gif anthony-portal.gif anthony-ps.gif \
-		anthony-quill.gif anthony-script.gif anthony-sound.gif \
-		anthony-tar.gif anthony-tex.gif anthony-text.gif \
-		anthony-unknown.gif anthony-xbm.gif anthony-xpm.gif
-
-error_files=	ERR_ACCESS_DENIED ERR_CACHE_ACCESS_DENIED \
-		ERR_CACHE_MGR_ACCESS_DENIED ERR_CANNOT_FORWARD \
-		ERR_CONNECT_FAIL ERR_DNS_FAIL ERR_FORWARDING_DENIED \
-		ERR_FTP_DISABLED ERR_FTP_FAILURE ERR_FTP_FORBIDDEN \
-		ERR_FTP_NOT_FOUND ERR_FTP_PUT_CREATED \
-		ERR_FTP_PUT_ERROR ERR_FTP_PUT_MODIFIED ERR_FTP_UNAVAILABLE \
-		ERR_INVALID_REQ ERR_INVALID_RESP ERR_INVALID_URL \
-		ERR_LIFETIME_EXP ERR_NO_RELAY ERR_ONLY_IF_CACHED_MISS \
-		ERR_READ_ERROR ERR_READ_TIMEOUT ERR_SHUTTING_DOWN \
-		ERR_SOCKET_FAILURE ERR_TOO_BIG ERR_UNSUP_REQ \
-		ERR_URN_RESOLVE ERR_WRITE_ERROR ERR_ZERO_SIZE_OBJECT
-
-libexec=	cachemgr.cgi digest_pw_auth diskd-daemon \
-		ip_user_check logfile-daemon \
-		msnt_auth ncsa_auth ntlm_auth \
-		pam_auth smb_auth smb_auth.sh squid_db_auth squid_session \
-		squid_unix_group wbinfo_group.pl
-.if !defined(SQUID_CONFIGURE_ARGS) || ${SQUID_CONFIGURE_ARGS:M*--disable-unlinkd*} == ""
-libexec+=	unlinkd
-.endif
-
-sbin=		RunCache squidclient squid
+USERS=		squid
+GROUPS=		squid
 
-CONFIGURE_ARGS=	--bindir=${PREFIX}/sbin  \
-		--sbindir=${PREFIX}/sbin  \
+MYDOCS=		QUICKSTART README RELEASENOTES.html doc/debug-sections.txt
+PORTDOCS=	${MYDOCS:T}
+PORTEXAMPLES=	*
+SUB_FILES+=	pkg-install pkg-message
+
+OPTIONS_SUB=	yes
+OPTIONS_DEFINE=	ARP_ACL AUTH_KERB AUTH_LDAP AUTH_NIS AUTH_SASL AUTH_SMB \
+		AUTH_SQL \
+		CACHE_DIGESTS DEBUG DELAY_POOLS DNS_HELPER ECAP ESI \
+		FOLLOW_XFF FS_AUFS HTCP ICAP ICMP IDENT IPV6 KQUEUE \
+		LARGEFILE SNMP SSL SSL_CRTD STACKTRACES LAX_HTTP \
+		TP_IPF TP_IPFW TP_PF VIA_DB WCCP WCCPV2 DOCS EXAMPLES
+
+# Note: FS_FCOSS was removed from OPTIONS, it is broken and only experimentel
+#OPTIONS_DEFINE+=	FS_COSS
+
+OPTIONS_DEFAULT=AUTH_KERB AUTH_NIS FS_AUFS HTCP IDENT KQUEUE SNMP WCCP WCCPV2
+
+ARP_ACL_CONFIGURE_ENABLE=	eui
+AUTH_LDAP_CFLAGS=		-I${LOCALBASE}/include
+AUTH_LDAP_LDFLAGS=		-L${LOCALBASE}/lib
+AUTH_LDAP_USE=			OPENLDAP=yes
+AUTH_SASL_CFLAGS=		-I${LOCALBASE}/include
+AUTH_SASL_CPPFLAGS=		-I${LOCALBASE}/include
+AUTH_SASL_LDFLAGS=		-L${LOCALBASE}/lib
+AUTH_SASL_LIB_DEPENDS=		libsasl2.so:${PORTSDIR}/security/cyrus-sasl2
+AUTH_SMB_BUILD_DEPENDS=		smbclient:${PORTSDIR}/net/samba36
+AUTH_SMB_RUN_DEPENDS=		smbclient:${PORTSDIR}/net/samba36
+AUTH_SQL_RUN_DEPENDS=		p5-DBD-mysql>=0:${PORTSDIR}/databases/p5-DBD-mysql
+AUTH_SQL_USE=			MYSQL=yes
+CACHE_DIGESTS_CONFIGURE_ENABLE=	cache-digests
+DELAY_POOLS_CONFIGURE_ENABLE=	delay-pools
+DNS_HELPER_CONFIGURE_ON=	--disable-internal-dns
+ECAP_CFLAGS=			-I${LOCALBASE}/include
+ECAP_CONFIGURE_ENABLE=		ecap
+ECAP_LDFLAGS=			-L${LOCALBASE}/lib
+ECAP_LIB_DEPENDS=		libecap.so:${PORTSDIR}/www/libecap
+ECAP_USES=			pkgconfig:build
+ESI_CFLAGS=			-I${LOCALBASE}/include -I${LOCALBASE}/include/libxml2
+ESI_CONFIGURE_ENABLE=		esi
+ESI_LDFLAGS=			-L${LOCALBASE}/lib
+ESI_LIB_DEPENDS=		libexpat.so:${PORTSDIR}/textproc/expat2 \
+				libxml2.so:${PORTSDIR}/textproc/libxml2
+FOLLOW_XFF_CONFIGURE_ENABLE=	follow-x-forwarded-for
+HTCP_CONFIGURE_ENABLE=		htcp
+ICAP_CONFIGURE_ENABLE=		icap-client
+ICMP_CONFIGURE_ENABLE=		icmp
+IDENT_CONFIGURE_ENABLE=		ident-lookups
+IPV6_CONFIGURE_ENABLE=		ipv6
+KQUEUE_CONFIGURE_ENABLE=	kqueue
+LARGEFILE_CONFIGURE_WITH=	large-files
+LAX_HTTP_CONFIGURE_ENABLE=	http-violations
+SNMP_CONFIGURE_ENABLE=		snmp
+SSL_CONFIGURE_ENABLE=		ssl
+SSL_CRTD_CONFIGURE_ENABLE=	ssl-crtd
+STACKTRACES_CONFIGURE_ENABLE=	stacktraces
+TP_IPFW_CONFIGURE_ENABLE=	ipfw-transparent
+TP_IPF_CONFIGURE_ENABLE=	ipf-transparent
+TP_PF_CONFIGURE_ENABLE=		pf-transparent
+VIA_DB_CONFIGURE_ENABLE=	forw-via-db
+WCCPV2_CONFIGURE_ENABLE=	wccpv2
+WCCP_CONFIGURE_ENABLE=		wccp
+
+# TODO:
+# add an option for external_acl/session (requires some kind of external
+# Berkeley DB support, unsure which one)
+ARP_ACL_DESC=		ARP/MAC/EUI based authentification
+AUTH_KERB_DESC=		Install Kerberos authentication helpers
+AUTH_LDAP_DESC=		Install LDAP authentication helpers
+AUTH_NIS_DESC=		Install NIS/YP authentication helpers
+AUTH_SASL_DESC=		Install SASL authentication helpers
+AUTH_SMB_DESC=		Install SMB auth. helpers (req. Samba)
+AUTH_SQL_DESC=		Install SQL based auth (uses MySQL)
+CACHE_DIGESTS_DESC=	Use cache digests
+DEBUG_DESC=		Build with extended debugging support
+DELAY_POOLS_DESC=	Delay pools (bandwidth limiting)
+DNS_HELPER_DESC=	Use external dnsserver processes for DNS
+ECAP_DESC=		Loadable content adaptation modules (broken on FreeBSD 10+)
+ESI_DESC=		ESI support
+FOLLOW_XFF_DESC=	Support for the X-Following-For header
+FS_AUFS_DESC=		AUFS (async-io) support
+FS_COSS_DESC=		COSS (not stable yet)
+HTCP_DESC=		HTCP support
+ICAP_DESC=		the ICAP client
+ICMP_DESC=		ICMP pinging and network measurement
+IDENT_DESC=		Ident lookups (RFC 931)
+KQUEUE_DESC=		Kqueue(2) support
+LARGEFILE_DESC=		Support large (>2GB) cache and log files
+SNMP_DESC=		SNMP support
+SSL_CRTD_DESC=		Use ssl_crtd to handle SSL cert requests
+SSL_DESC=		SSL gatewaying support
+STACKTRACES_DESC=	Enable automatic backtraces on fatal errors
+LAX_HTTP_DESC=		Do not enforce strict HTTP compliance
+TP_IPFW_DESC=		Transparent proxying with IPFW
+TP_IPF_DESC=		Transparent proxying with IPFilter
+TP_PF_DESC=		Transparent proxying with PF
+VIA_DB_DESC=		Forward/Via database
+WCCPV2_DESC=		Web Cache Coordination Protocol v2
+WCCP_DESC=		Web Cache Coordination Protocol
+
+change_files=	ChangeLog \
+		contrib/nextstep/makepkg \
+		contrib/nextstep/post_install \
+		errors/Makefile.am \
+		errors/Makefile.in \
+		helpers/basic_auth/MSNT/Makefile.am \
+		helpers/basic_auth/MSNT/Makefile.in \
+		src/Makefile.am \
+		src/Makefile.in \
+		src/cf_gen.cc \
+		src/squid.8.in \
+		tools/Makefile.am \
+		tools/Makefile.in
+
+.if !defined(SQUID_CONFIGURE_ARGS) \
+	|| ${SQUID_CONFIGURE_ARGS:M*--disable-unlinkd*} == ""
+PLIST_SUB+=	UNLINKD=""
+.else
+PLIST_SUB+=	UNLINKD="@comment "
+.endif
+
+CONFIGURE_ARGS=	--with-default-user=squid \
+		--bindir=${PREFIX}/sbin \
+		--sbindir=${PREFIX}/sbin \
 		--datadir=${ETCDIR} \
 		--libexecdir=${PREFIX}/libexec/squid \
-		--localstatedir=/var/squid \
+		--localstatedir=/var \
 		--sysconfdir=${ETCDIR} \
+		--with-logdir=/var/log/squid \
+		--with-pidfile=/var/run/squid/squid.pid \
+		--with-swapdir=/var/squid/cache/squid \
+		--enable-auth \
+		--enable-build-info \
+		--enable-loadable-modules \
 		--enable-removal-policies="lru heap" \
+		--disable-epoll \
 		--disable-linux-netfilter \
 		--disable-linux-tproxy \
-		--disable-epoll
+		--disable-translation
 
-.include <bsd.port.pre.mk>
+.include <bsd.port.options.mk>
+
+.if ${CC:T:Mclang*} || ${CXX:T:Mclang++*} \
+	|| ${OPSYS} == FreeBSD && ${OSVERSION} >= 1000024
+CXXFLAGS+=	-Wno-unused-private-field
+.endif
 
 # Authentication methods and modules:
 
-basic_auth=	DB NCSA PAM MSNT SMB
-digest_auth=	password
-external_acl=	ip_user session unix_group wbinfo_group
-MAN8+=		ncsa_auth.8 pam_auth.8 squid_db_auth.8 squid_session.8 \
-		squid_unix_group.8
-.if ${PORT_OPTIONS:MLDAP_AUTH}
-USE_OPENLDAP=	yes
-CFLAGS+=	-I${LOCALBASE}/include
-LDFLAGS+=	-L${LOCALBASE}/lib
-MAN8+=		squid_ldap_auth.8 squid_ldap_group.8
+basic_auth=	DB MSNT MSNT-multi-domain NCSA PAM POP3 RADIUS fake getpwnam
+digest_auth=	file
+external_acl=	file_userip time_quota unix_group
+ntlm_auth=	fake smb_lm
+
+.if ${PORT_OPTIONS:MAUTH_LDAP}
 basic_auth+=	LDAP
-digest_auth+=	ldap
-external_acl+=	ldap_group
-libexec+=	digest_ldap_auth squid_ldap_auth squid_ldap_group
+external_acl+=	LDAP_group
 .endif
-.if ${PORT_OPTIONS:MSASL_AUTH}
-LIB_DEPENDS+=	libsasl2.so:${PORTSDIR}/security/cyrus-sasl2
-CFLAGS+=	-I${LOCALBASE}/include
-CPPFLAGS+=	-I${LOCALBASE}/include
-LDFLAGS+=	-L${LOCALBASE}/lib
+
+.if ${PORT_OPTIONS:MAUTH_SASL}
 basic_auth+=	SASL
-libexec+=	sasl_auth
 .endif
+
+.if ${PORT_OPTIONS:MAUTH_SMB}
+basic_auth+=	SMB
+external_acl+=	wbinfo_group
+.endif
+
+.if ${PORT_OPTIONS:MAUTH_SQL}
+external_acl+=	SQL_session
+.endif
+
 # POLA: allow the old global make.conf(5) (pre src.conf(5)) defines, too:
-.if ${PORT_OPTIONS:MNIS_AUTH} && !defined(NO_NIS) && !defined(WITHOUT_NIS)
-basic_auth+=	YP
-libexec+=	yp_auth
-.endif
-CONFIGURE_ARGS+=	--enable-auth="basic digest negotiate ntlm" \
-			--enable-basic-auth-helpers="${basic_auth}" \
-			--enable-digest-auth-helpers="${digest_auth}" \
-			--enable-external-acl-helpers="${external_acl}" \
-			--enable-ntlm-auth-helpers="SMB"
+.if ${PORT_OPTIONS:MAUTH_NIS} && !defined(NO_NIS) && !defined(WITHOUT_NIS)
+basic_auth+=	NIS
+.endif
+
 # POLA: allow the old global make.conf(5) (pre src.conf(5)) defines, too:
-.if ${PORT_OPTIONS:MKERB_AUTH} && !defined(NO_KERBEROS) && !defined(WITHOUT_KERBEROS)
-# XXX This currently only works with heimdal from the base system,
-#     see files/patch-squid_kerb_auth:
-CONFIGURE_ARGS+=	--enable-negotiate-auth-helpers="squid_kerb_auth"
-libexec+=	squid_kerb_auth
+.if ${PORT_OPTIONS:MAUTH_KERB} && !defined(NO_KERBEROS) && !defined(WITHOUT_KERBEROS)
+negotiate_auth=	kerberos wrapper
+. if ${OPSYS} == DragonFly
+LIB_DEPENDS+=	libkrb5.so:${PORTSDIR}/security/krb5
+. endif
+# the kerberos_ldap_group external helper depends on LDAP and SASL:
+. if ${PORT_OPTIONS:MAUTH_LDAP} && ${PORT_OPTIONS:MAUTH_SASL}
+external_acl+=	kerberos_ldap_group
+. endif
+.else
+negotiate_auth=	none
 .endif
 
+CONFIGURE_ARGS+=	--enable-auth-basic="${basic_auth}" \
+			--enable-auth-digest="${digest_auth}" \
+			--enable-external-acl-helpers="${external_acl}" \
+			--enable-auth-negotiate="${negotiate_auth}" \
+			--enable-auth-ntlm="${ntlm_auth}"
+
 # Storage schemes:
+storage_schemes=	diskd rock ufs
+diskio_modules=		AIO Blocking DiskDaemon IpcIo Mmapped
 
-storage_schemes=	ufs diskd null
-.if ${PORT_OPTIONS:MAUFS}
+.if ${PORT_OPTIONS:MFS_AUFS}
 storage_schemes+=	aufs
-.if ${OSVERSION}<700055
-# Only document libmap.conf for releases where it may be needed to
-# switch from libpthread (aka libkse) to libthr:
-EXTRA_PATCHES+=		${PATCHDIR}/extra-patch-src-cf.data.pre.aufs
+diskio_modules+=	DiskThreads
+# Nil aufs threads is default, set any other value via SQUID_CONFIGURE_ARGS,
+# e.g. SQUID_CONFIGURE_ARGS=--with-aufs-threads=N
+LDFLAGS+=		-pthread
+.else
+CONFIGURE_ARGS+=	--without-pthreads
 .endif
-# Nil aufs threads is default, set any other value via SQUID_CONFIGURE_ARGS
-CONFIGURE_ARGS+=	--with-pthreads
-.endif
-.if ${PORT_OPTIONS:MCOSS}
+
+.if ${PORT_OPTIONS:MFS_COSS}
+BROKEN=			FS_COSS does not compile
 storage_schemes+=	coss
-.if ! ${PORT_OPTIONS:MAUFS}
-# use Posix AIO instead of aufs' AIO; note that you then need the kernel to
-# supply AIO support, either by loading the aio(4) module (n/a on 4.x) or by
-# adding the option VFS_AIO to your kernel configuration if you want to
-# actually use COSS storage:
-CONFIGURE_ARGS+=	--enable-coss-aio-ops
 .endif
-sbin+=		cossdump
-.endif
-CONFIGURE_ARGS+=	--enable-storeio="${storage_schemes}"
+
+CONFIGURE_ARGS+=	--enable-storeio="${storage_schemes}" \
+			--enable-disk-io="${diskio_modules}"
+
+# Log daemon helpers:
+logdaemon_helpers=	file
+CONFIGURE_ARGS+=	--enable-log-daemon-helpers="${logdaemon_helpers}"
+
+# URL rewrite helpers:
+url_rewrite_helpers=	fake
+CONFIGURE_ARGS+=	--enable-url-rewrite-helpers="${url_rewrite_helpers}"
+
+# Storeid rewrite helpers:
+storeid_rewrite_helpers=	file
+CONFIGURE_ARGS+=	--enable-storeid-rewrite-helpers="${storeid_rewrite_helpers}"
 
 # Other options set via 'make config':
 
-.if ${PORT_OPTIONS:MDELAY_POOLS}
-CONFIGURE_ARGS+=	--enable-delay-pools
-.endif
-.if ${PORT_OPTIONS:MSNMP}
-CONFIGURE_ARGS+=	--enable-snmp
-.endif
-.if ! ${PORT_OPTIONS:MCARP}
-CONFIGURE_ARGS+=	--disable-carp
-.endif
 .if ${PORT_OPTIONS:MSSL}
 # we need to .include bsd.openssl.mk manually here.because USE_OPENSSL only
 # works when it is defined before bsd.port{.pre}.mk is .included.
 # This makes it currently impossible to combine this macro with OPTIONS to
 # conditionally include OpenSSL support.
+# XXX: is this still true with OptionsNG as of 2014-09?
+#.include "${.CURDIR}/../../Mk/bsd.openssl.mk"
 .include "${PORTSDIR}/Mk/bsd.openssl.mk"
-CONFIGURE_ARGS+=	--enable-ssl \
-			--with-openssl="${OPENSSLBASE}"
-CFLAGS+=	-I${OPENSSLINC}
-LDFLAGS+=	-L${OPENSSLLIB}
-.endif
-.if ${PORT_OPTIONS:MPINGER}
-CONFIGURE_ARGS+=	--enable-icmp
-libexec+=	pinger
-.endif
-.if ${PORT_OPTIONS:MDNS_HELPER}
-CONFIGURE_ARGS+=	--disable-internal-dns
-libexec+=	dnsserver
-.endif
-.if ${PORT_OPTIONS:MHTCP}
-CONFIGURE_ARGS+=	--enable-htcp
-.endif
-.if ${PORT_OPTIONS:MVIA_DB}
-CONFIGURE_ARGS+=	--enable-forw-via-db
-.endif
-.if ${PORT_OPTIONS:MCACHE_DIGESTS}
-CONFIGURE_ARGS+=	--enable-cache-digests
-.endif
-.if ! ${PORT_OPTIONS:MWCCP}
-CONFIGURE_ARGS+=	--disable-wccp
-.endif
-.if ${PORT_OPTIONS:MWCCPV2}
-CONFIGURE_ARGS+=	--enable-wccpv2
-.endif
-.if ${PORT_OPTIONS:MSTRICT_HTTP}
-CONFIGURE_ARGS+=	--disable-http-violations
-.endif
-.if ! ${PORT_OPTIONS:MIDENT}
-CONFIGURE_ARGS+=	--disable-ident-lookups
-.endif
-.if ${PORT_OPTIONS:MREFERER_LOG}
-CONFIGURE_ARGS+=	--enable-referer-log
-.endif
-.if ${PORT_OPTIONS:MUSERAGENT_LOG}
-CONFIGURE_ARGS+=	--enable-useragent-log
-.endif
-.if ${PORT_OPTIONS:MARP_ACL}
-CONFIGURE_ARGS+=	--enable-arp-acl
-.endif
-.if ${PORT_OPTIONS:MPF}
-CONFIGURE_ARGS+=	--enable-pf-transparent
+CONFIGURE_ARGS+=	--with-openssl="${OPENSSLBASE}"
+CFLAGS+=		-I${OPENSSLINC}
+LDFLAGS+=		-L${OPENSSLLIB}
 .endif
-.if ${PORT_OPTIONS:MIPFILTER}
-CONFIGURE_ARGS+=	--enable-ipf-transparent
-.endif
-.if ${PORT_OPTIONS:MFOLLOW_XFF}
-CONFIGURE_ARGS+=	--enable-follow-x-forwarded-for
-.endif
-.if ${PORT_OPTIONS:MICAP}
-IGNORE=		does not have working ICAP support anymore -- please use Squid 3.x if you need ICAP. Please remove WITH_SQUID_ICAP from your make environment
-.endif
-.if ! ${PORT_OPTIONS:MKQUEUE}
-CONFIGURE_ARGS+=	--disable-kqueue
+
+.if ${PORT_OPTIONS:MECAP}
+.if ${OPSYS} == FreeBSD && ${OSVERSION} > 1000000
+# re-evaluate on FreeBSD 10+ with the next release
+# http://www.squid-cache.org/mail-archive/squid-users/201402/0324.html
+BROKEN=		ECAP and clang are not friendly
 .endif
-.if ${PORT_OPTIONS:MLARGEFILE}
-CONFIGURE_ARGS+=	--with-large-files --enable-large-cache-files
+LIB_DEPENDS+=	libecap.so:${PORTSDIR}/www/libecap
+CFLAGS+=	-I${LOCALBASE}/include
+LDFLAGS+=	-L${LOCALBASE}/lib
 .endif
+
 .if ${PORT_OPTIONS:MSTACKTRACES}
-CONFIGURE_ARGS+=	--enable-stacktraces
 CFLAGS+=	-g
 STRIP=
 .endif
 
-# Languages:
-#
-# If you do not define SQUID_LANGUAGES yourself, all available language files
-# will be installed; the default language will be English.
-
-SQUID_LANGUAGES?=	Armenian Azerbaijani Bulgarian Catalan Czech Danish \
-			Dutch English Estonian Finnish French German Greek \
-			Hebrew Hungarian Italian Japanese Korean Lithuanian \
-			Polish Portuguese Romanian Russian-1251 Russian-koi8-r \
-			Serbian Simplify_Chinese Slovak Spanish Swedish \
-			Traditional_Chinese Turkish Ukrainian-1251 \
-			Ukrainian-koi8-u Ukrainian-utf8
-SQUID_DEFAULT_LANG?=	English
-CONFIGURE_ARGS+=	--enable-err-languages="${SQUID_LANGUAGES}" \
-			--enable-default-err-language=${SQUID_DEFAULT_LANG}
+.if ${PORT_OPTIONS:MDEBUG} || defined(WITH_DEBUG)
+CONFIGURE_ARGS+=	--disable-optimizations --enable-debug-cbdata
+WITH_DEBUG?=		yes
+.endif
 
 # Finally, add additional user specified configuration options:
 CONFIGURE_ARGS+=	${SQUID_CONFIGURE_ARGS}
 
-CONFIGURE_ENV+=		GREP="${GREP}"
-
-PLIST_DIRS=	%%ETCDIR%%/icons libexec/squid
-PLIST_FILES=	${etc_files:S,^,etc/,} ${icon_files:S,^,%%ETCDIR%%/icons/,} \
-		${libexec:S,^,libexec/squid/,} ${sbin:S,^,sbin/,}
-PLIST_FILES+=	man/man8/cachemgr.cgi.8.gz \
-		man/man8/ncsa_auth.8.gz \
-		man/man8/pam_auth.8.gz \
-		man/man8/squid.8.gz \
-		man/man8/squid_db_auth.8.gz \
-		man/man8/squid_session.8.gz \
-		man/man8/squid_unix_group.8.gz \
-		%%ETCDIR%%/cachemgr.conf \
-		%%ETCDIR%%/mime.conf \
-		%%ETCDIR%%/msntauth.conf \
-		%%ETCDIR%%/squid.conf
-
-.for d in ${SQUID_LANGUAGES}
-PLIST_DIRS+=	%%ETCDIR%%/errors/${d}
-PLIST_FILES+=	${error_files:S,^,%%ETCDIR%%/errors/${d}/,}
-.endfor
-PLIST_DIRS+=	%%ETCDIR%%/errors
-PLIST_DIRSTRY+=	%%ETCDIR%% /var/squid/logs /var/squid
-
 post-patch:
-	@${REINPLACE_CMD} -e 's|%%SQUID_UID%%|${SQUID_UID}|g' \
-	    -e 's|%%SQUID_GID%%|${SQUID_GID}|g' \
-	    -e 's|%%PREFIX%%|${PREFIX}|g' ${WRKSRC}/src/cf.data.pre
-	@${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \
-	    ${WRKSRC}/helpers/basic_auth/SMB/Makefile.in \
-	    ${WRKSRC}/helpers/basic_auth/SMB/smb_auth.sh
-# Prevent installation of .orig files by deleting them.
-	@${FIND} ${WRKSRC} -name '*.bak' -delete
-	@${FIND} ${WRKSRC} -name '*.orig' -delete
+	@${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' \
+		${WRKSRC}/src/cf.data.pre
+	@(cd ${WRKSRC} && ${REINPLACE_CMD} \
+		-e 's|\.conf\.default|.conf.sample|' \
+		-e 's|)\.default|).sample|' \
+		${change_files})
+	@(cd ${WRKSRC} && ${MV} helpers/basic_auth/MSNT/msntauth.conf.default \
+		helpers/basic_auth/MSNT/msntauth.conf.sample)
+	@(cd ${WRKSRC} && ${MV} src/mime.conf.default src/mime.conf.sample)
+
+.if !${PORT_OPTIONS:MIPV6}
+	@${REINPLACE_CMD} -e's/ ::1//' -e's/ fc00::\/7//' \
+		-e's/ fe80::\/10//' -e's/ 2001:DB8::2//' \
+		-e's/ 2001:DB8::a:0\/64//' \
+		-e'/tcp_outgoing_address 2001:db8::c001 good_service_net/d' \
+		-e'/tcp_outgoing_address 2001:db8::beef normal_service_net/d' \
+		-e'/tcp_outgoing_address 2001:db8::1/d' \
+		${WRKSRC}/src/cf.data.pre
+.endif
 
 post-install:
-.if ${PORT_OPTIONS:MEXAMPLES}
 	@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
 	${INSTALL_DATA} ${WRKSRC}/helpers/basic_auth/DB/passwd.sql \
 		${STAGEDIR}${EXAMPLESDIR}
-.endif
-.if ${PORT_OPTIONS:MPINGER}
-	${CHMOD} 4510 ${STAGEDIR}${PREFIX}/libexec/squid/pinger; \
-	${CHGRP} ${SQUID_GID} ${STAGEDIR}${PREFIX}/libexec/squid/pinger
-.endif
-.if ${PORT_OPTIONS:MDOCS}
 	@${MKDIR} ${STAGEDIR}${DOCSDIR}
-	cd ${WRKSRC} && ${INSTALL_DATA} ${docs} ${STAGEDIR}${DOCSDIR}
-.endif
+	(cd ${WRKSRC} && ${INSTALL_DATA} ${MYDOCS} ${STAGEDIR}${DOCSDIR})
+	${MKDIR} ${STAGEDIR}/var/squid/logs
 
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>

Modified: head/www/squid/distinfo
==============================================================================
--- head/www/squid/distinfo	Tue Sep 16 12:04:06 2014	(r368306)
+++ head/www/squid/distinfo	Tue Sep 16 12:29:19 2014	(r368307)
@@ -1,4 +1,2 @@
-SHA256 (squid2.7/squid-2.7.STABLE9.tar.bz2) = c0bdfcb5bb68debc1c9441308178bf148c67979b824c892a4710dc80a5b05d5e
-SIZE (squid2.7/squid-2.7.STABLE9.tar.bz2) = 1351366
-SHA256 (squid2.7/SQUID-2012_1.patch) = a456ed7a45fbecd94a4c68c0e72905135c4424c41c01ab858dc8c5760ee03a6f
-SIZE (squid2.7/SQUID-2012_1.patch) = 4804
+SHA256 (squid3.4/squid-3.4.7.tar.xz) = cc40a3cccdcdfc11269ea969e658d99e3ef2202999b78aa01a647a6bc71759ee
+SIZE (squid3.4/squid-3.4.7.tar.xz) = 2158672

Added: head/www/squid/files/patch-compat_Makefile.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/squid/files/patch-compat_Makefile.in	Tue Sep 16 12:29:19 2014	(r368307)
@@ -0,0 +1,28 @@
+--- compat/Makefile.in.orig	2013-12-30 04:33:49.000000000 -0700
++++ compat/Makefile.in	2014-01-27 00:05:25.000000000 -0700
+@@ -113,7 +113,8 @@
+ libcompat_squid_la_DEPENDENCIES = $(LIBOBJS)
+ am_libcompat_squid_la_OBJECTS = assert.lo compat.lo debug.lo \
+ 	eui64_aton.lo GnuRegex.lo shm.lo strnstr.lo strnrchr.lo \
+-	xalloc.lo xstrerror.lo xstring.lo xstrto.lo mswindows.lo
++	xalloc.lo xstrerror.lo xstring.lo xstrto.lo mswindows.lo \
++	strlen.lo
+ libcompat_squid_la_OBJECTS = $(am_libcompat_squid_la_OBJECTS)
+ am_testPreCompiler_OBJECTS = testPreCompiler.$(OBJEXT) \
+ 	testMain.$(OBJEXT)
+@@ -401,6 +402,7 @@
+ 	getnameinfo.h \
+ 	GnuRegex.c \
+ 	GnuRegex.h \
++	strlen.c \
+ 	inet_ntop.h \
+ 	inet_pton.h \
+ 	initgroups.h \
+@@ -539,6 +541,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/shm.Plo at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/strnrchr.Plo at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/strnstr.Plo at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/strlen.Plo at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/testMain.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/testPreCompiler.Po at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/xalloc.Plo at am__quote@

Added: head/www/squid/files/patch-compat_strlen.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/squid/files/patch-compat_strlen.c	Tue Sep 16 12:29:19 2014	(r368307)
@@ -0,0 +1,31 @@
+--- compat/strlen.c.orig	2014-01-26 23:28:26.000000000 -0700
++++ compat/strlen.c	2014-01-26 23:33:01.000000000 -0700
+@@ -0,0 +1,28 @@
++/* Dennis Glatting
++   January 2014   
++
++   Various places within Squid call strlen() with a NULL pointer,
++   which causes a SIGSEV on FreeBSD. This is a simple, dumb
++   replacement that first checks for a NULL pointer before counting
++   the string's length. In the case of a NULL pointer, the string's
++   length is 0.
++
++ */
++
++
++#include "squid.h"
++#include <string.h>
++
++size_t
++strlen( const char* s ) {
++
++  size_t c = 0;
++
++  if( s == NULL )
++    return 0;
++
++  while( *s++ )
++    ++c;
++
++    return c;
++}

Modified: head/www/squid/files/patch-configure
==============================================================================
--- head/www/squid/files/patch-configure	Tue Sep 16 12:04:06 2014	(r368306)
+++ head/www/squid/files/patch-configure	Tue Sep 16 12:29:19 2014	(r368307)
@@ -1,19 +1,11 @@
-Patch for Squid bug 2203:
-
---with-maxfd inadvertently unsets LDFLAGS.
---- configure.orig	2009-02-05 19:27:06.000000000 +0100
-+++ configure	2009-02-05 19:27:59.000000000 +0100
-@@ -27810,11 +27810,12 @@
+--- configure.orig	2014-06-25 18:43:23.000000000 +0400
++++ configure	2014-08-18 14:46:23.000000000 +0400
+@@ -31752,6 +31752,8 @@
  
  fi
  
-+TLDFLAGS="$LDFLAGS"
++LIBOBJS="$LIBOBJS strlen.$ac_objext"
 +
- if test -z "$SQUID_MAXFD"; then
- 
- { $as_echo "$as_me:$LINENO: checking Maximum number of filedescriptors we can open" >&5
- $as_echo_n "checking Maximum number of filedescriptors we can open... " >&6; }
--TLDFLAGS="$LDFLAGS"
- case $host in
- i386-unknown-freebsd*)
-     if echo "$LDFLAGS" | grep -q pthread; then
+ ac_fn_cxx_check_func "$LINENO" "strtoll" "ac_cv_func_strtoll"
+ if test "x$ac_cv_func_strtoll" = xyes; then :
+   $as_echo "#define HAVE_STRTOLL 1" >>confdefs.h

Modified: head/www/squid/files/patch-src-cf.data.pre
==============================================================================
--- head/www/squid/files/patch-src-cf.data.pre	Tue Sep 16 12:04:06 2014	(r368306)
+++ head/www/squid/files/patch-src-cf.data.pre	Tue Sep 16 12:29:19 2014	(r368307)
@@ -1,28 +1,6 @@
---- src/cf.data.pre.orig	Tue Jun 26 01:34:57 2007
-+++ src/cf.data.pre	Mon Jul 16 20:02:21 2007
-@@ -1207,6 +1207,21 @@
- 
- 	Note that for coss, max-size must be less than COSS_MEMBUF_SZ
- 	(hard coded at 1 MB).
-+
-+	Note for FreeBSD users:
-+	COSS -- like aufs -- uses async IO so if you compiled Squid without
-+	support for the aufs storage type, COSS will use POSIX AIO.
-+	This means that you need to add the line
-+
-+	options VFS_AIO
-+
-+	to your kernel configuration in order to use COSS.
-+
-+	On FreeBSD 5 and higher you can load the aio(4) module and do not
-+	necessarily need to recompile your kernel.
-+
-+	If you compiled Squid with both support for aufs and COSS, COSS
-+	will use aufs' routines and does not need special kernel support.
- DOC_END
- 
- NAME: logformat
-@@ -1439,6 +1454,10 @@
+--- src/cf.data.pre.orig	2013-03-12 11:17:07.000000000 +0100
++++ src/cf.data.pre	2013-04-09 11:43:01.000000000 +0200
+@@ -3849,6 +3849,10 @@
  LOC: Config.pidFilename
  DOC_START
  	A filename to write the process-id to.  To disable, enter "none".
@@ -32,19 +10,4 @@
 +	%%PREFIX%%/etc/rc.d/squid for details.
  DOC_END
  
- NAME: debug_options
-@@ -3275,12 +3294,12 @@
- 
- NAME: cache_effective_user
- TYPE: string
--DEFAULT: nobody
-+DEFAULT: %%SQUID_UID%%
- 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_UID%%.  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
+ NAME: log_fqdn

Added: head/www/squid/files/patch-src_tools.cc
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/squid/files/patch-src_tools.cc	Tue Sep 16 12:29:19 2014	(r368307)
@@ -0,0 +1,11 @@
+--- src/tools.cc.orig	2014-08-19 13:38:40.000000000 +0400
++++ src/tools.cc	2014-08-19 13:39:00.000000000 +0400
+@@ -735,7 +735,7 @@
+     uid = geteuid();
+     debugs(21, 3, "no_suid: PID " << getpid() << " giving up root priveleges forever");
+ 
+-    if (setuid(0) < 0)
++    if (setuid(0) < 0 && TheProcessKind != pkHelper)
+         debugs(50, DBG_IMPORTANT, "WARNING: no_suid: setuid(0): " << xstrerror());
+ 
+     if (setuid(uid) < 0)

Modified: head/www/squid/files/pkg-install.in
==============================================================================
--- head/www/squid/files/pkg-install.in	Tue Sep 16 12:04:06 2014	(r368306)
+++ head/www/squid/files/pkg-install.in	Tue Sep 16 12:29:19 2014	(r368307)
@@ -5,66 +5,55 @@
 
 PATH=/bin:/usr/bin:/usr/sbin
 pkgname=$1
-squid_base="/var/squid"
+squid_homedir="/var/squid"
+squid_cache_basedir="${squid_homedir}/cache"
 squid_confdir="${PKG_PREFIX:-%%PREFIX%%}/etc/squid"
-if [ -x /usr/sbin/nologin ]; then
-	nologin=/usr/sbin/nologin
-else
-	nologin=/sbin/nologin
-fi
-squid_user="%%SQUID_UID%%"
-squid_group="%%SQUID_GID%%"
+squid_logdir="/var/log/squid"
+# these are hardcoded, see /usr/ports/UIDs and /usr/ports/GIDs:
+squid_user=squid
+squid_group=squid
 squid_gid=100
 squid_uid=100
 case $2 in
 PRE-INSTALL)
 	echo "===> Pre-installation configuration for ${pkgname}"
-	if ! pw groupshow ${squid_group} -q >/dev/null ; then
-		echo "There is no group '${squid_group}' on this system, so I will try to create it (using group id ${squid_gid}):"
-		if ! pw groupadd ${squid_group} -g ${squid_gid} -q ; then
-			echo "Failed to create group \"${squid_group}\"!" >&2
-			echo "Please create it manually." >&2
-			exit 1
-		else
-			echo "Group '${squid_group}' created successfully:"
-		fi
-	else
-		echo "I will use the existing group '${squid_group}':"
-	fi
-	pw groupshow ${squid_group}
-
-	if ! pw usershow ${squid_user} -q >/dev/null ; then
-		echo "There is no account '${squid_user}' on this system, so I will try to create it (using user id ${squid_uid}):"
-		if ! pw useradd -q -n ${squid_user} \
-		    -u ${squid_uid} -g ${squid_group} \
-	  	    -c "Squid caching-proxy pseudo user" \
-		    -d "${squid_base}" -s "${nologin}" \
-		    -h - ; then
-			echo "Failed to create user '${squid_user}'!" >&2
-			echo "Please create it manually." >&2
-			exit 1
-		else
-			echo "User '${squid_user}' created successfully:"
-		fi
+	;;
+POST-INSTALL)
+	# Since we usually start the Squid master process as ${squid_user}
+	# instead of root make sure that ${squid_homedir} is writable for it.
+	if [ ! -d ${squid_homedir} ]; then
+		echo "Creating ${squid_homedir}..."
+		install -d -o root -g ${squid_group} \
+		    -m 0775 ${squid_homedir}
 	else
-		echo "I will use the existing user '${squid_user}':"
+		chgrp ${squid_group} ${squid_homedir}
+		chmod g+w ${squid_homedir}
 	fi
-	pw usershow ${squid_user}
-	for dir in cache logs; do
-	if [ ! -d ${squid_base}/${dir} ]; then
-		echo "Creating ${squid_base}/${dir}..."
+	if [ ! -d ${squid_cache_basedir} ]; then
+		echo "Creating ${squid_cache_basedir} ..."
 		install -d -o ${squid_user} -g ${squid_group} \
-		    -m 0750 ${squid_base}/${dir}
+		    -m 0750 ${squid_cache_basedir}
+	else
+		chown ${squid_user} ${squid_cache_basedir}
+		chgrp ${squid_group} ${squid_cache_basedir}
+		chmod 0750 ${squid_cache_basedir}
 	fi
-	done
 	if [ ! -d ${squid_confdir} ]; then
 		echo "Creating ${squid_confdir}..."
 		install -d -o root -g ${squid_group} \
 		    -m 0755 ${squid_confdir}
+	else
+		chgrp ${squid_group} ${squid_confdir}
 	fi
-	;;
-POST-INSTALL)
-	for file in cachemgr.conf mime.conf squid.conf; do
+	if [ ! -d ${squid_logdir} ]; then
+		echo "Creating ${squid_logdir}..."
+		install -d -o ${squid_user} -g ${squid_group} \
+		    -m 0750 ${squid_logdir}
+	else
+		chown ${squid_user} ${squid_logdir}
+		chgrp ${squid_group} ${squid_logdir}
+	fi
+	for file in cachemgr.conf errorpage.css mime.conf msntauth.conf squid.conf; do
 		if [ ! -f ${squid_confdir}/${file} \
 		    -a -f ${squid_confdir}/${file}.default ]; then
 			echo "Creating ${file} from default..."

Modified: head/www/squid/files/pkg-message.in
==============================================================================
--- head/www/squid/files/pkg-message.in	Tue Sep 16 12:04:06 2014	(r368306)
+++ head/www/squid/files/pkg-message.in	Tue Sep 16 12:29:19 2014	(r368307)
@@ -1,28 +1,33 @@
      o You can find the configuration files for this package in the
        directory %%PREFIX%%/etc/squid.

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-ports-head mailing list