L'autre méthode consiste à faire un patch3.10.
Par exemple, supposons que le fichier généré par le configurateur s'appelle sendmail.cf.org, et que le fichier sendmail.cf soit dérivé de ce fichier en intégrant des modifications locales. La commande :
diff -C 20 sendmail.cf.org sendmail.cf > patch.kit
crée un fichier de différences nommé patch.kit contenant les modifications locales. Par la suite, pour appliquer ces différences sur un fichier nouvellement généré par le kit, il suffira d'appeler la commande patch :
patch < patch.kit
Stéphane Bortzmeyer propose également d'utiliser un fichier Makefile pour automatiser la confection du patch, puis son utilisation. Le fichier Makefile ci-dessous constitue un bon exemple :
REGLES = ./regles CONFIG = ./machine.config PATCH = patch.kit CF = sendmail.cf all: @echo "Que voulez-vous faire ?" @echo " make diff : genere un patch" @echo " make sendmail.cf : genere un fichier sendmail.cf" diff: ./configurateur $(REGLES) $(CONFIG) > sendmail.cf cp sendmail.cf sendmail.cf.OLD cp /etc/sendmail.cf sendmail.cf -diff -c sendmail.cf.OLD sendmail.cf > $(PATCH) sendmail.cf: $(REGLES) $(CONFIG) $(PATCH) ./configurateur $(REGLES) $(CONFIG) > sendmail.cf patch < $(PATCH)
La méthodologie est alors la suivante :
make diff
pour générer un fichier de différences ;
make sendmail.cf
pour générer le fichier sendmail.cf et appliquer le patch
qui réintègrera les modifications locales.