diff --git a/docs/ftldns/compile.md b/docs/ftldns/compile.md index 0ede0ec..e8e3bcf 100644 --- a/docs/ftldns/compile.md +++ b/docs/ftldns/compile.md @@ -1,5 +1,9 @@ We pre-compile *FTL*DNS for you to save you the trouble of compiling anything yourself. However, sometimes you may want to make your own modifications. To test them, you have to compile *FTL*DNS from source. Luckily, you don't have to be a programmer to build *FTL*DNS from source and install it on your system; you only have to know the basics we provide in here. With just a few commands, you can build *FTL*DNS from source like a pro. +# Install native build environment + +This will install all necessary tools to build FTL directly in your host operating system. It is usually the easiest solution and works with all editors available. + ## Installing the Required Software First, we'll install the basic software you'll need to compile from source, like the GCC compiler and other utilities. @@ -8,13 +12,13 @@ Install them by running the following command in a terminal: ### Debian / Ubuntu / Raspbian ```bash -sudo apt install build-essential libgmp-dev m4 cmake libidn11-dev libreadline-dev xxd +sudo apt install git wget ca-certificates build-essential libgmp-dev m4 cmake libidn11-dev libreadline-dev xxd ``` ### Fedora ```bash -sudo dnf install gcc gmp-devel gmp-static m4 cmake libidn-devel readline-devel xxd +sudo dnf install git wget ca-certificates gcc gmp-devel gmp-static m4 cmake libidn-devel readline-devel xxd ``` ## Compile `libnettle` from source @@ -23,9 +27,9 @@ sudo dnf install gcc gmp-devel gmp-static m4 cmake libidn-devel readline-devel x Compile and install a recent version using: ```bash -wget https://ftp.gnu.org/gnu/nettle/nettle-3.7.2.tar.gz -tar -xzf nettle-3.7.2.tar.gz -cd nettle-3.7.2 +wget https://ftp.gnu.org/gnu/nettle/nettle-3.8.1.tar.gz +tar -xzf nettle-3.8.1.tar.gz +cd nettle-3.8.1 ./configure --libdir=/usr/local/lib make -j $(nproc) sudo make install @@ -85,4 +89,10 @@ Finally, restart *FTL*DNS to use the new binary: sudo service pihole-FTL restart ``` +# Use containerized build environment + +While most people think of [Docker](https://www.docker.com/) as a deployment environment, it's also a wonderful tool to create and maintain build environments. Pi-hole provides `ftl-build` containers composed of everything needed to build FTL for various architectures on your `x86_64` hosts. Check out [Docker Hub `pi-hole/ftl-build`](https://hub.docker.com/r/pihole/ftl-build/tags) for the available build containers as well as the [Releases overview](https://github.com/pi-hole/docker-base-images/releases/) for a detailed changelog. + +The `ftl-build` containers can, for instance, easily be used as [`devcontainers`](https://code.visualstudio.com/docs/devcontainers/containers) with Visual Studio Code's [`remote-containers`](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) extension. The necessary `devcontainer.json` is provided in the FTL repository. See the description of the extension for further details. Note that `./build.sh install` would only install FTL in the container in this case. Instead, you have to copy the FTL binary generated inside the container yourself to the final destination on your installation target. + {!abbreviations.md!} diff --git a/docs/guides/dns/unbound.md b/docs/guides/dns/unbound.md index 0008a28..6dc5c55 100644 --- a/docs/guides/dns/unbound.md +++ b/docs/guides/dns/unbound.md @@ -169,8 +169,8 @@ to a config file like `/etc/dnsmasq.d/99-edns.conf` to signal FTL to adhere to t You can test DNSSEC validation using ```bash -dig sigfail.verteiltesysteme.net @127.0.0.1 -p 5335 -dig sigok.verteiltesysteme.net @127.0.0.1 -p 5335 +dig fail01.dnssec.works @127.0.0.1 -p 5335 +dig dnssec.works @127.0.0.1 -p 5335 ``` The first command should give a status report of `SERVFAIL` and no IP address. The second should give `NOERROR` plus an IP address.