Re: "No MTP devices." and "No devices." folders persist, others invisible to exmh

Kevin Cosgrove <[email protected]> Wed, 25 Jul 2018 15:53:03 -0700
Newsgroups gmane.mail.exmh.devel
Message-ID <[email protected]>
On 25 July 2018 at 12:35, [email protected] wrote:

> On Wed, 25 Jul 2018 08:21:14 -0700, Kevin Cosgrove said:
> 
> > I woke this morning to exmh having only two folders, "No MTP devices."
> > and "No devices.". This is the content of ~/Mail/.folders so I
> > removed that file and exmh reset the contents to the same again.
> 
> That's.... weird.  Almost like you had a cellphone that wasn't talking
> to the machine you're running exmh on.

It almost sounds like someone's tried that using X on a cellphone. ;-)

> > nmh finds my folders just fine.  The two odd folders are not reported
> > by 'folders' of nmh.
> 
> The code in lib/flist.c that builds .folders:
> 
>     set bogus [catch {exec folders -all -fast -recurse} raw]
>     set raw [split $raw \n]
>     if {$bogus} {
>         set ix [lsearch -glob $raw "* * *"]
> 
> I wonder if there's two 'folders' binaries on the system, one
> from nmh and another from some MTP handling package, and
> your commandline is picking up the nmh one and exmh is finding
> the other.

Why yes, /usr/bin/folders is owned by the libmtp0 package.

/usr/local/bin/folders is owned by my nmh package.  /usr/local/bin
is ahead of /usr/bin in my PATH.

> > What's going on?  I haven't changed exmh nor updated my system in a long
> > time, let alone while I was sleeping.
> 
> It's quite possible that it's been a loaded gun pointed at your
> foot for a while - there's this code:
> 
>    } elseif {![info exists flist(allfolders)]||
>             [file mtime $flist(cacheFile)] > $flist(cacheFileMtime)} {
>         set in [open $flist(cacheFile)]
>         set flist(allfolders) [FlistSort [split [read $in] \n]]
> 
> which basically means that it will just read in $mhProfile(path)/.folders
> unless something has touched it.  But that should end up re-running 'folders',
> so if exmh finds the two oddities again it means the 'folders' binary it
> ran blew up again....

I did run "Find all folders" in exmh before sending my initial email. 
That didn't fix the folder list in exmh.

But, because of your hypothesis about two 'folders' existing, I 
experimented with removing execute permission from /usr/bin/folders,
restarting exmh, and running "Find all folders". The result is the
correct folder list in exmh.

I'd rather not mess with /usr/bin/folders permissions, and am hoping 
that there's an exmh or nmh way to lock 'folders' to /usr/local/bin/folders.
If not, then I can write a shell script that forces my path      
before calling exmh.  After all, what else besides a conditional 
path order could have caused this?                               

Thanks!!!


--
Kevin