Today I ran the update to Snow Leopard on my laptop. Tomorrow I’m going to roll back that update — I’ll certainly try again, but now doesn’t seem to be the time. Snow Leopard broke a few probably minor, but to me rather important things. Here’s a summary of what I found.

After the update ran through, everything was almost good for a start. I saw a few messages coming up for kexts, but nothing that seemed serious to me. All system stuff was working. One odd thing I noticed is that I had been running a trial version of iClock, which had installed itself in my menu bar, and after the update it was gone — but the standard system clock didn’t turn up either! I haven’t looked into this.

Now for the worse stuff. I had been using offlineimap to sync my IMAP accounts to local maildirs, which I was accessing with alpine. Yeah, I’m like that :-) offlineimap is a Python application, and there’s no shortage of Python on Macs. After the update, I found that offlineimap didn’t work anymore. It just showed a “trace trap” (when running from zsh) or a “Trace/BPT trap” (when running from bash) right after the point where it starts working its way through the first of my accounts.

Michael Foord was nice enough to give me some Python debugging help and I was able to track down the problem to where locale.py has a line from _locale import *. _locale refers to the file /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-dynload/_locale.so, or the same for version 2.6. Oddly enough, it is possible to import that file from a console Python session, so I have no idea why this fails. After some looking around, I decided to try and install a separate Python to check things out.

Next, I found my MacPorts installation broken, which did surprise me, since I’d installed the latest 1.8 as per their instructions. But it turns out that’s not enough — between major versions you need to do more work to migrate. Unfortunately there are other, unrelated (?) problems with Python 2.6 in MacPorts (and I also found out that Python 3.1 isn’t the least bit compatible with the other versions, something that I find very interesting but is beside the point here). I did manage in the end to install Python 2.5.4 from MacPorts, and so was able to see that the same _locale.so problem comes up there as well. I’m sure if you know what the problem is, this makes some sort of sense, but at a glance it seems rather incomprehensible. Well. Whatever causes it, my own self-built /opt/local/lib/python2.5/lib-dynload/_locale.so has the exact same problems now. To top it all off, my reinstallation efforts of MacPorts also killed my existing, working, alpine installation.

When trying to rebuild with the new setup, it turned out that alpine is broken right now as well. So that was an interesting way of spending a few hours this evening, but I need to get my system back to normal. Not a problem, fortunately — the superb SuperDuper combined with the Mac’s ability of booting from USB drives makes this an easy and safe exercise. I’ll come back to 10.6 a bit later then…