From 24599268b86e650b9f4e4cf8352256f17c887a31 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Mon, 21 May 2018 10:57:17 +0200 Subject: [PATCH] doc/build: refresh build-time requirements --- doc/build.rst | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/doc/build.rst b/doc/build.rst index 6da43b3a3..cc3972b07 100644 --- a/doc/build.rst +++ b/doc/build.rst @@ -14,18 +14,15 @@ to see how you can build it from sources (or package it), or use official `Docke Platform considerations ----------------------- -.. csv-table:: - :header: "Project", "Platforms", "Compatibility notes" - - "``daemon``", "UNIX-like [#]_", "C99, libuv_ provides portable I/O" - "``library``", "UNIX-like", "MSVC_ not supported, needs MinGW_" - "``modules``", "*varies*", "" - "``tests/unit``", "*equivalent to library*", "" - "``tests/integration``", "UNIX-like", "Depends on library injection (see [2]_)" +Knot-resolver is written for UNIX-like systems, mainly in C99. +Portable I/O is provided by libuv_. +Some 64-bit systems with LuaJIT 2.1 may be affected by +`a problem `_ +-- Linux on x86_64 is unaffected but `Linux on aarch64 is +`_. -.. [#] Known to be running (not exclusively) on FreeBSD, Linux and OS X. - -.. Windows status??? Modules are not supported yet, as the PE/DLL loading is different. Library injection is working with ELF *(or Mach-O flat namespace)* only. +Windows systems might theoretically work without large changes, +but it's most likely broken and currently not planned to be supported. Requirements ------------ @@ -36,12 +33,13 @@ The following is a list of software required to build Knot DNS Resolver from sou :header: "Requirement", "Required by", "Notes" "`GNU Make`_ 3.80+", "*all*", "*(build only)*" - "C compiler", "*all*", "*(build only)* [#]_" + "C and C++ compiler", "*all*", "*(build only)* [#]_" "`pkg-config`_", "*all*", "*(build only)* [#]_" "hexdump or xxd", "``daemon``", "*(build only)*" - "libknot_ 2.4.0+", "*all*", "Knot DNS library (requires autotools, GnuTLS and Jansson)." + "libknot_ 2.6.4+", "*all*", "Knot DNS libraries - requires autotools, GnuTLS, ..." "LuaJIT_ 2.0+", "``daemon``", "Embedded scripting language." "libuv_ 1.7+", "``daemon``", "Multiplatform I/O and services (libuv_ 1.0 with limitations [#]_)." + "lmdb", "``daemon``", "If missing, a static version is embedded." There are also *optional* packages that enable specific functionality in Knot DNS Resolver, they are useful mainly for developers to build documentation and tests. @@ -51,9 +49,6 @@ There are also *optional* packages that enable specific functionality in Knot DN "`lua-http`_", "``modules/http``", "HTTP/2 client/server for Lua." "luasocket_", "``trust anchors, modules/stats``", "Sockets for Lua." "luasec_", "``trust anchors``", "TLS for Lua." - "libmemcached_", "``modules/memcached``", "To build memcached backend module." - "hiredis_", "``modules/redis``", "To build redis backend module." - "Go_ 1.5+", "``modules``", "Build modules written in Go." "cmocka_", "``unit tests``", "Unit testing framework." "Doxygen_", "``documentation``", "Generating API documentation." "Sphinx_ and sphinx_rtd_theme_", "``documentation``", "Building this HTML/PDF documentation." @@ -66,6 +61,10 @@ There are also *optional* packages that enable specific functionality in Knot DN "`clang-tidy`_", "``lint-c``", "Syntax and static analysis checker for C." "luacov_", "``check-config``", "Code coverage analysis for Lua modules." +.. "libmemcached_", "``modules/memcached``", "To build memcached backend module." + "hiredis_", "``modules/redis``", "To build redis backend module." + "Go_ 1.5+", "``modules``", "Build modules written in Go." + .. [#] Requires C99, ``__attribute__((cleanup))`` and ``-MMD -MP`` for dependency file generation. GCC, Clang and ICC are supported. .. [#] You can use variables ``_CFLAGS`` and ``_LIBS`` to configure dependencies manually (i.e. ``libknot_CFLAGS`` and ``libknot_LIBS``). .. [#] libuv 1.7 brings SO_REUSEPORT support that is needed for multiple forks. libuv < 1.7 can be still used, but only in single-process mode. Use :ref:`different method ` for load balancing. -- 2.47.2