fix: changelog embarqué manquant, badge hors-ligne trompeur, installeur WireGuard

- CHANGELOG.md n'était pas empaqueté par PyInstaller (datas=[]) et son
  chemin, calculé depuis __file__, ne survivait pas à l'extraction
  onefile : la page « À propos » restait vide une fois compilée. Le
  fichier est désormais embarqué (--add-data) et son chemin bascule sur
  sys._MEIPASS en mode frozen.
- Le badge de latence se basait uniquement sur un ping ICMP vers
  l'endpoint : de nombreux serveurs/pare-feux le bloquent alors que le
  tunnel WireGuard fonctionne, d'où « hors ligne » permanent. Repli sur
  l'âge du dernier handshake réel quand l'ICMP échoue.
- wgsecure.iss installe désormais WireGuard for Windows en silencieux
  (prérequis manquant jusqu'ici), au même titre que le VC++
  Redistributable ; make installer-deps télécharge les deux binaires.
This commit is contained in:
2026-09-01 21:23:12 +02:00
parent 8c09c02362
commit ce4df4edb4
5 changed files with 99 additions and 12 deletions
+25 -5
View File
@@ -1,6 +1,7 @@
; ──────────────────────────────────────────────
; WGSecure (WGS) — Script Inno Setup
; Installeur Windows (bundle VC++ Redistributable)
; Installeur Windows complet : WGSecure + WireGuard +
; Visual C++ Redistributable, chacun installé en silence si absent.
; ──────────────────────────────────────────────
#define MyAppName "WGSecure"
@@ -29,9 +30,15 @@ Name: "french"; MessagesFile: "compiler:Languages\French.isl"
[Files]
Source: "dist\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion
; VC++ Redistributable x64 — à télécharger avant compilation :
; https://aka.ms/vs/17/release/vc_redist.x64.exe → installer\vc_redist.x64.exe
Source: "installer\vc_redist.x64.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall
; VC++ Redistributable x64 — téléchargé automatiquement par `make installer-deps` :
; https://aka.ms/vs/17/release/vc_redist.x64.exe → installer\VC_redist.x64.exe
Source: "installer\VC_redist.x64.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall
; WireGuard pour Windows — prérequis à WGSecure (fournit wg.exe, le pilote
; tunnel et le service WireGuardTunnel$ que wireguard.py pilote). Téléchargé
; automatiquement par `make installer-deps` :
; https://download.wireguard.com/windows-client/wireguard-installer.exe
; → installer\wireguard-installer.exe
Source: "installer\wireguard-installer.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall
[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
@@ -39,7 +46,12 @@ Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
[Run]
; Installation silencieuse du VC++ Redistributable si absent (corrige "Failed to load Python DLL: python312.dll")
Filename: "{tmp}\vc_redist.x64.exe"; Parameters: "/install /quiet /norestart"; StatusMsg: "Installation du composant Visual C++ Redistributable…"; Check: VCRedistNeedsInstall
Filename: "{tmp}\VC_redist.x64.exe"; Parameters: "/install /quiet /norestart"; StatusMsg: "Installation du composant Visual C++ Redistributable…"; Check: VCRedistNeedsInstall
; L'installeur officiel WireGuard s'exécute déjà sans assistant (juste une
; fenêtre de progression) : notre propre installeur tourne en admin
; (PrivilegesRequired=admin ci-dessus), donc pas d'UAC supplémentaire non plus.
; `waituntilterminated` : l'app ne doit pas démarrer avant que wg.exe existe.
Filename: "{tmp}\wireguard-installer.exe"; StatusMsg: "Installation de WireGuard…"; Check: WireGuardNeedsInstall; Flags: waituntilterminated
Filename: "{app}\{#MyAppExeName}"; Description: "Lancer {#MyAppName}"; Flags: nowait postinstall skipifsilent
[Code]
@@ -50,3 +62,11 @@ begin
// Clé présente si VC++ 2015-2022 x64 (v14+) déjà installé
Result := not RegQueryStringValue(HKLM64, 'SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\X64', 'Version', Version);
end;
function WireGuardNeedsInstall: Boolean;
begin
// WireGuard s'installe toujours dans le Program Files 64 bits, quelle que
// soit l'architecture de WGSecure : {pf} y pointe bien puisque
// ArchitecturesInstallIn64BitMode=x64compatible ci-dessus.
Result := not FileExists(ExpandConstant('{pf}\WireGuard\wireguard.exe'));
end;