backup: WIP Windows avant repart propre (GUI core installer splash spec)
This commit is contained in:
119
docs/build-windows-oneclick.md
Normal file
119
docs/build-windows-oneclick.md
Normal file
@@ -0,0 +1,119 @@
|
||||
# Build Windows One-Click
|
||||
|
||||
Le packaging Windows standard du projet repose sur :
|
||||
|
||||
- `build_windows_oneclick.bat`
|
||||
- `build_windows_installer_oneclick.bat`
|
||||
- `scripts/build_windows_oneclick.ps1`
|
||||
- `anonymisation_onefile.spec`
|
||||
- `installer/Anonymisation.iss`
|
||||
|
||||
## Usage
|
||||
|
||||
Sur la machine Windows de build :
|
||||
|
||||
1. ouvrir le dossier du projet
|
||||
2. double-cliquer sur `build_windows_oneclick.bat`
|
||||
|
||||
Le script :
|
||||
|
||||
- crée un venv de build local `.venv_build_win`
|
||||
- installe les dépendances nécessaires au packaging
|
||||
- génère `build_info.py`
|
||||
- lance `PyInstaller` avec `anonymisation_onefile.spec`
|
||||
- vérifie la présence de l'exécutable final
|
||||
- prépare un dossier de livraison et une archive ZIP
|
||||
- crée `release\Anonymisation-Setup.exe` si Inno Setup 6 est installé
|
||||
|
||||
## Sorties attendues
|
||||
|
||||
- exécutable : `dist\Anonymisation.exe`
|
||||
- dossier de livraison : `release\Anonymisation-Windows\`
|
||||
- archive : `release\Anonymisation-Windows.zip`
|
||||
- installateur : `release\Anonymisation-Setup.exe`
|
||||
- hash : `release\Anonymisation.exe.sha256.txt`
|
||||
|
||||
## Installateur Windows
|
||||
|
||||
L'installateur est généré avec Inno Setup 6. Il fournit :
|
||||
|
||||
- choix du dossier d'installation
|
||||
- installation utilisateur par défaut sans droits administrateur
|
||||
- raccourci menu Démarrer
|
||||
- option d'icône sur le bureau
|
||||
- désinstallation Windows standard
|
||||
|
||||
Si Inno Setup n'est pas présent sur la machine de build, le script conserve le
|
||||
build EXE/ZIP et affiche un avertissement. Installer Inno Setup 6 depuis le site
|
||||
officiel puis relancer le build.
|
||||
|
||||
Installation automatisée de la dépendance de build Inno Setup :
|
||||
|
||||
```powershell
|
||||
powershell -ExecutionPolicy Bypass -File .\scripts\install_inno_setup_build_dep.ps1
|
||||
```
|
||||
|
||||
Recompiler uniquement l'installateur à partir de `release\Anonymisation-Windows\Anonymisation.exe` :
|
||||
|
||||
```powershell
|
||||
powershell -ExecutionPolicy Bypass -File .\scripts\build_windows_installer_only.ps1
|
||||
```
|
||||
|
||||
Pour ne générer que l'exécutable et le ZIP :
|
||||
|
||||
```powershell
|
||||
powershell -ExecutionPolicy Bypass -File .\scripts\build_windows_oneclick.ps1 -SkipInstaller
|
||||
```
|
||||
|
||||
## Important
|
||||
|
||||
- les utilisateurs finaux n'ont pas besoin d'installer Python
|
||||
- le build doit être lancé depuis Windows
|
||||
- le modèle ONNX embarqué requis doit exister localement dans :
|
||||
`models\camembert-bio-deid\onnx\model.onnx`
|
||||
|
||||
## Blocage Windows / SmartScreen
|
||||
|
||||
Un exécutable PyInstaller non signé peut déclencher Microsoft Defender SmartScreen, surtout s'il est téléchargé depuis Internet ou envoyé par e-mail. La signature réduit fortement le risque et évite l'éditeur inconnu, mais elle ne garantit pas toujours l'absence totale d'avertissement SmartScreen pour une toute nouvelle version : Windows tient aussi compte de la réputation du fichier et de son hash.
|
||||
|
||||
Pour une diffusion à des utilisateurs novices, la voie recommandée est :
|
||||
|
||||
- signer `Anonymisation.exe` avec un certificat Authenticode
|
||||
- horodater la signature
|
||||
- diffuser par partage réseau interne, Intune, GPO ou portail établissement
|
||||
- conserver le hash `release\Anonymisation.exe.sha256.txt`
|
||||
- éviter de demander aux utilisateurs de cliquer sur `Exécuter quand même`
|
||||
|
||||
Le script prend en charge la signature si un certificat est disponible.
|
||||
|
||||
### Signature automatique avec configuration locale
|
||||
|
||||
Sur la machine Windows de build :
|
||||
|
||||
1. copier `build_signing.example.ps1` en `build_signing.local.ps1`
|
||||
2. renseigner l'empreinte du certificat ou le chemin du PFX
|
||||
3. double-cliquer comme d'habitude sur `build_windows_oneclick.bat`
|
||||
|
||||
`build_signing.local.ps1` est ignoré par Git pour éviter de versionner des secrets.
|
||||
|
||||
### Signature manuelle via PowerShell
|
||||
|
||||
Avec un certificat installé dans le magasin Windows :
|
||||
|
||||
```powershell
|
||||
powershell -ExecutionPolicy Bypass -File .\scripts\build_windows_oneclick.ps1 -Sign -CertThumbprint "EMPREINTE_CERTIFICAT"
|
||||
```
|
||||
|
||||
Avec un fichier PFX :
|
||||
|
||||
```powershell
|
||||
powershell -ExecutionPolicy Bypass -File .\scripts\build_windows_oneclick.ps1 -Sign -PfxPath "C:\chemin\certificat.pfx" -PfxPassword "mot-de-passe"
|
||||
```
|
||||
|
||||
Si aucun certificat n'est disponible, le build reste possible, mais Windows peut afficher un avertissement de réputation au premier lancement.
|
||||
|
||||
Références Microsoft :
|
||||
|
||||
- SmartScreen reputation : https://learn.microsoft.com/en-us/windows/apps/package-and-deploy/smartscreen-reputation
|
||||
- SignTool : https://learn.microsoft.com/en-us/windows/win32/seccrypto/signtool
|
||||
- Authenticode timestamping : https://learn.microsoft.com/en-us/windows/win32/seccrypto/time-stamping-authenticode-signatures
|
||||
Reference in New Issue
Block a user