summaryrefslogtreecommitdiff
blob: ffe1468556634243da1b2179c74234dfd8b2027a (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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-admin/ulogd/ulogd-2.0.4.ebuild,v 1.5 2014/11/18 02:21:24 dlan Exp $

EAPI="5"

AUTOTOOLS_AUTORECONF=1
AUTOTOOLS_IN_SOURCE_BUILD=1
inherit autotools-utils eutils linux-info readme.gentoo user

DESCRIPTION="A userspace logging daemon for netfilter/iptables related logging"
HOMEPAGE="http://netfilter.org/projects/ulogd/index.html"
SRC_URI="ftp://ftp.netfilter.org/pub/${PN}/${P}.tar.bz2
		http://www.netfilter.org/projects/${PN}/files/${P}.tar.bz2"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~ia64 ~ppc ~x86"
IUSE="dbi doc json mysql nfacct +nfct +nflog pcap postgres sqlite"

RDEPEND="net-firewall/iptables
	>=net-libs/libnfnetlink-1.0.1
	dbi? ( dev-db/libdbi )
	json? ( dev-libs/jansson )
	nfacct? (
		>=net-libs/libmnl-1.0.3
		>=net-libs/libnetfilter_acct-1.0.1
	)
	nfct? ( >=net-libs/libnetfilter_conntrack-1.0.2 )
	nflog? ( >=net-libs/libnetfilter_log-1.0.0 )
	mysql? ( virtual/mysql )
	pcap? ( net-libs/libpcap )
	postgres? ( virtual/postgresql )
	sqlite? ( dev-db/sqlite:3 )"

DEPEND="${RDEPEND}
	doc? (
		app-text/linuxdoc-tools
		app-text/texlive-core
		virtual/latex-base
	)"

DOCS=( AUTHORS README TODO )
DOC_CONTENTS="You must have at least one logging stack enabled to make ulogd work.
Please edit example configuration located at /etc/ulogd.conf"

pkg_setup() {
	enewgroup ulogd
	enewuser ulogd -1 -1 /var/log/ulogd ulogd

	linux-info_pkg_setup

	if kernel_is lt 2 6 14; then
		die "ulogd2 requires kernel newer than 2.6.14"
	fi

	if kernel_is lt 2 6 18; then
		ewarn
		ewarn "You are using kernel older than 2.6.18"
		ewarn "Some ulogd2 features may be unavailable"
		ewarn
	fi

	if use nfacct && kernel_is lt 3 3 0; then
		ewarn "NFACCT input plugin requires kernel newer than 3.3.0"
	fi

	if ! use nfacct && ! use nfct && ! use nflog && kernel_is gt 3 17 0; then
		ewarn "ULOG target was removed since 3.17.0 kernel release"
		ewarn "Consider enabling NFACCT, NFCT or NFLOG support"
	fi
}

src_prepare() {
	epatch "${FILESDIR}/${P}-linux-headers-3.17-ipt_ulog.patch"

	# - make all logs to be kept in a single dir /var/log/ulogd
	# - place sockets in /run instead of /tmp
	sed -i \
		-e 's:var/log:var/log/ulogd:g' \
		-e 's:tmp:run:g' \
		ulogd.conf.in || die 'sed on ulogd.conf.in failed'

	autotools-utils_src_prepare
}

src_configure() {
	local myeconfargs=(
		$(use_with dbi)
		$(use_with json jansson)
		$(use_enable nfacct)
		$(use_enable nfct)
		$(use_enable nflog)
		$(use_with mysql)
		$(use_with pcap)
		$(use_with postgres pgsql)
		$(use_with sqlite)
	)
	autotools-utils_src_configure
}

src_compile() {
	autotools-utils_src_compile

	if use doc ; then
		# prevent access violations from generation of bitmap font files
		export VARTEXFONTS="${T}"/fonts
		emake -C doc
	fi
}

src_install() {
	autotools-utils_src_install
	readme.gentoo_create_doc
	prune_libtool_files --modules

	if use doc ; then
		dohtml doc/${PN}.html
		dodoc doc/${PN}.dvi doc/${PN}.txt doc/${PN}.ps
	fi

	use sqlite && dodoc doc/sqlite3.table
	use mysql && dodoc doc/mysql-*.sql
	use postgres && dodoc doc/pgsql-*.sql
	doman ${PN}.8

	insinto /etc
	doins ${PN}.conf
	fowners root:ulogd /etc/ulogd.conf
	fperms 640 /etc/ulogd.conf

	newinitd "${FILESDIR}/${PN}-2-ng.init" ${PN}

	insinto /etc/logrotate.d
	newins "${FILESDIR}/${PN}-2.logrotate" ${PN}

	diropts -o ulogd -g ulogd
	keepdir /var/log/ulogd
}