Merge from vendor branch DIFFUTILS:
[dragonfly.git] / contrib / traceroute / INSTALL
1 @(#) $Header: INSTALL,v 1.7 96/09/18 21:09:56 leres Exp $ (LBL)
2
3 Traceroute is known to build and run under SunOS 4.1.4 and Solaris 5.4.
4 If you are running a really old kernel, see the instructions under the
5 title "KERNEL MODIFICATIONS" further down.
6
7 To build traceroute, first customize any paths in Makefile.in, then run
8 "./configure" (a shell script). The configure script will determine
9 your system attributes and generate an appropriate Makefile from
10 Makefile.in. Next run "make". If everything goes well you can su to
11 root and run "make install" and "make install-man". Note that traceroute
12 must be installed setuid to root or run as root.
13
14 If configure fails for some reason and decide to submit a bug report to
15 traceroute@ee.lbl.gov, please include a copy of config.log.
16
17 You will need an ANSI C compiler to build libpcap. The configure script
18 will abort if your compiler is not ANSI compliant. If this happens, use
19 the GNU C compiler, available via anonymous ftp:
20
21         ftp://prep.ai.mit.edu/pub/gnu/gcc-*.tar.gz
22
23 KERNEL MODIFICATIONS
24 --------------------
25 If yor have a really old system, it may be necessary to modify your
26 kernel before traceroute will work. If you want to hack on your kernel,
27 a modified version of the routine rip_output (normally found in the
28 file /sys/netinet/raw_ip.c) can be found in rip_output.c. This code may
29 or may not resemble the code in your kernel. It may offer you a place
30 to start but we make no promises. If you do hack your kernel, remember
31 to test everything that uses raw ip sockets (e.g., ping and
32 egpup/gated) & make sure they still work. We wish you the best of luck
33 and you're on your own.
34
35 Some older kernels forward icmp packets that have a ttl of zero. If
36 your system has this bug, you might want to fix it while you're in the
37 kernel.  (This bug appears in all releases of BSD up to but not
38 including 4.3tahoe. If your version of netinet/ip_icmp.c is any earlier
39 than 7.3 (April, '87), it has the bug.)  The fix is just to add the
40 line:
41
42         ip->ip_ttl = MAXTTL;
43
44 after the line:
45
46         ip->ip_src = t;
47
48 (or anywhere before the call to icmp_send) in routine icmp_reflect.
49
50 If you're running this on a pre-4.3bsd system (e.g., SunOS 3) that
51 strips ip headers from icmp messages, add -DARCHAIC to CFLAGS in the
52 Makefile.  Also note that rip_output contains a conditional for a
53 4.2/4.3 change in the location of a raw socket's protocol number.  I've
54 checked this under 4.3 & SunOS 3 but you should double-check your
55 system to make sure the appropriate branch of the #if is taken (check
56 the line that assigned to ip->ip_p in your system's original
57 rip_output).
58
59
60 FILES
61 -----
62 CHANGES         - description of differences between releases
63 FILES           - list of files exported as part of the distribution
64 INSTALL         - this file
65 Makefile.in     - compilation rules (input to the configure script)
66 README          - description of distribution
67 VERSION         - version of this release
68 acsite.m4       - autoconf macros
69 config.guess    - autoconf support
70 config.sub      - autoconf support
71 configure       - configure script (run this first)
72 configure.in    - configure script source
73 install-sh      - BSD style install script
74 lbl/gnuc.h      - gcc macros and defines
75 lbl/os-*.h      - os dependent defines and prototypes
76 mean.awk        - awk script to print out the mean time along a route
77 median.awk      - awk script to print out the median time along a route
78 mkdep           - construct Makefile dependency list
79 rip_output.c    - sample rip_output() from  /sys/netinet/raw_ip.c
80 traceroute.8    - manual entry
81 traceroute.c    - main program
82 strerror.c      - emulation routine