DUE TO A SHORTAGE OF LOWERCASE LETTERS, AND FAULTY CASE CHECKING, THE ENTIRETY OF THIS POST WILL BE WRITTEN IN CAPITAL LETTERS, JUST LIKE DOS 6.22.
DEAL WITH IT OR GO HOME.
Or, at least, that’s what you’re supposed to do when you try to use Steam (OS X), StarCraft II, or practically any Adobe product on a Mac with a case-sensitive boot volume.
From the factory, a Mac ships with a case-insensitive filesystem. This seems to be an Apple simplification, as all UNIX-styled operating systems in recent history (for at least two decades, I imagine) have had case-sensitive filesystems. Apple must not want their users to be confused when files with the same name but different cases can coexist. However, I digress. To turn on case sensitivity system-wide on your Mac, you need to format your boot volume and reinstall the operating system.
This seems like a lot of work for some piddly little capital letters, no? However, the point of this article is not “why people choose case sensitivity,” it is “why won’t vendors support it?”
My argument boils down to a handful of simple points:
- Many operating systems in existence today use case-sensitive filesystems, by default. In fact, some even mandate the use of such filesystems.
- Supporting case-sensitive filesystems automatically grants support for case-insensitive filesystems. (Force your filenames to lowercase, refer to them as if they were lowercase; if a case-insensitive filesystem comes along and they are in uppercase, what does it matter? You’re not sensitive to case and the OS will fulfill your request.)
- Companies lose nothing except for bug reports (seems like something you’d want to lose?) for supporting case-sensitive filesystems. Supporting your paying customers should be a top priority.
Valve (the creators of the Steam content delivery system) and Blizzard (of StarCraft fame) are by no means the first companies to ignore this small but important segment of their market. Adobe is notorious for outright rejecting case-sensitivity (to the point where the installers for some of their products will not only fail to install on a case-sensitive volume, but will not let you install on another volume that is case-insensitive); some might even call them the poster child of caseism.
There are various workarounds to applications failing to work on case-sensitive volumes; herein are listed a few, in increasing order of complexity-
- Whine and complain on your blog.
- Simply don’t use the application, boycott the publisher until they stop being idiots. This solution, while being the easiest, is not always the most practical. Then again, none of these are particularly practical.
- In the case of a simple “drag and drop into Applications” install, create a disk image containing a case-insensitive filesystem, and move all your caseist applications into it. This works for StarCraft II and, to some extent, Steam.
- Create a horrible web of symbolic links into a case-sensitive volume.
- In more extreme cases, you might have to resort to installing a separate copy of OS X on a case-insensitive volume. This is practically required for any Adobe application
(or at least, was, before CS5. I do not know if they have fixed this. Their previous comments left me with little hope that they would.)They have not fixed this, and do not intend to.
- The last option, which I choose to ignore because it’s patently absurd, is reinstalling your whole system on a case-insensitive volume.
As you can see, none of these solutions are particularly desirable; they are all one of: ridiculously cumbersome (install another copy of OS X?!), mildly cumbersome (mounting another volume is no big deal, really, but it’s still annoying), or downright impossible (say you need Adobe products in your line of work, you can’t go boycotting their software.) These tactics are met with mixed results.
- StarCraft II fails to patch itself on a case-sensitive volume. Moving it to a case-insensitive volume fixes this problem, and the game works fine. NOTE: This shouldn’t really matter. StarCraft (like most other Blizzard games) stores its data in container files that abstract filesystem access.
- Steam presents a warning: Steam requires /Applications/Steam.app/Contents/MacOS to be in a case-insensitive filesystem. Fixing this by moving it into a case-insensitive disk image simply yields another warning: Steam requires /Users/dustin/Library/Application Support/Steam to be in a case-insensitive filesystem. This is simply not possible for me. I refuse to reinstall everything I have here, and I refuse to dual-boot OS X just to play games. It is worth noting that Steam’s OS X beta used to work on case-sensitive filesystems, albeit in a broken manner. My game data was stored in /users/dustin/documents/steam content. It takes calculation to do this. This is intentional. The operating system provides the path of my home directory as /Users/dustin, and Steam EXPLICITLY lowercased it. What is the logic behind that? It seems like you could simply support case-sensitivity by requesting default paths from the operating system, in this case, and not modifying them. This is an even more concerning problem when you take into account the hints regarding a Steam client for Linux (which would absolutely require case sensitivity).
- Adobe refuses to invest the time in fixing case issues. Thinking Digitally has a bit of information on this (w.r.t. Adobe CS3.) There is a huge discussion (which, after a while, starts to fall on deaf ears) at the Adobe Blog, here; just search for “sensitive”.
For the record, making a horrible web of symlinks works to fix Steam, but why should I have to do that?! That’s absurd!
More absurd is that it insists in writing data to /volumes/case insensitive… My case-insensitive volume is at a case-sensitive location. Ugh.
I would love for somebody else to shed some light on this issue. I would petition, but it wouldn’t get me anywhere. I would contact support, but hey, why would multi-million-dollar companies listen to one dude with a blog?
Why is it so difficult to be case-sensitive?