# Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=4 inherit eutils flag-o-matic ssl-cert MY_P="imap-${PV}" S="${WORKDIR}/${MY_P}" DESCRIPTION="UW server daemons for IMAP and POP network mail protocols" SRC_URI="ftp://ftp.cac.washington.edu/imap/${MY_P}.tar.Z" HOMEPAGE="http://www.washington.edu/imap/" LICENSE="Apache-2.0" SLOT="0" KEYWORDS="alpha amd64 hppa ia64 ppc ppc64 s390 sparc x86" IUSE="ipv6 +ssl kerberos clearpasswd" DEPEND="!net-libs/c-client >=sys-libs/pam-0.72 >=net-mail/mailbase-0.00-r8[pam] ssl? ( dev-libs/openssl ) kerberos? ( app-crypt/mit-krb5 )" RDEPEND="${DEPEND} >=net-mail/uw-mailutils-${PV} sys-apps/xinetd" # get rid of old style virtual - bug 350792 # all blockers really needed? RDEPEND="${RDEPEND} !net-mail/dovecot !mail-mta/courier !net-mail/courier-imap !net-mail/cyrus-imapd" REQUIRED_USE="!clearpasswd? ( ssl )" src_unpack() { unpack ${A} # Tarball packed with bad file perms chmod -R ug+w "${S}" } src_prepare() { epatch "${FILESDIR}"/${PN}-2004c-amd64-so-fix.patch epatch "${FILESDIR}/${PN}-ldflags.patch" # no interactive build sed -i -e "/read x; case/s/^/#/" Makefile || die # Now we must make all the individual Makefiles use different CFLAGS, # otherwise they would all use -fPIC sed -i -e "s|\`cat \$C/CFLAGS\`|${CFLAGS}|g" src/dmail/Makefile \ src/imapd/Makefile src/ipopd/Makefile src/mailutil/Makefile \ src/mlock/Makefile src/mtest/Makefile src/tmail/Makefile \ || die "sed failed patching Makefile FLAGS." # Now there is only c-client left, which should be built with -fPIC append-flags -fPIC sed -i \ -e "s:BASECFLAGS=\".*\":BASECFLAGS=:g" \ -e 's,SSLDIR=/usr/local/ssl,SSLDIR=/usr,g' \ -e 's,SSLCERTS=$(SSLDIR)/certs,SSLCERTS=/etc/ssl/certs,g' \ src/osdep/unix/Makefile sed -i \ -e "s/CC=cc/CC=$(tc-getCC)/" \ -e "s/ARRC=ar/ARRC=$(tc-getAR)/" \ -e "s/RANLIB=ranlib/RANLIB=$(tc-getRANLIB)/" \ src/osdep/unix/Makefile sed -i -e "s,GSSDIR=/usr/local,GSSDIR=/usr,g" \ src/osdep/unix/Makefile.gss # no interactive build sed -i -e "/make noip6/s/.*/\t@echo/" Makefile } src_compile() { local mymake ipver ssltype target ipver="IP=4" target=lnp use ipv6 && ipver="IP=6" use kerberos && mymake="EXTRAAUTHENTICATORS=gss" use kernel_FreeBSD && target=bsf if use ssl ; then if use clearpasswd ; then ssltype=unix else ssltype=unix.nopwd fi else ssltype=none fi emake -j1 SSLTYPE=${ssltype} ${target} ${mymake} ${ipver} EXTRACFLAGS="${CFLAGS}" EXTRALDFLAGS="${LDFLAGS}" } src_install() { dosbin imapd/imapd ipopd/ipop?d dmail/dmail tmail/tmail dobin mlock/mlock dolib.so c-client/libc-client.so.1.0.0 dosym libc-client.so.1.0.0 /usr/$(get_libdir)/libc-client.so dosym libc-client.so.1.0.0 /usr/$(get_libdir)/libc-client.so.1 insinto /usr/include/imap doins src/c-client/{c-client,flstring,mail,imap4r1,rfc822,misc,smtp,nntp,utf8,utf8aux}.h doins src/c-client/{env,fs,ftl,nl,tcp}.h doins src/osdep/unix/env_unix.h doins c-client/linkage.{c,h} dolib.a c-client/c-client.a dosym c-client.a /usr/$(get_libdir)/libc-client.a doman src/ipopd/ipopd.8 src/imapd/imapd.8 doman src/dmail/dmail.1 src/tmail/tmail.1 dodoc README docs/*.txt docs/CONFIG docs/RELNOTES docinto rfc dodoc docs/rfc/*.txt # install headers - bug #375393 cp c-client/*.h "${D}"/usr/include/imap/ || die cp c-client/linkage.c "${D}"/usr/include/imap/ || die #exclude these dupes (can't do it before now due to symlink hell) rm "${D}"/usr/include/imap/os_*.h # gentoo config stuff insinto /etc/xinetd.d newins "${FILESDIR}"/uw-imap.xinetd imap newins "${FILESDIR}"/uw-ipop2.xinetd ipop2 newins "${FILESDIR}"/uw-ipop3.xinetd ipop3 newins "${FILESDIR}"/uw-ipop3s.xinetd ipop3s newins "${FILESDIR}"/uw-imaps.xinetd imaps } pkg_postinst() { if use ssl; then # Let's not make a new certificate if we already have one if ! [[ -e "${ROOT}"/etc/ssl/certs/imapd.pem && \ -e "${ROOT}"/etc/ssl/certs/imapd.key ]]; then einfo "Creating SSL certificate for IMAP" SSL_ORGANIZATION="${SSL_ORGANIZATION:-UW-IMAP Server}" install_cert /etc/ssl/certs/imapd fi if ! [[ -e "${ROOT}"/etc/ssl/certs/ipop3d.pem && \ -e "${ROOT}"/etc/ssl/certs/ipop3d.key ]]; then einfo "Creating SSL certificate for POP3" SSL_ORGANIZATION="${SSL_ORGANIZATION:-UW-POP3 Server}" install_cert /etc/ssl/certs/ipop3d fi fi }