summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-proxy/polipo')
-rw-r--r--net-proxy/polipo/ChangeLog12
-rw-r--r--net-proxy/polipo/files/polipo.crond-222
-rw-r--r--net-proxy/polipo/files/polipo.initd-266
-rw-r--r--net-proxy/polipo/polipo-1.1.1.ebuild56
-rw-r--r--net-proxy/polipo/polipo-9999.ebuild44
5 files changed, 182 insertions, 18 deletions
diff --git a/net-proxy/polipo/ChangeLog b/net-proxy/polipo/ChangeLog
index fe5df4a8e6d2..381bd8029077 100644
--- a/net-proxy/polipo/ChangeLog
+++ b/net-proxy/polipo/ChangeLog
@@ -1,6 +1,16 @@
# ChangeLog for net-proxy/polipo
# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-proxy/polipo/ChangeLog,v 1.41 2015/01/08 14:10:03 bircoph Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-proxy/polipo/ChangeLog,v 1.42 2015/01/09 00:13:32 bircoph Exp $
+
+*polipo-1.1.1 (09 Jan 2015)
+
+ 09 Jan 2015; Andrew Savchenko <bircoph@gentoo.org> +polipo-1.1.1.ebuild,
+ polipo-9999.ebuild, +files/polipo.crond-2, +files/polipo.initd-2:
+ Version bump.
+ Fix bugs 504030, 510056, 520598.
+ Provide security update for bug 385307.
+ Add init.d script multiplexing. Update crond file to support
+ multiplexing.
08 Jan 2015; Andrew Savchenko <bircoph@gentoo.org> metadata.xml:
Add myself to maintainers.
diff --git a/net-proxy/polipo/files/polipo.crond-2 b/net-proxy/polipo/files/polipo.crond-2
new file mode 100644
index 000000000000..6b2d609d6d6a
--- /dev/null
+++ b/net-proxy/polipo/files/polipo.crond-2
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+# Loop through all init.d instances
+for f in /etc/init.d/polipo*; do
+ # only proceed if daemon is running
+ "${f}" --quiet status || continue
+
+ myname="${f#/etc/init.d/polipo}"
+ conffile="/etc/polipo/config${myname}"
+ pidfile="/var/run/polipo${myname}.pid"
+
+ # check if disk cache is enabled
+ polipo -v -c "${CONFFILE}" |
+ awk '$1 ~ /diskCacheRoot/ { if ($3 == "(none)") exit 1}' ||
+ continue
+
+ # Expire old cached objects
+ kill -USR1 $(cat "${pidfile}")
+ sleep 1
+ nice -n 15 su -s "/bin/sh" -c "polipo -c ${conffile} -x" polipo > /dev/null
+ kill -USR2 $(cat "${pidfile}")
+done
diff --git a/net-proxy/polipo/files/polipo.initd-2 b/net-proxy/polipo/files/polipo.initd-2
new file mode 100644
index 000000000000..4187f17c3177
--- /dev/null
+++ b/net-proxy/polipo/files/polipo.initd-2
@@ -0,0 +1,66 @@
+#!/sbin/runscript
+# Copyright 1999-2015 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-proxy/polipo/files/polipo.initd-2,v 1.1 2015/01/09 00:13:32 bircoph Exp $
+
+CONFFILE="/etc/polipo/config${SVCNAME#polipo}"
+PIDFILE="/var/run/${SVCNAME}.pid"
+
+depend() {
+ need net
+}
+
+checkconfig() {
+ { polipo -v -c "${CONFFILE}" || return 1 ; } | {
+ local retvalue=0
+ local name type value desc
+ while read name type value desc ; do
+ case ${name} in
+ configFile)
+ if [ "${value}" = "(none)" ] ; then
+ eerror "Unable to read configuration file /etc/polipo/config"
+ retvalue=1
+ fi
+ ;;
+ daemonise)
+ if [ "${value}" != "false" ] ; then
+ eerror "Configuration option not supported by this init script: ${name}=${value}"
+ retvalue=1
+ fi
+ ;;
+ pidFile)
+ if [ "${value}" != "(none)" ] ; then
+ eerror "Configuration option not supported by this init script: ${name}=${value}"
+ retvalue=1
+ fi
+ ;;
+ diskCacheRoot)
+ if [ "${value}" != "(none)" ] ; then
+ # Ensure that cache directory exists and have proper permissions
+ if ! [[ -d "{value}" ]]; then
+ mkdir -p -m 0750 "${value}"
+ chown polipo:polipo "${value}"
+ fi
+ fi
+ ;;
+ esac
+ done
+ return ${retvalue}
+ }
+}
+
+start() {
+ checkconfig || return 1
+
+ ebegin "Starting Polipo HTTP proxy"
+ start-stop-daemon --start --user polipo \
+ --background --pidfile "${PIDFILE}" --make-pidfile \
+ --exec /usr/bin/polipo -- -c "${CONFFILE}"
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping Polipo HTTP proxy"
+ start-stop-daemon --stop --pidfile "${PIDFILE}"
+ eend $?
+}
diff --git a/net-proxy/polipo/polipo-1.1.1.ebuild b/net-proxy/polipo/polipo-1.1.1.ebuild
new file mode 100644
index 000000000000..060b37631cbb
--- /dev/null
+++ b/net-proxy/polipo/polipo-1.1.1.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-proxy/polipo/polipo-1.1.1.ebuild,v 1.1 2015/01/09 00:13:32 bircoph Exp $
+
+EAPI="5"
+
+if [[ ${PV} == "9999" ]] ; then
+ _GIT=git-r3
+ EGIT_REPO_URI="https://github.com/jech/${PN}.git"
+ SRC_URI=""
+ KEYWORDS=""
+else
+ SRC_URI="http://www.pps.jussieu.fr/~jch/software/files/${PN}/${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+inherit ${_GIT} toolchain-funcs user
+
+DESCRIPTION="A caching web proxy"
+HOMEPAGE="http://www.pps.jussieu.fr/~jch/software/polipo/"
+LICENSE="MIT GPL-2"
+SLOT="0"
+
+DEPEND="sys-apps/texinfo"
+RDEPEND=""
+
+pkg_setup() {
+ enewgroup ${PN}
+ enewuser ${PN} -1 -1 /var/cache/${PN} ${PN}
+}
+
+src_compile() {
+ tc-export CC
+ emake PREFIX=/usr "CDEBUGFLAGS=${CFLAGS}" all
+}
+
+src_install() {
+ einstall PREFIX=/usr MANDIR=/usr/share/man INFODIR=/usr/share/info "TARGET=${D}"
+
+ newinitd "${FILESDIR}/${PN}.initd-2" ${PN}
+ insinto /etc/${PN} ; doins "${FILESDIR}/config"
+ exeinto /etc/cron.weekly ; newexe "${FILESDIR}/${PN}.crond-2" ${PN}
+
+ dodoc CHANGES README
+ dohtml html/*
+}
+
+pkg_postinst() {
+ einfo "Do not forget to read the manual."
+ einfo "Change the config file in /etc/${PN} to suit your needs."
+ einfo ""
+ einfo "Polipo OpenRC init scripts can now be multiplexed:"
+ einfo "1. create /etc/${PN}/config.foo"
+ einfo "2. symlink /etc/init.d/{${PN}.foo -> ${PN}}"
+ einfo "3. make sure all instances use unique ip:port pair and cachedir, if any"
+}
diff --git a/net-proxy/polipo/polipo-9999.ebuild b/net-proxy/polipo/polipo-9999.ebuild
index 9dc65913ac60..868014539d4a 100644
--- a/net-proxy/polipo/polipo-9999.ebuild
+++ b/net-proxy/polipo/polipo-9999.ebuild
@@ -1,40 +1,45 @@
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-proxy/polipo/polipo-9999.ebuild,v 1.2 2014/01/08 06:26:54 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-proxy/polipo/polipo-9999.ebuild,v 1.3 2015/01/09 00:13:32 bircoph Exp $
EAPI="5"
-inherit eutils toolchain-funcs user git-2
+if [[ ${PV} == "9999" ]] ; then
+ _GIT=git-r3
+ EGIT_REPO_URI="https://github.com/jech/${PN}.git"
+ SRC_URI=""
+ KEYWORDS=""
+else
+ SRC_URI="http://www.pps.jussieu.fr/~jch/software/files/${PN}/${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+inherit ${_GIT} toolchain-funcs user
DESCRIPTION="A caching web proxy"
HOMEPAGE="http://www.pps.jussieu.fr/~jch/software/polipo/"
-EGIT_REPO_URI="git://git.wifi.pps.univ-paris-diderot.fr/polipo"
-
LICENSE="MIT GPL-2"
SLOT="0"
DEPEND="sys-apps/texinfo"
-RDEPEND="${DEPEND}"
+RDEPEND=""
pkg_setup() {
- enewgroup polipo
- enewuser polipo -1 -1 /var/cache/polipo polipo
+ enewgroup ${PN}
+ enewuser ${PN} -1 -1 /var/cache/${PN} ${PN}
}
src_compile() {
tc-export CC
- emake PREFIX=/usr "CDEBUGFLAGS=${CFLAGS}" all || die "build failed"
+ emake PREFIX=/usr "CDEBUGFLAGS=${CFLAGS}" all
}
src_install() {
- einstall PREFIX=/usr MANDIR=/usr/share/man INFODIR=/usr/share/info "TARGET=${D}" || die "install failed"
-
- newinitd "${FILESDIR}/polipo.initd" polipo
- insinto /etc/polipo ; doins "${FILESDIR}/config"
- exeinto /etc/cron.daily ; newexe "${FILESDIR}/polipo.crond" polipo.sh
+ einstall PREFIX=/usr MANDIR=/usr/share/man INFODIR=/usr/share/info "TARGET=${D}"
- diropts -m0750 -o polipo -g polipo
- keepdir /var/cache/polipo
+ newinitd "${FILESDIR}/${PN}.initd-2" ${PN}
+ insinto /etc/${PN} ; doins "${FILESDIR}/config"
+ exeinto /etc/cron.weekly ; newexe "${FILESDIR}/${PN}.crond-2" ${PN}
dodoc CHANGES README
dohtml html/*
@@ -42,5 +47,10 @@ src_install() {
pkg_postinst() {
einfo "Do not forget to read the manual."
- einfo "Change the config file in /etc/polipo to suit your needs."
+ einfo "Change the config file in /etc/${PN} to suit your needs."
+ einfo ""
+ einfo "Polipo OpenRC init scripts can now be multiplexed:"
+ einfo "1. create /etc/${PN}/config.foo"
+ einfo "2. symlink /etc/init.d/{${PN}.foo -> ${PN}}"
+ einfo "3. make sure all instances use unique ip:port pair and cachedir, if any"
}