Localise et Lion! grrrrrrrrrrrrrr!!!

J'ai compilé Localise sous Xcode 3.2.6 en 32 bits universal avec le SDK 10.6. Sous Lion, il plantait au lancement. J'ai très vite trouvé qu'il restait dans les sources des méthodes "deprecated" datant de OSX 10.4 et Xcode 2.5.  Une fois ceci remis à  jour, et le logiciel re-compilé (idem ci-dessus) je retourne sous Lion et je constate que le logiciel marche une seule fois, puis ne marche plus.
Après moult détours  j'ai trouvé quelque chose que je ne connaissais pas: Lorsque mon logiciel sauve les préférences, le framework? le système? ajoute un fichier "com.localise.plist.lockfile" à  coté du fichier de préférence "com.localise.plist". Tant que le fichier .lockfile existe, mon logiciel n'arrive pas à  lire ses préférences. Si je détruit ce fichier manuellement, Localise marche une fois puis se re-bloque et je constate que le fichier en question est revenu!
Je comprend pas ça! je n'ai jamais demandé la création de ce fichier et mon logiciel marche très bien sous 10.6.8.
Qui peut m'expliquer ça?

Réponses

  • AliGatorAliGator Membre, Modérateur
    décembre 2011 modifié #2
    Vérifie que tu n'as pas des ACL sur ton fichier plist ou sur ton dossier de préférence qui foutrait la merde. (à  la limite, une réparation des autorisations de ton Mac, suivi pourquoi pas pour être sûr d'une suppression de ton fichier "com.localise.plist", avant de refaire tes tests devrait te refaire partir du bon pied)

    [EDIT] http://apple.stackexchange.com/questions/19696/why-are-my-plists-in-library-preferences-accompanied-by-a-matching-lockfile-in
  • tabliertablier Membre
    03:18 modifié #3
    Merci, je vois que c'est connu. J'essaierai ce que tu conseilles demain car là   >:D  je suis un peu bloqué en montagne dans la neige et mon installation de Lion est en bas à  Grenoble. Je vais lire l'article que tu me proposes.
  • tabliertablier Membre
    décembre 2011 modifié #4
    Hélas, ayant fait l'opération 3 ou 4 fois je constate que ça ne marche pas. Le .lockfile d'une application revient au premier lancement de l'application après le re-boot, dès que le fichier .plist est créé. Et pas seulement pour Localise, pour plein d'autres programmes. Lorsque je teste les autorisations du disque, les trois dernières lignes du log ne changent pas quand j'applique ce qu'Aligator m'a conseillé.
    ATTENTION : le fichier SUID " System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/MacOS/ARDAgent " a été modifié et ne sera pas réparé.
    ACL trouvée mais inattendue sur " private/var/root/Library "
    ACL trouvée mais inattendue sur " private/var/root/Library/Preferences "
    Donc les ACL paraissent en cause.  J'ai un peu lu la doc, apparemment c'est BSD qui gère cela et dans "Identity Services Programming Guide" il est expliqué comment créer écrire et charger un ACL, mais pas comment le supprimer.
    Comme les ACL reviennent systématiquement, il doit exister quelque part une liste des programmes à  contrôler et/ou un programme de surveillance qui les génère automatiquement, mais je ne trouve pas ou!

    Toute idée (lumineuse ou non) pour résoudre se problème sera la bien venue


  • AliGatorAliGator Membre, Modérateur
    03:18 modifié #5
    Je pense qu'il faut que tu enlèves les ACL sur /private/var/root/Library et /private/var/root/Library/Preferences, l'Utilitaire de Disque n'a pas l'air de savoir les enlever tout seul quand il répare les autorisations

    Pour voir les ACLs sur les fichiers, un "ls -le" avec l'option "-e" donc permet de voir les ACLs en place sur les fichiers.
    Pour manipuler les ACLs, tu peux à  priori le faire avec chmod d'après la page man, avec un "chmod -a file" ou "chmod -a# 0 file" ou un truc comme ça (jamais testé mais la doc est assez claire et pleine d'exemples)
  • tabliertablier Membre
    03:18 modifié #6
    J'ai essayé toutes les manips imaginables pour supprimer ces saloperies d'ACL, rien à  faire!!! J'ai utilisé les syntaxes décrites dans le man de chmod en variant le working directory puis en me mettant en root (sait-on jamais!) mais les deux ACL trouvées par le test des permissions sont inamovibles. Il y a donc quelque chose que je n'ai pas compris , ou pas fait correctement.
    Suite à  cela, j'ai re-booté sur le 10.6 avec le disque Lion en disque externe. J'ai activé la visibilité des fichiers invisibles, j'ai fait une recherche dans le disque de Lion et j'ai mis à  la poubelle tout les fichiers dont le nom contient .lockfile.
    Je sais, c'est une manip Kamikaze. Depuis, Je peux exécuter Localise sous Lion. Le fichier .lockfile  se crée toujours, mais semble ne plus servir à  rien.
    La gestion des ACL reste un grand mystère pour moi.
Connectez-vous ou Inscrivez-vous pour répondre.