Upgrading from Mac OSX 10.6 to 10.7

Scenario

Over the weekend I decided to upgrade my MacBook from MacOS 10.6 Snow Leapord to MacOS 10.7 Lion, for no particular reason other than “it seemed like a good idea at the time”. I encountered a few minor issues in the process, but it was mostly painless except that my Time Machine backups stopped working. This post details some of the issues I encountered and how I solved them.

Performing the upgrade

Upgrading to MacOS 10.7 has been made quite easy. If you’re running Snow Leopard, you simply purchase Lion in the App store, and download the installer. Once the 3+ GB installer is downloaded and has begun, you can optionally burn the image to a DVD or write it to a bootable USB key.

Your next step is to actually perform the upgrade, which should be as simple as following the prompts for the installer. This will cause a reboot or two, after which the installation should be complete.

Fix anything that Lion changed against your will

Lion has some different defaults to Snow Leopard, at least 2 of which I didn’t like. These two were:

  • Inverted scrolling

    Apple, in their infinite wisdom, decided that the scrolling direction when using a trackpad was not good enough, and inverted it. This was a bit of a shock, so I went and inverted it. Depending on your setup, you may need this link, or the first point in this one.

  • Remembering window and application state

    In Lion, unless you specifically tell them otherwise, many applications will remember which windows and files they had open after you quit them, so that it can resume them later when you start it back up again. I didn’t like this behaviour, so I turned it off. The recommendation is apparently that you don’t do this, but instead disable it for specific applications… or something.

Configure Time Machine (again)

For those of you that don’t know, you can use a Linux server as a Time Capsule for Time Machine and therefore store your backups there. This required a bit of configuration for Snow Leopard, but for Lion, there were extra changes that needed to take place for it to work again.

Lion uses a newer version of the Apple File Protocol (AFP), version 2.2, and this hasn’t been packaged for many Linux releases yet, as it’s either deemed unstable, or has been until recently.

I followed this guide for how to reconfigure my Debian Squeeze server to talk to Lion, but instead of downloading the packages listed on the site, I manually downloaded the source code for Debian Wheezy and compiled it on my server. There’s a bit of information in the above guide’s comments about caveats with this (such as needing to install libacl1-dev on the machine doing the compiling, despite it not being listed as a dependency).

The basic gist of how to get the sources compiled and installed on Debian Squeeze is:

mkdir netatalk
cd netatalk
wget http://ftp.de.debian.org/debian/pool/main/n/netatalk/netatalk_2.2.1{-1.dsc,.orig.tar.gz,-1.debian.tar.gz}
dpkg-source -x netatalk_2.2.1-1.dsc
cd netatalk-2.2.1
dpkg-buildpackage
# At this point you may be notified about unmet dependencies, such as:
#   dpkg-checkbuilddeps: Unmet build dependencies: libdb-dev
# Install these dependencies, whatever they may be:
sudo aptitude install libdb-dev
# Then try again
dpkg-buildpackage
cd ..
sudo dpkg -i netatalk_2.2.1-1_i386.deb
# Again, at this point there may be complaints about dependencies not
# being met by this package. You should be able to resolve these by
# choosing one of the resolutions offered by:
sudo aptitude install

Now assuming you’re doing this from scratch, you should be able to basically take the config provided in the guide I linked to without too many requred changes.

I ran into issues because I was using a config file from the older release of AFP, and spend a long time trying to determine why it wasn’t working before realising that I needed the ’tm’ option in the AppleVolumes.default file to denote that this share is usable by Time Machine. After adding this everything Just Worked.

Conclusion

So the process was more painful than I expected, and I suspect that if I’d known I’d have to jump through the above hoops to try and make the required changes in order to adapt (some of which I did until 3am Saturday night :S), I probably wouldn’t have bothered forking out the ~$30 it cost for the upgrade, given that so far I’ve seen very little benefit. Having tackled the problems I considered major now though, hopefully others can benefit from my experience.