git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] hooks--update: new, required, config variable: hooks.envelopesender,

From
Jim Meyering <jim@meyering.net>
Date
Mar 23, 2007, 12:11 UTC
Message-ID
<874poc88ix.fsf@rho.meyering.net>

This change adds a new, required, config variable: hooks.envelopesender, and use that with sendmail's -f option. This is important in order to avoid relying on sendmail's "guess" at an appropriate envelope sender address. Without this, and in the presence of strict servers, it is far too easy not ever to be notified, or (more insidious) never to receive bounce email.

Below, I've included an additional patch in case you want to require the envelopesender setting only when at least one of the mailing list variables is set.

Signed-off-by: Jim Meyering <jim@meyering.net>
---
 templates/hooks--update |   12 +++++++++++-
 1 files changed, 11 insertions(+), 1 deletions(-)
diff --git a/templates/hooks--update b/templates/hooks--update
index 8f6c4fe..bc1f1a9 100644
--- a/templates/hooks--update
+++ b/templates/hooks--update
@@ -12,6 +12,10 @@
 #   This is the list that all pushes will go to; leave it blank to not send
 #   emails frequently.  The log email will list every log entry in full between
 #   the old ref value and the new ref value.
+# hooks.envelopesender
+#   Use this email address as the envelope sender (argument to sendmail's
+#   -f option).  This is not the "From:" address.  This should be a useful
+#   email address within your organization.  Required.
 # hooks.announcelist
 #   This is the list that all pushes of annotated tags will go to.  Leave it
 #   blank to just use the mailinglist field.  The announce emails list the
@@ -52,10 +56,16 @@ fi
 
 # --- Config
 projectdesc=$(cat $GIT_DIR/description)
+envelope_sender=$(git-repo-config hooks.envelopesender)
 recipients=$(git-repo-config hooks.mailinglist)
 announcerecipients=$(git-repo-config hooks.announcelist)
 allowunannotated=$(git-repo-config --bool hooks.allowunannotated)
 
+if [ -z "$envelope_sender" ]; then
+	echo "Usage: hooks.envelopesender must be set in config" >&2
+	exit 1
+fi
+
 # --- Check types
 newrev_type=$(git-cat-file -t $newrev)
 
@@ -279,7 +289,7 @@ $0 $1 \\
   $3
 EOF
 #) | cat >&2
-) | /usr/sbin/sendmail -t
+) | /usr/sbin/sendmail -f "$envelope_sender" -t
 
 # --- Finished
 exit 0
-- 
1.5.1.rc1


>From 4b3d42890b2b33b2f34902d26561b78e5e92ddba Mon Sep 17 00:00:00 2001
From: Jim Meyering <jim@meyering.net>
Date: Fri, 23 Mar 2007 13:06:00 +0100
Subject: [PATCH] Fail upon undefined envelopesender only if at least one of
the mailing list variables is set.

Signed-off-by: Jim Meyering <jim@meyering.net>
---
 templates/hooks--update |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/templates/hooks--update b/templates/hooks--update
index bc1f1a9..c79b4b4 100644
--- a/templates/hooks--update
+++ b/templates/hooks--update
@@ -61,9 +61,11 @@ recipients=$(git-repo-config hooks.mailinglist)
 announcerecipients=$(git-repo-config hooks.announcelist)
 allowunannotated=$(git-repo-config --bool hooks.allowunannotated)
 
-if [ -z "$envelope_sender" ]; then
-	echo "Usage: hooks.envelopesender must be set in config" >&2
-	exit 1
+if [ -n "$recipients$announcerecipients" ]; then
+	if [ -z "$envelope_sender" ]; then
+		echo "Usage: hooks.envelopesender must be set in config" >&2
+		exit 1
+	fi
 fi
 
 # --- Check types
-- 
1.5.1.rc1
Next: Andy Parkins
Message 1 of 10 in “hooks--update: new, required, config variable: hooks.envelopesender,”
  1. hooks--update: new, required, config variable: hooks.envelopesender,Jim Meyering, Mar 23, 2007
  2. Andy ParkinsMar 23, 2007
  3. Jim MeyeringMar 23, 2007
  4. Jakub NarebskiMar 23, 2007
  5. Andy ParkinsMar 23, 2007
  6. Jim MeyeringMar 23, 2007
  7. Andy ParkinsMar 23, 2007
  8. Jim MeyeringMar 24, 2007
  9. Andy ParkinsMar 24, 2007
  10. hooks--update: new, optional, config variable: hooks.envelopesenderJim Meyering, Mar 24, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.