10.4: Fix some broken Carbon apps on case-sensitive HFS

Jun 07, '05 10:01:00AM

Contributed by: ldmiotto

Tiger only hintCarbon apps can break in Tiger when using the case-sensitive file system. This is very, very bad. Take a Carbon installer, such as one used for installing the Palm desktop. That breaks completely, and not even this hint can fix it. I needed it so badly (iSync does not have the "alphaword" conduit) that I had to reinstall Tiger with the non-case-sensitive file system.

All Carbon applications refer to the Carbon framework in some way. However, they used to be able to be totally case insensitive. Putting caRbON.fRAMeWORK in your code would get the same thing as Carbon.Framework. However, now that there is a case-sensitive version of the HFS system, some Carbon apps are coming across problem. Take ChitChat X, done in Realbasic. It would not load. Double-clicking would result in the Dock icon bouncing once or twice, then closing as if it hadn't been opened. Here is the log:

dyld: Library not loaded: /System/Library/Frameworks/Carbon.Framework/Carbon
  Referenced from: /Applications/ChitChat Source v85/ChitChat X.app/Contents/
   MacOS/ChitChat X
  Reason: image not found
May 18 17:22:14 Chaim crashdump[1452]: ChitChat X crashed
May 18 17:22:14 Chaim crashdump[1452]: crash report written to:
  /Users/ldmiotto/Library/Logs/CrashReporter/ChitChat X.crash.log
Woah! Take a look at that first line! It can't load Carbon.Framework. Why? Simple. In the old case-insensitive version of HFS+, Carbon.Framework referenced this: Carbon.framework, which is what is included by default. However, in this case-sensitive file system, Carbon.Framework tries to find Carbon.Framework, not Carbon.framework. I had to make a copy of Carbon.framework, and rename it to Carbon.Framework for ChitChat X to work.

But as said above, the ultimate fix is to NOT use the case sensitive file system. Oh, and one more thing. When using the case-sensitive system, you cannot boot into os 9 ... and if you use a CD, the hard disk will not mount. Classic under OS X still works, however.

Summary: Find which capitalizations the Carbon apps uses, duplicate the Carbon lib, rename it so the capitalizations are correct, reboot, go.

Comments (9)


Mac OS X Hints
http://hints.macworld.com/article.php?story=20050523122039769