2.11BSD/src/usr.sbin/named/README

---------------------
This directory contains all the info and sources that
exist for the Berkeley Internet Name Domain server.

bin       - shell scripts used by current Berkeley makefiles
man       - manual pages & documentation
doc       - copy of Bind Operations Guide, and other documents 
include   - include files to go in /usr/include
named     - name server sources
res       - source for C library resolver routines
	    (may be used as separate library, resolv.a)
master    - Sample data files
tools     - some test programs


Here is how to install the name server on 4.3BSD:

0) cp bin/mkdep /usr/ucb/mkdep
   cp bin/manroff /usr/man/manroff
1) cp include/arpa/* /usr/include/arpa  
2) cp include/*.h /usr/include 
3) cp man/*.1 /usr/man/manl
   cp man/*.3 /usr/man/man3
   cp man/*.5 /usr/man/man5
   cp man/*.7 /usr/man/man7
   cp man/*.8 /usr/man/man8
4) cp res/{res*.c,herror.c,Makefile} /usr/src/lib/libc/net
   cp res/strcasecmp.c /usr/src/lib/libc/gen
   cp res/named/{*.c,Makefile} /usr/src/lib/libc/net/named
5) add strcasecmp.[co] to the Makefile in /usr/src/lib/libc/gen
6) rebuild and install /lib/libc.a.
7) cd named; make depend; make named; make install
8) cd tools/nslookup; make nslookup; make install
9) create the master files (samples in master/*)
10) edit /etc/rc.local to include:

if [ -f /usr/sbin/named ]; then
        /usr/sbin/named; echo -n ' named' >/dev/console
fi

11) recompile network client and server programs that use gethostbyname,...


Here is how to install the name server on 4.2BSD or similar systems.
Rather than building libresolv.a, you may wish to integrate the resolver
routines into /lib/libc.a.  This is recommended to make it easy to recompile
network programs once named is running.  This procedure may require hand-
tayloring on some systems.

The mkdep script is used by "make depend" to regenerate Makefile dependency
lists.  It depends on the -M option to cc to produce dependencies.
If you don't have this option to cc, you may have to edit the "depend"
entry or the actual dependencies themselves.  Try skipping the "make depend"
steps.  If you get errors like
	"make: don't know how to make /usr/include/something.h"
then remove the dependency on something.h and try again.

You will need to chose a version of netdb.h.  First, check /usr/include/netdb.h
on your system.  If the hostent structure has a h_addr_list entry, you can
probably use your existing netdb.h or the one in include/netdb.h.
If the existing netdb.h in /usr/include does not have a h_addr_list field,
yoiu will have to decide whether to update to the 4.3BSD format of the hostent
structure.  This is the best approach, but cannot be used unless you plan
to upgrade entirely: if you use the new structure in /usr/include/resolv.h,
you must replace the gethostbyname and gethostbyaddr routines in /lib/libc.a
with the nameserver versions, and you must recompile any object files
that will be linked using the new libc.a.  If this doesn't make sense,
and /usr/include/netdb.h doesn't have an h_addr_list line, use
include/netdb.h.4.2 instead of netdb.h.

On systems with Sun RPC, you will have to merge include/netdb.h or
include/netdb.h.4.2 with /usr/include/netdb.h; copy the rpc-related lines
into the appropriate copy of netdb.h.  Alternatively, use an alternate
include path when compiling the resolver library and programs that use it.

0) cp tools/mkdep /usr/ucb/mkdep
   cp tools/manroff /usr/man/manroff
1) cp include/arpa/* /usr/include/arpa
2) cp include/resolv.h /usr/include
3) cp include/netdb.h /usr/include/netdb.h
OR
   cp include/netdb.h.4.2 /usr/include/netdb.h
OR
   edit /usr/include/netdb.h
4) cp man/*.1 /usr/man/manl
   cp man/*.3 /usr/man/man3
   cp man/*.5 /usr/man/man5
   cp man/*.7 /usr/man/man7
   cp man/*.8 /usr/man/man8
5) cd res; mkdep -f Makefile.resolv;
   make -f Makefile.resolv libresolv.a install
OR
   update the libc sources as in the 4.3BSD instructions above
   and use res/Makefile as a guide for integration
   and omit the RES=-lresolv in the next two steps
OR
   compile the .o files in res according to Makefile.resolv,
   then use place those object files in /lib/libc.a (keeping a backup!)
   and omit the RES=-lresolv in the next two steps
6) cd named; make depend; make RES=-lresolv named; make install
7) cd tools/nslookup; make RES=-lresolv nslookup install
8) create the master files (samples in master/*)
9) edit /etc/rc.local to include:

if [ -f /usr/sbin/named ]; then
        /usr/sbin/named; echo -n ' named' >/dev/console
fi

10) eventually, recompile network client and server programs that use
gethostbyname,...

If you have any problems or fixes send them to 

		bind@ucbarpa.berkeley.edu
	     or bind@ucbarpa.arpa

For sendmail that supports MX records, use anonymous ftp to obtain
	ucbarpa.Berkeley.EDU:~ftp/pub/4.3/sendmail.MX.tar.Z (compressed)
or
	ucbarpa.Berkeley.EDU:~ftp/pub/4.3/sendmail.MX.tar
(Check the dates on these files, as the version that works with the current
nameserver isn't quite ready yet.)