diff options
| author | Alejandro Soto <alejandro@34project.org> | 2025-12-24 18:01:46 -0600 |
|---|---|---|
| committer | Alejandro Soto <alejandro@34project.org> | 2025-12-24 18:06:03 -0600 |
| commit | 5365449cbbee823f7f947e146db1a588e17fa2e9 (patch) | |
| tree | 8993bb75ca9d6ce0189cffc59f63676d40036f6b /pkgs/msmtp | |
| parent | ff11e502f5c5997581128254dd7843c9e90fd734 (diff) | |
pkgs/msmtp: update to 25.11
Diffstat (limited to '')
| -rw-r--r-- | pkgs/msmtp/default.nix | 80 | ||||
| -rw-r--r-- | pkgs/msmtp/msmtpq-remove-binary-check.patch | 13 | ||||
| -rw-r--r-- | pkgs/msmtp/msmtpq-systemd-logging.patch | 41 | ||||
| -rw-r--r-- | pkgs/msmtp/paths.patch | 64 |
4 files changed, 113 insertions, 85 deletions
diff --git a/pkgs/msmtp/default.nix b/pkgs/msmtp/default.nix index 23559c5..c16ee3e 100644 --- a/pkgs/msmtp/default.nix +++ b/pkgs/msmtp/default.nix @@ -9,36 +9,41 @@ bash, coreutils, gnugrep, + gnused, gnutls, gsasl, libidn2, netcat-gnu, texinfo, which, - Security, withKeyring ? true, libsecret, withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd, systemd, withScripts ? true, + withLibnotify ? true, + libnotify, + gitUpdater, + binlore, + msmtp, }: let inherit (lib) getBin getExe optionals; - version = "1.8.22"; + version = "1.8.32"; src = fetchFromGitHub { owner = "marlam"; - repo = "msmtp-mirror"; + repo = "msmtp"; rev = "msmtp-${version}"; - hash = "sha256-Jt/uvGBrYYr6ua6LVPiP0nuRiIkxBJASdgHBNHivzxQ="; + hash = "sha256-ofyDtP7KgTKX/O1O4g3OcDwgihDveAiJ5s5GQtSqf28="; }; - meta = with lib; { + meta = { description = "Simple and easy to use SMTP client with excellent sendmail compatibility"; homepage = "https://marlam.de/msmtp/"; - license = licenses.gpl3Plus; - maintainers = with maintainers; [peterhoeg]; - platforms = platforms.unix; + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [peterhoeg]; + platforms = lib.platforms.unix; mainProgram = "msmtp"; }; @@ -51,15 +56,25 @@ ]; configureFlags = - ["--sysconfdir=/etc" "--with-libgsasl"] - ++ optionals stdenv.isDarwin ["--with-macosx-keyring"]; + [ + "--sysconfdir=/etc" + "--with-libgsasl" + ] + ++ optionals stdenv.hostPlatform.isDarwin ["--with-macosx-keyring"]; buildInputs = - [gnutls gsasl libidn2] - ++ optionals stdenv.isDarwin [Security] + [ + gnutls + gsasl + libidn2 + ] ++ optionals withKeyring [libsecret]; - nativeBuildInputs = [autoreconfHook pkg-config texinfo]; + nativeBuildInputs = [ + autoreconfHook + pkg-config + texinfo + ]; enableParallelBuilding = true; @@ -73,7 +88,10 @@ pname = "msmtp-scripts"; inherit version src meta; - patches = [./paths.patch]; + patches = [ + ./msmtpq-remove-binary-check.patch + ./msmtpq-systemd-logging.patch + ]; postPatch = '' substituteInPlace scripts/msmtpq/msmtpq \ @@ -112,10 +130,12 @@ binaries coreutils gnugrep + gnused netcat-gnu which ] - ++ optionals withSystemd [systemd]; + ++ optionals withSystemd [systemd] + ++ optionals withLibnotify [libnotify]; execer = [ "cannot:${getBin binaries}/bin/msmtp" @@ -123,11 +143,18 @@ ] ++ optionals withSystemd [ "cannot:${getBin systemd}/bin/systemd-cat" + ] + ++ optionals withLibnotify [ + "cannot:${getBin libnotify}/bin/notify-send" ]; fix."$MSMTP" = ["msmtp"]; fake.external = - ["ping"] - ++ optionals (!withSystemd) ["systemd-cat"]; + [ + "ping" + ] + ++ optionals (!withSystemd) ["systemd-cat"] + ++ optionals (!withLibnotify) ["notify-send"]; + keep.source = ["~/.msmtpqrc"]; }; msmtp-queue = { @@ -141,11 +168,22 @@ in if withScripts then - symlinkJoin - { + symlinkJoin { name = "msmtp-${version}"; inherit version meta; - paths = [binaries scripts]; - passthru = {inherit binaries scripts;}; + paths = [ + binaries + scripts + ]; + passthru = { + inherit binaries scripts src; + # msmtpq forwards most of its arguments to msmtp [1]. + # + # [1]: <https://github.com/marlam/msmtp/blob/msmtp-1.8.26/scripts/msmtpq/msmtpq#L301> + binlore.out = binlore.synthesize msmtp '' + wrapper bin/msmtpq bin/msmtp + ''; + updateScript = gitUpdater {rev-prefix = "msmtp-";}; + }; } else binaries diff --git a/pkgs/msmtp/msmtpq-remove-binary-check.patch b/pkgs/msmtp/msmtpq-remove-binary-check.patch new file mode 100644 index 0000000..045f71c --- /dev/null +++ b/pkgs/msmtp/msmtpq-remove-binary-check.patch @@ -0,0 +1,13 @@ +diff --git a/scripts/msmtpq/msmtpq b/scripts/msmtpq/msmtpq +index bcb384e..9622e47 100755 +--- a/scripts/msmtpq/msmtpq ++++ b/scripts/msmtpq/msmtpq +@@ -60,8 +60,6 @@ err() { dsp '' "$@" '' ; exit 1 ; } + ## export the location of the msmtp executable before running this script (no quotes !!) + ## e.g. ( export MSMTP=/path/to/msmtp ) + MSMTP="${MSMTP:-msmtp}" +-"$MSMTP" --version >/dev/null 2>&1 || \ +- log_later -e 1 "msmtpq : can't run the msmtp executable [ $MSMTP ]" # if not found - complain ; quit + ## + ## set the queue var to the location of the msmtp queue directory + ## if the queue dir doesn't yet exist, create it (0700) diff --git a/pkgs/msmtp/msmtpq-systemd-logging.patch b/pkgs/msmtp/msmtpq-systemd-logging.patch new file mode 100644 index 0000000..55f386b --- /dev/null +++ b/pkgs/msmtp/msmtpq-systemd-logging.patch @@ -0,0 +1,41 @@ +diff --git a/scripts/msmtpq/msmtpq b/scripts/msmtpq/msmtpq +index 28d0754..3eaac58 100755 +--- a/scripts/msmtpq/msmtpq ++++ b/scripts/msmtpq/msmtpq +@@ -182,6 +182,8 @@ if [ -n "$MSMTPQ_LOG" ] ; then + unset msmptq_log_dir + fi + ++JOURNAL=@journal@ ++ + umask 077 # set secure permissions on created directories and files + + declare -i CNT # a count of mail(s) currently in the queue +@@ -214,6 +216,7 @@ on_exit() { # unlock the queue on exit if the lock was + ## display msg to user, as well + ## + log() { ++ local NAME=msmtpq + local ARG RC PFX + PFX="$('date' +'%Y %d %b %H:%M:%S')" + # time stamp prefix - "2008 13 Mar 03:59:45 " +@@ -233,10 +236,19 @@ log() { + done + fi + ++ if [ "$JOURNAL" = "Y" ]; then ++ for ARG; do ++ [ -n "$ARG" ] && ++ echo "$ARG" | systemd-cat -t "$NAME" -p info ++ done ++ fi ++ + if [ -n "$RC" ] ; then # an error ; leave w/error return + [ -n "$LKD" ] && lock_queue -u # unlock here (if locked) + [ -n "$MSMTPQ_LOG" ] && \ + echo " exit code = $RC" >> "$MSMTPQ_LOG" # logging ok ; send exit code to log ++ [ "$JOURNAL" = "Y" ] && \ ++ echo "exit code= $RC" | systemd-cat -t "$NAME" -p emerg + exit "$RC" # exit w/return code + fi + } diff --git a/pkgs/msmtp/paths.patch b/pkgs/msmtp/paths.patch deleted file mode 100644 index 9298519..0000000 --- a/pkgs/msmtp/paths.patch +++ /dev/null @@ -1,64 +0,0 @@ -diff --git a/scripts/msmtpq/msmtpq b/scripts/msmtpq/msmtpq -index d8b4039..1f2a7b5 100755 ---- a/scripts/msmtpq/msmtpq -+++ b/scripts/msmtpq/msmtpq -@@ -60,8 +60,8 @@ err() { dsp '' "$@" '' ; exit 1 ; } - ## e.g. ( export MSMTP=/path/to/msmtp ) - if [ "$MSMTP" = "" ] ; then # If MSMTP is unset or empty... - MSMTP=msmtp --elif [ ! -x "$MSMTP" ] ; then -- log -e 1 "msmtpq : can't find the msmtp executable [ $MSMTP ]" # if not found - complain ; quit -+# elif [ ! -x "$MSMTP" ] ; then -+# log -e 1 "msmtpq : can't find the msmtp executable [ $MSMTP ]" # if not found - complain ; quit - fi - ## - ## set the queue var to the location of the msmtp queue directory -@@ -71,7 +71,7 @@ fi - ## ( chmod 0700 msmtp.queue ) - ## - ## the queue dir - export this variable to reflect where you'd like it to be (no quotes !!) --Q=${Q:-~/.msmtp.queue} -+Q=${MSMTP_QUEUE:-~/.msmtp.queue} - [ -d "$Q" ] || mkdir -m 0700 -p "$Q" || \ - err '' "msmtpq : can't find or create msmtp queue directory [ $Q ]" '' # if not present - complain ; quit - ## -@@ -85,8 +85,10 @@ Q=${Q:-~/.msmtp.queue} - ## - ## the queue log file - export this variable to change where logs are stored (but no quotes !!) - ## Set it to "" (empty string) to disable logging. --[ -v LOG ] || LOG=~/log/msmtp.queue.log -+LOG=${MSMTP_LOG:-~/log/msmtp.queue.log} - [ -d "$(dirname "$LOG")" ] || mkdir -p "$(dirname "$LOG")" -+ -+JOURNAL=@journal@ - ## ====================================================================================== - - ## msmtpq can use the following environment variables : -@@ -139,6 +141,7 @@ on_exit() { # unlock the queue on exit if the lock was - ## display msg to user, as well - ## - log() { -+ local NAME=msmtpq - local ARG RC PFX - PFX="$('date' +'%Y %d %b %H:%M:%S')" - # time stamp prefix - "2008 13 Mar 03:59:45 " -@@ -156,10 +159,19 @@ log() { - done - fi - -+ if [ "$JOURNAL" = "Y" ]; then -+ for ARG; do -+ [ -n "$ARG" ] && -+ echo "$ARG" | systemd-cat -t "$NAME" -p info -+ done -+ fi -+ - if [ -n "$RC" ] ; then # an error ; leave w/error return - [ -n "$LKD" ] && lock_queue -u # unlock here (if locked) - [ -n "$LOG" ] && \ - echo " exit code = $RC" >> "$LOG" # logging ok ; send exit code to log -+ [ "$JOURNAL" = "Y" ] && \ -+ echo "exit code= $RC" | systemd-cat -t "$NAME" -p emerg - exit "$RC" # exit w/return code - fi - } |
