summaryrefslogtreecommitdiff
blob: 766c0e12a2eddd7858d626685b36b42444b84e05 (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
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

inherit eutils

DESCRIPTION="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 received passthru per-domain regex quarantine 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 simscan -1 -1 /dev/null clamav
}

src_compile() {
	local myconf

	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 simscan /var/qmail/simscan /var/qmail/bin/simscan
	fperms 4711 /var/qmail/bin/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() {
	if use custom-smtp-reject ; then
		ewarn
		ewarn "Be careful when using 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 "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
}