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