From: David Uhden Collado Subject: Update mail/mutt-wizard to latest upstream commit To: aisha@openbsd.org, ports@openbsd.org Date: Sun, 9 Aug 2026 15:04:00 +0000 Hello, Please find attached a patch that updates the mail/mutt-wizard port from the v3.3.1 release to the latest upstream commit: b4a28b2548e94c167bb74fcb5e8c44c34d2be842 Upstream has not published a new tagged release since v3.3.1, so the port now follows the current upstream commit instead. The changes since v3.3.1 can be reviewed at: https://github.com/LukeSmithxyz/mutt-wizard/compare/v3.3.1...b4a28b2548e94c167bb74fcb5e8c44c34d2be842 There have been a number of useful improvements since the last release. These include support for goimapnotify push notifications, basic Zsh completion, improved XDG directory handling, and moving the msmtp log to XDG_STATE_HOME. Mail synchronization and notifications have also received several fixes. These include more reliable display detection, fixes for notify-send and multiline subjects, better handling of synchronization errors, and avoiding mailsync attempts with a locked GPG key in non-interactive sessions. Account configuration has also been improved. Upstream now avoids prompting for a password when one is already stored, pipes passwords directly to pass, has more robust mbsync version detection, and fixes several problems in account setup and command-line option handling. There are also improvements to the notmuch integration, including correct XDG_CACHE_HOME handling and escaping of message IDs, as well as support for LMDB when available. More recent changes improve portability by replacing non-portable command usage with POSIX-compatible alternatives, allow PREFIX to be set by the user, fix goimapnotify configuration and directory creation, and improve general error handling. For the OpenBSD port, I also removed the sysutils/ggrep dependency. The only remaining GNU grep-specific expression used "\S", which is replaced by the equivalent POSIX "[^[:space:]]" expression, allowing the base system grep to be used instead. I refreshed the existing OpenBSD-specific patches for the new upstream code while preserving the account switching, account deletion, dynamic mailbox loading, GPG WKS, pgrep, and sed compatibility adjustments. Finally, I updated the package list for the new upstream configuration templates and Zsh completion file and regenerated distinfo for the selected commit. Thank you for your time and consideration. Best regards, David. Index: mail/mutt-wizard/Makefile =================================================================== RCS file: /cvs/ports/mail/mutt-wizard/Makefile,v diff -u -p -u -p -r1.10 Makefile --- mail/mutt-wizard/Makefile 24 Feb 2023 22:14:17 -0000 1.10 +++ mail/mutt-wizard/Makefile 9 Aug 2026 14:51:27 -0000 @@ -3,10 +3,8 @@ CATEGORIES = mail GH_ACCOUNT = LukeSmithxyz GH_PROJECT = mutt-wizard -GH_TAGNAME = v3.3.1 - -EPOCH = 0 -REVISION = 0 +GH_COMMIT = b4a28b2548e94c167bb74fcb5e8c44c34d2be842 +DISTNAME = mutt-wizard-3.3.2 MAINTAINER = Aisha Tammy @@ -16,17 +14,12 @@ PERMIT_PACKAGE = Yes RUN_DEPENDS = mail/neomutt,gpgme,sasl,notmuch \ mail/isync \ mail/msmtp \ - security/password-store \ - sysutils/ggrep + security/password-store NO_BUILD = Yes NO_TEST = Yes USE_GMAKE = Yes FAKE_FLAGS = PREFIX=${TRUEPREFIX} MANPREFIX=${PREFIX}/man - -post-extract: - cd ${WRKSRC} && \ - sed -e "s/\/ggrep/g" -i bin/mw .include Index: mail/mutt-wizard/distinfo =================================================================== RCS file: /cvs/ports/mail/mutt-wizard/distinfo,v diff -u -p -u -p -r1.8 distinfo --- mail/mutt-wizard/distinfo 13 May 2022 14:49:56 -0000 1.8 +++ mail/mutt-wizard/distinfo 9 Aug 2026 14:51:27 -0000 @@ -1,2 +1,2 @@ -SHA256 (mutt-wizard-3.3.1.tar.gz) = QJH7oFN4bUFDJJ5h3939Z5wV9WHsNK8X8TCjyoDDm1M= -SIZE (mutt-wizard-3.3.1.tar.gz) = 34813 +SHA256 (mutt-wizard-3.3.2-b4a28b25.tar.gz) = vzo20h3NU9AazgpH+wlDGKHczZjvmXTAKUEH0TtIRac= +SIZE (mutt-wizard-3.3.2-b4a28b25.tar.gz) = 37434 Index: mail/mutt-wizard/patches/patch-bin_mailsync =================================================================== RCS file: /cvs/ports/mail/mutt-wizard/patches/patch-bin_mailsync,v diff -u -p -u -p -r1.3 patch-bin_mailsync --- mail/mutt-wizard/patches/patch-bin_mailsync 13 May 2022 14:49:56 -0000 1.3 +++ mail/mutt-wizard/patches/patch-bin_mailsync 9 Aug 2026 14:51:27 -0000 @@ -1,12 +1,16 @@ +$OpenBSD$ + +OpenBSD pgrep does not support -ax, use -x instead + Index: bin/mailsync --- bin/mailsync.orig +++ bin/mailsync -@@ -42,7 +42,7 @@ case "$(uname)" in - *systemd*|*openrc*) export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u)/bus ;; - esac - # remember if a display server is running since `ps` doesn't always contain a display -- pgrepoutput="$(pgrep -a X\(org\|wayland\))" -+ pgrepoutput="$(pgrep X\(org\|wayland\))" - displays="$(echo "$pgrepoutput" | grep -wo "[0-9]*:[0-9]\+" | sort -u)" - notify() { [ -n "$pgrepoutput" ] && for x in ${displays:-0:}; do - export DISPLAY=$x +@@ -42,7 +42,7 @@ + *systemd*|*openrc*) export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u)/bus ;; + esac + # remember if a display server is running since `ps` doesn't always contain a display +- pgrepoutput="$(pgrep -ax X\(\|org\|wayland\))" ++ pgrepoutput="$(pgrep X\(\|org\|wayland\))" + displays="$(echo "$pgrepoutput" | grep -wo "[0-9]*:[0-9]\+" | sort -u)" + [ -z "$displays" ] && [ -d /tmp/.X11-unix ] && displays=$(cd /tmp/.X11-unix && for x in X*; do echo ":${x#X}"; done) + Index: mail/mutt-wizard/patches/patch-bin_mw =================================================================== RCS file: /cvs/ports/mail/mutt-wizard/patches/patch-bin_mw,v diff -u -p -u -p -r1.2 patch-bin_mw --- mail/mutt-wizard/patches/patch-bin_mw 11 Mar 2022 19:34:43 -0000 1.2 +++ mail/mutt-wizard/patches/patch-bin_mw 9 Aug 2026 14:51:27 -0000 @@ -1,31 +1,55 @@ +$OpenBSD$ + fix account number switch macro fix account deletion publish gpg using gpg-wks protocol dynamically load mailboxes +replace GNU grep \S with POSIX [^[:space:]] Index: bin/mw --- bin/mw.orig +++ bin/mw -@@ -173,7 +173,7 @@ delete() { if [ -z "${fulladdr+x}" ]; then +@@ -64,7 +64,7 @@ + } + } + +-getaccounts() { accounts="$(find -L "$accdir" -type f 2>/dev/null | grep -o "\S*.muttrc" | sed "s|.*/\([0-9]-\)*||;s/\.muttrc$//" | nl)"; } ++getaccounts() { accounts="$(find -L "$accdir" -type f 2>/dev/null | grep -o "[^[:space:]]*.muttrc" | sed "s|.*/\([0-9]-\)*||;s/\.muttrc$//" | nl)"; } + + list() { getaccounts && [ -n "$accounts" ] && echo "$accounts" || exit 1; } - sed -ibu "/IMAPStore $fulladdr-remote$/,/# End profile/d" "$mbsyncrc" 2>/dev/null ; rm -f "$mbsyncrc"bu - rm -rf "${cachedir:?}/${fulladdr:?}" "$accdir/$fulladdr.muttrc" "$accdir/"[0-9]-"$fulladdr.muttrc" -- sed -ibu "/\([0-9]-\)\?$fulladdr.muttrc/d" "$muttrc" 2>/dev/null; rm -f "$muttrc"bu -+ sed -ibu "/macro.*i[0-9].*$fulladdr.muttrc/d" "$muttrc" 2>/dev/null; rm -f "$muttrc"bu - sed -ibu "/account $fulladdr$/,/^\(\s*$\|account\)/d" "$msmtprc" 2>/dev/null; rm -f "$msmtprc"bu - sed -ibu "/account $fulladdr$/,/^\(\s*$\|account\)/d" "$mpoprc" 2>/dev/null; rm -f "$mpoprc"bu - pass rm -f "$fulladdr" >/dev/null 2>&1 -@@ -224,11 +224,11 @@ getboxes() { if [ -n "${force+x}" ] ; then - mailboxes="$(echo "$info" | ggrep -v HasChildren | sed "s/.*\" //;s/\"//g" | tr -d '\r')" +@@ -152,7 +152,7 @@ + sed -ibu "/IMAPStore $fulladdr-remote$/,/# End profile/d" "$mbsyncrc" 2>/dev/null + rm -f "$mbsyncrc"bu + rm -rf "${cachedir:?}/${fulladdr:?}" "$accdir/$fulladdr.muttrc" "$accdir/"[0-9]-"$fulladdr.muttrc" +- sed -ibu "/\([0-9]-\)\?$fulladdr.muttrc/d" "$muttrc" 2>/dev/null ++ sed -ibu "/macro.*i[0-9].*$fulladdr.muttrc/d" "$muttrc" 2>/dev/null + rm -f "$muttrc"bu + sed -ibu "/account $fulladdr$/,/^\(\s*$\|account\)/d" "$msmtprc" 2>/dev/null + rm -f "$msmtprc"bu +@@ -225,14 +225,11 @@ + mailboxes="$(echo "$info" | grep -v HasChildren | sed "s/.*\" //;s/\"//g" | tr -d '\r')" fi [ "$type" = "pop" ] && mailboxes="INBOX" -- for x in $(sed -n "/^macro.* i[0-9] / s/\(^macro.* i\| .*\)//gp " "$muttrc" | sort -u; echo 0); do -+ for x in $(ggrep -Eo "^macro.* i[0-9] " "$muttrc" | sed "s/^macro.* i//g" | sort -u; echo 0); do +- for x in $( +- sed -n "/^macro.* i[0-9] / s/\(^macro.* i\| .*\)//gp " "$muttrc" 2>/dev/null | sort -u +- echo 0 +- ); do ++ for x in $(grep -Eo "^macro.* i[0-9] " "$muttrc" | sed "s/^macro.* i//g" | sort -u; echo 0); do idnum=$((idnum + 1)) [ "$idnum" -eq "$x" ] || break done -- toappend="mailboxes $(echo "$mailboxes" | sed "s/^/\"=/;s/$/\"/" | paste -sd ' ' - )" +- toappend="mailboxes $(echo "$mailboxes" | sed "s/^/\"=/;s/$/\"/;s/'/\\\'/g" | paste -sd ' ' -)" + toappend="mailboxes \`mdir=$maildir/$fulladdr/; find \$mdir -mindepth 1 -type d -name cur | sed -e 's:/cur\$:\":' -e \"s:\$mdir:\\\"=:\" | sort | tr '\\\n' ' '\`" } - finalize() { echo "$toappend" >> "$accdir/$fulladdr.muttrc" + finalize() { +@@ -318,7 +315,7 @@ + / i[0-9] / s?\(.* i\|'>"$tempfile" + ${EDITOR:-vim} "$tempfile" || exit 1 +- sed -i -e 's/#.*//' -e '/^$/d' "$tempfile" ++ sed -i '' -e 's/#.*//' -e '/^$/d' "$tempfile" + default="$(sort -n "$tempfile" | head -n 1)" + default="${default#* }" + sed -ibu " Index: mail/mutt-wizard/patches/patch-share_mutt-wizard_muttrc =================================================================== RCS file: /cvs/ports/mail/mutt-wizard/patches/patch-share_mutt-wizard_muttrc,v diff -u -p -u -p -r1.1 patch-share_mutt-wizard_muttrc --- mail/mutt-wizard/patches/patch-share_mutt-wizard_muttrc 13 May 2022 14:49:56 -0000 1.1 +++ mail/mutt-wizard/patches/patch-share_mutt-wizard_muttrc 9 Aug 2026 14:51:27 -0000 @@ -1,9 +1,11 @@ +$OpenBSD$ + add ctrl-l for open, as default ctrl-o is set to discard in shell Index: share/mutt-wizard.muttrc --- share/mutt-wizard.muttrc.orig +++ share/mutt-wizard.muttrc -@@ -109,6 +109,7 @@ set sidebar_format = '%D%?F? [%F]?%* %?N?%N/? %?S?%S?' +@@ -114,6 +114,7 @@ bind index,pager \Ck sidebar-prev bind index,pager \Cj sidebar-next bind index,pager \Co sidebar-open Index: mail/mutt-wizard/pkg/PLIST =================================================================== RCS file: /cvs/ports/mail/mutt-wizard/pkg/PLIST,v diff -u -p -u -p -r1.5 PLIST --- mail/mutt-wizard/pkg/PLIST 13 May 2022 14:49:56 -0000 1.5 +++ mail/mutt-wizard/pkg/PLIST 9 Aug 2026 14:51:27 -0000 @@ -6,6 +6,14 @@ lib/mutt-wizard/openfile @man man/man1/mw.1 share/mutt-wizard/ share/mutt-wizard/domains.csv +share/mutt-wizard/imapnotify-temp share/mutt-wizard/mailcap +share/mutt-wizard/mbsync-temp +share/mutt-wizard/mpop-temp +share/mutt-wizard/msmtp-temp +share/mutt-wizard/mutt-temp share/mutt-wizard/mutt-wizard.muttrc +share/mutt-wizard/notmuch-temp +share/mutt-wizard/online-temp share/mutt-wizard/switch.muttrc +share/zsh/site-functions/_mutt-wizard.zsh