Deleted Added
full compact
README (43730) README (64562)
1# Copyright (c) 1998 Sendmail, Inc. All rights reserved.
1# Copyright (c) 1998-2000 Sendmail, Inc. and its suppliers.
2# All rights reserved.
2# Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved.
3# Copyright (c) 1988
4# The Regents of the University of California. All rights reserved.
5#
6# By using this file, you agree to the terms and conditions set
7# forth in the LICENSE file which can be found at the top level of
8# the sendmail distribution.
9#
10#
3# Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved.
4# Copyright (c) 1988
5# The Regents of the University of California. All rights reserved.
6#
7# By using this file, you agree to the terms and conditions set
8# forth in the LICENSE file which can be found at the top level of
9# the sendmail distribution.
10#
11#
11# @(#)README 8.211 (Berkeley) 2/2/1999
12# $Id: README,v 8.263.2.1.2.19 2000/07/15 17:35:18 gshapiro Exp $
12#
13
14This directory contains the source files for sendmail(TM).
15
16*********************
17!! DO NOT USE MAKE !! in this directory to compile sendmail --
18********************* instead, use the "Build" script located in
13#
14
15This directory contains the source files for sendmail(TM).
16
17*********************
18!! DO NOT USE MAKE !! in this directory to compile sendmail --
19********************* instead, use the "Build" script located in
19the src directory. It will build an appropriate Makefile, and
20the sendmail directory. It will build an appropriate Makefile, and
20create an appropriate obj.* subdirectory so that multiplatform
21support works easily.
22
23 **********************************************************
24 ** Read below for more details on building sendmail. **
25 **********************************************************
26
27**************************************************************************

--- 37 unchanged lines hidden (view full) ---

65 (see below)
66confENVDEF -D flags to specify other environment information
67confINCDIRS -I flags for finding include files during compilation
68confLIBDIRS -L flags for finding libraries during linking
69confLIBS -l flags for selecting libraries during linking
70confLDOPTS other ld(1) linker options
71
72Others can be found by examining Makefile.m4. Please read
21create an appropriate obj.* subdirectory so that multiplatform
22support works easily.
23
24 **********************************************************
25 ** Read below for more details on building sendmail. **
26 **********************************************************
27
28**************************************************************************

--- 37 unchanged lines hidden (view full) ---

66 (see below)
67confENVDEF -D flags to specify other environment information
68confINCDIRS -I flags for finding include files during compilation
69confLIBDIRS -L flags for finding libraries during linking
70confLIBS -l flags for selecting libraries during linking
71confLDOPTS other ld(1) linker options
72
73Others can be found by examining Makefile.m4. Please read
73../BuildTools/README for more information about the site.config.m4
74../devtools/README for more information about the site.config.m4
74file.
75
76You can recompile from scratch using the -c flag with the Build
77command. This removes the existing compilation directory for the
78current platform and builds a new one.
79
80Porting to a new Unix-based system should be a matter of creating
75file.
76
77You can recompile from scratch using the -c flag with the Build
78command. This removes the existing compilation directory for the
79current platform and builds a new one.
80
81Porting to a new Unix-based system should be a matter of creating
81an appropriate configuration file in the BuildTools/OS/ directory.
82an appropriate configuration file in the devtools/OS/ directory.
82
83
84
85+----------------------+
86| DATABASE DEFINITIONS |
87+----------------------+
88
89There are several database formats that can be used for the alias files

--- 8 unchanged lines hidden (view full) ---

98 pre-installed, or the version installed is not version 2.0
99 or greater (e.g., is Berkeley DB 1.85 or 1.86), get the
100 current version from http://www.sleepycat.com/. DO NOT
101 use a version from any of the University of California,
102 Berkeley "Net" or other distributions. If you are still
103 running BSD/386 1.x, you will need to upgrade the included
104 Berkeley DB library to a current version. NEWDB is included
105 automatically if the Build script can find a library named
83
84
85
86+----------------------+
87| DATABASE DEFINITIONS |
88+----------------------+
89
90There are several database formats that can be used for the alias files

--- 8 unchanged lines hidden (view full) ---

99 pre-installed, or the version installed is not version 2.0
100 or greater (e.g., is Berkeley DB 1.85 or 1.86), get the
101 current version from http://www.sleepycat.com/. DO NOT
102 use a version from any of the University of California,
103 Berkeley "Net" or other distributions. If you are still
104 running BSD/386 1.x, you will need to upgrade the included
105 Berkeley DB library to a current version. NEWDB is included
106 automatically if the Build script can find a library named
106 libdb.a.
107 libdb.a or libdb.so.
107NDBM The older NDBM implementation -- the very old V7 DBM
108 implementation is no longer supported.
109NIS Network Information Services. To use this you must have
110 NIS support on your system.
111NISPLUS NIS+ (the revised NIS released with Solaris 2). You must
112 have NIS+ support on your system to use this flag.
113HESIOD Support for Hesiod (from the DEC/Athena distribution). You
114 must already have Hesiod support on your system for this to
115 work. You may be able to get this to work with the MIT/Athena
116 version of Hesiod, but that's likely to be a lot of work.
108NDBM The older NDBM implementation -- the very old V7 DBM
109 implementation is no longer supported.
110NIS Network Information Services. To use this you must have
111 NIS support on your system.
112NISPLUS NIS+ (the revised NIS released with Solaris 2). You must
113 have NIS+ support on your system to use this flag.
114HESIOD Support for Hesiod (from the DEC/Athena distribution). You
115 must already have Hesiod support on your system for this to
116 work. You may be able to get this to work with the MIT/Athena
117 version of Hesiod, but that's likely to be a lot of work.
117LDAPMAP Lightweight Directory Lookup Protocol support. You will
118 have to install the UMich or OpenLDAP ldap and lber
119 libraries to use this flag.
118LDAPMAP Lightweight Directory Access Protocol support. You will
119 have to install the UMich or OpenLDAP
120 (http://www.openldap.org/) ldap and lber libraries to use
121 this flag.
120MAP_REGEX Regular Expression support. You will need to use an
121 operating system which comes with the POSIX regex()
122 routines or install a regexp library such as libregex from
123 the Free Software Foundation.
122MAP_REGEX Regular Expression support. You will need to use an
123 operating system which comes with the POSIX regex()
124 routines or install a regexp library such as libregex from
125 the Free Software Foundation.
126PH_MAP PH map support. You will need the qi PH package.
127MAP_NSD nsd map support (IRIX 6.5 and later).
124
125>>> NOTE WELL for NEWDB support: If you want to get ndbm support, for
126>>> Berkeley DB versions under 2.0, it is CRITICAL that you remove
127>>> ndbm.o from libdb.a before you install it and DO NOT install ndbm.h;
128>>> for Berkeley DB versions 2.0 through 2.3.14, remove dbm.o from libdb.a
129>>> before you install it. If you don't delete these, there is absolutely
130>>> no point to including -DNDBM, since it will just get you another
131>>> (inferior) API to the same format database. These files OVERRIDE

--- 45 unchanged lines hidden (view full) ---

177+---------------+
178| COMPILE FLAGS |
179+---------------+
180
181Wherever possible, I try to make sendmail pull in the correct
182compilation options needed to compile on various environments based on
183automatically defined symbols. Some machines don't seem to have useful
184symbols available, requiring that a compilation flag be defined in
128
129>>> NOTE WELL for NEWDB support: If you want to get ndbm support, for
130>>> Berkeley DB versions under 2.0, it is CRITICAL that you remove
131>>> ndbm.o from libdb.a before you install it and DO NOT install ndbm.h;
132>>> for Berkeley DB versions 2.0 through 2.3.14, remove dbm.o from libdb.a
133>>> before you install it. If you don't delete these, there is absolutely
134>>> no point to including -DNDBM, since it will just get you another
135>>> (inferior) API to the same format database. These files OVERRIDE

--- 45 unchanged lines hidden (view full) ---

181+---------------+
182| COMPILE FLAGS |
183+---------------+
184
185Wherever possible, I try to make sendmail pull in the correct
186compilation options needed to compile on various environments based on
187automatically defined symbols. Some machines don't seem to have useful
188symbols available, requiring that a compilation flag be defined in
185the Makefile; see the Buildtools/OS subdirectory for the supported
189the Makefile; see the devtools/OS subdirectory for the supported
186architectures.
187
188If you are a system to which sendmail has already been ported you
189should not have to touch the following symbols. But if you are porting,
190you may have to tweak the following compilation flags in conf.h in order
191to get it to compile and link properly:
192
193SYSTEM5 Adjust for System V (not necessarily Release 4).
194SYS5SIGNALS Use System V signal semantics -- the signal handler
195 is automatically dropped when the signal is caught.
196 If this is not set, use POSIX/BSD semantics, where the
197 signal handler stays in force until an exec or an
198 explicit delete. Implied by SYSTEM5.
199SYS5SETPGRP Use System V setpgrp() semantics. Implied by SYSTEM5.
200HASFCHMOD Define this to one if you have the fchmod(2) system call.
201 This improves security.
190architectures.
191
192If you are a system to which sendmail has already been ported you
193should not have to touch the following symbols. But if you are porting,
194you may have to tweak the following compilation flags in conf.h in order
195to get it to compile and link properly:
196
197SYSTEM5 Adjust for System V (not necessarily Release 4).
198SYS5SIGNALS Use System V signal semantics -- the signal handler
199 is automatically dropped when the signal is caught.
200 If this is not set, use POSIX/BSD semantics, where the
201 signal handler stays in force until an exec or an
202 explicit delete. Implied by SYSTEM5.
203SYS5SETPGRP Use System V setpgrp() semantics. Implied by SYSTEM5.
204HASFCHMOD Define this to one if you have the fchmod(2) system call.
205 This improves security.
206HASFCHOWN Define this to one if you have the fchown(2) system call.
207 This is required for the TrustedUser option.
202HASFLOCK Set this if you prefer to use the flock(2) system call
203 rather than using fcntl-based locking. Fcntl locking
204 has some semantic gotchas, but many vendor systems
205 also interface it to lockd(8) to do NFS-style locking.
206 Unfortunately, may vendors implementations of fcntl locking
207 is just plain broken (e.g., locks are never released,
208 causing your sendmail to deadlock; when the kernel runs
209 out of locks your system crashes). For this reason, I

--- 45 unchanged lines hidden (view full) ---

255HASULIMIT Define this if you have the ulimit(2) syscall (System V
256 style systems). HASSETRLIMIT overrides, as it is more
257 general.
258HASWAITPID Define this if you have the waitpid(2) syscall.
259HASGETDTABLESIZE
260 Define this if you have the getdtablesize(2) syscall.
261HAS_ST_GEN Define this to 1 if your system has the st_gen field in
262 the stat structure (see stat(2)).
208HASFLOCK Set this if you prefer to use the flock(2) system call
209 rather than using fcntl-based locking. Fcntl locking
210 has some semantic gotchas, but many vendor systems
211 also interface it to lockd(8) to do NFS-style locking.
212 Unfortunately, may vendors implementations of fcntl locking
213 is just plain broken (e.g., locks are never released,
214 causing your sendmail to deadlock; when the kernel runs
215 out of locks your system crashes). For this reason, I

--- 45 unchanged lines hidden (view full) ---

261HASULIMIT Define this if you have the ulimit(2) syscall (System V
262 style systems). HASSETRLIMIT overrides, as it is more
263 general.
264HASWAITPID Define this if you have the waitpid(2) syscall.
265HASGETDTABLESIZE
266 Define this if you have the getdtablesize(2) syscall.
267HAS_ST_GEN Define this to 1 if your system has the st_gen field in
268 the stat structure (see stat(2)).
263USESTRERROR Define this if you have the libc strerror function (which
269HASSRANDOMDEV Define this if your system has the srandomdev(3) function
270 call.
271HASURANDOMDEV Define this if your system has /dev/urandom(4).
272HASSTRERROR Define this if you have the libc strerror(3) function (which
264 should be declared in <errno.h>), and it should be used
265 instead of sys_errlist.
266NEEDGETOPT Define this if you need a reimplementation of getopt(3).
267 On some systems, getopt does very odd things if called
268 to scan the arguments twice. This flag will ask sendmail
269 to compile in a local version of getopt that works
270 properly.
271NEEDSTRTOL Define this if your standard C library does not define

--- 162 unchanged lines hidden (view full) ---

434 Solaris, SunOS, HP-UX, etc.)
435SIOCGIFNUM_IS_BROKEN
436 Set this if your system has an SIOCGIFNUM ioctl defined,
437 but it doesn't behave the same way as "most" systems
438 (Solaris, HP-UX).
439NEED_PERCENTQ Set this if your system doesn't support the printf
440 format strings %lld or %llu. If this is set, %qd and
441 %qu are used instead.
273 should be declared in <errno.h>), and it should be used
274 instead of sys_errlist.
275NEEDGETOPT Define this if you need a reimplementation of getopt(3).
276 On some systems, getopt does very odd things if called
277 to scan the arguments twice. This flag will ask sendmail
278 to compile in a local version of getopt that works
279 properly.
280NEEDSTRTOL Define this if your standard C library does not define

--- 162 unchanged lines hidden (view full) ---

443 Solaris, SunOS, HP-UX, etc.)
444SIOCGIFNUM_IS_BROKEN
445 Set this if your system has an SIOCGIFNUM ioctl defined,
446 but it doesn't behave the same way as "most" systems
447 (Solaris, HP-UX).
448NEED_PERCENTQ Set this if your system doesn't support the printf
449 format strings %lld or %llu. If this is set, %qd and
450 %qu are used instead.
451FAST_PID_RECYCLE
452 Set this if your system can reuse the same PID in the same
453 second.
454SO_REUSEADDR_IS_BROKEN
455 Set this if your system has a setsockopt() SO_REUSEADDR
456 flag but doesn't pay attention to it when trying to bind a
457 socket to a recently closed port.
458SNPRINTF_IS_BROKEN
459 Set this if your system has an snprintf() implementation
460 which does not NUL terminate the string being filled in.
461 Use test/t_snprintf.c to test your system.
442
462
443
444
445+-----------------------+
446| COMPILE-TIME FEATURES |
447+-----------------------+
448
449There are a bunch of features that you can decide to compile in, such
450as selecting various database packages and special protocol support.
451Several are assumed based on other compilation flags -- if you want to
452"un-assume" something, you probably need to edit conf.h. Compilation

--- 10 unchanged lines hidden (view full) ---

463NIS Define this to get NIS (YP) support for aliases and maps.
464 Normally defined in the Makefile.
465NISPLUS Define this to get NIS+ support for aliases and maps.
466 Normally defined in the Makefile.
467HESIOD Define this to get Hesiod support for aliases and maps.
468 Normally defined in the Makefile.
469NETINFO Define this to get NeXT NetInfo support for aliases and maps.
470 Normally defined in the Makefile.
463+-----------------------+
464| COMPILE-TIME FEATURES |
465+-----------------------+
466
467There are a bunch of features that you can decide to compile in, such
468as selecting various database packages and special protocol support.
469Several are assumed based on other compilation flags -- if you want to
470"un-assume" something, you probably need to edit conf.h. Compilation

--- 10 unchanged lines hidden (view full) ---

481NIS Define this to get NIS (YP) support for aliases and maps.
482 Normally defined in the Makefile.
483NISPLUS Define this to get NIS+ support for aliases and maps.
484 Normally defined in the Makefile.
485HESIOD Define this to get Hesiod support for aliases and maps.
486 Normally defined in the Makefile.
487NETINFO Define this to get NeXT NetInfo support for aliases and maps.
488 Normally defined in the Makefile.
489LDAPMAP Define this to get LDAP support for maps.
490PH_MAP Define this to get PH support for maps.
491MAP_NSD Define this to get nsd support for maps.
471USERDB Define this to 1 to include support for the User Information
472 Database. Implied by NEWDB or HESIOD. You can use
473 -DUSERDB=0 to explicitly turn it off.
474IDENTPROTO Define this as 1 to get IDENT (RFC 1413) protocol support.
475 This is assumed unless you are running on Ultrix or
476 HP-UX, both of which have a problem in the UDP
477 implementation. You can define it to be 0 to explicitly
478 turn off IDENT protocol support. If defined off, the code
479 is actually still compiled in, but it defaults off; you
492USERDB Define this to 1 to include support for the User Information
493 Database. Implied by NEWDB or HESIOD. You can use
494 -DUSERDB=0 to explicitly turn it off.
495IDENTPROTO Define this as 1 to get IDENT (RFC 1413) protocol support.
496 This is assumed unless you are running on Ultrix or
497 HP-UX, both of which have a problem in the UDP
498 implementation. You can define it to be 0 to explicitly
499 turn off IDENT protocol support. If defined off, the code
500 is actually still compiled in, but it defaults off; you
480 can turn it on by setting the IDENT timeout to 30s in the
501 can turn it on by setting the IDENT timeout in the
481 configuration file.
482IP_SRCROUTE Define this to 1 to get IP source routing information
483 displayed in the Received: header. This is assumed on
484 most systems, but some (e.g., Ultrix) apparently have a
485 broken version of getsockopt that doesn't properly
486 support the IP_OPTIONS call. You probably want this if
487 your OS can cope with it. Symptoms of failure will be that
488 it won't compile properly (that is, no support for fetching
489 IP_OPTIONs), or it compiles but source-routed TCP connections
490 either refuse to open or open and hang for no apparent reason.
491 Ultrix and AIX3 are known to fail this way.
492LOG Set this to get syslog(3) support. Defined by default
493 in conf.h. You want this if at all possible.
494NETINET Set this to get TCP/IP support. Defined by default
495 in conf.h. You probably want this.
502 configuration file.
503IP_SRCROUTE Define this to 1 to get IP source routing information
504 displayed in the Received: header. This is assumed on
505 most systems, but some (e.g., Ultrix) apparently have a
506 broken version of getsockopt that doesn't properly
507 support the IP_OPTIONS call. You probably want this if
508 your OS can cope with it. Symptoms of failure will be that
509 it won't compile properly (that is, no support for fetching
510 IP_OPTIONs), or it compiles but source-routed TCP connections
511 either refuse to open or open and hang for no apparent reason.
512 Ultrix and AIX3 are known to fail this way.
513LOG Set this to get syslog(3) support. Defined by default
514 in conf.h. You want this if at all possible.
515NETINET Set this to get TCP/IP support. Defined by default
516 in conf.h. You probably want this.
517NETINET6 Set this to get IPv6 support. Other configuration may
518 be needed in conf.h for your particular operating system.
519 Also, DaemonPortOptions must be set appropriately for
520 sendmail to accept IPv6 connections.
496NETISO Define this to get ISO networking support.
497NETUNIX Define this to get Unix domain networking support. Defined
498 by default. A few bizarre systems (SCO, ISC, Altos) don't
499 support this networking domain.
521NETISO Define this to get ISO networking support.
522NETUNIX Define this to get Unix domain networking support. Defined
523 by default. A few bizarre systems (SCO, ISC, Altos) don't
524 support this networking domain.
525NETNS Define this to get NS networking support.
526NETX25 Define this to get X.25 networking support.
500SMTP Define this to get the SMTP code. Implied by NETINET
501 or NETISO.
502NAMED_BIND If non-zero, include DNS (name daemon) support, including
503 MX support. The specs say you must use this if you run
504 SMTP. You don't have to be running a name server daemon
505 on your machine to need this -- any use of the DNS resolver,
506 including remote access to another machine, requires this
507 option. Defined by default in conf.h. Define it to zero

--- 23 unchanged lines hidden (view full) ---

531 SecureWare is a C2 security package added to several UNIX's
532 (notably ConvexOS) to get a C2 Secure system. This
533 option causes mail delivery to be done with the luid of the
534 recipient.
535SHARE_V1 Support for the fair share scheduler, version 1. Setting to
536 1 causes final delivery to be done using the recipients
537 resource limitations. So far as I know, this is only
538 supported on ConvexOS.
527SMTP Define this to get the SMTP code. Implied by NETINET
528 or NETISO.
529NAMED_BIND If non-zero, include DNS (name daemon) support, including
530 MX support. The specs say you must use this if you run
531 SMTP. You don't have to be running a name server daemon
532 on your machine to need this -- any use of the DNS resolver,
533 including remote access to another machine, requires this
534 option. Defined by default in conf.h. Define it to zero

--- 23 unchanged lines hidden (view full) ---

558 SecureWare is a C2 security package added to several UNIX's
559 (notably ConvexOS) to get a C2 Secure system. This
560 option causes mail delivery to be done with the luid of the
561 recipient.
562SHARE_V1 Support for the fair share scheduler, version 1. Setting to
563 1 causes final delivery to be done using the recipients
564 resource limitations. So far as I know, this is only
565 supported on ConvexOS.
566SASL Enables SMTP AUTH (RFC 2554). This requires the Cyrus SASL
567 library (ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/). Please
568 install at least version 1.5.13. See below for further
569 information: SASL COMPILATION AND CONFIGURATION. If your
570 SASL library is older than 1.5.10, you have to set this
571 to its version number using a simple conversion: a.b.c
572 -> c + b*100 + a*10000, e.g. for 1.5.9 define SASL=10509.
573 Note: Using an older version than 1.5.5 of Cyrus SASL is
574 not supported. Starting with version 1.5.10, setting SASL=1
575 is sufficient. Any value other than 1 (or 0) will be
576 compared with the actual version found and if there is a
577 mismatch, compilation will fail.
578EGD Define this if your system has EGD installed, see
579 http://www.lothar.com/tech/crypto/ . It should be used to
580 seed the PRNG for STARTTLS if HASURANDOMDEV is not defined.
581STARTTLS Enables SMTP STARTTLS (RFC 2487). This requires OpenSSL
582 (http://www.OpenSSL.org/) and sfio (see below).
583 See STARTTLS COMPILATION AND CONFIGURATION for further
584 information.
585TLS_NO_RSA Turn off support for RSA algorithms in STARTTLS.
586SFIO Uses sfio instead of stdio. sfio is available from AT&T
587 (http://www.research.att.com/sw/tools/sfio/). If this
588 compile flag is set, confSTDIO_TYPE must be set to portable.
589 This compile flag is necessary for STARTTLS; it also
590 enables the security layer of SASL. The sfio include file
591 stdio.h must be installed in a subdirectory called sfio,
592 i.e., if you install sfio in /usr/local, stdio.h should
593 be in /usr/local/include/sfio, and libsfio.a should be in
594 /usr/local/lib. Notice: you may run into problems if
595 you use sfio2000 (the body of a message is lost). Use
596 sfio1999 instead.
539
540
541+---------------------+
542| DNS/RESOLVER ISSUES |
543+---------------------+
544
545Many systems have old versions of the resolver library. At a minimum,
546you should be running BIND 4.8.3; older versions may compile, but they

--- 18 unchanged lines hidden (view full) ---

565WILDCARD MX RECORDS ARE A BAD IDEA! The only situation in which they
566work reliably is if you have two versions of DNS, one in the real world
567which has a wildcard pointing to your firewall, and a completely
568different version of the database internally that does not include
569wildcard MX records that match your domain. ANYTHING ELSE WILL GIVE
570YOU HEADACHES!
571
572
597
598
599+---------------------+
600| DNS/RESOLVER ISSUES |
601+---------------------+
602
603Many systems have old versions of the resolver library. At a minimum,
604you should be running BIND 4.8.3; older versions may compile, but they

--- 18 unchanged lines hidden (view full) ---

623WILDCARD MX RECORDS ARE A BAD IDEA! The only situation in which they
624work reliably is if you have two versions of DNS, one in the real world
625which has a wildcard pointing to your firewall, and a completely
626different version of the database internally that does not include
627wildcard MX records that match your domain. ANYTHING ELSE WILL GIVE
628YOU HEADACHES!
629
630
631+----------------------------------------+
632| STARTTLS COMPILATION AND CONFIGURATION |
633+----------------------------------------+
634
635Please read the docs accompanying the OpenSSL library and sfio.
636You have to compile and install both libraries before you can compile
637sendmail. See devtools/README how to set the correct compile time
638parameters; you should at least set the following variables:
639
640define(`confSTDIO_TYPE', `portable')
641APPENDDEF(`confENVDEF', `-DSFIO')
642APPENDDEF(`confLIBS', `-lsfio')
643APPENDDEF(`conf_sendmail_ENVDEF', `-DSTARTTLS')
644APPENDDEF(`conf_sendmail_LIBS', `-lssl -lcrypto')
645
646Configuration information can be found in doc/op/op.me (required
647certificates) and cf/README (how to tell sendmail about certificates).
648
649To perform an initial test, connect to your sendmail daemon
650(telnet localhost 25) and issue a EHLO localhost and see whether
651250-STARTTLS
652is in the response. If it isn't, run the daemon with
653-O LogLevel=14
654and try again. Then take a look at the logfile and see whether
655there are any problems listed about permissions (unsafe files)
656or the validity of X.509 certificates.
657
658Note: sfio must be used in all libraries with which sendmail exchanges
659file pointers. That is, libsmutil must be compiled with sfio, which
660is accomplished by the above config parameters. Another example is
661PH map support. This does not apply to the usual libraries, e.g.,
662OpenSSL, Berkeley DB, Cyrus SASL.
663
664Further information can be found via:
665http://www.sendmail.org/tips/
666
667
668+------------------------------------+
669| SASL COMPILATION AND CONFIGURATION |
670+------------------------------------+
671
672Please read the docs accompanying the library (INSTALL and README).
673If you use Berkeley DB for Cyrus SASL then you must compile sendmail
674with the same version of Berkeley DB.
675
676You have to select and install authentication mechanisms and tell
677sendmail where to find the sasl library and the include files (see
678devtools/README for the parameters to set). Setup the required
679users and passwords as explained in the SASL documentation. See
680also cf/README for authentication related options (esp. DefaultAuthInfo
681if you want authentication between MTAs).
682
683To perform an initial test, connect to your sendmail daemon
684(telnet localhost 25) and issue a EHLO localhost and see whether
685250-AUTH ....
686is in the response. If it isn't, run the daemon with
687-O LogLevel=14
688and try again. Then take a look at the logfile and see whether
689there are any security related problems listed (unsafe files).
690
691Further information can be found via:
692http://www.sendmail.org/tips/
693
694
573+-------------------------------------+
574| OPERATING SYSTEM AND COMPILE QUIRKS |
575+-------------------------------------+
576
577GCC problems
578 *****************************************************************
579 ** IMPORTANT: DO NOT USE OPTIMIZATION (``-O'') IF YOU ARE **
580 ** RUNNING GCC 2.4.x or 2.5.x. THERE IS A BUG IN THE GCC **

--- 23 unchanged lines hidden (view full) ---

604 gdbm does not provide a compile flag in its version of ndbm.h so
605 the code can adapt. Until the GDBM authors can fix these problems,
606 GDBM will not be supported. Please use Berkeley DB instead.
607
608Configuration file location
609 Up to 8.6, sendmail tried to find the sendmail.cf file in the same
610 place as the vendors had put it, even when this was obviously
611 stupid. As of 8.7, sendmail ALWAYS looks for /etc/sendmail.cf.
695+-------------------------------------+
696| OPERATING SYSTEM AND COMPILE QUIRKS |
697+-------------------------------------+
698
699GCC problems
700 *****************************************************************
701 ** IMPORTANT: DO NOT USE OPTIMIZATION (``-O'') IF YOU ARE **
702 ** RUNNING GCC 2.4.x or 2.5.x. THERE IS A BUG IN THE GCC **

--- 23 unchanged lines hidden (view full) ---

726 gdbm does not provide a compile flag in its version of ndbm.h so
727 the code can adapt. Until the GDBM authors can fix these problems,
728 GDBM will not be supported. Please use Berkeley DB instead.
729
730Configuration file location
731 Up to 8.6, sendmail tried to find the sendmail.cf file in the same
732 place as the vendors had put it, even when this was obviously
733 stupid. As of 8.7, sendmail ALWAYS looks for /etc/sendmail.cf.
612 Beginning with 8.10, sendmail will use /etc/mail/sendmail.cf.
734 Beginning with 8.10, sendmail uses /etc/mail/sendmail.cf.
613 You can get sendmail to use the stupid vendor .cf location by
614 adding -DUSE_VENDOR_CF_PATH during compilation, but this may break
615 support programs and scripts that need to find sendmail.cf. You
616 are STRONGLY urged to use symbolic links if you want to use the
617 vendor location rather than changing the location in the sendmail
618 binary.
619
735 You can get sendmail to use the stupid vendor .cf location by
736 adding -DUSE_VENDOR_CF_PATH during compilation, but this may break
737 support programs and scripts that need to find sendmail.cf. You
738 are STRONGLY urged to use symbolic links if you want to use the
739 vendor location rather than changing the location in the sendmail
740 binary.
741
742 NETINFO systems use NETINFO to determine the location of
743 sendmail.cf. The full path to sendmail.cf is stored as the value of
744 the "sendmail.cf" property in the "/locations/sendmail"
745 subdirectory of NETINFO. Set the value of this property to
746 "/etc/mail/sendmail.cf" (without the quotes) to use this new
747 default location for Sendmail 8.10.0 and higher.
748
749ControlSocket permissions
750 Paraphrased from BIND 8.2.1's README:
751
752 Solaris and other pre-4.4BSD kernels do not respect ownership or
753 protections on UNIX-domain sockets. The short term fix for this is to
754 override the default path and put such control sockets into root-
755 owned directories which do not permit non-root to r/w/x through them.
756 The long term fix is for all kernels to upgrade to 4.4BSD semantics.
757
620SunOS 4.x (Solaris 1.x)
621 You may have to use -lresolv on SunOS. However, beware that
622 this links in a new version of gethostbyname that does not
623 understand NIS, so you must have all of your hosts in DNS.
624
625 Some people have reported problems with the SunOS version of
626 -lresolv and/or in.named, and suggest that you get a newer
627 version. The symptoms are delays when you connect to the

--- 14 unchanged lines hidden (view full) ---

642 Apparently getservbyname() can fail under moderate to high
643 load under some circumstances. This will exhibit itself as
644 the message ``554 makeconnection: service "smtp" unknown''.
645 The problem has been traced to one or more blank lines in
646 /etc/services on the NIS server machine. Delete these
647 and it should work. This info is thanks to Brian Bartholomew
648 <bb@math.ufl.edu> of I-Kinetics, Inc.
649
758SunOS 4.x (Solaris 1.x)
759 You may have to use -lresolv on SunOS. However, beware that
760 this links in a new version of gethostbyname that does not
761 understand NIS, so you must have all of your hosts in DNS.
762
763 Some people have reported problems with the SunOS version of
764 -lresolv and/or in.named, and suggest that you get a newer
765 version. The symptoms are delays when you connect to the

--- 14 unchanged lines hidden (view full) ---

780 Apparently getservbyname() can fail under moderate to high
781 load under some circumstances. This will exhibit itself as
782 the message ``554 makeconnection: service "smtp" unknown''.
783 The problem has been traced to one or more blank lines in
784 /etc/services on the NIS server machine. Delete these
785 and it should work. This info is thanks to Brian Bartholomew
786 <bb@math.ufl.edu> of I-Kinetics, Inc.
787
788 NOTE: The SunOS 4.X linker uses library paths specified during
789 compilation using -L for run-time shared library searches.
790 Therefore, it is vital that relative and unsafe directory paths not
791 be used when compiling sendmail.
792
650SunOS 4.0.2 (Sun 386i)
651 Date: Fri, 25 Aug 1995 11:13:58 +0200 (MET DST)
652 From: teus@oce.nl
653
654 Sendmail 8.7.Beta.12 compiles and runs nearly out of the box with the
655 following changes:
656 * Don't use /usr/5bin in your PATH, but make /usr/5bin/uname
657 available as "uname" command.
658 * Use the defines "-DBSD4_3 -DNAMED_BIND=0" in
793SunOS 4.0.2 (Sun 386i)
794 Date: Fri, 25 Aug 1995 11:13:58 +0200 (MET DST)
795 From: teus@oce.nl
796
797 Sendmail 8.7.Beta.12 compiles and runs nearly out of the box with the
798 following changes:
799 * Don't use /usr/5bin in your PATH, but make /usr/5bin/uname
800 available as "uname" command.
801 * Use the defines "-DBSD4_3 -DNAMED_BIND=0" in
659 BuildTools/OS/SunOS.4.0, which is selected via the "uname" command.
802 devtools/OS/SunOS.4.0, which is selected via the "uname" command.
660 I recommend to make available the db-library on the system first
661 (and change the Makefile to use this library).
662 Note that the sendmail.cf and aliases files are found in /etc.
663
664SunOS 4.1.3, 4.1.3_U1
665 Sendmail causes crashes on SunOS 4.1.3 and 4.1.3_U1. According
666 to Sun bug number 1077939:
667

--- 15 unchanged lines hidden (view full) ---

683 To compile for Solaris, the Makefile built by Build must
684 include a SOLARIS definition which reflects the Solaris version
685 (i.e. -DSOLARIS=20400 for 2.4 or -DSOLARIS=20501 for 2.5.1).
686 If you are using gcc, make sure -I/usr/include is not used (or
687 it might complain about TopFrame). If you are using Sun's cc,
688 make sure /opt/SUNWspro/bin/cc is used instead of /usr/ucb/cc
689 (or it might complain about tm_zone).
690
803 I recommend to make available the db-library on the system first
804 (and change the Makefile to use this library).
805 Note that the sendmail.cf and aliases files are found in /etc.
806
807SunOS 4.1.3, 4.1.3_U1
808 Sendmail causes crashes on SunOS 4.1.3 and 4.1.3_U1. According
809 to Sun bug number 1077939:
810

--- 15 unchanged lines hidden (view full) ---

826 To compile for Solaris, the Makefile built by Build must
827 include a SOLARIS definition which reflects the Solaris version
828 (i.e. -DSOLARIS=20400 for 2.4 or -DSOLARIS=20501 for 2.5.1).
829 If you are using gcc, make sure -I/usr/include is not used (or
830 it might complain about TopFrame). If you are using Sun's cc,
831 make sure /opt/SUNWspro/bin/cc is used instead of /usr/ucb/cc
832 (or it might complain about tm_zone).
833
691 To the best of my knowledge, Solaris does not have the
692 gethostbyname problem described above. However, it does
693 have another one:
694
695 From a correspondent:
696
697 For solaris 2.2, I have
698
699 hosts: files dns
700
701 in /etc/nsswitch.conf and /etc/hosts has to have the fully
702 qualified host name. I think "files" has to be before "dns"
703 in /etc/nsswitch.conf during bootup.
704
705 From another correspondent:
706
707 When running sendmail under Solaris, the gethostbyname()
708 hack in conf.c which should perform proper canonicalization
709 of host names could fail. Result: the host name is not
710 canonicalized despite the hack, and you'll have to define $j
711 and $m in sendmail.cf somewhere.
712
713 The reason could be that /etc/nsswitch.conf is improperly
714 configured (at least from sendmail's point of view). For
715 example, the line
716
717 hosts: files nisplus dns
718
719 will make gethostbyname() look in /etc/hosts first, then ask
720 nisplus, then dns. However, if /etc/hosts does not contain
721 the full canonicalized hostname, then no amount of
722 gethostbyname()s will work.
723
724 Solution (or rather, a workaround): Ask nisplus first, then
725 dns, then local files:
726
727 hosts: nisplus dns [NOTFOUND=return] files
728
729 The Solaris "syslog" function is apparently limited to something
730 about 90 characters because of a kernel limitation. If you have
731 source code, you can probably up this number. You can get patches
732 that fix this problem: the patch ids are:
733
734 Solaris 2.1 100834
735 Solaris 2.2 100999
736 Solaris 2.3 101318

--- 35 unchanged lines hidden (view full) ---

772 >>
773 >> /usr/local/lib from LD_LIBRARY_PATH - IGNORED (untrustworthy)
774 >> /usr/lib from LD_LIBRARY_PATH - honored (trustworthy)
775 >> /usr/local/lib from RPATH - honored
776 >> /usr/lib from RPATH - honored
777 >>
778 >> here, path 2 would be the first used.
779
834 The Solaris "syslog" function is apparently limited to something
835 about 90 characters because of a kernel limitation. If you have
836 source code, you can probably up this number. You can get patches
837 that fix this problem: the patch ids are:
838
839 Solaris 2.1 100834
840 Solaris 2.2 100999
841 Solaris 2.3 101318

--- 35 unchanged lines hidden (view full) ---

877 >>
878 >> /usr/local/lib from LD_LIBRARY_PATH - IGNORED (untrustworthy)
879 >> /usr/lib from LD_LIBRARY_PATH - honored (trustworthy)
880 >> /usr/local/lib from RPATH - honored
881 >> /usr/lib from RPATH - honored
882 >>
883 >> here, path 2 would be the first used.
884
780Solaris 2.6 (SunOS 5.6)
781 If you built sendmail 8.8.1 through 8.8.4 inclusive on a Solaris 2.5
782 system, that binary will not run on Solaris 2.6, due to problems with
783 incompatible snprintf(3s) calls. This problem is fixed in sendmail
784 8.8.5.
785
786Solaris 2.5.1 (SunOS 5.5.1) and 2.6 (SunOS 5.6)
787 Apparently Solaris 2.5.1 patch 103663-01 installs a new
788 /usr/include/resolv.h file that defines the __P macro without
789 checking to see if it is already defined. This new resolv.h is also
790 included in the Solaris 2.6 distribution. This causes compile
791 warnings such as:
792
793 In file included from daemon.c:51:

--- 4 unchanged lines hidden (view full) ---

798 file in the obj.SunOS.5.5.1.* or obj.SunOS.5.6.* directory that reads:
799
800 #undef __P
801 #include "/usr/include/resolv.h"
802
803 Sun is aware of the problem (Sun bug ID 4081053) and it will be fixed
804 in Solaris 2.7.
805
885Solaris 2.5.1 (SunOS 5.5.1) and 2.6 (SunOS 5.6)
886 Apparently Solaris 2.5.1 patch 103663-01 installs a new
887 /usr/include/resolv.h file that defines the __P macro without
888 checking to see if it is already defined. This new resolv.h is also
889 included in the Solaris 2.6 distribution. This causes compile
890 warnings such as:
891
892 In file included from daemon.c:51:

--- 4 unchanged lines hidden (view full) ---

897 file in the obj.SunOS.5.5.1.* or obj.SunOS.5.6.* directory that reads:
898
899 #undef __P
900 #include "/usr/include/resolv.h"
901
902 Sun is aware of the problem (Sun bug ID 4081053) and it will be fixed
903 in Solaris 2.7.
904
905Solaris 7 (SunOS 5.7)
906 Solaris 7 includes LDAP libraries but the implementation was
907 lacking a few things. The following settings can be placed in
908 devtools/Site/site.SunOS.5.7.m4 if you plan on using those
909 libraries.
910
911 APPENDDEF(`confMAPDEF', `-DLDAPMAP')
912 APPENDDEF(`confENVDEF', `-DLDAP_VERSION_MAX=3')
913 APPENDDEF(`confLIBS', `-lldap')
914
915 Also, Sun's patch 107555 is needed to prevent a crash in the call
916 to ldap_set_option for LDAP_OPT_REFERRALS in ldapmap_setopts if
917 LDAP support is compiled in sendmail.
918
806Ultrix
807 By default, the IDENT protocol is turned off on Ultrix. If you
808 are running Ultrix 4.4 or later, or if you have included patch
809 CXO-8919 for Ultrix 4.2 or 4.3 to fix the TCP problem, you can turn
919Ultrix
920 By default, the IDENT protocol is turned off on Ultrix. If you
921 are running Ultrix 4.4 or later, or if you have included patch
922 CXO-8919 for Ultrix 4.2 or 4.3 to fix the TCP problem, you can turn
810 IDENT on in the configuration file by setting the "ident" timeout
811 to 30 seconds.
923 IDENT on in the configuration file by setting the "ident" timeout.
812
924
925 The Ultrix 4.5 Y2K patch (ULTV45-022-1) has changed the resolver
926 included in libc.a. Unfortunately, the __RES symbol hasn't changed
927 and therefore, sendmail can no longer automatically detect the
928 newer version. If you get a compiler error:
929
930 /lib/libc.a(gethostent.o): local_hostname_length: multiply defined
931
932 Then rebuild with this in devtools/Site/site.ULTRIX.m4:
933
934 APPENDDEF(`conf_sendmail_ENVDEF', `-DNEEDLOCAL_HOSTNAME_LENGTH=0')
935
813Digital UNIX (formerly DEC OSF/1)
814 If you are compiling on OSF/1 (DEC Alpha), you must use
815 -L/usr/shlib (otherwise it core dumps on startup). You may also
816 need -mld to get the nlist() function, although some versions
817 apparently don't need this.
936Digital UNIX (formerly DEC OSF/1)
937 If you are compiling on OSF/1 (DEC Alpha), you must use
938 -L/usr/shlib (otherwise it core dumps on startup). You may also
939 need -mld to get the nlist() function, although some versions
940 apparently don't need this.
818
941
819 Also, the enclosed makefile removed /usr/sbin/smtpd; if you need
820 it, just create the link to the sendmail binary.
821
822 On DEC OSF/1 3.2 or earlier, the MatchGECOS option doesn't work
823 properly due to a bug in the getpw* routines. If you want to use
824 this, use -DDEC_OSF_BROKEN_GETPWENT=1. The problem is fixed in 3.2C.
825
826 Digital's mail delivery agent, /bin/mail (aka /bin/binmail), will

--- 54 unchanged lines hidden (view full) ---

881
882 These are unavoidable and innocuous -- just ignore them.
883
884 According to Dave Sill <de5@ornl.gov>, there is a version of the
885 Berkeley DB library patched to run on Irix 6.2 available from
886 http://reality.sgi.com/ariel/freeware/#db .
887
888IRIX 6.x
942 Also, the enclosed makefile removed /usr/sbin/smtpd; if you need
943 it, just create the link to the sendmail binary.
944
945 On DEC OSF/1 3.2 or earlier, the MatchGECOS option doesn't work
946 properly due to a bug in the getpw* routines. If you want to use
947 this, use -DDEC_OSF_BROKEN_GETPWENT=1. The problem is fixed in 3.2C.
948
949 Digital's mail delivery agent, /bin/mail (aka /bin/binmail), will

--- 54 unchanged lines hidden (view full) ---

1004
1005 These are unavoidable and innocuous -- just ignore them.
1006
1007 According to Dave Sill <de5@ornl.gov>, there is a version of the
1008 Berkeley DB library patched to run on Irix 6.2 available from
1009 http://reality.sgi.com/ariel/freeware/#db .
1010
1011IRIX 6.x
889 It is important that on IRIX 6.x you give used ABI in command
890 line of Build, otherwise configuration script does not work
891 correctly, e.g.,
1012 If you are using XFS filesystem, avoid using the -32 ABI switch to
1013 the cc compiler if possible.
892
1014
893 sh Build -E ABI=-n32
1015IRIX 6.4
1016 The IRIX 6.5.4 version of /bin/m4 does not work properly with
1017 sendmail. Either install fw_m4.sw.m4 off the Freeware_May99 CD and
1018 use /usr/freeware/bin/m4 or install and use GNU m4.
894
1019
895 If you are using XFS filesystem, avoid using ABI=-32 if possible.
896
897NeXT or NEXTSTEP
898 NEXTSTEP 3.3 and earlier ship with the old DBM library. Also,
899 Berkeley DB does not currently run on NEXTSTEP.
900
901 If you are compiling on NEXTSTEP, you will have to create an
902 empty file "unistd.h" and create a file "dirent.h" containing:
903
904 #include <sys/dir.h>
905 #define dirent direct
906
1020NeXT or NEXTSTEP
1021 NEXTSTEP 3.3 and earlier ship with the old DBM library. Also,
1022 Berkeley DB does not currently run on NEXTSTEP.
1023
1024 If you are compiling on NEXTSTEP, you will have to create an
1025 empty file "unistd.h" and create a file "dirent.h" containing:
1026
1027 #include <sys/dir.h>
1028 #define dirent direct
1029
907 (BuildTools/OS/NeXT should try to do both of these for you.)
1030 (devtools/OS/NeXT should try to do both of these for you.)
908
909 Apparently, there is a bug in getservbyname on Nextstep 3.0
910 that causes it to fail under some circumstances with the
911 message "SYSERR: service "smtp" unknown" logged. You should
912 be able to work around this by including the line:
913
914 OOPort=25
915
916 in your .cf file.
917
1031
1032 Apparently, there is a bug in getservbyname on Nextstep 3.0
1033 that causes it to fail under some circumstances with the
1034 message "SYSERR: service "smtp" unknown" logged. You should
1035 be able to work around this by including the line:
1036
1037 OOPort=25
1038
1039 in your .cf file.
1040
918 You may have to use -DNeXT.
919
920BSDI (BSD/386) 1.0, NetBSD 0.9, FreeBSD 1.0
921 The "m4" from BSDI won't handle the config files properly.
922 I haven't had a chance to test this myself.
923
924 The M4 shipped in FreeBSD and NetBSD 0.9 don't handle the config
925 files properly. One must use either GNU m4 1.1 or the PD-M4
926 recently posted in comp.os.386bsd.bugs (and maybe others).
927 NetBSD-current includes the PD-M4 (as stated in the NetBSD file
928 CHANGES).
1041BSDI (BSD/386) 1.0, NetBSD 0.9, FreeBSD 1.0
1042 The "m4" from BSDI won't handle the config files properly.
1043 I haven't had a chance to test this myself.
1044
1045 The M4 shipped in FreeBSD and NetBSD 0.9 don't handle the config
1046 files properly. One must use either GNU m4 1.1 or the PD-M4
1047 recently posted in comp.os.386bsd.bugs (and maybe others).
1048 NetBSD-current includes the PD-M4 (as stated in the NetBSD file
1049 CHANGES).
929
1050
930 FreeBSD 1.0 RELEASE has uname(2) now. Use -DUSEUNAME in order to
1051 FreeBSD 1.0 RELEASE has uname(2) now. Use -DUSEUNAME in order to
931 use it (look into BuildTools/OS/FreeBSD). NetBSD-current may have
1052 use it (look into devtools/OS/FreeBSD). NetBSD-current may have
932 it too but it has not been verified.
933
934 The latest version of Berkeley DB uses a different naming
935 scheme than the version that is supplied with your release. This
936 means you will be able to use the current version of Berkeley DB
937 with sendmail as long you use the new db.h when compiling
1053 it too but it has not been verified.
1054
1055 The latest version of Berkeley DB uses a different naming
1056 scheme than the version that is supplied with your release. This
1057 means you will be able to use the current version of Berkeley DB
1058 with sendmail as long you use the new db.h when compiling
938 sendmail and link it against the new libdb.a. You should probably
939 keep the original db.h in /usr/include and the new db.h in
940 /usr/local/include.
1059 sendmail and link it against the new libdb.a or libdb.so. You
1060 should probably keep the original db.h in /usr/include and the
1061 new db.h in /usr/local/include.
941
9424.3BSD
943 If you are running a "virgin" version of 4.3BSD, you'll have
944 a very old resolver and be missing some header files. The
945 header files are simple -- create empty versions and everything
946 will work fine. For the resolver you should really port a new
947 version (4.8.3 or later) of the resolver; 4.9 is available on
948 gatekeeper.DEC.COM in pub/BSD/bind/4.9. If you are really
949 determined to continue to use your old, buggy version (or as
950 a shortcut to get sendmail working -- I'm sure you have the
951 best intentions to port a modern version of BIND), you can
1062
10634.3BSD
1064 If you are running a "virgin" version of 4.3BSD, you'll have
1065 a very old resolver and be missing some header files. The
1066 header files are simple -- create empty versions and everything
1067 will work fine. For the resolver you should really port a new
1068 version (4.8.3 or later) of the resolver; 4.9 is available on
1069 gatekeeper.DEC.COM in pub/BSD/bind/4.9. If you are really
1070 determined to continue to use your old, buggy version (or as
1071 a shortcut to get sendmail working -- I'm sure you have the
1072 best intentions to port a modern version of BIND), you can
952 copy ../contrib/oldbind.compat.c into src and add
1073 copy ../contrib/oldbind.compat.c into sendmail and add
953 oldbind.compat.o to OBJADD in the Makefile.
954
955A/UX
956 Date: Tue, 12 Oct 1993 18:28:28 -0400 (EDT)
957 From: "Eric C. Hagberg" <hagberg@med.cornell.edu>
958 Subject: Fix for A/UX ndbm
959
960 I guess this isn't really a sendmail bug, however, it is something

--- 28 unchanged lines hidden (view full) ---

989 to know that if they are on SCO, they had better set
990 OI-dnsrch
991 or they will core dump as soon as they try to use the resolver.
992 ie. although SCO has _res.dnsrch defined, and is kinda BIND 4.8.3, it
993 does not inititialise it, nor does it understand 'search' in
994 /etc/named.boot.
995 - sigh -
996
1074 oldbind.compat.o to OBJADD in the Makefile.
1075
1076A/UX
1077 Date: Tue, 12 Oct 1993 18:28:28 -0400 (EDT)
1078 From: "Eric C. Hagberg" <hagberg@med.cornell.edu>
1079 Subject: Fix for A/UX ndbm
1080
1081 I guess this isn't really a sendmail bug, however, it is something

--- 28 unchanged lines hidden (view full) ---

1110 to know that if they are on SCO, they had better set
1111 OI-dnsrch
1112 or they will core dump as soon as they try to use the resolver.
1113 ie. although SCO has _res.dnsrch defined, and is kinda BIND 4.8.3, it
1114 does not inititialise it, nor does it understand 'search' in
1115 /etc/named.boot.
1116 - sigh -
1117
997 According to SCO, the m4 which ships with UnixWare 2.1.2 is broken.
1118 According to SCO, the m4 which ships with UnixWare 2.1.2 is broken.
998 We recommend installing GNU m4 before attempting to build sendmail.
999
1000DG/UX
1001 Doug Anderson <dlander@afterlife.ncsc.mil> has successfully run
1002 V8 on the DG/UX 5.4.2 and 5.4R3.x platforms under heavy usage.
1003 Originally, the DG /bin/mail program wasn't compatible with
1004 the V8 sendmail, since the DG /bin/mail requires the environment
1005 variable "_FORCE_MAIL_LOCAL_=yes" be set. Version 8.7 now includes

--- 5 unchanged lines hidden (view full) ---

1011Apollo DomainOS
1012 If you are compiling on Apollo, you will have to create an empty
1013 file "unistd.h" (for DomainOS 10.3 and earlier) and create a file
1014 "dirent.h" containing:
1015
1016 #include <sys/dir.h>
1017 #define dirent direct
1018
1119 We recommend installing GNU m4 before attempting to build sendmail.
1120
1121DG/UX
1122 Doug Anderson <dlander@afterlife.ncsc.mil> has successfully run
1123 V8 on the DG/UX 5.4.2 and 5.4R3.x platforms under heavy usage.
1124 Originally, the DG /bin/mail program wasn't compatible with
1125 the V8 sendmail, since the DG /bin/mail requires the environment
1126 variable "_FORCE_MAIL_LOCAL_=yes" be set. Version 8.7 now includes

--- 5 unchanged lines hidden (view full) ---

1132Apollo DomainOS
1133 If you are compiling on Apollo, you will have to create an empty
1134 file "unistd.h" (for DomainOS 10.3 and earlier) and create a file
1135 "dirent.h" containing:
1136
1137 #include <sys/dir.h>
1138 #define dirent direct
1139
1019 (BuildTools/OS/DomainOS will attempt to do both of these for you.)
1140 (devtools/OS/DomainOS will attempt to do both of these for you.)
1020
1021HP-UX 8.00
1022 Date: Mon, 24 Jan 1994 13:25:45 +0200
1023 From: Kimmo Suominen <Kimmo.Suominen@lut.fi>
1024 Subject: 8.6.5 w/ HP-UX 8.00 on s300
1025
1026 Just compiled and fought with sendmail 8.6.5 on a HP9000/360 (ie. a
1027 series 300 machine) running HP-UX 8.00.

--- 51 unchanged lines hidden (view full) ---

1079 core dump.
1080
1081 A number of problems have been reported regarding the Linux 2.2.0
1082 kernel. So far, these problems have been tracked down to syslog()
1083 and DNS resolution. We believe the problem is with the poll()
1084 implementation in the Linux 2.2.0 kernel and poll()-aware versions
1085 of glib (at least up to 2.0.111).
1086
1141
1142HP-UX 8.00
1143 Date: Mon, 24 Jan 1994 13:25:45 +0200
1144 From: Kimmo Suominen <Kimmo.Suominen@lut.fi>
1145 Subject: 8.6.5 w/ HP-UX 8.00 on s300
1146
1147 Just compiled and fought with sendmail 8.6.5 on a HP9000/360 (ie. a
1148 series 300 machine) running HP-UX 8.00.

--- 51 unchanged lines hidden (view full) ---

1200 core dump.
1201
1202 A number of problems have been reported regarding the Linux 2.2.0
1203 kernel. So far, these problems have been tracked down to syslog()
1204 and DNS resolution. We believe the problem is with the poll()
1205 implementation in the Linux 2.2.0 kernel and poll()-aware versions
1206 of glib (at least up to 2.0.111).
1207
1208 Some pre-glibc distributions of Linux include a syslog.h that does
1209 not work properly with SFIO. You can fix this by adding
1210 "#include <syslog.h>" to the SFIO version of stdio.h as the very
1211 first line.
1212
1213AIX 4.X
1214 The AIX 4.X linker uses library paths specified during compilation
1215 using -L for run-time shared library searches. Therefore, it is
1216 vital that relative and unsafe directory paths not be using when
1217 compiling sendmail. Because of this danger, by default, compiles
1218 on AIX use the -blibpath option to limit shared libraries to
1219 /usr/lib and /lib. If you need to allow more directories, such as
1220 /usr/local/lib, modify your devtools/Site/site.AIX.4.2.m4,
1221 site.AIX.4.3.m4, and/or site.AIX.4.x.m4 file(s) and set confLDOPTS
1222 approriately. For example:
1223
1224 define(`confLDOPTS', `-blibpath:/usr/lib:/lib:/usr/local/lib')
1225
1226 Be sure to only add (safe) system directories.
1227
1228 The AIX version of GNU ld also exhibits this problem. If you are
1229 using that version, instead of -blibpath, use its -rpath option.
1230 For example:
1231
1232 gcc -Wl,-rpath /usr/lib -Wl,-rpath /lib -Wl,-rpath /usr/local/lib
1233
1234AIX 4.3.3
1235 From: Valdis.Kletnieks@vt.edu
1236 Date: Sun, 02 Jul 2000 03:58:02 -0400
1237
1238 Under AIX 4.3.3, after applying bos.adt.include 4.3.3.12 to close the
1239 BIND 8.2.2 security holes, you can no lonber build with -DNETINET6
1240 because they changed the value of __RES in resolv.h but failed to
1241 actually provide the API changes that the change implied.
1242
1243 Workarounds:
1244 1) Compile without -DNETINET6
1245 2) Build against a real Bind 8.2.2 include/lib tree
1246 3) Wait for IBM to fix it
1247
1087AIX 4.2
1088 The AIX m4 implements a different mechanism for ifdef which is
1089 inconsistent with other versions of m4. Therefore, it will not
1090 work properly with the sendmail Build architecture or m4
1091 configuration method. To work around this problem, please use
1092 GNU m4 from ftp://ftp.gnu.org/pub/gnu/.
1093
1094AIX 3.x

--- 13 unchanged lines hidden (view full) ---

1108 daemon, and the getloadavg subroutine supplied with that package.
1109 If you don't care about load average throttling, just turn off
1110 load average checking using -DLA_TYPE=LA_ZERO.
1111
1112AIX 2.2.1
1113 Date: Mon Dec 4 14:14:56 CST 1995
1114 From: Mark Whetzel <markw@antimatr.houston.tx.us>
1115 Subject: Porting sendmail 8.7.2 to AIX V2 on the RT.
1248AIX 4.2
1249 The AIX m4 implements a different mechanism for ifdef which is
1250 inconsistent with other versions of m4. Therefore, it will not
1251 work properly with the sendmail Build architecture or m4
1252 configuration method. To work around this problem, please use
1253 GNU m4 from ftp://ftp.gnu.org/pub/gnu/.
1254
1255AIX 3.x

--- 13 unchanged lines hidden (view full) ---

1269 daemon, and the getloadavg subroutine supplied with that package.
1270 If you don't care about load average throttling, just turn off
1271 load average checking using -DLA_TYPE=LA_ZERO.
1272
1273AIX 2.2.1
1274 Date: Mon Dec 4 14:14:56 CST 1995
1275 From: Mark Whetzel <markw@antimatr.houston.tx.us>
1276 Subject: Porting sendmail 8.7.2 to AIX V2 on the RT.
1116
1277
1117 This version of sendmail does not support MB, MG, and MR resource
1118 records, which are supported by AIX sendmail.
1119
1120 AIX V2 on the RT does not have 'paths.h'. Create a null
1121 file in the 'obj' directory to remove this compile error.
1122
1123 A patch file is needed to get the BSD 'db' library to compile
1124 for AIX/RT. I have sent the necessary updates to the author,

--- 10 unchanged lines hidden (view full) ---

1135 older 1.05 'monitor' load average daemon code written by
1136 Jussi Maki that will work on AIX V2 for the RT is available
1137 by E-mail to Mark Whetzel <markw@antimatr.houston.tx.us>.
1138 That code depends on an external daemon to collect system
1139 load information, and the external routine 'getloadavg',
1140 that will return that information. The 'LA_SUBR' define
1141 will handle this for AIX V2 on the RT.
1142
1278 This version of sendmail does not support MB, MG, and MR resource
1279 records, which are supported by AIX sendmail.
1280
1281 AIX V2 on the RT does not have 'paths.h'. Create a null
1282 file in the 'obj' directory to remove this compile error.
1283
1284 A patch file is needed to get the BSD 'db' library to compile
1285 for AIX/RT. I have sent the necessary updates to the author,

--- 10 unchanged lines hidden (view full) ---

1296 older 1.05 'monitor' load average daemon code written by
1297 Jussi Maki that will work on AIX V2 for the RT is available
1298 by E-mail to Mark Whetzel <markw@antimatr.houston.tx.us>.
1299 That code depends on an external daemon to collect system
1300 load information, and the external routine 'getloadavg',
1301 that will return that information. The 'LA_SUBR' define
1302 will handle this for AIX V2 on the RT.
1303
1143 Note: You will have to change BuildTools/OS/AIX.2 to correctly
1304 Note: You will have to change devtools/OS/AIX.2 to correctly
1144 point to the locatons of the updated BIND source tree and
1145 the location of the 'newdb' tree and library location.
1305 point to the locatons of the updated BIND source tree and
1306 the location of the 'newdb' tree and library location.
1146 You will also have to change BuildTools/OS/AIX.2 to know
1307 You will also have to change devtools/OS/AIX.2 to know
1147 about the location of the 'getloadavg' routine if you use
1148 the LA_SUBR define.
1149
1308 about the location of the 'getloadavg' routine if you use
1309 the LA_SUBR define.
1310
1150
1151 Manual pages will format correctly if given the mandoc macros
1152 and used with nroff. I have not tried groff.
1153
1154RISC/os
1155 RISC/os from MIPS is a merged AT&T/Berkeley system. When you
1156 compile on that platform you will get duplicate definitions
1157 on many files. You can ignore these.
1158
1159System V Release 4 Based Systems
1311RISC/os
1312 RISC/os from MIPS is a merged AT&T/Berkeley system. When you
1313 compile on that platform you will get duplicate definitions
1314 on many files. You can ignore these.
1315
1316System V Release 4 Based Systems
1160 There is a single BuildTools OS that is intended for all SVR4-based
1161 systems (built from BuildTools/OS/SVR4). It defines __svr4__,
1317 There is a single devtools OS that is intended for all SVR4-based
1318 systems (built from devtools/OS/SVR4). It defines __svr4__,
1162 which is predefined by some compilers. If your compiler already
1163 defines this compile variable, you can delete the definition from
1319 which is predefined by some compilers. If your compiler already
1320 defines this compile variable, you can delete the definition from
1164 the generated Makefile or create a BuildTools/Site/site.config.m4
1321 the generated Makefile or create a devtools/Site/site.config.m4
1165 file.
1166
1167 It's been tested on Dell Issue 2.2.
1168
1169DELL SVR4
1170 Date: Mon, 06 Dec 1993 10:42:29 EST
1171 From: "Kimmo Suominen" <kim@grendel.lut.fi>
1172 Message-ID: <2d0352f9.lento29@lento29.UUCP>

--- 56 unchanged lines hidden (view full) ---

1229UnixWare
1230 According to Alexander Kolbasov <sasha@unitech.gamma.ru>,
1231 the m4 on UnixWare 2.0 (still in Beta) will core dump on the
1232 config files. GNU m4 and the m4 from UnixWare 1.x both work.
1233
1234 According to Larry Rosenman <ler@lerami.lerctr.org>:
1235
1236 UnixWare 2.1.[23]'s m4 chokes (not obviously) when
1322 file.
1323
1324 It's been tested on Dell Issue 2.2.
1325
1326DELL SVR4
1327 Date: Mon, 06 Dec 1993 10:42:29 EST
1328 From: "Kimmo Suominen" <kim@grendel.lut.fi>
1329 Message-ID: <2d0352f9.lento29@lento29.UUCP>

--- 56 unchanged lines hidden (view full) ---

1386UnixWare
1387 According to Alexander Kolbasov <sasha@unitech.gamma.ru>,
1388 the m4 on UnixWare 2.0 (still in Beta) will core dump on the
1389 config files. GNU m4 and the m4 from UnixWare 1.x both work.
1390
1391 According to Larry Rosenman <ler@lerami.lerctr.org>:
1392
1393 UnixWare 2.1.[23]'s m4 chokes (not obviously) when
1237 processing the 8.9.0 cf files.
1238
1394 processing the 8.9.0 cf files.
1395
1239 I had a LOCAL_RULE_0 that wound up AFTER the
1240 SBasic_check_rcpt rules using the SCO supplied M4.
1396 I had a LOCAL_RULE_0 that wound up AFTER the
1397 SBasic_check_rcpt rules using the SCO supplied M4.
1241 GNU M4 works fine.
1398 GNU M4 works fine.
1242
1243UNICOS 8.0.3.4
1244 Some people have reported that the -O flag on UNICOS can cause
1245 problems. You may want to turn this off if you have problems
1246 running sendmail. Reported by Jerry G. DeLapp <jgd@acl.lanl.gov>.
1247
1248GNU getopt
1249 I'm told that GNU getopt has a problem in that it gets confused

--- 7 unchanged lines hidden (view full) ---

1257
1258 /lib/libc.a(gethostent.o): sethostent: multiply defined
1259 /lib/libc.a(gethostent.o): endhostent: multiply defined
1260 /lib/libc.a(gethostent.o): gethostbyname: multiply defined
1261 /lib/libc.a(gethostent.o): gethostbyaddr: multiply defined
1262
1263 during the link stage.
1264
1399
1400UNICOS 8.0.3.4
1401 Some people have reported that the -O flag on UNICOS can cause
1402 problems. You may want to turn this off if you have problems
1403 running sendmail. Reported by Jerry G. DeLapp <jgd@acl.lanl.gov>.
1404
1405GNU getopt
1406 I'm told that GNU getopt has a problem in that it gets confused

--- 7 unchanged lines hidden (view full) ---

1414
1415 /lib/libc.a(gethostent.o): sethostent: multiply defined
1416 /lib/libc.a(gethostent.o): endhostent: multiply defined
1417 /lib/libc.a(gethostent.o): gethostbyname: multiply defined
1418 /lib/libc.a(gethostent.o): gethostbyaddr: multiply defined
1419
1420 during the link stage.
1421
1422BIND 8.X
1423 BIND 8.X returns HOST_NOT_FOUND instead of TRY_AGAIN on temporary
1424 DNS failures when trying to find the hostname associated with an IP
1425 address (gethostbyaddr()). This can cause problems as
1426 $&{client_name} based lookups in class R ($=R) and the access
1427 database won't succeed.
1428
1429 This will be fixed in BIND 8.2.1. For earlier versions, this can
1430 be fixed by making "dns" the last name service queried for host
1431 resolution in /etc/irs.conf:
1432
1433 hosts local continue
1434 hosts dns
1435
1265strtoul
1266 Some compilers (notably gcc) claim to be ANSI C but do not
1267 include the ANSI-required routine "strtoul". If your compiler
1268 has this problem, you will get an error in srvrsmtp.c on the
1269 code:
1270
1271 # ifdef defined(__STDC__) && !defined(BROKEN_ANSI_LIBRARY)
1272 e->e_msgsize = strtoul(vp, (char **) NULL, 10);

--- 12 unchanged lines hidden (view full) ---

1285 Just upgraded to sendmail 8.7, and discovered that listproc 6.0c
1286 breaks, because it, by default, sends a blank "HELO" rather than
1287 a "HELO hostname" when using the 'system' or 'telnet' mailmethod.
1288
1289 The fix is to include -DZMAILER in the compilation, which will
1290 cause it to use "HELO hostname" (which Z-mail apparently requires
1291 as well. :)
1292
1436strtoul
1437 Some compilers (notably gcc) claim to be ANSI C but do not
1438 include the ANSI-required routine "strtoul". If your compiler
1439 has this problem, you will get an error in srvrsmtp.c on the
1440 code:
1441
1442 # ifdef defined(__STDC__) && !defined(BROKEN_ANSI_LIBRARY)
1443 e->e_msgsize = strtoul(vp, (char **) NULL, 10);

--- 12 unchanged lines hidden (view full) ---

1456 Just upgraded to sendmail 8.7, and discovered that listproc 6.0c
1457 breaks, because it, by default, sends a blank "HELO" rather than
1458 a "HELO hostname" when using the 'system' or 'telnet' mailmethod.
1459
1460 The fix is to include -DZMAILER in the compilation, which will
1461 cause it to use "HELO hostname" (which Z-mail apparently requires
1462 as well. :)
1463
1293LDAP
1294 LDAP was provided by Booker Bense <bbense+ldap@stanford.edu> of
1295 Stanford University. From Booker:
1464OpenSSL
1465 OpenSSL versions prior to 0.9.6 use a macro named Free which
1466 conflicts with existing macro names on some platforms, such as
1467 AIX.
1296
1468
1297 - The patch attached to this message implements an Ldap map class.
1298 Currently we are using this at stanford to support campus-wide
1299 email addressing. More information can be found at
1300 http://www.stanford.edu/~bbense/Inst.html.
1469PH
1470 PH support is provided by Mark Roth <roth@uiuc.edu>. The map is
1471 described at http://www-wsg.cso.uiuc.edu/sendmail/patches/ .
1472 Please contact Mark Roth for support and questions regarding the
1473 map.
1301
1474
1302 - Currently we are using the ldap map as follows:
1303
1304 Kluser ldapx
1305 -h"localhost borax.stanford.edu borate.stanford.edu boron.stanford.edu"
1306 -k"mailacceptinggeneralid=%s" -v maildrop
1307
1308 and in Rule set S5
1309
1310 # Now attempt to lookup in luser (ldap map)
1311 R< $L > $+ $: < $L > $( luser $1 $)
1312 R< $* > $+ @ $+ $: < $3 > $2 Rewrite if forward
1313
1314 - The map definition supports most of the standard Map args plus most
1315 of the command line options of ldapsearch. The software is currently
1316 limited to only accepting the first entry returned. It expects that
1317 the map defines an ldap filter that returns at most 1 valid entry.
1318 It requires the ldap and lber libraries from the Umich Ldap3.2
1319 release.
1320
1321 The software has been in production on Solaris.2.5.1 at Stanford
1322 for over 2 years.
1323
1324 The LDAP map supports both the UMich LDAP 3.2 and 3.3 libraries as
1325 well as the OpenLDAP (http://www.openldap.org/) libraries.
1326
1327TCP Wrappers
1328 If you are using -DTCPWRAPPERS to get TCP Wrappers support you will
1329 also need to install libwrap.a and modify your site.config.m4 file
1330 or the generated Makefile to include -lwrap in the LIBS line
1331 (make sure that INCDIRS and LIBDIRS point to where the tcpd.h and
1332 libwrap.a can be found).
1333
1475TCP Wrappers
1476 If you are using -DTCPWRAPPERS to get TCP Wrappers support you will
1477 also need to install libwrap.a and modify your site.config.m4 file
1478 or the generated Makefile to include -lwrap in the LIBS line
1479 (make sure that INCDIRS and LIBDIRS point to where the tcpd.h and
1480 libwrap.a can be found).
1481
1334 TCP Wrappers is available on ftp.win.tue.nl in /pub/security;
1335 grab tcp_wrappers_<VER>.tar.gz (where <VER> is the highest
1336 numbered version).
1482 TCP Wrappers is available at ftp://ftp.porcupine.org/pub/security/.
1337
1338 If you have alternate MX sites for your site, be sure that all of
1339 your MX sites reject the same set of hosts. If not, a bad guy whom
1340 you reject will connect to your site, fail, and move on to the next
1341 MX site, which will accept the mail for you and forward it on to you.
1342
1343Regular Expressions (MAP_REGEX)
1344 If sendmail linking fails with:
1345
1346 undefined reference to 'regcomp'
1347
1348 or sendmail gives an error about a regular expression with:
1349
1483
1484 If you have alternate MX sites for your site, be sure that all of
1485 your MX sites reject the same set of hosts. If not, a bad guy whom
1486 you reject will connect to your site, fail, and move on to the next
1487 MX site, which will accept the mail for you and forward it on to you.
1488
1489Regular Expressions (MAP_REGEX)
1490 If sendmail linking fails with:
1491
1492 undefined reference to 'regcomp'
1493
1494 or sendmail gives an error about a regular expression with:
1495
1350 pattern-compile-error: : Operation not applicable
1496 pattern-compile-error: : Operation not applicable
1351
1352 Your libc does not include a running version of POSIX-regex. Use
1497
1498 Your libc does not include a running version of POSIX-regex. Use
1353 librx or regex.o from the GNU Free Software Foundation,
1354 ftp://ftp.gnu.org/pub/gnu/rx-?.?.tar.gz or
1355 ftp://ftp.gnu.org/pub/gnu/regex-?.?.tar.gz.
1356 You can also use the regex-lib by Henry Spencer,
1357 ftp://ftp.funet.fi/pub/languages/C/spencer/regex.shar.gz
1358 Make sure, your compiler reads regex.h from the distribution,
1359 not from /usr/include, otherwise sendmail will dump a core.
1499 librx or regex.o from the GNU Free Software Foundation,
1500 ftp://ftp.gnu.org/pub/gnu/rx-?.?.tar.gz or
1501 ftp://ftp.gnu.org/pub/gnu/regex-?.?.tar.gz.
1502 You can also use the regex-lib by Henry Spencer,
1503 ftp://ftp.funet.fi/pub/languages/C/spencer/regex.shar.gz
1504 Make sure, your compiler reads regex.h from the distribution,
1505 not from /usr/include, otherwise sendmail will dump a core.
1360
1361
1362+--------------+
1363| MANUAL PAGES |
1364+--------------+
1365
1506
1507
1508+--------------+
1509| MANUAL PAGES |
1510+--------------+
1511
1366The manual pages have been written against the -mandoc macros
1367instead of the -man macros. The latest version of groff has them
1368included. You can also get a copy from FTP.UU.NET in the directory
1369/systems/unix/bsd-sources/share/tmac. groff is available from
1370ftp.gnu.org in the /pub/gnu directory.
1512The manual pages have been written against the -man macros, and
1513should format correctly with any reasonable *roff.
1371
1514
1372
1373+-----------------+
1374| DEBUGGING HOOKS |
1375+-----------------+
1376
1377As of 8.6.5, sendmail daemons will catch a SIGUSR1 signal and log
1378some debugging output (logged at LOG_DEBUG severity). The
1379information dumped is:
1380

--- 16 unchanged lines hidden (view full) ---

1397
1398
1399+-----------------------------+
1400| DESCRIPTION OF SOURCE FILES |
1401+-----------------------------+
1402
1403The following list describes the files in this directory:
1404
1515+-----------------+
1516| DEBUGGING HOOKS |
1517+-----------------+
1518
1519As of 8.6.5, sendmail daemons will catch a SIGUSR1 signal and log
1520some debugging output (logged at LOG_DEBUG severity). The
1521information dumped is:
1522

--- 16 unchanged lines hidden (view full) ---

1539
1540
1541+-----------------------------+
1542| DESCRIPTION OF SOURCE FILES |
1543+-----------------------------+
1544
1545The following list describes the files in this directory:
1546
1547Build Shell script for building sendmail.
1548Makefile A convenience for calling ./Build.
1405Makefile.m4 A template for constructing a makefile based on the
1549Makefile.m4 A template for constructing a makefile based on the
1406 information in the BuildTools directory.
1550 information in the devtools directory.
1407README This file.
1408TRACEFLAGS My own personal list of the trace flags -- not guaranteed
1409 to be particularly up to date.
1410alias.c Does name aliasing in all forms.
1551README This file.
1552TRACEFLAGS My own personal list of the trace flags -- not guaranteed
1553 to be particularly up to date.
1554alias.c Does name aliasing in all forms.
1555aliases.5 Man page describing the format of the aliases file.
1411arpadate.c A subroutine which creates ARPANET standard dates.
1556arpadate.c A subroutine which creates ARPANET standard dates.
1557bf.h Buffered file I/O function declarations.
1558bf_portable.c Stub routines for systems lacking the Torek stdio library.
1559bf_portable.h Data structure and function declarations for bf_portable.c.
1560bf_torek.c Routines to implement memory-buffered file system using
1561 hooks provided by Torek stdio library.
1562bf_torek.h Data structure and function declarations for bf_torek.c.
1412clock.c Routines to implement real-time oriented functions
1413 in sendmail -- e.g., timeouts.
1414collect.c The routine that actually reads the mail into a temp
1415 file. It also does a certain amount of parsing of
1416 the header, etc.
1417conf.c The configuration file. This contains information
1418 that is presumed to be quite static and non-
1419 controversial, or code compiled in for efficiency
1420 reasons. Most of the configuration is in sendmail.cf.
1421conf.h Configuration that must be known everywhere.
1422convtime.c A routine to sanely process times.
1423daemon.c Routines to implement daemon mode. This version is
1424 specifically for Berkeley 4.1 IPC.
1425deliver.c Routines to deliver mail.
1426domain.c Routines that interface with DNS (the Domain Name
1427 System).
1563clock.c Routines to implement real-time oriented functions
1564 in sendmail -- e.g., timeouts.
1565collect.c The routine that actually reads the mail into a temp
1566 file. It also does a certain amount of parsing of
1567 the header, etc.
1568conf.c The configuration file. This contains information
1569 that is presumed to be quite static and non-
1570 controversial, or code compiled in for efficiency
1571 reasons. Most of the configuration is in sendmail.cf.
1572conf.h Configuration that must be known everywhere.
1573convtime.c A routine to sanely process times.
1574daemon.c Routines to implement daemon mode. This version is
1575 specifically for Berkeley 4.1 IPC.
1576deliver.c Routines to deliver mail.
1577domain.c Routines that interface with DNS (the Domain Name
1578 System).
1428err.c Routines to print error messages.
1429envelope.c Routines to manipulate the envelope structure.
1579envelope.c Routines to manipulate the envelope structure.
1580err.c Routines to print error messages.
1430headers.c Routines to process message headers.
1581headers.c Routines to process message headers.
1582helpfile An example helpfile for the SMTP HELP command and -bt mode.
1431macro.c The macro expander. This is used internally to
1432 insert information from the configuration file.
1583macro.c The macro expander. This is used internally to
1584 insert information from the configuration file.
1585mailq.1 Man page for the mailq command.
1433main.c The main routine to sendmail. This file also
1434 contains some miscellaneous routines.
1586main.c The main routine to sendmail. This file also
1587 contains some miscellaneous routines.
1588makesendmail A convenience for calling ./Build.
1435map.c Support for database maps.
1436mci.c Routines that handle mail connection information caching.
1589map.c Support for database maps.
1590mci.c Routines that handle mail connection information caching.
1591milter.c MTA portions of the mail filter API.
1437mime.c MIME conversion routines.
1592mime.c MIME conversion routines.
1593newaliases.1 Man page for the newaliases command.
1438parseaddr.c The routines which do address parsing.
1439queue.c Routines to implement message queueing.
1440readcf.c The routine that reads the configuration file and
1441 translates it to internal form.
1442recipient.c Routines that manipulate the recipient list.
1594parseaddr.c The routines which do address parsing.
1595queue.c Routines to implement message queueing.
1596readcf.c The routine that reads the configuration file and
1597 translates it to internal form.
1598recipient.c Routines that manipulate the recipient list.
1443safefile.c Routines to do careful checking of file modes and permissions
1444 when opening or creating files.
1445savemail.c Routines which save the letter on processing errors.
1599savemail.c Routines which save the letter on processing errors.
1600sendmail.8 Man page for the sendmail command.
1446sendmail.h Main header file for sendmail.
1601sendmail.h Main header file for sendmail.
1447snprintf.c Routines to manipulate strings but prevent buffer overflows.
1602sfsasl.c I/O interface between SASL/TLS and the MTA using SFIO.
1603sfsasl.h Header file for sfsasl.c.
1604shmticklib.c Routines for shared memory counters.
1448srvrsmtp.c Routines to implement server SMTP.
1449stab.c Routines to manage the symbol table.
1450stats.c Routines to collect and post the statistics.
1605srvrsmtp.c Routines to implement server SMTP.
1606stab.c Routines to manage the symbol table.
1607stats.c Routines to collect and post the statistics.
1608statusd_shm.h Data structure and function declarations for shmticklib.c.
1451sysexits.c List of error messages associated with error codes
1452 in sysexits.h.
1609sysexits.c List of error messages associated with error codes
1610 in sysexits.h.
1611sysexits.h List of error codes for systems that lack their own.
1612timers.c Routines to provide microtimers.
1613timers.h Data structure and function declarations for timers.h.
1453trace.c The trace package. These routines allow setting and
1454 testing of trace flags with a high granularity.
1455udb.c The user database interface module.
1456usersmtp.c Routines to implement user SMTP.
1457util.c Some general purpose routines used by sendmail.
1458version.c The version number and information about this
1614trace.c The trace package. These routines allow setting and
1615 testing of trace flags with a high granularity.
1616udb.c The user database interface module.
1617usersmtp.c Routines to implement user SMTP.
1618util.c Some general purpose routines used by sendmail.
1619version.c The version number and information about this
1459 version of sendmail. Theoretically, this gets
1460 modified on every change.
1620 version of sendmail.
1461
1621
1462Eric Allman
1463
1464(Version 8.211, last update 2/2/1999 15:28:18)
1622(Version $Revision: 8.263.2.1.2.19 $, last update $Date: 2000/07/15 17:35:18 $ )