# Changelog ## [Non publié] ### Added - Bouton « Quitter le domaine » dans l'interface et commande `leave` en ligne de commande. Sous Windows via `Remove-Computer` (le poste rejoint le groupe de travail WORKGROUP), sous Linux via `realm leave`. - Option de nettoyage à la sortie du domaine sous Linux (case à cocher, ou `--remove-packages`) : désinstalle `realmd`, `sssd`, `adcli` et `samba-common-bin`. `packagekit` est délibérément conservé — il est installé comme prérequis mais sert aussi au gestionnaire de logiciels du bureau. - Vérification de l'enregistrement SRV `_ldap._tcp.dc._msdcs`, celui que Windows interroge (DsGetDcName) pour localiser un contrôleur lors d'une jointure. Son absence provoque « Le domaine spécifié n'existe pas ou n'a pas pu être contacté » alors même que le domaine résout et que les DC répondent au ping : le diagnostic ne pouvait pas le signaler. ### Changed - Le champ « Nom de la machine » est désormais affiché en lecture seule : il ne peut pas être modifié depuis cette fenêtre (sous Linux `realm join` reprend le nom d'hôte système, sous Windows le renommage relève des paramètres système). Une infobulle indique la commande à utiliser selon la plateforme. ### Fixed - La sortie de PowerShell était polluée par la sérialisation `#< CLIXML` de ses barres de progression, et les accents des messages d'erreur arrivaient illisibles (console en codepage OEM lue comme du cp1252). Les indicateurs de progression sont désactivés, la console bascule en UTF-8, et les fragments CLIXML résiduels sont filtrés. - Le marqueur interne `JOIN_FAILURE:` n'est plus affiché en préfixe du message d'erreur montré à l'utilisateur. ## [0.1.4] - 2026-09-08 ### Fixed - La jointure de domaine sous Windows échouait sans aucun message, avec un code retour 0. Le script PowerShell était transmis sur l'entrée standard de `powershell -Command -`, qui analyse stdin ligne par ligne : le bloc `try`/`catch` final, dépourvu de saut de ligne terminal, restait en attente dans le parseur et n'était jamais exécuté. PowerShell rendait donc la main sans avoir tenté la jointure. Le script est désormais transmis d'un bloc via `-EncodedCommand`. - En l'absence de marqueur de succès comme d'échec, le message d'erreur se réduisait à « code retour 0 », impossible à diagnostiquer. La sortie brute de PowerShell est maintenant reportée à l'utilisateur (le mot de passe ne transitant que par l'environnement, il n'y apparaît jamais). ## [0.1.3] - 2026-09-08 ### Fixed - Le binaire Windows produit sous Wine ne démarrait pas (« could not initialize Qt platform plugin "windows" ») : le hook PySide6 de PyInstaller importe QtCore pour localiser les plugins Qt, or Qt 6.10+ lie `Qt6Core.dll` à l'ICU de Windows (`icuuc.dll`), absent de Wine. L'import échouait et aucun plugin n'était embarqué. La compilation Windows épingle désormais `PySide6<6.10` et vérifie explicitement l'import de PySide6 puis la présence de `qwindows.dll`. ### Added - `Makefile` avec aide auto-documentée par catégories (`make help`). - `packaging/build_windows_wine.sh` : production du `.exe` Windows depuis Linux. - `README.md`. - `make publish` : pousse branche et tags vers tous les dépôts Gitea configurés. ## [0.1.2] - 2026-09-04 ### Changed - Recompilation du binaire Linux (aucun changement fonctionnel depuis la 0.1.1). ## [0.1.1] - 2026-09-04 ### Added - Diagnostic réseau complet pour la jointure Active Directory : résolution DNS, enregistrements SRV (LDAP/Kerberos), ping des contrôleurs de domaine, test des ports AD (53/88/389/445/464/636/3268), synchronisation NTP, présence des outils requis. - Jointure de domaine via `realmd` sous Linux et PowerShell `Add-Computer` sous Windows, avec bascule automatique de backend selon la plateforme. - Installation automatique des prérequis Linux manquants (`apt-get install realmd sssd adcli samba-common-bin packagekit`), déclenchable en un clic ou via la CLI. - Interface graphique PySide6 avec trois onglets : Diagnostic réseau, Rejoindre le domaine, À propos. - Interface en ligne de commande (`diagnose`, `join`, `install-prereqs`) fonctionnant sans dépendance à PySide6, avec sortie colorée (détection tty, `NO_COLOR`/`FORCE_COLOR`). - Scripts de packaging PyInstaller pour produire des binaires autonomes Linux et Windows (`packaging/build_linux.sh`, `packaging/build_windows.bat`). - Mot de passe jamais transmis en argument de ligne de commande (toujours via stdin ou variable d'environnement du sous-processus) pour ne pas apparaître dans la liste des processus.