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