From 7228d3048a89facee77689e390d5f5c091c57d73 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Mon, 1 Oct 2018 14:07:48 +0800 Subject: build: Add '--with-sendmail' configure option This allows users to configure the Mail Transfert Agent (MTA) of their choice. * configure.ac: Add '--with-sendmail' option. (SENDMAIL): Default to 'sendmail -t'. * NEWS: Announce it. * src/mcron/redirect.scm (with-mail-out): Assume the MTA is reading the message for recipients. * build-aux/guix.scm: Remove 'which' from the native-inputs. --- NEWS | 6 ++++++ build-aux/guix.scm | 4 ++-- configure.ac | 30 ++++++++++-------------------- src/mcron/redirect.scm | 8 ++++---- 4 files changed, 22 insertions(+), 26 deletions(-) diff --git a/NEWS b/NEWS index d3f31cd..432e586 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,11 @@ GNU Mcron NEWS -*- outline -*- * Noteworthy changes in release ?.? (????-??-??) [?] +** Improvements + + The "--with-sendmail" configure variable has been added to allow the usage + of a different Mail Transfert Agent (MTA) than 'sendmail -t'. The MTA must + be able to guess the actual recipients from the 'To:' message header. * Noteworthy changes in release 1.1.1 (2018-04-08) [stable] @@ -157,6 +162,7 @@ GNU Mcron NEWS -*- outline -*- Copyright © 2003, 2005, 2006 Dale Mellor Copyright © 2017, 2018 Mathieu Lirzin +Copyright © 2018 宋文武 Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff --git a/build-aux/guix.scm b/build-aux/guix.scm index d90e0be..24927ad 100644 --- a/build-aux/guix.scm +++ b/build-aux/guix.scm @@ -1,5 +1,6 @@ ;;;; guix.scm -- Guix package definition ;;; Copyright © 2016 Mathieu Lirzin +;;; Copyright © 2018 宋文武 ;;; ;;; This file is part of GNU Mcron. ;;; @@ -62,5 +63,4 @@ ("automake" ,(specification->package "automake")) ("help2man" ,(specification->package "help2man")) ("pkg-config" ,(specification->package "pkg-config")) - ("texinfo" ,(specification->package "texinfo")) - ("which" ,(specification->package "which"))))) + ("texinfo" ,(specification->package "texinfo"))))) diff --git a/configure.ac b/configure.ac index 0bb9262..f7e3c34 100644 --- a/configure.ac +++ b/configure.ac @@ -2,6 +2,7 @@ # Copyright © 2003, 2005, 2012, 2014 Dale Mellor # # Copyright © 2015, 2016, 2017, 2018 Mathieu Lirzin +# Copyright © 2018 宋文武 # # This file is part of GNU Mcron. # @@ -55,26 +56,15 @@ GUILE_PROGS AM_MISSING_PROG(HELP2MAN, help2man, $missing_dir) -# Now find a sendmail or equivalent. - -AC_CHECK_PROGS(SENDMAIL, sendmail) -if test "x$ac_cv_prog_SENDMAIL" != "x"; then - AC_MSG_CHECKING(sendmail path and arguments) - ac_cv_prog_SENDMAIL="`$ac_cv_prog_WHICH sendmail` -FCronDaemon -odi -oem " -dnl -or0s" - AC_MSG_RESULT($ac_cv_prog_SENDMAIL) - -else - AC_CHECK_PROGS(SENDMAIL, mail) - if test "x$ac_cv_prog_SENDMAIL" != "x"; then - AC_MSG_CHECKING(mail path) - ac_cv_prog_SENDMAIL="`$ac_cv_prog_WHICH mail` -d " - AC_MSG_RESULT($ac_cv_prog_SENDMAIL) - else - AC_MSG_RESULT(No mail program found) - fi -fi -SENDMAIL=$ac_cv_prog_SENDMAIL +# Let users choose the Mail Transfert Agent (MTA) of their choice. Default to +# a non-absolute program name to make it a loose dependency resolved at +# runtime. +AC_ARG_WITH([sendmail], + [AS_HELP_STRING([--with-sendmail=COMMAND], + [command to read an email message from standard input, and send it])], + [SENDMAIL="$withval"], + [SENDMAIL="sendmail -t"]) +AC_SUBST([SENDMAIL]) AC_ARG_ENABLE([multi-user], [AS_HELP_STRING([--disable-multi-user], diff --git a/src/mcron/redirect.scm b/src/mcron/redirect.scm index 6711407..b7df42c 100644 --- a/src/mcron/redirect.scm +++ b/src/mcron/redirect.scm @@ -1,5 +1,6 @@ ;;;; redirect.scm -- modify job outputs ;;; Copyright © 2003 Dale Mellor +;;; Copyright © 2018 宋文武 ;;; ;;; This file is part of GNU Mcron. ;;; @@ -170,10 +171,9 @@ (set-current-output-port (if (and (string? mailto) (string=? mailto "")) (open-output-file "/dev/null") - (open-output-pipe - (string-append config-sendmail - " " - user)))) + ;; The sendmail command should read + ;; recipients from the message header. + (open-output-pipe config-sendmail))) (set-current-input-port (car child->parent)) (display "To: ") (display user) (newline) (display "From: mcron") (newline) -- cgit v1.2.3