# $Id: Portfile 66285 2010-04-08 08:09:09Z jmr@macports.org $

PortSystem			1.0
name				privoxy
version				3.0.16
categories			www security net
maintainers			nomaintainer
description			Advanced filtering web proxy
long_description \
	Privoxy is a web proxy with advanced filtering capabilities for \
	protecting privacy, modifying web page content, managing cookies, \
	controlling access, and removing ads, banners, pop-ups and other \
	obnoxious Internet junk. Privoxy has a very flexible configuration and \
	can be customized to suit individual needs and tastes. Privoxy has \
	application for both stand-alone systems and multi-user networks.

platforms			darwin

homepage			http://www.privoxy.org/
master_sites		sourceforge:ijbswa
distname			${name}-${version}-stable-src

checksums           md5     64d3ffcdf8307e04a375773bb4eb255e \
                    sha1    2c9c44034ff0509c124fac98cb741a2c2572edcd \
                    rmd160  36723f0269f9a03394c959eb6587b57fdb7eb713

worksrcdir			${name}-${version}-stable

depends_lib			port:pcre port:zlib

set privoxyGroup	privoxy
set privoxyUser		privoxy

pre-configure {
	addgroup	${privoxyGroup}
	adduser		${privoxyUser} gid=[existsgroup ${privoxyGroup}]

	system "cd ${worksrcpath} && autoheader"
}

use_autoconf		yes
configure.args		--with-user=${privoxyUser} \
					--with-group=${privoxyGroup} \
					--sysconfdir=${prefix}/etc/${name} \
					--mandir=${prefix}/share/man \
					--enable-dynamic-pcre \
					--enable-zlib

destroot.keepdirs	${destroot}${prefix}/var/log/privoxy \
					${destroot}${prefix}/var/run

post-destroot {
	xinstall -m 755 -d ${destroot}${prefix}/var/run
	# Install and fixup startup script (if non-Darwin)
	if {${os.platform} != "darwin"} {
		xinstall -m 755 -d ${destroot}${prefix}/etc/rc.d
		xinstall -m 755 -W ${worksrcpath} privoxy-generic.init \
			${destroot}${prefix}/etc/rc.d/privoxy.sh

		system "cd ${destroot}${prefix}/etc/rc.d && patch -p0 < ${filespath}/patch-privoxy.sh.diff"
		reinplace "s|@@PREFIX@@|${prefix}|g" \
			${destroot}${prefix}/etc/rc.d/privoxy.sh
		reinplace "s|@@PRIVOXY_USER@@|${privoxyUser}|g" \
			${destroot}${prefix}/etc/rc.d/privoxy.sh
	}
	# Rename these so local modifications are not removed on uninstall
	foreach privoxyConf {config.new trust.new user.action.new user.filter.new} {
            if [file exists ${destroot}${prefix}/etc/privoxy/${privoxyConf}] {
		file rename ${destroot}${prefix}/etc/privoxy/${privoxyConf} \
			${destroot}${prefix}/etc/privoxy/${privoxyConf}-dist 
            }
	}
	# Remove the preinstalled log files as, otherwise, a rotation script
	# will fail when trying to rename and compress due to gzip not liking
	# multi-linked files (the one in ${prefix} and the one in
	# ${prefix}/var/db/dports/software/...)
	eval file delete [glob ${destroot}${prefix}/var/log/privoxy/*]
	# Make sure log directory owned by privoxy user/group
	file attributes ${destroot}${prefix}/var/log/privoxy \
		-group ${privoxyGroup} -owner ${privoxyUser}
}

post-activate {
	# Make sure initial log files are present and setup correctly
	foreach privoxyLog {jarfile logfile} {
		touch ${prefix}/var/log/privoxy/${privoxyLog}
		file attributes ${prefix}/var/log/privoxy/${privoxyLog} \
			-group ${privoxyGroup} -owner ${privoxyUser} \
			-permissions 0660
	}
	foreach privoxyConf {config trust user.action} {
		if ![file exists ${prefix}/etc/privoxy/${privoxyConf}] {
			file copy ${prefix}/etc/privoxy/${privoxyConf}.new \
				${prefix}/etc/privoxy/${privoxyConf}
			file attributes ${prefix}/etc/privoxy/${privoxyConf} \
				-group ${privoxyGroup} -owner ${privoxyUser} \
				-permissions 0660
		}
	}
}

platform darwin {
	startupitem.create			yes
	startupitem.name			Privoxy
	startupitem.start			"\[ -f \"${prefix}/etc/privoxy/config\" \] \\"
	startupitem.start-append	"\t&& ${prefix}/sbin/privoxy \\"
	startupitem.start-append	"\t\t--pidfile ${prefix}/var/run/privoxy.pid \\"
	startupitem.start-append	"\t\t--user ${privoxyUser} \\"
	startupitem.start-append	"\t\t${prefix}/etc/privoxy/config 2>/dev/null"
	startupitem.stop			"if \[ -f \"${prefix}/var/run/privoxy.pid\" \]; then"
	startupitem.stop-append		"\tkill `cat ${prefix}/var/run/privoxy.pid` \\"
	startupitem.stop-append		"\t\t&& rm -f ${prefix}/var/run/privoxy.pid"
	startupitem.stop-append		"else"
	startupitem.stop-append		"\t/usr/bin/killall -SIGUSR1 privoxy 2>/dev/null"
	startupitem.stop-append		"fi"
}

livecheck.type		regex
livecheck.url		http://www.privoxy.org/announce.txt
livecheck.regex		Announcing Privoxy v.(\[0-9.\]+)
