summaryrefslogtreecommitdiff
path: root/man/lsdistcc.1
blob: c6d9556a9221ef6bbe94f4be3cd0f13ecc7156b1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
.TH lsdistcc 1 "1 May 2012"

.SH "NAME"
lsdistcc \- simple distcc server discovery

.SH "SYNOPSIS"
.B lsdistcc
[\fIOPTIONS\fR] [\fIFORMAT\fR]
.PP
.B lsdistcc
[\fIOPTIONS\fR]
.I host1 ...

.SH "DESCRIPTION"
.B lsdistcc
autodetects listening distcc servers either by looking in DNS for
hosts named according to a given
.IR FORMAT ,
or by checking the host names given on the command line.

Hosts are considered good servers based solely on whether their name
fits the format and whether they are listening on the right port (and
optionally whether they respond when you send them a compile job).

Scans for hosts named according to
.I FORMAT
(default is "distcc%d"; see
.BR printf (3))
and starting from 1, so hosts such as distcc1, distcc2, and so on.
Stops after 7 seconds or the first host name that does not resolve.
Prints the names of all such servers listening on distcc's port.

If a list of host names is given in the command line,
.B lsdistcc
will only check those hosts.

.SH "OPTIONS"
.TP
.B --help
Displays summary instructions

.TP
.B -l
Output latency in milliseconds after each hostname
(not including DNS latency)

.TP
.B -n
Print IP address rather than name

.TP
.B -x
Append ,down to down hosts in host list

.TP
.BI -t "TIMEOUT"
Set number of seconds to stop searching after [7]

.TP
.BI -h "HTIMEOUT"
Set number of milliseconds before retrying gethostbyname [500]

.TP
.BI -c "CTIMEOUT"
Set number of milliseconds before giving up on connect [900]
(0 to inhibit connect)

.TP
.BI -k "KTIMEOUT"
Set number of milliseconds before giving up on compile [1500]
(0 to inhibit compile)

.TP
.BI -m "BITS"
Set number of bits of address that must match first host found [0]

.TP
.BI -o "OVERLAP"
Set number of extra DNS requests to send [1]

.TP
.BI -g "DNSGAP"
Set number of missing DNS entries to tolerate [0]

.TP
.BI -r "PORT"
Port to connect to [3632]

.TP
.BI -P "PROTOCOL"
Protocol version to use (1-3) [1]

.TP
.BI -p "COMPILER"
Name of compiler to use [none]

.TP
.B -d
Append DNS domain name to format

.TP
.B -v
Verbose

.SH "EXAMPLES"
Scan for servers named distcc1, distcc2, ...
that provide a compiler named gcc-4.6
and include their latencies in the output:

.RS
$ lsdistcc \-l \-pgcc-4.6
.RE

Scan for a compiler named gcc-4.6 on the servers hosta, somehost, hostx, and hosty:

.RS
$ lsdistcc \-pgcc-4.6 hosta somehost hostx hosty
.RE

To use the program in a build script, add the lines:

.RS
DISTCC_HOSTS=`lsdistcc`
.br
export DISTCC_HOSTS
.RE

before the line that invokes make.
Or, in a Makefile, add the line:

.RS
export DISTCC_HOSTS = $(shell lsdistcc)
.RE

Or use
.BR pump (1)
which automatically invokes lsdistcc if you set DISTCC_POTENTIAL_HOSTS.

.SH "EXIT STATUS"
The exit status is 0 if any servers were found, and 1 otherwise.

Uses 'for i=1... sprintf(format, i)' to construct names of servers,
stops after 7 seconds or at second server that doesn't resolve,
prints the names of all such servers listening on distcc's port.
Default format is distcc%d.

.SH "SEE ALSO"
.BR distcc (1),
.BR distccd (1),
.BR pump (1),
.BR printf (3)

.I http://code.google.com/p/distcc/

.SH "AUTHOR"
.B lsdistcc
was written by Dan Kegel, Dongmin Zhang, and Manos Renieris.

This manual page was written by Daniel Hartwig for the Debian project.