📄 read_me
字号:
try to divine: the name of your kernel, the name of the variable in the kernel to examine, the number of bits of precision in a fixed point load average, and so forth. In desperation, use LA_ZERO. The actual code is in conf.c -- it can be tweaked if you are brave.SFS_TYPE Encodes how your kernel can locate the amount of free space on a disk partition. This can be set to SFS_NONE (0) if you have no way of getting this information, SFS_USTAT (1) if you have the ustat(2) system call, SFS_4ARGS (2) if you have a four-argument statfs(2) system call (and the include file is <sys/statfs.h>), and SFS_VFS (3), SFS_MOUNT (4), SFS_STATFS (5) or SFS_STATVFS (6) if you have the two-argument statfs(2) system call, with includes in <sys/vfs.h>, <sys/mount.h>, <sys/statfs.h>, or <sys/statvfs.h> respectively. The default if nothing is defined is SFS_NONE.ERRLIST_PREDEFINED If set, assumes that some header file defines sys_errlist. This may be needed if you get type conflicts on this variable -- otherwise don't worry about it.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.BROKEN_RES_SEARCH On Ultrix (and maybe other systems?) if you use the res_search routine with an unknown host name, it returns -1 but sets h_errno to 0 instead of HOST_NOT_FOUND. If you set this, sendmail considers 0 to be the same as HOST_NOT_FOUND.+-----------------------+| COMPILE-TIME FEATURES |+-----------------------+There are a bunch of features that you can decide to compile in, suchas selecting various database packages and special protocol support.Several are assumed based on other compilation flags -- if you want to"un-assume" something, you probably need to edit conf.h. Compilationflags that add support for special features include:NDBM Include support for "new" DBM library for aliases and maps. Normally defined in the Makefile.NEWDB Include support for Berkeley "db" package (hash & btree) for aliases and maps. Normally defined in the Makefile.OLD_NEWDB If non-zero, the version of NEWDB you have is the old one that does not include the "fd" call. This call was added in version 1.5 of the Berkeley DB code. If you use -DOLD_NEWDB=0 it forces you to use the new interface.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 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. 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.NETINET Set this to get TCP/IP support. Defined by default in conf.h. You probably want this.NETISO Define this to get ISO networking support.SMTP Define this to get the SMTP code. Implied by NETINET or NETISO.NAMED_BIND Define this to get DNS (name daemon) support, including MX support. The specs you must use this if you run SMTP. Defined by default in conf.h.QUEUE Define this to get queueing code. Implied by NETINET or NETISO; required by SMTP. This gives you other good stuff -- it should be on.DAEMON Define this to get general network support. Implied by NETINET or NETISO. Defined by default in conf.h. You almost certainly want it on.MATCHGECOS Permit fuzzy matching of user names against the full name (GECOS) field in the /etc/passwd file. This should probably be on, since you can disable it from the config file if you want to. Defined by default in conf.h.SETPROCTITLE Try to set the string printed by "ps" to something informative about what sendmail is doing. Defined by 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 theyhave known bugs that should give you pause.Common problems in old versions include "undefined" errors fordn_skipname.Some people have had a problem with BIND 4.9; it uses some routinesthat it expects to be externally defined such as strerror(). It mayhelp to link with "-l44bsd" to solve this problem.!PLEASE! be sure to link with the same version of the resolver asthe header files you used -- some people have used the 4.9 headersand linked with BIND 4.8 or vice versa, and it doesn't work.Unfortunately, it doesn't fail in an obvious way -- things justsubtly 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)))) #endifSunOS 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 understand NIS, so you must have all of your hosts in DNS. 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 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 this work with resolv+, which allows you to specify a search-path of services. Some people report that it works fine, others claim it doesn't work at all (including causing sendmail to drop core when it tries to do multiple resolv+ lookups for a single job). I haven't tried resolv+, as we use DNS exclusively. Should you want to try resolv+, it is on ftp.uu.net in /networking/ip/dns.Solaris 2.x (SunOS 5.x) To compile for Solaris, be sure you use -DSOLARIS. To the best of my knowledge, Solaris does not have the gethostbyname problem described above. However, it does have another one: From a correspondent: For solaris 2.2, I have hosts: files dns in /etc/nsswitch.conf and /etc/hosts has to have the fully qualified host name. I think "files" has to be before "dns" in /etc/nsswitch.conf during bootup. From another correspondent: When running sendmail under Solaris, the gethostbyname() hack in conf.c which should perform proper canonicalization of host names could fail. Result: the host name is not canonicalized despite the hack, and you'll have to define $j and $m in sendmail.cf somewhere. The reason could be that /etc/nsswitch.conf is improperly configured (at least from sendmail's point of view). For example, the line hosts: files nisplus dns will make gethostbyname() look in /etc/hosts first, then ask nisplus, then dns. However, if /etc/hosts does not contain the full canonicalized hostname, then no amount of gethostbyname()s will work. Solution (or rather, a workaround): Ask nisplus first, then dns, then local files: hosts: nisplus dns [NOTFOUND=return] files 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. You can get patches that fix this problem: the patch ids are: Solaris 2.1 100834 Solaris 2.2 100999 Solaris 2.3 101318 Be sure you have the appropriate patch installed or you won't see system logging.OSF/1 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.IRIX The header files on SGI IRIX are completely prototyped, and as a result you can sometimes get some warning messages during compilation. These can be ignored. There are two errors in deliver only if you are using gcc, both of the form ``warning: passing arg N of `execve' from incompatible pointer type''. Also, if you compile with -DNIS, you will get a complaint about a declaration of struct dom_binding in a prototype when compiling map.c; this is not important because the function being prototyped is not used in that file.NeXT If you are compiling on NeXT, you will have to create an empty file "unistd.h" and create a file "dirent.h" containing: #include <sys/dir.h> #define dirent direct (The Makefile.NeXT should try to do both of these for you.) Apparently, there is a bug in getservbyname on Nextstep 3.0 that causes it to fail under some circumstances with the message "SYSERR: service "smtp" unknown" logged. You should be able to work around this by including the line: OOPort=25 in your .cf file. You may have to use -DNeXT.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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -