Friday, June 4, 2010

Adobe and Case Sensitive Filesystems


There was a time where Photoshop was the workhorse for Apple to show off how good their hardware was. Adobe was doing good things to the Mac platform. But those times are long gone. Photoshop was an example on how good MacApp was (a C++ framework at its time). The user interface was easy to use and intuitive.

I purchased Photoshop 7 at the time because it had the features I needed to work on certain pictures. I'm by far not a photographer or graphics professional so Photoshop is for sure having more power than I need but it had the few features I wanted which other tools did not have at the time. So I paid a fortune for Photoshop while only using a little.

Since Photoshop 7 has been out, things got really worse at Adobe. While having always been at the forefront of technology, they became lazy. They spent more time trying to lock their professional customers to their products instead of making the product better so more people would use it in the semi professional area and producing more revenue. Photoshop is probably the most expensive software I have ever bought but I was willing to pay it. Today I can't use it anymore. Carbon is gone with 10.6 and Photoshop 7 doesn't run anymore. Now the times of MacOS 9 are now 10 years ago, so you think they for sure have a replacement in that time. But only this year they introduced their creative suite 5 which is no longer depending on Carbon. Come on Adobe, it took you 10 years to do this transition?

Well did it bring other new stuff at least? Well they made it difficult to use Photoshop on your laptop and your office computer without paying twic. They install all kind of crap with it. Even Adobe Acrobat installs Adobe Air. Something I really don't want to have because its lame and useless. Where have been the times where you had one application icon which you dragged from your install media to your applications folder? Photoshop is a typical Application which absolutely should't require any installer of any sort because it doesn't have to modify the system. But it still does. It installs some background updater and what else I don't know. A lot of useless crap which blows your disk up. This is why PC's are so hard to maintain because no one knows what the hell an installer has done to your system. Adobe adopted this bad habit and made it worse.

Now back to my Photoshop installation. As I prefer to have Photoshop running on Intel 64bit and not in Rosetta emulation on Carbon, I wanted to check out if I can use the CS4 version on my Mac. But no you can't. My mac has a case sensitive HFS+ filesystem. This for a very good reason. Its a Unix system under the hood and there are unix based applications who get into trouble if they look for "Makefile" and "makefile" in the same folder. For example the Android development SDK requires a case sensitive filesystem. All applications which use files will find their stuff anyway as if they created File_X at some time, they will not look for file_x out of a sudden. So it was safe to assume that a case sensitive Filesystem should not give any application any problem. Well I was wrong. Adobe has won this trophy. They manage to screw things up that it doesn't run on a case sensitive filesystem. With CS4, you couldn't install it. With CS5 I hoped this was fixed as large parts of Photoshop where rewritten but today I got this:

Installation to case-sensitive drives is not supported. Please choose a different drive location to install.

Now, to tell you the truth, I have CS4 running on a case sensitive filesystem. It took me many hours to get it working but it does work. Why do they claim it doesn't? The answer is simple. Their programmers are lazy. Yes. That's the whole problem. Photoshop consists of the application and a lot of filter and import export plugins which are files by their own.

Photoshop , as many others app's makes use of plugins. Those are parts of a code which is separated in a shared library for maintainability. Filter plug ins for example remain in
/Applications/Adobe Photoshop CS4/Plug-Ins/Filters/
so you can install 3rd party filters there and you can use them in Photoshop.

A plugin is a MacOS X bundle.
Those Bundles should have the following structure

PluginName.plugin/
Contents/
Info.plist the description
MacOS/
PluginName the binary
PkgInfo
Resources/
....


But with Adobe, it was sometimes named "contents" instead of "Contents".

Similar things happened to frameworks Photoshop is using.
This is how it should be:

./Adobe Photoshop CS4.app/Contents/Frameworks/registration.framework/Versions/A/registration

And this is how it sometimes was:
./Adobe Photoshop CS4.app/Contents/Frameworks/registration.framework/versions/a/registration

To fix this issue, you had to rename all the files by hand to the correct writing and it started working. Sometimes a plugin was accessed with a lowercase name but had a uppercase name in the filesystem or vice versa so launching photoshop and looking at the console to see what breaks told me which one it is. Around 50 files had to be changed in CS4.

Now why is this a problem for Adobe to fix? Because you have to look at the code and files and make sure they are always properly named the same way. You can not create file X and then access file x and thinking it works. But if you always use the same name X it will work. It would take Adobe less than a day to fix this once for all times but they rather spend their time introducing more anti theft copy protection into their product which makes it impossible to install without giving away your identity etc. And if you change your laptop (which I do like every 1-2 years) you are screwed again because the software is so much locked to your hardware that restoring a backup wont work.

This will make people go away. This is not what's called user friendly. If I would have to install CS5 today, it would probably take me another 5 days to get it right and for all this hand work i should pay Adobe something like 1000$ price tag for their product?

I rather spend that amount of money finding a replacement tool. Steve Job's is right if he think's the time of Flash is over. However I have the feeling its the time of Adobe which is over.



PS: There is another software which makes the same mistake.
The gaming engine Steam also refuses to run on case sensitive filesystems.
But those are the only two I encountered in my life.

4 comments:

Robert M. Hoehn said...

How did you actually get the installer to run? Did you run it on a case sensitive file system and then copy the app over to your case sensitive file system?

Andreas Fink said...

booted of external disk.
used iPartition to change my main partition to case insensitive.

bootet again. installed. bootet of external disk, changed to case sensitive again.

And then launched and checked the output of the console and used kernel tracing to figure out which files it tries to access and fails.

However it was a major issue and still a few things where missing.

I went back to using a case insensitive filesystem. Adobe is too much hassle. Photoshop is the only program I use from them but I really need it for my work. So now I have a separate case sensitive partition where I put the stuff which requires case sensitive

Anonymous said...

Did you find any alternatives to the Adobe products that were comparable? I have a similar setup (case sensitive because of the Android SDK) and will not go through the crap you did to make Adobe bloatware work.

Andreas Fink said...

You can try Acorn for some stuff. I ended up formatting my next MacBook pro with case insensitive filesystem. Now Android development has an issue and MySQL is not so happy (although that one has config file workarounds). Tricky world out there.