diff options
author | Anthony G. Basile <blueness@gentoo.org> | 2014-09-23 23:14:00 +0000 |
---|---|---|
committer | Anthony G. Basile <blueness@gentoo.org> | 2014-09-23 23:14:00 +0000 |
commit | b55dc339906eb5a97c91fdd7970195461b0152e4 (patch) | |
tree | ccc99ff55ba58ed53edc10ad4c12b037705b96ae | |
parent | version bump (diff) | |
download | gentoo-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/ChangeLog | 8 | ||||
-rw-r--r-- | net-misc/tor/files/tor.initd-r7 | 81 | ||||
-rw-r--r-- | net-misc/tor/tor-0.2.5.8_rc-r1.ebuild | 99 |
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 +} |