Correction du build macOS casse par le nettoyage

brandTemplatePNG n'etait pas du code mort : sys_tray_darwin.go l'utilise pour
l'icone de barre de menus. Ce fichier ne compile qu'avec CGO, donc ni la
compilation croisee depuis Windows ni staticcheck sans CGO ne le voyaient — la
fonction passait pour inutilisee. Restauree.

sys_service_darwin.go affichait encore le chemin de config.env, disparu avec le
passage en base.

Le piege est documente dans doc.go : seul le job macos de la CI attrape ce genre
de regression.
This commit is contained in:
nathaninline committed 2026-08-07 20:00:36 +02:00
1 parent f1c0917276
commit 98ee293a49
3 files changed
+19 -2

No files matched your search

+7
View File
@@ -20,6 +20,13 @@
// Les suffixes _windows/_linux/_darwin/_unix/_other portent les contraintes de
// compilation par OS.
//
// ⚠️ Les fichiers macOS ne se compilent qu'AVEC CGO (l'icône de barre de menus
// passe par Cocoa). Une compilation croisée depuis Windows ou Linux, comme les
// analyseurs lancés sans CGO, ne les voit PAS : un symbole qu'eux seuls
// utilisent passe pour du code mort, et le supprimer casse le build macOS sans
// aucun avertissement local. Seul le job « macos » de la CI le détecte. Avant de
// supprimer un symbole jugé inutilisé, vérifier `grep` sur les fichiers _darwin.
//
// DEUX SERVICES à l'exécution, un seul binaire :
// - ajean-engine (« ajean serve ») exec llama-server ;
// - ajean-ui (« ajean web ») sert l'UI locale, le tunnel du relais et
+12
View File
@@ -84,6 +84,18 @@ func encodePNG(img *image.RGBA) []byte {
// Exporté pour le générateur d'icône du .exe (tools/gen-icon).
func BrandIconPNG(n int) []byte { return encodePNG(brandIconImage(n, brandBlack, brandWhite)) }
// brandTemplatePNG rend la variante « template » attendue par macOS : seule la
// couche alpha compte, le système colore la forme selon le thème de la barre de
// menus. Le « j » est donc DÉCOUPÉ (transparent) dans un carré opaque, sans quoi
// une icône entièrement noire disparaît sur une barre de menus sombre.
//
// Utilisée par sys_tray_darwin.go — un fichier que seule une compilation avec
// CGO voit. Les analyseurs lancés sans CGO la croient morte : elle avait été
// supprimée à ce titre, ce qui a cassé la compilation macOS en CI.
func brandTemplatePNG(n int) []byte {
return encodePNG(brandIconImage(n, brandBlack, brandClear))
}
// BrandICO emballe une ou plusieurs tailles PNG dans un conteneur .ico. Windows
// accepte le PNG comme image d'une entrée .ico (alpha conservé pour les coins
// arrondis). Plusieurs tailles = un rendu net partout, de la barre des tâches
-2
View File
@@ -95,7 +95,6 @@ func serviceAction(action string) error {
fmt.Printf("%s %s: arrêté\n", yellow("[info]"), svc)
}
fmt.Printf(" logs : %s\n", launchdLogPath())
fmt.Printf(" config : %s\n", confPath())
return nil
}
return fmt.Errorf("action inconnue: %s", action)
@@ -171,7 +170,6 @@ func userSvcAction(action string) error {
fmt.Printf("%s %s: arrêté\n", yellow("[info]"), serviceName())
}
fmt.Printf(" logs : %s\n", logFilePath())
fmt.Printf(" config : %s\n", confPath())
return nil
case "enable", "disable":
fmt.Printf("%s '%s' réclame un service système : lance %s pour installer le LaunchDaemon.\n",