Μετά από updates του λειτουργικού, πολλοί θα έχετε παρατηρήσει ότι κάποια mail plug ins δε δουλεύουν. Αυτό θα ήταν δικαιολογημένο εφόσον το mail άλλαζε ριζικά μετά από το update αλλά τα πράγματα δεν είναι έτσι, και με το που αλλάζει το subversion ξαφνικά όλα τα plug ins γίνονται disabled. Σε αυτό το post θα πούμε πως θα μπορέσουμε να αποφύγουμε αυτές τις καταστάσεις, μαθαίνοντας μερικά πράγματα για το UUID. Το UUID, ή αλλιώς Universally Unique IDentifier, είναι ένας αριθμός των 16bytes, μία ταυτότητα θα έλεγε κανείς για τη αναγνώριση προγραμμάτων που έγινε standardized από το Open Software Foundation. Στη προκειμένη περίπτωση λοιπόν, το mail έχει ένα UUID, το οποίο σε κάθε update αλλάζει διότι πρόκειται περί διαφορετικής έκδοσης. Τα plug ins με τη σειρά τους για να ακολουθήσουν το μοντέλο, έχουν μία λίστα με τα UUID των προγραμμάτων που υποστηρίζουν. Τις περισσότερες φορές λοιπόν, αν και το plug in δεν έχει λόγο να γίνει update, πρέπει να γίνει για να φέρει τα νέα UUID για το πρόγραμμα που θα υποστηρίξει. Πως βρίσκουμε τα UUID και πώς αναβαθμίζουμε τα plug ins έτσι ώστε να υποστηρίξουν τη νέα έκδοση του software? Πολύ απλά, τα UUID στο Mac OS X βρίσκονται καταχωρημένα μέσα στα info.plist αρχεία των εφαρμογών. Θα γίνω πιο συγκεκριμένος χρησιμοποιώντας ένα παράδειγμα.
Εχθές έγινε update το λειτουργικό σύστημα Mac OS X και μαζί με αυτό το έγινε και το mail από την έκδοση 4.3 στην 4.4. Ένα από τα plug ins που χρησιμοποιώ είναι το GPG για encryption των email μου, το οποίο όμως δεν αναβαθμίστηκε εγκαίρως με τα νέα UUID. Οπότε πήρα την παρακάτω προειδοποίηση και το GPG plug in απενεργοποιήθηκε.
Το απενεργοποιημένο plug in μεταφέρθηκε στο directory
~/Library/Mail/Bundles (Disabled)
To Bundles (Disabled) μπορεί να έχει και κάποιο αριθμό σε περίπτωση που κάτι τέτοιο έχει ξαναγίνει, όπως πχ.
~/Library/Mail/Bundles (Disabled 5)
Ο μεγαλύτερος αριθμός είναι και το πιο πρόσφατο disabled bundle.
Μπαίνουμε σε αυτό το directory και εντοπίζουμε το/τα plug ins που έχουν απενεργοποιηθεί, στη συνέχεια κάνουμε δεξί κλικ επάνω τους, επιλέγουμε Show Package Contents μπαίνουμε στο φάκελο Contents.
Aνοίγουμε το αρχείο Info.plist με το Property List Editor (μέρος των Developer Tools που βρίσκεται στο Installation DVD 1)
και κάνουμε expand το SupportedPluginsCompatibilityUUID, έτσι θα δούμε τη λίστα με τα UUID.
Εκεί θα αντιγράψουμε τα νέα UUID entries, κρατάμε λοιπόν το παράθυρο σε μία άκρη, και πάμε να βρούμε τα καινούργια UUIDs. Θα πρέπει να ανοίξουμε τα Info.plist που βρίσκονται στα παρακάτω directories με τον ίδιο τρόπο όπως παραπάνω.
Το ένα είναι το Info.plist του Mail.app
/Applications/Mail.app/Contents/
Ανοίγουμε το Info.plist και αντιγράφουμε το Value του PluginCompatibilityUUID
Πίσω, στο Info.plist του plug in, δημιουργούμε ένα νέο entry επιλέγοντας το SupportedPluginsCompatibilityUUID και κλικάροντας στο add item δεξιά του selection, και στο value κάνουμε paste το UUID του Mail.
To άλλο plist είναι του Message Framework.
/System/Library/Frameworks/Message.framework/Versions/Current/Resources/
Ακριβώς με τον ίδιο τρόπο προσθέτουμε το PluginCompatibilityUUID value του Message Framework, στο plist του plug in.
Τέλος σώζουμε το Info.plist του plug in, και το μεταφέρουμε, το plug in, από το φάκελο Bundles (Disabled), στο Bundles.
Ανοίγουμε το Mail.app και voila ! το plug in δουλεύει και πάλι.
Να πούμε ότι η ίδια διαδικασία ισχύει όχι μόνο για το GPGMail αλλά και για τα Growl, Letterbox κλπ.
Εχθές έγινε update το λειτουργικό σύστημα Mac OS X και μαζί με αυτό το έγινε και το mail από την έκδοση 4.3 στην 4.4. Ένα από τα plug ins που χρησιμοποιώ είναι το GPG για encryption των email μου, το οποίο όμως δεν αναβαθμίστηκε εγκαίρως με τα νέα UUID. Οπότε πήρα την παρακάτω προειδοποίηση και το GPG plug in απενεργοποιήθηκε.
Το απενεργοποιημένο plug in μεταφέρθηκε στο directory
~/Library/Mail/Bundles (Disabled)
To Bundles (Disabled) μπορεί να έχει και κάποιο αριθμό σε περίπτωση που κάτι τέτοιο έχει ξαναγίνει, όπως πχ.
~/Library/Mail/Bundles (Disabled 5)
Ο μεγαλύτερος αριθμός είναι και το πιο πρόσφατο disabled bundle.
Μπαίνουμε σε αυτό το directory και εντοπίζουμε το/τα plug ins που έχουν απενεργοποιηθεί, στη συνέχεια κάνουμε δεξί κλικ επάνω τους, επιλέγουμε Show Package Contents μπαίνουμε στο φάκελο Contents.
Aνοίγουμε το αρχείο Info.plist με το Property List Editor (μέρος των Developer Tools που βρίσκεται στο Installation DVD 1)
και κάνουμε expand το SupportedPluginsCompatibilityUUID, έτσι θα δούμε τη λίστα με τα UUID.
Εκεί θα αντιγράψουμε τα νέα UUID entries, κρατάμε λοιπόν το παράθυρο σε μία άκρη, και πάμε να βρούμε τα καινούργια UUIDs. Θα πρέπει να ανοίξουμε τα Info.plist που βρίσκονται στα παρακάτω directories με τον ίδιο τρόπο όπως παραπάνω.
Το ένα είναι το Info.plist του Mail.app
/Applications/Mail.app/Contents/
Ανοίγουμε το Info.plist και αντιγράφουμε το Value του PluginCompatibilityUUID
Πίσω, στο Info.plist του plug in, δημιουργούμε ένα νέο entry επιλέγοντας το SupportedPluginsCompatibilityUUID και κλικάροντας στο add item δεξιά του selection, και στο value κάνουμε paste το UUID του Mail.
To άλλο plist είναι του Message Framework.
/System/Library/Frameworks/Message.framework/Versions/Current/Resources/
Ακριβώς με τον ίδιο τρόπο προσθέτουμε το PluginCompatibilityUUID value του Message Framework, στο plist του plug in.
Τέλος σώζουμε το Info.plist του plug in, και το μεταφέρουμε, το plug in, από το φάκελο Bundles (Disabled), στο Bundles.
Ανοίγουμε το Mail.app και voila ! το plug in δουλεύει και πάλι.
Να πούμε ότι η ίδια διαδικασία ισχύει όχι μόνο για το GPGMail αλλά και για τα Growl, Letterbox κλπ.