|Friday, February 21, 2003|
A couple of weeks ago, a new version of Safari was released as both a download and via Software Update.
But, wait a minute, Safari is an app that the user can install anywhere they bloody well please (see previous rant).
If you look close, the same might even work for Apple's other apps in OS X 10.2.4....
Clarification: The Safari update mechanism worked prior to 10.2.4.
Update: It only works if Safari is installed in one of four locations; /Applications/Safari.app, ~/Applications/Safari.app, ~/Desktop/Safari.app or ~/Safari.app. I didn't install the update on my system; I re-downloaded Safari from Apple (confusion from updating about a dozen macs).
So, clearly, the Safari update was a complete hack. However, the 10.2.4 is a hack of a completely different nature.
10.2.4 and later:
If you look at the receipt for the installation of the OS X 10.2.4 update, you will find a file within the installer package named TokenDefinitions.plist. If an application is not found in the default location, the installer looks for the application by bundle identifier. This means that the app can be moved or renamed and the Installer will still find it.
I didn't look to see if definitions exist for all of the applications in /Applications.
This is also indicative of Apple's progress towards using the application identifier to manage all application references. This is considerably more flexible than using paths (or filesystem references). It will be interesting to see how Apple resolves the issue of multiple apps with the same identifier.
This also provides a good chunk of the functionality necessary for Apple to open up the software updater mechanism to third party developers.
Update: Daring Fireball had a comment that this was a feature in Classic all the way back to 1991. He is absolutely correct that this was something that should have been done from day one in OS X. Or, at the least, it should not have been so totally broken as to silently fail catastrophically on systems where the user has moved apps around.
StoneLog now provides an RSS feed.--By Kris [Stone Design Log]