summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mail-mta/nullmailer')
-rw-r--r--mail-mta/nullmailer/Manifest2
-rw-r--r--mail-mta/nullmailer/files/init.d-nullmailer-r451
-rw-r--r--mail-mta/nullmailer/files/nullmailer-1.13-unistd.h.patch28
-rw-r--r--mail-mta/nullmailer/files/nullmailer.service17
-rw-r--r--mail-mta/nullmailer/files/remotes.sample-1.1329
-rw-r--r--mail-mta/nullmailer/metadata.xml13
-rw-r--r--mail-mta/nullmailer/nullmailer-1.13-r5.ebuild168
7 files changed, 308 insertions, 0 deletions
diff --git a/mail-mta/nullmailer/Manifest b/mail-mta/nullmailer/Manifest
new file mode 100644
index 000000000000..dab1022b8864
--- /dev/null
+++ b/mail-mta/nullmailer/Manifest
@@ -0,0 +1,2 @@
+DIST nullmailer-1.13.tar.gz 205431 SHA256 3f8861ebb1b46cea0a1caf1e6236e1e0d2a5a91def19551b7cad12eab676277d SHA512 96dcb3ddecde77a73e5ca1afa5167d35f965d04999f02cc2ef60b54ea7eb7a006e5cf5678fc34a54d4be4f9fd71bd0f784a8671aca40c70dbc307666c548e1d7 WHIRLPOOL b041f7cc33a257fad11c5f4c9bf74f8d849d9c45f0dc19be28268462b9d029c07e1d5802698e647a4208d5f66cac2177a1d12e49a03caac51e0244c3f9a0599c
+DIST nullmailer-patches-1.13.tar.xz 8384 SHA256 8685dfbf23e9dc15269b1a0d14f700c4ef990cf49d4e6e830c0217289e8f4733 SHA512 393531e39a92b0978bccbcdf123e05b2cdad1ec8e600825cc24177ba414c1f615995c0344291ebb664f42b384a160c0359fec5ba3308cc14cbc9ceb8577d799c WHIRLPOOL 84f523be7963ceb7fbafd3f5632571e7bc12085b1b4bce5bb5c63871fd6c7ed1367a49ddf5ed66acad7055e28856b23fb1dcb59e60158fed26447128edd0a4fa
diff --git a/mail-mta/nullmailer/files/init.d-nullmailer-r4 b/mail-mta/nullmailer/files/init.d-nullmailer-r4
new file mode 100644
index 000000000000..a46948b5fccc
--- /dev/null
+++ b/mail-mta/nullmailer/files/init.d-nullmailer-r4
@@ -0,0 +1,51 @@
+#!/sbin/runscript
+# Copyright 1999-2014 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/nullmailer --user nullmail:nullmail"
+
+required_dirs="/var/nullmailer"
+pidfile="/run/nullmailer.pid"
+command_background="true"
+command_args="-s"
+
+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/files/nullmailer-1.13-unistd.h.patch b/mail-mta/nullmailer/files/nullmailer-1.13-unistd.h.patch
new file mode 100644
index 000000000000..8199b9627f47
--- /dev/null
+++ b/mail-mta/nullmailer/files/nullmailer-1.13-unistd.h.patch
@@ -0,0 +1,28 @@
+From 5e9316c669e752fcd9058b28952919bccd967640 Mon Sep 17 00:00:00 2001
+From: "Anthony G. Basile" <blueness@gentoo.org>
+Date: Sat, 31 Jan 2015 23:55:48 +0000
+Subject: [PATCH] lib/fdbuf/fdbuf.h: include <unistd.h>
+
+class fdobuf in lib/fdbuf/fdobuf.h makes use of uid_t and gid_t,
+but these are defined in <unistd.h> according to POSIX. With libc's
+that adhere strictly to standards, like musl, this breaks the build.
+
+We add <unistd.h> to fdbuf.h which is included by fdbuf.h.
+
+Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
+---
+ lib/fdbuf/fdbuf.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/lib/fdbuf/fdbuf.h b/lib/fdbuf/fdbuf.h
+index 4b0e9cb..0054b01 100644
+--- a/lib/fdbuf/fdbuf.h
++++ b/lib/fdbuf/fdbuf.h
+@@ -20,6 +20,7 @@
+ #include "config.h"
+ #include <string.h>
+ #include <fcntl.h>
++#include <unistd.h>
+
+ #ifdef _REENTRANT
+ #include <pthread.h>
diff --git a/mail-mta/nullmailer/files/nullmailer.service b/mail-mta/nullmailer/files/nullmailer.service
new file mode 100644
index 000000000000..8aae6c996d13
--- /dev/null
+++ b/mail-mta/nullmailer/files/nullmailer.service
@@ -0,0 +1,17 @@
+[Unit]
+Description=Nullmailer relay-only MTA
+Requires=network.target
+After=local-fs.target syslog.target
+ConditionPathExists=/var/nullmailer/queue
+ConditionPathExists=/etc/nullmailer/defaultdomain
+ConditionPathExists=/etc/nullmailer/me
+
+[Service]
+WorkingDirectory=/var/nullmailer
+ExecStart=/usr/sbin/nullmailer-send -s
+User=nullmail
+Group=nullmail
+Restart=always
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mail-mta/nullmailer/files/remotes.sample-1.13 b/mail-mta/nullmailer/files/remotes.sample-1.13
new file mode 100644
index 000000000000..34cc234a27e6
--- /dev/null
+++ b/mail-mta/nullmailer/files/remotes.sample-1.13
@@ -0,0 +1,29 @@
+# Format is: HOST PROTOCOL [OPTIONS]
+# HOST = IP or DNS
+# PROTOCOL = smtp | qmtp
+# OPTIONS = [--port=NUMBER] [--user] [--pass] [--starttls | --ssl [--insecure] ]
+#
+# Examples:
+# A standard SMTP server:
+# somesendmailserver.domain.com smtp
+#
+# A qmail server with QMQP setup:
+# someqmailserver.domain.com qmqp
+#
+# A nonstandard SMTP server setup:
+# someotherserver.domain.com smtp --port=2525
+#
+# SMTP server supporting AUTH PLAIN
+# mailserver smtp --user=<user> --pass=<pass>
+#
+# SMTP server supporting AUTH LOGIN
+# mailserver smtp --user=<user> --pass=<pass> --auth-login
+#
+# SMTP server with smtps (legacy - use starttls instead)
+# mailserver smtp --user=<user> --pass=<pass> --port=465 --ssl
+#
+# SMTP server on submission port with starttls
+# mailserver smtp --user=<user> --pass=<pass> --port=587 --starttls
+#
+# SMTP server on submission port with starttls and self-signed certificate
+# mailserver smtp --user=<user> --pass=<pass> --port=587 --starttls --insecure
diff --git a/mail-mta/nullmailer/metadata.xml b/mail-mta/nullmailer/metadata.xml
new file mode 100644
index 000000000000..c20ce93ed716
--- /dev/null
+++ b/mail-mta/nullmailer/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>net-mail</herd>
+ <maintainer>
+ <email>robbat2@gentoo.org</email>
+ <name>Robin H. Johnson</name>
+ </maintainer>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/mail-mta/nullmailer/nullmailer-1.13-r5.ebuild b/mail-mta/nullmailer/nullmailer-1.13-r5.ebuild
new file mode 100644
index 000000000000..e2801de66824
--- /dev/null
+++ b/mail-mta/nullmailer/nullmailer-1.13-r5.ebuild
@@ -0,0 +1,168 @@
+# 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
+ http://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
+}