summaryrefslogtreecommitdiff
blob: d8e135a140530c244210afeb8e6b5ae89b8b700e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

EAPI=5

inherit autotools eutils flag-o-matic

DESCRIPTION="Open Source File Integrity Checker and IDS"
HOMEPAGE="http://www.tripwire.org/"
SRC_URI="mirror://sourceforge/tripwire/tripwire-${PV}-src.tar.bz2"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64 ppc x86 ~x86-fbsd"
IUSE="libressl ssl static +tools"

DEPEND="sys-devel/automake
	sys-devel/autoconf
	ssl? (
		!libressl? ( dev-libs/openssl:0= )
		libressl? ( dev-libs/libressl:0= )
	)"
RDEPEND="virtual/cron
	virtual/mta
	ssl? ( dev-libs/openssl )"
PDEPEND="tools? ( app-admin/mktwpol )"

S="${WORKDIR}"/tripwire-"${PV}"-src

src_prepare() {
	epatch "${FILESDIR}"/"${P}"-fix-configure.patch
	epatch "${FILESDIR}"/"${P}"-buildnum.patch
	epatch "${FILESDIR}"/"${P}"-gcc-4.7.patch
	epatch "${FILESDIR}"/"${PN}"-twpol-GENERIC.patch
	epatch "${FILESDIR}"/"${P}"-exception-shadowing.patch

	mv configure.in configure.ac || die
	eautoreconf
}

src_configure() {
	# tripwire can be sensitive to compiler optimisation.
	# see #32613, #45823, and others.
	# 	-taviso@gentoo.org
	strip-flags
	append-cppflags -DCONFIG_DIR='"\"/etc/tripwire\""' -fno-strict-aliasing
	econf $(use_enable ssl openssl) $(use_enable static)
}

src_install() {
	dosbin "${S}"/bin/{siggen,tripwire,twadmin,twprint}
	doman "${S}"/man/man{4/*.4,5/*.5,8/*.8}
	dodir /etc/tripwire /var/lib/tripwire{,/report}
	keepdir /var/lib/tripwire{,/report}

	exeinto /etc/cron.daily
	doexe "${FILESDIR}"/tripwire

	dodoc ChangeLog policy/policyguide.txt TRADEMARK \
		"${FILESDIR}"/tripwire.txt

	insinto /etc/tripwire
	doins "${FILESDIR}"/twcfg.txt policy/twpol-GENERIC.txt

	fperms 750 /etc/cron.daily/tripwire
}

pkg_postinst() {
	if [[ -z ${REPLACING_VERSIONS} ]] ; then
		elog "Tripwire needs to be configured before its first run. You can"
		elog "do this by manually editing the twpol-GENERIC.txt file shipped with"
		elog "the package to suit your needs. A quickstart guide is provided"
		elog "in tripwire.txt file to help you with this."
		elog "To configure tripwire automatically, you can use the twsetup.sh"
		elog "script provided by the app-admin/mktwpol package. This package is"
		elog "installed for you by the \"tools\" USE flag (which is enabled by"
		elog "default."
else
		elog "Maintenance of tripwire policy files as packages are added"
		elog "and deleted from your system can be automated by the mktwpol.sh"
		elog "script provided by the app-admin/mktwpol package. This package"
		elog "is installed for you if you append \"tools\" to your USE flags"
	fi
}