Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Date: Sat, 24 May 2003 07:53:23 -0400 From: Peter Davis To: cygwin AT cygwin DOT com Subject: Re: Cygwin, mutt, Windows XP issues Message-ID: <20030524115323.GA4424@bitstream.com> References: <20030523200230 DOT GH13880 AT bitstream DOT com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4i On Fri, May 23, 2003 at 04:39:01PM -0400, Igor Pechtchanski wrote: > On Fri, 23 May 2003, Peter Davis wrote: > > > Hi, Igor, > > > > Still wrestling with these issues ... > > > > On Tue, May 20, 2003 at 01:23:22PM -0400, Igor Pechtchanski wrote: > > > On Tue, 20 May 2003, Peter Davis wrote: > > > > > > > I'm using mutt 1.4i under Cygwin on Windows XP. My apologies for > > > > cross-posting, but I'm really not sure if the problems I'm having are > > > > mutt issues or Cygwin issues. (Probably XP issues, but there's not > > > > much help for that.) > > > > > > > > I'm running XP on two different systems. One (home) was formerly NT4, > > > > and one (work) was formerly Win2000. In upgrading to both of these > > > > systems, some new problems with mutt were introduced. Specifically: > > > > > > > > 1) Mutt no longer can tell which mailboxes contain new mail. Once I > > > > open the mailbox, the new messages are correctly marked, but when > > > > I'm looking for a mailbox with unread messages, mutt doesn't detect > > > > any. This used to work correctly under NT4, but *not* under > > > > Win2000. It may have to do with changes in how Windows handles > > > > file protections, but I've tried to un-protect these files in every > > > > imaginable way, and still can't get this to work. > > > > > > > > I've looked at the mutt code somewhat, and it appears that mutt is > > > > checking the timestamp on the .mh_sequences file to detect > > > > mailboxes with new messages, but actually reading the .mh_sequences > > > > file to mark the new messages. So it seems as if mutt is able to > > > > read the file, but not to get the correct timestamp. That seems > > > > very weird to me. > > > > > > Peter, > > > > > > This one is most likely an XP protection issue. IIRC, the timestamp is > > > not stored in the file itself, but in a directory containing that file. > > > Therefore, you'll need to allow the same read access to the directory > > > containing the .mh_sequences file that you allow for the file itself. > > > > I have set the entire tree, folders and files, to essentially > > unlimited access to the owner, at least as far as I can tell. Yet > > mutt is *still* not picking up on the folders containing new mail. > > I've started using a second bash shell window in which I run: > > > > find ~/Mail -name .mh_sequences -a -exec egrep -li "unseen" {} \; > > > > but that's really a pain. Mutt could work so nicely if I can solve > > this. > > Peter, > > Are you sure the owner is who you think it is? Do you have 'ntsec' on? > Are your /etc/passwd and /etc/group files up to date (if you've upgraded > your systems, most likely the user SIDs changed, so you'll need to update > the passwd and group files)? Igor, On my home system, the owner is the same as `whoami`, pdavis. However, the group for these files shows up as 513, but I recently changed /etc/passwd to give myself the group 544 (Administrators). That was an attempt to fix this problem, though. It didn't work even when my group was 513. > Did you try "touch"ing the .mh_sequences files yourself? Does mutt pick > up that change? Did you try giving "touch" the -d or -r parameters? I didn't try -d or -r, but touch by itself didn't work, and after doing a mail fetch, the modification times on these files look correct anyway. The timestamp is getting updated by the fetching procedure. > If you are willing to go into mutt's source, why not find a place that > checks the timestamp and write a small test case that uses the exact same > sequence. You could then run it in a loop and see whether it detects that > the file is touched... I've done some looking at mutt sources, but not enough to be totally confident of what's happening where. I *think* the timestamp check is where the problem is, but I'm not 100% certain. As I mentioned, I'd like to actually step through the code to see where it's checking, but I need to figure out how to build a debug version of mutt, and now to debug a curses application. > Unfortunately, other than that, I'm fresh out of ideas. > > > > > 2) I have some Perl scripts I run from mutt. One of them parses a > > > > piped in email message and records some information from the > > > > message header. This works fine if I am viewing the message in > > > > mutt's pager, and pipe it to the script. But if I tag some > > > > messages in mutt's index, and try to pipe them all (I do have > > > > pipe_split set to "yes"), I get "File not found" errors on the Perl > > > > script. This used to work on both NT and Win2000. > > > > > > Can you insert some debugging print statements into the Perl scripts > > > themselves, and see *exactly* which files they try to open (including > > > whitespace and special characters)? This may be the line ending issue all > > > over again... Or, it could be a shell quoting issue (if mutt passes > > > backslashes through a shell without properly escaping them) > > > > It's the Perl scripts themselves that don't get found. Mutt seems to > > be using different code to pipe messages to these files, and one of > > them's not working. I'm stumped. > > Again, I would check the permissions on the scripts first (executable for > whatever user mutt is running under). Other than that, I don't really > know much about mutt (I myself don't use it). Unfortunately, I've gotten no responses from the mutt user's group on what's being checked there. I hate to bother the mutt developer's group with what are essentially user issues, but maybe someone there at least knows what is being checked, so I can concentrate on that. > > > > I'm willing to try debugging mutt, but I'm not sure what's a > > > > reasonable way to debug a curses-based application in a Cygwin > > > > environment. I'm open to any suggestions here. > > > > > > > > Any clues on any of this? > > > > > > Hope the above helps, > > > > Thanks, Igor. This was helpful, but I haven't solved these problems > > yet. Any debugging tips? I've been able to build mutt 1.5.4, but I > > don't know how to build a debug version, and, unlike 1.4i, it crashes > > on some messages. > > See suggestion above (write a short test case that uses the same code, and > keep adding code from mutt to it until it stops working). I doubt the > part of mutt that checks the mailbox timestamps has anything to do with > curses. No, I know the timestamps have nothing to do with curses, I'm just wondering if I can debug in the same window where curses is repainting the screen, etc. Thanks for all you help. I'm sure it's a protection issue, and I just don't understand enough about the Windows scheme. I read the ntsec section of the Cygwin User's Guide, but I still don't have a clear picture of how all this works (or is supposed to work). I guess I'll keep digging around for information on that. Thanks! -pd -- -------- Peter Davis Pageflex Inc 617-520-8345 215 First Street 617-868-0784 (FAX) Cambridge, MA 02142 pdavis AT pageflexinc DOT com http://www.pageflexinc.com -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/