# Copyright 1999-2015 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ 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 ~ppc-macos" IUSE="-bufferevents libressl scrypt seccomp selinux stats systemd tor-hardening transparent-proxy test web" DEPEND=" !libressl? ( dev-libs/openssl:0=[-bindist] ) libressl? ( dev-libs/libressl:= ) sys-libs/zlib dev-libs/libevent bufferevents? ( dev-libs/libevent[ssl] ) scrypt? ( app-crypt/libscrypt ) seccomp? ( sys-libs/libseccomp ) systemd? ( sys-apps/systemd )" RDEPEND="${DEPEND} selinux? ( sec-policy/selinux-tor )" pkg_setup() { enewgroup tor enewuser tor -1 -1 /var/lib/tor tor } src_prepare() { epatch "${FILESDIR}"/${PN}-0.2.7.4-torrc.sample.patch epatch_user } 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 \ --enable-system-torrc \ --enable-asciidoc \ --docdir="${EPREFIX}"/usr/share/doc/${PF} \ $(use_enable stats instrument-downloads) \ $(use_enable bufferevents) \ $(use_enable scrypt libscrypt) \ $(use_enable seccomp) \ $(use_enable systemd) \ $(use_enable tor-hardening gcc-hardening) \ $(use_enable tor-hardening linker-hardening) \ $(use_enable transparent-proxy transparent) \ $(use_enable web tor2web-mode) \ $(use_enable test unittests) \ $(use_enable test coverage) } 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 " https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59358" ewarn fi }