1EXIM ACKNOWLEDGEMENTS
2
3This file is divided into two parts.  The first is the original list maintained
4by Exim's author, Philip Hazel, before he retired.  That has two sub-lists of
5contributors.  The second main part is an attempt to bring this up-to-date,
6using information from ChangeLog and git.
7
8Names may well occur more than once.
9
10There was a five year gap.  It is unlikely that this file is complete.
11If you contributed and are not listed, then *please* let us know.  Even if you
12don't much care, we want to acknowledge your help.  A contribution isn't just
13code, it includes reporting real bugs, helping with tracking problems down,
14documentation fixes and more.
15
16(Note that we have patches from folks in various countries and Latin1 is not
17 sufficient to handle all of their names acceptably.
18 This file should be in UTF-8).
19
20-Phil Pennock, pp The Exim Maintainers.
21
22============================8< cut here >8==============================
23
24I have not been very good at keeping a proper record of all the people who have
25sent in patches and other contributions to Exim. I am going to try to do better
26in the future by keeping a record in this file. First, I'll put a list of all
27those I can recover from the past; then I'll create a new list to which I'll
28add new contributors in future. Some regular contributors may appear in both.
29
30I'm going to record people who send in actual patches or who help in detailed
31ways. I'm not going to list people who just make a suggestion or report a
32bug. I hope that is a reasonable approach.
33
34If you should be on one of these lists and are not, please accept my apologies,
35and let me know! Any omissions are solely due to my incompetence. In
36particular, the "past" list has certainly lost the names of people who sent in
37relatively small patches.
38
39Philip Hazel
40
41Lists created: 20 November 2002
42Last updated (by PH):  22 August 2007
43
44THE OLD LIST
45
46Alan Barratt              First code for relay checking
47Malcolm Beattie           Interface to embedded Perl
48Philip Blundell           First support for IPv6
49Piete Brooks              Running the first live version
50                            Implementing multiple-system compilation
51Matthew Byng-Maddick      First code for dsearch lookup
52Steve Campbell            Extensions to eximstats
53                            Steve is now the maintainer of eximstats
54Brian Candler             LDAP support enhancement
55Petr Cech                 PostgreSQL interface
56Steve Clarke              Best way to find the load average in Linux
57Energis Ltd               Resources for the exim.org site
58Yann Golanski             Numerical hash function
59Jason Gunthorpe           IPv6 support (Linux)
60Michael Haardt            LDAP support enhancement
61Steve Haslam              First code for TLS
62Kjetil Torgrim Homme      Suggested patch for macro extensions
63John Horne                Proof-reading documentation (repeatedly)
64Pierre Humblet            Cygwin support
65Paul Kelly                MySQL interface
66                            First code for Oracle interface
67Ian Kirk                  Radius support
68Stuart Levy               Replacement for broken inet_ntoa() on IRIX
69Stuart Lynne              First code for LDAP
70Nigel Metheringham        Setting up the website and mailing list
71                            Managing the website and mailing list
72                            Interface to Berkeley DB
73                            Support for cdb
74                            Support for maildir
75Barry Pederson            LDAP support enhancement
76Marc Prud'hommeaux        SPA client authentication
77Alexander Sabourenkov     pwcheck daemon support
78Peter Savitch             LDAP support enhancement
79Robert Wal                whoson lookup
80Joachim Wieland           Researching strace and stolen subprocesses in Linux
81
82
83THE NEW LIST
84
85Alexander Alekseev        Use of function attribute checks in gcc
86Justo Alonso              Suggested patch for maildir++ maildirsize file support
87Anton Altaparmakov        Patches to get cyrus_sasl fully working
88Simon Arlott              Patch for $dnslist_matched.
89Claus Assmann             Example code for OpenSSL CRL support
90Warren Baker              Experimental Redis lookup.
91Robert Bannocks           Patch for LDAP reference problem on Solaris
92Ian Bell                  Analysis of a bug and an infelicity in clock tick code
93                          Patch for ${quote_local_part
94Peter Benie               A number mistakes found by analysing the code
95Johannes Berg             Suggested patch for authentication client $auth<n> support
96                          Suggested patch for acl_not_smtp_start
97Matt Bernstein            LMTP over socket
98                          Suggested patch for dnslists '&' feature
99Mike Bethune              Help with debugging an elusive ALRM signal bug
100Ard Biesheuvel            Lookup code for accessing an Interbase database
101Richard Birkett           Fix for empty -f address crash
102Dean Brooks               Fix for ratelimit per_rcpt in acl_not_smtp.
103Nick Burrett              Patch for CONFIGURE_FILE_USE_EUID in exicyclog
104Matthew Byng-Maddick      Patch for qualify_domain in redirect router
105                          Patch for ignore_target_hosts in ipliteral router
106                          The cyrus_sasl authenticator
107Steve Campbell            eximstats extensions and continued maintenance
108Brian Candler             Use h_errno for gethostbyname()
109                          Suggested patch for .ifdef etc
110                          Several minor fixes and suggestions
111Pete Carah                Patch for change to radiusclient API
112Oliver Cook               Suggested patch for exigrep & rejected messages
113                            Patch to add sender/host info to local_scan() rejects
114                            Suggested patch to add queue time to "Completed"
115Ted Cooper                Suggested patch for NOTQUIT ACL
116Jennifer Corley           Designing the new Exim logo
117John Dalbec               Patch for quota_warn_threshold bug
118Vivek Dasmohapatra        Suggested patch for CRL support
119Dennis Davis              Suggested server_condition for all authenticators
120Andrew Doran              Patch for NetBSD configuration files
121                          Patch for ifreq alignment and size problems
122Michael Deutschmann       Suggested patch for treating bind() failure like connect()
123                          Patch for $sender_data and $recipient_data
124                          Suggested patch for null address match lookup bug
125                          Suggested patch for verify = not_blind
126                          Patch for alternate TXT lookup in DNS lists
127Oliver Eikemeier          Patch to skip Received: if expansion is empty
128                          Patch for "eqi"
129Nico Erfurth              Fix for bug in ${readfile}
130                            Patch for router_home_directory
131                            Patch for ACL crash (try to test sender after ETRN)
132                            Suggested patch for lookup search bug
133                            Suggested patch for advertise_condition
134                            Patch for missing HELO in checkaccess
135                            Patch for raw headers
136                            Patch for lsearch lookups tidying
137                            Patch for .include_if_exists
138                            Patch for partial- not recognized in host list
139                            Lots more patches for bug fixes, enhancements, and
140                              code refactorings - too many to record details!
141Jochen Erwied             Fix for BDB 4.1 API
142Stefan Esser              Fix for DNS RR parsing bug
143Peter Evans               Suggested using modification time of "new" for time
144                            of "mailbox last read" for maildir
145Andrew Findlay            Patch to close writing end of ${readsocket
146Michael Fischer
147  v. Mollard              Suggested patch for exigrep -t option
148Kevin Fleming             Callout cache code
149                            Patch for authenticated_sender
150Tony Finch                Expansion extensions
151                            Timezone addition to log timestamps
152                            A number of useful code criticisms
153                            Timezone patch for exiwhat
154                            Patch for more daemon exiwhat information
155                            Patch for -dd
156                            Patch for mxh lookup type in dnsdb
157                            Patch for defer_foo in dndsb
158                            Patch for ${dlfunc
159                            Patch for $message_linecount
160                            ... and many more
161Graeme Fowler             Suggested patch for /noupdate with ratelimit
162Ian Freislich             Patch for spamd timeout problem
163Giuliano Gavazzi          Patches for OSX compilation
164Dominic Germain           Patch for exiqgrep MacOS X bug
165Oliver Gorwits            $load_average patch
166                          Patch for additional syslog facilities
167James Grinter             Suggested patches for header manipulation functions
168                            and recipient remove for local_scan() use
169Lukasz Grochal            Patch for saslauthd buglet
170Pavel Gulchouck           Diagnosis of return_path_on_delivery crash
171Michael Haardt            Tidies to make the code stricter
172                          Refactoring to allow for other filter types
173                          Suggested patch for appendfile "folder" extension
174                          Module to support Sieve (RFC 3028) filters and
175                            continued maintenance of same
176                          Patch for faster sort algorithm in queue.c
177                          Patch for LDAP timeout handling
178                            ... and several more
179Thomas Hager              Patch for saslauthd crash bug
180Richard Hall              Fix for file descriptor leak in redirection
181                          Fix for exiqsumm output corner case
182Jori Hamalainen           Patch to add features to exiqsumm
183                          Patch to speed up exigrep
184Steve Haslam              Lots of stuff, including
185                            HMAC computations
186                            Better error messages for BDB
187Sheldon Hearn             Suggested patch for smtp_accept_max_nonmail_hosts
188                          Fix for compile error with OpenSSL 0.9.8e
189Bryan Henderson           Patch to use RM_COMMAND everywhere during building
190Jakob Hirsch              Patch for % operator
191                          Patch for arbitrarily named ACL variables
192Magnus Holmgren           Patch for filter_prepend_home
193                          Patch for "h" flag in Domain Keys
194                          Patch for $sending_ip_address/$sending_port
195                          Patch for ${rfc2047d:
196                            ... and several more
197                          Lots of other maintenance support
198Kjetil Torgrim Homme      Patch for require_files problem on NFS file systems
199Tom Hughes                Suggested patch for $n bug in pipe command from filter
200Pierre Humblet            Continued Cygwin support
201Peter Ilieve              Suggested patch for lookup search bug
202John Jetmore              Writing and maintaining the 'exipick' utility
203                          Much helpful testing of the test suite & elsewhere
204                          Patch for -Mset
205                          Patch for TLS testing with -bh/-bhc/-bs
206                          Patch for exigrep -v functionality
207Bob Johannessen           Patch for Sieve envelope tests bug
208                          Patch for negative uid/gid bug
209Brad Jorsch               Patch for bitwise logical operators
210                          Patch for using "message" on acceptance
211                          Patch to add == and =& to dnslists
212Christian Kellner         Patch for LDAP dereferencing
213Alex Kiernan              Patches for libradius
214                          Diagnosis of milliwait clock-backwards bug
215                          Patch for BDB 4.3 API change
216Tom Kistner               SPA server code
217                          Writing and maintaining the content scanning
218                            extension (exiscan)
219Jürgen Kreileder          Fix for cyrus_sasl advertisement problem
220Friso Kuipers             Patch for GDBM problem
221Matthias Lederhofer       Diagnosing and patching obscure and subtle socket bug
222Chris Liddiard            Fix for bug in exiqsumm
223Chris Lightfoot           Patch for -restore-times in exim_lock
224Edgar Lovecraft           Patch for ${str2b64:
225Torsten Luettgert         Suggested patch for proper integer overflow detection
226Todd Lyons                Patch to add DMARC support using OpenDMARC libs/tools
227David Madole              Patch for SPA forced expansion failure bug
228Lars Mainka               Patch for OpenSSL crl collections
229Andrey Malyshev           Patch for $address_data after redirection bug
230Lionel Elie Mamane        Patch for IPv4/IPv6 listen() problem on USAGI Linux
231                          Patch for recognizing IPv6 "scoped addresses"
232                          Patch for callout caching bug
233Everton da Silva Marques  Suggested patch for SRV handling
234                          Suggested patch for SRV/MX lookup retry option
235Nikos Mavrogiannopoulos   GnuTLS proof of concept code
236                          Update to RSA and D-H parameter caching code
237Komar Maxim               Patch for check_rfc2047_length
238Andy Mell                 Fix for rejectlog regeneration bug
239Marc Merlin               Many suggestions and patches for callouts and
240                            SMTP error message features
241Andreas Metzler           Patch for message_id_header_domain
242                          Suggested patch for multi-config files in scripts bug
243                          GnuTLS non-existent parameter file bug fix
244Alex Miller               Suggested readline() patch
245                          Patch for LDAP_RES_SEARCH_REFERENCE handling
246                          Support for the DrWeb content scanner
247Arkadiusz Miskiewicz      Patch to add timeout to reads in malware.c
248Martin Mrazik             Patches for problems in the test suite
249Andreas Mueller           Patch for logging uncompleted SMTP transactions
250Pete Naylor               Patch for LDAP TCP connect timeout setting
251Alexander Newmann         Diagnosing and patching obscure and subtle socket bug
252Matthew Newton            Patch for exicyclog log location problem
253Marcin Owsiany            Diagnosis of a tricky timeout failure bug
254Andrey Panin              Dovecot authenticator
255Eric Parusel              Patch for tls_remember_esmtp
256Gaige Paulsen             Amended Darwin config files
257Richard Premdas           Patch for PAM buglet
258Jason Pyeron              Suggested patch for ignoring Sendmail's -O option
259Axel Rau                  Patch for Transport Post Delivery sql logging
260Mark Rigby-Jones          Patch for race condition during MBX locking
261Robert Roselius           Patch for OpenSSL workaround for bad clients
262Larry Rosenman            OpenUNIX config files
263Alexander Sabourenkov     Patch to add saslauthd daemon support
264                          Patch for MySQL non-data queries
265David Saez                Suggested patch for $sender_hostname lookup if needed
266                          Support for the clamd virus scanner
267                          Suggested patch for increased number of ACL variables
268Jonathan Sambrook         Suggested patch for expanding uid and gid lists
269Peter Savitch             Diagnosis of FPE bug when statvfs() fails on spool
270Harald Schueler           Patch for dn_expand() failure on truncated data
271Heiko Schlichting         Diagnosis of intermittent daemon crash bug
272Heiko Schlitterman        Proposed patch for +pid
273Stephan Schulz            Patch for $host_data caching error
274Lai Zit Seng              Patch for radiusclient 0.4.9 interface bugs
275Tony Sheen                Log files with datestamped names and auto rollover
276Martin Sluka              Patch for exigrep to include non-message lines
277Adam Stephens             Suggested patch for IGNOREQUOTA in LMTP
278Russell Stuart            Diagnosis of obscure batch multiple delivery bug
279Tamas Tevesz              Patch for crypt16() support
280Johan Thelmen             Support for the F-Secure virus scanner
281William Thompson          Suggested patch for acl_smtp_helo
282                          Suggested patch for nested ACL "drop" bug
283                          Suggested patch for continuation lines in file ACLs
284                          Patch for != support in DNS lists
285Adam Thornton             Patch for SMTP port expansion
286Daniel Tiefnig            Much helpful testing of the test suite
287Rein Tollevik             Patch to fix search cache missing tidyup
288Stefan Traby              Threaded Perl support
289Samuli Tuomola            OS files for QNX 6.2.0
290Dave Turner               Suggested patch for sender rewriting brokenness
291Steve Usher               Unbuffered I/O patch for Dovecot authentication
292Carlos Villegas           Suggested patch for "headers" in filter files
293Matthias Waffenschmidt    Patch for build-time Perl bug in configure script
294                          Queue run abandon log message tidy up
295Norihisa Washitake        Suggested patch for RFC 2047 header decoding
296Chris Webb                Patch for support of an SPF lookup method.
297Florian Weimer            Patch for minor format string issue
298                          Noticing the unwanted (and time-wasting) GnuTLS
299                            RSA_EXPORT code, and supplying a patch to remove it
300Joachim Wieland           Patches for PostgreSQL socket support and other
301                            PostgreSQL functionality
302                          Patch for hosts_avoid_esmtp
303Stephen Wilcox            Patch for ignore_enotdir problem
304Alain Williams            Suggested patch for exicyclog options
305                          PATCH for LDAP referrals option
306David Woodhouse           SQLite support proof of concept code
307                          control=freeze/no_tell basic code
308Erik ?                    patch to use select() instead of poll() on OS X
309****
310
311============================8< cut here >8==============================
312
313The Exim Maintainers Lists
314==========================
315
316We'll start with the Exim Maintainers, who are the people with commit
317access to the master git repository and a couple more folk; then we'll list
318known contributors since the lists above.  Then we list the folks who work
319to make Exim available on various operating systems as porters/packagers.
320
321For the Maintainers, we may list primary focus area.  All maintainers
322will have contributed to work outside those areas.  The maintainers'
323contributions are initialled in ChangeLog.  Changes from before maintainership
324should be listed as a contributor.
325
326For other contributors, we will attempt to track all contributions.  Note that
327the entries per-person were added initially by scanning back through the
328ChangeLog and git, so are not in chronological order.
329
330[ With names from all over the world, we need one sort order.  I've arbitrarily
331  decreed it to be "normal British address-book sort order, but based on family
332  name rather than whichever comes last and using whatever seems sanest for
333  sort order of characters which do not collate onto an English character",
334  which should handle the majority of cases.  If it is not adequate for some
335  situation, we'll resolve it then.
336  We leave out titles and honourifics, just names and handles. ]
337
338
339Maintainers
340-----------
341Steve Campbell            eximstats maintainer.
342Mike Cardwell             Exim webmaster.
343Tony Finch                Unbreaks lots of things. Ratelimit code.
344Graeme Fowler
345Michael Haardt            Maintains Sieve support, works on DKIM.
346Jeremy Harris
347Philip Hazel              Retired.
348                          Originating architect and author of the Exim project.
349John Jetmore
350Tom Kistner               DKIM. Content scanning. SPA.
351Todd Lyons
352Nigel Metheringham        Transitioning out of Default Victim status.
353Phil Pennock              Mostly idle; some security bits still.
354David Woodhouse           Dynamic modules. Security.
355
356
357Contributors
358------------
359Andrew Aitchison          Spotted cmdline AV scanner regression with -bmalware
360Simon Arlott              Code for outbound SSL-on-connect
361                          Patch implementing %M datestamping in log filenames
362                          Patch restoring SIGPIPE handler for child_open_uid
363                          Patch fixing NUL term/init of DKIM strings
364                          Patch fixing dnsdb TXT record handling for DKIM
365                          Patch speeding up DomainKeys signing
366Warren Baker              Found crash with MIME ACLs in non-SMTP local injection
367Dmitry Banschikov         Path to check for LDAP TLS initialisation errors
368René Berber               Pointed out mistake in build instructions for QNX
369Johannes Berg             Maintained dynamically loadable module code out-of-tree
370                          Patch expanding spamd_address if contains $
371Jasen Betts               Spotted lack of docs re bool{} on empty string
372                            and typo fixes
373Wolfgang Breyha           DCC integration; expandable spamd_address
374                          Patch handling IPv6 addresses for SPF
375                          Patch fixing DKIM verification when signature header
376                            not prepended
377                          Unbroke Cyrus SASL auth after incorrect SSF addition
378                          Logging of 8bitmime reception
379David Brownlee            Patch improving local interface IP address detection
380Eugene Bujak              Security patch fixing buffer overflow in string_format
381Adam Ciarcinski           Patch for TLS-enabled LDAP (alternative to ldaps)
382Dennis Davis              Patches fixing compilation in older compilers
383                          Reported dynlookup framework build issues on Solaris
384Serge Demonchaux          Maintained dynamically loadable module code out-of-tree
385                          Patch fixing sign/unsigned and UTF mismatches
386Uwe Doering               Patch fixing DKIM multiple signature generation
387Maxim Dounin              Patch portability of accept() len
388Frank Elsner              Fixed build reliability by exporting LC_ALL=C
389Paul Fisher               Diagnosed smtp_cmd_buffer_size affecting GSSAPI SASL
390                            initial response, raised buffer size
391                          Patch adjusting connection_max_messages wait-DB usage
392Oliver Fleischmann        Patches fixing compilation in older compilers
393Julian Gilbey             Helped improve userforward local_part_suffix docs
394Richard Godbee            Patch fixing usage fprintf
395Steve Haslam              Maintained dynamically loadable module code out-of-tree
396Oliver Heesakkers         Debugged dynamic lookup build issues for LOOKUP_foo.
397Dmitry Isaikin            Spotted short writes to local files
398                          Patch for format string regression
399Alun Jones                Patch for NULL dereference in localhost_number
400Brad Jorsch               Patches fixing Resent-*: header handling
401John Hall                 Updated PCRE to 7.4 (when in-tree)
402Jeremy Harris             Patch to log authentication information in reject log
403                          Reported a ${extract error message typo
404Jakob Hirsch              Patch implementing freeze_signal on pipe transports
405                          Suggested X-Envelope-Sender: for content-scanning
406                          Patch fixing Base64 decode bugs
407John Horne                Patch adding $av_failed
408                          Patch escaping log text after lookup expansion defer
409                          Documentation fixes
410                          Pointed out ClamAV ExtendedDetectionInfo compat issue
411Regid Ichira              Documentation fixes
412Andreas M. Kirchwitz      Let /dev/null have normal permissions (4.73 fallout)
413J. Nick Koston            Patch adding force_command pipe transport option
414Roberto Lima              Patch letting exicyclog rotate paniclog
415Todd Lyons                Patch handling TAB in MAIL arguments
416Christof Meerwald         Provided insight & suggested patch for GnuTLS update
417Andreas Metzler           Patch upgrading PolarSSL (DKIM)
418                          Reported delivery logging problems (4.73 fallout)
419                          Patch to build without WITH_CONTENT_SCAN
420                          Patches fixing docs for max_rcpts, relay hosts/domains
421                          Documentation fixes
422Kirill Miazine            Multiple patches improving Dovecot authenticator
423Robert Millan             Wrote SPF Best Guess support
424Marcin Mirosław           Running static analysis tools for us, catching issues
425Dirk Mueller              Patch extending use of our printf() compiler checking
426Andrey Oktyabrski         Patch fixing wide character breakage in rfc2047 coding
427                          Patch keeping SQL errors from being returned over SMTP
428Phil Pennock              Patch adding gnutls_compat_mode
429                          Patches adding bool{} and later bool_lax{}
430                          Patch for TLS library version reporting build/runtime
431                          Patch letting EXPN work under TLS
432                          More patches built up & applied when became maintainer
433Mark Daniel Reidel        Patch adding f-protd malware scanner support
434Steven A Reisman          Pointed out ${eval:x % 0} SIGFPE
435Todd Rinaldo              Patch fixing transport filter timeout
436Dan Rosenberg             Security notification & patch for hardlink attack on
437                            sticky mail directory
438                          Security notification of race condition in MBX locking
439Jay Rouman                Kept our copyright claim in the 21st century, not 11th
440                          Drew attention to SSL docs and epoch issue on 32bit
441Heiko Schlittermann       Patch making maildir_use_size_file expand
442                          Patch fixing maildir quota file races
443                          Patch fixing make parallelisation
444                          Updates to eximstats, exiwhat
445Janne Snabb               TLS extensive debugging & failure root cause analysis
446                          Added SPF record type support to dnsdb lookup
447Jan Srzednicki            Patch improving Dovecot authenticator
448                          Reported crash in Dovecot authenticator
449Samuel Thibault           Patch fixing IPv6 interface address detection on Hurd
450Martin Tscholak           Reported issue with TLS anonymous ciphersuites
451Stephen Usher             Patch fixing use of Oracle's LDAP libraries on Solaris
452Jasper Wallace            Patch for LibreSSL compatibility
453Holger Weiß               Patch leting ${run} return more data than OS pipe
454                            buffer size
455Moritz Wilhelmy           Pointed out PCRE_PRERELEASE glitch
456Alain Williams            Patch supporting MySQL stored procedures
457Mark Zealey               Patch updating $message_linecount for maildir_tag
458                          Patch improving spamd server selection
459                          Patch to allow multiple TCP clamd servers
460
461
462Packagers
463---------
464Mark Baker                Debian, through Exim 3
465Hilko Bengen              Debian, Exim 4, current(*) maintenance
466Tim Cutts                 Debian, initial packaging
467Marc Haber                Debian, Exim 4, current(*) maintenance
468Steve Haslam              Debian, Exim 4
469Andreas Metzler           Debian, current(*) maintenance
470Christian Perrier         Debian, current(*) maintenance
471
472(*) Current as of our last information as of release: Exim 4.82
473
474
475# vim: set fileencoding=utf-8 expandtab :
476