diff --git a/Knot.files b/Knot.files index a2cc0457af18bb90b1fe786e8f212a258650fe91..0948839ab7bfb3499a69a21b77e6c7e22eeb8fa0 100644 --- a/Knot.files +++ b/Knot.files @@ -260,3 +260,4 @@ src/knot/zone/semantic-check.c src/knot/zone/semantic-check.h src/tests/xfr_tests.h src/tests/xfr_tests.c +doc/knot.texi diff --git a/doc/knot.texi b/doc/knot.texi index 11a8446f32a9ae5297b8448de9fbd2e86f73391f..dce0d33b3ed74b813729726b1a29adf0ad36da65 100644 --- a/doc/knot.texi +++ b/doc/knot.texi @@ -260,7 +260,9 @@ or large number of requests. @node CPU Requirements @section CPU Requirements -Knot DNS is not very CPU requiring, but it can consume some CPU +Knot DNS scales with the processing power and also the nubmer of available cores/CPUs. +There is no lower bound on the CPU requirements, but it should support memory barriers +and CAS (i586 and newer). @node Memory Requirements @section Memory Requirements @@ -294,7 +296,21 @@ Linux, FreeBSD, OpenBSD, NetBSD and Mac OS X. @node Required build environment @section Required build environment -[TODO] Describe lowest needed GCC/Clang, etc. +GCC at least 4.1 is strictly required for atomic builtins, but 4.2 or newer is recommended. +Another requirement is _GNU_SOURCE support, otherwise it adapts to the compiler available features. +Clang should work, but it is not tested nor supported. + +Knot DNS build system relies on standard tools: +@itemize +@item +make +@item +autoconf >= 2.65 +@item +flex >= 2.5.31 +@item +bison >= 2.3 +@end itemize @node Required libraries @section Required libraries @@ -304,15 +320,19 @@ Knot DNS requires few libraries to be compiled: @itemize @item -OpenSSL - +OpenSSL, at least 0.9.8 @item zlib - @item -Userspace RCU +Userspace RCU, at least 0.5.4 +@item +libcap-ng, at least 0.6.4 (optional library) @end itemize +If libcap-ng library is available, Knot DNS will take advantage of +the POSIX 1003.1e capabilites(7) by sandboxing the communication threads. +Most rights are stripped from the communication threads for security reasons. + You can probably find OpenSSL and zlib libraries already included in your system or distribution. If not, zlib resides at @url{http://zlib.net/}, and OpenSSL can be found at @@ -336,10 +356,11 @@ is possible. (@url{http://lttng.org/urcu,Userspace RCU}) Binary packages for Debian can be found under liburcu1 for the library and liburcu-dev for development files. -Minimum supported version of Userspace RCU library is 0.4.0, +Minimum supported version of Userspace RCU library is 0.5.4, but we recommend using latest available version. It is especially on non-Linux systems as we got some compatibility patches accepted in later releases of Userspace RCU. +OpenBSD,NetBSD and OS X platforms are supported from version 0.7.0. @node Installation from the sources @section Installation from the sources @@ -365,6 +386,20 @@ For all available options run: @end example In most simple case you can just run configure without any options. +If you have trouble with unknown syscalls under valgrind, disable recvmmsg with +@command{./configure --enable-recvmmsg=no}. +Also, it has been reported that some platforms have broken LTO (Link time optimizations) +support, you can disable that by @command{./configure --enable-lto=no}. + +If you want to add debug messages, there are two steps to do that. +First you have to enable modules, that you are interested in. +Available are: server, zones, xfr, packet, dname, rr, ns, hash, compiler. +You can combine multiple modules as a comma-separated list. +For example: @command{./configure --enable-debug=server,packet} + +Then you can narrow the verbosity of the debugging message by specifying the +verbosity as brief, verbose or details. +For example: @command{./configure --enable-debuglevel=verbose}. @example @@ -505,11 +540,13 @@ in the future, when new version are released. @node Installing Knot DNS RPMs on Fedora @subsection Installing Knot DNS RPMs on Fedora +There are currently no official RPMs. [TODO] @node Installing Knot DNS from ports on FreeBSD @subsection Installing Knot DNS from ports on FreeBSD +There is currently no official port on FreeBSD. [TODO] @node Knot DNS Configuration