summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony G. Basile <blueness@gentoo.org>2014-09-23 23:14:00 +0000
committerAnthony G. Basile <blueness@gentoo.org>2014-09-23 23:14:00 +0000
commitb55dc339906eb5a97c91fdd7970195461b0152e4 (patch)
treeccc99ff55ba58ed53edc10ad4c12b037705b96ae
parentversion bump (diff)
downloadgentoo-2-b55dc339906eb5a97c91fdd7970195461b0152e4.tar.gz
gentoo-2-b55dc339906eb5a97c91fdd7970195461b0152e4.tar.bz2
gentoo-2-b55dc339906eb5a97c91fdd7970195461b0152e4.zip
Add graceful stop for testing, bug #523552
(Portage version: 2.2.8-r1/cvs/Linux x86_64, signed Manifest commit with key 0xF52D4BBA)
-rw-r--r--net-misc/tor/ChangeLog8
-rw-r--r--net-misc/tor/files/tor.initd-r781
-rw-r--r--net-misc/tor/tor-0.2.5.8_rc-r1.ebuild99
3 files changed, 187 insertions, 1 deletions
diff --git a/net-misc/tor/ChangeLog b/net-misc/tor/ChangeLog
index f2541fb6d179..155e5482f3fe 100644
--- a/net-misc/tor/ChangeLog
+++ b/net-misc/tor/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for net-misc/tor
# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-misc/tor/ChangeLog,v 1.432 2014/09/23 11:15:52 blueness Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-misc/tor/ChangeLog,v 1.433 2014/09/23 23:14:00 blueness Exp $
+
+*tor-0.2.5.8_rc-r1 (23 Sep 2014)
+
+ 23 Sep 2014; Anthony G. Basile <blueness@gentoo.org> +files/tor.initd-r7,
+ +tor-0.2.5.8_rc-r1.ebuild:
+ Add graceful stop for testing, bug #523552
*tor-0.2.5.8_rc (23 Sep 2014)
*tor-0.2.4.24 (23 Sep 2014)
diff --git a/net-misc/tor/files/tor.initd-r7 b/net-misc/tor/files/tor.initd-r7
new file mode 100644
index 000000000000..f6a67d024c66
--- /dev/null
+++ b/net-misc/tor/files/tor.initd-r7
@@ -0,0 +1,81 @@
+#!/sbin/runscript
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-misc/tor/files/tor.initd-r7,v 1.1 2014/09/23 23:14:00 blueness Exp $
+
+PIDFILE=/var/run/tor/tor.pid
+CONFFILE=/etc/tor/torrc
+GRACEFUL_TIMEOUT=${GRACEFUL_TIMEOUT:-60}
+
+# See bug #523552, and https://trac.torproject.org/projects/tor/ticket/5525
+# Graceful = wait 30 secs or so until all connections are properly closed.
+extra_commands="checkconfig"
+extra_started_commands="graceful gracefulstop reload"
+description="Anonymizing overlay network for TCP"
+description_checkconfig="Check for valid config file."
+description_reload="Reload the configuration."
+description_graceful="Gracefully restart."
+description_gracefulstop="Gracefully stop."
+
+depend() {
+ need net
+}
+
+checkconfig() {
+ # first check that it exists
+ if [ ! -f ${CONFFILE} ] ; then
+ eerror "You need to setup ${CONFFILE} first"
+ eerror "Example is in ${CONFFILE}.sample"
+ return 1
+ fi
+
+ # now verify whether the configuration is valid
+ /usr/bin/tor --verify-config -f ${CONFFILE} > /dev/null 2>&1
+ if [ $? -eq 0 ] ; then
+ einfo "Tor configuration (${CONFFILE}) is valid."
+ return 0
+ else
+ eerror "Tor configuration (${CONFFILE}) not valid."
+ /usr/bin/tor --verify-config -f ${CONFFILE}
+ return 1
+ fi
+}
+
+start() {
+ checkconfig || return 1
+ checkpath -d -m 0755 -o tor:tor /var/run/tor
+ ebegin "Starting Tor"
+ HOME=/var/lib/tor
+ start-stop-daemon --start --pidfile "${PIDFILE}" --quiet --exec /usr/bin/tor -- -f "${CONFFILE}" --runasdaemon 1 --PidFile "${PIDFILE}" > /dev/null 2>&1
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping Tor"
+ start-stop-daemon --stop --pidfile "${PIDFILE}" --exec /usr/bin/tor -- --PidFile "${PIDFILE}"
+ eend $?
+}
+
+graceful() {
+ gracefulstop
+ start
+ eend $?
+}
+
+gracefulstop() {
+ ebegin "Gracefully stopping Tor"
+ ebegin "This can take up to ${GRACEFUL_TIMEOUT} seconds"
+ start-stop-daemon -P --stop --signal INT -R ${GRACEFUL_TIMEOUT} --pidfile "${PIDFILE}" --exec /usr/bin/tor -- --PidFile "${PIDFILE}"
+ eend $?
+}
+
+reload() {
+ if [ ! -f ${PIDFILE} ]; then
+ eerror "${SVCNAME} isn't running"
+ return 1
+ fi
+ checkconfig || return 1
+ ebegin "Reloading Tor configuration"
+ start-stop-daemon --signal HUP --pidfile ${PIDFILE}
+ eend $?
+}
diff --git a/net-misc/tor/tor-0.2.5.8_rc-r1.ebuild b/net-misc/tor/tor-0.2.5.8_rc-r1.ebuild
new file mode 100644
index 000000000000..da4f7190c002
--- /dev/null
+++ b/net-misc/tor/tor-0.2.5.8_rc-r1.ebuild
@@ -0,0 +1,99 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-misc/tor/tor-0.2.5.8_rc-r1.ebuild,v 1.1 2014/09/23 23:14:00 blueness Exp $
+
+EAPI="5"
+
+inherit eutils flag-o-matic readme.gentoo systemd toolchain-funcs versionator user
+
+MY_PV="$(replace_version_separator 4 -)"
+MY_PF="${PN}-${MY_PV}"
+DESCRIPTION="Anonymizing overlay network for TCP"
+HOMEPAGE="http://www.torproject.org/"
+SRC_URI="https://www.torproject.org/dist/${MY_PF}.tar.gz
+ https://archive.torproject.org/tor-package-archive/${MY_PF}.tar.gz"
+S="${WORKDIR}/${MY_PF}"
+
+LICENSE="BSD GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
+IUSE="-bufferevents +ecc nat-pmp selinux stats tor-hardening transparent-proxy threads test upnp web"
+
+DEPEND="dev-libs/openssl
+ sys-libs/zlib
+ dev-libs/libevent
+ bufferevents? ( dev-libs/libevent[ssl] )
+ nat-pmp? ( net-libs/libnatpmp )
+ upnp? ( net-libs/miniupnpc )
+ selinux? ( sec-policy/selinux-tor )"
+RDEPEND="${DEPEND}"
+
+pkg_setup() {
+ enewgroup tor
+ enewuser tor -1 -1 /var/lib/tor tor
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-0.2.3.14_alpha-torrc.sample.patch
+}
+
+src_configure() {
+ # Upstream isn't sure of all the user provided CFLAGS that
+ # will break tor, but does recommend against -fstrict-aliasing.
+ # We'll filter-flags them here as we encounter them.
+ filter-flags -fstrict-aliasing
+ econf \
+ --disable-buf-freelists \
+ --enable-asciidoc \
+ --docdir=/usr/share/doc/${PF} \
+ $(use_enable stats instrument-downloads) \
+ $(use_enable bufferevents) \
+ $(use_enable ecc curve25519) \
+ $(use_enable nat-pmp) \
+ $(use_enable tor-hardening gcc-hardening) \
+ $(use_enable tor-hardening linker-hardening) \
+ $(use_enable transparent-proxy transparent) \
+ $(use_enable threads) \
+ $(use_enable upnp) \
+ $(use_enable web tor2web-mode) \
+ $(use_enable test unittests) \
+ $(use_enable test coverage)
+}
+
+src_test() {
+ emake check
+}
+
+src_install() {
+ readme.gentoo_create_doc
+
+ newconfd "${FILESDIR}"/tor.confd tor
+ newinitd "${FILESDIR}"/tor.initd-r7 tor
+ systemd_dounit "${FILESDIR}/${PN}.service"
+ systemd_dotmpfilesd "${FILESDIR}/${PN}.conf"
+
+ emake DESTDIR="${D}" install
+
+ keepdir /var/lib/tor
+
+ dodoc README ChangeLog ReleaseNotes doc/HACKING
+
+ fperms 750 /var/lib/tor
+ fowners tor:tor /var/lib/tor
+
+ insinto /etc/tor/
+ newins "${FILESDIR}"/torrc-r1 torrc
+}
+
+pkg_postinst() {
+ readme.gentoo_pkg_postinst
+
+ if [[ $(gcc-major-version) -eq 4 && $(gcc-minor-version) -eq 8 && $(gcc-micro-version) -ge 1 ]] ; then
+ ewarn "Due to a bug in >=gcc-4.8.1, compiling ${P} with -Os leads to an infinite"
+ ewarn "loop. See:"
+ ewarn
+ ewarn " https://trac.torproject.org/projects/tor/ticket/10259"
+ ewarn " http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59358"
+ ewarn
+ fi
+}