Files
JoinDomainGUI/CHANGELOG.md
T
tuxgyverandClaude Opus 5 eba4d0b843 feat: sortie de domaine, et corrections issues d'un echec reel de jointure
Sortie de domaine (demandee) :
- Bouton « Quitter le domaine » et commande CLI `leave`, via Remove-Computer
  sous Windows et realm leave sous Linux.
- Nettoyage optionnel des paquets sous Linux. packagekit est exclu de la
  liste : il sert aussi au gestionnaire de logiciels du bureau.
- Le champ « Nom de la machine » passe en lecture seule : il ne peut pas
  etre modifie depuis cette fenetre.

Corrections tirees de la sortie PowerShell rapportee :
- Les barres de progression etaient serialisees en CLIXML et polluaient le
  journal ; les accents arrivaient illisibles (console OEM lue en cp1252).
  Progression desactivee, console en UTF-8, CLIXML residuel filtre.
- Le marqueur interne JOIN_FAILURE: n'apparait plus dans le message affiche.

Diagnostic :
- Ajout du SRV `_ldap._tcp.dc._msdcs`, celui que DsGetDcName utilise pour
  localiser un DC. Son absence donne exactement l'erreur rencontree, et le
  diagnostic ne le verifiait pas.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 07:11:20 +02:00

4.6 KiB

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.