Fixing GrowlMail in 10.6.7 (Mail 4.5)

Update: OS X Lion (10.7) users. Mail bundles have changed significantly in Mail 5.0 so the quick fix hack will not work to get GrowlMail functioning again. There will need to be some actual development work to make it compatible. Sorry!

Welcome back! We’ve been here before haven’t we? Check out my previous post on this issue if you want more background on why this occurs.

Easy Fix

Download a pre-patched GrowlMail.bundle and drop it in your ~/Library/Mail/Bundles/ directory1. If you want it available to multiple users on your system, use /Library/Mail/Bundles/.

Download GrowlMail 10.6.7 mailbundle

If you use this method you’re all set; no need to use the command line solution below.

Add New UUIDs to SupportedPluginCompatibilityUUIDs

If you have already had your plugins disabled by opening Mail.app you’ll need to look in ~/Library/Mail (or /Library/Mail if you installed globally) and move the files back to the active bundles directory. They’ll typically be in Bundles (Disabled) or something similar, so quit Mail, find them, and move them back into the proper directory.

If you have a local installation:

defaults write ~/Library/Mail/Bundles/GrowlMail.mailbundle/Contents/Info SupportedPluginCompatibilityUUIDs -array-add "1C58722D-AFBD-464E-81BB-0E05C108BE06"
defaults write ~/Library/Mail/Bundles/GrowlMail.mailbundle/Contents/Info SupportedPluginCompatibilityUUIDs -array-add "9049EF7D-5873-4F54-A447-51D722009310"

Global installation:

defaults write /Library/Mail/Bundles/GrowlMail.mailbundle/Contents/Info SupportedPluginCompatibilityUUIDs -array-add "1C58722D-AFBD-464E-81BB-0E05C108BE06"
defaults write /Library/Mail/Bundles/GrowlMail.mailbundle/Contents/Info SupportedPluginCompatibilityUUIDs -array-add "9049EF7D-5873-4F54-A447-51D722009310"
  1. ~ means your home directory if you’re unfamiliar with the syntax. You can click the home icon on your Finder sidebar if you’re still confused

iTunes Unable To Load Data Class Information

If you’ve installed XCode 3.2.6 or 4.0 recently after previously installing iTunes 10.2.1 you may have seen this message when trying to sync: “iTunes was unable to load data class information from Sync Services. Reconnect or try again later.”

To fix this problem you’ll need to reinstall iTunes. Download iTunes from Apple, run the pkg, restart, and it should be fixed. Irritating, but at least there’s an easy resolution.

List All VHosts Currently Enabled In Apache

If you want to get a list of all currently enabled virtualhosts in Apache, just type the following as root1:

httpd -S

You’ll get output that looks like this:

port 80 namevhost somedomain.com (/etc/httpd/conf.d/somedomain.conf:1)
port 80 namevhost another.com (/etc/httpd/conf.d/another.conf:1)
port 80 namevhost test.com (/etc/httpd/conf.d/test.conf:1)
port 80 namevhost testing.com (/etc/httpd/conf.d/testing.conf:1)
port 80 namevhost fqdn.com (/etc/httpd/conf.d/fqdn.conf:1)

Each line tells you port, type, the domain, and the conf file (and line) it’s defined in. A very simple command, but one I forget all the time.

  1. substitute apache2ctl for httpd if you’re in Ubuntu/Debian

OCSP Queries Via OpenSSL

OpenSSL has an ocsp querying facility that can be useful if you’re testing a responder or just curious how the online certificate status protocol works. To use it:

openssl ocsp -issuer IssuingCert.txt -cert ServerCert.txt -url http://ocsp.wherever.com -CAfile CAchain.txt

Argument Breakdown

  • -issuer is the issuing CA for the certificate you want to check (called IssuingCert.txt above). This can be a self-signed root or a subroot.
  • -cert is the certificate you want to verify. If you know the serial number and don’t want to provide the cert file itself you can use -serial instead.
  • -url is the URL of the OCSP responder for your cert. You can parse the certificate to find the end point. It will be under the Authority Information Access node inside the x509 extensions
  • -CAfile is only required if you want to verify the response of the OCSP server.1 You’ll need to place the self-signed root + whatever intermediates are necessary for the OCSP signing cert from the server to chain up to it.
  • There are many other optional args, so check out the list just by typing “openssl ocsp”

OCSP Response

Here’s an example response where the certificate has been marked as revoked.

Response verify OK
ServerCert.txt: revoked
This Update: Nov 20 15:43:49 2010 GMT
Next Update: Dec  4 17:43:49 2010 GMT
Reason: unspecified
Revocation Time: Mar 31 21:37:52 2009 GMT

And one marked as acceptable.

Response verify OK
ServerCert.txt: good
This Update: Nov 20 11:20:51 2010 GMT
Next Update: Nov 27 11:20:51 2010 GMT

Responses can have several error status codes. Here’s the list of possible errors from RFC 2560.

malformedRequest      (1),  --Illegal confirmation request
internalError         (2),  --Internal error in issuer
tryLater              (3),  --Try again later
                            --(4) is not used
sigRequired           (5),  --Must sign the request
unauthorized          (6)   --Request unauthorized
  1. If you don’t want to verify, use -noverify

pbpaste & pbcopy in Mac OS X (or: Terminal + Clipboard = Fun!)

The OS X shell is very powerful, but some wonderfully useful commands are almost entirely unknown to the community at large. Two of these forgotten commands are pbcopy and pbpaste. Let’s take a quick look at what they can do.

pbcopy

This command allows you to copy text from stdin into the clipboard1 buffer. Trivial example:

echo 'Hello World!' | pbcopy

“Hello World!” is now in your clipboard.

pbpaste

Pastes from your clipboard to stdout. Trivial example:

echo `pbpaste`

This will echo the contents of your clipboard. If you’re following along you’ll see “Hello World!”.

What Can I Do With These?

What can’t you do! Oh, you want examples? Well…

  • You could grab the output of a grep/awk/sed to paste into IM/IRC.
  • You could use a macro tool (like iKey, QS, et cetera) to create text modifying workflows that grab highlighted text, manipulate it, and replace it inline.
  • You could pull changelogs from svn into the clipboard when tagging for release so you could email them to coworkers.

Let me know what amazing things you come up with to enhance your own productivity!

  1. or pasteboard, hence the prefix “pb”

AvianSafari 1.1.0

I’ve just released AvianSafari 1.1.0.

Features

  • Significant performance improvements
  • Support for “Snowflake” 64-bit status IDs
  • Fixes for timestamps in View Thread

Get it now! Or check out the updated source.