| # Copyright 1999-2015 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| EAPI=5 |
| |
| inherit autotools eutils flag-o-matic multilib systemd user |
| |
| MY_P="${P/_rc/RC}" |
| |
| DEBIAN_PV=1.11 |
| DEBIAN_PR="2" |
| DEBIAN_P="${PN}-${DEBIAN_PV}" |
| DEBIAN_PF="${DEBIAN_P/-/_}-${DEBIAN_PR}" |
| DEBIAN_SRC="${DEBIAN_PF}.debian.tar.gz" |
| |
| DESCRIPTION="Simple relay-only local mail transport agent" |
| HOMEPAGE="http://untroubled.org/nullmailer/" |
| SRC_URI=" |
| http://untroubled.org/${PN}/archive/${MY_P}.tar.gz |
| https://dev.gentoo.org/~jlec/distfiles/${PN}-patches-${PV}.tar.xz" |
| # mirror://debian/pool/main/n/${PN}/${DEBIAN_SRC}" |
| |
| SLOT="0" |
| LICENSE="GPL-2" |
| KEYWORDS="amd64 ppc x86" |
| IUSE="ssl" |
| |
| DEPEND=" |
| sys-apps/groff |
| ssl? ( net-libs/gnutls )" |
| RDEPEND=" |
| virtual/logger |
| virtual/shadow |
| ssl? ( net-libs/gnutls ) |
| !mail-mta/courier |
| !mail-mta/esmtp |
| !mail-mta/exim |
| !mail-mta/mini-qmail |
| !mail-mta/msmtp |
| !mail-mta/netqmail |
| !mail-mta/postfix |
| !mail-mta/qmail-ldap |
| !mail-mta/sendmail |
| !mail-mta/opensmtpd |
| !mail-mta/ssmtp" |
| |
| S=${WORKDIR}/${MY_P} |
| |
| pkg_setup() { |
| enewgroup nullmail 88 |
| enewuser nullmail 88 -1 /var/nullmailer nullmail |
| } |
| |
| src_prepare() { |
| # sed -i -e 's/nullmailer-1.10/nullmailer-1.11/g' \ |
| # "${WORKDIR}"/debian/patches/*.diff || die |
| # EPATCH_OPTS="-d ${S} -p1" \ |
| # epatch "${DISTDIR}"/${DEBIAN_SRC} |
| # why revert? Ask Robin when he is back! |
| # EPATCH_OPTS="-d ${WORKDIR} -p0 -R" \ |
| # epatch "${WORKDIR}"/debian/patches/02_ipv6.diff |
| # this fixes the debian daemon/syslog to actually compile |
| |
| # old debian patches from 1.11 |
| # DO NOT APPLY patch 0009... It breaks |
| epatch "${WORKDIR}"/patches/000{1..8}*patch |
| |
| epatch "${FILESDIR}"/${P}-unistd.h.patch |
| |
| sed -i.orig \ |
| -e '/^nullmailer_send_LDADD/s, =, = ../lib/cli++/libcli++.a,' \ |
| "${S}"/src/Makefile.am || die "Sed failed" |
| sed -i.orig \ |
| -e '/\$(localstatedir)\/trigger/d' \ |
| "${S}"/Makefile.am || die "Sed failed" |
| sed \ |
| -e "s:^AC_PROG_RANLIB:AC_CHECK_TOOL(AR, ar, false)\nAC_PROG_RANLIB:g" \ |
| -i configure.in || die |
| sed -e "s/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/" -i configure.in || die |
| eautoreconf |
| } |
| |
| src_configure() { |
| # Note that we pass a different directory below due to bugs in the makefile! |
| econf \ |
| --localstatedir=/var \ |
| $(use_enable ssl tls) |
| } |
| |
| src_install () { |
| emake DESTDIR="${D}" localstatedir=/var/nullmailer install |
| |
| dodoc AUTHORS BUGS HOWTO INSTALL ChangeLog NEWS README TODO |
| |
| # A small bit of sample config |
| insinto /etc/nullmailer |
| newins "${FILESDIR}"/remotes.sample-${PV} remotes |
| |
| # This contains passwords, so should be secure |
| fperms 0640 /etc/nullmailer/remotes |
| fowners root:nullmail /etc/nullmailer/remotes |
| |
| # daemontools stuff |
| dodir /var/nullmailer/service{,/log} |
| |
| insinto /var/nullmailer/service |
| newins scripts/nullmailer.run run |
| fperms 700 /var/nullmailer/service/run |
| |
| insinto /var/nullmailer/service/log |
| newins scripts/nullmailer-log.run run |
| fperms 700 /var/nullmailer/service/log/run |
| |
| # usability |
| dosym /usr/sbin/sendmail usr/$(get_libdir)/sendmail |
| |
| # permissions stuff |
| keepdir /var/log/nullmailer /var/nullmailer/{tmp,queue} |
| fperms 770 /var/log/nullmailer /var/nullmailer/{tmp,queue} |
| fowners nullmail:nullmail /usr/sbin/nullmailer-queue /usr/bin/mailq |
| fperms 4711 /usr/sbin/nullmailer-queue /usr/bin/mailq |
| |
| newinitd "${FILESDIR}"/init.d-nullmailer-r4 nullmailer |
| systemd_dounit "${FILESDIR}"/${PN}.service |
| } |
| |
| pkg_postinst() { |
| if [ ! -e "${ROOT}"/var/nullmailer/trigger ]; then |
| mkfifo "${ROOT}"/var/nullmailer/trigger |
| fi |
| chown nullmail:nullmail \ |
| "${ROOT}"/var/log/nullmailer "${ROOT}"/var/nullmailer/{tmp,queue,trigger} || die |
| chmod 770 "${ROOT}"/var/log/nullmailer "${ROOT}"/var/nullmailer/{tmp,queue} || die |
| chmod 660 "${ROOT}"/var/nullmailer/trigger || die |
| |
| # This contains passwords, so should be secure |
| chmod 0640 "${ROOT}"/etc/nullmailer/remotes || die |
| chown root:nullmail "${ROOT}"/etc/nullmailer/remotes || die |
| |
| if [[ -z ${REPLACING_VERSIONS} ]]; then |
| elog "To create an initial setup, please do:" |
| elog "emerge --config =${CATEGORY}/${PF}" |
| fi |
| #echo |
| #elog "To start nullmailer at boot you may use either the nullmailer init.d" |
| #elog "script, or emerge sys-process/supervise-scripts, enable the" |
| #elog "svscan init.d script and create the following link:" |
| #elog "ln -fs /var/nullmailer/service /service/nullmailer" |
| #echo |
| } |
| |
| pkg_postrm() { |
| if [[ -e "${ROOT}"/var/nullmailer/trigger ]]; then |
| rm "${ROOT}"/var/nullmailer/trigger || die |
| fi |
| } |
| |
| pkg_config() { |
| if [ ! -s "${ROOT}"/etc/nullmailer/me ]; then |
| einfo "Setting /etc/nullmailer/me" |
| /bin/hostname --fqdn > "${ROOT}"/etc/nullmailer/me |
| fi |
| if [ ! -s "${ROOT}"/etc/nullmailer/defaultdomain ]; then |
| einfo "Setting /etc/nullmailer/defaultdomain" |
| /bin/hostname --domain > "${ROOT}"/etc/nullmailer/defaultdomain |
| fi |
| } |