Merge branch 'master' of ssh://git.exim.org/home/git/exim
[exim.git] / src / ACKNOWLEDGMENTS
1 EXIM ACKNOWLEDGEMENTS
2
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.
7
8 Names may well occur more than once.
9
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.
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
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.
29
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.
33
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.
38
39 Philip Hazel
40
41 Lists created: 20 November 2002
42 Last updated (by PH):  22 August 2007
43
44 THE OLD LIST
45
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
73                             Support for cdb
74                             Support for maildir
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
81
82
83 THE NEW LIST
84
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
128                           Patch for "eqi"
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
146 Michael Fischer
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
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
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
178                             ... and several more
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
184                             HMAC computations
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:
195                             ... and several more
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
203                           Patch for -Mset
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
217                             extension (exiscan)
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
308 ****
309
310 ============================8< cut here >8==============================
311
312 The Exim Maintainers Lists
313 ==========================
314
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.
319
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.
324
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.
328
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. ]
336
337
338 Maintainers
339 -----------
340 Steve Campbell            eximstats maintainer.
341 Mike Cardwell             Exim webmaster.
342 Tony Finch                Unbreaks lots of things. Ratelimit code.
343 Graeme Fowler
344 Michael Haardt            Maintains Sieve support, works on DKIM.
345 Jeremy Harris
346 Philip Hazel              Retired.
347                           Originating architect and author of the Exim project.
348 John Jetmore
349 Tom Kistner               DKIM. Content scanning. SPA.
350 Todd Lyons
351 Nigel Metheringham        Transitioning out of Default Victim status.
352 Phil Pennock              Release Coordinator. Breaks lots of things.
353 David Woodhouse           Dynamic modules. Security.
354
355
356 Contributors
357 ------------
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 
371                             and typo fixes
372 Wolfgang Breyha           DCC integration; expandable spamd_address
373                           Patch handling IPv6 addresses for SPF
374                           Patch fixing DKIM verification when signature header
375                             not prepended
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
408                           Documentation fixes
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
420                           Documentation fixes
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
452                             buffer size
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
457
458
459 Packagers
460 ---------
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
468
469 (*) Current as of our last information as of release: Exim 4.82
470
471
472 # vim: set fileencoding=utf-8 expandtab :