aboutsummaryrefslogtreecommitdiff
path: root/doc/manual/installation/prerequisites-source.xml
blob: 77955eeccfe152136be52cfc492d36f15bce635a (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
<section xmlns="http://docbook.org/ns/docbook"
      xmlns:xlink="http://www.w3.org/1999/xlink"
      xmlns:xi="http://www.w3.org/2001/XInclude"
      version="5.0"
      xml:id="sec-prerequisites-source">

<title>Prerequisites</title>

<itemizedlist>

  <listitem><para>GNU Autoconf
  (<link xlink:href="https://www.gnu.org/software/autoconf/"/>)
  and the autoconf-archive macro collection
  (<link xlink:href="https://www.gnu.org/software/autoconf-archive/"/>).
  These are only needed to run the bootstrap script, and are not necessary
  if your source distribution came with a pre-built
  <literal>./configure</literal> script.</para></listitem>

  <listitem><para>GNU Make.</para></listitem>
  
  <listitem><para>Bash Shell. The <literal>./configure</literal> script
  relies on bashisms, so Bash is required.</para></listitem>

  <listitem><para>A version of GCC or Clang that supports C++17.</para></listitem>

  <listitem><para><command>pkg-config</command> to locate
  dependencies.  If your distribution does not provide it, you can get
  it from <link
  xlink:href="http://www.freedesktop.org/wiki/Software/pkg-config"
  />.</para></listitem>

  <listitem><para>The OpenSSL library to calculate cryptographic hashes.
  If your distribution does not provide it, you can get it from <link
  xlink:href="https://www.openssl.org"/>.</para></listitem>

  <listitem><para>The <literal>libbrotlienc</literal> and
  <literal>libbrotlidec</literal> libraries to provide implementation
  of the Brotli compression algorithm. They are available for download
  from the official repository <link
  xlink:href="https://github.com/google/brotli" />.</para></listitem>

  <listitem><para>The bzip2 compressor program and the
  <literal>libbz2</literal> library.  Thus you must have bzip2
  installed, including development headers and libraries.  If your
  distribution does not provide these, you can obtain bzip2 from <link
  xlink:href="https://web.archive.org/web/20180624184756/http://www.bzip.org/"
  />.</para></listitem>

  <listitem><para><literal>liblzma</literal>, which is provided by
  XZ Utils. If your distribution does not provide this, you can
  get it from <link xlink:href="https://tukaani.org/xz/"/>.</para></listitem>
  
  <listitem><para>cURL and its library. If your distribution does not
  provide it, you can get it from <link
  xlink:href="https://curl.haxx.se/"/>.</para></listitem>
      
  <listitem><para>The SQLite embedded database library, version 3.6.19
  or higher.  If your distribution does not provide it, please install
  it from <link xlink:href="http://www.sqlite.org/" />.</para></listitem>

  <listitem><para>The <link
  xlink:href="http://www.hboehm.info/gc/">Boehm
  garbage collector</link> to reduce the evaluator’s memory
  consumption (optional).  To enable it, install
  <literal>pkgconfig</literal> and the Boehm garbage collector, and
  pass the flag <option>--enable-gc</option> to
  <command>configure</command>.</para></listitem>

  <listitem><para>The <literal>boost</literal> library of version
  1.66.0 or higher. It can be obtained from the official web site
  <link xlink:href="https://www.boost.org/" />.</para></listitem>

  <listitem><para>The <literal>editline</literal> library of version
  1.14.0 or higher. It can be obtained from the its repository
  <link xlink:href="https://github.com/troglobit/editline" />.</para></listitem>

  <listitem><para>Recent versions of Bison and Flex to build the
  parser.  (This is because Nix needs GLR support in Bison and
  reentrancy support in Flex.)  For Bison, you need version 2.6, which
  can be obtained from the <link
  xlink:href="ftp://alpha.gnu.org/pub/gnu/bison">GNU FTP
  server</link>.  For Flex, you need version 2.5.35, which is
  available on <link
  xlink:href="http://lex.sourceforge.net/">SourceForge</link>.
  Slightly older versions may also work, but ancient versions like the
  ubiquitous 2.5.4a won't.  Note that these are only required if you
  modify the parser or when you are building from the Git
  repository.</para></listitem>

  <listitem><para>The <literal>libseccomp</literal> is used to provide
  syscall filtering on Linux. This is an optional dependency and can
  be disabled passing a <option>--disable-seccomp-sandboxing</option>
  option to the <command>configure</command> script (Not recommended
  unless your system doesn't support
  <literal>libseccomp</literal>). To get the library, visit <link
  xlink:href="https://github.com/seccomp/libseccomp"
  />.</para></listitem>

</itemizedlist>

</section>