]> sigrok.org Git - sigrok-cli.git/blame - doc/sigrok-cli.1
doc: discuss "colons in conn= specs" in the manpage
[sigrok-cli.git] / doc / sigrok-cli.1
CommitLineData
c45dd41c 1.TH SIGROK\-CLI 1 "March 28, 2019"
43e5747a 2.SH "NAME"
53155b2f 3sigrok\-cli \- Command-line client for the sigrok software
43e5747a 4.SH "SYNOPSIS"
53155b2f 5.B sigrok\-cli [OPTIONS] [COMMAND]
43e5747a 6.SH "DESCRIPTION"
10d98b47
UH
7\fBsigrok\-cli\fP is a cross-platform command line utility for the
8\fBsigrok\fP software.
43e5747a 9.PP
10d98b47
UH
10It cannot display graphical output, but is still sufficient to run through
11the whole process of hardware initialization, acquisition, protocol decoding
12and saving the session.
43e5747a
UH
13.PP
14It is useful for running on remote or embedded systems, netbooks, PDAs,
15and for various other use-cases. It can display samples on standard output or
16save them in various file formats.
53155b2f 17.SH OPTIONS
43e5747a 18.TP
43e5747a
UH
19.B "\-h, \-\-help"
20Show a help text and exit.
21.TP
7949dca0
UH
22.B "\-V, \-\-version"
23Show
a0cfa735 24.B sigrok\-cli
6293db8a
UH
25version and the versions of libraries used.
26.TP
a0cfa735 27.B "\-L, \-\-list\-supported"
6293db8a 28Show information about supported hardware drivers, input file
7949dca0
UH
29formats, output file formats, and protocol decoders.
30.TP
c45dd41c
UH
31.B "\-\-list\-supported\-wiki"
32Show information about supported protocol decoders in MediaWiki syntax.
33This is generally only used by developers to easily update the list of
34supported protocol decoders in the sigrok wiki.
35.TP
b5ac81ad 36\fB\-d, \-\-driver\fP <drivername>
77525a84
GS
37Unless doing a global scan, users typically select one of the available
38drivers. This can speedup program start, and can avoid false matches for
39ambiguous configurations. Selecting a driver also allows to pass more
40driver specific options. Use the
c45dd41c 41.BR "\-L " ( "\-\-list\-supported" ")"
c1865eb5 42option to get a list of available drivers.
53155b2f 43.sp
10d98b47
UH
44Drivers can take options, in the form \fBkey=value\fP
45separated by colons.
46.sp
47Drivers communicating with hardware via a serial port always need the port
48specified as the \fBconn\fP option. For example, to use the
49Openbench Logic Sniffer:
53155b2f 50.sp
a0cfa735 51.RB " $ " "sigrok\-cli \-\-driver=ols:conn=/dev/ttyACM0" " [...]"
53155b2f 52.sp
10d98b47 53Some USB devices don't use a unique VendorID/ProductID combination, and thus
d6469268
GS
54need that specified as well. Notice that colons are used to separate the
55driver name from the \fBconn\fP option, thus colons cannot be used within the
56\fBconn\fP option's argument. To select a specific USB device, use either
57\fBVendorID.ProductID\fP or \fBbus.address\fP:
53155b2f 58.sp
a0cfa735
UH
59USB \fBVendorID.ProductID\fP example:
60.sp
61.RB " $ " "sigrok\-cli \-\-driver=uni\-t\-ut61e:conn=1a86.e008" " [...]"
62.sp
63USB \fBbus.address\fP example:
64.sp
65.RB " $ " "sigrok\-cli \-\-driver=uni\-t\-ut61e:conn=4.6" " [...]"
43e5747a 66.TP
b20ea789
GS
67.B "\-D, \-\-dont\-scan"
68Do not automatically scan for device drivers in the absence of a
69.BR "\-d " ( "\-\-driver" )
70specification.
71.TP
a0cfa735 72.BR "\-c, \-\-config " <deviceoption>
53155b2f 73A colon-separated list of device options, where each option takes the form
1b4b6a7c 74.BR key=value .
10d98b47
UH
75For example, to set the samplerate to 1MHz on a device supported by the
76fx2lafw driver, you might specify
1b4b6a7c 77.sp
a0cfa735 78.RB " $ " "sigrok\-cli \-d fx2lafw \-\-config samplerate=1m" " [...]"
1b4b6a7c 79.sp
53155b2f
BV
80Samplerate is an option common to most logic analyzers. The argument specifies
81the samplerate in Hz. You can also specify the samplerate in kHz, MHz or GHz.
1b4b6a7c
UH
82The following are all equivalent:
83.sp
a0cfa735 84.RB " $ " "sigrok\-cli \-d fx2lafw \-\-config samplerate=1000000" " [...]"
1b4b6a7c 85.sp
a0cfa735 86.RB " $ " "sigrok\-cli \-d fx2lafw \-\-config samplerate=1m" " [...]"
1b4b6a7c 87.sp
a0cfa735 88.RB " $ " "sigrok\-cli \-d fx2lafw \-\-config \(dqsamplerate=1 MHz\(dq" " [...]"
1b4b6a7c 89.TP
43e5747a 90.BR "\-i, \-\-input\-file " <filename>
a0cfa735
UH
91Load input from a file instead of a hardware device. You can specify
92"-" to use stdin as input. If the
43e5747a 93.B \-\-input\-format
a0cfa735 94option is not supplied, sigrok\-cli attempts to autodetect the file format of
43e5747a 95the input file.
a0cfa735
UH
96.sp
97Example for loading a sigrok session file:
98.sp
99.RB " $ " "sigrok\-cli \-i example.sr" " [...]"
100.sp
101Example for loading a WAV file (autodetection of input format):
102.sp
103.RB " $ " "sigrok\-cli \-i example.wav" " [...]
104.sp
105Example for loading a VCD file from stdin (autodetection of input format):
106.sp
107.RB " $ " "cat example.vcd | sigrok\-cli \-i \-" " [...]
43e5747a
UH
108.TP
109.BR "\-I, \-\-input\-format " <format>
110When loading an input file, assume it's in the specified format. If this
111option is not supplied (in addition to
112.BR \-\-input\-file ),
943d0c08 113sigrok-cli attempts to autodetect the file format of the input file. Use the
a0cfa735 114.BR "\-L " ( "\-\-list\-supported" ")"
10d98b47
UH
115option to see a list of available input formats.
116.sp
117The format name may optionally be followed by a colon-separated list of
118options, where each option takes the form
943d0c08 119.BR "key=value" .
a0cfa735
UH
120.sp
121Example for loading a binary file with options:
122.sp
123.RB " $ " "sigrok\-cli \-i example.bin"
124.br
125.BR " \-I binary:numchannels=4:samplerate=1mhz" " [...]"
43e5747a
UH
126.TP
127.BR "\-o, \-\-output\-file " <filename>
128Save output to a file instead of writing it to stdout. The default format
129used when saving is the sigrok session file format. This can be changed with
130the
76ae913d 131.B \-\-output\-format
7949dca0 132option.
a0cfa735
UH
133.sp
134Example for saving data in the sigrok session format:
135.sp
136.RB " $ " "sigrok\-cli " "[...] " "\-o example.sr"
7949dca0 137.TP
a0cfa735 138.BR "\-O, \-\-output\-format " <format>
7949dca0 139Set the output format to use. Use the
a0cfa735 140.BR "\-L " ( "\-\-list\-supported" ")"
10d98b47
UH
141option to see a list of available output formats.
142.sp
143The format name may optionally be followed by a colon-separated list of
144options, where each option takes the form
7949dca0
UH
145.BR "key=value" .
146.sp
c1865eb5 147For example, the
7949dca0
UH
148.B bits
149or
150.B hex
151formats, for an ASCII bit or ASCII hexadecimal display, can take a "width" option, specifying the number of samples (in bits) to display per line. Thus
a0cfa735 152.B "\-O hex:width=128"
7949dca0
UH
153will display 128 bits per line, in hexadecimal:
154.sp
10d98b47
UH
155 0:ffff ffff ffff ffff ffff ffff ffff ffff
156 1:ff00 ff00 ff00 ff00 ff00 ff00 ff00 ff00
7949dca0 157.sp
029d73fe 158The lines always start with the channel number (or name, if defined), followed by a colon. If no format is specified, it defaults to
7949dca0
UH
159.BR bits:width=64 ,
160like this:
161.sp
10d98b47
UH
162 0:11111111 11111111 11111111 11111111 [...]
163 1:11111111 00000000 11111111 00000000 [...]
a0cfa735 164.sp
f5735c5e 165Example for saving data in the CSV format with options:
a0cfa735 166.sp
f5735c5e
GS
167.RB " $ " "sigrok\-cli " "[...] " "\-o example.csv \-O csv:dedup:header=false"
168.sp
169Notice that boolean options are \fBtrue\fP when no value gets specified.
43e5747a 170.TP
3dfbfbc8 171.BR "\-C, \-\-channels " <channellist>
029d73fe 172A comma-separated list of channels to be used in the session.
43e5747a 173.sp
029d73fe 174Note that sigrok always names the channels according to how they're shown on
a0cfa735 175the enclosure of the hardware. If your logic analyzer numbers the channels 0\-15,
029d73fe 176that's how you must specify them with this option. An oscilloscope's channels
10d98b47 177would generally be referred to as "CH1", "CH2", and so on.
029d73fe 178Use the \fB\-\-show\fP option to see a list of channel names for your device.
53155b2f 179.sp
029d73fe
UH
180The default is to use all the channels available on a device. You can name
181a channel like this:
43e5747a 182.BR "1=CLK" .
029d73fe 183A range of channels can also be given, in the form
43e5747a
UH
184.BR "1\-5" .
185.sp
186Example:
187.sp
10d98b47
UH
188.RB " $ " "sigrok\-cli \-\-driver fx2lafw \-\-samples 100"
189.br
3dfbfbc8 190.B " \-\-channels 1=CLK,2\-4,7"
43e5747a
UH
191.br
192 CLK:11111111 11111111 11111111 11111111 [...]
193 2:11111111 11111111 11111111 11111111 [...]
194 3:11111111 11111111 11111111 11111111 [...]
195 4:11111111 11111111 11111111 11111111 [...]
196 7:11111111 11111111 11111111 11111111 [...]
197.sp
198The comma-separated list is processed from left to right, i.e. items farther
199to the right override previous items. For example
bf836932 200.B "1=CS,CS=MISO"
029d73fe 201will set the name of channel 1 to
43e5747a 202.BR "MISO" .
43e5747a 203.TP
ca50f4b3 204.BR "\-g, \-\-channel\-group "<channel\ group>
a0cfa735
UH
205Specify the channel group to operate on. Some devices organize channels into
206groups, the settings of which can only be changed as a group. The list of
207channel groups, if any, is displayed with the \fB\-\-show\fP command.
208.sp
f5735c5e 209Examples:
a0cfa735
UH
210.sp
211.RB " $ " "sigrok\-cli \-g CH1" " [...]"
f5735c5e
GS
212.sp
213.RB " $ " "sigrok\-cli \-d demo \-g Logic \-c pattern=graycode" " [...]"
31f9318a 214.TP
43e5747a
UH
215.BR "\-t, \-\-triggers " <triggerlist>
216A comma-separated list of triggers to use, of the form
029d73fe
UH
217.BR "<channel>=<trigger>" .
218You can use the name or number of the channel, and the trigger itself is a
43e5747a
UH
219series of characters:
220.sp
221.BR "0 or 1" :
222A low or high value on the pin.
223.br
224.BR "r or f" :
225A rising or falling value on the pin. An
226.B r
227effectively corresponds to
228.BR 01 .
229.br
f99038b4 230.BR "e" :
85f2ddbb 231Any kind of change on a pin (either a rising or a falling edge).
43e5747a 232.sp
10d98b47
UH
233Not every device supports all of these trigger types. Use the \fB\-\-show\fP
234command to see which triggers your device supports.
43e5747a 235.TP
a0cfa735 236.BR "\-w, \-\-wait\-trigger"
10d98b47
UH
237Don't output any sample data (even if it's actually received from the
238hardware) before the trigger condition is met. In other words, do not output
239any pre-trigger data. This option is useful if you don't care about the data
240that came before the trigger (but the hardware delivers this data to sigrok
241nonetheless).
43e5747a 242.TP
b5ac81ad 243.BR "\-P, \-\-protocol\-decoders " <list>
85f2ddbb
UH
244This option allows the user to specify a comma-separated list of protocol
245decoders to be used in this session. The decoders are specified by their
246ID, as shown in the
a0cfa735 247.BR "\-L " ( "\-\-list\-supported" ")"
85f2ddbb
UH
248output.
249.sp
250Example:
251.sp
252 $
b5ac81ad 253.B "sigrok\-cli \-i <file.sr> \-P i2c"
85f2ddbb
UH
254.sp
255Each protocol decoder can optionally be followed by a colon-separated list
256of options, where each option takes the form
257.BR "key=value" .
258.sp
259Example:
260.sp
261 $
8791df07
UH
262.B "sigrok\-cli \-i <file.sr> "
263.br
264.B " \-P uart:baudrate=115200:parity_type=odd"
85f2ddbb
UH
265.sp
266The list of supported options depends entirely on the protocol decoder. Every
267protocol decoder has different options it supports.
268.sp
269Any "options" specified for a protocol decoder which are not actually
029d73fe 270supported options, will be interpreted as being channel name/number assignments.
85f2ddbb
UH
271.sp
272Example:
273.sp
274 $
275.B "sigrok\-cli \-i <file.sr>"
276.br
bf836932 277.B " \-P spi:wordsize=9:miso=1:mosi=5:clk=3:cs=0"
85f2ddbb
UH
278.sp
279In this example,
280.B wordsize
281is an option supported by the
282.B spi
283protocol decoder. Additionally, the user tells sigrok to decode the SPI
029d73fe 284protocol using channel 1 as MISO signal for SPI, channel 5 as MOSI, channel 3
bf836932 285as CLK, and channel 0 as CS# signal.
65f903f9
GS
286.sp
287Notice that the
288.B sigrok\-cli
289application does not support "name matching". Instead it's assumed that the
290traces in the input stream match the order of the decoder's input signals,
291or that users explicitly specify the input channel to decoder signal mapping.
e4b7762f
GS
292.br
293.sp
294When multiple decoders are specified in the same
295.BR -P
296option, they will be stacked on top of each other in the specified order.
297.sp
298Example:
299.sp
300 $
301.B "sigrok\-cli \-i <file.sr> \-P i2c,eeprom24xx"
302.br
303 $
304.B "sigrok\-cli \-i <file.sr> \-P uart:baudrate=31250,midi"
305.sp
306When multiple
307.BR -P
308options are specified, each of them creates one decoder stack, which
309executes in parallel to other decoder stacks.
310.sp
311Example:
312.sp
313 $
314.B "sigrok\-cli \-i <file.sr> \-P uart:tx=D0:rx=D1 \-P timing:data=D2"
315.sp
85f2ddbb 316.TP
b6bd032d 317.BR "\-A, \-\-protocol\-decoder\-annotations " <annotations>
87d526cf
UH
318By default, all annotation output of all protocol decoders is
319shown. With this option a specific decoder's annotations can be selected for
320display, by specifying the decoder ID:
7fb87027
BV
321.sp
322 $
a0cfa735 323.B "sigrok\-cli \-i <file.sr> \-P i2c,i2cfilter,edid \-A i2c"
7fb87027 324.sp
6c5438fe 325If a protocol decoder has multiple annotation classes, you can also specify
790b0261 326which one of them to show by specifying its short description like this:
7fb87027
BV
327.sp
328 $
b5ac81ad 329.B "sigrok\-cli \-i <file.sr> \-P i2c,i2cfilter,edid"
7fb87027 330.br
a0cfa735 331.B " \-A i2c=data\-read"
790b0261 332.sp
6c5438fe 333Select multiple annotation classes by separating them with a colon:
790b0261
BV
334.sp
335 $
336.B "sigrok\-cli \-i <file.sr> \-P i2c,i2cfilter,edid"
337.br
a0cfa735 338.B " \-A i2c=data\-read:data\-write"
7fb87027 339.sp
b7360ee6
GS
340Annotation row names will resolve to their respective list of classes.
341Row and class names can be used in combination. When names are ambiguous
342then class names take precedence.
343.sp
344 $
345.B "sigrok\-cli \-i <file.sr> \-P i2c"
346.br
347.B " \-A i2c=addr\-data:warnings"
348.sp
349You can also select multiple protocol decoders, with optionally selected
350annotation classes each, by separating them with commas:
7fb87027
BV
351.sp
352 $
b5ac81ad 353.B "sigrok\-cli \-i <file.sr> \-P i2c,i2cfilter,edid"
7fb87027 354.br
a0cfa735 355.B " \-A i2c=data\-read:data\-write,edid"
7fb87027 356.TP
b0f1c540
BV
357.BR "\-M, \-\-protocol\-decoder\-meta " <pdname>
358When given, show protocol decoder meta output instead of annotations.
359The argument is the name of the decoder whose meta output to show.
360.sp
361 $
362.B "sigrok\-cli \-i <file.sr> \-M i2c"
363.sp
364Not every decoder generates meta output.
365.TP
366.BR "\-B, \-\-protocol\-decoder\-binary " <binaryspec>
367When given, decoder "raw" data of various kinds is written to stdout instead
368of annotations (this could be raw binary UART/SPI bytes, or WAV files, PCAP
369files, PNG files, or anything else; this is entirely dependent on the
370decoder and what kinds of binary output make sense for that decoder).
371.sp
372No other information is printed to stdout, so this is
373suitable for piping into other programs or saving to a file.
374.sp
375Protocol decoders that support binary output publish a list of binary
376classes, for example the UART decoder might have "TX" and "RX". To
377select TX for output, the argument to this option would be:
378.sp
379 $
380.B "sigrok\-cli \-i <file.sr> \-B uart=tx"
381.br
382.sp
383If only the protocol decoder is specified, without binary class, all classes
384are written to stdout:
385.sp
386 $
387.B "sigrok\-cli \-i <file.sr> \-B uart"
388.sp
389(this is only useful in rare cases, generally you would specify a certain
390binary class you're interested in)
391.sp
392Not every decoder generates binary output.
393.TP
8aafb57c
GS
394.BR "\-\-protocol\-decoder\-samplenum
395When given, decoder annotations will include sample numbers, too.
396This allows consumers to receive machine readable timing information.
397.TP
53155b2f 398.BR "\-l, \-\-loglevel " <level>
a0cfa735 399Set the libsigrok and libsigrokdecode loglevel. At the moment \fBsigrok\-cli\fP
10d98b47 400doesn't support setting the two loglevels independently. The higher the
53155b2f
BV
401number, the more debug output will be printed. Valid loglevels are:
402.sp
403\fB0\fP None
404.br
405\fB1\fP Error
406.br
407\fB2\fP Warnings
408.br
409\fB3\fP Informational
410.br
411\fB4\fP Debug
412.br
413\fB5\fP Spew
414.TP
415.B "\-\-show"
416.br
10d98b47
UH
417Show information about the selected option. For example, to see options for a
418connected fx2lafw device:
53155b2f
BV
419.sp
420 $
421.B "sigrok\-cli \-\-driver fx2lafw \-\-show
422.sp
10d98b47
UH
423In order to properly get device options for your hardware, some drivers might
424need a serial port specified:
53155b2f
BV
425.sp
426 $
427.B "sigrok\-cli \-\-driver ols:conn=/dev/ttyACM0 \-\-show
428.sp
a8b4041a 429This also works for protocol decoders, input modules and output modules:
53155b2f
BV
430.sp
431 $
ad6520c4
BV
432.B "sigrok\-cli \-\-protocol\-decoders i2c \-\-show
433 $
a8b4041a
BV
434.B "sigrok\-cli \-\-input\-format csv \-\-show
435 $
ad6520c4 436.B "sigrok\-cli \-\-output\-format bits \-\-show
b45ae06e
GS
437.sp
438This also works for input files, including optional input format specifications:
439.sp
440 $
441.B "sigrok\-cli \-\-input\-file <file.sr> \-\-show
442 $
443.B "sigrok\-cli \-\-input\-file <file.vcd> \-\-input\-format vcd \-\-show
53155b2f 444.TP
b5ac81ad
BV
445.B "\-\-scan"
446Scan for devices that can be detected automatically.
10d98b47
UH
447.sp
448Example:
449.sp
450 $
b5ac81ad 451.B "sigrok\-cli \-\-scan
10d98b47
UH
452.br
453 The following devices were found:
454.br
a0cfa735 455 demo \- Demo device with 12 channels: D0 D1 D2 D3 D4 D5 D6 D7 A0 A1 A2 A3
10d98b47 456.br
a0cfa735 457 fx2lafw:conn=3.26 \- CWAV USBee SX with 8 channels: 0 1 2 3 4 5 6 7
10d98b47
UH
458.sp
459However, not all devices are auto-detectable (e.g. serial port based ones).
460For those you'll have to provide a \fBconn\fP option, see above.
461.sp
462 $
a0cfa735 463.B "sigrok\-cli \-\-driver digitek\-dt4000zc:conn=/dev/ttyUSB0 \-\-scan
10d98b47
UH
464.br
465 The following devices were found:
466.br
029d73fe 467 Digitek DT4000ZC with 1 channel: P1
53155b2f 468.TP
43e5747a
UH
469.BR "\-\-time " <ms>
470Sample for
471.B <ms>
10d98b47
UH
472milliseconds, then quit.
473.sp
bf836932
UH
474You can optionally follow the number by \fBs\fP to specify the time to
475sample in seconds.
10d98b47
UH
476.sp
477For example,
43e5747a
UH
478.B "\-\-time 2s"
479will sample for two seconds.
480.TP
481.BR "\-\-samples " <numsamples>
482Acquire
483.B <numsamples>
484samples, then quit.
10d98b47
UH
485.sp
486You can optionally follow the number by \fBk\fP, \fBm\fP, or \fBg\fP to
487specify the number of samples in kilosamples, megasamples, or gigasamples,
488respectively.
489.sp
490For example,
491.B "\-\-samples 3m"
492will acquire 3000000 samples.
43e5747a 493.TP
66d5560b
UH
494.BR "\-\-frames " <numframes>
495Acquire
496.B <numframes>
497frames, then quit.
498.TP
43e5747a
UH
499.BR "\-\-continuous"
500Sample continuously until stopped. Not all devices support this.
2d73284e 501.TP
62a64762
BV
502.BR "\-\-get " <variable>
503Get the value of
504.B <variable>
505from the specified device and print it.
506.TP
2d73284e 507.BR "\-\-set"
b8656921
UH
508Set one or more variables specified with the \fB\-\-config\fP option, without
509doing any acquisition.
53155b2f 510.SH EXAMPLES
b8656921
UH
511In order to get exactly 100 samples from the connected fx2lafw-supported logic
512analyzer hardware, run the following command:
43e5747a 513.TP
53155b2f 514.B " sigrok\-cli \-\-driver fx2lafw \-\-samples 100"
43e5747a 515.TP
2d73284e 516If you want to sample data for 3 seconds (3000 ms), use:
43e5747a 517.TP
53155b2f 518.B " sigrok\-cli \-\-driver fx2lafw \-\-time 3000"
43e5747a
UH
519.TP
520Alternatively, you can also use:
521.TP
53155b2f 522.B " sigrok\-cli \-\-driver fx2lafw \-\-time 3s"
43e5747a 523.TP
029d73fe 524To capture data from the first 4 channels using the Openbench Logic Sniffer lasting 100ms at 10 MHz starting at the trigger condition
53155b2f 5250:high, 1:rising, 2:low, 3:high, use:
43e5747a 526.TP
53155b2f 527.nf
b5ac81ad 528\fBsigrok\-cli \-\-driver ols:conn=/dev/ttyACM0 \-\-config samplerate=10m \\\fP
3dfbfbc8 529\fB\-\-output\-format bits \-\-channels 0\-3 \-\-wait\-trigger \\\fP
b5ac81ad 530\fB\-\-triggers 0=1,1=r,2=0,3=1 \-\-time 100\fP
2d73284e
BV
531.TP
532To turn on internal logging on a Lascar EL-USB series device:
533.TP
534\fBsigrok\-cli \-\-driver lascar\-el\-usb:conn=10c4.0002 \\\fP
b8656921 535\fB\-\-config datalog=on \-\-set\fP
43e5747a
UH
536.SH "EXIT STATUS"
537.B sigrok\-cli
538exits with 0 on success, 1 on most failures.
539.SH "SEE ALSO"
b5ac81ad 540\fBpulseview\fP(1)
43e5747a 541.SH "BUGS"
10d98b47
UH
542Please report any bugs via Bugzilla
543.RB "(" http://sigrok.org/bugzilla ")"
544or on the sigrok\-devel mailing list
43e5747a
UH
545.RB "(" sigrok\-devel@lists.souceforge.net ")."
546.SH "LICENSE"
547.B sigrok\-cli
548is covered by the GNU General Public License (GPL). Some portions are
549licensed under the "GPL v2 or later", some under "GPL v3 or later".
550.SH "AUTHORS"
551Please see the individual source code files.
552.PP
553This manual page was written by Uwe Hermann <uwe@hermann\-uwe.de>.
554It is licensed under the terms of the GNU GPL (version 2 or later).