diff options
| author | glass <glass@NetBSD.org> | 1994-01-31 02:38:08 +0000 |
|---|---|---|
| committer | glass <glass@NetBSD.org> | 1994-01-31 02:38:08 +0000 |
| commit | f1cb96b2ca44e4aa70b57abc58ffc615af6b0583 (patch) | |
| tree | a6ebcdd285462a08f65dcae64a1b57567dd129ea /usr.sbin/sendmail/src/READ_ME | |
| parent | f12eaca826e8750987e7055165cd38313cb63b46 (diff) | |
upgrade to version 8.6.5
Diffstat (limited to 'usr.sbin/sendmail/src/READ_ME')
| -rw-r--r-- | usr.sbin/sendmail/src/READ_ME | 381 |
1 files changed, 317 insertions, 64 deletions
diff --git a/usr.sbin/sendmail/src/READ_ME b/usr.sbin/sendmail/src/READ_ME index b599928b23d..a2e7ad793bf 100644 --- a/usr.sbin/sendmail/src/READ_ME +++ b/usr.sbin/sendmail/src/READ_ME @@ -30,7 +30,7 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# @(#)READ_ME 8.31 (Berkeley) 10/31/93 +# @(#)READ_ME 8.47 (Berkeley) 1/12/94 # This directory contains the source files for sendmail. @@ -39,35 +39,86 @@ For detailed instructions, please read the document ../doc/op.me: eqn ../doc/op.me | pic | ditroff -me -The Makefile is for the new (4.4BSD) Berkeley make, available from -ftp.uu.net in the directory /systems/unix/bsd-sources/usr.bin/make. -(Paul Southworth <pauls@umich.edu> published a description of porting -this make in comp.unix.bsd.) This Makefile has assumptions about the -4.4 file system layout built in. +The Makefile is for the new (4.4BSD) Berkeley make and uses syntax +that is not recognized by older makes. It also has assumptions +about the 4.4 file system layout built in. See below for details +about other Makefiles. There is also a Makefile.dist which is much less clever, but works on the old traditional make. You can use this using: make -f Makefile.dist -There are a bunch of other Makefiles for other systems -- these are -the ones that I use, they have "Berkeley quirks" in them, and I don't -guarantee that they will work unmodified in your environment. However, -they are all designed for the old make and can be used to help you get -started. They have names like "Makefile.HPUX". Many of them include --I/usr/sww/include/db and -L/usr/sww/lib -- this is Berkeley's -location for the new database libraries, described below. +************************************************** +** Read below for more details of Makefiles. ** +************************************************** There is also a shell script (makesendmail) that tries to be clever about using object subdirectories. It's pretty straightforward, and may help if you share a source tree among different architectures. -IMPORTANT: DO NOT USE OPTIMIZATION (``-O'') IF YOU ARE RUNNING GCC -2.4.x. THERE IS A BUG IN THE GCC OPTIMIZER THAT CAUSES SENDMAIL TO -FAIL MISERABLY. +************************************************************************** +** IMPORTANT: DO NOT USE OPTIMIZATION (``-O'') IF YOU ARE RUNNING ** +** GCC 2.4.x or 2.5.x. THERE IS A BUG IN THE GCC OPTIMIZER THAT ** +** CAUSES SENDMAIL COMPILES TO FAIL MISERABLY. ** +************************************************************************** + +Jim Wilson of Cygnus believes he has found the problem -- it will +probably be fixed in GCC 2.5.6 -- but until this is verified, be +very suspicious of gcc -O. + +************************************************************************** +** IMPORTANT: Read the appropriate paragraphs in the section on ** +** ``Operating System and Compile Quirks''. ** +************************************************************************** + + ++-----------+ +| MAKEFILES | ++-----------+ + +The "Makefile"s in these directories are from 4.4 BSD, and hence +really only work properly if you are on a 4.4 system. In particular, +they use new syntax that will not be recognized on old make programs, +and some of them do things like ``.include ../../Makefile.inc'' to +pick up some system defines. If you are getting sendmail separately, +these files won't be included in the distribution, as they are +outside of the sendmail tree. + +Instead, you should use one of the other Makefiles, such as +Makefile.SunOS for a SunOS system, and so forth. These should +work with the version of make that is appropriate for that +system. + +There are a bunch of other Makefiles for other systems with names +like Makefile.HPUX for an HP-UX system. They use the version of +make that is native for that system. These are the Makefiles that +I use, and they have "Berkeley quirks" in them. I can't guarantee +that they will work unmodified in your environment. Many of them +include -I/usr/sww/include/db and -L/usr/sww/lib -- this is Berkeley's +location (the ``Software Warehouse'') for the new database libraries, +described below. You don't have to remove these definitions if you +don't have these directories. + +Please look for an appropriate Makefile before you start trying to +compile with Makefile or Makefile.dist. + +If you want to port the new Berkeley make, you can get it from +ftp.uu.net in the directory /systems/unix/bsd-sources/usr.bin/make. +Diffs and instructions for building this version of make under +SunOS 4.1.x are available on ftp.css.itd.umich.edu in +/pub/systems/sun/Net2-make.sun4.diff.Z. Diffs and instructions +for building this version of make under IBM AIX 3.2.4 are available +on ftp.uni-stuttgart.de in /sw/src/patches/bsd-make-rus-patches. +Paul Southworth <pauls@umich.edu> published a description of porting +this make in comp.unix.bsd. + +The complete text of the Makefile.inc that is in the parent of the +sendmail directory is: + + # @(#)Makefile.inc 8.1 (Berkeley) 6/6/93 -IMPORTANT: Read the appropriate paragraphs in the section on -``Operating System and Compile Quirks''. + BINDIR?= /usr/sbin +----------------------+ @@ -83,7 +134,9 @@ older DBM implementation -- the very old V7 implementation is no longer supported), and NIS (Network Information Services). Used alone these just include the support they indicate. [If you are using NEWDB, get the latest version from FTP.CS.Berkeley.EDU in /ucb/4bsd. DO NOT -use the version from the Net2 distribution!] +use the version from the Net2 distribution! However, if you are on +BSD/386 or 386BSD-based systems, use the one that already exists +on your system. You may need to define OLD_NEWDB to do this.] If NEWDB and NDBM are defined (but not NIS), then sendmail will read NDBM format alias files, but the next time a newaliases is run the @@ -119,19 +172,22 @@ symbols availble, requiring the following compilation flags in the Makefile: SOLARIS Define this if you are running Solaris 2.0 or higher. +SOLARIS_2_3 Define this if you are running Solaris 2.3 or higher. +SUNOS403 Define this if you are running SunOS 4.0.3. NeXT Define this if you are on a NeXT box. (This one may be pre-defined for you.) There are other hacks you have to make -- see below. _AIX3 Define this if you are IBM AIX 3.x. RISCOS Define this if you are running RISC/os from MIPS. _SCO_unix_ Define this if you are on SCO UNIX. +_SCO_unix_4_2 Define this if you are on SCO Open Server 3.2v4. If you are a system that sendmail has already been ported to, you probably won't have to touch these. But if you are porting, you may have to tweak the following compilation flags in conf.h in order to get it to compile and link properly: -SYSTEM5 Adjust for System V. +SYSTEM5 Adjust for System V (not necessarily Release 4). SYS5SIGNALS Use System V signal semantics -- the signal handler is automatically dropped when the signal is caught. If this is not set, use POSIX/BSD semantics, where the @@ -166,12 +222,40 @@ HASSETREUID Define this if you have setreuid(2) ***AND*** root can your system has setresuid(2), (for example, on HP-UX) in which case you will also have to #define setreuid(r, e) to be the appropriate call. Some systems (such as Solaris) - have a compatibility routine that doesn't work properly. + have a compatibility routine that doesn't work properly, + but may have "saved user ids" properly implemented so you + can ``#define setreuid(r, e) seteuid(e)'' and have it work. The important thing is that you have a call that will set - the effective uid independently of the real or saved uid. - Setting this improves the security somewhat, since - sendmail doesn't have to read .forward and :include: files - as root. + the effective uid independently of the real or saved uid + and be able to set the effective uid back again when done. + There's a test program in ../test/t_setreuid.c that will + try things on your system. Setting this improves the + security, since sendmail doesn't have to read .forward + and :include: files as root. There are certain attacks + that may be unpreventable without this call. +HASLSTAT Define this if you have symbolic links (and thus the + lstat(2) system call). This improves security. Unlike + most other options, this one is on by default, so you + need to #undef it in conf.h if you don't have symbolic + links (these days everyone does). +NEEDGETOPT Define this if you need a reimplementation of getopt(3). + On some systems, getopt does very odd things if called + to scan the arguments twice. This flag will ask sendmail + to compile in a local version of getopt that works + properly. +NEEDSTRTOL Define this if your standard C library does not define + strtol(3). This will compile in a local version. +NEEDVPRINTF Define this if your standard C library does not define + vprintf(3). Note that the resulting fake implementation + is not very elegant and may not even work on some + architectures. +HASGETUSERSHELL Define this to 1 if you have getusershell(3) in your + standard C library. If this is not defined, or is defined + to be 0, sendmail will scan the /etc/shells file (no + NIS-style support, defaults to /bin/sh and /bin/csh if + that file does not exist) to get a list of unrestricted + user shells. This is used to determine whether users + are allowed to forward their mail to a program or a file. GIDSET_T The type of entries in a gidset passed as the second argument to getgroups(2). Historically this has been an int, so this is the default, but some systems (such as @@ -206,6 +290,17 @@ ERRLIST_PREDEFINED WAITUNION The wait(2) routine takes a "union wait" argument instead of an integer argument. This is for compatibility with old versions of BSD. +SCANF You can set this to extend the F command to accept a + scanf string -- this gives you a primitive parser for + class definitions -- BUT it can make you vulnerable to + core dumps if the target file is poorly formed. +SYSLOG_BUFSIZE You can define this to be the size of the buffer that + syslog accepts. If it is not defined, it assumes a + 1024-byte buffer. If the buffer is very small (under + 256 bytes) the log message format changes -- each + e-mail message will log many more messages, since it + will log each piece of information as a separate line + in syslog. +-----------------------+ @@ -226,10 +321,11 @@ NIS Define this to get NIS (YP) support for aliases and maps. Normally defined in the Makefile. USERDB Include support for the User Information Database. Implied by NEWDB in conf.h. -IDENTPROTO Define this to get IDENT (RFC 1413) protocol support. +IDENTPROTO Define this as 1 to get IDENT (RFC 1413) protocol support. This is assumed unless you are running on Ultrix or HP-UX, both of which have a problem in the UDP - implementation. + implementation. You can define it to be 0 to explicitly + turn off IDENT protocol support. MIME Include support for MIME-encapsulated error messages. LOG Set this to get syslog(3) support. Defined by default in conf.h. You want this if at all possible. @@ -256,10 +352,69 @@ SETPROCTITLE Try to set the string printed by "ps" to something default in conf.h. ++---------------------+ +| DNS/RESOLVER ISSUES | ++---------------------+ + +Many systems have old versions of the resolver library. At a minimum, +you should be running BIND 4.8.3; older versions may compile, but they +have known bugs that should give you pause. + +Common problems in old versions include "undefined" errors for +dn_skipname. + +Some people have had a problem with BIND 4.9; it uses some routines +that it expects to be externally defined such as strerror(). It may +help to link with "-l44bsd" to solve this problem. + +!PLEASE! be sure to link with the same version of the resolver as +the header files you used -- some people have used the 4.9 headers +and linked with BIND 4.8 or vice versa, and it doesn't work. +Unfortunately, it doesn't fail in an obvious way -- things just +subtlely don't work. + + +-------------------------------------+ | OPERATING SYSTEM AND COMPILE QUIRKS | +-------------------------------------+ +GCC 2.5.x problems *** IMPORTANT *** + Date: Mon, 29 Nov 93 19:08:44 PST + From: wilson@cygnus.com (Jim Wilson) + Message-Id: <9311300308.AA04608@cygnus.com> + To: kenner@vlsi1.ultra.nyu.edu + Subject: [cattelan@thebarn.com: gcc 2.5.4-2.5.5 -O bug] + Cc: cattelan@thebarn.com, rms@gnu.ai.mit.edu, sendmail@cs.berkeley.edu + + This fixes a problem that occurs when gcc 2.5.5 is used to compile + sendmail 8.6.4 with optimization on a sparc. + + Mon Nov 29 19:00:14 1993 Jim Wilson (wilson@sphagnum.cygnus.com) + + * reload.c (find_reloads_toplev): Replace obsolete reference to + BYTE_LOADS_*_EXTEND with LOAD_EXTEND_OP. + + *** clean-ss-931128/reload.c Sun Nov 14 16:20:01 1993 + --- ss-931128/reload.c Mon Nov 29 18:52:55 1993 + *************** find_reloads_toplev (x, opnum, type, ind + *** 3888,3894 **** + force a reload in that case. So we should not do anything here. */ + + else if (regno >= FIRST_PSEUDO_REGISTER + ! #if defined(BYTE_LOADS_ZERO_EXTEND) || defined(BYTE_LOADS_SIGN_EXTEND) + && (GET_MODE_SIZE (GET_MODE (x)) + <= GET_MODE_SIZE (GET_MODE (SUBREG_REG (x)))) + #endif + --- 3888,3894 ---- + force a reload in that case. So we should not do anything here. */ + + else if (regno >= FIRST_PSEUDO_REGISTER + ! #ifdef LOAD_EXTEND_OP + && (GET_MODE_SIZE (GET_MODE (x)) + <= GET_MODE_SIZE (GET_MODE (SUBREG_REG (x)))) + #endif + + SunOS 4.x (Solaris 1.x) You may have to use -lresolv on SunOS. However, beware that this links in a new version of gethostbyname that does not @@ -268,7 +423,8 @@ SunOS 4.x (Solaris 1.x) Some people have reported problems with the SunOS version of -lresolv and/or in.named, and suggest that you get a newer version. The symptoms are delays when you connect to the - SMTP server on a SunOS machine. There is a version of BIND + SMTP server on a SunOS machine or having your domain added to + addresses inappropriately. There is a version of BIND version 4.9 on gatekeeper.DEC.COM in pub/BSD/bind/4.9. There is substantial disagreement about whether you can make @@ -299,15 +455,21 @@ Solaris 2.x (SunOS 5.x) The Solaris "syslog" function is apparently limited to something about 90 characters because of a kernel limitation. If you have - source code, you can probably up this number. Bill Wisner - <wisner@well.sf.ca.us> was able to get an unofficial, unsupported - patch. + source code, you can probably up this number. The syslogd patch + is included in kernel jumbo patch for Solaris 2.2 as of revision + -39 or so. At least one person is running with patch 100999-45 + and their long lost sendmail logging is finally showing up. At + least one other person is running with patch 101318 installed + under Solaris 2.3 with success. OSF/1 - If you are compiling on OSF/1 (DEC Alpha), you must use -lmld - and -non_shared (otherwise it core dumps on startup). Also, - the enclosed makefile removed /usr/sbin/smtpd; if you need it, - just create the link to the sendmail binary. + If you are compiling on OSF/1 (DEC Alpha), you must use + -L/usr/shlib (otherwise it core dumps on startup). You may also + need -mld to get the nlist() function, although some versions + apparently don't need this. + + Also, the enclosed makefile removed /usr/sbin/smtpd; if you need + it, just create the link to the sendmail binary. NeXT If you are compiling on NeXT, you will have to create an empty @@ -329,9 +491,31 @@ NeXT You may have to use -DNeXT. -BSDI (BSD/386) - I have reports that the "m4" from BSDI won't handle the config - files properly. I haven't had a chance to test this myself. +BSDI (BSD/386) 1.0, NetBSD 0.9, FreeBSD 1.0 + The "m4" from BSDI won't handle the config files properly. + I haven't had a chance to test this myself. + + The M4 shipped in FreeBSD and NetBSD 0.9 don't handle the config + files properly. One must use either GNU m4 1.1 or the PD-M4 + recently posted in comp.os.386bsd.bugs (and maybe others). + NetBSD-current includes the PD-M4 (as stated in the NetBSD file + CHANGES). + + FreeBSD 1.0 RELEASE has uname(2) now. Use -DUSEUNAME in order to + use it (look into Makefile.FreeBSD). NetBSD-current may have + it too but it has not been verified. + + You cannot port the latest version of the Berkeley db library + and use it with sendmail without recompiling the world. This + is because C library routines use the older version which have + incompatible header files -- the result is that it can't read + other system files, such as /etc/passwd, unless you use the + new db format throughout your system. You should normally just + use the version of db supplied in your release. You may need + to use -DOLD_NEWDB to make this work -- this turns off some + new interface calls (for file locking) that are not in older + versions of db. You'll get compile errors if you need this + flag and don't have it set. 4.3BSD If you are running a "virgin" version of 4.3BSD, you'll have @@ -346,31 +530,6 @@ BSDI (BSD/386) copy ../contrib/oldbind.compat.c into src and add oldbind.compat.o to OBJADD in the Makefile. -Linux - From: Karl London <karl@borg.demon.co.uk> - Subject: Little bit to add to a readme for Linux for 8.6 - Date: Fri, 10 Sep 1993 20:16:05 +0100 (BST) - - Below is a copy of a section of the /usr/include/unistd.h from - linux libc-4.4.1 which needs changing because of a bug in the - header files. Should be fixed for future releases.. - - Karl - - The #if 0 and #endif are new!! - - ------- - - If OPTS begins with `--', then non-option arguments - are treated as arguments to the option '\0'. - This behavior is specific to the GNU `getopt'. */ - #if 0 - extern int getopt __P ((int __argc, char *__const * __argv, - __const char *__opts)); - #endif - extern int opterr; - extern int optind; - A/UX Date: Tue, 12 Oct 1993 18:28:28 -0400 (EDT) From: "Eric C. Hagberg" <hagberg@med.cornell.edu> @@ -401,6 +560,64 @@ DG/UX DG/UX -- the person who has this working, Douglas Anderson <dlander@afterlife.ncsc.mil>, used procmail instead. +System V Release 4 Based Systems + There is a single Makefile that is intended for all SVR4-based + systems (called Makefile.SVR4). It defines __svr4__, which is + predefined by some compilers. If your compiler already defines + this compile variable, you can delete the definition from the + Makefile. + + It's been tested on Dell Issue 2.2. + +DELL SVR4 + Date: Mon, 06 Dec 1993 10:42:29 EST + From: "Kimmo Suominen" <kim@grendel.lut.fi> + Message-ID: <2d0352f9.lento29@lento29.UUCP> + To: eric@cs.berkeley.edu + Cc: sendmail@cs.berkeley.edu + Subject: Notes for DELL SVR4 + + Eric, + + Here are some notes for compiling Sendmail 8.6.4 on DELL SVR4. I ran + across these things when helping out some people who contacted me by + e-mail. + + 1) Use gcc 2.4.5 (or later?). Dell distributes gcc 2.1 with their + Issue 2.2 Unix. It is too old, and gives you problems with + clock.c, because sigset_t won't get defined in <sys/signal.h>. + This is due to a problematic protection rule in there, and is + fixed with gcc 2.4.5. + + 2) If you don't use the new Berkeley DB (-DNEWDB), then you need + to add "-lc -lucb" to the libraries to link with. This is because + the -ldbm distributed by Dell needs the bcopy, bcmp and bzero + functions. It is important that you specify both libraries in + the given order to be sure you only get the BSTRING functions + from the UCB library (and not the signal routines etc.). + + 3) Don't leave out "-lelf" even if compiling with "-lc -lucb". + The UCB library also has another copy of the nlist routines, + but we do want the ones from "-lelf". + + If anyone needs a compiled gcc 2.4.5 and/or a ported DB library, they + can use anonymous ftp to fetch them from lut.fi in the /kim directory. + They are copies of what I use on grendel.lut.fi, and offering them + does not imply that I would also support them. I have sent the DB + port for SVR4 back to Keith Bostic for inclusion in the official + distribution, but I haven't heard anything from him as of today. + + - gcc-2.4.5-svr4.tar.gz (gcc 2.4.5 and the corresponding libg++) + - db-1.72.tar.gz (with source, objects and a installed copy) + + Cheers + + Kim + -- + * Kimmo.Suominen@lut.fi * SysVr4 enthusiast at GRENDEL.LUT.FI * + * KIM@FINFILES.BITNET * Postmaster and Hostmaster at LUT.FI * + * + 358 200 865 718 * Unix area moderator at NIC.FUNET.FI * + + Non-DNS based sites This version of sendmail always tries to connect to the Domain Name System (DNS) to resolve names, regardless of the setting @@ -426,6 +643,42 @@ GNU getopt by the double call. Use the version in conf.c instead. ++--------------+ +| MANUAL PAGES | ++--------------+ + +The manual pages have been written against the -mandoc macros +instead of the -man macros. The latest version of groff has them +included. You can also get a copy from FTP.UU.NET in directory +/systems/unix/bsd-sources/share/tmac. + + ++-----------------+ +| DEBUGGING HOOKS | ++-----------------+ + +As of 8.6.5, sendmail daemons will catch a SIGUSR1 signal and log +some debugging output (logged at LOG_DEBUG severity). The +information dumped is: + + * The value of the $j macro. + * A warning if $j is not in the set $=w. + * A list of the open file descriptors. + * The contents of the connection cache. + * If ruleset 89 is defined, it is evaluated and the results printed. + +This allows you to get information regarding the runtime state of the +daemon on the fly. This should not be done too frequently, since +the process of rewriting may lose memory which will not be recovered. +Also, ruleset 89 may call non-reentrant routines, so there is a small +non-zero probability that this will cause other problems. It is +really only for debugging serious problems. + +A typical formulation of ruleset 89 would be: + + R$* $@ $>0 some test address + + +-----------------------------+ | DESCRIPTION OF SOURCE FILES | +-----------------------------+ @@ -489,4 +742,4 @@ version.c The version number and information about this Eric Allman -(Version 8.31, last update 10/31/93 11:32:52) +(Version 8.47, last update 1/12/94 05:59:56) |
