3. Compilation de BIND

Vous devriez pouvoir trouver les sources de BIND en visitant http://www.isc.org/bind.html. Vous avez besoins du paquet bind-src.tar.gz. Assurez-vous de bien récupérer la dernière version !

3.1. Modifier les chemins

Les choses peuvent s'embrouiller un peu à partir de maintenant, parce que les différentes parties du paquetage BIND se référent aux mêmes répertoires par des noms différents (dépendant du fait qu'ils s'exécutent ou non dans l'environnement restreint). Je vais essayer de ne pas trop vous embrouiller.

Le répertoire dont nous devons nous occuper en priorité est /var/run car son contenu est nécessaire à la fois pour le démon named (à l'intérieur de l'environnement restreint) et pour l'utilitaire ndc (à l'extérieur). Nous allons commencer par paramétrer ce qu'il faut pour trouver ce répertoire depuis le monde extérieur. Pour cela, nous devons modifier src/port/linux/Makefile.set (substituez par le répertoire de votre architecture si vous ne fonctionnez pas sur Linux), et changez la ligne

DESTRUN=/var/run

en

DESTRUN=/chroot/named/var/run

Tant que vous êtes là, vous pouvez changer l'autre chemin de destination /usr en /usr/local. Maintenant, tout devrait être capable de trouver ce répertoire… excepté le démon named lui-même, pour qui c'est toujours le vrai /var/run dans l'environnement restreint. Nous pouvons contourner ceci en faisant un petit changement dans les sources de named. Dans le fichier src/bin/named/named.h, trouvez la ligne

#include "pathnames.h"

et ajouter la ligne suivante immédiatement après

#define _PATH_NDCSOCK    "/var/run/ndc"

De cette façon, named ignorera notre définition de DESTRUN dans Makefile.set et emploiera l'emplacement correct (par rapport à sa perspective dans l'environnement restreint). Vous remarquerez quelques avertissements au sujet des redéfinitions de _PATH_NDCSOCK quand vous faites la compilation ; vous pouvez les ignorer.

3.2. Compiler

Vous devriez maintenant être capable de compiler normalement BIND, en suivante les instructions du fichier INSTALL. À cette étape, nous voulons seulement compiler BIND, sans l'installer. N'allez pas trop loin en suivant le fichier INSTALL. Globalement, il faut juste faire make clean, make depend et make.