This is the mail archive of the cygwin-apps@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]

Re: Exim


Pierre A. Humblet wrote:

I'd like to propose including exim, a Mail Transfer Agent
similar to sendmail, in setup.

Cool!

The Cygwin port has been available for several months and seems
to perform well. However there are several packaging decisions to make. Feedback from this list would be helpful.

1) MTAs normally require a DNS resolver, such as bind. Instead
I have written a library, minires, which is of general interest. Thus there are 3 options:
a) Include minires in the exim port (as a separate dll, or as static code ?)
b) Offer it as a separate package (is it helpful to have both a dll and a static lib ?)
c) Include it in the Cygwin dll (single C file, about 800 lines of code and 18 exported functions) Which is best?

Probably should be in the dll, that way other applications can make use of it without having to link to external libraries. Having a resolver is fairly important, especially if more server-type apps are to be used on Cygwin. I'm sure others might disagree because they are worried about the size of the dll... Frankly, IMHO, it's worth the bloat.
Also, Bind9 [8 is hopelessly flawed] may eventually work on Cygwin, it's just a matter of squaring the socket code away and a few other sticking points. IIRC, Bind9 should detect the current resolving capabilities of the c library (or the dll in this case) and subsequently won't duplicate existing library functions. [Feel free to correct me if I'm wrong.]

2) The source will need to include the system header files resolv.h and arpa/nameser.h, which are nor part of Cygwin. Is it OK to place them directly under /usr/include?
I am not sure how to handle the copyrights issue. Can I simply
take them off the web (say from the bind package) and delete
the parts that are unnecessary?
If you include the code in the dll, you'll undoubtly want to have these headers in the dll distribution. I believe borrowing source from the *bsd's is ok [as it has been done on the newlib list]. I'll let someone else comment on the ISC/Bind licensing matter.

[SNIP]

3) Exim comes with a number of features that require extra packages:
a) SSL/TLS (works fine)
b) Perl (works for Gerrit Haase on NT, crashes for me on Win98) c) SQL (untried)

Should all these options be included in the precompiled code (thus requiring more package downloads)?
All they seem to require is perl (which is installed on most systems), postgres, and openssl. I don't see these as being that much of a burden to download... Most people will want to have perl and openssl installed anyhow. However, postgres is a potential problem because it has a dependancy on an external package, cygipc. Hopefully, this will be resolved when cygserver goes gold.

4) Similarly exim can support various mailbox formats (e.g. maildir) and authenticators. I have not tested them, having no use for them. Are there strong opinions about including untested and somewhat obscure
features?

Please support mbox format is all that I ask.

If this is successful, I look forward to seeing that qpopper port you're working on included at some point =).

Cheers,
Nicholas


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