From 5eedda046724ae3755a82ab6870468a2064cbc52 Mon Sep 17 00:00:00 2001 From: Ralph Mayola Date: Sun, 23 Aug 2026 20:09:44 +0200 Subject: [PATCH] install.sh refuse de detourner une Zonza deja installee build_app.sh grave le chemin du dossier courant dans le binaire de /Applications/Zonza.app. Lancer install.sh depuis une COPIE detournait donc l'application en service vers cette copie, changeait son cdhash, et REVOQUAIT silencieusement les autorisations macOS deja accordees. Constate le 2026-08-23 en testant le script depuis un clone temporaire : rattrape de justesse, avant que build_app.sh ne s'execute. Le script compare desormais la cible gravee a son propre dossier, refuse de reconstruire s'ils different, et explique pourquoi. ZONZA_REMPLACER=1 pour passer outre volontairement. Co-Authored-By: Claude Opus 5 (1M context) --- install.sh | 39 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 8e86eb4..a61e041 100755 --- a/install.sh +++ b/install.sh @@ -35,8 +35,43 @@ echo "→ Installation des dependances de CETTE machine…" echo " $(.venv/bin/python -m pip list 2>/dev/null | wc -l | tr -d ' ') paquets installes" if [[ "$(uname)" == "Darwin" ]]; then - echo "→ Construction de Zonza.app…" - ./build_app.sh + # Garde-fou : build_app.sh grave le chemin de CE dossier dans le binaire de + # /Applications/Zonza.app. Si une Zonza y est deja installee depuis un AUTRE + # dossier, reconstruire la detournerait vers ici — et changerait son cdhash, + # ce qui REVOQUE silencieusement les autorisations macOS deja accordees. + # Faute de ce garde-fou, un simple essai depuis une copie casse l'installation + # en service (arrive le 2026-08-23, rattrape de justesse). + CIBLE_ACTUELLE="" + if [[ -x /Applications/Zonza.app/Contents/MacOS/zonza ]]; then + CIBLE_ACTUELLE="$(strings /Applications/Zonza.app/Contents/MacOS/zonza 2>/dev/null | grep -m1 -E '/app\.py$' || true)" + fi + ICI="$(pwd)/app.py" + + if [[ -n "$CIBLE_ACTUELLE" && "$CIBLE_ACTUELLE" != "$ICI" ]]; then + echo + echo "⚠ Une Zonza est deja installee, et elle pointe ailleurs :" + echo " installee ici : $CIBLE_ACTUELLE" + echo " ce dossier : $ICI" + echo + echo " Reconstruire la detournerait vers ce dossier et REVOQUERAIT ses" + echo " autorisations macOS (Accessibilite, Surveillance de l'entree)." + echo " L'application n'est donc PAS reconstruite." + echo + echo " Si c'est bien ce que tu veux, lance : ZONZA_REMPLACER=1 ./install.sh" + if [[ "${ZONZA_REMPLACER:-}" != "1" ]]; then + CONSTRUIRE=0 + else + echo " ZONZA_REMPLACER=1 : reconstruction demandee explicitement." + CONSTRUIRE=1 + fi + else + CONSTRUIRE=1 + fi + + if [[ "$CONSTRUIRE" == "1" ]]; then + echo "→ Construction de Zonza.app…" + ./build_app.sh + fi fi echo "→ Diagnostic…"