Livre la sortie de domaine (bouton et commande `leave`), le nettoyage
optionnel des paquets sous Linux, le champ « Nom de la machine » en lecture
seule, l'assainissement de la sortie PowerShell et le controle du SRV
`_ldap._tcp.dc._msdcs`.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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>
Livre le correctif de jointure Windows : le script PowerShell n'etait jamais
execute, la jointure echouait sans message avec un code retour 0.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Le script etait envoye sur stdin de `powershell -Command -`, qui analyse
l'entree ligne par ligne. Le `}` fermant le try/catch n'etait suivi d'aucun
saut de ligne : le parseur gardait l'instruction incomplete en attente et la
jetait a la fermeture de stdin. PowerShell rendait la main avec le code 0
sans avoir appele Add-Computer, et l'utilisateur ne voyait qu'un « echec de
la jointure (code retour 0) » sans explication.
- Transmission du script d'un seul bloc via `-EncodedCommand` (base64
UTF-16LE), ce qui supprime toute analyse ligne par ligne et propage
correctement les codes de sortie. Le mot de passe reste hors de la ligne
de commande : il ne transite que par l'environnement du sous-processus.
- Report de la sortie brute de PowerShell quand aucun marqueur n'est trouve,
pour qu'un echec inattendu reste diagnosticable.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Premiere version publiee avec un binaire Windows fonctionnel : le .exe
produit sous Wine demarrait sans plugin de plateforme Qt (voir CHANGELOG).
Ajoute egalement le Makefile, le README et la cible de publication
multi-depots.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Le hook PySide6 de PyInstaller importe QtCore pour localiser les plugins Qt.
Depuis Qt 6.10, Qt6Core.dll est lie a l'ICU de Windows (icuuc.dll, System32),
que Wine n'implemente pas : l'import echouait, le hook ne collectait aucun
plugin, et le binaire produit refusait de demarrer sous Windows avec
« could not initialize Qt platform plugin "windows" ».
- La build Wine epingle PySide6<6.10 (PYSIDE6_CONSTRAINT pour surcharger).
- Verification avant compilation que PySide6 s'importe reellement.
- Verification apres compilation que qwindows.dll est embarque.
- Reinstallation des dependances declenchee par empreinte de requirements.txt
et de la contrainte, au lieu de la seule presence de PyInstaller.
Binaire verifie sous Wine : GUI (fenetre a trois onglets) et CLI OK, 45 Mo.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- Makefile avec aide auto-documentee par categories (`make help`) :
installation, utilisation, compilation, publication, nettoyage.
- packaging/build_windows_wine.sh : produit le .exe Windows natif depuis
Linux via un PyInstaller Windows execute dans un prefixe Wine dedie
(PyInstaller ne cross-compilant pas). Installation des dependances
idempotente, builds suivants incrementaux.
- README.md : fonctionnalites, usage GUI/CLI, compilation, publication.
- `make publish` pousse branche et tags vers tous les depots configures.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Application PySide6 (GUI + CLI) fonctionnant sous Linux et Windows :
- Diagnostic réseau complet AD (DNS, SRV, ports, NTP, outils requis)
- Jointure de domaine via realmd (Linux) ou Add-Computer (Windows)
- Installation automatique des prérequis Linux (apt)
- CLI colorée (diagnose/join/install-prereqs), sans dépendance PySide6
- Scripts de packaging PyInstaller pour Linux et Windows
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>