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.
This commit is contained in:
宋文武 2018-10-01 14:07:48 +08:00 committed by Mathieu Lirzin
commit 7228d3048a
No known key found for this signature in database
GPG key ID: 0ADEE10094604D37
4 changed files with 22 additions and 26 deletions

6
NEWS
View file

@ -2,6 +2,11 @@ GNU Mcron NEWS -*- outline -*-
* Noteworthy changes in release ?.? (????-??-??) [?] * 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] * 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 <dale_mellor@users.sourceforge.net> Copyright © 2003, 2005, 2006 Dale Mellor <dale_mellor@users.sourceforge.net>
Copyright © 2017, 2018 Mathieu Lirzin <mthl@gnu.org> Copyright © 2017, 2018 Mathieu Lirzin <mthl@gnu.org>
Copyright © 2018 宋文武 <iyzsong@member.fsf.org>
Copying and distribution of this file, with or without modification, Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright are permitted in any medium without royalty provided the copyright

View file

@ -1,5 +1,6 @@
;;;; guix.scm -- Guix package definition ;;;; guix.scm -- Guix package definition
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org> ;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2018 宋文武 <iyzsong@member.fsf.org>
;;; ;;;
;;; This file is part of GNU Mcron. ;;; This file is part of GNU Mcron.
;;; ;;;
@ -62,5 +63,4 @@
("automake" ,(specification->package "automake")) ("automake" ,(specification->package "automake"))
("help2man" ,(specification->package "help2man")) ("help2man" ,(specification->package "help2man"))
("pkg-config" ,(specification->package "pkg-config")) ("pkg-config" ,(specification->package "pkg-config"))
("texinfo" ,(specification->package "texinfo")) ("texinfo" ,(specification->package "texinfo")))))
("which" ,(specification->package "which")))))

View file

@ -2,6 +2,7 @@
# Copyright © 2003, 2005, 2012, 2014 Dale Mellor # Copyright © 2003, 2005, 2012, 2014 Dale Mellor
# <dale_mellor@users.sourceforge.net> # <dale_mellor@users.sourceforge.net>
# Copyright © 2015, 2016, 2017, 2018 Mathieu Lirzin <mthl@gnu.org> # Copyright © 2015, 2016, 2017, 2018 Mathieu Lirzin <mthl@gnu.org>
# Copyright © 2018 宋文武 <iyzsong@member.fsf.org>
# #
# This file is part of GNU Mcron. # This file is part of GNU Mcron.
# #
@ -55,26 +56,15 @@ GUILE_PROGS
AM_MISSING_PROG(HELP2MAN, help2man, $missing_dir) AM_MISSING_PROG(HELP2MAN, help2man, $missing_dir)
# Now find a sendmail or equivalent. # 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
AC_CHECK_PROGS(SENDMAIL, sendmail) # runtime.
if test "x$ac_cv_prog_SENDMAIL" != "x"; then AC_ARG_WITH([sendmail],
AC_MSG_CHECKING(sendmail path and arguments) [AS_HELP_STRING([--with-sendmail=COMMAND],
ac_cv_prog_SENDMAIL="`$ac_cv_prog_WHICH sendmail` -FCronDaemon -odi -oem " [command to read an email message from standard input, and send it])],
dnl -or0s" [SENDMAIL="$withval"],
AC_MSG_RESULT($ac_cv_prog_SENDMAIL) [SENDMAIL="sendmail -t"])
AC_SUBST([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
AC_ARG_ENABLE([multi-user], AC_ARG_ENABLE([multi-user],
[AS_HELP_STRING([--disable-multi-user], [AS_HELP_STRING([--disable-multi-user],

View file

@ -1,5 +1,6 @@
;;;; redirect.scm -- modify job outputs ;;;; redirect.scm -- modify job outputs
;;; Copyright © 2003 Dale Mellor <dale_mellor@users.sourceforge.net> ;;; Copyright © 2003 Dale Mellor <dale_mellor@users.sourceforge.net>
;;; Copyright © 2018 宋文武 <iyzsong@member.fsf.org>
;;; ;;;
;;; This file is part of GNU Mcron. ;;; This file is part of GNU Mcron.
;;; ;;;
@ -170,10 +171,9 @@
(set-current-output-port (if (and (string? mailto) (set-current-output-port (if (and (string? mailto)
(string=? mailto "")) (string=? mailto ""))
(open-output-file "/dev/null") (open-output-file "/dev/null")
(open-output-pipe ;; The sendmail command should read
(string-append config-sendmail ;; recipients from the message header.
" " (open-output-pipe config-sendmail)))
user))))
(set-current-input-port (car child->parent)) (set-current-input-port (car child->parent))
(display "To: ") (display user) (newline) (display "To: ") (display user) (newline)
(display "From: mcron") (newline) (display "From: mcron") (newline)