Return to BSD News archive
Xref: sserve comp.mail.sendmail:8599 comp.sys.sun.admin:18527 comp.unix.bsd:12655 Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!elroy.jpl.nasa.gov!usc!sol.ctr.columbia.edu!destroyer!news.itd.umich.edu!hellcow.css.itd.umich.edu!pauls From: pauls@css.itd.umich.edu (Paul Southworth) Newsgroups: comp.mail.sendmail,comp.sys.sun.admin,comp.unix.bsd Subject: Sendmail 8.x with user databases for the complete idiot Followup-To: comp.mail.sendmail Date: 18 Sep 1993 02:37:02 GMT Organization: University of Michigan ITD Consulting and Support Services Lines: 112 Distribution: world Message-ID: <27ds8e$s9i@terminator.rs.itd.umich.edu> NNTP-Posting-Host: hellcow.css.itd.umich.edu Summary: Now, even a monkey could do it. Keywords: sendmail sun sunos make BSD For the last two weeks I struggled to make sendmail 8.5 and then 8.6b11 work under SunOS 4.1.3. These are the things I had to do to get, specifically, the user database features to work. If you follow these instructions properly, sendmail will work for you. None of this is difficult. If you don't follow these procedures, sendmail will probably work fine and the user database lookups will probably be hopelessly broken. 1. I built the Net2 pmake. Although there is a makefile in the sendmail source tree for the SunOS make, there are all sorts of other little and not-so-little things that you really need the BSD make for. The biggest one of these is the BSD4.4 libdb package. Other less-important examples are "makemap" and the cf stuff. I posted the diffs to alt.sources that you can use to modify the Net2 distribution's make sources found on ftp.uu.net, wuarchive.wustl.edu, etc. Ask me for them and I will mail them to you. Otherwise get them from an alt.sources archive. If you get them from an archive, you will need strerror.c out of lib/libc/stdio in the Net2 source distribution *unless* you have a shared library installed on your system with a recent version of BIND, in which case it's irrelevant (that little fact was not in my alt.sources posting). Put strerror.c in make/lst.lib and modify Makefile appropriately. 2. I used GCC 2.3.3. I could never get the sources to compile out of the box without using GCC. Sun's stock cc wouldn't do it for me. You will get strange link errors if you don't use it. I am not a programmer so I can't tell you if this is easily fixed. With GCC 2.3.3, no modifications to the sources were necessary. 3. I used the BSD4.4 libdb package version 1.71. You really can't use the earlier versions. Keith Bostic has made several changes in the last few days that were very important and I am grateful for his speedy and accurate fixes -- with database lookups remained totally broken with the 1.6 and 1.7 releases. Get 1.71. You'll want the new BSD "make" to build this. 4. I built the BSD4.4 libdb package without ndbm.o and ndbm.h. If you read the READ_ME in the sendmail src directory Eric explains why you should do this. Just edit the libdb Makefile and rename or remove the ndbm.h that's in the libdb distribution. ndbm.h also exists in /usr/include under SunOS 4.1.3 and you can leave that one alone. 5. I used the -DNEWDB and -DNDBM CFLAGS in the sendmail Makefile. I did not use the -DNIS flag because I don't use NIS. I have no idea if that would change functionality and I don't know if any of this would work under NIS or not. 6. Be sure to edit the sendmail Makefile to point to the libdb include directory relevant to your OS under the PORT directory of the libdb source tree. Be sure ndbm.h isn't there when you do this. Either put cdefs.h into db/PORT/sunos.4.1.3/include/sys or edit sendmail/src/conf.h's #include for that file so it can find it. 7. Build the sendmail binary. My GCC didn't like -Bstatic but wanted -static instead. Do whatever works. 8. Install sendmail according to the instructions. Read all docs or you will be sorry. Print them. Sleep with them. Read them. Be sure you read the docs in the sendmail/cf directory too or you will go crazy. 9. If you want to use the user database functions: a. Be sure you followed the previous instructions exactly. b. Be sure your sendmail.cf is pointing to the database file properly. c. Invoke sendmail as "sendmail -bd -d28.99 -q1h" (or whatever you want your queue interval to be. "-d28.99" is the debug level relevant to the database lookups. When you telnet to the sendmail port and do VRFY's and EXPN's, that flag will tell you what the hell is going on. d. IMPORTANT TIP FOR EDITING USER DATABASE! Do NOT use any capital letters in the first part of each line (before the first ":"). While the lookups are not case sensitive, the database will break if you use capital letters in the first part of the entry line. Example: Joe.User:maildrop joe@host.domain # This is WRONG joe.user:maildrop joe@host.domain # This is RIGHT joe:mailname Joe.User@host.domain # This is OK Mail sent to Joe.User@host.domain is OK when "joe.user" has a maildrop, but will be broken if the maildrop is "Joe.User". I didn't see this in the docs and may be a bug but if you are careful it won't make a difference. 10. Where I got my sources (you should use the archive server nearest you - many archives contain the Net2 and alt.sources files): a. sendmail - ftp.cs.berkeley.edu: /ucb/sendmail (get all) b. libdb - ftp.cs.berkeley.edu: /ucb/4bsd/db.tar.Z c. BSD make - ftp.uu.net: /systems/unix/bsd-sources/usr.bin/make /systems/unix/bsd-sources/share/mk d. make diffs - wuarchive.wustl.edu: /usenet/alt.sources/articles/8767 e. GCC - prep.ai.mit.edu: /pub/gnu You should visit a mirror site to be kind to GNU. Use archie. GCC 2.4.5 is current and also appeared to work fine with sendmail. 11. Who you should thank for their great support and help (Thanks!!) Eric Allman <eric@cs.berkeley.edu> Primary sendmail author Keith Bostic <bostic@cs.berkeley.edu> Primary libdb author Mark Thomas <Mark_Thomas@jane.sas.upenn.edu> Sendmail help Chuck Seeger <cseeger@nielsen.com> BSD make help Alan Clegg <abc@banjo.concert.net> BSD make help