This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Cygwin procmail patch (was Re: procmail locking problem warning)


Philip,

On Fri, Mar 29, 2002 at 02:08:07PM -0600, Philip Guenther wrote:
> Greg Matheson <lang@ms.chinmin.edu.tw> writes:
> >My WAG is that procmail's autoconf is having problems with missing
> >".exe" strings in executable names during mv operations:
> >
> > [snip]
> 
> So, "make _autotst" actually creates the file _autotst.exe?  If so, the
> solution is to add a variable containing the executable file extension and
> scatter it throughout the Makefiles and the initmake and autoconf script.

See attached for a patch that solves the above and a few other Cygwin
issues.  Besides handling the ".exe" executable file extension issue,
this patch also handles the following:

    o Make the install target .PHONY so that make install works even
      if a file called "install" (or "INSTALL" under Cygwin) exists.
      Note that Cygwin (i.e., Windows) has a case-insensitive
      filesystem.
    o Add autoconf check for Cygwin to #define NO_COMSAT because Cygwin
      does not currently support endprotoent() and endservent().
    o Add __CYGWIN__ conditional compilation guard to an autoconf test
      to prevent PATH from being set such that the Cygwin DLL cannot
      found.
    o Add autoconf check for Cygwin's default "sendmail" -- ssmtp.

I tried this patch under Red Hat Linux 7.1 without any ill effects.
Would you be willing to accept this patch into procmail CVS?

With this patch Cygwin procmail can be built and installed as follows:

    $ make EXE=.exe LOCKINGTEST=100
    $ make EXE=.exe install

I would have liked to make the specification of EXE unnecessary but
I don't know how to do this in a make independent way.  Does procmail
support other makes?  Or, only GNU make?  If only GNU make, then I can
provide a patch to make the specification of EXE unnecessary.

Unfortunately even with this patch and many hours of head-banging, I
was not able to get autoconf to sense that Cygwin supports fcntl().
Hence, the hardwiring with "LOCKINGTEST=100" on the make command line.

I even adding the following to autoconf in the "right" spot:

    mkdir /tmp/autoconf.$$
    cp _autotst.c ../autoconf.h ../config.h _locktst.h /tmp/autoconf.$$

to catch the relevant autoconf test in the attempt to debug this problem.
I finally gave up when I couldn't get this code to run without errors
even under Linux!  It seems like this code only works when run from
autoconf which makes debugging difficult.

> Note that procmail always uses plain newline for line endings, never
> carriage-return newline.  If that's not compatibile with the other
> mail software on your platform, then procmail will not work for you.
> (Procmail doesn't use stdio, so its mapping doesn't come into play.)

The above is not an issue.  I have been using fetchmail/procmail/mutt
under Cygwin for about a year now and I have only had locking problems due
to a bad builds (i.e., procmail fcntl() and mutt dotlocking accidentally
disabled).

Thanks,
Jason

Attachment: procmail.patch
Description: Text document

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]