summaryrefslogtreecommitdiff
blob: 4648dd5da6fbaa26f3197d31501ccf57ee9a86ab (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
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-mail/qpopper/qpopper-4.0.5-r3.ebuild,v 1.5 2008/06/04 04:46:21 darkside Exp $

inherit eutils

IUSE="apop debug gdbm mailbox pam ssl xinetd"

S=${WORKDIR}/${PN}${PV}
DESCRIPTION="A POP3 Server"
SRC_URI="ftp://ftp.qualcomm.com/eudora/servers/unix/popper/${PN}${PV}.tar.gz
		http://www.ibiblio.org/gentoo/distfiles/qpopper-files.tar.bz2"
HOMEPAGE="http://www.eudora.com/products/unsupported/qpopper/index.html"

DEPEND="virtual/mta
	xinetd? ( virtual/inetd )
	gdbm? ( sys-libs/gdbm )
	!gdbm? ( ~sys-libs/db-1.85 )
	pam? (
		virtual/pam
		>=net-mail/mailbase-0.00-r8
	)
	ssl? ( dev-libs/openssl )"

SLOT="0"
LICENSE="qpopper"
KEYWORDS="~amd64 sparc x86"

src_unpack() {
	unpack ${A}
	cd "${S}"
	epatch "${FILESDIR}/${PN}-CAN-2005-1151.patch" || die "first patch failed"
	epatch "${FILESDIR}/${PN}-CAN-2005-1152.patch" || die "second patch failed"
}

src_compile() {
	local myconf

	use pam && myconf="${myconf} --with-pam=pop3"
	use mailbox && myconf="${myconf} --enable-home-dir-mail=Mailbox"
	use xinetd && myconf="${myconf} --disable-standalone" || \
		myconf="${myconf} --enable-standalone"
	use apop && myconf="${myconf} --enable-apop=/etc/pop.auth"
	myconf="${myconf} $(use_enable debug debugging)"
	myconf="${myconf} $(use_with ssl openssl)"
	myconf="${myconf} $(use_with gdbm)"
	econf --enable-popuid=pop \
		--enable-log-login \
		--enable-specialauth \
		--enable-log-facility=LOG_MAIL \
		--enable-uw-kludge-flag \
		${myconf} || die "econf failed"

	if use ssl; then
		umask 077
		PEM1=`/bin/mktemp ${T}/openssl.XXXXXX`
		PEM2=`/bin/mktemp ${T}/openssl.XXXXXX`
		/usr/bin/openssl req -newkey rsa:1024 -keyout $$PEM1 \
				 -nodes -x509 -days 365 -out  $$PEM2 << EOF
--
SomeState
SomeCity
SomeOrganization
SomeOrganizationalUnit
localhost.localdomain
root@localhost.localdomain
EOF

		cat $$PEM1 >  cert.pem
		echo ""    >> cert.pem
		cat $$PEM2 >> cert.pem
		#make || die
		rm $$PEM1 $$PEM2
		umask 022

	fi

	if ! use gdbm; then
		sed -i -e 's|#define HAVE_GDBM_H|//#define HAVE_GDBM_H|g' "${S}"/config.h || \
			die "sed failed"
	fi

	emake -j1 || die
}

src_install() {
	into /usr
	dosbin popper/popper  popper/popauth

	if use ssl; then
		dodir /etc/mail/certs
		fowners root:mail /etc/mail/certs
		fperms 660 /etc/mail/certs
		mv cert.pem "${D}"/etc/mail/certs
		fperms 600 /etc/mail/certs/cert.pem
		fowners root:0 /etc/mail/certs/cert.pem
	fi

	doman man/popauth.8 man/popper.8

	dodoc "${WORKDIR}"/GUIDE.pdf

	docinto rfc
	dodoc doc/rfc*.txt

	# pam.d stuff is provided by >=mailbase-0.00-r8. Bug #79240
	# if use pam; then
	# 	insinto /etc/pam.d
	# 	newins ${WORKDIR}/pop3.pam-system-auth pop3
	# fi

	insinto /etc/xinetd.d
	newins "${WORKDIR}"/pop3.xinetd  pop-3
}

pkg_postinst () {
	elog "PS. If you use APOP service to authenticate "
	elog "the users you have to follow these steps: "
	elog ""
	elog "1) create a new account named pop"
	elog "2) change the owner and permissions of"
	elog "   /usr/sbin/popauth:"
	elog "   # chown pop /usr/sbin/popauth"
	elog "   # chmod u+s /usr/sbin/popauth"
	elog "3) initialize the authentication database:"
	elog "   # popauth -init"
	elog "4) new users can be added by root:"
	elog "   # popauth -user <user>"
	elog "   or removed:"
	elog "   # popauth -delete <user>"
	elog "   Other users can add themeselves or change their"
	elog "   password with the command popauth"
	elog "5) scripts or other non-interactive processes can add or change"
	elog "   the passwords with the following command:"
	elog "   # popauth -user <user> <password>"
	elog ""
	elog "to enable qpopper in netkit-inetd just add this in one line"
	elog "pop-3 stream tcp nowait root	/usr/sbin/tcpd
		/usr/sbin/in.qpopper -f /etc/qpopper.conf"
	elog "into your /etc/inetd.conf"
}