summaryrefslogtreecommitdiff
blob: c4e2f78a206b72184f3f57c24df3e348a634d47b (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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

inherit eutils

DESCRIPTION="Simscan is a simple program that enables qmail-smtpd to reject viruses, spam, and block attachments during the SMTP conversation"
HOMEPAGE="http://www.inter7.com/?page=simscan"
SRC_URI="http://www.inter7.com/${PN}/${P}.tar.gz"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~x86"
IUSE="clamav attachment custom-smtp-reject dropmsg regex quarantine per-domain
received spamassassin passthru"

DEPEND="
	clamav? ( app-antivirus/clamav )
	attachment? ( net-mail/ripmime )
	spamassassin? ( mail-filter/spamassassin )
	regex? ( dev-libs/libpcre )
"
RDEPEND="${DEPEND}
	virtual/qmail
"

RESTRICT="strip"

pkg_setup() {
	enewgroup clamav
	enewuser clamav -1 -1 /dev/null clamav
}

src_compile() {
	local myconf

	myconf="${myconf} --enable-user=clamav"

	if use clamav ; then
		myconf="${myconf} --enable-clamav=y"
	else
		myconf="${myconf} --enable-clamav=n"
	fi

	if use attachment ; then
		myconf="${myconf} --enable-attach=y"
		myconf="${myconf} --enable-ripmime=/usr/bin/ripmime"
	else
		myconf="${myconf} --enable-attach=n"
	fi

	if use custom-smtp-reject ; then
		myconf="${myconf} --enable-custom-smtp-reject=y"
	else
		myconf="${myconf} --enable-custom-smtp-reject=n"
	fi

	if use dropmsg ; then
		myconf="${myconf} --enable-dropmsg=y"
	else
		myconf="${myconf} --enable-dropmsg=n"
	fi

	if use regex ; then
		myconf="${myconf} --enable-regex=y"
		myconf="${myconf} --enable-pcre"
	else
		myconf="${myconf} --enable-regex=n"
	fi

	use quarantine && myconf="${myconf} --enable-quarantinedir"

	if use per-domain ; then
		myconf="${myconf} --enable-per-domain=y"
	else
		myconf="${myconf} --enable-per-domain=n"
	fi

	if use received ; then
		myconf="${myconf} --enable-received=y"
	else
		myconf="${myconf} --enable-received=n"
	fi

	if use spamassassin ; then
		myconf="${myconf} --enable-spam=y"
		if use passthru ; then
			myconf="${myconf} --enable-spam-passthru=y"
		else
			myconf="${myconf} --enable-spam-passthru=n"
		fi
	else
		myconf="${myconf} --enable-spam=n"
	fi

	econf ${myconf} || die "econf failed"
	emake simscan_LDFLAGS=-Wl,-z,now || die "emake failed"
}

src_install() {
	einfo "Installing documentation and contrib files"
	dodoc AUTHORS README TODO

	docinto contrib
	dodoc contrib/*.patch

	einfo "Installing binaries"
	exeinto /var/qmail/bin
	doexe simscan
	doexe simscanmk

	diropts -m750
	dodir /var/qmail/simscan
	fowners clamav:clamav /var/qmail/simscan /var/qmail/bin/simscan
	fperms 4711 /var/qmail/bin/simscan
	keepdir /var/qmail/simscan

	if use per-domain ; then
		einfo "Setting default configuration..."
		echo ':clam=yes,spam=yes' > simcontrol
		insopts -o root -g root -m 644
		insinto /var/qmail/control
		doins simcontrol
	fi
}

pkg_postinst() {
	einfo ""

	if use custom-smtp-reject ; then
		einfo "Becareful, if you use the \"custom-smtp-reject\" flag you will"
		einfo "have many problems if qmail was not patched with"
		einfo "qmail-queue-custom-error.patch"
		einfo ""
		ewarn "If your not sure, re-emerge simscan without this flag"
		einfo ""
	fi

	einfo "Now update the simscan configuration files :"
	ewarn "You have to do that after clamav or spamassassin update"
	einfo ""
	einfo "/var/qmail/bin/simscanmk"
	einfo "`/var/qmail/bin/simscanmk`"
	einfo ""
	einfo "/var/qmail/bin/simscanmk -g"
	einfo "`/var/qmail/bin/simscanmk -g`"
	einfo ""

	einfo "You must have qmail with QMAILQUEUE patch"
	einfo "And, in order use simscan, edit your tcp.qmail-smtpd rules"
	einfo "and update as follow (for example only)"
	einfo ""
	einfo ":allow,QMAILQUEUE=\"/var/qmail/bin/simscan\""
	einfo ""

	ewarn "Read the documentation and personnalize /var/qmail/control/simcontrol"
	einfo ""
}