~singpolyma/biboumi

ref: 1017e8f46bb6c4c9f878cba5e70f7c3a4c831433 biboumi/INSTALL.rst -rw-r--r-- 4.5 KiB
1017e8f4 — louiz’ Document the fact that “make” builds the tests as well now 5 years ago
                                                                                
6f3dacc4 louiz’
b32729fb louiz’
6f3dacc4 louiz’
a3757351 Florent Le Coz
6f3dacc4 louiz’
a3757351 Florent Le Coz
b32729fb louiz’
6f3dacc4 louiz’
3c5cdec1 Florent Le Coz
39175e1a Florent Le Coz
6f3dacc4 louiz’
39175e1a Florent Le Coz
38202e5f louiz’
2aa868c7 Florent Le Coz
3c5cdec1 Florent Le Coz
6f3dacc4 louiz’
2aa868c7 Florent Le Coz
6f3dacc4 louiz’
3c5cdec1 Florent Le Coz
2aa868c7 Florent Le Coz
6f3dacc4 louiz’
3c5cdec1 Florent Le Coz
6f3dacc4 louiz’
f5b61f0f Florent Le Coz
6f3dacc4 louiz’
2aa868c7 Florent Le Coz
5b560078 louiz’
9837f611 Florent Le Coz
81b21bfc louiz’
198b0fa6 Florent Le Coz
99a4dded louiz’
6f3dacc4 louiz’
88ae2599 Florent Le Coz
6f3dacc4 louiz’
3468924a Florent Le Coz
2aa868c7 Florent Le Coz
3c5cdec1 Florent Le Coz
b32729fb louiz’
6f3dacc4 louiz’
3c5cdec1 Florent Le Coz
b37fc70f Florent Le Coz
3c5cdec1 Florent Le Coz
6f3dacc4 louiz’
3c5cdec1 Florent Le Coz
524f7925 Florent Le Coz
b32729fb louiz’
3c5cdec1 Florent Le Coz
b37fc70f Florent Le Coz
524f7925 Florent Le Coz
3c5cdec1 Florent Le Coz
b32729fb louiz’
3c5cdec1 Florent Le Coz
2bb4a347 Florent Le Coz
3c5cdec1 Florent Le Coz
2bb4a347 Florent Le Coz
3c5cdec1 Florent Le Coz
2bb4a347 Florent Le Coz
6f3dacc4 louiz’
3c5cdec1 Florent Le Coz
2bb4a347 Florent Le Coz
6f3dacc4 louiz’
524f7925 Florent Le Coz
2bb4a347 Florent Le Coz
6f3dacc4 louiz’
3c5cdec1 Florent Le Coz
2bb4a347 Florent Le Coz
b9424781 Florent Le Coz
2bb4a347 Florent Le Coz
b9424781 Florent Le Coz
6f3dacc4 louiz’
b9424781 Florent Le Coz
2bb4a347 Florent Le Coz
b9424781 Florent Le Coz
3c5cdec1 Florent Le Coz
b32729fb louiz’
6f3dacc4 louiz’
1017e8f4 louiz’
3c5cdec1 Florent Le Coz
6f3dacc4 louiz’
3c5cdec1 Florent Le Coz
b32729fb louiz’
6f3dacc4 louiz’
3c5cdec1 Florent Le Coz
6f3dacc4 louiz’
39175e1a Florent Le Coz
b32729fb louiz’
6f3dacc4 louiz’
db5e02a0 Florent Le Coz
6f3dacc4 louiz’
db5e02a0 Florent Le Coz
6f3dacc4 louiz’
db5e02a0 Florent Le Coz
b32729fb louiz’
6f3dacc4 louiz’
39175e1a Florent Le Coz
6f3dacc4 louiz’
39175e1a Florent Le Coz
6f3dacc4 louiz’
5b560078 louiz’
6f3dacc4 louiz’
99a4dded louiz’
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
160
161
162
163
164
165
166
167
168
169
170
INSTALL
=======

tl;dr
-----

  cmake . && make && ./biboumi

If that didn’t work, read on.

Dependencies
------------

Build and runtime dependencies:

Tools:
~~~~~~

- A C++14 compiler (clang >= 3.4 or gcc >= 4.9 for example)
- CMake
- pandoc (optional) to build the man page

Libraries:
~~~~~~~~~~

expat_
 Used to parse XML from the XMPP server.

libiconv_
 Encoding from anything into UTF-8

libuuid_
 Generate unique IDs

libidn_ (optional, but recommended)
 Provides the stringprep functionality. Without it, JIDs for IRC users are
 not provided.

udns_ (optional, but recommended)
 Asynchronously resolve domain names. This offers better reactivity and
 performances when connecting to a big number of IRC servers at the same
 time.

libbotan_ 1.11 or 2.0 (optional)
 Provides TLS support. Without it, IRC connections are all made in
 plain-text mode.

gcrypt_ (mandatory only if botan is absent)
 Provides the SHA-1 hash function, for the case where Botan is absent.

litesql_ (optional)
 Provides a way to store various options in a (sqlite3) database. Each user
 of the gateway can store their own values (for example their prefered port,
 or their IRC password).

systemd_ (optional)
 Provides the support for a systemd service of Type=notify. This is useful only
 if you are packaging biboumi in a distribution with Systemd.


Configure
---------

Configure the build system using cmake, there are many solutions to do that,
the simplest is to just run

  cmake .

in the current directory.

The default build type is "Debug", if you want to build a release version,
set the CMAKE_BUILD_TYPE variable to "release", by running this command
instead:

    cmake . -DCMAKE_BUILD_TYPE=release -DCMAKE_INSTALL_PREFIX=/usr

You can also configure many parameters of the build (like customize CFLAGS,
the install path, choose the compiler, or enabling some options like the
POLLER to use), using the ncurses interface of ccmake:

    ccmake .

In ccmake, first use 'c' to configure the build system, edit the values you
need and finaly use 'g' to generate the Makefiles to build the system and
quit ccmake.

You can also configure these options using a -D command line flag.

The list of available options:

- POLLER: lets you select the poller used by biboumi, at
  compile-time. Possible values are:

  - EPOLL: use the Linux-specific epoll(7). This is the default on Linux.
  - POLL: use the standard poll(2). This is the default value on all non-Linux
    platforms.

- WITH_BOTAN and WITHOUT_BOTAN: The first force the usage of the Botan library,
  if it is not found, the configuration process will fail. The second will
  make the build process ignore the Botan library, it will not be used even
  if it's available on the system.  If none of these option is specified, the
  library will be used if available and will be ignored otherwise.

- WITH_LIBIDN and WITHOUT_LIBIDN: Just like the WITH(OUT)_BOTAN options, but
  for the IDN library

- WITH_SYSTEMD and WITHOUT_SYSTEMD: Just like the other WITH(OUT)_* options,
  but for the Systemd library

Example:

  cmake . -DCMAKE_BUILD_TYPE=release -DCMAKE_INSTALL_PREFIX=/usr
  -DWITH_BOTAN=1 -DWITHOUT_SYSTEMD=1

This command will configure the project to build a release, with TLS enabled
(using Botan) but without using Systemd (even if available on the system).


Build
-----
Once you’ve configured everything using cmake, build the software:

To build the biboumi binary:

  make biboumi

To build everything, including the tests

  make


Install
-------
And then, optionaly, Install the software system-wide

  make install


Testing
-------
You can run the test suite with

  make check

This project uses the Catch unit test framework, it will be automatically
fetched with cmake, by cloning the github repository.

You can also check the overall code coverage of this test suite by running

  make coverage

This requires gcov and lcov to be installed.


Run
---
Run the software using the `biboumi` binary.  Read the documentation (the
man page biboumi(1) or the `biboumi.1.rst`_ file) for more information on how
to use biboumi.

.. _expat: http://expat.sourceforge.net/
.. _libiconv: http://www.gnu.org/software/libiconv/
.. _libuuid: http://sourceforge.net/projects/libuuid/
.. _libidn: http://www.gnu.org/software/libidn/
.. _libbotan: http://botan.randombit.net/
.. _udns: http://www.corpit.ru/mjt/udns.html
.. _litesql: http://git.louiz.org/litesql
.. _systemd: https://www.freedesktop.org/wiki/Software/systemd/
.. _biboumi.1.rst: doc/biboumi.1.rst
.. _gcrypt: https://www.gnu.org/software/libgcrypt/