Même pour les updates majeures tout ce qui est dans /config est conservé.
Pour ce qui est de la réinstallation de dhclient (et dibbler), c'est automatique chez moi à chaque mise à jour, avec des scripts qui sont exécutés automatiquement lors des maj, placés dans /config/scripts/firstboot.d, exemple pour dhclient:
#!/bin/sh -e
DESTFILE=/sbin/dhclient3.old
if [ -f "$DESTFILE" ]
then
echo "Patched dhclient already there"
exit 0
fi
mv /sbin/dhclient3 /sbin/dhclient3.old
cp /config/packages/dhclient3 /sbin/dhclient3
chmod 755 /sbin/dhclient3
Le fichier patché est déposé dans /config/packages (et donc survit aux mises à jour), après c'est juste la même chose que le remplacement à la main avec 4 lignes de bash...
En théorie je devrais donc pouvoir faire la mise à jour depuis l'interface graphique, mais en pratique je la fais en ligne de commande en utilisant l'interface série du routeur (pour garder la main au cas où quelque chose se passerait mal).
Mon problème avec le firmware 2.0, c'est qu'il faut que je regénère un nouveau binaire dhclient3 patché, et surtout que j'abandonne dibbler au profit de dhclient pour IPv6, ce qui implique de réécrire une bonne partie des scripts que j'ai fait pour attribuer des /64 a chacun de mes VLANs. Pas difficile en soi, juste pas le temps de le faire.