| # 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" |
| IUSE="-bufferevents scrypt seccomp selinux stats systemd tor-hardening transparent-proxy test web" |
| |
| DEPEND="dev-libs/openssl:= |
| 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.3.14_alpha-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=/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 |
| } |