domenica 6 aprile 2008

The most compatible partitioning OSX scheme?

As I wrote in my previous entry, various apple software has issues with HFSX, which is a Leopard interesting option for unix oldies.
I think there is probably no value to have filenames differing only in case (e.g., Readme an README), but, as a matter of fact these things can happen. And checking out project files with same name from subversion can be really annoying.

So, apparently OSX users have to face this decision:

  • HFS+, case insensitive, compatible with photoshop and other (poorly designed) software, but not unix compliant (potential problems with mysql, cvs, svn, etc.)

  • HFSX, case sensitive, unix compliant (mysql, cvs, svn, etc.) but facing potential problems with a lot of apple and third party software (filevault, photoshop CS3, photoshop elements, and probably lot of others)

Not an easy one, though I'd probably have gone for the HFS+. But luckily with Leopard is easy to partition your disk (ie you don't need anymore iPartition or similar), and you can mix and match HFS+ and HFSX partitions. So, to minimize the impact of case sensitivity/insensitivity problem, you can just slice up your disk in - let's say - 3 partitions:

  • The System one, case insensitive. Photoshop CS3 writes things in the /System and /Library folders, and its installer simply quits if you boot your mac from a case sensitive FS.

  • Another one with /Application and /Users, case insensitive. Here you will install all the adobe and other not-unix-compliant software. This will be the default for all your applications. Case insensitive /Users is needed for FileVault.
  • Another one for other unix software, case sensitive. Here you can checkout from cvs/svn, install mysql and so on. You can also mount /Users here if FileVault is not an option for you

To do that, just start DiskUtility (usually in /Applications/Utilities), select your OSX disk and choose the Partition tab. Then add as many partitions you like, and format them as planned. Easily done that said.

Ah, and don't forget to edit your .profile:

bind "set show-all-if-ambiguous On"
bind "set completion-ignore-case On"

so that bash don't get in your way when dealing with filenames differing only in case.

The case for case insensitivity

when I first discovered that the default file system on OSX was case insensitive, I said it was impossible. I was sure it's case sensitive, it's unix, and unix IS case insensitive, isn't it? The truth was that I had been working on it for more than a year, but my mbp was indeed case insensitive, and I never noticed only it because the bash was shielding me from this detail. I configured bash to be more case-aware (bind "completion-ignore-case On"), but after having some issues with subversion, I decided that my next installation would have been a standard unix case sensitive one.

So, fast forward to present. I decided to install the HFS+ case sensitive file system (aka HFSX), although I had a little voice in my head screaming... I also read some warnings but decided to proceed anyway. After a few months of working on a case sensitive mac, it's time to wrap up:

- Backups. It's reported that backup tools on mac can be confused by case sensitive fs. Indeed, Time Machine didn't recognize its own backup, and suggested me to format again the external firewire (sic!). Ok, I copied the files manually and then started again with time machine. Scaring, isn't it? mmm... perhaps I had to listen to the little voice.
- FileVault. Then I discovered that Filevault simply DOESN'T work on a case sensitive file system. So, if you are planning to use it, beware: you'll have to choose between filevault and case sensitivity. I don't know if FileWault is worth its weight, but this is really annoying. Well, let's go on with our case sensitive FS for a while.
- Adobe. Can you believe it? Photoshop CS3, Photoshop Elements and other well known mainstream apps DON'T work on a case sensitive file system. This was really hard to believe for me, but apparently they can't spend 1 week of their precious engineering time to fix this. Someone managed to workaround the issue (I'd say it's a bug, but the Adobe guys don't think so) but it looks to me very dangerous. The truth is that photoshop is untested on HFSX, and any serious user should not rely on the "hacked" version.
- iPhoto. I have also read some people having issues with iPhoto on HFSX

So, blame on Apple, because they can't manage to make their own apps working well on HFSX, and because they make the case insensitive fs the default. And blame on Adobe, because they are supposed to be a serious software house: in 2008 saying that this is not an issue and/or it's not worth fixing it's kinda lame. C'mon guys, just renaming some files in your VCS and do some regression testing can't be that hard!

Ah, I'll go back with a case insensitive FS as soon as possible. Thanks, Adobe.