summaryrefslogtreecommitdiff
blob: f18eee60b0bb9e920efb4cd5d8772c7a3954b7b2 (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
# 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 perdomain 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

	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 perdomain ; 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 simscan /var/qmail/simscan /var/qmail/bin/simscan
	fperms 4711 /var/qmail/bin/simscan

	if use perdomain ; 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 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

	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
}