summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mail-mta/nullmailer/files/init.d-nullmailer-r652
-rw-r--r--mail-mta/nullmailer/nullmailer-2.0-r1.ebuild138
2 files changed, 190 insertions, 0 deletions
diff --git a/mail-mta/nullmailer/files/init.d-nullmailer-r6 b/mail-mta/nullmailer/files/init.d-nullmailer-r6
new file mode 100644
index 000000000000..389329e10f6c
--- /dev/null
+++ b/mail-mta/nullmailer/files/init.d-nullmailer-r6
@@ -0,0 +1,52 @@
+#!/sbin/openrc-run
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License, v2 or later
+# $Id$
+
+command="/usr/sbin/nullmailer-send"
+
+start_stop_daemon_args="--chdir /var/spool/nullmailer --user nullmail:nullmail"
+start_stop_daemon_args="${start_stop_daemon_args} --stdout /var/log/nullmailer/nullmailer.log"
+start_stop_daemon_args="${start_stop_daemon_args} --stderr /var/log/nullmailer/nullmailer.log"
+
+required_dirs="/var/spool/nullmailer /var/log/nullmailer"
+pidfile="/run/nullmailer.pid"
+command_background="true"
+
+depend() {
+ use net logger
+}
+
+checkconfig() {
+ local error=0
+ local f=/etc/nullmailer/me
+ if [ ! -s ${f} ]; then
+ eerror "${f} does not exist"
+ error=1
+ fi
+ f=/etc/nullmailer/defaultdomain
+ if [ ! -s ${f} ]; then
+ eerror "${f} does not exist"
+ error=1
+ fi
+ if [ ${error} -eq 1 ]; then
+ einfo "You need to run 'emerge --config nullmailer'!"
+ fi
+ if [ -e /service/nullmailer ]; then
+ eerror "Nullmailer is already running under svscan!"
+ error=2
+ fi
+ if [ ${error} -ne 0 ]; then
+ return 1
+ else
+ return 0
+ fi
+}
+
+start_pre() {
+ checkconfig
+}
+
+stop_pre() {
+ checkconfig # to avoid init.d stopping svscan instance
+}
diff --git a/mail-mta/nullmailer/nullmailer-2.0-r1.ebuild b/mail-mta/nullmailer/nullmailer-2.0-r1.ebuild
new file mode 100644
index 000000000000..4faea4cb279c
--- /dev/null
+++ b/mail-mta/nullmailer/nullmailer-2.0-r1.ebuild
@@ -0,0 +1,138 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+inherit autotools eutils flag-o-matic multilib systemd user
+
+DESCRIPTION="Simple relay-only local mail transport agent"
+HOMEPAGE="http://untroubled.org/nullmailer/ https://github.com/bruceg/nullmailer"
+SRC_URI="http://untroubled.org/${PN}/archive/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="ssl"
+
+DEPEND="
+ sys-apps/groff
+ ssl? ( net-libs/gnutls:0= )"
+RDEPEND="
+ virtual/logger
+ virtual/shadow
+ ssl? ( net-libs/gnutls:0= )
+ !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"
+
+pkg_setup() {
+ enewgroup nullmail 88
+ enewuser nullmail 88 -1 /var/spool/nullmailer nullmail
+}
+
+src_prepare() {
+ default
+ 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.ac || die
+ sed -e "s/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/" -i configure.ac || die
+ sed \
+ -e "s#/usr/lib#\0exec#" -e "s#/usr/local#/usr#" \
+ -e 's:/usr/etc/:/etc/:g' \
+ -i doc/nullmailer-send.8 || die
+ eautoreconf
+}
+
+src_configure() {
+ # https://github.com/bruceg/nullmailer/pull/31/commits
+ append-lfs-flags #471102
+ econf \
+ --localstatedir="${EPREFIX}"/var \
+ $(use_enable ssl tls)
+}
+
+src_install() {
+ default
+
+ # 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/spool/nullmailer/service{,/log}
+
+ insinto /var/spool/nullmailer/service
+ newins scripts/nullmailer.run run
+ fperms 700 /var/spool/nullmailer/service/run
+
+ insinto /var/spool/nullmailer/service/log
+ newins scripts/nullmailer-log.run run
+ fperms 700 /var/spool/nullmailer/service/log/run
+
+ # usability
+ dosym /usr/sbin/sendmail usr/$(get_libdir)/sendmail
+
+ # permissions stuff
+ keepdir /var/log/nullmailer /var/spool/nullmailer/{tmp,queue}
+ fperms 770 /var/log/nullmailer
+ fowners nullmail:nullmail /usr/sbin/nullmailer-queue /usr/bin/mailq
+ fperms 4711 /usr/sbin/nullmailer-queue /usr/bin/mailq
+
+ newinitd "${FILESDIR}"/init.d-nullmailer-r6 nullmailer
+ systemd_dounit scripts/${PN}.service
+}
+
+pkg_postinst() {
+ if [ ! -e "${EROOT}var/spool/nullmailer/trigger" ]; then
+ mkfifo "${EROOT}var/spool/nullmailer/trigger" || die
+ fi
+ chown nullmail:nullmail \
+ "${EROOT}"var/log/nullmailer \
+ "${EROOT}"var/spool/nullmailer/{tmp,queue,trigger} || die
+ chmod 770 \
+ "${EROOT}"var/log/nullmailer \
+ "${EROOT}"var/spool/nullmailer/{tmp,queue} || die
+ chmod 660 "${EROOT}"var/spool/nullmailer/trigger || die
+
+ # This contains passwords, so should be secure
+ chmod 0640 "${EROOT}"etc/nullmailer/remotes || die
+ chown root:nullmail "${EROOT}"etc/nullmailer/remotes || die
+
+ if [[ -z ${REPLACING_VERSIONS} ]]; then
+ elog "To create an initial setup, please do:"
+ elog "emerge --config =${CATEGORY}/${PF}"
+ fi
+}
+
+pkg_postrm() {
+ if [[ -e "${EROOT}var/spool/nullmailer/trigger" ]]; then
+ rm "${EROOT}var/spool/nullmailer/trigger" || die
+ fi
+}
+
+pkg_config() {
+ if [ ! -s "${EROOT}etc/nullmailer/me" ]; then
+ einfo "Setting /etc/nullmailer/me"
+ hostname --fqdn > "${EROOT}etc/nullmailer/me"
+ fi
+ if [ ! -s "${EROOT}etc/nullmailer/defaultdomain" ]; then
+ einfo "Setting /etc/nullmailer/defaultdomain"
+ hostname --domain > "${EROOT}etc/nullmailer/defaultdomain"
+ fi
+}