Update recent FTL compilation docs

Signed-off-by: DL6ER <dl6er@dl6er.de>
This commit is contained in:
DL6ER
2023-09-22 20:24:44 +02:00
parent b370910f63
commit c6962774ea

View File

@@ -27,16 +27,34 @@ sudo dnf install git wget ca-certificates gcc gmp-devel gmp-static m4 cmake libi
Compile and install a recent version using:
```bash
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
wget https://ftp.gnu.org/gnu/nettle/nettle-3.9.tar.gz
tar -xzf nettle-3.9.tar.gz
cd nettle-3.9
./configure --libdir=/usr/local/lib --enable-static --disable-shared --disable-openssl --disable-mini-gmp -disable-gcov --disable-documentation
make -j $(nproc)
sudo make install
```
Since Ubuntu 20.04, you need to specify the library directory explicitly. Otherwise, the library will be installed in custom locations where it would not be found by `cmake`.
## Compile `libmbedtls` from source
*FTL*DNS uses another cryptographic library (`libmbedtls`) containing cryptographic primitives, X.509 certificate manipulation and the SSL/TLS and DTLS protocols used for serving the web interface and the API over HTTPS.
Compile and install a recent version using:
```bash
wget https://github.com/Mbed-TLS/mbedtls/archive/refs/tags/v3.4.1.tar.gz -O mbedtls-3.4.1.tar.gz
tar -xzf mbedtls-3.4.1.tar.gz
cd mbedtls-3.4.1
sed -i '/#define MBEDTLS_THREADING_C/s*^//**g' include/mbedtls/mbedtls_config.h
sed -i '/#define MBEDTLS_THREADING_PTHREAD/s*^//**g' include/mbedtls/mbedtls_config.h
make -j $(nproc)
sudo make install
```
The `sed` commands are necessary to enable multi-threading support in `libmbedtls` as there is no `configure` script to do this for us (see also [here](https://github.com/Mbed-TLS/mbedtls#configuration)).
## Get the source
Now, clone the *FTL*DNS repo (or your own fork) to get the source code of *FTL*DNS:
@@ -48,7 +66,7 @@ git clone https://github.com/pi-hole/FTL.git && cd FTL
If you want to build another branch and not `master`, use checkout to get to this branch, like
```bash
git checkout development
git checkout development-v6
```
## Compile the source