* Re: [Kevin McCarthy] Bug#966100: notmuch-mutt: symlinking now fails for indexed mailboxes with a space in the name
2020-07-23 9:50 ` [Kevin McCarthy] Bug#966100: notmuch-mutt: symlinking now fails for indexed mailboxes with a space in the name David Bremner
@ 2020-07-23 10:45 ` Stefano Zacchiroli
2020-07-26 21:10 ` Greg Anders
2020-07-23 15:58 ` Tomi Ollila
1 sibling, 1 reply; 7+ messages in thread
From: Stefano Zacchiroli @ 2020-07-23 10:45 UTC (permalink / raw)
To: David Bremner; +Cc: notmuch, Greg Anders
Heya, thanks for the heads up. I don't think I was involved in that
specific commit though, so I'm shamelessly punting to the author (added
to Cc:) :-)
(FWIW, I don't see either at first sight why it would break anything...)
Cheers
On Thu, Jul 23, 2020 at 06:50:29AM -0300, David Bremner wrote:
> Date: Wed, 22 Jul 2020 19:06:27 -0700
> From: Kevin McCarthy <kevin@8t8.us>
> To: Debian Bug Tracking System <submit@bugs.debian.org>
> Subject: Bug#966100: notmuch-mutt: symlinking now fails for indexed
> mailboxes with a space in the name
> Reply-To: Kevin McCarthy <kevin@8t8.us>, 966100@bugs.debian.org
> Resent-From: Kevin McCarthy <kevin@8t8.us>
> Resent-To: debian-bugs-dist@lists.debian.org
> Resent-Date: Thu, 23 Jul 2020 02:21:01 +0000
> Message-ID: <159546998738.232977.10166967333633103899.reportbug@afu.lan>
>
> Package: notmuch-mutt
> Version: 0.30-1
> Severity: important
> Tags: upstream
>
> Dear Maintainer,
>
> After recently updating from stable to testing, notmuch-mutt search
> and thread commands stopped including results from my "Sent Items"
> maildir folder. There are broken links in the results folder, and
> symlink error messages in the terminal window after exiting mutt.
>
> I tracked this down to upstream commit
> <https://git.notmuchmail.org/git?p=notmuch;a=commitdiff;h=1fcf068e331b9b79e14f79c8b126711fc3d72cbb>
> but unfortunately my shell-fu is not good enough to understand exactly
> why the new version isn't working.
>
> If I manually swap revert the diff then my Sent Items results start
> working again. So somehow the backslash-escaping works for xargs but
> not for the shell while/read loop.
>
> Here's the part of the commit above causing the breakage.
>
> - - - - - - - - -
> diff --git a/contrib/notmuch-mutt/notmuch-mutt b/contrib/notmuch-mutt/notmuch-mutt
> index 0e46a8c1b95e76163eed68694aa5a1a973c8b371..d33223bdd88e776acf79ae8b4ba2703ff1e6cc58 100755 (executable)
> --- a/contrib/notmuch-mutt/notmuch-mutt
> +++ b/contrib/notmuch-mutt/notmuch-mutt
> @@ -50,7 +50,7 @@ sub search($$$) {
> empty_maildir($maildir);
> system("notmuch search --output=files $dup_option $query"
> . " | sed -e 's: :\\\\ :g'"
> - . " | xargs -r -I searchoutput ln -s searchoutput $maildir/cur/");
> + . " | while IFS= read -r searchoutput; do ln -s \$searchoutput $maildir/cur/; done");
> }
>
> sub prompt($$) {
> - - - - - - - - -
>
>
> -- System Information:
> Debian Release: bullseye/sid
> APT prefers testing
> APT policy: (500, 'testing')
> Architecture: amd64 (x86_64)
>
> Kernel: Linux 5.7.0-1-amd64 (SMP w/16 CPU threads)
> Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
> Shell: /bin/sh linked to /bin/dash
> Init: systemd (via /run/systemd/system)
> LSM: AppArmor: enabled
>
> Versions of packages notmuch-mutt depends on:
> ii libmail-box-perl 3.008-1
> ii libmailtools-perl 2.21-1
> ii libstring-shellquote-perl 1.04-1
> ii libterm-readline-gnu-perl 1.36-2+b1
> ii notmuch 0.30-1
> ii perl 5.30.3-4
>
> Versions of packages notmuch-mutt recommends:
> pn mutt <none>
>
> notmuch-mutt suggests no packages.
>
> -- no debconf information
>
--
Stefano Zacchiroli . zack@upsilon.cc . upsilon.cc/zack . . o . . . o . o
Computer Science Professor . CTO Software Heritage . . . . . o . . . o o
Former Debian Project Leader & OSI Board Director . . . o o o . . . o .
« the first rule of tautology club is the first rule of tautology club »
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Kevin McCarthy] Bug#966100: notmuch-mutt: symlinking now fails for indexed mailboxes with a space in the name
2020-07-23 9:50 ` [Kevin McCarthy] Bug#966100: notmuch-mutt: symlinking now fails for indexed mailboxes with a space in the name David Bremner
2020-07-23 10:45 ` Stefano Zacchiroli
@ 2020-07-23 15:58 ` Tomi Ollila
2020-07-24 18:38 ` Kevin J. McCarthy
1 sibling, 1 reply; 7+ messages in thread
From: Tomi Ollila @ 2020-07-23 15:58 UTC (permalink / raw)
To: kevin, notmuch; +Cc: Stefano Zacchiroli
On Thu, Jul 23 2020, David Bremner wrote:
> From: Kevin McCarthy <kevin@8t8.us>
> Subject: Bug#966100: notmuch-mutt: symlinking now fails for indexed mailboxes with a space in the name
> To: Debian Bug Tracking System <submit@bugs.debian.org>
> Date: Wed, 22 Jul 2020 19:06:27 -0700
>
> Package: notmuch-mutt
> Version: 0.30-1
> Severity: important
> Tags: upstream
>
> Dear Maintainer,
Hi Kevin, others.
>
> After recently updating from stable to testing, notmuch-mutt search
> and thread commands stopped including results from my "Sent Items"
> maildir folder. There are broken links in the results folder, and
> symlink error messages in the terminal window after exiting mutt.
>
> I tracked this down to upstream commit
> <https://git.notmuchmail.org/git?p=notmuch;a=commitdiff;h=1fcf068e331b9b79e14f79c8b126711fc3d72cbb>
> but unfortunately my shell-fu is not good enough to understand exactly
> why the new version isn't working.
>
> If I manually swap revert the diff then my Sent Items results start
> working again. So somehow the backslash-escaping works for xargs but
> not for the shell while/read loop.
>
> Here's the part of the commit above causing the breakage.
>
> - - - - - - - - -
> diff --git a/contrib/notmuch-mutt/notmuch-mutt b/contrib/notmuch-mutt/notmuch-mutt
> index 0e46a8c1b95e76163eed68694aa5a1a973c8b371..d33223bdd88e776acf79ae8b4ba2703ff1e6cc58 100755 (executable)
> --- a/contrib/notmuch-mutt/notmuch-mutt
> +++ b/contrib/notmuch-mutt/notmuch-mutt
> @@ -50,7 +50,7 @@ sub search($$$) {
> empty_maildir($maildir);
> system("notmuch search --output=files $dup_option $query"
> . " | sed -e 's: :\\\\ :g'"
> - . " | xargs -r -I searchoutput ln -s searchoutput $maildir/cur/");
> + . " | while IFS= read -r searchoutput; do ln -s \$searchoutput $maildir/cur/; done");
> }
This could work, cannot test (compiles OK w/ perl -c when I outcommented
packages I don't have.
--8<----8<----8<----8<----8<----8<----8<----8<----8<----8<----8<----8<----8<--
diff --git a/contrib/notmuch-mutt/notmuch-mutt b/contrib/notmuch-mutt/notmuch-mutt
index d33223bd..b6c2d7b5 100755
--- a/contrib/notmuch-mutt/notmuch-mutt
+++ b/contrib/notmuch-mutt/notmuch-mutt
@@ -12,6 +12,7 @@ use strict;
use warnings;
use File::Path;
+use File::Basename;
use Getopt::Long qw(:config no_getopt_compat);
use Mail::Header;
use Mail::Box::Maildir;
@@ -41,16 +42,19 @@ sub search($$$) {
my ($maildir, $remove_dups, $query) = @_;
my $dup_option = "";
- $query = shell_quote($query);
-
+ my @args = qw/notmuch search --output=files/;
if ($remove_dups) {
- $dup_option = "--duplicate=1";
+ push @args, "--duplicate=1";
}
+ push @args, $query;
empty_maildir($maildir);
- system("notmuch search --output=files $dup_option $query"
- . " | sed -e 's: :\\\\ :g'"
- . " | while IFS= read -r searchoutput; do ln -s \$searchoutput $maildir/cur/; done");
+ open my $p, '-|', @args or die "Running @args failed: $!\n";
+ while (<$p>) {
+ chomp;
+ my $bn = basename $_;
+ symlink $_, "$maildir/cur/$bn"; # fixme: check (report?) error
+ }
}
sub prompt($$) {
--8<----8<----8<----8<----8<----8<----8<----8<----8<----8<----8<----8<----8<--
>
> sub prompt($$) {
> - - - - - - - - -
>
>
> -- System Information:
> Debian Release: bullseye/sid
> APT prefers testing
> APT policy: (500, 'testing')
> Architecture: amd64 (x86_64)
>
> Kernel: Linux 5.7.0-1-amd64 (SMP w/16 CPU threads)
> Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
> Shell: /bin/sh linked to /bin/dash
> Init: systemd (via /run/systemd/system)
> LSM: AppArmor: enabled
>
> Versions of packages notmuch-mutt depends on:
> ii libmail-box-perl 3.008-1
> ii libmailtools-perl 2.21-1
> ii libstring-shellquote-perl 1.04-1
> ii libterm-readline-gnu-perl 1.36-2+b1
> ii notmuch 0.30-1
> ii perl 5.30.3-4
>
> Versions of packages notmuch-mutt recommends:
> pn mutt <none>
>
> notmuch-mutt suggests no packages.
>
> -- no debconf information
^ permalink raw reply related [flat|nested] 7+ messages in thread