From patchwork Fri Jul 9 10:26:30 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Tropin X-Patchwork-Id: 31251 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 1CE5227BC81; Fri, 9 Jul 2021 11:28:14 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS, T_DKIM_INVALID,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 7C31827BC78 for ; Fri, 9 Jul 2021 11:28:13 +0100 (BST) Received: from localhost ([::1]:59914 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m1njw-00034D-Dv for patchwork@mira.cbaines.net; Fri, 09 Jul 2021 06:28:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59076) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m1njm-00032J-7G for guix-patches@gnu.org; Fri, 09 Jul 2021 06:28:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:46839) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1m1njl-0000YB-V6 for guix-patches@gnu.org; Fri, 09 Jul 2021 06:28:01 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1m1njl-000846-OT for guix-patches@gnu.org; Fri, 09 Jul 2021 06:28:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#49486] [PATCH] gnu: msmtp: Make it configurable with envrinoment variables Resent-From: Andrew Tropin Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 09 Jul 2021 10:28:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 49486 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 49486@debbugs.gnu.org X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.162582642330933 (code B ref -1); Fri, 09 Jul 2021 10:28:01 +0000 Received: (at submit) by debbugs.gnu.org; 9 Jul 2021 10:27:03 +0000 Received: from localhost ([127.0.0.1]:58385 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1m1nio-00082r-NH for submit@debbugs.gnu.org; Fri, 09 Jul 2021 06:27:03 -0400 Received: from lists.gnu.org ([209.51.188.17]:47212) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1m1nik-00082Q-9r for submit@debbugs.gnu.org; Fri, 09 Jul 2021 06:27:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58884) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m1nik-0002tm-2u for guix-patches@gnu.org; Fri, 09 Jul 2021 06:26:58 -0400 Received: from mail-lf1-x133.google.com ([2a00:1450:4864:20::133]:40825) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1m1nid-0008Sr-81 for guix-patches@gnu.org; Fri, 09 Jul 2021 06:26:57 -0400 Received: by mail-lf1-x133.google.com with SMTP id q18so22363343lfc.7 for ; Fri, 09 Jul 2021 03:26:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=trop-in.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:mime-version; bh=mU2Tq3RFk9liiJPo4DgNADLvJleW388TutOy0U6EyKM=; b=exB9e1dG8ZikBUViBYPNBYgI8qOmvyR8htf/hNToVl2608Bs4UPXRX2NA0dxi6tVZG vjIyV284JtJl5Rx/4+QGHA5HnWBqEgto1+P9DpMck8r22ACXbLUt6jCvJfoYgfWWb6Uh U22tto+IrLbxqaMIm6py85rovHBUfXOz/5JmqAqVs3IJsS9DXWsLUpT8EfNItWDK7KjG nC2oDKselvZxjb6/VDQ1ol7PLoCwQxpJRMWp67HhqDYjbp6+SoTM2mJiA8wky/Yycavn kGk4cJmr41vRo5hozQnTu7KyC28iSiggBCkFXjqQtmyDoF2v65pj7NF6p7Za1v/8VNEs EEEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version; bh=mU2Tq3RFk9liiJPo4DgNADLvJleW388TutOy0U6EyKM=; b=PQwWEUrHGoIMYrkkY0484SeChCYEKOx6iq2KK383M2HruqGAT4LzXtlG0lXrflWunk 7xEmzDTO5nEbX/sV9C3e05Vha9zX0HeFO+yfwDs4CpYBMM8UuvF39BYuIlU6SbcVlgbQ HNMdqTHpoI/lLqnS+4FjYGODN1aWlQHf+2HAOjNJxb010AgEvU/pXerR42itfSyKKWS3 sxjb8uLe1vdUwUvoM2eq2BUTuW78S+unE46LCnk4FdSAL+J46VRiN0p4+/TQYAqMHho5 p7Zbc68MC07iHHGxxLyMFdOHfXPR79tAsR23qCFqlEBPBM3EhVhYvwznMRT6FFN3RFa4 r6+Q== X-Gm-Message-State: AOAM532v6kyjmv0CCqftE+FwctWzkhdHJVBJMNLeIyRYz9fHcYGSu80L Lxc8HecKEGGoXb4jDdTOj6F4kGO99iu2tg== X-Google-Smtp-Source: ABdhPJxwedcARSOXKuDT5fWdsrQ5dkjwM9oxVvlHLupJ2jhWA9SlpY+r8nlDYchBCyoIcn0R7mO7qg== X-Received: by 2002:a19:dc08:: with SMTP id t8mr1244202lfg.154.1625826407345; Fri, 09 Jul 2021 03:26:47 -0700 (PDT) Received: from localhost (109-252-117-164.nat.spd-mgts.ru. [109.252.117.164]) by smtp.gmail.com with ESMTPSA id i11sm430115lfd.147.2021.07.09.03.26.45 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 09 Jul 2021 03:26:46 -0700 (PDT) From: Andrew Tropin Date: Fri, 09 Jul 2021 13:26:30 +0300 Message-ID: <877dhzzstl.fsf@trop.in> MIME-Version: 1.0 Received-SPF: none client-ip=2a00:1450:4864:20::133; envelope-from=andrew@trop.in; helo=mail-lf1-x133.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches From 38987bffcd1088315c6414d6c6141140c3969e6b Mon Sep 17 00:00:00 2001 From: Andrew Tropin Date: Fri, 9 Jul 2021 13:20:10 +0300 Subject: [PATCH] gnu: msmtp: Make it configurable with envrinoment variables Add the support of following environment variables: MSMTPQ_QUEUE_DIR MSMTPQ_LOG MSMTPQ_QUIET MSMTPQ_CONN_TEST Add new --enqueue option, which forces to enqueue message instead of attempting to send it. Make msmtpq quite by default for compatibility with emacs and use ping instead of netcat for connection test. Use binary absolute path in msmtpq and msmtp-queue scripts instead of relying on the binary being present in the $PATH. --- gnu/packages/mail.scm | 19 +++++-- .../patches/msmtpq-add-enqueue-option.patch | 40 +++++++++++++ .../patches/msmtpq-add-env-variables.patch | 56 +++++++++++++++++++ 3 files changed, 111 insertions(+), 4 deletions(-) create mode 100644 gnu/packages/patches/msmtpq-add-enqueue-option.patch create mode 100644 gnu/packages/patches/msmtpq-add-env-variables.patch diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 74e3bda866..ed898d91d0 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1677,7 +1677,10 @@ addons which can add many functionalities to the base client.") (uri (string-append "https://marlam.de/msmtp/releases/" "/msmtp-" version ".tar.xz")) (sha256 - (base32 "1klrj2a77671xb6xa0a0iyszhjb7swxhmzpzd4qdybmzkrixqr92")))) + (base32 "1klrj2a77671xb6xa0a0iyszhjb7swxhmzpzd4qdybmzkrixqr92")) + (patches + (search-patches "msmtpq-add-enqueue-option.patch" + "msmtpq-add-env-variables.patch")))) (build-system gnu-build-system) (inputs `(("libsecret" ,libsecret) @@ -1704,10 +1707,18 @@ addons which can add many functionalities to the base client.") (install-file (string-append msmtpq "/msmtp-queue") bin) (install-file (string-append msmtpq "/README.msmtpq") doc) (install-file "scripts/vim/msmtp.vim" vimfiles) - ;; Don't rely on netcat being in the PATH to test for a - ;; connection, instead look up and ping debian.org. + (substitute* (string-append bin "/msmtp-queue") + (("^exec msmtpq") (format #f "exec ~a/msmtpq" bin))) (substitute* (string-append bin "/msmtpq") - (("EMAIL_CONN_TEST=n") "EMAIL_CONN_TEST=p")) + (("^MSMTP=msmtp") (format #f "MSMTP=~a/msmtp" bin)) + ;; Make msmtpq quite by default, because Emacs treat output + ;; as an indicator of error. Logging still works as it was. + (("^EMAIL_QUEUE_QUIET=\\$\\{MSMTPQ_QUIET:-\\}") + "EMAIL_QUEUE_QUIET=${MSMTPQ_QUIET:-t}") + ;; Use ping test instead of netcat by default, because netcat + ;; is optional and can be missing. + (("^EMAIL_CONN_TEST=\\$\\{MSMTPQ_CONN_TEST:-n\\}") + "EMAIL_CONN_TEST=${MSMTPQ_CONN_TEST:-p}")) #t)))))) (synopsis "Simple and easy to use SMTP client with decent sendmail compatibility") diff --git a/gnu/packages/patches/msmtpq-add-enqueue-option.patch b/gnu/packages/patches/msmtpq-add-enqueue-option.patch new file mode 100644 index 0000000000..275ea6d04c --- /dev/null +++ b/gnu/packages/patches/msmtpq-add-enqueue-option.patch @@ -0,0 +1,40 @@ +From a1be5a9b5ebaa3941f4cb08f99482bccf52a3082 Mon Sep 17 00:00:00 2001 +From: Andrew Tropin +Date: Fri, 9 Jul 2021 08:30:00 +0300 +Subject: [PATCH] msmtpq: Add --enqueue option + +--- + scripts/msmtpq/msmtpq | 13 ++++++++++++- + 1 file changed, 12 insertions(+), 1 deletion(-) + +diff --git a/scripts/msmtpq/msmtpq b/scripts/msmtpq/msmtpq +index fbf38f9..0f127f0 100755 +--- a/scripts/msmtpq/msmtpq ++++ b/scripts/msmtpq/msmtpq +@@ -520,11 +520,22 @@ if [ ! "$1" = '--q-mgmt' ] ; then # msmtpq - sendmail mode + # write mail body text to queue .mail file + cat > "${FQP}.mail" || \ + log -e "$?" "creating mail body file [ ${FQP}.mail ] : failed" # test for error ++ # remove first argument, when --engueue provided ++ if [ "$1" = '--enqueue' ] ; then ++ enqueue=t ++ shift ++ fi + # write msmtp command line to queue .msmtp file + echo "$@" > "${FQP}.msmtp" || \ + log -e "$?" "creating msmtp cmd line file { $* }"\ + " to [ ${ID}.msmtp ] : failed" # test for error +- send_mail "$@" # send the mail if possible, queue it if not ++ ++ if [ -n "$enqueue" ] ; then ++ enqueue_mail "$@" # always enqueue the mail ++ else ++ send_mail "$@" # send the mail if possible, queue it if not ++ fi ++ + lock_queue -u # unlock here + else # msmtp-queue - queue management mode + shift # trim off first (--q-mgmt) arg +-- +2.32.0 + diff --git a/gnu/packages/patches/msmtpq-add-env-variables.patch b/gnu/packages/patches/msmtpq-add-env-variables.patch new file mode 100644 index 0000000000..d0a2813812 --- /dev/null +++ b/gnu/packages/patches/msmtpq-add-env-variables.patch @@ -0,0 +1,56 @@ +From 511be91b0aad2dc9bcb9ae16b4576cd01787ac34 Mon Sep 17 00:00:00 2001 +From: Andrew Tropin +Date: Fri, 9 Jul 2021 08:29:19 +0300 +Subject: [PATCH] msmtpq: Allow to control queue dir, log file, etc via env + variables + +Provided variables: +MSMTPQ_QUEUE_DIR +MSMTPQ_LOG +MSMTPQ_QUIET +MSMTPQ_CONN_TEST +--- + scripts/msmtpq/msmtpq | 13 +++++++------ + 1 file changed, 7 insertions(+), 6 deletions(-) + +diff --git a/scripts/msmtpq/msmtpq b/scripts/msmtpq/msmtpq +index 4b074de..fbf38f9 100755 +--- a/scripts/msmtpq/msmtpq ++++ b/scripts/msmtpq/msmtpq +@@ -70,9 +70,9 @@ MSMTP=msmtp + ## ( chmod 0700 msmtp.queue ) + ## + ## the queue dir - modify this to reflect where you'd like it to be (no quotes !!) +-Q=~/.msmtp.queue +-[ -d "$Q" ] || \ +- err '' "msmtpq : can't find msmtp queue directory [ $Q ]" '' # if not present - complain ; quit ++Q=${MSMTPQ_QUEUE_DIR:-~/.msmtp.queue} ++[ -d "$Q" ] || mkdir -p "$Q" || \ ++ err '' "msmtpq : can't create msmtp queue directory [ $Q ]" '' + ## + ## set the queue log file var to the location of the msmtp queue log file + ## where it is or where you'd like it to be +@@ -84,7 +84,8 @@ Q=~/.msmtp.queue + ## (doing so would be inadvisable under most conditions, however) + ## + ## the queue log file - modify (or comment out) to taste (but no quotes !!) +-LOG=~/log/msmtp.queue.log ++LOG=${MSMTPQ_LOG:-~/log/msmtp.queue.log} ++[ -d "$(dirname $LOG)" ] || mkdir -p "$(dirname $LOG)" + ## ====================================================================================== + + ## msmtpq can use the following environment variables : +@@ -108,8 +109,8 @@ LOG=~/log/msmtp.queue.log + ## + #EMAIL_CONN_NOTEST=y # deprecated ; use below var + #EMAIL_CONN_TEST={x| |p|P|n|s} # see settings above for EMAIL_CONN_TEST +-EMAIL_CONN_TEST=n +-#EMAIL_QUEUE_QUIET=t ++EMAIL_QUEUE_QUIET=${MSMTPQ_QUIET:-} ++EMAIL_CONN_TEST=${MSMTPQ_CONN_TEST:-n} + ## ====================================================================================== + + umask 077 # set secure permissions on created directories and files +-- +2.32.0 + -- 2.32.0