README.md: add asciidoc and xmlto build dependencies
[lttng-tools.git] / README.md
CommitLineData
adf4e918
PP
1LTTng-tools
2===========
3
4LTTng-tools is a set of tools to control [LTTng](https://lttng.org/)
5tracing. The project includes the LTTng session daemon, consumer damon
6and relay daemon, as well as `liblttng-ctl`, a C library used to
7communicate with the session daemon, and `lttng`, a command line
8interface to `liblttng-ctl`.
9
10
11Requirements and optional dependencies
12--------------------------------------
13
14The following items are _required_ to build and run LTTng-tools
15components:
16
17 - **Linux kernel >= 2.6.27**: for `epoll()` support, at least this
18 version is needed. However, `poll()` is also supported by
19 configuring LTTng-tools with the `--disable-epoll` option. Using
20 that, the kernel version may probably be older, but we can't provide
21 any guarantee. Please let us know if you are able to go lower
22 without any problems.
99ad3285 23 - **[`liburcu`](http://www.liburcu.org/) >= 0.8.0**: userspace RCU library,
adf4e918
PP
24 by Mathieu Desnoyers and Paul E. McKenney.
25 - **`libpopt` >= 1.13**: command line arguments parsing library.
26 - Debian/Ubuntu package: `libpopt-dev`
27 - **`libuuid`**: universally unique ID library
28 - Debian/Ubuntu package: `uuid-dev`
2199563c
JG
29 - **`libxml2` >= 2.7.6**: XML document parsing library. Needed for
30 tracing session configuration saving/loading and machine interface
31 output support.
32 - Debian/Ubuntu package: `libxml2-dev`
33
adf4e918
PP
34
35The following items are _optional_ dependencies:
36
37 - **[Babeltrace](https://lttng.org/babeltrace)**: trace viewer.
38 Enables the use of `lttng view` command.
39 - Debian/Ubuntu package: `babeltrace`
4c780623
JG
40 - **[LTTng UST](https://lttng.org) (same minor version as LTTng Tools)**:
41 userspace tracer. Enables the tracing of userspace applications.
213ff7c7 42 - Debian/Ubuntu package: `liblttng-ust-dev`
adf4e918
PP
43 - **Perl**: needed for `make check` and tests.
44 - **Python >= 3.0**: needed for `make check` and tests.
45 - Debian/Ubuntu package: `python3`
46 - **SWIG >= 2.0** and **Python 3 development headers**: needed for
47 Python bindings
48 (enabled at configure time with the `--enable-python-bindings` option).
49 - Debian/Ubuntu packages: `swig2.0` and `python3-dev`
50 - **modprobe**: needed for automatic LTTng kernel modules loading
51 (kernel tracing).
52 - **bash**: needed for running `make check`.
53
4c780623
JG
54LTTng-tools supports both the [LTTng Linux Kernel tracer](https://lttng.org)
55and [LTTng user space tracer](https://lttng.org) released as part of the same
56**minor** release series. While some releases do not change the tracer ABIs and
57should work with, no testing is performed to ensure cross-version compatibility
58is maintained.
59
60Note that applications instrumented with older versions of the LTTng UST project
61do not have to be rebuilt or modified to work with the latest LTTng-tools.
62For more information on versioning, please refer to the
63[LTTng documentation](https://lttng.org/docs).
adf4e918
PP
64
65Building
66--------
67
68This source tree is based on the Autotools suite from GNU to simplify
69portability. Here are some things you should have on your system in
70order to compile the Git repository tree:
71
5d5baaa3 72 - GNU Autotools (Automake >= 1.10, Autoconf >= 2.64,
adf4e918
PP
73 Autoheader >= 2.50; make sure your system-wide `automake` points to
74 a recent version!)
75 - [GNU Libtool](http://www.gnu.org/software/autoconf/) >= 2.2
76 - Flex >= 2.5.35
77 - Bison >= 2.4
78
8558f6a2
PP
79Optional packages to build LTTng-tools man pages:
80
81 - **AsciiDoc >= 8.4.5** (previous versions may work, but were
82 not tested)
83 - **xmlto >= 0.0.21** (previous versions may work, but were
84 not tested)
85
adf4e918
PP
86If you use GNU gold, which is _not_ mandatory, make sure you have this
87version:
88
89 - GNU gold >= 2.22
90
91Before this version of GNU gold, we hit a
92[known bug](http://sourceware.org/bugzilla/show_bug.cgi?id=11317).
93Be advised that with GNU gold, you might have to specify
94`-L/usr/local/lib` in `LDFLAGS`.
95
96If you get the tree from the Git repository, you will need to run
97
98 ./bootstrap
99
100in its root. It calls all the GNU tools needed to prepare the tree
101configuration.
102
103To build LTTng-tools, do:
104
105 ./configure
106 make
107 sudo make install
108 sudo ldconfig
109
110If you want Python bindings, add the `--enable-python-bindings` option
111to `configure`. Please note that some distributions will need the
112following environment variables set before running configure:
113
114 export PYTHON="python3"
115 export PYTHON_CONFIG="/usr/bin/python3-config"
116
117
118Using
119-----
120
121Please see [`doc/quickstart.txt`](doc/quickstart.txt) to get started
122with LTTng tracing. You can also use the `-h` or `--help` option of
123any `lttng` command, e.g.:
124
125 lttng enable-event --help
126
127A network streaming HOWTO can be found in
128[`doc/streaming-howto.txt`](doc/streaming-howto.txt) which quickly
129helps you understand how to stream a LTTng 2.x trace.
130
131A Python binding HOWTO can be found in
132[`doc/python-howto.txt`](doc/python-howto.txt) which quickly helps you
133understand how to use the Python module to control LTTng.
134
135
136Contact
137-------
138
04814575 139Maintainer: [Jérémie Galarneau](mailto:jeremie.galarneau@efficios.com)
adf4e918
PP
140
141Mailing list: [`lttng-dev@lists.lttng.org`](https://lttng.org/cgi-bin/mailman/listinfo/lttng-dev)
142
143
144Package contents
145----------------
146
147This package contains the following elements:
148
149 - `doc`: LTTng-tools documentation.
150 - `include`: the public header files that will be installed on the system.
151 - `src/bin`: source code of LTTng-tools programs.
152 - `lttng-consumerd`: consumer daemon.
153 - `lttng-relayd`: relay daemon.
154 - `lttng-sessiond`: session daemon.
155 - `lttng`: command line interface for LTTng tracing control.
156 - `src/common`: common LTTng-tools source code.
157 - `compat`: compatibility library mostly for FreeBSD and Linux.
158 - `config`: tracing session configuration saving/loading.
159 - `hashtable`: library wrapper over Userspace RCU hashtables.
160 - `health`: health check subsytem.
161 - `index`: CTF index utilities.
162 - `kernel-consumer`: Linux kernel consumer.
163 - `kernel-ctl`: Linux kernel tracer control.
164 - `relayd`: relay daemon control.
165 - `sessiond-comm`: session daemon communication.
166 - `ust-consumer`: user space consumer.
167 - `src/lib`: source code of LTTng-tools libraries.
168 - `lttng-ctl`: LTTng control library.
169 - `tests`: various test programs.
This page took 0.043909 seconds and 4 git commands to generate.