summaryrefslogtreecommitdiff
blob: afc08db1e4fd2f74015a3adf82ee27faaff98c59 (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
# 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="attachment clamav custom-smtp-reject dropmsg passthru per-domain quarantine received regex spamassassin"

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"

	for flag in clamav custom-smtp-reject dropmsg per-domain received ; do
		if use ${flag} ; then
			myconf="${myconf} --enable-${flag}=y"
		else
			myconf="${myconf} --enable-${flag}=n"
		fi
	done

	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 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 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
		ewarn "Be careful, if you use the \"custom-smtp-reject\" flag you will"
		ewarn "have many problems if qmail was not patched with"
		ewarn "qmail-queue-custom-error.patch"
		ewarn
		ewarn "If your not sure, re-emerge simscan without this flag"
		ewarn
	fi

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

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

	elog "Read the documentation and personalize /var/qmail/control/simcontrol"
	elog ""
}