# # /usr/src/sendmail-8.9.3.log/sendmail-8.9.3-ruth-havedone.txt # # # To compile with no DNS support whatsoever, proceed as follows: # # As leif:adm cd /usr/src/sendmail-8.9.3/src # save this patch from here and up to but not including the line # that says that the patch ends: /usr/src/sendmail-8.9.3/src/conf.h.NO-DNS.patch *** sendmail-8.9.3/src/conf.h.orig Fri Jan 29 00:28:34 1999 --- sendmail-8.9.3/src/conf.h Fri Sep 3 00:37:55 1999 *************** *** 88,95 **** # define NETISO 0 /* do not include ISO socket support */ # endif # ifndef NAMED_BIND ! # define NAMED_BIND 1 /* use Berkeley Internet Domain Server */ # endif # ifndef XDEBUG --- 88,100 ---- # define NETISO 0 /* do not include ISO socket support */ # endif + /* # ifndef NAMED_BIND + /* # define NAMED_BIND 1 /* use Berkeley Internet Domain Server */ + /* # endif + */ + # ifndef NAMED_BIND ! # define NAMED_BIND 0 /* DON'T use Berkeley Internet Domain Server */ # endif # ifndef XDEBUG # the patch ends here, or above this line actually. # # Apply patch thusly: # patch < conf.h.NO-DNS.patch # # The reminder is the same as for a normal, "DNS-enabled", # compile, though the choise of config-files will of course # depend on if you intend to run "nullclient"/NO DNS ("ruth" # files) or a normal setup (with or without DNS support): # ______________________________________________________________ # # "ruth" is my site and host-name. You can search-replace it # in this file into your hostname before applying this in your # environment. Please note that I have bind-8.1.2 installed # under /usr/bind, and that this sendmail compile is linked to # that bind. If you are using an older version of bind, or the # OS-builtin, you must omit some details from the below, like # you must comment out all lines mentioning /usr/bind using # "dnl" when creating the BuildTools/Site/ruth.m4 file. # # For details on the bind-8.1.2 install -- see # /usr/src/bind-8.1.2.log/havedone.txt. # # Also note that I have db-2.7.5 compiled & installed -- see # /usr/src/db-2.7.5.log/db-2.7.5-havedone.txt for how that was # done. # # S.u.S.E. "makemap" might be OK but we will install from source # anyway. "praliases" is missing and needs to be installed. # Both are tools and their installation can be done after # sendmail is installed, see much further down! # # If you compile elsewhere than under /usr/src, it is a good # idea to search-replace /usr/src into your location in the # below before applying! You may have other needs. Most lines # in the below ruth.m4 (replace that with your name!) is # commented out using "dnl". If you need them in, remove the # "dnl " in front, read the sendmail documentation and take # whatever extra steps that needs to be taken in order to make # use of the functionality. Hint: http://www.sendmail.org # # Search-replace "swip.net" into your domain-name. # # Finally, search-replace "leif" into your own account under # which you compile stuff -- I have "leif:adm" own /usr/src, # /usr/local/src and even /usr/local/bin, /usr/local/man, etc. # # Beginning with sendmail-8.10, sendmail will use # /etc/mail/sendmail.cf. I will use it already from -8.9.1, # using -D_PATH_SENDMAILCF, see "ruth.m4" in BuildTools/Site: # # As leif:adm su - # As root:root chown leif:adm /usr/doc /usr/src ls -ld /usr/lib/libdb* /lib/libdb* # # -rwxr-xr-x ... 241431 Jan 14 1999 /lib/libdb.so.2 # -rw-r--r-- ... 737026 Jan 14 1999 /usr/lib/libdb.a # lrwxrwxrwx ... 20 Apr 6 06:36 /usr/lib/libdb.so -> ../../lib/libdb.so.2 # -rwxr-xr-x ... 187538 Jul 24 1998 /usr/lib/libdb.so.2 # lrwxrwxrwx ... 10 Apr 6 00:27 /usr/lib/libdbm.so -> libgdbm.so # lrwxrwxrwx ... 12 Apr 6 00:27 /usr/lib/libdbm.so.1 -> libgdbm.so.1 # # Note the two different versions of libdb.so.2 above. # Let's at least not have any of them as default,... # rm /usr/lib/libdb.so # ( link to ../../lib/libdb.so.2 ) exit # As leif:adm mkdir -p /usr/src/sendmail-8.9.3.log /usr/doc/sendmail/op cd /usr/src tar -zxvf /pub/apps/sendmail.8.9.3.tar.gz rm -rf /usr/doc/sendmail/op/* cp -p /usr/src/sendmail-8.9.3/doc/op/* /usr/doc/sendmail/op emacs -nw /usr/src/sendmail-8.9.3.log/sendmail-8.9.3-ruth-havedone.txt # this file, added above stuff, and continuing to add everything # I do, see below, while working in a different window: # less -r /usr/src/sendmail-8.9.3/BuildTools/README cd /usr/src/sendmail-8.9.3/BuildTools/Site ##emacs -nw ruth.m4 ## in the below, the "\" are just so the cat works: cat > ruth.m4 <&1 | \ tee /usr/src/sendmail-8.9.3.log/LEGE-Build-f-ruth.log su - # As root:root mkdir -p /var/spool/mqueue; chmod 700 /var/spool/mqueue chown root:mail /var/spool/mqueue mkdir -p /etc/mail; chgrp adm /etc/mail; chmod 755 /etc/mail cp -p /usr/src/sendmail-8.9.3/src/sendmail.hf /etc/mail/sendmail.hf [ -f /usr/bin/newaliases ] || \ ( cd /usr/bin; ln -s /usr/sbin/sendmail newaliases; \ chown leif:adm /usr/bin/newaliases ) [ -f /usr/bin/mailq ] || \ ( cd /usr/bin; ln -s /usr/sbin/sendmail mailq; \ chown leif:adm /usr/bin/mailq ) cd /usr/src/sendmail-8.9.3/src/obj.Linux.2.0.36.i586 rm -f /usr/man/{man,cat,preformat/cat}5/aliases.5* \ /var/catman/cat5/aliases.5* \ /usr/man/{man,cat,preformat/cat}1/mailq.1* \ /var/catman/cat1/mailq.1* \ /usr/man/{man,cat,preformat/cat}1/newaliases.1* \ /var/catman/cat1/newaliases.1* \ /usr/man/{man,cat,preformat/cat}8/sendmail.8* \ /var/catman/cat8/sendmail.8* \ /usr/man/allman/*/{aliases,mailq,newaliases,sendmail}*.gz if [ -d /usr/man/preformat ]; then cp -p aliases.5 /usr/man/man5/aliases.5 cp -p mailq.1 /usr/man/man1/mailq.1 cp -p newaliases.1 /usr/man/man1/newaliases.1 cp -p sendmail.8 /usr/man/man8/sendmail.8 gzip -9 < aliases.0 > /usr/man/preformat/cat5/aliases.5.gz chown leif:adm /usr/man/preformat/cat5/aliases.5.gz gzip -9 < mailq.0 > /usr/man/preformat/cat1/mailq.1.gz chown leif:adm /usr/man/preformat/cat1/mailq.1.gz gzip -9 < newaliases.0 > /usr/man/preformat/cat1/newaliases.1.gz chown leif:adm /usr/man/preformat/cat1/newaliases.1.gz gzip -9 < sendmail.0 > /usr/man/preformat/cat8/sendmail.8.gz chown leif:adm /usr/man/preformat/cat8/sendmail.8.gz else gzip -9 < aliases.5 > /usr/man/man5/aliases.5.gz chown leif:adm /usr/man/man5/aliases.5.gz gzip -9 < mailq.1 > /usr/man/man1/mailq.1.gz chown leif:adm /usr/man/man1/mailq.1.gz gzip -9 < newaliases.1 > /usr/man/man1/newaliases.1.gz chown leif:adm /usr/man/man1/newaliases.1.gz gzip -9 < sendmail.8 > /usr/man/man8/sendmail.8.gz chown leif:adm /usr/man/man8/sendmail.8.gz fi if [ -d /usr/man/cat8 ]; then cp -p aliases.0 /usr/man/cat5/aliases.5 cp -p aliases.5 /usr/man/man5/aliases.5 cp -p mailq.0 /usr/man/cat8/mailq.1 cp -p mailq.1 /usr/man/man8/mailq.1 cp -p newaliases.0 /usr/man/cat8/newaliases.1 cp -p newaliases.1 /usr/man/man8/newaliases.1 cp -p sendmail.0 /usr/man/cat8/sendmail.8 (cd /usr/man/cat8 && ln -s sendmail.8 sendmail.1m) cp -p sendmail.8 /usr/man/man8/sendmail.8 (cd /usr/man/man8 && ln -s sendmail.8 sendmail.1m) fi if [ -d /usr/man/allman ]; then for p in 5/aliases.5 1/mailq.1 1/newaliases.1 8/sendmail.8; do cp -p /usr/man/man${p}.gz /usr/man/allman/man${p}.gz done fi ls -lrt /usr/man/{man,cat,preformat/cat}5/aliases.5* \ /var/catman/cat5/aliases.5* \ /usr/man/{man,cat,preformat/cat}1/mailq.1* \ /var/catman/cat1/mailq.1* \ /usr/man/{man,cat,preformat/cat}1/newaliases.1* \ /var/catman/cat1/newaliases.1* \ /usr/man/{man,cat,preformat/cat}8/sendmail.8* \ /var/catman/cat8/sendmail.8* \ /usr/man/allman/*/{aliases,mailq,newaliases,sendmail}*.gz \ 2>/dev/null strip sendmail chown root:root sendmail chmod 6555 sendmail kill `ps aux | grep sendmail | grep -v grep | awk -F' ' '{print $2;}'` cp -p sendmail /usr/sbin/sendmail cd /usr/src/sendmail-8.9.3/src/obj.Linux.2.0.36.i586 exit # As leif:adm cat > /usr/local/bin/op <&1 | tee \ /usr/local/src/xaliases-2.2/LEGE-make-xalparse.log strip xalparse su - # As root:root cd /usr/local/src/xalparse-1.4/ida/aux rm -f /usr/man/{man,cat,preformat/cat}8/xalparse.8* \ /var/catman/cat5/xalparse.8* \ /usr/man/allman/*/{xalparse}*.gz make install 2>&1 | tee \ /usr/local/src/xaliases-2.2/LEGE-make-install-xalparse.log if [ -d /usr/man/preformat ]; then cp -p xalparse.8 /usr/man/man8/xalparse.8 cp -p xalparse.8.gz /usr/man/preformat/cat8/xalparse.8.gz else gzip -9 < xalparse.8 > /usr/man/man8/xalparse.8.gz fi chown leif:adm /usr/local/bin/xalparse && \ chmod 775 /usr/local/bin/xalparse chown leif:adm /usr/local/src/xaliases-2.2/LEGE-make-install-xalparse.log cd /usr/local/src rm -rf /usr/local/src/xalparse-1.4 cd /usr/local/src/xaliases-2.2 cp -p xaliases /usr/local/bin/xaliases cd /usr/bin ln -s /usr/local/bin/xaliases . mkdir -p /etc/mail && chmod 755 /etc/mail cp -p /usr/local/src/xaliases-2.2/etc/mail/* /etc/mail exit # As leif:adm cd /usr/local/src mv xaliases-2.2 xaliases-2.2.log # Save these installation notes as # /usr/local/src/xaliases-2.2.log/havedone.txt # As leif:adm cd /usr/src/sendmail-8.9.3/makemap Build -c -f /usr/src/sendmail-8.9.3/BuildTools/Site/ruth.m4 2>&1 | \ tee /usr/src/sendmail-8.9.3.log/LEGE-Build-f-ruth-makemap.log cd /usr/src/sendmail-8.9.3/makemap/obj.Linux.2.0.36.i586 ls -ld makemap && strip makemap && ls -ld makemap su - # As root:root mv /usr/bin/makemap.orig.orig.orig /usr/bin/makemap.orig.orig.orig.orig mv /usr/bin/makemap.orig.orig /usr/bin/makemap.orig.orig.orig mv /usr/bin/makemap.orig /usr/bin/makemap.orig.orig mv /usr/bin/makemap /usr/bin/makemap.orig (cd /usr/bin && rm -f /usr/bin/makemap && ln -s /usr/sbin/makemap .) cp -p /usr/src/sendmail-8.9.3/makemap/obj.Linux.2.0.36.i586/makemap \ /usr/sbin/makemap cd /usr/src/sendmail-8.9.3/makemap/obj.Linux.2.0.36.i586 rm -f /usr/man/{man,cat,preformat/cat}8/makemap.8* \ /var/catman/cat8/makemap.8* \ /usr/man/allman/*/{makemap}*.gz if [ -d /usr/man/preformat ]; then cp -p makemap.8 /usr/man/man8/makemap.8 gzip -9 < makemap.0 > /usr/man/preformat/cat8/makemap.8.gz chown leif:adm /usr/man/preformat/cat8/makemap.8.gz else gzip -9 < makemap.8 > /usr/man/man8/makemap.8.gz chown leif:adm /usr/man/man8/makemap.8.gz fi if [ -d /usr/man/cat8 ]; then cp -p makemap.0 /usr/man/cat8/makemap.8 (cd /usr/man/cat8 && ln -s makemap.8 makemap.1m) cp -p makemap.8 /usr/man/man8/makemap.8 (cd /usr/man/man8 && ln -s makemap.8 makemap.1m) fi if [ -d /usr/man/allman ]; then for p in 8/makemap.8; do cp -p /usr/man/man${p}.gz /usr/man/allman/man${p}.gz done fi ls -lrt /usr/man/{man,cat,preformat/cat}8/makemap.8* \ /var/catman/cat8/makemap.8* \ /usr/man/allman/*/{makemap}*.gz \ 2>/dev/null exit # As leif:adm cd /usr/src/sendmail-8.9.3/praliases sed -e 's%/etc/aliases%/etc/mail/aliases%g' < praliases.c > \ praliases.c.LEGE && mv praliases.c praliases.c.orig \ && mv praliases.c.LEGE praliases.c && \ diff -c praliases.c.orig praliases.c > \ /usr/src/sendmail-8.9.3.log/LEGE-praliases.c.patch # # The above fixed the problem and saved a patch file that could # later be reapplied to a fresh source using e.g. # patch -p0 < /usr/src/sendmail-8.9.3.log/LEGE-praliases.c.patch # Build -c -f /usr/src/sendmail-8.9.3/BuildTools/Site/ruth.m4 2>&1 | \ tee /usr/src/sendmail-8.9.3.log/LEGE-Build-f-ruth-praliases.log cd /usr/src/sendmail-8.9.3/praliases/obj.Linux.2.0.36.i586 ls -ld praliases && strip praliases && ls -ld praliases su - # As root:root mv /usr/bin/praliases.orig.orig.orig /usr/bin/praliases.orig.orig.orig.orig mv /usr/bin/praliases.orig.orig /usr/bin/praliases.orig.orig.orig mv /usr/bin/praliases.orig /usr/bin/praliases.orig.orig mv /usr/bin/praliases /usr/bin/praliases.orig (cd /usr/bin && rm -f /usr/bin/praliases && ln -s /usr/sbin/praliases .) cp -p /usr/src/sendmail-8.9.3/praliases/obj.Linux.2.0.36.i586/praliases \ /usr/sbin/praliases cd /usr/src/sendmail-8.9.3/praliases/obj.Linux.2.0.36.i586 rm -f /usr/man/{man,cat,preformat/cat}8/praliases.8* \ /var/catman/cat8/praliases.8* \ /usr/man/allman/*/{praliases}*.gz if [ -d /usr/man/preformat ]; then cp -p praliases.8 /usr/man/man8/praliases.8 gzip -9 < praliases.0 > /usr/man/preformat/cat8/praliases.8.gz chown leif:adm /usr/man/preformat/cat8/praliases.8.gz else gzip -9 < praliases.8 > /usr/man/man8/praliases.8.gz chown leif:adm /usr/man/man8/praliases.8.gz fi if [ -d /usr/man/cat8 ]; then cp -p praliases.0 /usr/man/cat8/praliases.8 (cd /usr/man/cat8 && ln -s praliases.8 praliases.1m) cp -p praliases.8 /usr/man/man8/praliases.8 (cd /usr/man/man8 && ln -s praliases.8 praliases.1m) fi if [ -d /usr/man/allman ]; then for p in 8/praliases.8; do cp -p /usr/man/man${p}.gz /usr/man/allman/man${p}.gz done fi ls -lrt /usr/man/{man,cat,preformat/cat}8/praliases.8* \ /var/catman/cat8/praliases.8* \ /usr/man/allman/*/{praliases}*.gz \ 2>/dev/null exit # As leif:adm cd /usr/src/sendmail-8.9.3/smrsh/ Build -c -f /usr/src/sendmail-8.9.3/BuildTools/Site/ruth.m4 2>&1 | \ tee /usr/src/sendmail-8.9.3.log/LEGE-Build-f-ruth-smrsh.log cd /usr/src/sendmail-8.9.3/smrsh/obj.Linux.2.0.36.i586 ls -ld smrsh && strip smrsh && ls -ld smrsh su - # As root:root mkdir -p /usr/adm/sm.bin mv /usr/bin/smrsh.orig.orig.orig /usr/bin/smrsh.orig.orig.orig.orig mv /usr/bin/smrsh.orig.orig /usr/bin/smrsh.orig.orig.orig mv /usr/bin/smrsh.orig /usr/bin/smrsh.orig.orig mv /usr/bin/smrsh /usr/bin/smrsh.orig (cd /usr/bin && rm -f /usr/bin/smrsh && ln -s /usr/sbin/smrsh .) cp -p /usr/src/sendmail-8.9.3/smrsh/obj.Linux.2.0.36.i586/smrsh \ /usr/sbin/smrsh cd /usr/src/sendmail-8.9.3/smrsh/obj.Linux.2.0.36.i586 rm -f /usr/man/{man,cat,preformat/cat}8/smrsh.8* \ /var/catman/cat8/smrsh.8* \ /usr/man/allman/*/{smrsh}*.gz if [ -d /usr/man/preformat ]; then cp -p smrsh.8 /usr/man/man8/smrsh.8 gzip -9 < smrsh.0 > /usr/man/preformat/cat8/smrsh.8.gz chown leif:adm /usr/man/preformat/cat8/smrsh.8.gz else gzip -9 < smrsh.8 > /usr/man/man8/smrsh.8.gz chown leif:adm /usr/man/man8/smrsh.8.gz fi if [ -d /usr/man/cat8 ]; then cp -p smrsh.0 /usr/man/cat8/smrsh.8 (cd /usr/man/cat8 && ln -s smrsh.8 smrsh.1m) cp -p smrsh.8 /usr/man/man8/smrsh.8 (cd /usr/man/man8 && ln -s smrsh.8 smrsh.1m) fi if [ -d /usr/man/allman ]; then for p in 8/smrsh.8; do cp -p /usr/man/man${p}.gz /usr/man/allman/man${p}.gz done fi ls -lrt /usr/man/{man,cat,preformat/cat}8/smrsh.8* \ /var/catman/cat8/smrsh.8* \ /usr/man/allman/*/{smrsh}*.gz \ 2>/dev/null cd /usr/src/sendmail-8.9.3/smrsh/obj.Linux.2.0.36.i586 /usr/sbin/sendmail -d # (You will have a long timeout if you route through a host # that is not connected to any other net, which is why it can # be wise to execute this command first: # /sbin/route del 0.0.0.0) # # Expect this response (if compiled without DNS support, don't expect # "NAMED_BIND"): # # Version 8.9.3 # Compiled with: LOG MATCHGECOS MIME7TO8 MIME8TO7 NAMED_BIND NETINET # NETUNIX NEWDB QUEUE SCANF SMTP USERDB XDEBUG # /etc/mail/sendmail.cf: line 0: cannot open: No such file or directory # syserr: ExitStat = 71 # # ====finis: stat 72 e_id=NOQUEUE e_flags=0 # # INSTALLATION OF SENDMAIL'S CONFIGURATION FILES # ______________________________________________ # # # As root:root chmod 6755 /usr/bin/procmail /usr/bin/lockfile chmod g-w /etc/mail # procmail doesn't need it... cd /usr/src/sendmail-8.9.3/cf # (I often use /usr/site/mail/cf-8.9.3 instead of sendmail-8.9.3/cf) bzip -d < /pub/apps/sendmail-8.9.3-cf-cpio-idcmu.bz2 | cpio -idcmu cd /usr/src/sendmail-8.9.3/cf/cf # # As it so happens, the "old ruth" was just running a so called # "nullclient" configuration. While the "old elijah" was # running the extensive configuration. For historical reasons # then, the "ruth-files" are for a "nullclient" configuration # and we will use the "elijah-files" for the extensive config. # # # BUT, *IF* you applied the conf.h.NO-DNS.patch above *THEN* # instedad of using the "elijah" files, *DO* use the *ruth* # files! The "ruth" files _are_ for the nullclient setup, # without DNS! # # # Here I have already created elijah.smtp.mc, make_elijah and # the many other neccessary files, so... cp -p elijah.smtp.cf /etc/mail/sendmail.cf # ### YOU, on the other hand, will need to edit your own # ### configuration files -- OR manually edit # ### the /etc/mail/sendmail.cf I "cooked": chmod g-w /etc/mail/sendmail.cf cat > /etc/mail/sendmail.cw <