chore(release): v0.7.12
Ajoute wgsecure-helper, un service Windows privilégié (LocalSystem) qui installe/désinstalle le tunnel et pose/retire les règles NRPT sans invite d'authentification répétée. L'ACL du service WireGuard (v0.7.6) ne délègue que démarrer/arrêter un tunnel déjà installé, jamais le créer/supprimer, ce que WGSecure fait pourtant à chaque connexion/déconnexion — d'où les prompts qui persistaient malgré v0.7.6-v0.7.11. Corrige aussi le handshake, qui échouait pour la même raison (wg show sans élévation complète). Purement additif : l'app retombe sur son chemin élevé existant si le service est absent (composant optionnel dans l'installeur). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+27
-1
@@ -5,7 +5,7 @@
|
||||
; ──────────────────────────────────────────────
|
||||
|
||||
#define MyAppName "WGSecure"
|
||||
#define MyAppVersion "0.7.11"
|
||||
#define MyAppVersion "0.7.12"
|
||||
#define MyAppPublisher "WGSecure"
|
||||
#define MyAppExeName "wgsecure.exe"
|
||||
|
||||
@@ -30,6 +30,13 @@ Name: "french"; MessagesFile: "compiler:Languages\French.isl"
|
||||
|
||||
[Files]
|
||||
Source: "dist\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion
|
||||
; Service privilégié optionnel (cf. app/service/, `make helper`) : installe/
|
||||
; désinstalle le tunnel et pose/retire les règles NRPT (split-DNS) en
|
||||
; LocalSystem, pour éviter une invite d'authentification à chaque connexion/
|
||||
; déconnexion. skipifsourcedoesntexist : le build peut être absent (composant
|
||||
; optionnel, pas encore généré sur toutes les machines de build) — dans ce
|
||||
; cas l'app retombe simplement sur son chemin élevé existant.
|
||||
Source: "dist\wgsecure-helper.exe"; DestDir: "{app}"; Flags: ignoreversion skipifsourcedoesntexist
|
||||
; 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
|
||||
@@ -52,8 +59,20 @@ Filename: "{tmp}\VC_redist.x64.exe"; Parameters: "/install /quiet /norestart"; S
|
||||
; (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
|
||||
; Enregistre et démarre le service privilégié s'il a été fourni (cf. [Files]
|
||||
; ci-dessus). "binPath= " avec l'espace après "=" est une exigence de la
|
||||
; syntaxe sc.exe, pas d'Inno Setup — l'oublier fait échouer la commande.
|
||||
Filename: "{sys}\sc.exe"; Parameters: "create WGSecureHelper binPath= ""{app}\wgsecure-helper.exe"" start= auto DisplayName= ""WGSecure Helper"""; StatusMsg: "Installation du service WGSecure Helper…"; Check: HelperServiceAvailable; Flags: runhidden
|
||||
Filename: "{sys}\sc.exe"; Parameters: "start WGSecureHelper"; StatusMsg: "Démarrage du service WGSecure Helper…"; Check: HelperServiceAvailable; Flags: runhidden
|
||||
Filename: "{app}\{#MyAppExeName}"; Description: "Lancer {#MyAppName}"; Flags: nowait postinstall skipifsilent
|
||||
|
||||
[UninstallRun]
|
||||
; Arrête puis supprime le service avant que ses fichiers ne disparaissent —
|
||||
; sc.exe ignore silencieusement une commande sur un service déjà absent
|
||||
; (ex. installeur généré sans le composant service), donc pas de Check ici.
|
||||
Filename: "{sys}\sc.exe"; Parameters: "stop WGSecureHelper"; Flags: runhidden; RunOnceId: "StopWGSecureHelper"
|
||||
Filename: "{sys}\sc.exe"; Parameters: "delete WGSecureHelper"; Flags: runhidden; RunOnceId: "DeleteWGSecureHelper"
|
||||
|
||||
[Code]
|
||||
function VCRedistNeedsInstall: Boolean;
|
||||
var
|
||||
@@ -70,3 +89,10 @@ begin
|
||||
// ArchitecturesInstallIn64BitMode=x64compatible ci-dessus.
|
||||
Result := not FileExists(ExpandConstant('{pf}\WireGuard\wireguard.exe'));
|
||||
end;
|
||||
|
||||
function HelperServiceAvailable: Boolean;
|
||||
begin
|
||||
// wgsecure-helper.exe est optionnel (skipifsourcedoesntexist dans
|
||||
// [Files]) : n'enregistrer le service que si le binaire a bien été copié.
|
||||
Result := FileExists(ExpandConstant('{app}\wgsecure-helper.exe'));
|
||||
end;
|
||||
|
||||
Reference in New Issue
Block a user