2183bc88a5257b52110e35411595fad1ebbaae37
Bernd Wurst version bump to courier-0.6...

Bernd Wurst authored 14 years ago

1) # Copyright 1999-2009 Gentoo Foundation
2) # Distributed under the terms of the GNU General Public License v2
Hanno Böck courier ebuild sync mit por...

Hanno Böck authored 14 years ago

3) # $Header: /var/cvsroot/gentoo-x86/mail-mta/courier/courier-0.63.0.ebuild,v 1.1 2009/12/07 14:21:52 hanno Exp $
Bernd Wurst version bump to courier-0.6...

Bernd Wurst authored 14 years ago

4) 
5) inherit eutils flag-o-matic
6) 
7) DESCRIPTION="An MTA designed specifically for maildirs"
8) SRC_URI="mirror://sourceforge/courier/${P}.tar.bz2"
9) HOMEPAGE="http://www.courier-mta.org/"
10) SLOT="0"
11) LICENSE="GPL-2"
12) # not in keywords due to missing dependencies: ~arm ~s390 ~ppc64 ~mips
13) KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~sparc ~x86"
14) IUSE="postgres ldap mysql pam nls ipv6 spell fax crypt norewrite mailwrapper \
15) 	fam web webmail"
16) 
17) PROVIDE="virtual/mta
18) 	 virtual/mda
19) 	 virtual/imapd"
20) 
21) DEPEND="
22) 	>=net-libs/courier-authlib-0.61.0
23) 	>=dev-libs/openssl-0.9.6
24) 	>=sys-libs/gdbm-1.8.0
25) 	dev-libs/libpcre
26) 	app-misc/mime-types
27) 	fax? ( >=media-libs/netpbm-9.12 virtual/ghostscript >=net-dialup/mgetty-1.1.28 )
28) 	pam? ( virtual/pam )
29) 	mysql? ( virtual/mysql )
30) 	ldap? ( >=net-nds/openldap-1.2.11 )
31) 	postgres? ( virtual/postgresql-base )
32) 	spell? ( virtual/aspell-dict )
33) 	fam? ( virtual/fam )
34) 	!mailwrapper? ( !virtual/mta )
35) 	!virtual/imapd
36) 	!mail-filter/maildrop"
37) 
38) RDEPEND="${DEPEND}
39) 	dev-lang/perl
40) 	sys-process/procps"
41) 
42) PDEPEND="mailwrapper? ( >=net-mail/mailwrapper-0.2 )
43) 	pam? ( net-mail/mailbase )
44) 	crypt? ( >=app-crypt/gnupg-1.0.4 )"
45) 
46) src_unpack() {
47) 	unpack ${A}
48) 	cd "${S}"
49) 	use norewrite && epatch "${FILESDIR}/norewrite.patch"
50) 	epatch "${FILESDIR}/shorter-tarpit.patch"
51) }
52) 
53) src_compile() {
54) 	filter-flags '-fomit-frame-pointer'
55) 
56) 	local myconf
Hanno Böck courier ebuild sync mit por...

Hanno Böck authored 14 years ago

57) 	myconf=""
Bernd Wurst version bump to courier-0.6...

Bernd Wurst authored 14 years ago

58) 
59) 	use ldap && myconf="${myconf} --with-ldapconfig=/etc/courier/maildropldap.conf"
60) 
Hanno Böck courier ebuild sync mit por...

Hanno Böck authored 14 years ago

61) 	econf ${myconf} \
62) 		$(use_with fam) \
63) 		$(use_with ipv6) \
64) 		$(use_with spell ispell) \
65) 		$(use_with ldap ldapaliasd) \
66) 		$(use_enable ldap maildroldap) \
67) 		--enable-mimetypes=/etc/mime.types \
Bernd Wurst version bump to courier-0.6...

Bernd Wurst authored 14 years ago

68) 		--prefix=/usr \
69) 		--disable-root-check \
70) 		--mandir=/usr/share/man \
71) 		--sysconfdir=/etc/courier \
72) 		--libexecdir=/usr/$(get_libdir)/courier \
73) 		--datadir=/usr/share/courier \
74) 		--sharedstatedir=/var/lib/courier/com \
75) 		--localstatedir=/var/lib/courier \
76) 		--with-piddir=/var/run/courier \
77) 		--with-authdaemonvar=/var/lib/courier/authdaemon \
78) 		--with-mailuser=mail \
79) 		--with-mailgroup=mail \
80) 		--with-paranoid-smtpext \
81) 		--with-db=gdbm \
82) 		--disable-autorenamesent \
83) 		--cache-file="${S}/configuring.cache" \
Hanno Böck courier ebuild sync mit por...

Hanno Böck authored 14 years ago

84) 		--host="${CHOST}" debug=true || die "./configure"
Bernd Wurst version bump to courier-0.6...

Bernd Wurst authored 14 years ago

85) 	sed -e'/^install-perms-local:/a\	sed -e\"s|^|'"${D}"'|g\" -i permissions.dat' -i Makefile
86) 	emake || die "Compile problem"
87) }
88) 
89) etc_courier() {
90) 	# Import existing /etc/courier/file if it exists.
91) 	# Add option only if it was not already set or even commented out
92) 	file="${1}" ; word="`echo \"${2}\" | sed -e\"s|=.*$||\" -e\"s|^.*opt ||\"`"
93) 	[ ! -e "${D}/etc/courier/${file}" ] && [ -e "/etc/courier/${file}" ] && \
94) 			cp "/etc/courier/${file}" "${D}/etc/courier/${file}"
95) 	grep -q "${word}" "${D}/etc/courier/${file}" || \
96) 		echo "${2}" >> "${D}/etc/courier/${file}"
97) }
98) 
99) etc_courier_chg() {
100) 	file="${1}" ; key="${2}" ; value="${3}" ; section="${4}"
101) 	[ -z "${section}" ] && section="${2}"
102) 	grep -q "${key}" "${file}" && elog "Changing ${file}: ${key} to ${value}"
103) 	sed -i -e"/\#\#NAME: ${section}/,+30 s|${key}=.*|${key}=\"${value}\"|g" ${file}
104) }
105) 
106) src_install() {
107) 	local f
108) 	diropts -o mail -g mail
109) 	keepdir /var/run/courier
110) 	keepdir /var/lib/courier/tmp
111) 	keepdir /var/lib/courier/msgs
112) 	make install DESTDIR="${D}" || die "install"
113) 	make install-configure || die "install-configure"
114) 
115) 	# Get rid of files we dont want
116) 	if ! use webmail ; then
117) 		cd "${D}"
118) 		cat "${FILESDIR}/webmail_files" | xargs rm -rf
119) 	fi
120) 
121) 	if ! use web ; then
122) 		cd "${D}"
123) 		cat "${FILESDIR}/webadmin_files" | xargs rm -rf
124) 	fi
125) 
126) 	for dir2keep in $(cd "${D}" && find ./var/lib/courier -type d) ; do
127) 		keepdir "$dir2keep" || die "failed running keepdir: $dir2keep"
128) 	done
129) 
130) 	newinitd "${FILESDIR}/courier-init-r2" "courier"
131) 	use fam || sed -i -e's|^.*use famd$||g' "${D}/etc/init.d/courier"
132) 
133) 	cd "${D}/etc/courier"
134) 	if use webmail ; then
135) 		insinto /etc/courier
136) 		newins "${FILESDIR}/apache-sqwebmail.inc" apache-sqwebmail.inc
137) 	fi
138) 
139) 	for f in *.dist ; do cp "${f}" "${f%%.dist}" ; done
140) 	if use ldap ; then
141) 		[ -e ldapaliasrc ] &&  ( chown root:0 ldapaliasrc ; chmod 400 ldapaliasrc )
142) 	else
143) 		rm -f ldapaliasrc
144) 	fi
145) 
146) 	( [ -e /etc/courier/sizelimit ] && cat /etc/courier/sizelimit || echo 0 ) \
147) 		> "${D}/etc/courier/sizelimit"
148) 	etc_courier maildroprc ""
149) 	etc_courier esmtproutes ""
150) 	etc_courier backuprelay ""
151) 	etc_courier locallowercase ""
152) 	etc_courier bofh "opt BOFHBADMIME=accept"
153) 	etc_courier bofh "opt BOFHSPFTRUSTME=1"
154) 	etc_courier bofh "opt BOFHSPFHELO=pass,neutral,unknown,none,error,softfail,fail"
155) 	etc_courier bofh "opt BOFHSPFHELO=pass,neutral,unknown,none"
156) 	etc_courier bofh "opt BOFHSPFFROM=all"
157) 	etc_courier bofh "opt BOFHSPFMAILFROM=all"
158) 	etc_courier bofh "#opt BOFHSPFHARDERROR=fail"
159) 	etc_courier esmtpd "BOFHBADMIME=accept"
160) 	etc_courier esmtpd-ssl "BOFHBADMIME=accept"
161) 	etc_courier esmtpd-msa "BOFHBADMIME=accept"
162) 
163) 	use fam && etc_courier_chg imapd IMAP_CAPABILITY "IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 AUTH=CRAM-SHA256 IDLE"
164) 	use fam || etc_courier_chg imapd IMAP_CAPABILITY "IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 AUTH=CRAM-SHA256"
165) 
166) 	# Fix for a sandbox violation on subsequential merges
167) 	# - ticho@gentoo.org, 2005-07-10
168) 	rm "${D}"/usr/sbin/{pop3d,imapd}{,-ssl}
169) 	dosym /usr/share/courier/pop3d /usr/sbin/courier-pop3d
170) 	dosym /usr/share/courier/pop3d-ssl /usr/sbin/courier-pop3d-ssl
171) 	dosym /usr/share/courier/imapd /usr/sbin/courier-imapd
172) 	dosym /usr/share/courier/imapd-ssl /usr/sbin/courier-imapd-ssl
173) 
174) 	cd "${S}"
175) 	cp imap/README README.imap
176) 	use nls && cp unicode/README README.unicode
177) 	dodoc AUTHORS BENCHMARKS COPYING* ChangeLog* INSTALL NEWS README* TODO courier/doc/*.txt
178) 	dodoc tcpd/README.couriertls
179) 	mv "${D}/usr/share/courier/htmldoc" "${D}/usr/share/doc/${P}/html"
180) 
181) 	if use webmail ; then
182) 		insinto /usr/$(get_libdir)/courier/courier
183) 		insopts -m 755 -o mail -g mail
184) 		doins "${S}/courier/webmaild"
185) 	fi
186) 
187) 	if use web ; then
188) 		insinto /etc/courier/webadmin
189) 		insopts -m 400 -o mail -g mail
190) 		doins "${FILESDIR}/password.dist"
191) 	fi
192) 
193) 	# avoid name collisions in /usr/sbin, make webadmin match
194) 	cd "${D}/usr/sbin"
195) 	for f in imapd imapd-ssl pop3d pop3d-ssl ; do mv "${f}" "courier-${f}" ; done
196) 	if use web ; then
197) 		sed -i -e 's:\$sbindir\/imapd:\$sbindir\/courier-imapd:g' \
198) 			-e 's:\$sbindir\/imapd-ssl:\$sbindir\/courier-imapd-ssl:g' \
199) 			"${D}/usr/share/courier/courierwebadmin/admin-40imap.pl" \
200) 			|| ewarn "failed to fix webadmin"
201) 		sed -i -e 's:\$sbindir\/pop3d:\$sbindir\/courier-pop3d:g' \
202) 			-e 's:\$sbindir\/pop3d-ssl:\$sbindir\/courier-pop3d-ssl:g' \
203) 			"${D}/usr/share/courier/courierwebadmin/admin-45pop3.pl" \
204) 			|| ewarn "failed to fix webadmin"
205) 	fi
206) 
207) 	# users should be able to send mail. Could be restricted with suictl.
208) 	chmod u+s "${D}/usr/bin/sendmail"
209) 
210) 	if use mailwrapper ; then
211) 		mv "${D}/usr/bin/sendmail" "${D}/usr/bin/sendmail.courier"
212) 		mv "${D}/usr/bin/rmail" "${D}/usr/bin/rmail.courier"
213) 		mv "${D}/usr/bin/mailq" "${D}/usr/bin/mailq.courier"
214) 
215) 		mv "${D}/usr/share/man/man1/sendmail.1" \
216) 			"${D}/usr/share/man/man1/sendmail-courier.1"
217) 		mv "${D}/usr/share/man/man1/mailq.1" \
218) 			"${D}/usr/share/man/man1/mailq-courier.1"
219) 		mv "${D}/usr/share/man/man1/rmail.1" \
220) 			"${D}/usr/share/man/man1/rmail-courier.1"
221) 
222) 		insopts -m 444 -o mail -g mail
223) 		insinto /etc/mail
224) 		doins "${FILESDIR}/mailer.conf"
225) 	else
226) 		dosym /usr/bin/sendmail /usr/sbin/sendmail
227) 	fi
228) }
229) 
230) src_test() {
Hanno Böck courier ebuild sync mit por...

Hanno Böck authored 14 years ago

231) 	if [ `whoami` != 'root' ]; then
232) 		emake -j1 check || die "Make check failed."
Bernd Wurst version bump to courier-0.6...

Bernd Wurst authored 14 years ago

233) 	else
Hanno Böck courier ebuild sync mit por...

Hanno Böck authored 14 years ago

234) 		einfo "make check skipped, can't run as root."
235) 		einfo "You can enable it with FEATURES=\"userpriv\""